@mantine/schedule 9.0.0-alpha.5 → 9.0.0-alpha.7

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 (457) hide show
  1. package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
  2. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs +79 -102
  3. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs.map +1 -1
  4. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.cjs +12 -0
  5. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.cjs.map +1 -0
  6. package/cjs/components/DayView/DayView.cjs +482 -578
  7. package/cjs/components/DayView/DayView.cjs.map +1 -1
  8. package/cjs/components/DayView/DayView.module.cjs +20 -0
  9. package/cjs/components/DayView/DayView.module.cjs.map +1 -0
  10. package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs +89 -106
  11. package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs.map +1 -1
  12. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs +106 -106
  13. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs.map +1 -1
  14. package/cjs/components/DragContext/DragContext.cjs +7 -8
  15. package/cjs/components/DragContext/DragContext.cjs.map +1 -1
  16. package/cjs/components/MobileMonthView/MobileMonthView.cjs +261 -297
  17. package/cjs/components/MobileMonthView/MobileMonthView.cjs.map +1 -1
  18. package/cjs/components/MobileMonthView/MobileMonthView.module.cjs +27 -0
  19. package/cjs/components/MobileMonthView/MobileMonthView.module.cjs.map +1 -0
  20. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs +35 -53
  21. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs.map +1 -1
  22. package/cjs/components/MonthView/MonthView.cjs +365 -467
  23. package/cjs/components/MonthView/MonthView.cjs.map +1 -1
  24. package/cjs/components/MonthView/MonthView.module.cjs +18 -0
  25. package/cjs/components/MonthView/MonthView.module.cjs.map +1 -0
  26. package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs +15 -24
  27. package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs.map +1 -1
  28. package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs +23 -35
  29. package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs.map +1 -1
  30. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs +16 -29
  31. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs.map +1 -1
  32. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs +87 -97
  33. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs.map +1 -1
  34. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs +36 -45
  35. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs.map +1 -1
  36. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs +30 -39
  37. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs.map +1 -1
  38. package/cjs/components/MonthView/handle-month-view-key-down.cjs +94 -139
  39. package/cjs/components/MonthView/handle-month-view-key-down.cjs.map +1 -1
  40. package/cjs/components/MoreEvents/MoreEvents.cjs +87 -121
  41. package/cjs/components/MoreEvents/MoreEvents.cjs.map +1 -1
  42. package/cjs/components/MoreEvents/MoreEvents.module.cjs +11 -0
  43. package/cjs/components/MoreEvents/MoreEvents.module.cjs.map +1 -0
  44. package/cjs/components/Schedule/Schedule.cjs +147 -174
  45. package/cjs/components/Schedule/Schedule.cjs.map +1 -1
  46. package/cjs/components/Schedule/Schedule.module.cjs +11 -0
  47. package/cjs/components/Schedule/Schedule.module.cjs.map +1 -0
  48. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs +116 -154
  49. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs.map +1 -1
  50. package/cjs/components/ScheduleEvent/ScheduleEvent.module.cjs +11 -0
  51. package/cjs/components/ScheduleEvent/ScheduleEvent.module.cjs.map +1 -0
  52. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs +62 -73
  53. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs.map +1 -1
  54. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.cjs +7 -0
  55. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.cjs.map +1 -0
  56. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs +152 -190
  57. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs.map +1 -1
  58. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.cjs +13 -0
  59. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.cjs.map +1 -0
  60. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs +41 -55
  61. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs.map +1 -1
  62. package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs +13 -0
  63. package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs.map +1 -0
  64. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs +83 -84
  65. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs.map +1 -1
  66. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs +105 -126
  67. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs.map +1 -1
  68. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.cjs +7 -0
  69. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.cjs.map +1 -0
  70. package/cjs/components/WeekView/WeekView.cjs +630 -748
  71. package/cjs/components/WeekView/WeekView.cjs.map +1 -1
  72. package/cjs/components/WeekView/WeekView.module.cjs +29 -0
  73. package/cjs/components/WeekView/WeekView.module.cjs.map +1 -0
  74. package/cjs/components/WeekView/WeekViewDay.cjs +82 -109
  75. package/cjs/components/WeekView/WeekViewDay.cjs.map +1 -1
  76. package/cjs/components/WeekView/get-week-label/get-week-label.cjs +27 -35
  77. package/cjs/components/WeekView/get-week-label/get-week-label.cjs.map +1 -1
  78. package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs +21 -29
  79. package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs.map +1 -1
  80. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs +13 -29
  81. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs.map +1 -1
  82. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs +14 -31
  83. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs.map +1 -1
  84. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs +13 -16
  85. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs.map +1 -1
  86. package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs +14 -22
  87. package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs.map +1 -1
  88. package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs +26 -35
  89. package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs.map +1 -1
  90. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs +26 -39
  91. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs.map +1 -1
  92. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs +11 -16
  93. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs.map +1 -1
  94. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs +17 -30
  95. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs.map +1 -1
  96. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs +200 -186
  97. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs.map +1 -1
  98. package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs +11 -9
  99. package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs.map +1 -1
  100. package/cjs/components/WeekView/handle-week-view-key-down.cjs +82 -127
  101. package/cjs/components/WeekView/handle-week-view-key-down.cjs.map +1 -1
  102. package/cjs/components/YearView/YearView.cjs +160 -213
  103. package/cjs/components/YearView/YearView.cjs.map +1 -1
  104. package/cjs/components/YearView/YearView.module.cjs +20 -0
  105. package/cjs/components/YearView/YearView.module.cjs.map +1 -0
  106. package/cjs/components/YearView/YearViewMonth.cjs +135 -158
  107. package/cjs/components/YearView/YearViewMonth.cjs.map +1 -1
  108. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs +32 -48
  109. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs.map +1 -1
  110. package/cjs/components/YearView/handle-year-view-key-down.cjs +143 -202
  111. package/cjs/components/YearView/handle-year-view-key-down.cjs.map +1 -1
  112. package/cjs/hooks/use-auto-scroll-on-drag.cjs +67 -70
  113. package/cjs/hooks/use-auto-scroll-on-drag.cjs.map +1 -1
  114. package/cjs/hooks/use-drag-drop-handlers.cjs +115 -127
  115. package/cjs/hooks/use-drag-drop-handlers.cjs.map +1 -1
  116. package/cjs/hooks/use-drag-state.cjs +38 -42
  117. package/cjs/hooks/use-drag-state.cjs.map +1 -1
  118. package/cjs/hooks/use-event-resize.cjs +137 -163
  119. package/cjs/hooks/use-event-resize.cjs.map +1 -1
  120. package/cjs/hooks/use-slot-drag-select.cjs +75 -88
  121. package/cjs/hooks/use-slot-drag-select.cjs.map +1 -1
  122. package/cjs/index.cjs +98 -103
  123. package/cjs/labels.cjs +30 -28
  124. package/cjs/labels.cjs.map +1 -1
  125. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs +23 -36
  126. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs.map +1 -1
  127. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs +17 -24
  128. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs.map +1 -1
  129. package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs +9 -8
  130. package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs.map +1 -1
  131. package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs +103 -141
  132. package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs.map +1 -1
  133. package/cjs/utils/format-date/format-date.cjs +10 -15
  134. package/cjs/utils/format-date/format-date.cjs.map +1 -1
  135. package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs +23 -22
  136. package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs.map +1 -1
  137. package/cjs/utils/get-current-time-position/get-current-time-position.cjs +19 -25
  138. package/cjs/utils/get-current-time-position/get-current-time-position.cjs.map +1 -1
  139. package/cjs/utils/get-day-position/get-day-position.cjs +26 -35
  140. package/cjs/utils/get-day-position/get-day-position.cjs.map +1 -1
  141. package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs +50 -45
  142. package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs.map +1 -1
  143. package/cjs/utils/get-end-of-week/get-end-of-week.cjs +13 -20
  144. package/cjs/utils/get-end-of-week/get-end-of-week.cjs.map +1 -1
  145. package/cjs/utils/get-month-days/get-month-days.cjs +41 -47
  146. package/cjs/utils/get-month-days/get-month-days.cjs.map +1 -1
  147. package/cjs/utils/get-month-range/get-month-range.cjs +25 -30
  148. package/cjs/utils/get-month-range/get-month-range.cjs.map +1 -1
  149. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs +21 -21
  150. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs.map +1 -1
  151. package/cjs/utils/get-months-list/get-months-list.cjs +20 -18
  152. package/cjs/utils/get-months-list/get-months-list.cjs.map +1 -1
  153. package/cjs/utils/get-start-of-week/get-start-of-week.cjs +11 -16
  154. package/cjs/utils/get-start-of-week/get-start-of-week.cjs.map +1 -1
  155. package/cjs/utils/get-visible-events/get-visible-events.cjs +13 -15
  156. package/cjs/utils/get-visible-events/get-visible-events.cjs.map +1 -1
  157. package/cjs/utils/get-week-days/get-week-days.cjs +23 -30
  158. package/cjs/utils/get-week-days/get-week-days.cjs.map +1 -1
  159. package/cjs/utils/get-week-number/get-week-number.cjs +13 -19
  160. package/cjs/utils/get-week-number/get-week-number.cjs.map +1 -1
  161. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs +18 -23
  162. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
  163. package/cjs/utils/get-years-list/get-years-list.cjs +8 -10
  164. package/cjs/utils/get-years-list/get-years-list.cjs.map +1 -1
  165. package/cjs/utils/is-after-min-date/is-after-min-date.cjs +9 -12
  166. package/cjs/utils/is-after-min-date/is-after-min-date.cjs.map +1 -1
  167. package/cjs/utils/is-all-day-event/is-all-day-event.cjs +13 -16
  168. package/cjs/utils/is-all-day-event/is-all-day-event.cjs.map +1 -1
  169. package/cjs/utils/is-before-max-date/is-before-max-date.cjs +9 -12
  170. package/cjs/utils/is-before-max-date/is-before-max-date.cjs.map +1 -1
  171. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs +19 -27
  172. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs.map +1 -1
  173. package/cjs/utils/is-events-overlap/is-events-overlap.cjs +13 -16
  174. package/cjs/utils/is-events-overlap/is-events-overlap.cjs.map +1 -1
  175. package/cjs/utils/is-in-time-range/is-in-time-range.cjs +17 -23
  176. package/cjs/utils/is-in-time-range/is-in-time-range.cjs.map +1 -1
  177. package/cjs/utils/is-multiday-event/is-multiday-event.cjs +10 -14
  178. package/cjs/utils/is-multiday-event/is-multiday-event.cjs.map +1 -1
  179. package/cjs/utils/is-same-month/is-same-month.cjs +9 -12
  180. package/cjs/utils/is-same-month/is-same-month.cjs.map +1 -1
  181. package/cjs/utils/is-within-week/is-within-week.cjs +15 -15
  182. package/cjs/utils/is-within-week/is-within-week.cjs.map +1 -1
  183. package/cjs/utils/next-week/next-week.cjs +15 -15
  184. package/cjs/utils/next-week/next-week.cjs.map +1 -1
  185. package/cjs/utils/parse-time-string/parse-time-string.cjs +11 -7
  186. package/cjs/utils/parse-time-string/parse-time-string.cjs.map +1 -1
  187. package/cjs/utils/previous-week/previous-week.cjs +15 -15
  188. package/cjs/utils/previous-week/previous-week.cjs.map +1 -1
  189. package/cjs/utils/sort-events/sort-events.cjs +14 -18
  190. package/cjs/utils/sort-events/sort-events.cjs.map +1 -1
  191. package/cjs/utils/to-date-string/to-date-string.cjs +9 -12
  192. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
  193. package/cjs/utils/to-time-string/to-time-string.cjs +6 -6
  194. package/cjs/utils/to-time-string/to-time-string.cjs.map +1 -1
  195. package/cjs/utils/validate-event/validate-event.cjs +12 -23
  196. package/cjs/utils/validate-event/validate-event.cjs.map +1 -1
  197. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs +76 -95
  198. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -1
  199. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.mjs +12 -0
  200. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.mjs.map +1 -0
  201. package/esm/components/DayView/DayView.mjs +479 -571
  202. package/esm/components/DayView/DayView.mjs.map +1 -1
  203. package/esm/components/DayView/DayView.module.mjs +20 -0
  204. package/esm/components/DayView/DayView.module.mjs.map +1 -0
  205. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs +89 -104
  206. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs.map +1 -1
  207. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs +104 -100
  208. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs.map +1 -1
  209. package/esm/components/DragContext/DragContext.mjs +6 -5
  210. package/esm/components/DragContext/DragContext.mjs.map +1 -1
  211. package/esm/components/MobileMonthView/MobileMonthView.mjs +257 -289
  212. package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -1
  213. package/esm/components/MobileMonthView/MobileMonthView.module.mjs +27 -0
  214. package/esm/components/MobileMonthView/MobileMonthView.module.mjs.map +1 -0
  215. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs +33 -47
  216. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs.map +1 -1
  217. package/esm/components/MonthView/MonthView.mjs +362 -460
  218. package/esm/components/MonthView/MonthView.mjs.map +1 -1
  219. package/esm/components/MonthView/MonthView.module.mjs +18 -0
  220. package/esm/components/MonthView/MonthView.module.mjs.map +1 -0
  221. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs +15 -22
  222. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs.map +1 -1
  223. package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs +23 -33
  224. package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs.map +1 -1
  225. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs +14 -23
  226. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs.map +1 -1
  227. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs +85 -91
  228. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs.map +1 -1
  229. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs +34 -39
  230. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs.map +1 -1
  231. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs +28 -33
  232. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs.map +1 -1
  233. package/esm/components/MonthView/handle-month-view-key-down.mjs +94 -137
  234. package/esm/components/MonthView/handle-month-view-key-down.mjs.map +1 -1
  235. package/esm/components/MoreEvents/MoreEvents.mjs +85 -118
  236. package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -1
  237. package/esm/components/MoreEvents/MoreEvents.module.mjs +11 -0
  238. package/esm/components/MoreEvents/MoreEvents.module.mjs.map +1 -0
  239. package/esm/components/Schedule/Schedule.mjs +145 -171
  240. package/esm/components/Schedule/Schedule.mjs.map +1 -1
  241. package/esm/components/Schedule/Schedule.module.mjs +11 -0
  242. package/esm/components/Schedule/Schedule.module.mjs.map +1 -0
  243. package/esm/components/ScheduleEvent/ScheduleEvent.mjs +114 -151
  244. package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -1
  245. package/esm/components/ScheduleEvent/ScheduleEvent.module.mjs +11 -0
  246. package/esm/components/ScheduleEvent/ScheduleEvent.module.mjs.map +1 -0
  247. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs +60 -70
  248. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs.map +1 -1
  249. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.mjs +7 -0
  250. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.mjs.map +1 -0
  251. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs +150 -187
  252. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs.map +1 -1
  253. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.mjs +13 -0
  254. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.mjs.map +1 -0
  255. package/esm/components/ScheduleHeader/ScheduleHeader.mjs +33 -46
  256. package/esm/components/ScheduleHeader/ScheduleHeader.mjs.map +1 -1
  257. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs +13 -0
  258. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs.map +1 -0
  259. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs +82 -82
  260. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs.map +1 -1
  261. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs +103 -123
  262. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs.map +1 -1
  263. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.mjs +7 -0
  264. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.mjs.map +1 -0
  265. package/esm/components/WeekView/WeekView.mjs +627 -741
  266. package/esm/components/WeekView/WeekView.mjs.map +1 -1
  267. package/esm/components/WeekView/WeekView.module.mjs +29 -0
  268. package/esm/components/WeekView/WeekView.module.mjs.map +1 -0
  269. package/esm/components/WeekView/WeekViewDay.mjs +80 -103
  270. package/esm/components/WeekView/WeekViewDay.mjs.map +1 -1
  271. package/esm/components/WeekView/get-week-label/get-week-label.mjs +25 -29
  272. package/esm/components/WeekView/get-week-label/get-week-label.mjs.map +1 -1
  273. package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs +21 -27
  274. package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs.map +1 -1
  275. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs +11 -23
  276. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs.map +1 -1
  277. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs +12 -25
  278. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs.map +1 -1
  279. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs +11 -10
  280. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs.map +1 -1
  281. package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs +14 -20
  282. package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs.map +1 -1
  283. package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs +26 -33
  284. package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs.map +1 -1
  285. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs +26 -37
  286. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs.map +1 -1
  287. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs +9 -10
  288. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs.map +1 -1
  289. package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs +15 -24
  290. package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs.map +1 -1
  291. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs +198 -180
  292. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs.map +1 -1
  293. package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs +11 -7
  294. package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs.map +1 -1
  295. package/esm/components/WeekView/handle-week-view-key-down.mjs +82 -125
  296. package/esm/components/WeekView/handle-week-view-key-down.mjs.map +1 -1
  297. package/esm/components/YearView/YearView.mjs +157 -206
  298. package/esm/components/YearView/YearView.mjs.map +1 -1
  299. package/esm/components/YearView/YearView.module.mjs +20 -0
  300. package/esm/components/YearView/YearView.module.mjs.map +1 -0
  301. package/esm/components/YearView/YearViewMonth.mjs +133 -152
  302. package/esm/components/YearView/YearViewMonth.mjs.map +1 -1
  303. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs +30 -42
  304. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs.map +1 -1
  305. package/esm/components/YearView/handle-year-view-key-down.mjs +143 -200
  306. package/esm/components/YearView/handle-year-view-key-down.mjs.map +1 -1
  307. package/esm/hooks/use-auto-scroll-on-drag.mjs +66 -68
  308. package/esm/hooks/use-auto-scroll-on-drag.mjs.map +1 -1
  309. package/esm/hooks/use-drag-drop-handlers.mjs +113 -121
  310. package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -1
  311. package/esm/hooks/use-drag-state.mjs +37 -40
  312. package/esm/hooks/use-drag-state.mjs.map +1 -1
  313. package/esm/hooks/use-event-resize.mjs +135 -157
  314. package/esm/hooks/use-event-resize.mjs.map +1 -1
  315. package/esm/hooks/use-slot-drag-select.mjs +74 -86
  316. package/esm/hooks/use-slot-drag-select.mjs.map +1 -1
  317. package/esm/index.mjs +49 -49
  318. package/esm/labels.mjs +30 -26
  319. package/esm/labels.mjs.map +1 -1
  320. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs +21 -30
  321. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs.map +1 -1
  322. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs +15 -18
  323. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs.map +1 -1
  324. package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs +9 -6
  325. package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs.map +1 -1
  326. package/esm/utils/expand-recurring-events/expand-recurring-events.mjs +101 -134
  327. package/esm/utils/expand-recurring-events/expand-recurring-events.mjs.map +1 -1
  328. package/esm/utils/format-date/format-date.mjs +8 -9
  329. package/esm/utils/format-date/format-date.mjs.map +1 -1
  330. package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs +23 -20
  331. package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs.map +1 -1
  332. package/esm/utils/get-current-time-position/get-current-time-position.mjs +17 -19
  333. package/esm/utils/get-current-time-position/get-current-time-position.mjs.map +1 -1
  334. package/esm/utils/get-day-position/get-day-position.mjs +24 -29
  335. package/esm/utils/get-day-position/get-day-position.mjs.map +1 -1
  336. package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs +50 -43
  337. package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs.map +1 -1
  338. package/esm/utils/get-end-of-week/get-end-of-week.mjs +11 -14
  339. package/esm/utils/get-end-of-week/get-end-of-week.mjs.map +1 -1
  340. package/esm/utils/get-month-days/get-month-days.mjs +39 -41
  341. package/esm/utils/get-month-days/get-month-days.mjs.map +1 -1
  342. package/esm/utils/get-month-range/get-month-range.mjs +23 -24
  343. package/esm/utils/get-month-range/get-month-range.mjs.map +1 -1
  344. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs +19 -15
  345. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs.map +1 -1
  346. package/esm/utils/get-months-list/get-months-list.mjs +18 -12
  347. package/esm/utils/get-months-list/get-months-list.mjs.map +1 -1
  348. package/esm/utils/get-start-of-week/get-start-of-week.mjs +9 -10
  349. package/esm/utils/get-start-of-week/get-start-of-week.mjs.map +1 -1
  350. package/esm/utils/get-visible-events/get-visible-events.mjs +13 -13
  351. package/esm/utils/get-visible-events/get-visible-events.mjs.map +1 -1
  352. package/esm/utils/get-week-days/get-week-days.mjs +21 -24
  353. package/esm/utils/get-week-days/get-week-days.mjs.map +1 -1
  354. package/esm/utils/get-week-number/get-week-number.mjs +9 -11
  355. package/esm/utils/get-week-number/get-week-number.mjs.map +1 -1
  356. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs +16 -17
  357. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
  358. package/esm/utils/get-years-list/get-years-list.mjs +8 -8
  359. package/esm/utils/get-years-list/get-years-list.mjs.map +1 -1
  360. package/esm/utils/is-after-min-date/is-after-min-date.mjs +7 -6
  361. package/esm/utils/is-after-min-date/is-after-min-date.mjs.map +1 -1
  362. package/esm/utils/is-all-day-event/is-all-day-event.mjs +11 -10
  363. package/esm/utils/is-all-day-event/is-all-day-event.mjs.map +1 -1
  364. package/esm/utils/is-before-max-date/is-before-max-date.mjs +7 -6
  365. package/esm/utils/is-before-max-date/is-before-max-date.mjs.map +1 -1
  366. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs +17 -21
  367. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs.map +1 -1
  368. package/esm/utils/is-events-overlap/is-events-overlap.mjs +11 -10
  369. package/esm/utils/is-events-overlap/is-events-overlap.mjs.map +1 -1
  370. package/esm/utils/is-in-time-range/is-in-time-range.mjs +15 -17
  371. package/esm/utils/is-in-time-range/is-in-time-range.mjs.map +1 -1
  372. package/esm/utils/is-multiday-event/is-multiday-event.mjs +8 -8
  373. package/esm/utils/is-multiday-event/is-multiday-event.mjs.map +1 -1
  374. package/esm/utils/is-same-month/is-same-month.mjs +7 -6
  375. package/esm/utils/is-same-month/is-same-month.mjs.map +1 -1
  376. package/esm/utils/is-within-week/is-within-week.mjs +13 -9
  377. package/esm/utils/is-within-week/is-within-week.mjs.map +1 -1
  378. package/esm/utils/next-week/next-week.mjs +13 -9
  379. package/esm/utils/next-week/next-week.mjs.map +1 -1
  380. package/esm/utils/parse-time-string/parse-time-string.mjs +11 -5
  381. package/esm/utils/parse-time-string/parse-time-string.mjs.map +1 -1
  382. package/esm/utils/previous-week/previous-week.mjs +13 -9
  383. package/esm/utils/previous-week/previous-week.mjs.map +1 -1
  384. package/esm/utils/sort-events/sort-events.mjs +12 -12
  385. package/esm/utils/sort-events/sort-events.mjs.map +1 -1
  386. package/esm/utils/to-date-string/to-date-string.mjs +7 -6
  387. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -1
  388. package/esm/utils/to-time-string/to-time-string.mjs +6 -4
  389. package/esm/utils/to-time-string/to-time-string.mjs.map +1 -1
  390. package/esm/utils/validate-event/validate-event.mjs +10 -17
  391. package/esm/utils/validate-event/validate-event.mjs.map +1 -1
  392. package/lib/components/DayView/DayView.d.ts +22 -3
  393. package/lib/components/MobileMonthView/MobileMonthView.d.ts +0 -2
  394. package/lib/components/MonthView/MonthView.d.ts +6 -1
  395. package/lib/components/Schedule/Schedule.d.ts +17 -3
  396. package/lib/components/WeekView/WeekView.d.ts +22 -3
  397. package/lib/components/WeekView/WeekViewDay.d.ts +7 -2
  398. package/lib/hooks/use-drag-drop-handlers.d.ts +6 -1
  399. package/lib/hooks/use-event-resize.d.ts +15 -2
  400. package/lib/labels.d.ts +1 -0
  401. package/package.json +4 -4
  402. package/styles.css +3 -1
  403. package/styles.layer.css +3 -1
  404. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs +0 -7
  405. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs.map +0 -1
  406. package/cjs/components/DayView/DayView.module.css.cjs +0 -7
  407. package/cjs/components/DayView/DayView.module.css.cjs.map +0 -1
  408. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs +0 -7
  409. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs.map +0 -1
  410. package/cjs/components/MonthView/MonthView.module.css.cjs +0 -7
  411. package/cjs/components/MonthView/MonthView.module.css.cjs.map +0 -1
  412. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs +0 -7
  413. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs.map +0 -1
  414. package/cjs/components/Schedule/Schedule.module.css.cjs +0 -7
  415. package/cjs/components/Schedule/Schedule.module.css.cjs.map +0 -1
  416. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs +0 -7
  417. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs.map +0 -1
  418. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs +0 -7
  419. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs.map +0 -1
  420. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs +0 -7
  421. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs.map +0 -1
  422. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs +0 -7
  423. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs.map +0 -1
  424. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs +0 -7
  425. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs.map +0 -1
  426. package/cjs/components/WeekView/WeekView.module.css.cjs +0 -7
  427. package/cjs/components/WeekView/WeekView.module.css.cjs.map +0 -1
  428. package/cjs/components/YearView/YearView.module.css.cjs +0 -7
  429. package/cjs/components/YearView/YearView.module.css.cjs.map +0 -1
  430. package/cjs/index.cjs.map +0 -1
  431. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs +0 -5
  432. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs.map +0 -1
  433. package/esm/components/DayView/DayView.module.css.mjs +0 -5
  434. package/esm/components/DayView/DayView.module.css.mjs.map +0 -1
  435. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs +0 -5
  436. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs.map +0 -1
  437. package/esm/components/MonthView/MonthView.module.css.mjs +0 -5
  438. package/esm/components/MonthView/MonthView.module.css.mjs.map +0 -1
  439. package/esm/components/MoreEvents/MoreEvents.module.css.mjs +0 -5
  440. package/esm/components/MoreEvents/MoreEvents.module.css.mjs.map +0 -1
  441. package/esm/components/Schedule/Schedule.module.css.mjs +0 -5
  442. package/esm/components/Schedule/Schedule.module.css.mjs.map +0 -1
  443. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs +0 -5
  444. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs.map +0 -1
  445. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs +0 -5
  446. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs.map +0 -1
  447. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs +0 -5
  448. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs.map +0 -1
  449. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs +0 -5
  450. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs.map +0 -1
  451. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs +0 -5
  452. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs.map +0 -1
  453. package/esm/components/WeekView/WeekView.module.css.mjs +0 -5
  454. package/esm/components/WeekView/WeekView.module.css.mjs.map +0 -1
  455. package/esm/components/YearView/YearView.module.css.mjs +0 -5
  456. package/esm/components/YearView/YearView.module.css.mjs.map +0 -1
  457. package/esm/index.mjs.map +0 -1
@@ -1,135 +1,90 @@
1
- 'use client';
2
- 'use strict';
3
-
1
+ "use client";
2
+ //#region packages/@mantine/schedule/src/components/WeekView/handle-week-view-key-down.ts
4
3
  function getDirection(key) {
5
- switch (key) {
6
- case "ArrowDown":
7
- return "down";
8
- case "ArrowUp":
9
- return "up";
10
- case "ArrowRight":
11
- return "right";
12
- case "ArrowLeft":
13
- return "left";
14
- default:
15
- return null;
16
- }
4
+ switch (key) {
5
+ case "ArrowDown": return "down";
6
+ case "ArrowUp": return "up";
7
+ case "ArrowRight": return "right";
8
+ case "ArrowLeft": return "left";
9
+ default: return null;
10
+ }
17
11
  }
18
12
  function getControlsSize(controlsRef) {
19
- if (!controlsRef.current) {
20
- return null;
21
- }
22
- return controlsRef.current.map((day) => day ? day.length : 0);
13
+ if (!controlsRef.current) return null;
14
+ return controlsRef.current.map((day) => day ? day.length : 0);
23
15
  }
24
- function getNextPosition({
25
- direction,
26
- dayIndex,
27
- slotIndex,
28
- size
29
- }) {
30
- const currentDaySize = size[dayIndex];
31
- if (!currentDaySize) {
32
- return null;
33
- }
34
- switch (direction) {
35
- case "up": {
36
- if (slotIndex === 0) {
37
- return null;
38
- }
39
- return {
40
- dayIndex,
41
- slotIndex: slotIndex - 1
42
- };
43
- }
44
- case "down": {
45
- if (slotIndex === currentDaySize - 1) {
46
- return null;
47
- }
48
- return {
49
- dayIndex,
50
- slotIndex: slotIndex + 1
51
- };
52
- }
53
- case "left": {
54
- if (dayIndex === 0) {
55
- return null;
56
- }
57
- const prevDaySize = size[dayIndex - 1];
58
- const clampedSlotIndex = Math.min(slotIndex, prevDaySize - 1);
59
- return {
60
- dayIndex: dayIndex - 1,
61
- slotIndex: clampedSlotIndex
62
- };
63
- }
64
- case "right": {
65
- if (dayIndex === size.length - 1) {
66
- return null;
67
- }
68
- const nextDaySize = size[dayIndex + 1];
69
- const clampedSlotIndex = Math.min(slotIndex, nextDaySize - 1);
70
- return {
71
- dayIndex: dayIndex + 1,
72
- slotIndex: clampedSlotIndex
73
- };
74
- }
75
- default:
76
- return null;
77
- }
16
+ function getNextPosition({ direction, dayIndex, slotIndex, size }) {
17
+ const currentDaySize = size[dayIndex];
18
+ if (!currentDaySize) return null;
19
+ switch (direction) {
20
+ case "up":
21
+ if (slotIndex === 0) return null;
22
+ return {
23
+ dayIndex,
24
+ slotIndex: slotIndex - 1
25
+ };
26
+ case "down":
27
+ if (slotIndex === currentDaySize - 1) return null;
28
+ return {
29
+ dayIndex,
30
+ slotIndex: slotIndex + 1
31
+ };
32
+ case "left": {
33
+ if (dayIndex === 0) return null;
34
+ const prevDaySize = size[dayIndex - 1];
35
+ const clampedSlotIndex = Math.min(slotIndex, prevDaySize - 1);
36
+ return {
37
+ dayIndex: dayIndex - 1,
38
+ slotIndex: clampedSlotIndex
39
+ };
40
+ }
41
+ case "right": {
42
+ if (dayIndex === size.length - 1) return null;
43
+ const nextDaySize = size[dayIndex + 1];
44
+ const clampedSlotIndex = Math.min(slotIndex, nextDaySize - 1);
45
+ return {
46
+ dayIndex: dayIndex + 1,
47
+ slotIndex: clampedSlotIndex
48
+ };
49
+ }
50
+ default: return null;
51
+ }
78
52
  }
79
- function focusOnNextFocusableControl({
80
- controlsRef,
81
- direction,
82
- dayIndex,
83
- slotIndex,
84
- size
85
- }) {
86
- const nextPosition = getNextPosition({
87
- direction,
88
- dayIndex,
89
- slotIndex,
90
- size
91
- });
92
- if (!nextPosition) {
93
- return;
94
- }
95
- const controlToFocus = controlsRef.current?.[nextPosition.dayIndex]?.[nextPosition.slotIndex];
96
- if (!controlToFocus) {
97
- return;
98
- }
99
- if (controlToFocus.disabled || controlToFocus.getAttribute("data-hidden")) {
100
- focusOnNextFocusableControl({
101
- controlsRef,
102
- direction,
103
- dayIndex: nextPosition.dayIndex,
104
- slotIndex: nextPosition.slotIndex,
105
- size
106
- });
107
- } else {
108
- controlToFocus.focus();
109
- }
53
+ function focusOnNextFocusableControl({ controlsRef, direction, dayIndex, slotIndex, size }) {
54
+ const nextPosition = getNextPosition({
55
+ direction,
56
+ dayIndex,
57
+ slotIndex,
58
+ size
59
+ });
60
+ if (!nextPosition) return;
61
+ const controlToFocus = controlsRef.current?.[nextPosition.dayIndex]?.[nextPosition.slotIndex];
62
+ if (!controlToFocus) return;
63
+ if (controlToFocus.disabled || controlToFocus.getAttribute("data-hidden")) focusOnNextFocusableControl({
64
+ controlsRef,
65
+ direction,
66
+ dayIndex: nextPosition.dayIndex,
67
+ slotIndex: nextPosition.slotIndex,
68
+ size
69
+ });
70
+ else controlToFocus.focus();
110
71
  }
111
- function handleWeekViewKeyDown({
112
- controlsRef,
113
- dayIndex,
114
- slotIndex,
115
- event
116
- }) {
117
- const direction = getDirection(event.key);
118
- if (direction) {
119
- event.preventDefault();
120
- const size = getControlsSize(controlsRef);
121
- if (!size) {
122
- return;
123
- }
124
- focusOnNextFocusableControl({
125
- controlsRef,
126
- direction,
127
- dayIndex,
128
- slotIndex,
129
- size
130
- });
131
- }
72
+ function handleWeekViewKeyDown({ controlsRef, dayIndex, slotIndex, event }) {
73
+ const direction = getDirection(event.key);
74
+ if (direction) {
75
+ event.preventDefault();
76
+ const size = getControlsSize(controlsRef);
77
+ if (!size) return;
78
+ focusOnNextFocusableControl({
79
+ controlsRef,
80
+ direction,
81
+ dayIndex,
82
+ slotIndex,
83
+ size
84
+ });
85
+ }
132
86
  }
133
-
87
+ //#endregion
134
88
  exports.handleWeekViewKeyDown = handleWeekViewKeyDown;
135
- //# sourceMappingURL=handle-week-view-key-down.cjs.map
89
+
90
+ //# sourceMappingURL=handle-week-view-key-down.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"handle-week-view-key-down.cjs","sources":["../../../src/components/WeekView/handle-week-view-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\n\n/** Reference to a 2D array of slot buttons: [dayIndex][slotIndex] */\nexport type WeekViewControlsRef = RefObject<HTMLButtonElement[][]>;\n\ntype Direction = 'up' | 'down' | 'left' | 'right';\n\ninterface SlotPosition {\n dayIndex: number;\n slotIndex: number;\n}\n\nfunction getDirection(key: KeyboardEvent['key']): Direction | null {\n switch (key) {\n case 'ArrowDown':\n return 'down';\n case 'ArrowUp':\n return 'up';\n case 'ArrowRight':\n return 'right';\n case 'ArrowLeft':\n return 'left';\n default:\n return null;\n }\n}\n\nfunction getControlsSize(controlsRef: WeekViewControlsRef): number[] | null {\n if (!controlsRef.current) {\n return null;\n }\n return controlsRef.current.map((day) => (day ? day.length : 0));\n}\n\ninterface GetNextPositionInput {\n direction: Direction;\n dayIndex: number;\n slotIndex: number;\n size: number[];\n}\n\nfunction getNextPosition({\n direction,\n dayIndex,\n slotIndex,\n size,\n}: GetNextPositionInput): SlotPosition | null {\n const currentDaySize = size[dayIndex];\n if (!currentDaySize) {\n return null;\n }\n\n switch (direction) {\n case 'up': {\n if (slotIndex === 0) {\n return null;\n }\n return {\n dayIndex,\n slotIndex: slotIndex - 1,\n };\n }\n\n case 'down': {\n if (slotIndex === currentDaySize - 1) {\n return null;\n }\n return {\n dayIndex,\n slotIndex: slotIndex + 1,\n };\n }\n\n case 'left': {\n if (dayIndex === 0) {\n return null;\n }\n const prevDaySize = size[dayIndex - 1];\n const clampedSlotIndex = Math.min(slotIndex, prevDaySize - 1);\n return {\n dayIndex: dayIndex - 1,\n slotIndex: clampedSlotIndex,\n };\n }\n\n case 'right': {\n if (dayIndex === size.length - 1) {\n return null;\n }\n const nextDaySize = size[dayIndex + 1];\n const clampedSlotIndex = Math.min(slotIndex, nextDaySize - 1);\n return {\n dayIndex: dayIndex + 1,\n slotIndex: clampedSlotIndex,\n };\n }\n\n default:\n return null;\n }\n}\n\ninterface FocusOnNextControlInput {\n controlsRef: WeekViewControlsRef;\n direction: Direction;\n dayIndex: number;\n slotIndex: number;\n size: number[];\n}\n\nfunction focusOnNextFocusableControl({\n controlsRef,\n direction,\n dayIndex,\n slotIndex,\n size,\n}: FocusOnNextControlInput): void {\n const nextPosition = getNextPosition({\n direction,\n dayIndex,\n slotIndex,\n size,\n });\n\n if (!nextPosition) {\n return;\n }\n\n const controlToFocus = controlsRef.current?.[nextPosition.dayIndex]?.[nextPosition.slotIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (controlToFocus.disabled || controlToFocus.getAttribute('data-hidden')) {\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n dayIndex: nextPosition.dayIndex,\n slotIndex: nextPosition.slotIndex,\n size,\n });\n } else {\n controlToFocus.focus();\n }\n}\n\nexport interface HandleWeekViewKeyDownInput {\n controlsRef: WeekViewControlsRef;\n dayIndex: number;\n slotIndex: number;\n event: React.KeyboardEvent<HTMLButtonElement>;\n}\n\nexport function handleWeekViewKeyDown({\n controlsRef,\n dayIndex,\n slotIndex,\n event,\n}: HandleWeekViewKeyDownInput): void {\n const direction = getDirection(event.key);\n\n if (direction) {\n event.preventDefault();\n\n const size = getControlsSize(controlsRef);\n\n if (!size) {\n return;\n }\n\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n dayIndex,\n slotIndex,\n size,\n });\n }\n}\n"],"names":[],"mappings":";;;AAYA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,CAA6C,CAAA;AACjE,CAAA,CAAA,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAK,CAAA,CAAA,CAAA,CACX,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACT,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACT,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACT,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAEb,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmD,CAAA;AAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,OAAA,CAAA,CAAS,CAAA;AACxB,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA;AACA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,GAAA,CAAI,CAAC,CAAA,CAAA,MAAS,GAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAE,CAAA,CAAA;AAChE,CAAA;AASA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,eAAA,CAAgB,CAAA;AAAA,CAAA,CACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAA8C,CAAA;AAC5C,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,EAAK,QAAQ,CAAA,CAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA;AAEA,CAAA,CAAA,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAW,CAAA,CAAA,CAAA,CACjB,CAAA,CAAA,CAAA,CAAA,CAAK,IAAA,CAAA,CAAM,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAc,CAAA,CAAA,CAAG,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzB,CAAA;AAAA,CAAA,CAAA,CAAA,CACF,CAAA;AAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAK,MAAA,CAAA,CAAQ,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAiB,CAAA,CAAA,CAAG,CAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzB,CAAA;AAAA,CAAA,CAAA,CAAA,CACF,CAAA;AAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAK,MAAA,CAAA,CAAQ,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAa,CAAA,CAAA,CAAG,CAAA;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,WAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAc,CAAC,CAAA,CAAA;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACb,CAAA;AAAA,CAAA,CAAA,CAAA,CACF,CAAA;AAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAK,OAAA,CAAA,CAAS,CAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,QAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAG,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,WAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAc,CAAC,CAAA,CAAA;AAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACb,CAAA;AAAA,CAAA,CAAA,CAAA,CACF,CAAA;AAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA;AAEb,CAAA;AAUA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,2BAAA,CAA4B,CAAA;AAAA,CAAA,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAkC,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA;AAAA,CAAA,CAAA,CAAA,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CACD,CAAA,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACF,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,QAAQ,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,SAAS,CAAA,CAAA;AAE5F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACF,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAG,CAAA;AACzE,CAAA,CAAA,CAAA,CAAA,2BAAA,CAA4B,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxB,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CACD,CAAA,CAAA;AAAA,CAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AAAA,CAAA,CACvB,CAAA;AACF,CAAA;AASO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,qBAAA,CAAsB,CAAA;AAAA,CAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAqC,CAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,SAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,GAAG,CAAA,CAAA;AAExC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAA,CAAA,CAAW,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA;AAErB,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,WAAW,CAAA,CAAA;AAExC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACF,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,2BAAA,CAA4B,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CACD,CAAA,CAAA;AAAA,CAAA,CACH,CAAA;AACF,CAAA;;"}
1
+ {"version":3,"file":"handle-week-view-key-down.cjs","names":[],"sources":["../../../src/components/WeekView/handle-week-view-key-down.ts"],"sourcesContent":["import { RefObject } from 'react';\n\n/** Reference to a 2D array of slot buttons: [dayIndex][slotIndex] */\nexport type WeekViewControlsRef = RefObject<HTMLButtonElement[][]>;\n\ntype Direction = 'up' | 'down' | 'left' | 'right';\n\ninterface SlotPosition {\n dayIndex: number;\n slotIndex: number;\n}\n\nfunction getDirection(key: KeyboardEvent['key']): Direction | null {\n switch (key) {\n case 'ArrowDown':\n return 'down';\n case 'ArrowUp':\n return 'up';\n case 'ArrowRight':\n return 'right';\n case 'ArrowLeft':\n return 'left';\n default:\n return null;\n }\n}\n\nfunction getControlsSize(controlsRef: WeekViewControlsRef): number[] | null {\n if (!controlsRef.current) {\n return null;\n }\n return controlsRef.current.map((day) => (day ? day.length : 0));\n}\n\ninterface GetNextPositionInput {\n direction: Direction;\n dayIndex: number;\n slotIndex: number;\n size: number[];\n}\n\nfunction getNextPosition({\n direction,\n dayIndex,\n slotIndex,\n size,\n}: GetNextPositionInput): SlotPosition | null {\n const currentDaySize = size[dayIndex];\n if (!currentDaySize) {\n return null;\n }\n\n switch (direction) {\n case 'up': {\n if (slotIndex === 0) {\n return null;\n }\n return {\n dayIndex,\n slotIndex: slotIndex - 1,\n };\n }\n\n case 'down': {\n if (slotIndex === currentDaySize - 1) {\n return null;\n }\n return {\n dayIndex,\n slotIndex: slotIndex + 1,\n };\n }\n\n case 'left': {\n if (dayIndex === 0) {\n return null;\n }\n const prevDaySize = size[dayIndex - 1];\n const clampedSlotIndex = Math.min(slotIndex, prevDaySize - 1);\n return {\n dayIndex: dayIndex - 1,\n slotIndex: clampedSlotIndex,\n };\n }\n\n case 'right': {\n if (dayIndex === size.length - 1) {\n return null;\n }\n const nextDaySize = size[dayIndex + 1];\n const clampedSlotIndex = Math.min(slotIndex, nextDaySize - 1);\n return {\n dayIndex: dayIndex + 1,\n slotIndex: clampedSlotIndex,\n };\n }\n\n default:\n return null;\n }\n}\n\ninterface FocusOnNextControlInput {\n controlsRef: WeekViewControlsRef;\n direction: Direction;\n dayIndex: number;\n slotIndex: number;\n size: number[];\n}\n\nfunction focusOnNextFocusableControl({\n controlsRef,\n direction,\n dayIndex,\n slotIndex,\n size,\n}: FocusOnNextControlInput): void {\n const nextPosition = getNextPosition({\n direction,\n dayIndex,\n slotIndex,\n size,\n });\n\n if (!nextPosition) {\n return;\n }\n\n const controlToFocus = controlsRef.current?.[nextPosition.dayIndex]?.[nextPosition.slotIndex];\n\n if (!controlToFocus) {\n return;\n }\n\n if (controlToFocus.disabled || controlToFocus.getAttribute('data-hidden')) {\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n dayIndex: nextPosition.dayIndex,\n slotIndex: nextPosition.slotIndex,\n size,\n });\n } else {\n controlToFocus.focus();\n }\n}\n\nexport interface HandleWeekViewKeyDownInput {\n controlsRef: WeekViewControlsRef;\n dayIndex: number;\n slotIndex: number;\n event: React.KeyboardEvent<HTMLButtonElement>;\n}\n\nexport function handleWeekViewKeyDown({\n controlsRef,\n dayIndex,\n slotIndex,\n event,\n}: HandleWeekViewKeyDownInput): void {\n const direction = getDirection(event.key);\n\n if (direction) {\n event.preventDefault();\n\n const size = getControlsSize(controlsRef);\n\n if (!size) {\n return;\n }\n\n focusOnNextFocusableControl({\n controlsRef,\n direction,\n dayIndex,\n slotIndex,\n size,\n });\n }\n}\n"],"mappings":";;AAYA,SAAS,aAAa,KAA6C;AACjE,SAAQ,KAAR;EACE,KAAK,YACH,QAAO;EACT,KAAK,UACH,QAAO;EACT,KAAK,aACH,QAAO;EACT,KAAK,YACH,QAAO;EACT,QACE,QAAO;;;AAIb,SAAS,gBAAgB,aAAmD;AAC1E,KAAI,CAAC,YAAY,QACf,QAAO;AAET,QAAO,YAAY,QAAQ,KAAK,QAAS,MAAM,IAAI,SAAS,EAAG;;AAUjE,SAAS,gBAAgB,EACvB,WACA,UACA,WACA,QAC4C;CAC5C,MAAM,iBAAiB,KAAK;AAC5B,KAAI,CAAC,eACH,QAAO;AAGT,SAAQ,WAAR;EACE,KAAK;AACH,OAAI,cAAc,EAChB,QAAO;AAET,UAAO;IACL;IACA,WAAW,YAAY;IACxB;EAGH,KAAK;AACH,OAAI,cAAc,iBAAiB,EACjC,QAAO;AAET,UAAO;IACL;IACA,WAAW,YAAY;IACxB;EAGH,KAAK,QAAQ;AACX,OAAI,aAAa,EACf,QAAO;GAET,MAAM,cAAc,KAAK,WAAW;GACpC,MAAM,mBAAmB,KAAK,IAAI,WAAW,cAAc,EAAE;AAC7D,UAAO;IACL,UAAU,WAAW;IACrB,WAAW;IACZ;;EAGH,KAAK,SAAS;AACZ,OAAI,aAAa,KAAK,SAAS,EAC7B,QAAO;GAET,MAAM,cAAc,KAAK,WAAW;GACpC,MAAM,mBAAmB,KAAK,IAAI,WAAW,cAAc,EAAE;AAC7D,UAAO;IACL,UAAU,WAAW;IACrB,WAAW;IACZ;;EAGH,QACE,QAAO;;;AAYb,SAAS,4BAA4B,EACnC,aACA,WACA,UACA,WACA,QACgC;CAChC,MAAM,eAAe,gBAAgB;EACnC;EACA;EACA;EACA;EACD,CAAC;AAEF,KAAI,CAAC,aACH;CAGF,MAAM,iBAAiB,YAAY,UAAU,aAAa,YAAY,aAAa;AAEnF,KAAI,CAAC,eACH;AAGF,KAAI,eAAe,YAAY,eAAe,aAAa,cAAc,CACvE,6BAA4B;EAC1B;EACA;EACA,UAAU,aAAa;EACvB,WAAW,aAAa;EACxB;EACD,CAAC;KAEF,gBAAe,OAAO;;AAW1B,SAAgB,sBAAsB,EACpC,aACA,UACA,WACA,SACmC;CACnC,MAAM,YAAY,aAAa,MAAM,IAAI;AAEzC,KAAI,WAAW;AACb,QAAM,gBAAgB;EAEtB,MAAM,OAAO,gBAAgB,YAAY;AAEzC,MAAI,CAAC,KACH;AAGF,8BAA4B;GAC1B;GACA;GACA;GACA;GACA;GACD,CAAC"}
@@ -1,219 +1,166 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var jsxRuntime = require('react/jsx-runtime');
5
- var dayjs = require('dayjs');
6
- var React = require('react');
7
- var core = require('@mantine/core');
8
- var dates = require('@mantine/dates');
9
- require('../../utils/get-week-number/get-week-number.cjs');
10
- var getMonthDays = require('../../utils/get-month-days/get-month-days.cjs');
11
- var isSameMonth = require('../../utils/is-same-month/is-same-month.cjs');
12
- var getMonthsByQuarter = require('../../utils/get-months-by-quarter/get-months-by-quarter.cjs');
13
- var toDateString = require('../../utils/to-date-string/to-date-string.cjs');
14
- var expandRecurringEvents = require('../../utils/expand-recurring-events/expand-recurring-events.cjs');
15
- var ScheduleHeaderBase = require('../ScheduleHeader/ScheduleHeaderBase.cjs');
16
- var getYearViewEvents = require('./get-year-view-events/get-year-view-events.cjs');
17
- var handleYearViewKeyDown = require('./handle-year-view-key-down.cjs');
18
- var YearViewMonth = require('./YearViewMonth.cjs');
19
- var YearView_module = require('./YearView.module.css.cjs');
20
-
21
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
22
-
23
- var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
24
-
1
+ "use client";
2
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
3
+ const require_get_month_days = require("../../utils/get-month-days/get-month-days.cjs");
4
+ const require_is_same_month = require("../../utils/is-same-month/is-same-month.cjs");
5
+ const require_get_months_by_quarter = require("../../utils/get-months-by-quarter/get-months-by-quarter.cjs");
6
+ const require_to_date_string = require("../../utils/to-date-string/to-date-string.cjs");
7
+ const require_expand_recurring_events = require("../../utils/expand-recurring-events/expand-recurring-events.cjs");
8
+ const require_ScheduleHeaderBase = require("../ScheduleHeader/ScheduleHeaderBase.cjs");
9
+ const require_get_year_view_events = require("./get-year-view-events/get-year-view-events.cjs");
10
+ const require_handle_year_view_key_down = require("./handle-year-view-key-down.cjs");
11
+ const require_YearViewMonth = require("./YearViewMonth.cjs");
12
+ const require_YearView_module = require("./YearView.module.cjs");
13
+ let dayjs = require("dayjs");
14
+ dayjs = require_runtime.__toESM(dayjs);
15
+ let _mantine_core = require("@mantine/core");
16
+ let react = require("react");
17
+ let _mantine_dates = require("@mantine/dates");
18
+ let react_jsx_runtime = require("react/jsx-runtime");
19
+ //#region packages/@mantine/schedule/src/components/YearView/YearView.tsx
25
20
  const defaultProps = {
26
- __staticSelector: "YearView",
27
- monthLabelFormat: "MMMM",
28
- withWeekDays: true,
29
- highlightToday: true,
30
- withHeader: true,
31
- withOutsideDays: true,
32
- mode: "default"
21
+ __staticSelector: "YearView",
22
+ monthLabelFormat: "MMMM",
23
+ withWeekDays: true,
24
+ highlightToday: true,
25
+ withHeader: true,
26
+ withOutsideDays: true,
27
+ mode: "default"
33
28
  };
34
- const varsResolver = core.createVarsResolver((_theme, { radius }) => ({
35
- yearView: { "--year-view-radius": radius ? core.getRadius(radius) : void 0 }
36
- }));
37
- const YearView = core.factory((_props) => {
38
- const props = core.useProps("YearView", defaultProps, _props);
39
- const {
40
- // YearView props
41
- date,
42
- onDateChange,
43
- events,
44
- // YearViewMonth settings
45
- monthLabelFormat,
46
- withWeekNumbers,
47
- withWeekDays,
48
- locale,
49
- firstDayOfWeek,
50
- weekdayFormat,
51
- weekendDays,
52
- onMonthClick,
53
- onDayClick,
54
- onWeekNumberClick,
55
- getDayProps,
56
- getWeekNumberProps,
57
- highlightToday,
58
- labels,
59
- withOutsideDays,
60
- // ScheduleHeader props
61
- withHeader,
62
- monthYearSelectProps,
63
- onViewChange,
64
- previousControlProps,
65
- nextControlProps,
66
- todayControlProps,
67
- viewSelectProps,
68
- // System props
69
- __staticSelector,
70
- classNames,
71
- className,
72
- style,
73
- styles,
74
- unstyled,
75
- vars,
76
- attributes,
77
- radius,
78
- mode,
79
- recurrenceExpansionLimit,
80
- ...others
81
- } = props;
82
- const ctx = dates.useDatesContext();
83
- const getStyles = core.useStyles({
84
- name: __staticSelector,
85
- classes: YearView_module,
86
- props,
87
- className,
88
- style,
89
- classNames,
90
- styles,
91
- unstyled,
92
- vars,
93
- varsResolver,
94
- attributes,
95
- rootSelector: "yearView"
96
- });
97
- const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({
98
- classNames,
99
- styles,
100
- props
101
- });
102
- const stylesApiProps = {
103
- classNames: resolvedClassNames,
104
- styles: resolvedStyles,
105
- attributes,
106
- __staticSelector,
107
- radius
108
- };
109
- const expandedEvents = expandRecurringEvents.expandRecurringEvents({
110
- events,
111
- rangeStart: dayjs__default.default(date).startOf("year").toDate(),
112
- rangeEnd: dayjs__default.default(date).endOf("year").toDate(),
113
- expansionLimit: recurrenceExpansionLimit
114
- });
115
- const groupedEvents = getYearViewEvents.getYearViewEvents({ date, events: expandedEvents });
116
- const daysRef = React.useRef([]);
117
- const getFirstDayIndex = (month) => {
118
- const weeks = getMonthDays.getMonthDays({
119
- month: dayjs__default.default(month).format("YYYY-MM-DD"),
120
- firstDayOfWeek: ctx.getFirstDayOfWeek(firstDayOfWeek),
121
- consistentWeeks: true
122
- });
123
- for (let weekIndex = 0; weekIndex < weeks.length; weekIndex++) {
124
- const week = weeks[weekIndex];
125
- for (let dayIndex = 0; dayIndex < week.length; dayIndex++) {
126
- const dayDate = week[dayIndex];
127
- if (isSameMonth.isSameMonth(dayDate, month)) {
128
- return { weekIndex, dayIndex };
129
- }
130
- }
131
- }
132
- return void 0;
133
- };
134
- let globalMonthIndex = 0;
135
- const months = getMonthsByQuarter.getMonthsByQuarter(dayjs__default.default(date).format("YYYY-MM-DD")).flat().map((month) => {
136
- const currentMonthIndex = globalMonthIndex;
137
- globalMonthIndex++;
138
- return /* @__PURE__ */ jsxRuntime.jsx(
139
- YearViewMonth.YearViewMonth,
140
- {
141
- month,
142
- getStyles,
143
- monthLabelFormat,
144
- withWeekNumbers,
145
- withWeekDays,
146
- locale,
147
- firstDayOfWeek,
148
- weekdayFormat: weekdayFormat || ((date2) => dayjs__default.default(date2).locale(ctx.getLocale(locale)).format("dd").slice(0, 1)),
149
- weekendDays,
150
- getDayProps,
151
- getWeekNumberProps,
152
- onMonthClick,
153
- onDayClick,
154
- onWeekNumberClick,
155
- highlightToday,
156
- groupedEvents,
157
- mode,
158
- withOutsideDays,
159
- firstDayIndex: getFirstDayIndex(month),
160
- __getDayRef: (weekIndex, dayIndex, node) => {
161
- if (!Array.isArray(daysRef.current[currentMonthIndex])) {
162
- daysRef.current[currentMonthIndex] = [];
163
- }
164
- if (!Array.isArray(daysRef.current[currentMonthIndex][weekIndex])) {
165
- daysRef.current[currentMonthIndex][weekIndex] = [];
166
- }
167
- daysRef.current[currentMonthIndex][weekIndex][dayIndex] = node;
168
- },
169
- __onDayKeyDown: (event, payload) => {
170
- handleYearViewKeyDown.handleYearViewKeyDown({
171
- controlsRef: daysRef,
172
- monthIndex: currentMonthIndex,
173
- weekIndex: payload.weekIndex,
174
- dayIndex: payload.dayIndex,
175
- event
176
- });
177
- }
178
- },
179
- month
180
- );
181
- });
182
- return /* @__PURE__ */ jsxRuntime.jsxs(core.Box, { ...getStyles("yearView"), mod: { static: mode === "static" }, ...others, children: [
183
- withHeader && /* @__PURE__ */ jsxRuntime.jsx(
184
- ScheduleHeaderBase.ScheduleHeaderBase,
185
- {
186
- view: "year",
187
- navigationHandlers: {
188
- previous: () => toDateString.toDateString(dayjs__default.default(date).subtract(1, "year").startOf("year")),
189
- next: () => toDateString.toDateString(dayjs__default.default(date).add(1, "year").startOf("year")),
190
- today: () => toDateString.toDateString(dayjs__default.default())
191
- },
192
- control: {
193
- monthYearSelect: {
194
- withMonths: false,
195
- yearValue: dayjs__default.default(date).get("year"),
196
- monthValue: dayjs__default.default(date).get("month"),
197
- onYearChange: (year) => onDateChange?.(toDateString.toDateString(dayjs__default.default(date).set("year", year).startOf("year"))),
198
- ...monthYearSelectProps
199
- }
200
- },
201
- labels,
202
- onDateChange,
203
- onViewChange,
204
- previousControlProps,
205
- nextControlProps,
206
- todayControlProps,
207
- viewSelectProps,
208
- stylesApiProps
209
- }
210
- ),
211
- /* @__PURE__ */ jsxRuntime.jsx("div", { ...getStyles("yearViewMonths"), children: months })
212
- ] });
29
+ const varsResolver = (0, _mantine_core.createVarsResolver)((_theme, { radius }) => ({ yearView: { "--year-view-radius": radius ? (0, _mantine_core.getRadius)(radius) : void 0 } }));
30
+ const YearView = (0, _mantine_core.factory)((_props) => {
31
+ const props = (0, _mantine_core.useProps)("YearView", defaultProps, _props);
32
+ const { date, onDateChange, events, monthLabelFormat, withWeekNumbers, withWeekDays, locale, firstDayOfWeek, weekdayFormat, weekendDays, onMonthClick, onDayClick, onWeekNumberClick, getDayProps, getWeekNumberProps, highlightToday, labels, withOutsideDays, withHeader, monthYearSelectProps, onViewChange, previousControlProps, nextControlProps, todayControlProps, viewSelectProps, __staticSelector, classNames, className, style, styles, unstyled, vars, attributes, radius, mode, recurrenceExpansionLimit, ...others } = props;
33
+ const ctx = (0, _mantine_dates.useDatesContext)();
34
+ const getStyles = (0, _mantine_core.useStyles)({
35
+ name: __staticSelector,
36
+ classes: require_YearView_module.default,
37
+ props,
38
+ className,
39
+ style,
40
+ classNames,
41
+ styles,
42
+ unstyled,
43
+ vars,
44
+ varsResolver,
45
+ attributes,
46
+ rootSelector: "yearView"
47
+ });
48
+ const { resolvedClassNames, resolvedStyles } = (0, _mantine_core.useResolvedStylesApi)({
49
+ classNames,
50
+ styles,
51
+ props
52
+ });
53
+ const stylesApiProps = {
54
+ classNames: resolvedClassNames,
55
+ styles: resolvedStyles,
56
+ attributes,
57
+ __staticSelector,
58
+ radius
59
+ };
60
+ const groupedEvents = require_get_year_view_events.getYearViewEvents({
61
+ date,
62
+ events: require_expand_recurring_events.expandRecurringEvents({
63
+ events,
64
+ rangeStart: (0, dayjs.default)(date).startOf("year").toDate(),
65
+ rangeEnd: (0, dayjs.default)(date).endOf("year").toDate(),
66
+ expansionLimit: recurrenceExpansionLimit
67
+ })
68
+ });
69
+ const daysRef = (0, react.useRef)([]);
70
+ const getFirstDayIndex = (month) => {
71
+ const weeks = require_get_month_days.getMonthDays({
72
+ month: (0, dayjs.default)(month).format("YYYY-MM-DD"),
73
+ firstDayOfWeek: ctx.getFirstDayOfWeek(firstDayOfWeek),
74
+ consistentWeeks: true
75
+ });
76
+ for (let weekIndex = 0; weekIndex < weeks.length; weekIndex++) {
77
+ const week = weeks[weekIndex];
78
+ for (let dayIndex = 0; dayIndex < week.length; dayIndex++) {
79
+ const dayDate = week[dayIndex];
80
+ if (require_is_same_month.isSameMonth(dayDate, month)) return {
81
+ weekIndex,
82
+ dayIndex
83
+ };
84
+ }
85
+ }
86
+ };
87
+ let globalMonthIndex = 0;
88
+ const months = require_get_months_by_quarter.getMonthsByQuarter((0, dayjs.default)(date).format("YYYY-MM-DD")).flat().map((month) => {
89
+ const currentMonthIndex = globalMonthIndex;
90
+ globalMonthIndex++;
91
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_YearViewMonth.YearViewMonth, {
92
+ month,
93
+ getStyles,
94
+ monthLabelFormat,
95
+ withWeekNumbers,
96
+ withWeekDays,
97
+ locale,
98
+ firstDayOfWeek,
99
+ weekdayFormat: weekdayFormat || ((date) => (0, dayjs.default)(date).locale(ctx.getLocale(locale)).format("dd").slice(0, 1)),
100
+ weekendDays,
101
+ getDayProps,
102
+ getWeekNumberProps,
103
+ onMonthClick,
104
+ onDayClick,
105
+ onWeekNumberClick,
106
+ highlightToday,
107
+ groupedEvents,
108
+ mode,
109
+ withOutsideDays,
110
+ firstDayIndex: getFirstDayIndex(month),
111
+ __getDayRef: (weekIndex, dayIndex, node) => {
112
+ if (!Array.isArray(daysRef.current[currentMonthIndex])) daysRef.current[currentMonthIndex] = [];
113
+ if (!Array.isArray(daysRef.current[currentMonthIndex][weekIndex])) daysRef.current[currentMonthIndex][weekIndex] = [];
114
+ daysRef.current[currentMonthIndex][weekIndex][dayIndex] = node;
115
+ },
116
+ __onDayKeyDown: (event, payload) => {
117
+ require_handle_year_view_key_down.handleYearViewKeyDown({
118
+ controlsRef: daysRef,
119
+ monthIndex: currentMonthIndex,
120
+ weekIndex: payload.weekIndex,
121
+ dayIndex: payload.dayIndex,
122
+ event
123
+ });
124
+ }
125
+ }, month);
126
+ });
127
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Box, {
128
+ ...getStyles("yearView"),
129
+ mod: { static: mode === "static" },
130
+ ...others,
131
+ children: [withHeader && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ScheduleHeaderBase.ScheduleHeaderBase, {
132
+ view: "year",
133
+ navigationHandlers: {
134
+ previous: () => require_to_date_string.toDateString((0, dayjs.default)(date).subtract(1, "year").startOf("year")),
135
+ next: () => require_to_date_string.toDateString((0, dayjs.default)(date).add(1, "year").startOf("year")),
136
+ today: () => require_to_date_string.toDateString((0, dayjs.default)())
137
+ },
138
+ control: { monthYearSelect: {
139
+ locale,
140
+ withMonths: false,
141
+ yearValue: (0, dayjs.default)(date).get("year"),
142
+ monthValue: (0, dayjs.default)(date).get("month"),
143
+ onYearChange: (year) => onDateChange?.(require_to_date_string.toDateString((0, dayjs.default)(date).set("year", year).startOf("year"))),
144
+ ...monthYearSelectProps
145
+ } },
146
+ labels,
147
+ onDateChange,
148
+ onViewChange,
149
+ previousControlProps,
150
+ nextControlProps,
151
+ todayControlProps,
152
+ viewSelectProps,
153
+ stylesApiProps
154
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
155
+ ...getStyles("yearViewMonths"),
156
+ children: months
157
+ })]
158
+ });
213
159
  });
214
160
  YearView.displayName = "@mantine/schedule/YearView";
215
- YearView.classes = YearView_module;
161
+ YearView.classes = require_YearView_module.default;
216
162
  YearView.varsResolver = varsResolver;
217
-
163
+ //#endregion
218
164
  exports.YearView = YearView;
219
- //# sourceMappingURL=YearView.cjs.map
165
+
166
+ //# sourceMappingURL=YearView.cjs.map