@mantine/schedule 9.5.2 → 9.6.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 (240) hide show
  1. package/cjs/_virtual/_rolldown/runtime.cjs +1 -1
  2. package/cjs/components/AgendaView/AgendaView.cjs +7 -6
  3. package/cjs/components/AgendaView/AgendaView.cjs.map +1 -1
  4. package/cjs/components/AgendaView/get-agenda-view-events.cjs.map +1 -1
  5. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs +3 -2
  6. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs.map +1 -1
  7. package/cjs/components/DayView/DayView.cjs +153 -80
  8. package/cjs/components/DayView/DayView.cjs.map +1 -1
  9. package/cjs/components/DayView/DayView.module.cjs +1 -0
  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 +12 -7
  12. package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs.map +1 -1
  13. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs +3 -2
  14. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs.map +1 -1
  15. package/cjs/components/DragContext/DragContext.cjs.map +1 -1
  16. package/cjs/components/MobileMonthView/MobileMonthView.cjs +7 -6
  17. package/cjs/components/MobileMonthView/MobileMonthView.cjs.map +1 -1
  18. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs.map +1 -1
  19. package/cjs/components/MonthView/MonthView.cjs +24 -34
  20. package/cjs/components/MonthView/MonthView.cjs.map +1 -1
  21. package/cjs/components/MonthView/MonthView.module.cjs.map +1 -1
  22. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs.map +1 -1
  23. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs +4 -2
  24. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs.map +1 -1
  25. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs.map +1 -1
  26. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs +3 -2
  27. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs.map +1 -1
  28. package/cjs/components/MonthView/get-renderable-month-event-segments.cjs +1 -1
  29. package/cjs/components/MonthView/get-renderable-month-event-segments.cjs.map +1 -1
  30. package/cjs/components/MoreEvents/MoreEvents.cjs.map +1 -1
  31. package/cjs/components/ResourcesDayView/ResourcesDayView.cjs +137 -53
  32. package/cjs/components/ResourcesDayView/ResourcesDayView.cjs.map +1 -1
  33. package/cjs/components/ResourcesDayView/ResourcesDayView.module.cjs +2 -1
  34. package/cjs/components/ResourcesDayView/ResourcesDayView.module.cjs.map +1 -1
  35. package/cjs/components/ResourcesDayView/ResourcesDayViewColumn.cjs.map +1 -1
  36. package/cjs/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.cjs.map +1 -1
  37. package/cjs/components/ResourcesMonthView/ResourcesMonthView.cjs.map +1 -1
  38. package/cjs/components/ResourcesSchedule/ResourcesSchedule.cjs +3 -1
  39. package/cjs/components/ResourcesSchedule/ResourcesSchedule.cjs.map +1 -1
  40. package/cjs/components/ResourcesWeekView/ResourcesWeekView.cjs +151 -60
  41. package/cjs/components/ResourcesWeekView/ResourcesWeekView.cjs.map +1 -1
  42. package/cjs/components/ResourcesWeekView/ResourcesWeekView.module.cjs +2 -1
  43. package/cjs/components/ResourcesWeekView/ResourcesWeekView.module.cjs.map +1 -1
  44. package/cjs/components/ResourcesWeekView/ResourcesWeekViewRow.cjs.map +1 -1
  45. package/cjs/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.cjs +6 -3
  46. package/cjs/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.cjs.map +1 -1
  47. package/cjs/components/Schedule/Schedule.cjs +4 -1
  48. package/cjs/components/Schedule/Schedule.cjs.map +1 -1
  49. package/cjs/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.cjs +53 -0
  50. package/cjs/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.cjs.map +1 -0
  51. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs.map +1 -1
  52. package/cjs/components/ScheduleEvent/ScheduleEvent.module.cjs.map +1 -1
  53. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs +15 -14
  54. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs.map +1 -1
  55. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs.map +1 -1
  56. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs.map +1 -1
  57. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs.map +1 -1
  58. package/cjs/components/ScheduleHeader/ScheduleHeaderContext.cjs.map +1 -1
  59. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs.map +1 -1
  60. package/cjs/components/WeekView/WeekView.cjs +168 -84
  61. package/cjs/components/WeekView/WeekView.cjs.map +1 -1
  62. package/cjs/components/WeekView/WeekView.module.cjs +1 -0
  63. package/cjs/components/WeekView/WeekView.module.cjs.map +1 -1
  64. package/cjs/components/WeekView/WeekViewDay.cjs.map +1 -1
  65. package/cjs/components/WeekView/get-week-label/get-week-label.cjs.map +1 -1
  66. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs.map +1 -1
  67. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs.map +1 -1
  68. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs.map +1 -1
  69. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs.map +1 -1
  70. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs.map +1 -1
  71. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs +4 -2
  72. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs.map +1 -1
  73. package/cjs/components/YearView/YearView.cjs +7 -6
  74. package/cjs/components/YearView/YearView.cjs.map +1 -1
  75. package/cjs/components/YearView/YearViewMonth.cjs.map +1 -1
  76. package/cjs/components/YearView/get-visible-week-days.cjs.map +1 -1
  77. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs.map +1 -1
  78. package/cjs/hooks/use-auto-scroll-on-drag.cjs.map +1 -1
  79. package/cjs/hooks/use-day-grid-event-resize.cjs.map +1 -1
  80. package/cjs/hooks/use-drag-drop-handlers.cjs +13 -2
  81. package/cjs/hooks/use-drag-drop-handlers.cjs.map +1 -1
  82. package/cjs/hooks/use-drag-state.cjs.map +1 -1
  83. package/cjs/hooks/use-event-resize.cjs +30 -15
  84. package/cjs/hooks/use-event-resize.cjs.map +1 -1
  85. package/cjs/hooks/use-horizontal-event-resize.cjs +30 -15
  86. package/cjs/hooks/use-horizontal-event-resize.cjs.map +1 -1
  87. package/cjs/hooks/use-slot-drag-select.cjs.map +1 -1
  88. package/cjs/index.cjs +6 -0
  89. package/cjs/utils/apply-cascade-layout/apply-cascade-layout.cjs +21 -0
  90. package/cjs/utils/apply-cascade-layout/apply-cascade-layout.cjs.map +1 -0
  91. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs +25 -4
  92. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs.map +1 -1
  93. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs.map +1 -1
  94. package/cjs/utils/calculate-month-resize-dates/calculate-month-resize-dates.cjs.map +1 -1
  95. package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs.map +1 -1
  96. package/cjs/utils/format-date/format-date.cjs.map +1 -1
  97. package/cjs/utils/get-current-time-position/get-current-time-position.cjs.map +1 -1
  98. package/cjs/utils/get-day-position/get-day-position.cjs.map +1 -1
  99. package/cjs/utils/get-end-of-week/get-end-of-week.cjs.map +1 -1
  100. package/cjs/utils/get-month-days/get-month-days.cjs +4 -2
  101. package/cjs/utils/get-month-days/get-month-days.cjs.map +1 -1
  102. package/cjs/utils/get-month-range/get-month-range.cjs.map +1 -1
  103. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs.map +1 -1
  104. package/cjs/utils/get-months-list/get-months-list.cjs.map +1 -1
  105. package/cjs/{components/ResourcesDayView → utils}/get-overlap-clusters/get-overlap-clusters.cjs +2 -2
  106. package/cjs/utils/get-overlap-clusters/get-overlap-clusters.cjs.map +1 -0
  107. package/cjs/utils/get-start-of-week/get-start-of-week.cjs.map +1 -1
  108. package/cjs/utils/get-week-days/get-week-days.cjs.map +1 -1
  109. package/cjs/utils/get-week-number/get-week-number.cjs +4 -1
  110. package/cjs/utils/get-week-number/get-week-number.cjs.map +1 -1
  111. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
  112. package/cjs/utils/is-after-min-date/is-after-min-date.cjs.map +1 -1
  113. package/cjs/utils/is-all-day-event/is-all-day-event.cjs.map +1 -1
  114. package/cjs/utils/is-before-max-date/is-before-max-date.cjs.map +1 -1
  115. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs +2 -1
  116. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs.map +1 -1
  117. package/cjs/utils/is-events-overlap/is-events-overlap.cjs.map +1 -1
  118. package/cjs/utils/is-in-time-range/is-in-time-range.cjs.map +1 -1
  119. package/cjs/utils/is-multiday-event/is-multiday-event.cjs.map +1 -1
  120. package/cjs/utils/is-same-month/is-same-month.cjs.map +1 -1
  121. package/cjs/utils/is-within-week/is-within-week.cjs.map +1 -1
  122. package/cjs/utils/next-week/next-week.cjs.map +1 -1
  123. package/cjs/utils/previous-week/previous-week.cjs.map +1 -1
  124. package/cjs/utils/sort-events/sort-events.cjs.map +1 -1
  125. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
  126. package/cjs/utils/validate-event/validate-event.cjs.map +1 -1
  127. package/esm/components/AgendaView/AgendaView.mjs +7 -6
  128. package/esm/components/AgendaView/AgendaView.mjs.map +1 -1
  129. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs +4 -3
  130. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -1
  131. package/esm/components/DayView/DayView.mjs +154 -81
  132. package/esm/components/DayView/DayView.mjs.map +1 -1
  133. package/esm/components/DayView/DayView.module.mjs +1 -0
  134. package/esm/components/DayView/DayView.module.mjs.map +1 -1
  135. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs +12 -7
  136. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs.map +1 -1
  137. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs +3 -2
  138. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs.map +1 -1
  139. package/esm/components/MobileMonthView/MobileMonthView.mjs +7 -6
  140. package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -1
  141. package/esm/components/MonthView/MonthView.mjs +25 -35
  142. package/esm/components/MonthView/MonthView.mjs.map +1 -1
  143. package/esm/components/MonthView/MonthView.module.mjs.map +1 -1
  144. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs +4 -2
  145. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs.map +1 -1
  146. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs +3 -2
  147. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs.map +1 -1
  148. package/esm/components/MonthView/get-renderable-month-event-segments.mjs +1 -1
  149. package/esm/components/MonthView/get-renderable-month-event-segments.mjs.map +1 -1
  150. package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -1
  151. package/esm/components/ResourcesDayView/ResourcesDayView.mjs +139 -55
  152. package/esm/components/ResourcesDayView/ResourcesDayView.mjs.map +1 -1
  153. package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs +2 -1
  154. package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs.map +1 -1
  155. package/esm/components/ResourcesDayView/ResourcesDayViewColumn.mjs.map +1 -1
  156. package/esm/components/ResourcesMonthView/ResourcesMonthView.mjs.map +1 -1
  157. package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs +3 -1
  158. package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs.map +1 -1
  159. package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs +153 -62
  160. package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs.map +1 -1
  161. package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs +2 -1
  162. package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs.map +1 -1
  163. package/esm/components/ResourcesWeekView/ResourcesWeekViewRow.mjs.map +1 -1
  164. package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs +6 -3
  165. package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs.map +1 -1
  166. package/esm/components/Schedule/Schedule.mjs +4 -1
  167. package/esm/components/Schedule/Schedule.mjs.map +1 -1
  168. package/esm/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.mjs +53 -0
  169. package/esm/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.mjs.map +1 -0
  170. package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -1
  171. package/esm/components/ScheduleEvent/ScheduleEvent.module.mjs.map +1 -1
  172. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs +15 -14
  173. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs.map +1 -1
  174. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs.map +1 -1
  175. package/esm/components/ScheduleHeader/ScheduleHeader.mjs.map +1 -1
  176. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs.map +1 -1
  177. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs.map +1 -1
  178. package/esm/components/WeekView/WeekView.mjs +169 -85
  179. package/esm/components/WeekView/WeekView.mjs.map +1 -1
  180. package/esm/components/WeekView/WeekView.module.mjs +1 -0
  181. package/esm/components/WeekView/WeekView.module.mjs.map +1 -1
  182. package/esm/components/WeekView/WeekViewDay.mjs.map +1 -1
  183. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs +4 -2
  184. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs.map +1 -1
  185. package/esm/components/YearView/YearView.mjs +7 -6
  186. package/esm/components/YearView/YearView.mjs.map +1 -1
  187. package/esm/components/YearView/YearViewMonth.mjs.map +1 -1
  188. package/esm/hooks/use-drag-drop-handlers.mjs +13 -2
  189. package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -1
  190. package/esm/hooks/use-event-resize.mjs +30 -15
  191. package/esm/hooks/use-event-resize.mjs.map +1 -1
  192. package/esm/hooks/use-horizontal-event-resize.mjs +30 -15
  193. package/esm/hooks/use-horizontal-event-resize.mjs.map +1 -1
  194. package/esm/index.mjs +4 -1
  195. package/esm/utils/apply-cascade-layout/apply-cascade-layout.mjs +21 -0
  196. package/esm/utils/apply-cascade-layout/apply-cascade-layout.mjs.map +1 -0
  197. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs +25 -4
  198. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs.map +1 -1
  199. package/esm/utils/get-month-days/get-month-days.mjs +4 -2
  200. package/esm/utils/get-month-days/get-month-days.mjs.map +1 -1
  201. package/esm/{components/ResourcesDayView → utils}/get-overlap-clusters/get-overlap-clusters.mjs +2 -2
  202. package/esm/utils/get-overlap-clusters/get-overlap-clusters.mjs.map +1 -0
  203. package/esm/utils/get-week-number/get-week-number.mjs +4 -1
  204. package/esm/utils/get-week-number/get-week-number.mjs.map +1 -1
  205. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs +2 -1
  206. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs.map +1 -1
  207. package/lib/components/DayView/DayView.d.ts +12 -2
  208. package/lib/components/DayView/get-day-view-events/get-day-positioned-events.d.ts +4 -2
  209. package/lib/components/DayView/get-day-view-events/get-day-view-events.d.ts +3 -2
  210. package/lib/components/MonthView/MonthView.d.ts +2 -0
  211. package/lib/components/ResourcesDayView/ResourcesDayView.d.ts +7 -1
  212. package/lib/components/ResourcesDayView/ResourcesDayViewColumn.d.ts +1 -1
  213. package/lib/components/ResourcesSchedule/ResourcesSchedule.d.ts +3 -1
  214. package/lib/components/ResourcesWeekView/ResourcesWeekView.d.ts +7 -1
  215. package/lib/components/ResourcesWeekView/ResourcesWeekViewRow.d.ts +1 -1
  216. package/lib/components/Schedule/Schedule.d.ts +3 -1
  217. package/lib/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.d.ts +19 -0
  218. package/lib/components/ScheduleBackgroundEvent/index.d.ts +2 -0
  219. package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.d.ts +3 -3
  220. package/lib/components/ScheduleHeader/ScheduleHeaderBase.d.ts +1 -1
  221. package/lib/components/WeekView/WeekView.d.ts +12 -2
  222. package/lib/components/WeekView/WeekViewDay.d.ts +1 -1
  223. package/lib/components/WeekView/get-week-view-events/get-week-positioned-events.d.ts +4 -2
  224. package/lib/components/YearView/YearViewMonth.d.ts +1 -1
  225. package/lib/hooks/use-drag-drop-handlers.d.ts +10 -1
  226. package/lib/hooks/use-event-resize.d.ts +2 -1
  227. package/lib/hooks/use-horizontal-event-resize.d.ts +2 -1
  228. package/lib/index.d.mts +1 -0
  229. package/lib/index.d.ts +1 -0
  230. package/lib/types.d.ts +3 -1
  231. package/lib/utils/apply-cascade-layout/apply-cascade-layout.d.ts +6 -0
  232. package/lib/utils/calculate-drop-time/calculate-drop-time.d.ts +11 -1
  233. package/lib/utils/get-overlap-clusters/get-overlap-clusters.d.ts +2 -0
  234. package/lib/utils/index.d.ts +3 -0
  235. package/package.json +8 -5
  236. package/styles.css +221 -0
  237. package/styles.layer.css +221 -0
  238. package/cjs/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.cjs.map +0 -1
  239. package/esm/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.mjs.map +0 -1
  240. package/lib/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.d.ts +0 -2
@@ -10,6 +10,7 @@ const require_previous_week = require("../../utils/previous-week/previous-week.c
10
10
  const require_get_current_time_position = require("../../utils/get-current-time-position/get-current-time-position.cjs");
11
11
  const require_is_in_time_range = require("../../utils/is-in-time-range/is-in-time-range.cjs");
12
12
  const require_is_all_day_event = require("../../utils/is-all-day-event/is-all-day-event.cjs");
13
+ const require_get_day_position = require("../../utils/get-day-position/get-day-position.cjs");
13
14
  const require_get_time_axis_event_style = require("../../utils/get-time-axis-event-style/get-time-axis-event-style.cjs");
14
15
  const require_calculate_drop_time = require("../../utils/calculate-drop-time/calculate-drop-time.cjs");
15
16
  const require_get_business_hours_mod = require("../../utils/get-business-hours-mod/get-business-hours-mod.cjs");
@@ -17,15 +18,16 @@ const require_get_ordered_resources = require("../../utils/get-ordered-resources
17
18
  const require_handle_resources_grid_key_down = require("../../utils/handle-resources-grid-key-down/handle-resources-grid-key-down.cjs");
18
19
  const require_get_group_to_resource_id_map = require("../../utils/get-group-to-resource-id-map/get-group-to-resource-id-map.cjs");
19
20
  const require_get_index_from_drag_point = require("../../utils/get-index-from-drag-point/get-index-from-drag-point.cjs");
21
+ const require_get_overlap_clusters = require("../../utils/get-overlap-clusters/get-overlap-clusters.cjs");
20
22
  const require_use_drag_drop_handlers = require("../../hooks/use-drag-drop-handlers.cjs");
21
23
  const require_use_slot_drag_select = require("../../hooks/use-slot-drag-select.cjs");
22
24
  const require_DragContext = require("../DragContext/DragContext.cjs");
23
25
  const require_ScheduleEvent = require("../ScheduleEvent/ScheduleEvent.cjs");
24
26
  const require_MoreEvents = require("../MoreEvents/MoreEvents.cjs");
27
+ const require_ScheduleBackgroundEvent = require("../ScheduleBackgroundEvent/ScheduleBackgroundEvent.cjs");
25
28
  const require_ScheduleHeaderBase = require("../ScheduleHeader/ScheduleHeaderBase.cjs");
26
29
  const require_get_week_label = require("../WeekView/get-week-label/get-week-label.cjs");
27
30
  const require_use_horizontal_event_resize = require("../../hooks/use-horizontal-event-resize.cjs");
28
- const require_get_overlap_clusters = require("../ResourcesDayView/get-overlap-clusters/get-overlap-clusters.cjs");
29
31
  const require_get_resources_week_view_events = require("./get-resources-week-view-events/get-resources-week-view-events.cjs");
30
32
  const require_ResourcesWeekViewRow = require("./ResourcesWeekViewRow.cjs");
31
33
  const require_ResourcesWeekView_module = require("./ResourcesWeekView.module.cjs");
@@ -56,7 +58,8 @@ const defaultProps = {
56
58
  withCurrentTimeBubble: true,
57
59
  highlightToday: true,
58
60
  mode: "default",
59
- maxEventsPerTimeSlot: 2
61
+ maxEventsPerTimeSlot: 2,
62
+ withInteractiveBackgroundEvents: false
60
63
  };
61
64
  const varsResolver = (0, _mantine_core.createVarsResolver)((_theme, { radius, slotWidth, rowHeight, groupLabelWidth }) => ({ resourcesWeekView: {
62
65
  "--resources-week-view-radius": radius ? (0, _mantine_core.getRadius)(radius) : void 0,
@@ -66,7 +69,7 @@ const varsResolver = (0, _mantine_core.createVarsResolver)((_theme, { radius, sl
66
69
  } }));
67
70
  const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
68
71
  const props = (0, _mantine_core.useProps)("ResourcesWeekView", defaultProps, _props);
69
- const { classNames, className, style, styles, unstyled, attributes, vars, startTime, endTime, date, onDateChange, resources, intervalMinutes, minEventSize, slotLabelFormat, radius, startScrollDateTime, scrollAreaProps, locale, withCurrentTimeIndicator: _withCurrentTimeIndicator, withCurrentTimeBubble, getCurrentTime, __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, withEventResize, onEventResize, canResizeEvent, onTimeSlotClick, onEventClick, withDragSlotSelect, onSlotDragEnd, mode, onExternalEventDrop, recurrenceExpansionLimit, maxEventsPerTimeSlot: _maxEventsPerTimeSlot, moreEventsProps, firstDayOfWeek, weekendDays, withWeekendDays, weekdayFormat, highlightToday, ...others } = props;
72
+ const { classNames, className, style, styles, unstyled, attributes, vars, startTime, endTime, date, onDateChange, resources, intervalMinutes, minEventSize, slotLabelFormat, radius, startScrollDateTime, scrollAreaProps, locale, withCurrentTimeIndicator: _withCurrentTimeIndicator, withCurrentTimeBubble, getCurrentTime, __staticSelector, withHeader, onViewChange, previousControlProps, nextControlProps, todayControlProps, viewSelectProps, weekLabelFormat, renderWeekLabel, events, slotWidth, rowHeight, labels, highlightBusinessHours, businessHours, renderEventBody, renderEvent, renderResourceLabel, groups, renderGroupLabel, groupLabelWidth, withEventsDragAndDrop, onEventDrop, canDragEvent, eventDragInterval, onEventDragStart, onEventDragEnd, withEventResize, onEventResize, canResizeEvent, eventResizeInterval, onTimeSlotClick, onEventClick, withInteractiveBackgroundEvents, withDragSlotSelect, onSlotDragEnd, mode, onExternalEventDrop, recurrenceExpansionLimit, maxEventsPerTimeSlot: _maxEventsPerTimeSlot, moreEventsProps, firstDayOfWeek, weekendDays, withWeekendDays, weekdayFormat, highlightToday, ...others } = props;
70
73
  const maxEventsPerTimeSlot = _maxEventsPerTimeSlot !== void 0 ? Math.max(1, _maxEventsPerTimeSlot) : void 0;
71
74
  const getStyles = (0, _mantine_core.useStyles)({
72
75
  name: __staticSelector,
@@ -95,6 +98,7 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
95
98
  radius
96
99
  };
97
100
  const theme = (0, _mantine_core.useMantineTheme)();
101
+ const { dir } = (0, _mantine_core.useDirection)();
98
102
  const [scrolled, setScrolled] = (0, react.useState)(false);
99
103
  const [scrolledX, setScrolledX] = (0, react.useState)(false);
100
104
  const ctx = (0, _mantine_dates.useDatesContext)();
@@ -122,6 +126,7 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
122
126
  const now = resolveNow();
123
127
  const isToday = weekdays.some((day) => (0, dayjs.default)(day).isSame(now, "day"));
124
128
  const withCurrentTimeIndicator = _withCurrentTimeIndicator ?? isToday;
129
+ const mounted = (0, _mantine_hooks.useMounted)();
125
130
  const [, setTimeIndicatorTick] = (0, react.useState)(0);
126
131
  (0, _mantine_hooks.useInterval)(() => setTimeIndicatorTick((tick) => tick + 1), 6e4, { autoInvoke: true });
127
132
  const timeIndicatorOffset = require_get_current_time_position.getCurrentTimePosition({
@@ -131,7 +136,7 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
131
136
  now
132
137
  });
133
138
  const todayDayIndex = weekdays.findIndex((day) => (0, dayjs.default)(day).isSame(now, "day"));
134
- const showTimeIndicator = withCurrentTimeIndicator && todayDayIndex >= 0 && require_is_in_time_range.isInTimeRange({
139
+ const showTimeIndicator = mounted && withCurrentTimeIndicator && todayDayIndex >= 0 && require_is_in_time_range.isInTimeRange({
135
140
  date: now.toDate(),
136
141
  startTime,
137
142
  endTime
@@ -141,49 +146,101 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
141
146
  date: now,
142
147
  format: slotLabelFormat
143
148
  }) : "";
149
+ const dragOffsetRef = (0, react.useRef)({
150
+ offset: 0,
151
+ size: 0
152
+ });
144
153
  const handleExternalDrop = (0, react.useCallback)((e, target) => {
145
154
  if (!onExternalEventDrop) return;
146
155
  const dayIndex = Math.floor(target.slotIndex / totalSlotsPerDay);
147
156
  const slotInDay = target.slotIndex % totalSlotsPerDay;
148
157
  const slotDay = weekdays[dayIndex];
149
- if (slotDay) onExternalEventDrop({
150
- dataTransfer: e.dataTransfer,
151
- dropDateTime: `${(0, dayjs.default)(slotDay).format("YYYY-MM-DD")} ${slots[slotInDay].startTime}`,
152
- resourceId: target.resourceId
153
- });
158
+ if (slotDay) {
159
+ const slotDate = (0, dayjs.default)(slotDay).format("YYYY-MM-DD");
160
+ const slotTime = slots[slotInDay].startTime;
161
+ let dropDateTime = `${slotDate} ${slotTime}`;
162
+ if (eventDragInterval != null) {
163
+ const { start } = require_calculate_drop_time.calculateDropTime({
164
+ draggedEvent: {
165
+ start: dropDateTime,
166
+ end: dropDateTime
167
+ },
168
+ targetDate: slotDate,
169
+ targetSlotTime: slotTime,
170
+ intervalMinutes,
171
+ dragIntervalMinutes: eventDragInterval,
172
+ slotOffset: dragOffsetRef.current.offset,
173
+ slotSize: dragOffsetRef.current.size,
174
+ startTime,
175
+ endTime
176
+ });
177
+ dropDateTime = (0, dayjs.default)(start).format("YYYY-MM-DD HH:mm:ss");
178
+ }
179
+ onExternalEventDrop({
180
+ dataTransfer: e.dataTransfer,
181
+ dropDateTime,
182
+ resourceId: target.resourceId
183
+ });
184
+ }
154
185
  }, [
155
186
  onExternalEventDrop,
156
187
  slots,
157
188
  weekdays,
158
- totalSlotsPerDay
189
+ totalSlotsPerDay,
190
+ eventDragInterval,
191
+ intervalMinutes,
192
+ startTime,
193
+ endTime
159
194
  ]);
160
195
  const lastDropResourceId = (0, react.useRef)(void 0);
196
+ const getDropTimeForSlot = (target, draggedEvent) => {
197
+ const dayIndex = Math.floor(target.slotIndex / totalSlotsPerDay);
198
+ const slotInDay = target.slotIndex % totalSlotsPerDay;
199
+ const slotTime = slots[slotInDay].startTime;
200
+ const targetDay = weekdays[dayIndex] || weekdays[0];
201
+ return require_calculate_drop_time.calculateDropTime({
202
+ draggedEvent,
203
+ targetDate: targetDay,
204
+ targetSlotTime: slotTime,
205
+ intervalMinutes,
206
+ dragIntervalMinutes: eventDragInterval,
207
+ slotOffset: eventDragInterval == null ? void 0 : dragOffsetRef.current.offset,
208
+ slotSize: eventDragInterval == null ? void 0 : dragOffsetRef.current.size,
209
+ startTime,
210
+ endTime
211
+ });
212
+ };
213
+ const handleInternalEventDrop = (0, react.useCallback)((data) => {
214
+ onEventDrop?.({
215
+ ...data,
216
+ resourceId: lastDropResourceId.current
217
+ });
218
+ }, [onEventDrop]);
161
219
  const dragDrop = require_use_drag_drop_handlers.useDragDropHandlers({
162
220
  enabled: withEventsDragAndDrop,
163
221
  mode,
164
- onEventDrop: (0, react.useCallback)((data) => {
165
- onEventDrop?.({
166
- ...data,
167
- resourceId: lastDropResourceId.current
168
- });
169
- }, [onEventDrop]),
222
+ onEventDrop: handleInternalEventDrop,
170
223
  canDragEvent,
171
224
  onEventDragStart,
172
225
  onEventDragEnd,
173
226
  calculateDropTarget: (target, draggedEvent) => {
174
227
  lastDropResourceId.current = target.resourceId;
175
- const dayIndex = Math.floor(target.slotIndex / totalSlotsPerDay);
176
- const slotInDay = target.slotIndex % totalSlotsPerDay;
177
- const slotTime = slots[slotInDay].startTime;
178
- return require_calculate_drop_time.calculateDropTime({
179
- draggedEvent,
180
- targetDate: weekdays[dayIndex] || weekdays[0],
181
- targetSlotTime: slotTime,
182
- intervalMinutes
183
- });
228
+ return getDropTimeForSlot(target, draggedEvent);
184
229
  },
185
230
  onExternalDrop: onExternalEventDrop ? handleExternalDrop : void 0
186
231
  });
232
+ const updateDragPreview = (target) => {
233
+ const draggedEvent = dragDrop.dragContextValue.draggedEvent;
234
+ if (eventDragInterval == null || !draggedEvent) return;
235
+ const { start, end } = getDropTimeForSlot(target, draggedEvent);
236
+ const newStart = (0, dayjs.default)(start).format("YYYY-MM-DD HH:mm:ss");
237
+ if (dragDrop.dragPreview?.start !== newStart || dragDrop.dragPreview?.target.resourceId !== target.resourceId) dragDrop.setDragPreview({
238
+ start: newStart,
239
+ end: (0, dayjs.default)(end).format("YYYY-MM-DD HH:mm:ss"),
240
+ target
241
+ });
242
+ };
243
+ const suppressDropHighlight = eventDragInterval != null && dragDrop.dragContextValue.isDragging;
187
244
  const groupToResourceId = (0, react.useMemo)(() => require_get_group_to_resource_id_map.getGroupToResourceIdMap(resources), [resources]);
188
245
  const slotDragSelect = require_use_slot_drag_select.useSlotDragSelect({
189
246
  enabled: withDragSlotSelect && mode !== "static",
@@ -208,6 +265,7 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
208
265
  startTime,
209
266
  endTime,
210
267
  intervalMinutes,
268
+ resizeIntervalMinutes: eventResizeInterval,
211
269
  onEventResize,
212
270
  canResizeEvent
213
271
  });
@@ -261,8 +319,10 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
261
319
  }));
262
320
  });
263
321
  const timeLabels = weekdays.flatMap((day) => slots.map((interval) => {
322
+ const dayStr = (0, dayjs.default)(day).format("YYYY-MM-DD");
323
+ const intervalTime = (0, dayjs.default)(`${dayStr} ${interval.startTime}`);
264
324
  const label = require_format_date.formatDate({
265
- date: (0, dayjs.default)(`${(0, dayjs.default)(day).format("YYYY-MM-DD")} ${interval.startTime}`),
325
+ date: intervalTime,
266
326
  locale: ctx.getLocale(locale),
267
327
  format: slotLabelFormat
268
328
  });
@@ -311,8 +371,20 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
311
371
  });
312
372
  }, []);
313
373
  const getSlotIndexFromDragPoint = (0, react.useCallback)((event, resourceIndex) => {
314
- return require_get_index_from_drag_point.getIndexFromDragPoint(slotsRef.current[resourceIndex] ?? [], event.clientX);
315
- }, []);
374
+ const daySlots = slotsRef.current[resourceIndex] ?? [];
375
+ const index = require_get_index_from_drag_point.getIndexFromDragPoint(daySlots, event.clientX);
376
+ if (index !== null) {
377
+ const rect = daySlots[index]?.getBoundingClientRect();
378
+ if (rect) {
379
+ const rawOffset = dir === "rtl" ? rect.right - event.clientX : event.clientX - rect.left;
380
+ dragOffsetRef.current = {
381
+ offset: Math.max(0, Math.min(rect.width, rawOffset)),
382
+ size: rect.width
383
+ };
384
+ }
385
+ }
386
+ return index;
387
+ }, [dir]);
316
388
  const handleSlotKeyDown = (event, resourceIndex, slotIndex) => {
317
389
  require_handle_resources_grid_key_down.handleResourcesGridKeyDown({
318
390
  controlsRef: slotsRef,
@@ -322,6 +394,7 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
322
394
  });
323
395
  };
324
396
  const dayWidthPercent = 100 / weekdays.length;
397
+ const interactiveBackgroundEvents = withInteractiveBackgroundEvents && mode !== "static";
325
398
  const rows = orderedResources.map((resource, resourceIndex) => {
326
399
  const eventNodes = [];
327
400
  const resourceAllDayBars = weekViewEvents.allDayBars[resource.id] ?? [];
@@ -331,31 +404,19 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
331
404
  if (!dayEvents) return;
332
405
  const dayOffsetPercent = dayIndex / weekdays.length * 100;
333
406
  const bgEvents = [...dayEvents.backgroundTimedEvents[resource.id] || [], ...dayEvents.backgroundAllDayEvents[resource.id] || []];
334
- for (const event of bgEvents) {
335
- const colors = theme.variantColorResolver({
336
- color: event.color || theme.primaryColor,
337
- theme,
338
- variant: "light",
339
- autoContrast: true
340
- });
341
- const bgEventBody = typeof renderEventBody === "function" ? renderEventBody(event) : event.title;
342
- const bgEventProps = {
343
- key: `bg-${event.id}-${day}`,
344
- ...getStyles("resourcesWeekViewBackgroundEvent", { style: {
345
- left: `${dayOffsetPercent + event.position.top / 100 * dayWidthPercent}%`,
346
- width: `${event.position.height / 100 * dayWidthPercent}%`,
347
- top: 0,
348
- height: "100%"
349
- } }),
350
- __vars: {
351
- "--bg-event-bg": colors.background,
352
- "--bg-event-color": colors.color
353
- },
354
- children: bgEventBody
355
- };
356
- if (typeof renderEvent === "function") eventNodes.push(renderEvent(event, bgEventProps));
357
- else eventNodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Box, { ...bgEventProps }));
358
- }
407
+ for (const event of bgEvents) eventNodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ScheduleBackgroundEvent.ScheduleBackgroundEvent, {
408
+ event,
409
+ renderEvent,
410
+ renderEventBody,
411
+ interactive: interactiveBackgroundEvents,
412
+ onEventClick,
413
+ ...getStyles("resourcesWeekViewBackgroundEvent", { style: {
414
+ left: `${dayOffsetPercent + event.position.top / 100 * dayWidthPercent}%`,
415
+ width: `${event.position.height / 100 * dayWidthPercent}%`,
416
+ top: 0,
417
+ height: "100%"
418
+ } })
419
+ }, `bg-${event.id}-${day}`));
359
420
  const allRegularEvents = (dayEvents.regularEvents[resource.id] || []).filter((event) => !require_is_all_day_event.isAllDayEvent({
360
421
  event,
361
422
  date: day
@@ -522,7 +583,7 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
522
583
  })
523
584
  }, `all-day-${bar.event.id}-${bar.startDayIndex}`));
524
585
  });
525
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ResourcesWeekViewRow.ResourcesWeekViewRow, {
586
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ResourcesWeekViewRow.ResourcesWeekViewRow, {
526
587
  resource,
527
588
  resourceIndex,
528
589
  weekdays,
@@ -539,10 +600,16 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
539
600
  onSlotClick: handleTimeSlotClick,
540
601
  onRowSlotsDragOver: (event, resourceId, resIdx) => {
541
602
  const slotIndex = getSlotIndexFromDragPoint(event, resIdx);
542
- if (slotIndex !== null) dragDrop.handleDragOver(event, {
543
- resourceId,
544
- slotIndex
545
- });
603
+ if (slotIndex !== null) {
604
+ dragDrop.handleDragOver(event, {
605
+ resourceId,
606
+ slotIndex
607
+ });
608
+ updateDragPreview({
609
+ resourceId,
610
+ slotIndex
611
+ });
612
+ }
546
613
  },
547
614
  onRowSlotsDragLeave: dragDrop.handleDragLeave,
548
615
  onRowSlotsDrop: (event, resourceId, resIdx) => {
@@ -552,7 +619,7 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
552
619
  slotIndex
553
620
  });
554
621
  },
555
- dropTargetSlotIndex: dragDrop.dropTarget?.resourceId === resource.id ? dragDrop.dropTarget.slotIndex : void 0,
622
+ dropTargetSlotIndex: !suppressDropHighlight && dragDrop.dropTarget?.resourceId === resource.id ? dragDrop.dropTarget.slotIndex : void 0,
556
623
  withDragSlotSelect,
557
624
  onSlotPointerDown: slotDragSelect.handleSlotPointerDown,
558
625
  isSlotDragSelected: slotDragSelect.isSlotSelected,
@@ -564,7 +631,31 @@ const ResourcesWeekView = (0, _mantine_core.factory)((_props) => {
564
631
  scrolledX,
565
632
  groupInfo: hasGroups ? resourceGroupMap[resourceIndex] : void 0,
566
633
  allDayCount: maxAllDayCount,
567
- children: eventNodes
634
+ children: [eventNodes, dragDrop.dragPreview?.target.resourceId === resource.id && dragDrop.dragContextValue.draggedEvent && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Box, { ...getStyles("resourcesWeekViewDragPreview", { style: (() => {
635
+ const previewDayIndex = Math.floor(dragDrop.dragPreview.target.slotIndex / totalSlotsPerDay);
636
+ const { top, height } = require_get_day_position.getDayPosition({
637
+ event: {
638
+ ...dragDrop.dragContextValue.draggedEvent,
639
+ start: dragDrop.dragPreview.start,
640
+ end: dragDrop.dragPreview.end
641
+ },
642
+ startTime,
643
+ endTime,
644
+ intervalMinutes
645
+ });
646
+ const eventLeft = previewDayIndex / weekdays.length * 100 + top / 100 * dayWidthPercent;
647
+ const eventWidth = height / 100 * dayWidthPercent;
648
+ return {
649
+ position: "absolute",
650
+ insetBlockStart: 0,
651
+ insetBlockEnd: 0,
652
+ ...require_get_time_axis_event_style.getTimeAxisEventStyle({
653
+ start: eventLeft,
654
+ span: eventWidth,
655
+ axis: "horizontal"
656
+ })
657
+ };
658
+ })() }) })]
568
659
  }, resource.id);
569
660
  });
570
661
  const headerLabel = require_get_week_label.getWeekLabel({