@mantine/schedule 9.3.2 → 9.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) 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 +127 -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 +129 -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 +105 -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 +676 -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 +161 -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 +20 -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-day-relative-percent/get-day-relative-percent.cjs +18 -0
  104. package/cjs/utils/get-day-relative-percent/get-day-relative-percent.cjs.map +1 -0
  105. package/cjs/utils/get-end-of-week/get-end-of-week.cjs.map +1 -1
  106. package/cjs/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.cjs +12 -0
  107. package/cjs/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.cjs.map +1 -0
  108. package/cjs/utils/get-index-from-drag-point/get-index-from-drag-point.cjs +27 -0
  109. package/cjs/utils/get-index-from-drag-point/get-index-from-drag-point.cjs.map +1 -0
  110. package/cjs/utils/get-month-days/get-month-days.cjs.map +1 -1
  111. package/cjs/utils/get-month-range/get-month-range.cjs.map +1 -1
  112. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs.map +1 -1
  113. package/cjs/utils/get-months-list/get-months-list.cjs.map +1 -1
  114. package/cjs/utils/get-ordered-resources/get-ordered-resources.cjs +54 -0
  115. package/cjs/utils/get-ordered-resources/get-ordered-resources.cjs.map +1 -0
  116. package/cjs/utils/get-start-of-week/get-start-of-week.cjs.map +1 -1
  117. package/cjs/utils/get-week-days/get-week-days.cjs.map +1 -1
  118. package/cjs/utils/get-week-number/get-week-number.cjs.map +1 -1
  119. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
  120. package/cjs/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.cjs +88 -0
  121. package/cjs/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.cjs.map +1 -0
  122. package/cjs/utils/is-after-min-date/is-after-min-date.cjs.map +1 -1
  123. package/cjs/utils/is-all-day-event/is-all-day-event.cjs.map +1 -1
  124. package/cjs/utils/is-before-max-date/is-before-max-date.cjs.map +1 -1
  125. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs.map +1 -1
  126. package/cjs/utils/is-events-overlap/is-events-overlap.cjs.map +1 -1
  127. package/cjs/utils/is-in-time-range/is-in-time-range.cjs.map +1 -1
  128. package/cjs/utils/is-multiday-event/is-multiday-event.cjs.map +1 -1
  129. package/cjs/utils/is-same-month/is-same-month.cjs.map +1 -1
  130. package/cjs/utils/is-within-week/is-within-week.cjs.map +1 -1
  131. package/cjs/utils/next-week/next-week.cjs.map +1 -1
  132. package/cjs/utils/parse-time-string/parse-time-string.cjs.map +1 -1
  133. package/cjs/utils/previous-week/previous-week.cjs.map +1 -1
  134. package/cjs/utils/sort-events/sort-events.cjs.map +1 -1
  135. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
  136. package/cjs/utils/to-time-string/to-time-string.cjs.map +1 -1
  137. package/cjs/utils/validate-event/validate-event.cjs.map +1 -1
  138. package/esm/components/AgendaView/AgendaView.mjs +130 -0
  139. package/esm/components/AgendaView/AgendaView.mjs.map +1 -0
  140. package/esm/components/AgendaView/AgendaView.module.mjs +19 -0
  141. package/esm/components/AgendaView/AgendaView.module.mjs.map +1 -0
  142. package/esm/components/AgendaView/get-agenda-view-events.mjs +46 -0
  143. package/esm/components/AgendaView/get-agenda-view-events.mjs.map +1 -0
  144. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -1
  145. package/esm/components/DayView/DayView.mjs +128 -107
  146. package/esm/components/DayView/DayView.mjs.map +1 -1
  147. package/esm/components/DayView/DayView.module.mjs.map +1 -1
  148. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs.map +1 -1
  149. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs.map +1 -1
  150. package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -1
  151. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs.map +1 -1
  152. package/esm/components/MonthView/MonthView.mjs +115 -65
  153. package/esm/components/MonthView/MonthView.mjs.map +1 -1
  154. package/esm/components/MonthView/MonthView.module.mjs.map +1 -1
  155. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs.map +1 -1
  156. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs.map +1 -1
  157. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs.map +1 -1
  158. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs.map +1 -1
  159. package/esm/components/MonthView/get-renderable-month-event-segments.mjs +17 -15
  160. package/esm/components/MonthView/get-renderable-month-event-segments.mjs.map +1 -1
  161. package/esm/components/MonthView/get-visible-columns.mjs +53 -0
  162. package/esm/components/MonthView/get-visible-columns.mjs.map +1 -0
  163. package/esm/components/MonthView/handle-month-view-key-down.mjs.map +1 -1
  164. package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -1
  165. package/esm/components/ResourcesDayView/ResourcesDayView.mjs +576 -0
  166. package/esm/components/ResourcesDayView/ResourcesDayView.mjs.map +1 -0
  167. package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs +29 -0
  168. package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs.map +1 -0
  169. package/esm/components/ResourcesDayView/ResourcesDayViewColumn.mjs +89 -0
  170. package/esm/components/ResourcesDayView/ResourcesDayViewColumn.mjs.map +1 -0
  171. package/esm/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.mjs +26 -0
  172. package/esm/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.mjs.map +1 -0
  173. package/esm/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.mjs +127 -0
  174. package/esm/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.mjs.map +1 -0
  175. package/esm/components/ResourcesMonthView/ResourcesMonthView.mjs +600 -0
  176. package/esm/components/ResourcesMonthView/ResourcesMonthView.mjs.map +1 -0
  177. package/esm/components/ResourcesMonthView/ResourcesMonthView.module.mjs +23 -0
  178. package/esm/components/ResourcesMonthView/ResourcesMonthView.module.mjs.map +1 -0
  179. package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs +105 -0
  180. package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs.map +1 -0
  181. package/esm/components/ResourcesSchedule/ResourcesSchedule.module.mjs +7 -0
  182. package/esm/components/ResourcesSchedule/ResourcesSchedule.module.mjs.map +1 -0
  183. package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs +674 -0
  184. package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs.map +1 -0
  185. package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs +33 -0
  186. package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs.map +1 -0
  187. package/esm/components/ResourcesWeekView/ResourcesWeekViewRow.mjs +90 -0
  188. package/esm/components/ResourcesWeekView/ResourcesWeekViewRow.mjs.map +1 -0
  189. package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs +95 -0
  190. package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs.map +1 -0
  191. package/esm/components/Schedule/Schedule.mjs +3 -2
  192. package/esm/components/Schedule/Schedule.mjs.map +1 -1
  193. package/esm/components/ScheduleEvent/ScheduleEvent.mjs +1 -1
  194. package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -1
  195. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs.map +1 -1
  196. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs.map +1 -1
  197. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs +2 -0
  198. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs.map +1 -1
  199. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs +29 -11
  200. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs.map +1 -1
  201. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs.map +1 -1
  202. package/esm/components/WeekView/WeekView.mjs +128 -102
  203. package/esm/components/WeekView/WeekView.mjs.map +1 -1
  204. package/esm/components/WeekView/WeekView.module.mjs.map +1 -1
  205. package/esm/components/WeekView/WeekViewDay.mjs +3 -1
  206. package/esm/components/WeekView/WeekViewDay.mjs.map +1 -1
  207. package/esm/components/WeekView/get-week-label/get-week-label.mjs.map +1 -1
  208. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs.map +1 -1
  209. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs.map +1 -1
  210. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs.map +1 -1
  211. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs.map +1 -1
  212. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs.map +1 -1
  213. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs.map +1 -1
  214. package/esm/components/WeekView/handle-week-view-key-down.mjs.map +1 -1
  215. package/esm/components/YearView/YearView.mjs.map +1 -1
  216. package/esm/components/YearView/YearViewMonth.mjs.map +1 -1
  217. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs.map +1 -1
  218. package/esm/components/YearView/handle-year-view-key-down.mjs.map +1 -1
  219. package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -1
  220. package/esm/hooks/use-event-resize.mjs.map +1 -1
  221. package/esm/hooks/use-horizontal-event-resize.mjs +159 -0
  222. package/esm/hooks/use-horizontal-event-resize.mjs.map +1 -0
  223. package/esm/index.mjs +11 -1
  224. package/esm/labels.mjs +5 -1
  225. package/esm/labels.mjs.map +1 -1
  226. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs.map +1 -1
  227. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs.map +1 -1
  228. package/esm/utils/expand-recurring-events/expand-recurring-events.mjs.map +1 -1
  229. package/esm/utils/format-date/format-date.mjs.map +1 -1
  230. package/esm/utils/get-current-time-position/get-current-time-position.mjs.map +1 -1
  231. package/esm/utils/get-day-position/get-day-position.mjs.map +1 -1
  232. package/esm/utils/get-day-relative-percent/get-day-relative-percent.mjs +18 -0
  233. package/esm/utils/get-day-relative-percent/get-day-relative-percent.mjs.map +1 -0
  234. package/esm/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.mjs +12 -0
  235. package/esm/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.mjs.map +1 -0
  236. package/esm/utils/get-index-from-drag-point/get-index-from-drag-point.mjs +27 -0
  237. package/esm/utils/get-index-from-drag-point/get-index-from-drag-point.mjs.map +1 -0
  238. package/esm/utils/get-month-days/get-month-days.mjs.map +1 -1
  239. package/esm/utils/get-month-range/get-month-range.mjs.map +1 -1
  240. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs.map +1 -1
  241. package/esm/utils/get-months-list/get-months-list.mjs.map +1 -1
  242. package/esm/utils/get-ordered-resources/get-ordered-resources.mjs +54 -0
  243. package/esm/utils/get-ordered-resources/get-ordered-resources.mjs.map +1 -0
  244. package/esm/utils/get-week-number/get-week-number.mjs.map +1 -1
  245. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
  246. package/esm/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.mjs +88 -0
  247. package/esm/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.mjs.map +1 -0
  248. package/esm/utils/is-after-min-date/is-after-min-date.mjs.map +1 -1
  249. package/esm/utils/is-all-day-event/is-all-day-event.mjs.map +1 -1
  250. package/esm/utils/is-before-max-date/is-before-max-date.mjs.map +1 -1
  251. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs.map +1 -1
  252. package/esm/utils/is-events-overlap/is-events-overlap.mjs.map +1 -1
  253. package/esm/utils/is-in-time-range/is-in-time-range.mjs.map +1 -1
  254. package/esm/utils/is-multiday-event/is-multiday-event.mjs.map +1 -1
  255. package/esm/utils/is-same-month/is-same-month.mjs.map +1 -1
  256. package/esm/utils/is-within-week/is-within-week.mjs.map +1 -1
  257. package/esm/utils/next-week/next-week.mjs.map +1 -1
  258. package/esm/utils/parse-time-string/parse-time-string.mjs.map +1 -1
  259. package/esm/utils/previous-week/previous-week.mjs.map +1 -1
  260. package/esm/utils/sort-events/sort-events.mjs.map +1 -1
  261. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -1
  262. package/esm/utils/to-time-string/to-time-string.mjs.map +1 -1
  263. package/esm/utils/validate-event/validate-event.mjs.map +1 -1
  264. package/lib/components/AgendaView/AgendaView.d.ts +54 -0
  265. package/lib/components/AgendaView/get-agenda-view-events.d.ts +9 -0
  266. package/lib/components/AgendaView/index.d.ts +2 -0
  267. package/lib/components/DayView/DayView.d.ts +6 -1
  268. package/lib/components/MonthView/MonthView.d.ts +6 -1
  269. package/lib/components/MonthView/get-renderable-month-event-segments.d.ts +5 -1
  270. package/lib/components/MonthView/get-visible-columns.d.ts +19 -0
  271. package/lib/components/ResourcesDayView/ResourcesDayView.d.ts +148 -0
  272. package/lib/components/ResourcesDayView/ResourcesDayViewColumn.d.ts +39 -0
  273. package/lib/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.d.ts +2 -0
  274. package/lib/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.d.ts +16 -0
  275. package/lib/components/ResourcesDayView/index.d.ts +9 -0
  276. package/lib/components/ResourcesMonthView/ResourcesMonthView.d.ts +129 -0
  277. package/lib/components/ResourcesMonthView/index.d.ts +9 -0
  278. package/lib/components/ResourcesSchedule/ResourcesSchedule.d.ts +123 -0
  279. package/lib/components/ResourcesSchedule/index.d.ts +3 -0
  280. package/lib/components/ResourcesWeekView/ResourcesWeekView.d.ts +117 -0
  281. package/lib/components/ResourcesWeekView/ResourcesWeekViewRow.d.ts +39 -0
  282. package/lib/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.d.ts +29 -0
  283. package/lib/components/ResourcesWeekView/index.d.ts +3 -0
  284. package/lib/components/Schedule/Schedule.d.ts +3 -1
  285. package/lib/components/ScheduleHeader/ScheduleHeaderBase.d.ts +5 -1
  286. package/lib/components/WeekView/WeekView.d.ts +6 -1
  287. package/lib/components/WeekView/WeekViewDay.d.ts +3 -1
  288. package/lib/hooks/use-horizontal-event-resize.d.ts +39 -0
  289. package/lib/index.d.mts +5 -0
  290. package/lib/index.d.ts +5 -0
  291. package/lib/labels.d.ts +4 -0
  292. package/lib/types.d.ts +20 -0
  293. package/lib/utils/get-day-relative-percent/get-day-relative-percent.d.ts +15 -0
  294. package/lib/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.d.ts +3 -0
  295. package/lib/utils/get-index-from-drag-point/get-index-from-drag-point.d.ts +6 -0
  296. package/lib/utils/get-ordered-resources/get-ordered-resources.d.ts +17 -0
  297. package/lib/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.d.ts +10 -0
  298. package/lib/utils/index.d.ts +7 -0
  299. package/package.json +4 -4
  300. package/styles.css +1362 -9
  301. package/styles.layer.css +1363 -10
@@ -0,0 +1,602 @@
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_to_date_string = require("../../utils/to-date-string/to-date-string.cjs");
6
+ const require_calculate_month_drop_date = require("../../utils/calculate-month-drop-date/calculate-month-drop-date.cjs");
7
+ const require_expand_recurring_events = require("../../utils/expand-recurring-events/expand-recurring-events.cjs");
8
+ const require_get_ordered_resources = require("../../utils/get-ordered-resources/get-ordered-resources.cjs");
9
+ const require_get_group_to_resource_id_map = require("../../utils/get-group-to-resource-id-map/get-group-to-resource-id-map.cjs");
10
+ const require_get_index_from_drag_point = require("../../utils/get-index-from-drag-point/get-index-from-drag-point.cjs");
11
+ const require_use_drag_drop_handlers = require("../../hooks/use-drag-drop-handlers.cjs");
12
+ const require_use_slot_drag_select = require("../../hooks/use-slot-drag-select.cjs");
13
+ const require_DragContext = require("../DragContext/DragContext.cjs");
14
+ const require_ScheduleEvent = require("../ScheduleEvent/ScheduleEvent.cjs");
15
+ const require_MoreEvents = require("../MoreEvents/MoreEvents.cjs");
16
+ const require_ScheduleHeaderBase = require("../ScheduleHeader/ScheduleHeaderBase.cjs");
17
+ const require_ResourcesMonthView_module = require("./ResourcesMonthView.module.cjs");
18
+ let dayjs = require("dayjs");
19
+ dayjs = require_runtime.__toESM(dayjs);
20
+ let _mantine_core = require("@mantine/core");
21
+ let _mantine_hooks = require("@mantine/hooks");
22
+ let react = require("react");
23
+ let _mantine_dates = require("@mantine/dates");
24
+ let react_jsx_runtime = require("react/jsx-runtime");
25
+ //#region packages/@mantine/schedule/src/components/ResourcesMonthView/ResourcesMonthView.tsx
26
+ const varsResolver = (0, _mantine_core.createVarsResolver)((_theme, { radius, dayWidth, rowHeight, groupLabelWidth }) => ({ resourcesMonthView: {
27
+ "--resources-month-view-radius": radius ? (0, _mantine_core.getRadius)(radius) : void 0,
28
+ "--resources-month-view-day-width": (0, _mantine_core.rem)(dayWidth),
29
+ "--resources-month-view-row-height": (0, _mantine_core.rem)(rowHeight),
30
+ "--resources-month-view-group-label-width": (0, _mantine_core.rem)(groupLabelWidth)
31
+ } }));
32
+ const defaultProps = {
33
+ __staticSelector: "ResourcesMonthView",
34
+ highlightToday: true,
35
+ withHeader: true,
36
+ weekdayFormat: "ddd",
37
+ withWeekendDays: true,
38
+ withEventsDragAndDrop: false,
39
+ withDragSlotSelect: false,
40
+ mode: "default"
41
+ };
42
+ function compareCellEvents(a, b) {
43
+ const aStart = (0, dayjs.default)(a.start);
44
+ const bStart = (0, dayjs.default)(b.start);
45
+ const aSpan = (0, dayjs.default)(a.end).startOf("day").diff(aStart.startOf("day"), "day");
46
+ const bSpan = (0, dayjs.default)(b.end).startOf("day").diff(bStart.startOf("day"), "day");
47
+ if (aSpan !== bSpan) return bSpan - aSpan;
48
+ return aStart.valueOf() - bStart.valueOf();
49
+ }
50
+ function getFirstAvailableRow(usedRows, maxRows) {
51
+ for (let row = 0; row < maxRows; row += 1) if (!usedRows.has(row)) return row;
52
+ return null;
53
+ }
54
+ function isMultiDayEvent(event) {
55
+ return (0, dayjs.default)(event.end).startOf("day").isAfter((0, dayjs.default)(event.start).startOf("day"));
56
+ }
57
+ const ResourcesMonthView = (0, _mantine_core.factory)((_props) => {
58
+ const props = (0, _mantine_core.useProps)("ResourcesMonthView", defaultProps, _props);
59
+ const { classNames, className, style, styles, unstyled, attributes, vars, mod, date, onDateChange, resources, locale, weekdayFormat, weekendDays, withWeekendDays, startScrollDate, __staticSelector, onDayClick, highlightToday, radius, withHeader, monthYearSelectProps, onViewChange, todayControlProps, nextControlProps, previousControlProps, viewSelectProps, events, dayWidth, rowHeight, renderResourceLabel, groups, renderGroupLabel, groupLabelWidth, renderEventBody, renderEvent, withEventsDragAndDrop, onEventDrop, canDragEvent, onEventDragStart, onEventDragEnd, onEventClick, withDragSlotSelect, onSlotDragEnd, labels, mode, scrollAreaProps, onExternalEventDrop, maxEventsPerTimeSlot: _maxEventsPerTimeSlot, moreEventsProps, recurrenceExpansionLimit, ...others } = props;
60
+ const maxEventsPerTimeSlot = Math.min(10, Math.max(1, _maxEventsPerTimeSlot ?? 2));
61
+ const getStyles = (0, _mantine_core.useStyles)({
62
+ name: __staticSelector,
63
+ classes: require_ResourcesMonthView_module.default,
64
+ props,
65
+ className,
66
+ style,
67
+ classNames,
68
+ styles,
69
+ unstyled,
70
+ attributes,
71
+ vars,
72
+ varsResolver,
73
+ rootSelector: "resourcesMonthView"
74
+ });
75
+ const { resolvedClassNames, resolvedStyles } = (0, _mantine_core.useResolvedStylesApi)({
76
+ classNames,
77
+ styles,
78
+ props
79
+ });
80
+ const stylesApiProps = {
81
+ classNames: resolvedClassNames,
82
+ styles: resolvedStyles,
83
+ attributes,
84
+ __staticSelector,
85
+ radius
86
+ };
87
+ const ctx = (0, _mantine_dates.useDatesContext)();
88
+ const resolvedWeekendDays = ctx.getWeekendDays(weekendDays);
89
+ const { orderedResources, groupRanges, resourceGroupMap } = (0, react.useMemo)(() => require_get_ordered_resources.getOrderedResources(resources, groups), [resources, groups]);
90
+ const hasGroups = groupRanges.length > 0;
91
+ const monthDays = (0, react.useMemo)(() => {
92
+ const start = (0, dayjs.default)(date).startOf("month");
93
+ const daysCount = start.endOf("month").date();
94
+ const weekendDayList = ctx.getWeekendDays(weekendDays);
95
+ const days = [];
96
+ for (let d = 1; d <= daysCount; d++) {
97
+ const day = start.date(d);
98
+ if (!withWeekendDays && weekendDayList.includes(day.day())) continue;
99
+ days.push(day.format("YYYY-MM-DD"));
100
+ }
101
+ return days;
102
+ }, [
103
+ date,
104
+ withWeekendDays,
105
+ weekendDays,
106
+ ctx
107
+ ]);
108
+ const viewportRef = (0, react.useRef)(null);
109
+ const mergedViewportRef = (0, _mantine_hooks.useMergedRef)(viewportRef, scrollAreaProps?.viewportRef);
110
+ const dayLabelRefs = (0, react.useRef)([]);
111
+ const resourceLabelRef = (0, react.useRef)(null);
112
+ const scrollToDay = (0, react.useCallback)((targetDate) => {
113
+ if (!viewportRef.current) return;
114
+ const targetIndex = monthDays.indexOf(targetDate);
115
+ if (targetIndex < 0) return;
116
+ const targetLabel = dayLabelRefs.current[targetIndex];
117
+ if (!targetLabel) return;
118
+ const labelRect = targetLabel.getBoundingClientRect();
119
+ const viewportRect = viewportRef.current.getBoundingClientRect();
120
+ const labelWidth = resourceLabelRef.current?.getBoundingClientRect().width ?? 0;
121
+ viewportRef.current.scrollTo({
122
+ left: labelRect.left - viewportRect.left - labelWidth,
123
+ top: 0
124
+ });
125
+ }, [monthDays]);
126
+ (0, _mantine_hooks.useIsomorphicEffect)(() => {
127
+ if (startScrollDate) scrollToDay(startScrollDate);
128
+ }, []);
129
+ const expandedEvents = (0, react.useMemo)(() => require_expand_recurring_events.expandRecurringEvents({
130
+ events,
131
+ rangeStart: (0, dayjs.default)(date).startOf("month").toDate(),
132
+ rangeEnd: (0, dayjs.default)(date).endOf("month").toDate(),
133
+ expansionLimit: recurrenceExpansionLimit
134
+ }), [
135
+ events,
136
+ date,
137
+ recurrenceExpansionLimit
138
+ ]);
139
+ const { eventsByResourceAndDay, eventLayoutByResource } = (0, react.useMemo)(() => {
140
+ const eventsByResourceAndDay = {};
141
+ for (const resource of resources) {
142
+ eventsByResourceAndDay[resource.id] = {};
143
+ for (const day of monthDays) eventsByResourceAndDay[resource.id][day] = [];
144
+ }
145
+ if (expandedEvents) for (const event of expandedEvents) {
146
+ if (event.resourceId === void 0 || !(event.resourceId in eventsByResourceAndDay)) continue;
147
+ const eventStart = (0, dayjs.default)(event.start);
148
+ const eventEnd = (0, dayjs.default)(event.end);
149
+ for (const day of monthDays) {
150
+ const dayStart = (0, dayjs.default)(day).startOf("day");
151
+ const dayEnd = (0, dayjs.default)(day).endOf("day");
152
+ if (eventStart.isBefore(dayEnd) && eventEnd.isAfter(dayStart)) eventsByResourceAndDay[event.resourceId][day].push(event);
153
+ }
154
+ }
155
+ const eventLayoutByResource = {};
156
+ const monthRangeStart = (0, dayjs.default)(monthDays[0]).startOf("day");
157
+ const monthEndExclusive = (0, dayjs.default)(monthDays[monthDays.length - 1]).add(1, "day").startOf("day");
158
+ for (const resource of resources) {
159
+ const byDay = {};
160
+ const lastRow = /* @__PURE__ */ new Map();
161
+ const rowByEventDay = /* @__PURE__ */ new Map();
162
+ const overlapByEvent = /* @__PURE__ */ new Map();
163
+ monthDays.forEach((day, dayIndex) => {
164
+ const dayEvents = eventsByResourceAndDay[resource.id][day];
165
+ dayEvents.sort(compareCellEvents);
166
+ for (const event of dayEvents) {
167
+ const overlap = overlapByEvent.get(event.id);
168
+ if (overlap) overlap.days.push(dayIndex);
169
+ else overlapByEvent.set(event.id, {
170
+ event,
171
+ days: [dayIndex]
172
+ });
173
+ }
174
+ const usedRows = /* @__PURE__ */ new Set();
175
+ const visible = [];
176
+ let hiddenCount = 0;
177
+ for (const event of dayEvents) {
178
+ let row = lastRow.get(event.id);
179
+ if (row === void 0 || row >= maxEventsPerTimeSlot || usedRows.has(row)) row = getFirstAvailableRow(usedRows, maxEventsPerTimeSlot);
180
+ if (row === null) {
181
+ hiddenCount += 1;
182
+ continue;
183
+ }
184
+ usedRows.add(row);
185
+ visible.push({
186
+ event,
187
+ row
188
+ });
189
+ if (!rowByEventDay.has(event.id)) rowByEventDay.set(event.id, /* @__PURE__ */ new Map());
190
+ rowByEventDay.get(event.id).set(dayIndex, row);
191
+ lastRow.set(event.id, row);
192
+ }
193
+ byDay[day] = {
194
+ visible,
195
+ hiddenCount
196
+ };
197
+ });
198
+ const segments = [];
199
+ for (const { event, days } of overlapByEvent.values()) {
200
+ if (!isMultiDayEvent(event)) continue;
201
+ const firstOverlap = days[0];
202
+ const lastOverlap = days[days.length - 1];
203
+ const rows = rowByEventDay.get(event.id);
204
+ const extendsBefore = (0, dayjs.default)(event.start).isBefore(monthRangeStart);
205
+ const extendsAfter = (0, dayjs.default)(event.end).isAfter(monthEndExclusive);
206
+ let run = null;
207
+ const flushRun = () => {
208
+ if (!run) return;
209
+ const clipStart = run.startDayIndex > firstOverlap;
210
+ const clipEnd = run.endDayIndex < lastOverlap;
211
+ const hangStart = !clipStart && extendsBefore;
212
+ const hangEnd = !clipEnd && extendsAfter;
213
+ let hiddenInSpan = false;
214
+ for (let dayIndex = run.startDayIndex; dayIndex <= run.endDayIndex; dayIndex += 1) if ((byDay[monthDays[dayIndex]]?.hiddenCount ?? 0) > 0) {
215
+ hiddenInSpan = true;
216
+ break;
217
+ }
218
+ segments.push({
219
+ event,
220
+ startDayIndex: run.startDayIndex,
221
+ endDayIndex: run.endDayIndex,
222
+ row: run.row,
223
+ clipStart,
224
+ clipEnd,
225
+ hanging: hangStart && hangEnd ? "both" : hangStart ? "start" : hangEnd ? "end" : "none",
226
+ hiddenInSpan
227
+ });
228
+ run = null;
229
+ };
230
+ for (let dayIndex = firstOverlap; dayIndex <= lastOverlap; dayIndex += 1) {
231
+ const row = rows?.get(dayIndex);
232
+ if (row === void 0) {
233
+ flushRun();
234
+ continue;
235
+ }
236
+ if (run && run.row === row && run.endDayIndex === dayIndex - 1) run.endDayIndex = dayIndex;
237
+ else {
238
+ flushRun();
239
+ run = {
240
+ startDayIndex: dayIndex,
241
+ endDayIndex: dayIndex,
242
+ row
243
+ };
244
+ }
245
+ }
246
+ flushRun();
247
+ }
248
+ eventLayoutByResource[resource.id] = {
249
+ byDay,
250
+ segments
251
+ };
252
+ }
253
+ return {
254
+ eventsByResourceAndDay,
255
+ eventLayoutByResource
256
+ };
257
+ }, [
258
+ resources,
259
+ monthDays,
260
+ expandedEvents,
261
+ maxEventsPerTimeSlot
262
+ ]);
263
+ const handleExternalDrop = (0, react.useCallback)((e, target) => {
264
+ if (!onExternalEventDrop) return;
265
+ onExternalEventDrop({
266
+ dataTransfer: e.dataTransfer,
267
+ dropDateTime: `${(0, dayjs.default)(target.day).format("YYYY-MM-DD")} 00:00:00`,
268
+ resourceId: target.resourceId
269
+ });
270
+ }, [onExternalEventDrop]);
271
+ const dragDrop = require_use_drag_drop_handlers.useDragDropHandlers({
272
+ enabled: withEventsDragAndDrop,
273
+ mode,
274
+ onEventDrop: (data) => {
275
+ onEventDrop?.({
276
+ ...data,
277
+ resourceId: lastDropResourceId.current
278
+ });
279
+ },
280
+ canDragEvent,
281
+ onEventDragStart,
282
+ onEventDragEnd,
283
+ calculateDropTarget: (target, draggedEvent) => {
284
+ lastDropResourceId.current = target.resourceId;
285
+ return require_calculate_month_drop_date.calculateMonthDropDate({
286
+ draggedEvent,
287
+ targetDay: target.day
288
+ });
289
+ },
290
+ onExternalDrop: onExternalEventDrop ? handleExternalDrop : void 0
291
+ });
292
+ const lastDropResourceId = (0, react.useRef)(void 0);
293
+ const withDragHandlers = (withEventsDragAndDrop || !!onExternalEventDrop) && mode !== "static";
294
+ const groupToResourceId = (0, react.useMemo)(() => require_get_group_to_resource_id_map.getGroupToResourceIdMap(resources), [resources]);
295
+ const slotDragSelect = require_use_slot_drag_select.useSlotDragSelect({
296
+ enabled: withDragSlotSelect && mode !== "static",
297
+ onDragEnd: (startIndex, endIndex, group) => {
298
+ if (!onSlotDragEnd) return;
299
+ const startDay = monthDays[startIndex];
300
+ const endDay = monthDays[endIndex];
301
+ if (startDay && endDay) onSlotDragEnd({
302
+ rangeStart: (0, dayjs.default)(startDay).startOf("day").format("YYYY-MM-DD HH:mm:ss"),
303
+ rangeEnd: (0, dayjs.default)(endDay).endOf("day").format("YYYY-MM-DD HH:mm:ss"),
304
+ resourceId: groupToResourceId.get(group) ?? group
305
+ });
306
+ }
307
+ });
308
+ const dayLabels = monthDays.map((day, dayIndex) => {
309
+ const d = (0, dayjs.default)(day);
310
+ const weekend = resolvedWeekendDays.includes(d.day());
311
+ const today = d.isSame((0, dayjs.default)(), "day") && highlightToday;
312
+ return /* @__PURE__ */ (0, react.createElement)(_mantine_core.Box, {
313
+ ...getStyles("resourcesMonthViewDayLabel"),
314
+ key: day,
315
+ mod: {
316
+ weekend,
317
+ today
318
+ },
319
+ ref: (node) => {
320
+ dayLabelRefs.current[dayIndex] = node;
321
+ }
322
+ }, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
323
+ ...getStyles("resourcesMonthViewDayLabelWeekday"),
324
+ children: require_format_date.formatDate({
325
+ date: d,
326
+ locale: ctx.getLocale(locale),
327
+ format: weekdayFormat
328
+ })
329
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
330
+ ...getStyles("resourcesMonthViewDayLabelNumber"),
331
+ children: d.date()
332
+ }));
333
+ });
334
+ const cellsRef = (0, react.useRef)([]);
335
+ const getDayIndexFromDragPoint = (0, react.useCallback)((event, resourceIndex) => {
336
+ return require_get_index_from_drag_point.getIndexFromDragPoint(cellsRef.current[resourceIndex] ?? [], event.clientX);
337
+ }, []);
338
+ const handleCellKeyDown = (event, resourceIndex, dayIndex) => {
339
+ const key = event.key;
340
+ let nextResourceIndex = resourceIndex;
341
+ let nextDayIndex = dayIndex;
342
+ if (key === "ArrowRight") nextDayIndex = Math.min(dayIndex + 1, monthDays.length - 1);
343
+ else if (key === "ArrowLeft") nextDayIndex = Math.max(dayIndex - 1, 0);
344
+ else if (key === "ArrowDown") nextResourceIndex = Math.min(resourceIndex + 1, resources.length - 1);
345
+ else if (key === "ArrowUp") nextResourceIndex = Math.max(resourceIndex - 1, 0);
346
+ else return;
347
+ event.preventDefault();
348
+ cellsRef.current[nextResourceIndex]?.[nextDayIndex]?.focus();
349
+ };
350
+ const rowHeightPercent = 100 / maxEventsPerTimeSlot;
351
+ const rows = orderedResources.map((resource, resourceIndex) => {
352
+ if (!cellsRef.current[resourceIndex]) cellsRef.current[resourceIndex] = [];
353
+ const slotGroup = String(resource.id);
354
+ const dropTarget = dragDrop.dropTarget;
355
+ const totalDays = monthDays.length;
356
+ const eventNodes = [];
357
+ const moreNodes = [];
358
+ const cells = monthDays.map((day, dayIndex) => {
359
+ const d = (0, dayjs.default)(day);
360
+ const weekend = ctx.getWeekendDays(weekendDays).includes(d.day());
361
+ const isDropTarget = dropTarget !== null && typeof dropTarget === "object" && "day" in dropTarget && dropTarget.day === day && dropTarget.resourceId === resource.id;
362
+ const isDragSelected = slotDragSelect.isSlotSelected(dayIndex, slotGroup);
363
+ const dayEvents = eventsByResourceAndDay[resource.id]?.[day] || [];
364
+ const layout = eventLayoutByResource[resource.id]?.byDay[day];
365
+ const visibleEvents = layout?.visible ?? [];
366
+ const hiddenEventsCount = layout?.hiddenCount ?? 0;
367
+ const isFirstCell = resourceIndex === 0 && dayIndex === 0;
368
+ const dayLeftPercent = dayIndex / totalDays * 100;
369
+ const dayWidthPercent = 100 / totalDays;
370
+ const hasHiddenEvents = hiddenEventsCount > 0 && mode !== "static";
371
+ visibleEvents.forEach(({ event, row }) => {
372
+ if (isMultiDayEvent(event)) return;
373
+ const isDraggable = dragDrop.isDraggableEvent(event);
374
+ const topValue = hasHiddenEvents ? `calc((100% - 18px) * ${row} / ${maxEventsPerTimeSlot} + 1px)` : `calc(${row * rowHeightPercent}% + 1px)`;
375
+ const heightValue = hasHiddenEvents ? `calc((100% - 18px) / ${maxEventsPerTimeSlot} - 2px)` : `calc(${rowHeightPercent}% - 2px)`;
376
+ eventNodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ScheduleEvent.ScheduleEvent, {
377
+ event,
378
+ nowrap: true,
379
+ autoSize: true,
380
+ size: "sm",
381
+ draggable: isDraggable,
382
+ renderEventBody,
383
+ renderEvent,
384
+ radius,
385
+ mode,
386
+ onClick: onEventClick ? (e) => onEventClick(event, e) : void 0,
387
+ style: {
388
+ position: "absolute",
389
+ top: topValue,
390
+ left: `calc(${dayLeftPercent}% + 1px)`,
391
+ width: `calc(${dayWidthPercent}% - 2px)`,
392
+ height: heightValue,
393
+ zIndex: 3
394
+ }
395
+ }, `${event.id}-${day}`));
396
+ });
397
+ if (hiddenEventsCount > 0 && mode !== "static") moreNodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_MoreEvents.MoreEvents, {
398
+ events: dayEvents,
399
+ moreEventsCount: hiddenEventsCount,
400
+ mode,
401
+ labels,
402
+ renderEventBody,
403
+ renderEvent,
404
+ onEventClick,
405
+ style: {
406
+ position: "absolute",
407
+ bottom: 1,
408
+ left: `calc(${dayLeftPercent}% + 1px)`,
409
+ width: `calc(${dayWidthPercent}% - 2px)`,
410
+ height: 18,
411
+ zIndex: 4
412
+ },
413
+ ...stylesApiProps,
414
+ ...moreEventsProps
415
+ }, `more-${resource.id}-${day}`));
416
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.UnstyledButton, {
417
+ ref: (node) => {
418
+ if (node) {
419
+ if (!cellsRef.current[resourceIndex]) cellsRef.current[resourceIndex] = [];
420
+ cellsRef.current[resourceIndex][dayIndex] = node;
421
+ }
422
+ },
423
+ ...getStyles("resourcesMonthViewCell"),
424
+ "aria-label": `${resource.label} ${d.format("MMMM D, YYYY")}`,
425
+ "data-drag-slot-index": withDragSlotSelect && mode !== "static" ? dayIndex : void 0,
426
+ "data-drag-slot-group": withDragSlotSelect && mode !== "static" ? slotGroup : void 0,
427
+ mod: {
428
+ weekend,
429
+ "drop-target": isDropTarget,
430
+ "drag-selected": isDragSelected,
431
+ static: mode === "static"
432
+ },
433
+ tabIndex: mode === "static" ? -1 : isFirstCell ? 0 : -1,
434
+ onClick: mode === "static" ? void 0 : (e) => onDayClick?.({
435
+ date: day,
436
+ nativeEvent: e,
437
+ resourceId: resource.id
438
+ }),
439
+ onKeyDown: mode === "static" ? void 0 : (e) => handleCellKeyDown(e, resourceIndex, dayIndex),
440
+ onPointerDown: withDragSlotSelect && mode !== "static" ? (e) => slotDragSelect.handleSlotPointerDown(e, dayIndex, slotGroup) : void 0,
441
+ onDragOver: withDragHandlers ? (e) => e.preventDefault() : void 0
442
+ }, day);
443
+ });
444
+ (eventLayoutByResource[resource.id]?.segments ?? []).forEach((segment) => {
445
+ const isDraggable = dragDrop.isDraggableEvent(segment.event);
446
+ const segmentLeftPercent = segment.startDayIndex / totalDays * 100;
447
+ const segmentWidthPercent = (segment.endDayIndex - segment.startDayIndex + 1) / totalDays * 100;
448
+ const compressed = segment.hiddenInSpan && mode !== "static";
449
+ const topValue = compressed ? `calc((100% - 18px) * ${segment.row} / ${maxEventsPerTimeSlot} + 1px)` : `calc(${segment.row * rowHeightPercent}% + 1px)`;
450
+ const heightValue = compressed ? `calc((100% - 18px) / ${maxEventsPerTimeSlot} - 2px)` : `calc(${rowHeightPercent}% - 2px)`;
451
+ eventNodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ScheduleEvent.ScheduleEvent, {
452
+ event: segment.event,
453
+ nowrap: true,
454
+ autoSize: true,
455
+ size: "sm",
456
+ hanging: segment.hanging,
457
+ draggable: isDraggable,
458
+ renderEventBody,
459
+ renderEvent,
460
+ radius,
461
+ mode,
462
+ mod: {
463
+ "clip-start": segment.clipStart,
464
+ "clip-end": segment.clipEnd
465
+ },
466
+ onClick: onEventClick ? (e) => onEventClick(segment.event, e) : void 0,
467
+ style: {
468
+ position: "absolute",
469
+ top: topValue,
470
+ left: `calc(${segmentLeftPercent}% + 1px)`,
471
+ width: `calc(${segmentWidthPercent}% - 2px)`,
472
+ height: heightValue,
473
+ zIndex: 3
474
+ }
475
+ }, `${segment.event.id}-segment-${segment.startDayIndex}`));
476
+ });
477
+ const groupInfo = hasGroups ? resourceGroupMap[resourceIndex] : void 0;
478
+ const isGroupStart = groupInfo?.position === "first" || groupInfo?.position === "only";
479
+ const groupCell = groupInfo !== void 0 ? groupInfo !== null ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Box, {
480
+ ...getStyles("resourcesMonthViewGroupColumn"),
481
+ mod: { "group-position": groupInfo.position },
482
+ children: isGroupStart && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
483
+ style: groupInfo.count > 1 ? { transform: `translateY(calc((${groupInfo.count - 1} * (var(--resources-month-view-row-height) + 1px)) / 2))` } : void 0,
484
+ children: renderGroupLabel ? renderGroupLabel(groupInfo.group) : groupInfo.group.label
485
+ })
486
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Box, { ...getStyles("resourcesMonthViewGroupColumnEmpty") }) : null;
487
+ return /* @__PURE__ */ (0, react.createElement)("div", {
488
+ ...getStyles("resourcesMonthViewRow"),
489
+ key: resource.id
490
+ }, groupCell, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
491
+ ...getStyles("resourcesMonthViewResourceLabel"),
492
+ "data-has-groups": hasGroups || void 0,
493
+ children: renderResourceLabel ? renderResourceLabel(resource) : resource.label
494
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
495
+ ...getStyles("resourcesMonthViewRowSlots"),
496
+ onDragOver: withDragHandlers ? (e) => {
497
+ const dayIndex = getDayIndexFromDragPoint(e, resourceIndex);
498
+ if (dayIndex !== null && monthDays[dayIndex]) dragDrop.handleDragOver(e, {
499
+ day: monthDays[dayIndex],
500
+ resourceId: resource.id
501
+ });
502
+ } : void 0,
503
+ onDragLeave: withDragHandlers ? dragDrop.handleDragLeave : void 0,
504
+ onDrop: withDragHandlers ? (e) => {
505
+ const dayIndex = getDayIndexFromDragPoint(e, resourceIndex);
506
+ if (dayIndex !== null && monthDays[dayIndex]) dragDrop.handleDrop(e, {
507
+ day: monthDays[dayIndex],
508
+ resourceId: resource.id
509
+ });
510
+ } : void 0,
511
+ children: [
512
+ eventNodes,
513
+ moreNodes,
514
+ cells
515
+ ]
516
+ }));
517
+ });
518
+ const content = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Box, {
519
+ mod: [{
520
+ static: mode === "static",
521
+ "slot-dragging": slotDragSelect.isDragging,
522
+ "event-interaction": dragDrop.dragContextValue.isDragging
523
+ }, mod],
524
+ ...getStyles("resourcesMonthView"),
525
+ ...others,
526
+ children: [withHeader && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ScheduleHeaderBase.ScheduleHeaderBase, {
527
+ view: "month",
528
+ navigationHandlers: {
529
+ previous: () => require_to_date_string.toDateString((0, dayjs.default)(date).subtract(1, "month").startOf("month")),
530
+ next: () => require_to_date_string.toDateString((0, dayjs.default)(date).add(1, "month").startOf("month")),
531
+ today: () => {
532
+ requestAnimationFrame(() => {
533
+ scrollToDay((0, dayjs.default)().format("YYYY-MM-DD"));
534
+ });
535
+ return require_to_date_string.toDateString((0, dayjs.default)());
536
+ }
537
+ },
538
+ control: { monthYearSelect: {
539
+ locale,
540
+ yearValue: (0, dayjs.default)(date).get("year"),
541
+ monthValue: (0, dayjs.default)(date).get("month"),
542
+ onYearChange: (year) => onDateChange?.(require_to_date_string.toDateString((0, dayjs.default)(date).set("year", year).startOf("month"))),
543
+ onMonthChange: (month) => onDateChange?.(require_to_date_string.toDateString((0, dayjs.default)(date).set("month", month).startOf("month"))),
544
+ ...monthYearSelectProps
545
+ } },
546
+ labels,
547
+ onDateChange,
548
+ onViewChange,
549
+ previousControlProps,
550
+ nextControlProps,
551
+ todayControlProps,
552
+ viewSelectProps: {
553
+ views: [
554
+ "day",
555
+ "week",
556
+ "month"
557
+ ],
558
+ ...viewSelectProps
559
+ },
560
+ stylesApiProps
561
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Box, {
562
+ ...getStyles("resourcesMonthViewRoot"),
563
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.ScrollArea, {
564
+ scrollbars: "x",
565
+ scrollbarSize: 4,
566
+ ...scrollAreaProps,
567
+ ...getStyles("resourcesMonthViewScrollArea", {
568
+ className: scrollAreaProps?.className,
569
+ style: scrollAreaProps?.style
570
+ }),
571
+ viewportRef: mergedViewportRef,
572
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
573
+ ...getStyles("resourcesMonthViewInner"),
574
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
575
+ ...getStyles("resourcesMonthViewDayLabelsRow"),
576
+ children: [/* @__PURE__ */ (0, react.createElement)("div", {
577
+ ...getStyles("resourcesMonthViewCorner"),
578
+ key: "corner",
579
+ ref: resourceLabelRef,
580
+ style: hasGroups ? {
581
+ flexBasis: "calc(var(--resources-month-view-resource-label-width) + var(--resources-month-view-group-label-width))",
582
+ minWidth: "calc(var(--resources-month-view-resource-label-width) + var(--resources-month-view-group-label-width))"
583
+ } : void 0
584
+ }, require_labels.getLabel("resources", labels)), dayLabels]
585
+ }), rows]
586
+ })
587
+ })
588
+ })]
589
+ });
590
+ if (withEventsDragAndDrop) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_DragContext.DragContext.Provider, {
591
+ value: dragDrop.dragContextValue,
592
+ children: content
593
+ });
594
+ return content;
595
+ });
596
+ ResourcesMonthView.displayName = "@mantine/schedule/ResourcesMonthView";
597
+ ResourcesMonthView.classes = require_ResourcesMonthView_module.default;
598
+ ResourcesMonthView.varsResolver = varsResolver;
599
+ //#endregion
600
+ exports.ResourcesMonthView = ResourcesMonthView;
601
+
602
+ //# sourceMappingURL=ResourcesMonthView.cjs.map