@mantine/schedule 9.0.0-alpha.4 → 9.0.0-alpha.6

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 (468) hide show
  1. package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
  2. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs +79 -101
  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 +462 -480
  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 -105
  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 -49
  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 -289
  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 -49
  21. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs.map +1 -1
  22. package/cjs/components/MonthView/MonthView.cjs +365 -416
  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 -81
  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 -44
  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 -38
  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 -165
  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 -130
  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 -189
  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 +617 -632
  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 +71 -106
  75. package/cjs/components/WeekView/WeekViewDay.cjs.map +1 -1
  76. package/cjs/components/WeekView/get-week-label/get-week-label.cjs +27 -34
  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 -28
  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 -21
  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 -34
  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 -38
  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 -140
  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 -210
  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 -156
  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 -47
  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 +110 -126
  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 +134 -0
  119. package/cjs/hooks/use-event-resize.cjs.map +1 -0
  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 -101
  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 +120 -0
  132. package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs.map +1 -0
  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 -94
  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 +459 -473
  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 -103
  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 -43
  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 -281
  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 -43
  216. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs.map +1 -1
  217. package/esm/components/MonthView/MonthView.mjs +362 -409
  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 -75
  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 -38
  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 -32
  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 -162
  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 -127
  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 -186
  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 +614 -625
  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 +69 -100
  270. package/esm/components/WeekView/WeekViewDay.mjs.map +1 -1
  271. package/esm/components/WeekView/get-week-label/get-week-label.mjs +25 -28
  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 -26
  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 -19
  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 -32
  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 -36
  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 -134
  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 -203
  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 -150
  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 -41
  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 +108 -120
  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 +132 -0
  314. package/esm/hooks/use-event-resize.mjs.map +1 -0
  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 -48
  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 +118 -0
  327. package/esm/utils/expand-recurring-events/expand-recurring-events.mjs.map +1 -0
  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 +10 -2
  393. package/lib/components/DayView/get-day-view-events/get-day-positioned-events.d.ts +1 -1
  394. package/lib/components/DayView/get-day-view-events/get-day-view-events.d.ts +4 -2
  395. package/lib/components/MobileMonthView/MobileMonthView.d.ts +2 -2
  396. package/lib/components/MonthView/MonthView.d.ts +7 -3
  397. package/lib/components/MonthView/get-month-view-events/get-month-positioned-events.d.ts +4 -0
  398. package/lib/components/Schedule/Schedule.d.ts +10 -2
  399. package/lib/components/ScheduleEvent/ScheduleEvent.d.ts +7 -1
  400. package/lib/components/WeekView/WeekView.d.ts +10 -2
  401. package/lib/components/WeekView/WeekViewDay.d.ts +3 -1
  402. package/lib/components/WeekView/get-week-view-events/get-week-positioned-events.d.ts +1 -0
  403. package/lib/components/YearView/YearView.d.ts +3 -1
  404. package/lib/hooks/use-drag-drop-handlers.d.ts +1 -1
  405. package/lib/hooks/use-event-resize.d.ts +22 -0
  406. package/lib/labels.d.ts +1 -0
  407. package/lib/test-utils.d.ts +1 -1
  408. package/lib/types.d.ts +58 -8
  409. package/lib/utils/expand-recurring-events/expand-recurring-events.d.ts +10 -0
  410. package/lib/utils/index.d.ts +1 -0
  411. package/lib/utils/validate-event/validate-event.d.ts +1 -1
  412. package/package.json +9 -6
  413. package/styles.css +185 -79
  414. package/styles.layer.css +185 -79
  415. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs +0 -7
  416. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs.map +0 -1
  417. package/cjs/components/DayView/DayView.module.css.cjs +0 -7
  418. package/cjs/components/DayView/DayView.module.css.cjs.map +0 -1
  419. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs +0 -7
  420. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs.map +0 -1
  421. package/cjs/components/MonthView/MonthView.module.css.cjs +0 -7
  422. package/cjs/components/MonthView/MonthView.module.css.cjs.map +0 -1
  423. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs +0 -7
  424. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs.map +0 -1
  425. package/cjs/components/Schedule/Schedule.module.css.cjs +0 -7
  426. package/cjs/components/Schedule/Schedule.module.css.cjs.map +0 -1
  427. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs +0 -7
  428. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs.map +0 -1
  429. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs +0 -7
  430. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs.map +0 -1
  431. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs +0 -7
  432. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs.map +0 -1
  433. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs +0 -7
  434. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs.map +0 -1
  435. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs +0 -7
  436. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs.map +0 -1
  437. package/cjs/components/WeekView/WeekView.module.css.cjs +0 -7
  438. package/cjs/components/WeekView/WeekView.module.css.cjs.map +0 -1
  439. package/cjs/components/YearView/YearView.module.css.cjs +0 -7
  440. package/cjs/components/YearView/YearView.module.css.cjs.map +0 -1
  441. package/cjs/index.cjs.map +0 -1
  442. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs +0 -5
  443. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs.map +0 -1
  444. package/esm/components/DayView/DayView.module.css.mjs +0 -5
  445. package/esm/components/DayView/DayView.module.css.mjs.map +0 -1
  446. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs +0 -5
  447. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs.map +0 -1
  448. package/esm/components/MonthView/MonthView.module.css.mjs +0 -5
  449. package/esm/components/MonthView/MonthView.module.css.mjs.map +0 -1
  450. package/esm/components/MoreEvents/MoreEvents.module.css.mjs +0 -5
  451. package/esm/components/MoreEvents/MoreEvents.module.css.mjs.map +0 -1
  452. package/esm/components/Schedule/Schedule.module.css.mjs +0 -5
  453. package/esm/components/Schedule/Schedule.module.css.mjs.map +0 -1
  454. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs +0 -5
  455. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs.map +0 -1
  456. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs +0 -5
  457. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs.map +0 -1
  458. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs +0 -5
  459. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs.map +0 -1
  460. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs +0 -5
  461. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs.map +0 -1
  462. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs +0 -5
  463. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs.map +0 -1
  464. package/esm/components/WeekView/WeekView.module.css.mjs +0 -5
  465. package/esm/components/WeekView/WeekView.module.css.mjs.map +0 -1
  466. package/esm/components/YearView/YearView.module.css.mjs +0 -5
  467. package/esm/components/YearView/YearView.module.css.mjs.map +0 -1
  468. package/esm/index.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"get-week-positioned-events.mjs","sources":["../../../../src/components/WeekView/get-week-view-events/get-week-positioned-events.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport {\n AnyDateValue,\n DateStringValue,\n DayOfWeek,\n ScheduleEventData,\n WeekPositionedEventData,\n} from '../../../types';\nimport { getDayPosition, getWeekDays, isAllDayEvent, sortEvents } from '../../../utils';\nimport { assignEventRows } from './assign-event-rows';\nimport { calculateAllDayEventOffset } from './calculate-all-day-event-offset';\nimport { calculateAllDayEventWidth } from './calculate-all-day-event-width';\nimport { calculateEventDays } from './calculate-event-days';\nimport { calculateRegularEventOverlaps } from './calculate-regular-event-overlaps';\nimport { findAvailableColumn } from './find-available-column';\nimport { getEventEndDate } from './get-event-end-date';\nimport { getHangingStatus } from './get-hanging-status';\n\nexport interface GetWeekPositionedEventsInput {\n /** Date (week start) at which events are positioned, used to check if events are all-day */\n date: AnyDateValue;\n\n /** List of all events that belong to the given week, extra events must be filtered out before passing to the function */\n events: ScheduleEventData[];\n\n /** Start time of the week view, used to calculate event positions */\n startTime?: string;\n\n /** End time of the week view, used to calculate event positions */\n endTime?: string;\n\n /** First day of the week, 0 - Sunday, 1 - Monday, etc., used to calculate events positions */\n firstDayOfWeek?: DayOfWeek;\n\n /** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday */\n weekendDays?: DayOfWeek[];\n\n /** If set to false, weekend days are hidden @default true */\n withWeekendDays?: boolean;\n}\n\n/** Events grouped by week day date (YYYY-MM-DD 00:00:00) and by columns */\nexport interface GroupedWeekEvents {\n allDayEvents: WeekPositionedEventData[];\n regularEvents: Record<DateStringValue, WeekPositionedEventData[]>;\n}\n\nexport function getWeekPositionedEvents({\n date,\n events,\n startTime,\n endTime,\n firstDayOfWeek = 1,\n weekendDays = [0, 6],\n withWeekendDays = true,\n}: GetWeekPositionedEventsInput): GroupedWeekEvents {\n const weekDays = getWeekDays({ week: date, firstDayOfWeek, withWeekendDays, weekendDays });\n const visibleDaysCount = weekDays.length;\n const weekStartDate = dayjs(weekDays[0]);\n const weekEndDate = dayjs(weekDays[weekDays.length - 1]);\n\n const grouped: GroupedWeekEvents = {\n allDayEvents: [],\n regularEvents: Object.fromEntries(weekDays.map((day) => [day, []])),\n };\n\n const columns = new Map<string, ScheduleEventData[]>();\n const allDayColumns = new Map<string, ScheduleEventData[]>();\n const sorted = sortEvents(events);\n\n for (const event of sorted) {\n const eventStartDate = dayjs(event.start).startOf('day');\n const actualEndDate = getEventEndDate(event);\n const eventWeekDays = calculateEventDays({ event, weekDays, actualEndDate });\n\n if (eventWeekDays.length === 0) {\n continue;\n }\n\n const isMultiday = actualEndDate.isAfter(eventStartDate);\n const hanging = getHangingStatus({ eventStartDate, actualEndDate, weekDays });\n const isActuallyAllDay = eventWeekDays.some((day) => isAllDayEvent({ event, date: day }));\n const allDay = isMultiday || isActuallyAllDay;\n\n const columnMap = allDay ? allDayColumns : columns;\n const column = findAvailableColumn({\n columns: columnMap,\n event,\n allDay,\n allWeekDays: weekDays,\n });\n\n const columnKey = `col-${column}`;\n if (!columnMap.has(columnKey)) {\n columnMap.set(columnKey, []);\n }\n columnMap.get(columnKey)!.push(event);\n\n const verticalPosition = allDay\n ? { top: 0, height: 100 }\n : getDayPosition({ event, startTime, endTime });\n\n if (allDay) {\n const offset = calculateAllDayEventOffset({\n eventStartDate,\n weekStartDate,\n weekDays,\n visibleDaysCount,\n hangingStart: hanging === 'start' || hanging === 'both',\n });\n\n grouped.allDayEvents.push({\n ...event,\n position: {\n ...verticalPosition,\n allDay,\n column,\n width: 0,\n offset,\n overlaps: 0,\n row: 0,\n hanging,\n },\n });\n } else {\n for (const day of eventWeekDays) {\n const visibleDayIndex = weekDays.indexOf(day);\n\n if (visibleDayIndex === -1) {\n continue;\n }\n\n const dayWeekOffset = (visibleDayIndex / visibleDaysCount) * 100;\n\n grouped.regularEvents[day].push({\n ...event,\n position: {\n ...verticalPosition,\n allDay,\n column,\n width: 0,\n offset: 0,\n overlaps: 0,\n weekOffset: dayWeekOffset,\n row: 0,\n hanging,\n },\n });\n }\n }\n }\n\n for (const day of weekDays) {\n calculateRegularEventOverlaps(grouped.regularEvents[day]);\n }\n\n if (grouped.allDayEvents.length > 0) {\n const eventRows = assignEventRows(grouped.allDayEvents);\n const assignedRows = new Set<number>();\n\n for (const event of grouped.allDayEvents) {\n const row = eventRows.get(event)!;\n event.position.row = row;\n assignedRows.add(row);\n }\n\n const rowCount = Math.max(...assignedRows) + 1;\n\n for (const event of grouped.allDayEvents) {\n const eventStartDate = dayjs(event.start).startOf('day');\n const actualEndDate = getEventEndDate(event);\n\n event.position.width = calculateAllDayEventWidth({\n eventStartDate,\n actualEndDate,\n weekStartDate,\n weekEndDate,\n weekDays,\n visibleDaysCount,\n });\n\n event.position.overlaps = rowCount;\n }\n }\n\n return grouped;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-week-positioned-events.mjs","names":[],"sources":["../../../../src/components/WeekView/get-week-view-events/get-week-positioned-events.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport {\n AnyDateValue,\n DateStringValue,\n DayOfWeek,\n ScheduleEventData,\n WeekPositionedEventData,\n} from '../../../types';\nimport { getDayPosition, getWeekDays, isAllDayEvent, sortEvents } from '../../../utils';\nimport { assignEventRows } from './assign-event-rows';\nimport { calculateAllDayEventOffset } from './calculate-all-day-event-offset';\nimport { calculateAllDayEventWidth } from './calculate-all-day-event-width';\nimport { calculateEventDays } from './calculate-event-days';\nimport { calculateRegularEventOverlaps } from './calculate-regular-event-overlaps';\nimport { findAvailableColumn } from './find-available-column';\nimport { getEventEndDate } from './get-event-end-date';\nimport { getHangingStatus } from './get-hanging-status';\n\nexport interface GetWeekPositionedEventsInput {\n /** Date (week start) at which events are positioned, used to check if events are all-day */\n date: AnyDateValue;\n\n /** List of all events that belong to the given week, extra events must be filtered out before passing to the function */\n events: ScheduleEventData[];\n\n /** Start time of the week view, used to calculate event positions */\n startTime?: string;\n\n /** End time of the week view, used to calculate event positions */\n endTime?: string;\n\n /** First day of the week, 0 - Sunday, 1 - Monday, etc., used to calculate events positions */\n firstDayOfWeek?: DayOfWeek;\n\n /** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday */\n weekendDays?: DayOfWeek[];\n\n /** If set to false, weekend days are hidden @default true */\n withWeekendDays?: boolean;\n}\n\n/** Events grouped by week day date (YYYY-MM-DD 00:00:00) and by columns */\nexport interface GroupedWeekEvents {\n allDayEvents: WeekPositionedEventData[];\n regularEvents: Record<DateStringValue, WeekPositionedEventData[]>;\n backgroundEvents: Record<DateStringValue, WeekPositionedEventData[]>;\n}\n\nexport function getWeekPositionedEvents({\n date,\n events,\n startTime,\n endTime,\n firstDayOfWeek = 1,\n weekendDays = [0, 6],\n withWeekendDays = true,\n}: GetWeekPositionedEventsInput): GroupedWeekEvents {\n const weekDays = getWeekDays({ week: date, firstDayOfWeek, withWeekendDays, weekendDays });\n const visibleDaysCount = weekDays.length;\n const weekStartDate = dayjs(weekDays[0]);\n const weekEndDate = dayjs(weekDays[weekDays.length - 1]);\n\n const grouped: GroupedWeekEvents = {\n allDayEvents: [],\n regularEvents: Object.fromEntries(weekDays.map((day) => [day, []])),\n backgroundEvents: Object.fromEntries(weekDays.map((day) => [day, []])),\n };\n\n const columns = new Map<string, ScheduleEventData[]>();\n const allDayColumns = new Map<string, ScheduleEventData[]>();\n const sorted = sortEvents(events);\n\n for (const event of sorted) {\n if (event.display === 'background') {\n const eventStartDate = dayjs(event.start).startOf('day');\n const actualEndDate = getEventEndDate(event);\n const eventWeekDays = calculateEventDays({ event, weekDays, actualEndDate });\n const hanging = getHangingStatus({ eventStartDate, actualEndDate, weekDays });\n\n for (const day of eventWeekDays) {\n const visibleDayIndex = weekDays.indexOf(day);\n if (visibleDayIndex === -1) {\n continue;\n }\n\n const dayStart = dayjs(day);\n const dayEnd = dayStart.endOf('day');\n const eventStart = dayjs(event.start);\n const eventEnd = dayjs(event.end);\n\n const clippedStart = eventStart.isBefore(dayStart) ? dayStart : eventStart;\n const clippedEnd = eventEnd.isAfter(dayEnd) ? dayEnd : eventEnd;\n\n const clippedEvent = {\n ...event,\n start: clippedStart.format('YYYY-MM-DD HH:mm:ss'),\n end: clippedEnd.format('YYYY-MM-DD HH:mm:ss'),\n };\n\n const isAllDay = isAllDayEvent({ event: clippedEvent, date: day });\n const verticalPosition = isAllDay\n ? { top: 0, height: 100 }\n : getDayPosition({ event: clippedEvent, startTime, endTime });\n\n if (!isAllDay && verticalPosition.height <= 0) {\n continue;\n }\n\n const dayWeekOffset = (visibleDayIndex / visibleDaysCount) * 100;\n\n grouped.backgroundEvents[day].push({\n ...event,\n position: {\n ...verticalPosition,\n allDay: isAllDay,\n column: 0,\n width: 100,\n offset: 0,\n overlaps: 1,\n weekOffset: dayWeekOffset,\n row: 0,\n hanging,\n },\n });\n }\n\n continue;\n }\n const eventStartDate = dayjs(event.start).startOf('day');\n const actualEndDate = getEventEndDate(event);\n const eventWeekDays = calculateEventDays({ event, weekDays, actualEndDate });\n\n if (eventWeekDays.length === 0) {\n continue;\n }\n\n const isMultiday = actualEndDate.isAfter(eventStartDate);\n const hanging = getHangingStatus({ eventStartDate, actualEndDate, weekDays });\n const isActuallyAllDay = eventWeekDays.some((day) => isAllDayEvent({ event, date: day }));\n const allDay = isMultiday || isActuallyAllDay;\n\n const columnMap = allDay ? allDayColumns : columns;\n const column = findAvailableColumn({\n columns: columnMap,\n event,\n allDay,\n allWeekDays: weekDays,\n });\n\n const columnKey = `col-${column}`;\n if (!columnMap.has(columnKey)) {\n columnMap.set(columnKey, []);\n }\n columnMap.get(columnKey)!.push(event);\n\n const verticalPosition = allDay\n ? { top: 0, height: 100 }\n : getDayPosition({ event, startTime, endTime });\n\n if (allDay) {\n const offset = calculateAllDayEventOffset({\n eventStartDate,\n weekStartDate,\n weekDays,\n visibleDaysCount,\n hangingStart: hanging === 'start' || hanging === 'both',\n });\n\n grouped.allDayEvents.push({\n ...event,\n position: {\n ...verticalPosition,\n allDay,\n column,\n width: 0,\n offset,\n overlaps: 0,\n row: 0,\n hanging,\n },\n });\n } else {\n for (const day of eventWeekDays) {\n const visibleDayIndex = weekDays.indexOf(day);\n\n if (visibleDayIndex === -1) {\n continue;\n }\n\n const dayWeekOffset = (visibleDayIndex / visibleDaysCount) * 100;\n\n grouped.regularEvents[day].push({\n ...event,\n position: {\n ...verticalPosition,\n allDay,\n column,\n width: 0,\n offset: 0,\n overlaps: 0,\n weekOffset: dayWeekOffset,\n row: 0,\n hanging,\n },\n });\n }\n }\n }\n\n for (const day of weekDays) {\n calculateRegularEventOverlaps(grouped.regularEvents[day]);\n }\n\n if (grouped.allDayEvents.length > 0) {\n const eventRows = assignEventRows(grouped.allDayEvents);\n const assignedRows = new Set<number>();\n\n for (const event of grouped.allDayEvents) {\n const row = eventRows.get(event)!;\n event.position.row = row;\n assignedRows.add(row);\n }\n\n const rowCount = Math.max(...assignedRows) + 1;\n\n for (const event of grouped.allDayEvents) {\n const eventStartDate = dayjs(event.start).startOf('day');\n const actualEndDate = getEventEndDate(event);\n\n event.position.width = calculateAllDayEventWidth({\n eventStartDate,\n actualEndDate,\n weekStartDate,\n weekEndDate,\n weekDays,\n visibleDaysCount,\n });\n\n event.position.overlaps = rowCount;\n }\n }\n\n return grouped;\n}\n"],"mappings":"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"}
@@ -1,10 +1,14 @@
1
- 'use client';
2
- import { filterWeekViewEvents } from './filter-week-view-events.mjs';
3
- import { getWeekPositionedEvents } from './get-week-positioned-events.mjs';
4
-
1
+ "use client";
2
+ import { filterWeekViewEvents } from "./filter-week-view-events.mjs";
3
+ import { getWeekPositionedEvents } from "./get-week-positioned-events.mjs";
4
+ //#region packages/@mantine/schedule/src/components/WeekView/get-week-view-events/get-week-view-events.ts
5
5
  function getWeekViewEvents(input) {
6
- return getWeekPositionedEvents({ ...input, events: filterWeekViewEvents(input) });
6
+ return getWeekPositionedEvents({
7
+ ...input,
8
+ events: filterWeekViewEvents(input)
9
+ });
7
10
  }
8
-
11
+ //#endregion
9
12
  export { getWeekViewEvents };
10
- //# sourceMappingURL=get-week-view-events.mjs.map
13
+
14
+ //# sourceMappingURL=get-week-view-events.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-week-view-events.mjs","sources":["../../../../src/components/WeekView/get-week-view-events/get-week-view-events.ts"],"sourcesContent":["import { ScheduleEventData } from '../../../types';\nimport { filterWeekViewEvents } from './filter-week-view-events';\nimport {\n getWeekPositionedEvents,\n GetWeekPositionedEventsInput,\n GroupedWeekEvents,\n} from './get-week-positioned-events';\n\ninterface GetWeekViewEventsInput extends Omit<GetWeekPositionedEventsInput, 'events'> {\n events: ScheduleEventData[] | undefined;\n}\n\nexport function getWeekViewEvents(input: GetWeekViewEventsInput): GroupedWeekEvents {\n return getWeekPositionedEvents({ ...input, events: filterWeekViewEvents(input) });\n}\n"],"names":[],"mappings":";;;;AAYO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkD,CAAA;AAClF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,GAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAK,GAAG,CAAA,CAAA;AAClF,CAAA;;"}
1
+ {"version":3,"file":"get-week-view-events.mjs","names":[],"sources":["../../../../src/components/WeekView/get-week-view-events/get-week-view-events.ts"],"sourcesContent":["import { ScheduleEventData } from '../../../types';\nimport { filterWeekViewEvents } from './filter-week-view-events';\nimport {\n getWeekPositionedEvents,\n GetWeekPositionedEventsInput,\n GroupedWeekEvents,\n} from './get-week-positioned-events';\n\ninterface GetWeekViewEventsInput extends Omit<GetWeekPositionedEventsInput, 'events'> {\n events: ScheduleEventData[] | undefined;\n}\n\nexport function getWeekViewEvents(input: GetWeekViewEventsInput): GroupedWeekEvents {\n return getWeekPositionedEvents({ ...input, events: filterWeekViewEvents(input) });\n}\n"],"mappings":";;;;AAYA,SAAgB,kBAAkB,OAAkD;AAClF,QAAO,wBAAwB;EAAE,GAAG;EAAO,QAAQ,qBAAqB,MAAM;EAAE,CAAC"}
@@ -1,133 +1,90 @@
1
- 'use client';
1
+ "use client";
2
+ //#region packages/@mantine/schedule/src/components/WeekView/handle-week-view-key-down.ts
2
3
  function getDirection(key) {
3
- switch (key) {
4
- case "ArrowDown":
5
- return "down";
6
- case "ArrowUp":
7
- return "up";
8
- case "ArrowRight":
9
- return "right";
10
- case "ArrowLeft":
11
- return "left";
12
- default:
13
- return null;
14
- }
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
+ }
15
11
  }
16
12
  function getControlsSize(controlsRef) {
17
- if (!controlsRef.current) {
18
- return null;
19
- }
20
- 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);
21
15
  }
22
- function getNextPosition({
23
- direction,
24
- dayIndex,
25
- slotIndex,
26
- size
27
- }) {
28
- const currentDaySize = size[dayIndex];
29
- if (!currentDaySize) {
30
- return null;
31
- }
32
- switch (direction) {
33
- case "up": {
34
- if (slotIndex === 0) {
35
- return null;
36
- }
37
- return {
38
- dayIndex,
39
- slotIndex: slotIndex - 1
40
- };
41
- }
42
- case "down": {
43
- if (slotIndex === currentDaySize - 1) {
44
- return null;
45
- }
46
- return {
47
- dayIndex,
48
- slotIndex: slotIndex + 1
49
- };
50
- }
51
- case "left": {
52
- if (dayIndex === 0) {
53
- return null;
54
- }
55
- const prevDaySize = size[dayIndex - 1];
56
- const clampedSlotIndex = Math.min(slotIndex, prevDaySize - 1);
57
- return {
58
- dayIndex: dayIndex - 1,
59
- slotIndex: clampedSlotIndex
60
- };
61
- }
62
- case "right": {
63
- if (dayIndex === size.length - 1) {
64
- return null;
65
- }
66
- const nextDaySize = size[dayIndex + 1];
67
- const clampedSlotIndex = Math.min(slotIndex, nextDaySize - 1);
68
- return {
69
- dayIndex: dayIndex + 1,
70
- slotIndex: clampedSlotIndex
71
- };
72
- }
73
- default:
74
- return null;
75
- }
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
+ }
76
52
  }
77
- function focusOnNextFocusableControl({
78
- controlsRef,
79
- direction,
80
- dayIndex,
81
- slotIndex,
82
- size
83
- }) {
84
- const nextPosition = getNextPosition({
85
- direction,
86
- dayIndex,
87
- slotIndex,
88
- size
89
- });
90
- if (!nextPosition) {
91
- return;
92
- }
93
- const controlToFocus = controlsRef.current?.[nextPosition.dayIndex]?.[nextPosition.slotIndex];
94
- if (!controlToFocus) {
95
- return;
96
- }
97
- if (controlToFocus.disabled || controlToFocus.getAttribute("data-hidden")) {
98
- focusOnNextFocusableControl({
99
- controlsRef,
100
- direction,
101
- dayIndex: nextPosition.dayIndex,
102
- slotIndex: nextPosition.slotIndex,
103
- size
104
- });
105
- } else {
106
- controlToFocus.focus();
107
- }
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();
108
71
  }
109
- function handleWeekViewKeyDown({
110
- controlsRef,
111
- dayIndex,
112
- slotIndex,
113
- event
114
- }) {
115
- const direction = getDirection(event.key);
116
- if (direction) {
117
- event.preventDefault();
118
- const size = getControlsSize(controlsRef);
119
- if (!size) {
120
- return;
121
- }
122
- focusOnNextFocusableControl({
123
- controlsRef,
124
- direction,
125
- dayIndex,
126
- slotIndex,
127
- size
128
- });
129
- }
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
+ }
130
86
  }
131
-
87
+ //#endregion
132
88
  export { handleWeekViewKeyDown };
133
- //# sourceMappingURL=handle-week-view-key-down.mjs.map
89
+
90
+ //# sourceMappingURL=handle-week-view-key-down.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"handle-week-view-key-down.mjs","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":"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"}
1
+ {"version":3,"file":"handle-week-view-key-down.mjs","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"}