@mantine/schedule 9.3.1 → 9.4.0

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 (296) hide show
  1. package/cjs/components/AgendaView/AgendaView.cjs +133 -0
  2. package/cjs/components/AgendaView/AgendaView.cjs.map +1 -0
  3. package/cjs/components/AgendaView/AgendaView.module.cjs +19 -0
  4. package/cjs/components/AgendaView/AgendaView.module.cjs.map +1 -0
  5. package/cjs/components/AgendaView/get-agenda-view-events.cjs +48 -0
  6. package/cjs/components/AgendaView/get-agenda-view-events.cjs.map +1 -0
  7. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs.map +1 -1
  8. package/cjs/components/DayView/DayView.cjs +128 -106
  9. package/cjs/components/DayView/DayView.cjs.map +1 -1
  10. package/cjs/components/DayView/DayView.module.cjs.map +1 -1
  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.map +1 -1
  13. package/cjs/components/DragContext/DragContext.cjs.map +1 -1
  14. package/cjs/components/MobileMonthView/MobileMonthView.cjs.map +1 -1
  15. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs.map +1 -1
  16. package/cjs/components/MonthView/MonthView.cjs +114 -64
  17. package/cjs/components/MonthView/MonthView.cjs.map +1 -1
  18. package/cjs/components/MonthView/MonthView.module.cjs.map +1 -1
  19. package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs.map +1 -1
  20. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs.map +1 -1
  21. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs.map +1 -1
  22. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs.map +1 -1
  23. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs.map +1 -1
  24. package/cjs/components/MonthView/get-renderable-month-event-segments.cjs +17 -15
  25. package/cjs/components/MonthView/get-renderable-month-event-segments.cjs.map +1 -1
  26. package/cjs/components/MonthView/get-visible-columns.cjs +54 -0
  27. package/cjs/components/MonthView/get-visible-columns.cjs.map +1 -0
  28. package/cjs/components/MonthView/handle-month-view-key-down.cjs.map +1 -1
  29. package/cjs/components/MoreEvents/MoreEvents.cjs.map +1 -1
  30. package/cjs/components/ResourcesDayView/ResourcesDayView.cjs +578 -0
  31. package/cjs/components/ResourcesDayView/ResourcesDayView.cjs.map +1 -0
  32. package/cjs/components/ResourcesDayView/ResourcesDayView.module.cjs +29 -0
  33. package/cjs/components/ResourcesDayView/ResourcesDayView.module.cjs.map +1 -0
  34. package/cjs/components/ResourcesDayView/ResourcesDayViewColumn.cjs +89 -0
  35. package/cjs/components/ResourcesDayView/ResourcesDayViewColumn.cjs.map +1 -0
  36. package/cjs/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.cjs +26 -0
  37. package/cjs/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.cjs.map +1 -0
  38. package/cjs/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.cjs +115 -0
  39. package/cjs/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.cjs.map +1 -0
  40. package/cjs/components/ResourcesMonthView/ResourcesMonthView.cjs +602 -0
  41. package/cjs/components/ResourcesMonthView/ResourcesMonthView.cjs.map +1 -0
  42. package/cjs/components/ResourcesMonthView/ResourcesMonthView.module.cjs +23 -0
  43. package/cjs/components/ResourcesMonthView/ResourcesMonthView.module.cjs.map +1 -0
  44. package/cjs/components/ResourcesSchedule/ResourcesSchedule.cjs +102 -0
  45. package/cjs/components/ResourcesSchedule/ResourcesSchedule.cjs.map +1 -0
  46. package/cjs/components/ResourcesSchedule/ResourcesSchedule.module.cjs +7 -0
  47. package/cjs/components/ResourcesSchedule/ResourcesSchedule.module.cjs.map +1 -0
  48. package/cjs/components/ResourcesWeekView/ResourcesWeekView.cjs +610 -0
  49. package/cjs/components/ResourcesWeekView/ResourcesWeekView.cjs.map +1 -0
  50. package/cjs/components/ResourcesWeekView/ResourcesWeekView.module.cjs +33 -0
  51. package/cjs/components/ResourcesWeekView/ResourcesWeekView.module.cjs.map +1 -0
  52. package/cjs/components/ResourcesWeekView/ResourcesWeekViewRow.cjs +90 -0
  53. package/cjs/components/ResourcesWeekView/ResourcesWeekViewRow.cjs.map +1 -0
  54. package/cjs/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.cjs +97 -0
  55. package/cjs/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.cjs.map +1 -0
  56. package/cjs/components/Schedule/Schedule.cjs +3 -2
  57. package/cjs/components/Schedule/Schedule.cjs.map +1 -1
  58. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs +1 -1
  59. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs.map +1 -1
  60. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs.map +1 -1
  61. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs.map +1 -1
  62. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs.map +1 -1
  63. package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs +2 -0
  64. package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs.map +1 -1
  65. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs +29 -11
  66. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs.map +1 -1
  67. package/cjs/components/ScheduleHeader/ScheduleHeaderContext.cjs.map +1 -1
  68. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs.map +1 -1
  69. package/cjs/components/WeekView/WeekView.cjs +128 -102
  70. package/cjs/components/WeekView/WeekView.cjs.map +1 -1
  71. package/cjs/components/WeekView/WeekView.module.cjs.map +1 -1
  72. package/cjs/components/WeekView/WeekViewDay.cjs +3 -1
  73. package/cjs/components/WeekView/WeekViewDay.cjs.map +1 -1
  74. package/cjs/components/WeekView/get-week-label/get-week-label.cjs.map +1 -1
  75. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs.map +1 -1
  76. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs.map +1 -1
  77. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs.map +1 -1
  78. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs.map +1 -1
  79. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs.map +1 -1
  80. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs.map +1 -1
  81. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs.map +1 -1
  82. package/cjs/components/WeekView/handle-week-view-key-down.cjs.map +1 -1
  83. package/cjs/components/YearView/YearView.cjs.map +1 -1
  84. package/cjs/components/YearView/YearViewMonth.cjs.map +1 -1
  85. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs.map +1 -1
  86. package/cjs/components/YearView/handle-year-view-key-down.cjs.map +1 -1
  87. package/cjs/hooks/use-auto-scroll-on-drag.cjs.map +1 -1
  88. package/cjs/hooks/use-drag-drop-handlers.cjs.map +1 -1
  89. package/cjs/hooks/use-drag-state.cjs.map +1 -1
  90. package/cjs/hooks/use-event-resize.cjs.map +1 -1
  91. package/cjs/hooks/use-horizontal-event-resize.cjs +153 -0
  92. package/cjs/hooks/use-horizontal-event-resize.cjs.map +1 -0
  93. package/cjs/hooks/use-slot-drag-select.cjs.map +1 -1
  94. package/cjs/index.cjs +18 -0
  95. package/cjs/labels.cjs +5 -1
  96. package/cjs/labels.cjs.map +1 -1
  97. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs.map +1 -1
  98. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs.map +1 -1
  99. package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs.map +1 -1
  100. package/cjs/utils/format-date/format-date.cjs.map +1 -1
  101. package/cjs/utils/get-current-time-position/get-current-time-position.cjs.map +1 -1
  102. package/cjs/utils/get-day-position/get-day-position.cjs.map +1 -1
  103. package/cjs/utils/get-end-of-week/get-end-of-week.cjs.map +1 -1
  104. package/cjs/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.cjs +12 -0
  105. package/cjs/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.cjs.map +1 -0
  106. package/cjs/utils/get-index-from-drag-point/get-index-from-drag-point.cjs +27 -0
  107. package/cjs/utils/get-index-from-drag-point/get-index-from-drag-point.cjs.map +1 -0
  108. package/cjs/utils/get-month-days/get-month-days.cjs.map +1 -1
  109. package/cjs/utils/get-month-range/get-month-range.cjs.map +1 -1
  110. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs.map +1 -1
  111. package/cjs/utils/get-months-list/get-months-list.cjs.map +1 -1
  112. package/cjs/utils/get-ordered-resources/get-ordered-resources.cjs +54 -0
  113. package/cjs/utils/get-ordered-resources/get-ordered-resources.cjs.map +1 -0
  114. package/cjs/utils/get-start-of-week/get-start-of-week.cjs.map +1 -1
  115. package/cjs/utils/get-week-days/get-week-days.cjs.map +1 -1
  116. package/cjs/utils/get-week-number/get-week-number.cjs.map +1 -1
  117. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
  118. package/cjs/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.cjs +88 -0
  119. package/cjs/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.cjs.map +1 -0
  120. package/cjs/utils/is-after-min-date/is-after-min-date.cjs.map +1 -1
  121. package/cjs/utils/is-all-day-event/is-all-day-event.cjs.map +1 -1
  122. package/cjs/utils/is-before-max-date/is-before-max-date.cjs.map +1 -1
  123. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs.map +1 -1
  124. package/cjs/utils/is-events-overlap/is-events-overlap.cjs.map +1 -1
  125. package/cjs/utils/is-in-time-range/is-in-time-range.cjs.map +1 -1
  126. package/cjs/utils/is-multiday-event/is-multiday-event.cjs.map +1 -1
  127. package/cjs/utils/is-same-month/is-same-month.cjs.map +1 -1
  128. package/cjs/utils/is-within-week/is-within-week.cjs.map +1 -1
  129. package/cjs/utils/next-week/next-week.cjs.map +1 -1
  130. package/cjs/utils/parse-time-string/parse-time-string.cjs.map +1 -1
  131. package/cjs/utils/previous-week/previous-week.cjs.map +1 -1
  132. package/cjs/utils/sort-events/sort-events.cjs.map +1 -1
  133. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
  134. package/cjs/utils/to-time-string/to-time-string.cjs.map +1 -1
  135. package/cjs/utils/validate-event/validate-event.cjs.map +1 -1
  136. package/esm/components/AgendaView/AgendaView.mjs +130 -0
  137. package/esm/components/AgendaView/AgendaView.mjs.map +1 -0
  138. package/esm/components/AgendaView/AgendaView.module.mjs +19 -0
  139. package/esm/components/AgendaView/AgendaView.module.mjs.map +1 -0
  140. package/esm/components/AgendaView/get-agenda-view-events.mjs +46 -0
  141. package/esm/components/AgendaView/get-agenda-view-events.mjs.map +1 -0
  142. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -1
  143. package/esm/components/DayView/DayView.mjs +129 -107
  144. package/esm/components/DayView/DayView.mjs.map +1 -1
  145. package/esm/components/DayView/DayView.module.mjs.map +1 -1
  146. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs.map +1 -1
  147. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs.map +1 -1
  148. package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -1
  149. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs.map +1 -1
  150. package/esm/components/MonthView/MonthView.mjs +115 -65
  151. package/esm/components/MonthView/MonthView.mjs.map +1 -1
  152. package/esm/components/MonthView/MonthView.module.mjs.map +1 -1
  153. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs.map +1 -1
  154. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs.map +1 -1
  155. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs.map +1 -1
  156. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs.map +1 -1
  157. package/esm/components/MonthView/get-renderable-month-event-segments.mjs +17 -15
  158. package/esm/components/MonthView/get-renderable-month-event-segments.mjs.map +1 -1
  159. package/esm/components/MonthView/get-visible-columns.mjs +53 -0
  160. package/esm/components/MonthView/get-visible-columns.mjs.map +1 -0
  161. package/esm/components/MonthView/handle-month-view-key-down.mjs.map +1 -1
  162. package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -1
  163. package/esm/components/ResourcesDayView/ResourcesDayView.mjs +576 -0
  164. package/esm/components/ResourcesDayView/ResourcesDayView.mjs.map +1 -0
  165. package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs +29 -0
  166. package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs.map +1 -0
  167. package/esm/components/ResourcesDayView/ResourcesDayViewColumn.mjs +89 -0
  168. package/esm/components/ResourcesDayView/ResourcesDayViewColumn.mjs.map +1 -0
  169. package/esm/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.mjs +26 -0
  170. package/esm/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.mjs.map +1 -0
  171. package/esm/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.mjs +113 -0
  172. package/esm/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.mjs.map +1 -0
  173. package/esm/components/ResourcesMonthView/ResourcesMonthView.mjs +600 -0
  174. package/esm/components/ResourcesMonthView/ResourcesMonthView.mjs.map +1 -0
  175. package/esm/components/ResourcesMonthView/ResourcesMonthView.module.mjs +23 -0
  176. package/esm/components/ResourcesMonthView/ResourcesMonthView.module.mjs.map +1 -0
  177. package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs +102 -0
  178. package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs.map +1 -0
  179. package/esm/components/ResourcesSchedule/ResourcesSchedule.module.mjs +7 -0
  180. package/esm/components/ResourcesSchedule/ResourcesSchedule.module.mjs.map +1 -0
  181. package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs +608 -0
  182. package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs.map +1 -0
  183. package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs +33 -0
  184. package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs.map +1 -0
  185. package/esm/components/ResourcesWeekView/ResourcesWeekViewRow.mjs +90 -0
  186. package/esm/components/ResourcesWeekView/ResourcesWeekViewRow.mjs.map +1 -0
  187. package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs +95 -0
  188. package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs.map +1 -0
  189. package/esm/components/Schedule/Schedule.mjs +3 -2
  190. package/esm/components/Schedule/Schedule.mjs.map +1 -1
  191. package/esm/components/ScheduleEvent/ScheduleEvent.mjs +1 -1
  192. package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -1
  193. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs.map +1 -1
  194. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs.map +1 -1
  195. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs +2 -0
  196. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs.map +1 -1
  197. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs +29 -11
  198. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs.map +1 -1
  199. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs.map +1 -1
  200. package/esm/components/WeekView/WeekView.mjs +128 -102
  201. package/esm/components/WeekView/WeekView.mjs.map +1 -1
  202. package/esm/components/WeekView/WeekView.module.mjs.map +1 -1
  203. package/esm/components/WeekView/WeekViewDay.mjs +3 -1
  204. package/esm/components/WeekView/WeekViewDay.mjs.map +1 -1
  205. package/esm/components/WeekView/get-week-label/get-week-label.mjs.map +1 -1
  206. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs.map +1 -1
  207. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs.map +1 -1
  208. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs.map +1 -1
  209. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs.map +1 -1
  210. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs.map +1 -1
  211. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs.map +1 -1
  212. package/esm/components/WeekView/handle-week-view-key-down.mjs.map +1 -1
  213. package/esm/components/YearView/YearView.mjs.map +1 -1
  214. package/esm/components/YearView/YearViewMonth.mjs.map +1 -1
  215. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs.map +1 -1
  216. package/esm/components/YearView/handle-year-view-key-down.mjs.map +1 -1
  217. package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -1
  218. package/esm/hooks/use-event-resize.mjs.map +1 -1
  219. package/esm/hooks/use-horizontal-event-resize.mjs +151 -0
  220. package/esm/hooks/use-horizontal-event-resize.mjs.map +1 -0
  221. package/esm/index.mjs +10 -1
  222. package/esm/labels.mjs +5 -1
  223. package/esm/labels.mjs.map +1 -1
  224. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs.map +1 -1
  225. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs.map +1 -1
  226. package/esm/utils/expand-recurring-events/expand-recurring-events.mjs.map +1 -1
  227. package/esm/utils/format-date/format-date.mjs.map +1 -1
  228. package/esm/utils/get-current-time-position/get-current-time-position.mjs.map +1 -1
  229. package/esm/utils/get-day-position/get-day-position.mjs.map +1 -1
  230. package/esm/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.mjs +12 -0
  231. package/esm/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.mjs.map +1 -0
  232. package/esm/utils/get-index-from-drag-point/get-index-from-drag-point.mjs +27 -0
  233. package/esm/utils/get-index-from-drag-point/get-index-from-drag-point.mjs.map +1 -0
  234. package/esm/utils/get-month-days/get-month-days.mjs.map +1 -1
  235. package/esm/utils/get-month-range/get-month-range.mjs.map +1 -1
  236. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs.map +1 -1
  237. package/esm/utils/get-months-list/get-months-list.mjs.map +1 -1
  238. package/esm/utils/get-ordered-resources/get-ordered-resources.mjs +54 -0
  239. package/esm/utils/get-ordered-resources/get-ordered-resources.mjs.map +1 -0
  240. package/esm/utils/get-week-number/get-week-number.mjs.map +1 -1
  241. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
  242. package/esm/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.mjs +88 -0
  243. package/esm/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.mjs.map +1 -0
  244. package/esm/utils/is-after-min-date/is-after-min-date.mjs.map +1 -1
  245. package/esm/utils/is-all-day-event/is-all-day-event.mjs.map +1 -1
  246. package/esm/utils/is-before-max-date/is-before-max-date.mjs.map +1 -1
  247. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs.map +1 -1
  248. package/esm/utils/is-events-overlap/is-events-overlap.mjs.map +1 -1
  249. package/esm/utils/is-in-time-range/is-in-time-range.mjs.map +1 -1
  250. package/esm/utils/is-multiday-event/is-multiday-event.mjs.map +1 -1
  251. package/esm/utils/is-same-month/is-same-month.mjs.map +1 -1
  252. package/esm/utils/is-within-week/is-within-week.mjs.map +1 -1
  253. package/esm/utils/next-week/next-week.mjs.map +1 -1
  254. package/esm/utils/parse-time-string/parse-time-string.mjs.map +1 -1
  255. package/esm/utils/previous-week/previous-week.mjs.map +1 -1
  256. package/esm/utils/sort-events/sort-events.mjs.map +1 -1
  257. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -1
  258. package/esm/utils/to-time-string/to-time-string.mjs.map +1 -1
  259. package/esm/utils/validate-event/validate-event.mjs.map +1 -1
  260. package/lib/components/AgendaView/AgendaView.d.ts +54 -0
  261. package/lib/components/AgendaView/get-agenda-view-events.d.ts +9 -0
  262. package/lib/components/AgendaView/index.d.ts +2 -0
  263. package/lib/components/DayView/DayView.d.ts +6 -1
  264. package/lib/components/MonthView/MonthView.d.ts +6 -1
  265. package/lib/components/MonthView/get-renderable-month-event-segments.d.ts +5 -1
  266. package/lib/components/MonthView/get-visible-columns.d.ts +19 -0
  267. package/lib/components/ResourcesDayView/ResourcesDayView.d.ts +148 -0
  268. package/lib/components/ResourcesDayView/ResourcesDayViewColumn.d.ts +39 -0
  269. package/lib/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.d.ts +2 -0
  270. package/lib/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.d.ts +16 -0
  271. package/lib/components/ResourcesDayView/index.d.ts +9 -0
  272. package/lib/components/ResourcesMonthView/ResourcesMonthView.d.ts +129 -0
  273. package/lib/components/ResourcesMonthView/index.d.ts +9 -0
  274. package/lib/components/ResourcesSchedule/ResourcesSchedule.d.ts +123 -0
  275. package/lib/components/ResourcesSchedule/index.d.ts +3 -0
  276. package/lib/components/ResourcesWeekView/ResourcesWeekView.d.ts +106 -0
  277. package/lib/components/ResourcesWeekView/ResourcesWeekViewRow.d.ts +39 -0
  278. package/lib/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.d.ts +29 -0
  279. package/lib/components/ResourcesWeekView/index.d.ts +3 -0
  280. package/lib/components/Schedule/Schedule.d.ts +3 -1
  281. package/lib/components/ScheduleHeader/ScheduleHeaderBase.d.ts +5 -1
  282. package/lib/components/WeekView/WeekView.d.ts +6 -1
  283. package/lib/components/WeekView/WeekViewDay.d.ts +3 -1
  284. package/lib/hooks/use-horizontal-event-resize.d.ts +37 -0
  285. package/lib/index.d.mts +5 -0
  286. package/lib/index.d.ts +5 -0
  287. package/lib/labels.d.ts +4 -0
  288. package/lib/types.d.ts +20 -0
  289. package/lib/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.d.ts +3 -0
  290. package/lib/utils/get-index-from-drag-point/get-index-from-drag-point.d.ts +6 -0
  291. package/lib/utils/get-ordered-resources/get-ordered-resources.d.ts +17 -0
  292. package/lib/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.d.ts +10 -0
  293. package/lib/utils/index.d.ts +6 -0
  294. package/package.json +4 -4
  295. package/styles.css +1363 -10
  296. package/styles.layer.css +1364 -11
@@ -0,0 +1,610 @@
1
+ "use client";
2
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
3
+ const require_labels = require("../../labels.cjs");
4
+ const require_format_date = require("../../utils/format-date/format-date.cjs");
5
+ const require_get_day_time_intervals = require("../../utils/get-day-time-intervals/get-day-time-intervals.cjs");
6
+ const require_to_date_string = require("../../utils/to-date-string/to-date-string.cjs");
7
+ const require_get_week_days = require("../../utils/get-week-days/get-week-days.cjs");
8
+ const require_next_week = require("../../utils/next-week/next-week.cjs");
9
+ const require_previous_week = require("../../utils/previous-week/previous-week.cjs");
10
+ const require_get_current_time_position = require("../../utils/get-current-time-position/get-current-time-position.cjs");
11
+ const require_is_in_time_range = require("../../utils/is-in-time-range/is-in-time-range.cjs");
12
+ const require_is_all_day_event = require("../../utils/is-all-day-event/is-all-day-event.cjs");
13
+ const require_calculate_drop_time = require("../../utils/calculate-drop-time/calculate-drop-time.cjs");
14
+ const require_get_business_hours_mod = require("../../utils/get-business-hours-mod/get-business-hours-mod.cjs");
15
+ const require_get_ordered_resources = require("../../utils/get-ordered-resources/get-ordered-resources.cjs");
16
+ const require_handle_resources_grid_key_down = require("../../utils/handle-resources-grid-key-down/handle-resources-grid-key-down.cjs");
17
+ const require_get_group_to_resource_id_map = require("../../utils/get-group-to-resource-id-map/get-group-to-resource-id-map.cjs");
18
+ const require_get_index_from_drag_point = require("../../utils/get-index-from-drag-point/get-index-from-drag-point.cjs");
19
+ const require_use_drag_drop_handlers = require("../../hooks/use-drag-drop-handlers.cjs");
20
+ const require_use_slot_drag_select = require("../../hooks/use-slot-drag-select.cjs");
21
+ const require_DragContext = require("../DragContext/DragContext.cjs");
22
+ const require_ScheduleEvent = require("../ScheduleEvent/ScheduleEvent.cjs");
23
+ const require_MoreEvents = require("../MoreEvents/MoreEvents.cjs");
24
+ const require_ScheduleHeaderBase = require("../ScheduleHeader/ScheduleHeaderBase.cjs");
25
+ const require_get_week_label = require("../WeekView/get-week-label/get-week-label.cjs");
26
+ const require_get_overlap_clusters = require("../ResourcesDayView/get-overlap-clusters/get-overlap-clusters.cjs");
27
+ const require_get_resources_week_view_events = require("./get-resources-week-view-events/get-resources-week-view-events.cjs");
28
+ const require_ResourcesWeekViewRow = require("./ResourcesWeekViewRow.cjs");
29
+ const require_ResourcesWeekView_module = require("./ResourcesWeekView.module.cjs");
30
+ let dayjs = require("dayjs");
31
+ dayjs = require_runtime.__toESM(dayjs);
32
+ let _mantine_core = require("@mantine/core");
33
+ let _mantine_hooks = require("@mantine/hooks");
34
+ let react = require("react");
35
+ let _mantine_dates = require("@mantine/dates");
36
+ let react_jsx_runtime = require("react/jsx-runtime");
37
+ //#region packages/@mantine/schedule/src/components/ResourcesWeekView/ResourcesWeekView.tsx
38
+ const defaultProps = {
39
+ __staticSelector: "ResourcesWeekView",
40
+ startTime: "00:00:00",
41
+ endTime: "23:59:59",
42
+ slotLabelFormat: "HH:mm",
43
+ intervalMinutes: 60,
44
+ withHeader: true,
45
+ weekLabelFormat: "MMM DD",
46
+ weekdayFormat: "ddd D",
47
+ highlightBusinessHours: false,
48
+ businessHours: ["09:00:00", "17:00:00"],
49
+ withEventsDragAndDrop: false,
50
+ withDragSlotSelect: false,
51
+ withWeekendDays: true,
52
+ withCurrentTimeBubble: true,
53
+ highlightToday: true,
54
+ mode: "default",
55
+ maxEventsPerTimeSlot: 2
56
+ };
57
+ const varsResolver = (0, _mantine_core.createVarsResolver)((_theme, { radius, slotWidth, rowHeight, groupLabelWidth }) => ({ resourcesWeekView: {
58
+ "--resources-week-view-radius": radius ? (0, _mantine_core.getRadius)(radius) : void 0,
59
+ "--resources-week-view-slot-width": (0, _mantine_core.rem)(slotWidth),
60
+ "--resources-week-view-row-height": (0, _mantine_core.rem)(rowHeight),
61
+ "--resources-week-view-group-label-width": (0, _mantine_core.rem)(groupLabelWidth)
62
+ } }));
63
+ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
64
+ const props = (0, _mantine_core.useProps)("ResourcesWeekView", defaultProps, _props);
65
+ const { classNames, className, style, styles, unstyled, attributes, vars, startTime, endTime, date, onDateChange, resources, intervalMinutes, slotLabelFormat, radius, startScrollDateTime, scrollAreaProps, locale, withCurrentTimeIndicator: _withCurrentTimeIndicator, withCurrentTimeBubble, __staticSelector, withHeader, onViewChange, previousControlProps, nextControlProps, todayControlProps, viewSelectProps, weekLabelFormat, renderWeekLabel, events, slotWidth, rowHeight, labels, highlightBusinessHours, businessHours, renderEventBody, renderEvent, renderResourceLabel, groups, renderGroupLabel, groupLabelWidth, withEventsDragAndDrop, onEventDrop, canDragEvent, onEventDragStart, onEventDragEnd, onTimeSlotClick, onEventClick, withDragSlotSelect, onSlotDragEnd, mode, onExternalEventDrop, recurrenceExpansionLimit, maxEventsPerTimeSlot: _maxEventsPerTimeSlot, moreEventsProps, firstDayOfWeek, weekendDays, withWeekendDays, weekdayFormat, highlightToday, ...others } = props;
66
+ const maxEventsPerTimeSlot = _maxEventsPerTimeSlot !== void 0 ? Math.max(1, _maxEventsPerTimeSlot) : void 0;
67
+ const getStyles = (0, _mantine_core.useStyles)({
68
+ name: __staticSelector,
69
+ classes: require_ResourcesWeekView_module.default,
70
+ props,
71
+ className,
72
+ style,
73
+ classNames,
74
+ styles,
75
+ unstyled,
76
+ vars,
77
+ varsResolver,
78
+ attributes,
79
+ rootSelector: "resourcesWeekView"
80
+ });
81
+ const { resolvedClassNames, resolvedStyles } = (0, _mantine_core.useResolvedStylesApi)({
82
+ classNames,
83
+ styles,
84
+ props
85
+ });
86
+ const stylesApiProps = {
87
+ classNames: resolvedClassNames,
88
+ styles: resolvedStyles,
89
+ attributes,
90
+ __staticSelector,
91
+ radius
92
+ };
93
+ const theme = (0, _mantine_core.useMantineTheme)();
94
+ const [scrolled, setScrolled] = (0, react.useState)(false);
95
+ const [scrolledX, setScrolledX] = (0, react.useState)(false);
96
+ const ctx = (0, _mantine_dates.useDatesContext)();
97
+ const slots = require_get_day_time_intervals.getDayTimeIntervals({
98
+ startTime,
99
+ endTime,
100
+ intervalMinutes
101
+ });
102
+ const { orderedResources, groupRanges, resourceGroupMap } = (0, react.useMemo)(() => require_get_ordered_resources.getOrderedResources(resources, groups), [resources, groups]);
103
+ const hasGroups = groupRanges.length > 0;
104
+ const weekdays = (0, react.useMemo)(() => require_get_week_days.getWeekDays({
105
+ week: date,
106
+ withWeekendDays,
107
+ weekendDays: ctx.getWeekendDays(weekendDays),
108
+ firstDayOfWeek: ctx.getFirstDayOfWeek(firstDayOfWeek)
109
+ }), [
110
+ date,
111
+ withWeekendDays,
112
+ weekendDays,
113
+ firstDayOfWeek,
114
+ ctx
115
+ ]);
116
+ const totalSlotsPerDay = slots.length;
117
+ const isToday = weekdays.some((day) => (0, dayjs.default)(day).isSame((0, dayjs.default)(), "day"));
118
+ const withCurrentTimeIndicator = _withCurrentTimeIndicator ?? isToday;
119
+ const [timeIndicatorOffset, setTimeIndicatorOffset] = (0, react.useState)(require_get_current_time_position.getCurrentTimePosition({
120
+ startTime,
121
+ endTime,
122
+ intervalMinutes
123
+ }));
124
+ (0, _mantine_hooks.useInterval)(() => setTimeIndicatorOffset(require_get_current_time_position.getCurrentTimePosition({
125
+ startTime,
126
+ endTime,
127
+ intervalMinutes
128
+ })), 6e4, { autoInvoke: true });
129
+ const todayDayIndex = weekdays.findIndex((day) => (0, dayjs.default)(day).isSame((0, dayjs.default)(), "day"));
130
+ const showTimeIndicator = withCurrentTimeIndicator && todayDayIndex >= 0 && require_is_in_time_range.isInTimeRange({
131
+ date: (0, dayjs.default)().toDate(),
132
+ startTime,
133
+ endTime
134
+ });
135
+ const formattedCurrentTime = withCurrentTimeBubble ? require_format_date.formatDate({
136
+ locale: ctx.getLocale(locale),
137
+ date: (0, dayjs.default)(),
138
+ format: slotLabelFormat
139
+ }) : "";
140
+ const handleExternalDrop = (0, react.useCallback)((e, target) => {
141
+ if (!onExternalEventDrop) return;
142
+ const dayIndex = Math.floor(target.slotIndex / totalSlotsPerDay);
143
+ const slotInDay = target.slotIndex % totalSlotsPerDay;
144
+ const slotDay = weekdays[dayIndex];
145
+ if (slotDay) onExternalEventDrop({
146
+ dataTransfer: e.dataTransfer,
147
+ dropDateTime: `${(0, dayjs.default)(slotDay).format("YYYY-MM-DD")} ${slots[slotInDay].startTime}`,
148
+ resourceId: target.resourceId
149
+ });
150
+ }, [
151
+ onExternalEventDrop,
152
+ slots,
153
+ weekdays,
154
+ totalSlotsPerDay
155
+ ]);
156
+ const lastDropResourceId = (0, react.useRef)(void 0);
157
+ const dragDrop = require_use_drag_drop_handlers.useDragDropHandlers({
158
+ enabled: withEventsDragAndDrop,
159
+ mode,
160
+ onEventDrop: (0, react.useCallback)((data) => {
161
+ onEventDrop?.({
162
+ ...data,
163
+ resourceId: lastDropResourceId.current
164
+ });
165
+ }, [onEventDrop]),
166
+ canDragEvent,
167
+ onEventDragStart,
168
+ onEventDragEnd,
169
+ calculateDropTarget: (target, draggedEvent) => {
170
+ lastDropResourceId.current = target.resourceId;
171
+ const dayIndex = Math.floor(target.slotIndex / totalSlotsPerDay);
172
+ const slotTime = slots[target.slotIndex % totalSlotsPerDay].startTime;
173
+ return require_calculate_drop_time.calculateDropTime({
174
+ draggedEvent,
175
+ targetDate: weekdays[dayIndex] || weekdays[0],
176
+ targetSlotTime: slotTime,
177
+ intervalMinutes
178
+ });
179
+ },
180
+ onExternalDrop: onExternalEventDrop ? handleExternalDrop : void 0
181
+ });
182
+ const groupToResourceId = (0, react.useMemo)(() => require_get_group_to_resource_id_map.getGroupToResourceIdMap(resources), [resources]);
183
+ const slotDragSelect = require_use_slot_drag_select.useSlotDragSelect({
184
+ enabled: withDragSlotSelect && mode !== "static",
185
+ onDragEnd: (startIndex, endIndex, group) => {
186
+ if (!onSlotDragEnd) return;
187
+ const startDayIndex = Math.floor(startIndex / totalSlotsPerDay);
188
+ const startSlotInDay = startIndex % totalSlotsPerDay;
189
+ const endDayIndex = Math.floor(endIndex / totalSlotsPerDay);
190
+ const endSlotInDay = endIndex % totalSlotsPerDay;
191
+ const startDay = weekdays[startDayIndex];
192
+ const endDay = weekdays[endDayIndex];
193
+ if (startDay && endDay) onSlotDragEnd({
194
+ rangeStart: `${(0, dayjs.default)(startDay).format("YYYY-MM-DD")} ${slots[startSlotInDay].startTime}`,
195
+ rangeEnd: `${(0, dayjs.default)(endDay).format("YYYY-MM-DD")} ${slots[endSlotInDay].endTime}`,
196
+ resourceId: groupToResourceId.get(group) ?? group
197
+ });
198
+ }
199
+ });
200
+ const withDragHandlers = (withEventsDragAndDrop || !!onExternalEventDrop) && mode !== "static";
201
+ const handleTimeSlotClick = (resourceId, day, slotTime, e) => {
202
+ if (!onTimeSlotClick) return;
203
+ const slotIndex = slots.findIndex((s) => s.startTime === slotTime);
204
+ if (slotIndex === -1) return;
205
+ const slot = slots[slotIndex];
206
+ const dayStr = (0, dayjs.default)(day).format("YYYY-MM-DD");
207
+ onTimeSlotClick({
208
+ slotStart: `${dayStr} ${slot.startTime}`,
209
+ slotEnd: `${dayStr} ${slot.endTime}`,
210
+ nativeEvent: e,
211
+ resourceId
212
+ });
213
+ };
214
+ const weekViewEvents = (0, react.useMemo)(() => require_get_resources_week_view_events.getResourcesWeekViewEvents({
215
+ events,
216
+ resources,
217
+ weekdays,
218
+ startTime,
219
+ endTime,
220
+ expansionLimit: recurrenceExpansionLimit
221
+ }), [
222
+ events,
223
+ resources,
224
+ weekdays,
225
+ startTime,
226
+ endTime,
227
+ recurrenceExpansionLimit
228
+ ]);
229
+ const dayLabels = weekdays.map((day) => {
230
+ const d = (0, dayjs.default)(day);
231
+ const today = d.isSame((0, dayjs.default)(), "day") && highlightToday;
232
+ const weekend = ctx.getWeekendDays(weekendDays).includes(d.day());
233
+ return /* @__PURE__ */ (0, react.createElement)(_mantine_core.Box, {
234
+ ...getStyles("resourcesWeekViewDayLabel"),
235
+ key: day,
236
+ mod: {
237
+ today,
238
+ weekend
239
+ },
240
+ style: { width: `calc(var(--resources-week-view-slot-width) * ${totalSlotsPerDay})` }
241
+ }, require_format_date.formatDate({
242
+ date: d,
243
+ locale: ctx.getLocale(locale),
244
+ format: weekdayFormat
245
+ }));
246
+ });
247
+ const timeLabels = weekdays.flatMap((day) => slots.map((interval) => {
248
+ const label = require_format_date.formatDate({
249
+ date: (0, dayjs.default)(`${(0, dayjs.default)(day).format("YYYY-MM-DD")} ${interval.startTime}`),
250
+ locale: ctx.getLocale(locale),
251
+ format: slotLabelFormat
252
+ });
253
+ return /* @__PURE__ */ (0, react.createElement)(_mantine_core.Box, {
254
+ ...getStyles("resourcesWeekViewTimeLabel"),
255
+ key: `${day}-${interval.startTime}`,
256
+ mod: {
257
+ "hour-start": interval.isHourStart,
258
+ ...require_get_business_hours_mod.getBusinessHoursMod({
259
+ time: interval.startTime,
260
+ businessHours,
261
+ highlightBusinessHours
262
+ })
263
+ }
264
+ }, label);
265
+ }));
266
+ const slotsRef = (0, react.useRef)([]);
267
+ const rowSlotsContainersRef = (0, react.useRef)([]);
268
+ const viewportRef = (0, react.useRef)(null);
269
+ const mergedViewportRef = (0, _mantine_hooks.useMergedRef)(viewportRef, scrollAreaProps?.viewportRef);
270
+ const firstSlotIndex = {
271
+ resourceIndex: 0,
272
+ slotIndex: 0
273
+ };
274
+ (0, _mantine_hooks.useIsomorphicEffect)(() => {
275
+ if (!startScrollDateTime || !viewportRef.current) return;
276
+ const parsed = (0, dayjs.default)(startScrollDateTime);
277
+ const targetDayStr = parsed.format("YYYY-MM-DD 00:00:00");
278
+ const targetTime = parsed.format("HH:mm:ss");
279
+ const dayIndex = weekdays.indexOf(targetDayStr);
280
+ if (dayIndex < 0) return;
281
+ const slotInDay = slots.findIndex((s) => s.startTime >= targetTime);
282
+ if (slotInDay < 0) return;
283
+ const flatIndex = dayIndex * totalSlotsPerDay + slotInDay;
284
+ const firstResourceSlots = slotsRef.current[0];
285
+ if (!firstResourceSlots || firstResourceSlots.length === 0) return;
286
+ const targetSlot = firstResourceSlots[flatIndex];
287
+ if (!targetSlot) return;
288
+ const slotRect = targetSlot.getBoundingClientRect();
289
+ const viewportRect = viewportRef.current.getBoundingClientRect();
290
+ const cornerEl = viewportRef.current.querySelector(`.${require_ResourcesWeekView_module.default.resourcesWeekViewCorner}`);
291
+ const labelWidth = cornerEl ? cornerEl.getBoundingClientRect().width : 0;
292
+ viewportRef.current.scrollTo({
293
+ left: slotRect.left - viewportRect.left - labelWidth,
294
+ top: 0
295
+ });
296
+ }, []);
297
+ const getSlotIndexFromDragPoint = (0, react.useCallback)((event, resourceIndex) => {
298
+ return require_get_index_from_drag_point.getIndexFromDragPoint(slotsRef.current[resourceIndex] ?? [], event.clientX);
299
+ }, []);
300
+ const handleSlotKeyDown = (event, resourceIndex, slotIndex) => {
301
+ require_handle_resources_grid_key_down.handleResourcesGridKeyDown({
302
+ controlsRef: slotsRef,
303
+ resourceIndex,
304
+ slotIndex,
305
+ event
306
+ });
307
+ };
308
+ const dayWidthPercent = 100 / weekdays.length;
309
+ const rows = orderedResources.map((resource, resourceIndex) => {
310
+ const eventNodes = [];
311
+ const resourceAllDayBars = weekViewEvents.allDayBars[resource.id] ?? [];
312
+ const maxAllDayCount = resourceAllDayBars.reduce((max, bar) => Math.max(max, bar.row + 1), 0);
313
+ weekdays.forEach((day, dayIndex) => {
314
+ const dayEvents = weekViewEvents.byDay[day];
315
+ if (!dayEvents) return;
316
+ const dayOffsetPercent = dayIndex / weekdays.length * 100;
317
+ const bgEvents = [...dayEvents.backgroundTimedEvents[resource.id] || [], ...dayEvents.backgroundAllDayEvents[resource.id] || []];
318
+ for (const event of bgEvents) {
319
+ const colors = theme.variantColorResolver({
320
+ color: event.color || theme.primaryColor,
321
+ theme,
322
+ variant: "light",
323
+ autoContrast: true
324
+ });
325
+ const bgEventBody = typeof renderEventBody === "function" ? renderEventBody(event) : event.title;
326
+ const bgEventProps = {
327
+ key: `bg-${event.id}-${day}`,
328
+ ...getStyles("resourcesWeekViewBackgroundEvent", { style: {
329
+ left: `${dayOffsetPercent + event.position.top / 100 * dayWidthPercent}%`,
330
+ width: `${event.position.height / 100 * dayWidthPercent}%`,
331
+ top: 0,
332
+ height: "100%"
333
+ } }),
334
+ __vars: {
335
+ "--bg-event-bg": colors.background,
336
+ "--bg-event-color": colors.color
337
+ },
338
+ children: bgEventBody
339
+ };
340
+ if (typeof renderEvent === "function") eventNodes.push(renderEvent(event, bgEventProps));
341
+ else eventNodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Box, { ...bgEventProps }));
342
+ }
343
+ const allRegularEvents = (dayEvents.regularEvents[resource.id] || []).filter((event) => !require_is_all_day_event.isAllDayEvent({
344
+ event,
345
+ date: day
346
+ }));
347
+ const visibleEvents = maxEventsPerTimeSlot !== void 0 ? allRegularEvents.filter((event) => event.position.column < maxEventsPerTimeSlot) : allRegularEvents;
348
+ for (const event of visibleEvents) {
349
+ const isDraggable = dragDrop.isDraggableEvent(event);
350
+ const eventLeft = dayOffsetPercent + event.position.top / 100 * dayWidthPercent;
351
+ const eventWidth = event.position.height / 100 * dayWidthPercent;
352
+ const adjustPosition = maxEventsPerTimeSlot !== void 0 && event.position.overlaps > maxEventsPerTimeSlot;
353
+ eventNodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
354
+ ...getStyles("resourcesWeekViewEventWrapper"),
355
+ style: {
356
+ left: `calc(${eventLeft}% + 1px)`,
357
+ top: adjustPosition ? `calc((100% - 22px) * ${event.position.column} / ${maxEventsPerTimeSlot})` : `${event.position.offset}%`,
358
+ width: `calc(${eventWidth}% - 2px)`,
359
+ height: adjustPosition ? `calc((100% - 22px) / ${maxEventsPerTimeSlot})` : `${event.position.width}%`
360
+ },
361
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ScheduleEvent.ScheduleEvent, {
362
+ event,
363
+ autoSize: true,
364
+ nowrap: true,
365
+ draggable: isDraggable,
366
+ renderEventBody,
367
+ renderEvent,
368
+ radius,
369
+ mode,
370
+ onClick: onEventClick ? (e) => onEventClick(event, e) : void 0,
371
+ style: {
372
+ width: "100%",
373
+ height: "100%"
374
+ }
375
+ })
376
+ }, `${event.id}-${day}`));
377
+ }
378
+ if (maxEventsPerTimeSlot !== void 0) {
379
+ const clusters = require_get_overlap_clusters.getOverlapClusters(allRegularEvents);
380
+ for (const cluster of clusters) {
381
+ const hiddenCount = cluster.filter((e) => e.position.column >= maxEventsPerTimeSlot).length;
382
+ if (hiddenCount > 0 && mode !== "static") {
383
+ const leftPercent = dayOffsetPercent + Math.min(...cluster.map((e) => e.position.top)) / 100 * dayWidthPercent;
384
+ const rightPercent = dayOffsetPercent + Math.max(...cluster.map((e) => e.position.top + e.position.height)) / 100 * dayWidthPercent;
385
+ eventNodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MoreEvents.MoreEvents, {
386
+ events: cluster,
387
+ moreEventsCount: hiddenCount,
388
+ mode,
389
+ labels,
390
+ renderEventBody,
391
+ renderEvent,
392
+ onEventClick,
393
+ style: {
394
+ position: "absolute",
395
+ left: `calc(${leftPercent}% + 1px)`,
396
+ width: `calc(${rightPercent - leftPercent}% - 2px)`,
397
+ bottom: 0,
398
+ height: "22px",
399
+ paddingInline: 4,
400
+ zIndex: 4
401
+ },
402
+ ...stylesApiProps,
403
+ ...moreEventsProps
404
+ }, `more-${resource.id}-${day}-${cluster[0].id}`));
405
+ }
406
+ }
407
+ }
408
+ });
409
+ const stickyLabelOffset = hasGroups ? "calc(var(--resources-week-view-group-label-width) + var(--resources-week-view-resource-label-width) + 5px)" : "calc(var(--resources-week-view-resource-label-width) + 5px)";
410
+ resourceAllDayBars.forEach((bar) => {
411
+ const leftPercent = bar.startDayIndex * dayWidthPercent;
412
+ const widthPercent = (bar.endDayIndex - bar.startDayIndex + 1) * dayWidthPercent;
413
+ eventNodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
414
+ ...getStyles("resourcesWeekViewAllDayEvent", { style: {
415
+ left: `calc(${leftPercent}% + 1px)`,
416
+ width: `calc(${widthPercent}% - 2px)`,
417
+ top: `calc(${bar.row} * (var(--resources-week-view-all-day-height) + 2px) + 2px)`
418
+ } }),
419
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ScheduleEvent.ScheduleEvent, {
420
+ event: bar.event,
421
+ autoSize: true,
422
+ nowrap: true,
423
+ renderEventBody: (barEvent) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
424
+ style: {
425
+ position: "sticky",
426
+ insetInlineStart: stickyLabelOffset,
427
+ display: "inline-block",
428
+ maxWidth: "100%",
429
+ overflow: "hidden",
430
+ textOverflow: "ellipsis"
431
+ },
432
+ children: renderEventBody ? renderEventBody(barEvent) : barEvent.title
433
+ }),
434
+ renderEvent,
435
+ radius,
436
+ mode,
437
+ onClick: onEventClick ? (e) => onEventClick(bar.event, e) : void 0,
438
+ style: {
439
+ width: "100%",
440
+ height: "100%",
441
+ overflow: "visible"
442
+ },
443
+ styles: { eventInner: {
444
+ display: "block",
445
+ overflow: "visible",
446
+ lineHeight: "var(--resources-week-view-all-day-height)"
447
+ } }
448
+ })
449
+ }, `all-day-${bar.event.id}-${bar.startDayIndex}`));
450
+ });
451
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ResourcesWeekViewRow.ResourcesWeekViewRow, {
452
+ resource,
453
+ resourceIndex,
454
+ weekdays,
455
+ slots,
456
+ getStyles,
457
+ labels,
458
+ highlightBusinessHours,
459
+ businessHours,
460
+ withEventsDragAndDrop: withDragHandlers,
461
+ mode,
462
+ slotsRef,
463
+ firstSlotIndex,
464
+ onSlotKeyDown: handleSlotKeyDown,
465
+ onSlotClick: handleTimeSlotClick,
466
+ onRowSlotsDragOver: (event, resourceId, resIdx) => {
467
+ const slotIndex = getSlotIndexFromDragPoint(event, resIdx);
468
+ if (slotIndex !== null) dragDrop.handleDragOver(event, {
469
+ resourceId,
470
+ slotIndex
471
+ });
472
+ },
473
+ onRowSlotsDragLeave: dragDrop.handleDragLeave,
474
+ onRowSlotsDrop: (event, resourceId, resIdx) => {
475
+ const slotIndex = getSlotIndexFromDragPoint(event, resIdx);
476
+ if (slotIndex !== null) dragDrop.handleDrop(event, {
477
+ resourceId,
478
+ slotIndex
479
+ });
480
+ },
481
+ dropTargetSlotIndex: dragDrop.dropTarget?.resourceId === resource.id ? dragDrop.dropTarget.slotIndex : void 0,
482
+ withDragSlotSelect,
483
+ onSlotPointerDown: slotDragSelect.handleSlotPointerDown,
484
+ isSlotDragSelected: slotDragSelect.isSlotSelected,
485
+ rowSlotsContainerRef: (node) => {
486
+ rowSlotsContainersRef.current[resourceIndex] = node;
487
+ },
488
+ renderResourceLabel,
489
+ renderGroupLabel,
490
+ scrolledX,
491
+ groupInfo: hasGroups ? resourceGroupMap[resourceIndex] : void 0,
492
+ allDayCount: maxAllDayCount,
493
+ children: eventNodes
494
+ }, resource.id);
495
+ });
496
+ const headerLabel = require_get_week_label.getWeekLabel({
497
+ weekdays,
498
+ locale: ctx.getLocale(locale),
499
+ weekLabelFormat,
500
+ renderWeekLabel
501
+ });
502
+ const indicatorLeftPercent = todayDayIndex >= 0 ? (todayDayIndex + timeIndicatorOffset / 100) / weekdays.length * 100 : 0;
503
+ const content = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Box, {
504
+ ...getStyles("resourcesWeekView"),
505
+ mod: {
506
+ static: mode === "static",
507
+ "slot-dragging": slotDragSelect.isDragging,
508
+ "event-interaction": dragDrop.dragContextValue.isDragging
509
+ },
510
+ ...others,
511
+ children: [withHeader && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ScheduleHeaderBase.ScheduleHeaderBase, {
512
+ view: "week",
513
+ navigationHandlers: {
514
+ previous: () => require_previous_week.previousWeek(date, ctx.getFirstDayOfWeek(firstDayOfWeek)),
515
+ next: () => require_next_week.nextWeek(date, ctx.getFirstDayOfWeek(firstDayOfWeek)),
516
+ today: () => require_to_date_string.toDateString((0, dayjs.default)())
517
+ },
518
+ control: {
519
+ miw: 180,
520
+ title: headerLabel
521
+ },
522
+ labels,
523
+ onDateChange,
524
+ onViewChange,
525
+ previousControlProps,
526
+ nextControlProps,
527
+ todayControlProps,
528
+ viewSelectProps: {
529
+ views: [
530
+ "day",
531
+ "week",
532
+ "month"
533
+ ],
534
+ ...viewSelectProps
535
+ },
536
+ stylesApiProps
537
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Box, {
538
+ ...getStyles("resourcesWeekViewRoot"),
539
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.ScrollArea, {
540
+ scrollbarSize: 4,
541
+ ...scrollAreaProps,
542
+ ...getStyles("resourcesWeekViewScrollArea", {
543
+ className: scrollAreaProps?.className,
544
+ style: scrollAreaProps?.style
545
+ }),
546
+ onScrollPositionChange: (position) => {
547
+ scrollAreaProps?.onScrollPositionChange?.(position);
548
+ setScrolled(position.y !== 0);
549
+ setScrolledX(position.x !== 0);
550
+ },
551
+ viewportRef: mergedViewportRef,
552
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
553
+ ...getStyles("resourcesWeekViewInner"),
554
+ children: [
555
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
556
+ ...getStyles("resourcesWeekViewHeaderRows"),
557
+ children: [/* @__PURE__ */ (0, react.createElement)("div", {
558
+ ...getStyles("resourcesWeekViewCorner"),
559
+ key: "corner",
560
+ style: hasGroups ? {
561
+ flexBasis: "calc(var(--resources-week-view-resource-label-width) + var(--resources-week-view-group-label-width))",
562
+ minWidth: "calc(var(--resources-week-view-resource-label-width) + var(--resources-week-view-group-label-width))"
563
+ } : void 0
564
+ }, require_labels.getLabel("resources", labels)), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
565
+ ...getStyles("resourcesWeekViewHeaderContent"),
566
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
567
+ ...getStyles("resourcesWeekViewDayLabelsRow"),
568
+ children: dayLabels
569
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Box, {
570
+ ...getStyles("resourcesWeekViewTimeLabelsRow"),
571
+ mod: { scrolled },
572
+ children: timeLabels
573
+ })]
574
+ })]
575
+ }),
576
+ rows,
577
+ showTimeIndicator && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Box, {
578
+ ...getStyles("resourcesWeekViewCurrentTimeIndicator"),
579
+ __vars: {
580
+ "--indicator-left-offset": hasGroups ? `calc(var(--resources-week-view-resource-label-width) + var(--resources-week-view-group-label-width) + (100% - var(--resources-week-view-resource-label-width) - var(--resources-week-view-group-label-width)) * ${indicatorLeftPercent} / 100)` : `calc(var(--resources-week-view-resource-label-width) + (100% - var(--resources-week-view-resource-label-width)) * ${indicatorLeftPercent} / 100)`,
581
+ "--_time-bubble-width": formattedCurrentTime?.toString().toLowerCase().includes("m") ? "64px" : "46px"
582
+ },
583
+ children: [
584
+ withCurrentTimeBubble && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
585
+ ...getStyles("resourcesWeekViewCurrentTimeIndicatorTimeBubble"),
586
+ children: formattedCurrentTime
587
+ }),
588
+ !withCurrentTimeBubble && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { ...getStyles("resourcesWeekViewCurrentTimeIndicatorThumb") }),
589
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { ...getStyles("resourcesWeekViewCurrentTimeIndicatorLine") })
590
+ ]
591
+ })
592
+ ]
593
+ })
594
+ })
595
+ })]
596
+ });
597
+ const dragContextValue = (0, react.useMemo)(() => dragDrop.dragContextValue, [dragDrop.dragContextValue]);
598
+ if (withEventsDragAndDrop) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_DragContext.DragContext.Provider, {
599
+ value: dragContextValue,
600
+ children: content
601
+ });
602
+ return content;
603
+ });
604
+ ResourcesWeekView.displayName = "@mantine/schedule/ResourcesWeekView";
605
+ ResourcesWeekView.classes = require_ResourcesWeekView_module.default;
606
+ ResourcesWeekView.varsResolver = varsResolver;
607
+ //#endregion
608
+ exports.ResourcesWeekView = ResourcesWeekView;
609
+
610
+ //# sourceMappingURL=ResourcesWeekView.cjs.map