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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
  2. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs +79 -102
  3. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs.map +1 -1
  4. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.cjs +12 -0
  5. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.cjs.map +1 -0
  6. package/cjs/components/DayView/DayView.cjs +462 -578
  7. package/cjs/components/DayView/DayView.cjs.map +1 -1
  8. package/cjs/components/DayView/DayView.module.cjs +20 -0
  9. package/cjs/components/DayView/DayView.module.cjs.map +1 -0
  10. package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs +89 -106
  11. package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs.map +1 -1
  12. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs +106 -106
  13. package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs.map +1 -1
  14. package/cjs/components/DragContext/DragContext.cjs +7 -8
  15. package/cjs/components/DragContext/DragContext.cjs.map +1 -1
  16. package/cjs/components/MobileMonthView/MobileMonthView.cjs +261 -297
  17. package/cjs/components/MobileMonthView/MobileMonthView.cjs.map +1 -1
  18. package/cjs/components/MobileMonthView/MobileMonthView.module.cjs +27 -0
  19. package/cjs/components/MobileMonthView/MobileMonthView.module.cjs.map +1 -0
  20. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs +35 -53
  21. package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs.map +1 -1
  22. package/cjs/components/MonthView/MonthView.cjs +365 -467
  23. package/cjs/components/MonthView/MonthView.cjs.map +1 -1
  24. package/cjs/components/MonthView/MonthView.module.cjs +18 -0
  25. package/cjs/components/MonthView/MonthView.module.cjs.map +1 -0
  26. package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs +15 -24
  27. package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs.map +1 -1
  28. package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs +23 -35
  29. package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs.map +1 -1
  30. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs +16 -29
  31. package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs.map +1 -1
  32. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs +87 -97
  33. package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs.map +1 -1
  34. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs +36 -45
  35. package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs.map +1 -1
  36. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs +30 -39
  37. package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs.map +1 -1
  38. package/cjs/components/MonthView/handle-month-view-key-down.cjs +94 -139
  39. package/cjs/components/MonthView/handle-month-view-key-down.cjs.map +1 -1
  40. package/cjs/components/MoreEvents/MoreEvents.cjs +87 -121
  41. package/cjs/components/MoreEvents/MoreEvents.cjs.map +1 -1
  42. package/cjs/components/MoreEvents/MoreEvents.module.cjs +11 -0
  43. package/cjs/components/MoreEvents/MoreEvents.module.cjs.map +1 -0
  44. package/cjs/components/Schedule/Schedule.cjs +147 -174
  45. package/cjs/components/Schedule/Schedule.cjs.map +1 -1
  46. package/cjs/components/Schedule/Schedule.module.cjs +11 -0
  47. package/cjs/components/Schedule/Schedule.module.cjs.map +1 -0
  48. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs +116 -154
  49. package/cjs/components/ScheduleEvent/ScheduleEvent.cjs.map +1 -1
  50. package/cjs/components/ScheduleEvent/ScheduleEvent.module.cjs +11 -0
  51. package/cjs/components/ScheduleEvent/ScheduleEvent.module.cjs.map +1 -0
  52. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs +62 -73
  53. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs.map +1 -1
  54. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.cjs +7 -0
  55. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.cjs.map +1 -0
  56. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs +152 -190
  57. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs.map +1 -1
  58. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.cjs +13 -0
  59. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.cjs.map +1 -0
  60. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs +41 -55
  61. package/cjs/components/ScheduleHeader/ScheduleHeader.cjs.map +1 -1
  62. package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs +13 -0
  63. package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs.map +1 -0
  64. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs +83 -84
  65. package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs.map +1 -1
  66. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs +105 -126
  67. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs.map +1 -1
  68. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.cjs +7 -0
  69. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.cjs.map +1 -0
  70. package/cjs/components/WeekView/WeekView.cjs +617 -748
  71. package/cjs/components/WeekView/WeekView.cjs.map +1 -1
  72. package/cjs/components/WeekView/WeekView.module.cjs +29 -0
  73. package/cjs/components/WeekView/WeekView.module.cjs.map +1 -0
  74. package/cjs/components/WeekView/WeekViewDay.cjs +71 -109
  75. package/cjs/components/WeekView/WeekViewDay.cjs.map +1 -1
  76. package/cjs/components/WeekView/get-week-label/get-week-label.cjs +27 -35
  77. package/cjs/components/WeekView/get-week-label/get-week-label.cjs.map +1 -1
  78. package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs +21 -29
  79. package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs.map +1 -1
  80. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs +13 -29
  81. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs.map +1 -1
  82. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs +14 -31
  83. package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs.map +1 -1
  84. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs +13 -16
  85. package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs.map +1 -1
  86. package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs +14 -22
  87. package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs.map +1 -1
  88. package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs +26 -35
  89. package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs.map +1 -1
  90. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs +26 -39
  91. package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs.map +1 -1
  92. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs +11 -16
  93. package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs.map +1 -1
  94. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs +17 -30
  95. package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs.map +1 -1
  96. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs +200 -186
  97. package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs.map +1 -1
  98. package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs +11 -9
  99. package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs.map +1 -1
  100. package/cjs/components/WeekView/handle-week-view-key-down.cjs +82 -127
  101. package/cjs/components/WeekView/handle-week-view-key-down.cjs.map +1 -1
  102. package/cjs/components/YearView/YearView.cjs +160 -213
  103. package/cjs/components/YearView/YearView.cjs.map +1 -1
  104. package/cjs/components/YearView/YearView.module.cjs +20 -0
  105. package/cjs/components/YearView/YearView.module.cjs.map +1 -0
  106. package/cjs/components/YearView/YearViewMonth.cjs +135 -158
  107. package/cjs/components/YearView/YearViewMonth.cjs.map +1 -1
  108. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs +32 -48
  109. package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs.map +1 -1
  110. package/cjs/components/YearView/handle-year-view-key-down.cjs +143 -202
  111. package/cjs/components/YearView/handle-year-view-key-down.cjs.map +1 -1
  112. package/cjs/hooks/use-auto-scroll-on-drag.cjs +67 -70
  113. package/cjs/hooks/use-auto-scroll-on-drag.cjs.map +1 -1
  114. package/cjs/hooks/use-drag-drop-handlers.cjs +110 -127
  115. package/cjs/hooks/use-drag-drop-handlers.cjs.map +1 -1
  116. package/cjs/hooks/use-drag-state.cjs +38 -42
  117. package/cjs/hooks/use-drag-state.cjs.map +1 -1
  118. package/cjs/hooks/use-event-resize.cjs +132 -163
  119. package/cjs/hooks/use-event-resize.cjs.map +1 -1
  120. package/cjs/hooks/use-slot-drag-select.cjs +75 -88
  121. package/cjs/hooks/use-slot-drag-select.cjs.map +1 -1
  122. package/cjs/index.cjs +98 -103
  123. package/cjs/labels.cjs +30 -28
  124. package/cjs/labels.cjs.map +1 -1
  125. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs +23 -36
  126. package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs.map +1 -1
  127. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs +17 -24
  128. package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs.map +1 -1
  129. package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs +9 -8
  130. package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs.map +1 -1
  131. package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs +103 -141
  132. package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs.map +1 -1
  133. package/cjs/utils/format-date/format-date.cjs +10 -15
  134. package/cjs/utils/format-date/format-date.cjs.map +1 -1
  135. package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs +23 -22
  136. package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs.map +1 -1
  137. package/cjs/utils/get-current-time-position/get-current-time-position.cjs +19 -25
  138. package/cjs/utils/get-current-time-position/get-current-time-position.cjs.map +1 -1
  139. package/cjs/utils/get-day-position/get-day-position.cjs +26 -35
  140. package/cjs/utils/get-day-position/get-day-position.cjs.map +1 -1
  141. package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs +50 -45
  142. package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs.map +1 -1
  143. package/cjs/utils/get-end-of-week/get-end-of-week.cjs +13 -20
  144. package/cjs/utils/get-end-of-week/get-end-of-week.cjs.map +1 -1
  145. package/cjs/utils/get-month-days/get-month-days.cjs +41 -47
  146. package/cjs/utils/get-month-days/get-month-days.cjs.map +1 -1
  147. package/cjs/utils/get-month-range/get-month-range.cjs +25 -30
  148. package/cjs/utils/get-month-range/get-month-range.cjs.map +1 -1
  149. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs +21 -21
  150. package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs.map +1 -1
  151. package/cjs/utils/get-months-list/get-months-list.cjs +20 -18
  152. package/cjs/utils/get-months-list/get-months-list.cjs.map +1 -1
  153. package/cjs/utils/get-start-of-week/get-start-of-week.cjs +11 -16
  154. package/cjs/utils/get-start-of-week/get-start-of-week.cjs.map +1 -1
  155. package/cjs/utils/get-visible-events/get-visible-events.cjs +13 -15
  156. package/cjs/utils/get-visible-events/get-visible-events.cjs.map +1 -1
  157. package/cjs/utils/get-week-days/get-week-days.cjs +23 -30
  158. package/cjs/utils/get-week-days/get-week-days.cjs.map +1 -1
  159. package/cjs/utils/get-week-number/get-week-number.cjs +13 -19
  160. package/cjs/utils/get-week-number/get-week-number.cjs.map +1 -1
  161. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs +18 -23
  162. package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
  163. package/cjs/utils/get-years-list/get-years-list.cjs +8 -10
  164. package/cjs/utils/get-years-list/get-years-list.cjs.map +1 -1
  165. package/cjs/utils/is-after-min-date/is-after-min-date.cjs +9 -12
  166. package/cjs/utils/is-after-min-date/is-after-min-date.cjs.map +1 -1
  167. package/cjs/utils/is-all-day-event/is-all-day-event.cjs +13 -16
  168. package/cjs/utils/is-all-day-event/is-all-day-event.cjs.map +1 -1
  169. package/cjs/utils/is-before-max-date/is-before-max-date.cjs +9 -12
  170. package/cjs/utils/is-before-max-date/is-before-max-date.cjs.map +1 -1
  171. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs +19 -27
  172. package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs.map +1 -1
  173. package/cjs/utils/is-events-overlap/is-events-overlap.cjs +13 -16
  174. package/cjs/utils/is-events-overlap/is-events-overlap.cjs.map +1 -1
  175. package/cjs/utils/is-in-time-range/is-in-time-range.cjs +17 -23
  176. package/cjs/utils/is-in-time-range/is-in-time-range.cjs.map +1 -1
  177. package/cjs/utils/is-multiday-event/is-multiday-event.cjs +10 -14
  178. package/cjs/utils/is-multiday-event/is-multiday-event.cjs.map +1 -1
  179. package/cjs/utils/is-same-month/is-same-month.cjs +9 -12
  180. package/cjs/utils/is-same-month/is-same-month.cjs.map +1 -1
  181. package/cjs/utils/is-within-week/is-within-week.cjs +15 -15
  182. package/cjs/utils/is-within-week/is-within-week.cjs.map +1 -1
  183. package/cjs/utils/next-week/next-week.cjs +15 -15
  184. package/cjs/utils/next-week/next-week.cjs.map +1 -1
  185. package/cjs/utils/parse-time-string/parse-time-string.cjs +11 -7
  186. package/cjs/utils/parse-time-string/parse-time-string.cjs.map +1 -1
  187. package/cjs/utils/previous-week/previous-week.cjs +15 -15
  188. package/cjs/utils/previous-week/previous-week.cjs.map +1 -1
  189. package/cjs/utils/sort-events/sort-events.cjs +14 -18
  190. package/cjs/utils/sort-events/sort-events.cjs.map +1 -1
  191. package/cjs/utils/to-date-string/to-date-string.cjs +9 -12
  192. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
  193. package/cjs/utils/to-time-string/to-time-string.cjs +6 -6
  194. package/cjs/utils/to-time-string/to-time-string.cjs.map +1 -1
  195. package/cjs/utils/validate-event/validate-event.cjs +12 -23
  196. package/cjs/utils/validate-event/validate-event.cjs.map +1 -1
  197. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs +76 -95
  198. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -1
  199. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.mjs +12 -0
  200. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.mjs.map +1 -0
  201. package/esm/components/DayView/DayView.mjs +459 -571
  202. package/esm/components/DayView/DayView.mjs.map +1 -1
  203. package/esm/components/DayView/DayView.module.mjs +20 -0
  204. package/esm/components/DayView/DayView.module.mjs.map +1 -0
  205. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs +89 -104
  206. package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs.map +1 -1
  207. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs +104 -100
  208. package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs.map +1 -1
  209. package/esm/components/DragContext/DragContext.mjs +6 -5
  210. package/esm/components/DragContext/DragContext.mjs.map +1 -1
  211. package/esm/components/MobileMonthView/MobileMonthView.mjs +257 -289
  212. package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -1
  213. package/esm/components/MobileMonthView/MobileMonthView.module.mjs +27 -0
  214. package/esm/components/MobileMonthView/MobileMonthView.module.mjs.map +1 -0
  215. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs +33 -47
  216. package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs.map +1 -1
  217. package/esm/components/MonthView/MonthView.mjs +362 -460
  218. package/esm/components/MonthView/MonthView.mjs.map +1 -1
  219. package/esm/components/MonthView/MonthView.module.mjs +18 -0
  220. package/esm/components/MonthView/MonthView.module.mjs.map +1 -0
  221. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs +15 -22
  222. package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs.map +1 -1
  223. package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs +23 -33
  224. package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs.map +1 -1
  225. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs +14 -23
  226. package/esm/components/MonthView/get-month-view-events/find-available-row.mjs.map +1 -1
  227. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs +85 -91
  228. package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs.map +1 -1
  229. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs +34 -39
  230. package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs.map +1 -1
  231. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs +28 -33
  232. package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs.map +1 -1
  233. package/esm/components/MonthView/handle-month-view-key-down.mjs +94 -137
  234. package/esm/components/MonthView/handle-month-view-key-down.mjs.map +1 -1
  235. package/esm/components/MoreEvents/MoreEvents.mjs +85 -118
  236. package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -1
  237. package/esm/components/MoreEvents/MoreEvents.module.mjs +11 -0
  238. package/esm/components/MoreEvents/MoreEvents.module.mjs.map +1 -0
  239. package/esm/components/Schedule/Schedule.mjs +145 -171
  240. package/esm/components/Schedule/Schedule.mjs.map +1 -1
  241. package/esm/components/Schedule/Schedule.module.mjs +11 -0
  242. package/esm/components/Schedule/Schedule.module.mjs.map +1 -0
  243. package/esm/components/ScheduleEvent/ScheduleEvent.mjs +114 -151
  244. package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -1
  245. package/esm/components/ScheduleEvent/ScheduleEvent.module.mjs +11 -0
  246. package/esm/components/ScheduleEvent/ScheduleEvent.module.mjs.map +1 -0
  247. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs +60 -70
  248. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs.map +1 -1
  249. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.mjs +7 -0
  250. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.mjs.map +1 -0
  251. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs +150 -187
  252. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs.map +1 -1
  253. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.mjs +13 -0
  254. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.mjs.map +1 -0
  255. package/esm/components/ScheduleHeader/ScheduleHeader.mjs +33 -46
  256. package/esm/components/ScheduleHeader/ScheduleHeader.mjs.map +1 -1
  257. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs +13 -0
  258. package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs.map +1 -0
  259. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs +82 -82
  260. package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs.map +1 -1
  261. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs +103 -123
  262. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs.map +1 -1
  263. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.mjs +7 -0
  264. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.mjs.map +1 -0
  265. package/esm/components/WeekView/WeekView.mjs +614 -741
  266. package/esm/components/WeekView/WeekView.mjs.map +1 -1
  267. package/esm/components/WeekView/WeekView.module.mjs +29 -0
  268. package/esm/components/WeekView/WeekView.module.mjs.map +1 -0
  269. package/esm/components/WeekView/WeekViewDay.mjs +69 -103
  270. package/esm/components/WeekView/WeekViewDay.mjs.map +1 -1
  271. package/esm/components/WeekView/get-week-label/get-week-label.mjs +25 -29
  272. package/esm/components/WeekView/get-week-label/get-week-label.mjs.map +1 -1
  273. package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs +21 -27
  274. package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs.map +1 -1
  275. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs +11 -23
  276. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs.map +1 -1
  277. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs +12 -25
  278. package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs.map +1 -1
  279. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs +11 -10
  280. package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs.map +1 -1
  281. package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs +14 -20
  282. package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs.map +1 -1
  283. package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs +26 -33
  284. package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs.map +1 -1
  285. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs +26 -37
  286. package/esm/components/WeekView/get-week-view-events/find-available-column.mjs.map +1 -1
  287. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs +9 -10
  288. package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs.map +1 -1
  289. package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs +15 -24
  290. package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs.map +1 -1
  291. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs +198 -180
  292. package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs.map +1 -1
  293. package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs +11 -7
  294. package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs.map +1 -1
  295. package/esm/components/WeekView/handle-week-view-key-down.mjs +82 -125
  296. package/esm/components/WeekView/handle-week-view-key-down.mjs.map +1 -1
  297. package/esm/components/YearView/YearView.mjs +157 -206
  298. package/esm/components/YearView/YearView.mjs.map +1 -1
  299. package/esm/components/YearView/YearView.module.mjs +20 -0
  300. package/esm/components/YearView/YearView.module.mjs.map +1 -0
  301. package/esm/components/YearView/YearViewMonth.mjs +133 -152
  302. package/esm/components/YearView/YearViewMonth.mjs.map +1 -1
  303. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs +30 -42
  304. package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs.map +1 -1
  305. package/esm/components/YearView/handle-year-view-key-down.mjs +143 -200
  306. package/esm/components/YearView/handle-year-view-key-down.mjs.map +1 -1
  307. package/esm/hooks/use-auto-scroll-on-drag.mjs +66 -68
  308. package/esm/hooks/use-auto-scroll-on-drag.mjs.map +1 -1
  309. package/esm/hooks/use-drag-drop-handlers.mjs +108 -121
  310. package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -1
  311. package/esm/hooks/use-drag-state.mjs +37 -40
  312. package/esm/hooks/use-drag-state.mjs.map +1 -1
  313. package/esm/hooks/use-event-resize.mjs +130 -157
  314. package/esm/hooks/use-event-resize.mjs.map +1 -1
  315. package/esm/hooks/use-slot-drag-select.mjs +74 -86
  316. package/esm/hooks/use-slot-drag-select.mjs.map +1 -1
  317. package/esm/index.mjs +49 -49
  318. package/esm/labels.mjs +30 -26
  319. package/esm/labels.mjs.map +1 -1
  320. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs +21 -30
  321. package/esm/utils/calculate-drop-time/calculate-drop-time.mjs.map +1 -1
  322. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs +15 -18
  323. package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs.map +1 -1
  324. package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs +9 -6
  325. package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs.map +1 -1
  326. package/esm/utils/expand-recurring-events/expand-recurring-events.mjs +101 -134
  327. package/esm/utils/expand-recurring-events/expand-recurring-events.mjs.map +1 -1
  328. package/esm/utils/format-date/format-date.mjs +8 -9
  329. package/esm/utils/format-date/format-date.mjs.map +1 -1
  330. package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs +23 -20
  331. package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs.map +1 -1
  332. package/esm/utils/get-current-time-position/get-current-time-position.mjs +17 -19
  333. package/esm/utils/get-current-time-position/get-current-time-position.mjs.map +1 -1
  334. package/esm/utils/get-day-position/get-day-position.mjs +24 -29
  335. package/esm/utils/get-day-position/get-day-position.mjs.map +1 -1
  336. package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs +50 -43
  337. package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs.map +1 -1
  338. package/esm/utils/get-end-of-week/get-end-of-week.mjs +11 -14
  339. package/esm/utils/get-end-of-week/get-end-of-week.mjs.map +1 -1
  340. package/esm/utils/get-month-days/get-month-days.mjs +39 -41
  341. package/esm/utils/get-month-days/get-month-days.mjs.map +1 -1
  342. package/esm/utils/get-month-range/get-month-range.mjs +23 -24
  343. package/esm/utils/get-month-range/get-month-range.mjs.map +1 -1
  344. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs +19 -15
  345. package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs.map +1 -1
  346. package/esm/utils/get-months-list/get-months-list.mjs +18 -12
  347. package/esm/utils/get-months-list/get-months-list.mjs.map +1 -1
  348. package/esm/utils/get-start-of-week/get-start-of-week.mjs +9 -10
  349. package/esm/utils/get-start-of-week/get-start-of-week.mjs.map +1 -1
  350. package/esm/utils/get-visible-events/get-visible-events.mjs +13 -13
  351. package/esm/utils/get-visible-events/get-visible-events.mjs.map +1 -1
  352. package/esm/utils/get-week-days/get-week-days.mjs +21 -24
  353. package/esm/utils/get-week-days/get-week-days.mjs.map +1 -1
  354. package/esm/utils/get-week-number/get-week-number.mjs +9 -11
  355. package/esm/utils/get-week-number/get-week-number.mjs.map +1 -1
  356. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs +16 -17
  357. package/esm/utils/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
  358. package/esm/utils/get-years-list/get-years-list.mjs +8 -8
  359. package/esm/utils/get-years-list/get-years-list.mjs.map +1 -1
  360. package/esm/utils/is-after-min-date/is-after-min-date.mjs +7 -6
  361. package/esm/utils/is-after-min-date/is-after-min-date.mjs.map +1 -1
  362. package/esm/utils/is-all-day-event/is-all-day-event.mjs +11 -10
  363. package/esm/utils/is-all-day-event/is-all-day-event.mjs.map +1 -1
  364. package/esm/utils/is-before-max-date/is-before-max-date.mjs +7 -6
  365. package/esm/utils/is-before-max-date/is-before-max-date.mjs.map +1 -1
  366. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs +17 -21
  367. package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs.map +1 -1
  368. package/esm/utils/is-events-overlap/is-events-overlap.mjs +11 -10
  369. package/esm/utils/is-events-overlap/is-events-overlap.mjs.map +1 -1
  370. package/esm/utils/is-in-time-range/is-in-time-range.mjs +15 -17
  371. package/esm/utils/is-in-time-range/is-in-time-range.mjs.map +1 -1
  372. package/esm/utils/is-multiday-event/is-multiday-event.mjs +8 -8
  373. package/esm/utils/is-multiday-event/is-multiday-event.mjs.map +1 -1
  374. package/esm/utils/is-same-month/is-same-month.mjs +7 -6
  375. package/esm/utils/is-same-month/is-same-month.mjs.map +1 -1
  376. package/esm/utils/is-within-week/is-within-week.mjs +13 -9
  377. package/esm/utils/is-within-week/is-within-week.mjs.map +1 -1
  378. package/esm/utils/next-week/next-week.mjs +13 -9
  379. package/esm/utils/next-week/next-week.mjs.map +1 -1
  380. package/esm/utils/parse-time-string/parse-time-string.mjs +11 -5
  381. package/esm/utils/parse-time-string/parse-time-string.mjs.map +1 -1
  382. package/esm/utils/previous-week/previous-week.mjs +13 -9
  383. package/esm/utils/previous-week/previous-week.mjs.map +1 -1
  384. package/esm/utils/sort-events/sort-events.mjs +12 -12
  385. package/esm/utils/sort-events/sort-events.mjs.map +1 -1
  386. package/esm/utils/to-date-string/to-date-string.mjs +7 -6
  387. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -1
  388. package/esm/utils/to-time-string/to-time-string.mjs +6 -4
  389. package/esm/utils/to-time-string/to-time-string.mjs.map +1 -1
  390. package/esm/utils/validate-event/validate-event.mjs +10 -17
  391. package/esm/utils/validate-event/validate-event.mjs.map +1 -1
  392. package/lib/components/MobileMonthView/MobileMonthView.d.ts +0 -2
  393. package/lib/labels.d.ts +1 -0
  394. package/package.json +4 -4
  395. package/styles.css +3 -1
  396. package/styles.layer.css +3 -1
  397. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs +0 -7
  398. package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs.map +0 -1
  399. package/cjs/components/DayView/DayView.module.css.cjs +0 -7
  400. package/cjs/components/DayView/DayView.module.css.cjs.map +0 -1
  401. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs +0 -7
  402. package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs.map +0 -1
  403. package/cjs/components/MonthView/MonthView.module.css.cjs +0 -7
  404. package/cjs/components/MonthView/MonthView.module.css.cjs.map +0 -1
  405. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs +0 -7
  406. package/cjs/components/MoreEvents/MoreEvents.module.css.cjs.map +0 -1
  407. package/cjs/components/Schedule/Schedule.module.css.cjs +0 -7
  408. package/cjs/components/Schedule/Schedule.module.css.cjs.map +0 -1
  409. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs +0 -7
  410. package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs.map +0 -1
  411. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs +0 -7
  412. package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs.map +0 -1
  413. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs +0 -7
  414. package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs.map +0 -1
  415. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs +0 -7
  416. package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs.map +0 -1
  417. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs +0 -7
  418. package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs.map +0 -1
  419. package/cjs/components/WeekView/WeekView.module.css.cjs +0 -7
  420. package/cjs/components/WeekView/WeekView.module.css.cjs.map +0 -1
  421. package/cjs/components/YearView/YearView.module.css.cjs +0 -7
  422. package/cjs/components/YearView/YearView.module.css.cjs.map +0 -1
  423. package/cjs/index.cjs.map +0 -1
  424. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs +0 -5
  425. package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs.map +0 -1
  426. package/esm/components/DayView/DayView.module.css.mjs +0 -5
  427. package/esm/components/DayView/DayView.module.css.mjs.map +0 -1
  428. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs +0 -5
  429. package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs.map +0 -1
  430. package/esm/components/MonthView/MonthView.module.css.mjs +0 -5
  431. package/esm/components/MonthView/MonthView.module.css.mjs.map +0 -1
  432. package/esm/components/MoreEvents/MoreEvents.module.css.mjs +0 -5
  433. package/esm/components/MoreEvents/MoreEvents.module.css.mjs.map +0 -1
  434. package/esm/components/Schedule/Schedule.module.css.mjs +0 -5
  435. package/esm/components/Schedule/Schedule.module.css.mjs.map +0 -1
  436. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs +0 -5
  437. package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs.map +0 -1
  438. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs +0 -5
  439. package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs.map +0 -1
  440. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs +0 -5
  441. package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs.map +0 -1
  442. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs +0 -5
  443. package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs.map +0 -1
  444. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs +0 -5
  445. package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs.map +0 -1
  446. package/esm/components/WeekView/WeekView.module.css.mjs +0 -5
  447. package/esm/components/WeekView/WeekView.module.css.mjs.map +0 -1
  448. package/esm/components/YearView/YearView.module.css.mjs +0 -5
  449. package/esm/components/YearView/YearView.module.css.mjs.map +0 -1
  450. package/esm/index.mjs.map +0 -1
@@ -1,158 +1,120 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var dayjs = require('dayjs');
5
- var rrule = require('rrule');
6
- var validateEvent = require('../validate-event/validate-event.cjs');
7
-
8
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
-
10
- var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
11
-
1
+ "use client";
2
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
3
+ const require_validate_event = require("../validate-event/validate-event.cjs");
4
+ let dayjs = require("dayjs");
5
+ dayjs = require_runtime.__toESM(dayjs);
6
+ let rrule = require("rrule");
7
+ //#region packages/@mantine/schedule/src/utils/expand-recurring-events/expand-recurring-events.ts
12
8
  function getRecurrenceKey(recurringEventId, recurrenceId) {
13
- return `${recurringEventId}::${recurrenceId}`;
9
+ return `${recurringEventId}::${recurrenceId}`;
14
10
  }
15
11
  function overlapsRange(eventStart, eventEnd, rangeStart, rangeEnd) {
16
- return (eventEnd.isAfter(rangeStart) || eventEnd.isSame(rangeStart)) && (eventStart.isBefore(rangeEnd) || eventStart.isSame(rangeEnd));
12
+ return (eventEnd.isAfter(rangeStart) || eventEnd.isSame(rangeStart)) && (eventStart.isBefore(rangeEnd) || eventStart.isSame(rangeEnd));
17
13
  }
18
14
  function getExdateSet(recurrence) {
19
- if (!recurrence?.exdate) {
20
- return /* @__PURE__ */ new Set();
21
- }
22
- const values = recurrence.exdate.map((value) => dayjs__default.default(value)).filter((value) => value.isValid()).map((value) => value.format("YYYY-MM-DD HH:mm:ss"));
23
- return new Set(values);
15
+ if (!recurrence?.exdate) return /* @__PURE__ */ new Set();
16
+ const values = recurrence.exdate.map((value) => (0, dayjs.default)(value)).filter((value) => value.isValid()).map((value) => value.format("YYYY-MM-DD HH:mm:ss"));
17
+ return new Set(values);
24
18
  }
25
19
  function getRRuleString(rule) {
26
- const normalized = rule.trim();
27
- if (!normalized.includes("\n")) {
28
- return normalized.startsWith("RRULE:") ? normalized.replace(/^RRULE:/, "") : normalized;
29
- }
30
- const rruleLine = normalized.split("\n").map((line) => line.trim()).find((line) => line.startsWith("RRULE:"));
31
- return rruleLine ? rruleLine.replace(/^RRULE:/, "") : normalized;
20
+ const normalized = rule.trim();
21
+ if (!normalized.includes("\n")) return normalized.startsWith("RRULE:") ? normalized.replace(/^RRULE:/, "") : normalized;
22
+ const rruleLine = normalized.split("\n").map((line) => line.trim()).find((line) => line.startsWith("RRULE:"));
23
+ return rruleLine ? rruleLine.replace(/^RRULE:/, "") : normalized;
32
24
  }
33
25
  function getOccurrenceStartsInRange(event, rangeStart, rangeEnd, expansionLimit, durationMs) {
34
- const dtstart = dayjs__default.default(event.recurrence?.dtstart || event.start);
35
- if (!dtstart.isValid() || !event.recurrence) {
36
- return [];
37
- }
38
- try {
39
- const options = rrule.RRule.parseString(getRRuleString(event.recurrence.rrule));
40
- options.dtstart = dtstart.toDate();
41
- const rule = new rrule.RRule(options);
42
- const searchStart = rangeStart.subtract(Math.max(0, durationMs), "millisecond").toDate();
43
- const results = rule.between(searchStart, rangeEnd.toDate(), true);
44
- return results.slice(0, expansionLimit).map((value) => dayjs__default.default(value));
45
- } catch {
46
- return [];
47
- }
26
+ const dtstart = (0, dayjs.default)(event.recurrence?.dtstart || event.start);
27
+ if (!dtstart.isValid() || !event.recurrence) return [];
28
+ try {
29
+ const options = rrule.RRule.parseString(getRRuleString(event.recurrence.rrule));
30
+ options.dtstart = dtstart.toDate();
31
+ const rule = new rrule.RRule(options);
32
+ const searchStart = rangeStart.subtract(Math.max(0, durationMs), "millisecond").toDate();
33
+ return rule.between(searchStart, rangeEnd.toDate(), true).slice(0, expansionLimit).map((value) => (0, dayjs.default)(value));
34
+ } catch {
35
+ return [];
36
+ }
48
37
  }
49
38
  function isEventInRange(event, rangeStart, rangeEnd) {
50
- const start = dayjs__default.default(event.start);
51
- const end = dayjs__default.default(event.end);
52
- if (!start.isValid() || !end.isValid()) {
53
- return false;
54
- }
55
- return overlapsRange(start, end, rangeStart, rangeEnd);
39
+ const start = (0, dayjs.default)(event.start);
40
+ const end = (0, dayjs.default)(event.end);
41
+ if (!start.isValid() || !end.isValid()) return false;
42
+ return overlapsRange(start, end, rangeStart, rangeEnd);
56
43
  }
57
44
  function createGeneratedInstance(event, occurrenceStart, durationMs) {
58
- const occurrenceEnd = occurrenceStart.add(durationMs, "millisecond");
59
- const recurrenceId = occurrenceStart.format("YYYY-MM-DD HH:mm:ss");
60
- const { recurrence, ...eventWithoutRecurrence } = event;
61
- return {
62
- ...eventWithoutRecurrence,
63
- id: `${event.id}::${recurrenceId}`,
64
- start: occurrenceStart.format("YYYY-MM-DD HH:mm:ss"),
65
- end: occurrenceEnd.format("YYYY-MM-DD HH:mm:ss"),
66
- recurringEventId: event.id,
67
- recurrenceId,
68
- recurringInstance: {
69
- isRecurringInstance: true,
70
- recurringEventId: event.id,
71
- recurrenceId,
72
- originalStart: occurrenceStart.format("YYYY-MM-DD HH:mm:ss"),
73
- originalEnd: occurrenceEnd.format("YYYY-MM-DD HH:mm:ss")
74
- }
75
- };
45
+ const occurrenceEnd = occurrenceStart.add(durationMs, "millisecond");
46
+ const recurrenceId = occurrenceStart.format("YYYY-MM-DD HH:mm:ss");
47
+ const { recurrence, ...eventWithoutRecurrence } = event;
48
+ return {
49
+ ...eventWithoutRecurrence,
50
+ id: `${event.id}::${recurrenceId}`,
51
+ start: occurrenceStart.format("YYYY-MM-DD HH:mm:ss"),
52
+ end: occurrenceEnd.format("YYYY-MM-DD HH:mm:ss"),
53
+ recurringEventId: event.id,
54
+ recurrenceId,
55
+ recurringInstance: {
56
+ isRecurringInstance: true,
57
+ recurringEventId: event.id,
58
+ recurrenceId,
59
+ originalStart: occurrenceStart.format("YYYY-MM-DD HH:mm:ss"),
60
+ originalEnd: occurrenceEnd.format("YYYY-MM-DD HH:mm:ss")
61
+ }
62
+ };
76
63
  }
77
64
  const DEFAULT_EXPANSION_LIMIT = 2e3;
78
- function expandRecurringEvents({
79
- events,
80
- rangeStart,
81
- rangeEnd,
82
- expansionLimit = DEFAULT_EXPANSION_LIMIT
83
- }) {
84
- if (!events || events.length === 0) {
85
- return [];
86
- }
87
- const start = dayjs__default.default(rangeStart);
88
- const end = dayjs__default.default(rangeEnd);
89
- if (!start.isValid() || !end.isValid()) {
90
- return [];
91
- }
92
- const regularEvents = [];
93
- const recurringEvents = [];
94
- const overrides = /* @__PURE__ */ new Map();
95
- for (const event of events) {
96
- if (event.recurringEventId && event.recurrenceId) {
97
- overrides.set(getRecurrenceKey(event.recurringEventId, event.recurrenceId), event);
98
- continue;
99
- }
100
- if (event.recurrence?.rrule) {
101
- recurringEvents.push(event);
102
- continue;
103
- }
104
- regularEvents.push(event);
105
- }
106
- const output = [];
107
- const consumedOverrideIds = /* @__PURE__ */ new Set();
108
- for (const event of regularEvents) {
109
- if (isEventInRange(event, start, end)) {
110
- output.push(validateEvent.validateEvent(event));
111
- }
112
- }
113
- for (const event of recurringEvents) {
114
- const eventStart = dayjs__default.default(event.recurrence?.dtstart || event.start);
115
- const eventEnd = dayjs__default.default(event.end);
116
- if (!eventStart.isValid() || !eventEnd.isValid()) {
117
- continue;
118
- }
119
- const durationMs = eventEnd.diff(dayjs__default.default(event.start), "millisecond");
120
- if (durationMs < 0) {
121
- continue;
122
- }
123
- const exdate = getExdateSet(event.recurrence);
124
- const starts = getOccurrenceStartsInRange(event, start, end, expansionLimit, durationMs);
125
- for (const occurrenceStart of starts) {
126
- const recurrenceId = occurrenceStart.format("YYYY-MM-DD HH:mm:ss");
127
- if (exdate.has(recurrenceId)) {
128
- continue;
129
- }
130
- const overrideKey = getRecurrenceKey(event.id, recurrenceId);
131
- const override = overrides.get(overrideKey);
132
- if (override) {
133
- if (isEventInRange(override, start, end)) {
134
- output.push(validateEvent.validateEvent(override));
135
- consumedOverrideIds.add(override.id);
136
- }
137
- continue;
138
- }
139
- const generated = createGeneratedInstance(event, occurrenceStart, durationMs);
140
- if (overlapsRange(dayjs__default.default(generated.start), dayjs__default.default(generated.end), start, end)) {
141
- output.push(validateEvent.validateEvent(generated));
142
- }
143
- }
144
- }
145
- for (const override of overrides.values()) {
146
- if (consumedOverrideIds.has(override.id)) {
147
- continue;
148
- }
149
- if (isEventInRange(override, start, end)) {
150
- output.push(validateEvent.validateEvent(override));
151
- }
152
- }
153
- return output;
65
+ function expandRecurringEvents({ events, rangeStart, rangeEnd, expansionLimit = DEFAULT_EXPANSION_LIMIT }) {
66
+ if (!events || events.length === 0) return [];
67
+ const start = (0, dayjs.default)(rangeStart);
68
+ const end = (0, dayjs.default)(rangeEnd);
69
+ if (!start.isValid() || !end.isValid()) return [];
70
+ const regularEvents = [];
71
+ const recurringEvents = [];
72
+ const overrides = /* @__PURE__ */ new Map();
73
+ for (const event of events) {
74
+ if (event.recurringEventId && event.recurrenceId) {
75
+ overrides.set(getRecurrenceKey(event.recurringEventId, event.recurrenceId), event);
76
+ continue;
77
+ }
78
+ if (event.recurrence?.rrule) {
79
+ recurringEvents.push(event);
80
+ continue;
81
+ }
82
+ regularEvents.push(event);
83
+ }
84
+ const output = [];
85
+ const consumedOverrideIds = /* @__PURE__ */ new Set();
86
+ for (const event of regularEvents) if (isEventInRange(event, start, end)) output.push(require_validate_event.validateEvent(event));
87
+ for (const event of recurringEvents) {
88
+ const eventStart = (0, dayjs.default)(event.recurrence?.dtstart || event.start);
89
+ const eventEnd = (0, dayjs.default)(event.end);
90
+ if (!eventStart.isValid() || !eventEnd.isValid()) continue;
91
+ const durationMs = eventEnd.diff((0, dayjs.default)(event.start), "millisecond");
92
+ if (durationMs < 0) continue;
93
+ const exdate = getExdateSet(event.recurrence);
94
+ const starts = getOccurrenceStartsInRange(event, start, end, expansionLimit, durationMs);
95
+ for (const occurrenceStart of starts) {
96
+ const recurrenceId = occurrenceStart.format("YYYY-MM-DD HH:mm:ss");
97
+ if (exdate.has(recurrenceId)) continue;
98
+ const overrideKey = getRecurrenceKey(event.id, recurrenceId);
99
+ const override = overrides.get(overrideKey);
100
+ if (override) {
101
+ if (isEventInRange(override, start, end)) {
102
+ output.push(require_validate_event.validateEvent(override));
103
+ consumedOverrideIds.add(override.id);
104
+ }
105
+ continue;
106
+ }
107
+ const generated = createGeneratedInstance(event, occurrenceStart, durationMs);
108
+ if (overlapsRange((0, dayjs.default)(generated.start), (0, dayjs.default)(generated.end), start, end)) output.push(require_validate_event.validateEvent(generated));
109
+ }
110
+ }
111
+ for (const override of overrides.values()) {
112
+ if (consumedOverrideIds.has(override.id)) continue;
113
+ if (isEventInRange(override, start, end)) output.push(require_validate_event.validateEvent(override));
114
+ }
115
+ return output;
154
116
  }
155
-
156
- exports.DEFAULT_EXPANSION_LIMIT = DEFAULT_EXPANSION_LIMIT;
117
+ //#endregion
157
118
  exports.expandRecurringEvents = expandRecurringEvents;
158
- //# sourceMappingURL=expand-recurring-events.cjs.map
119
+
120
+ //# sourceMappingURL=expand-recurring-events.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"expand-recurring-events.cjs","sources":["../../../src/utils/expand-recurring-events/expand-recurring-events.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { RRule } from 'rrule';\nimport { DateTimeStringValue, ScheduleEventData, ScheduleRecurrenceData } from '../../types';\nimport { validateEvent } from '../validate-event/validate-event';\n\ninterface ExpandRecurringEventsInput {\n events: ScheduleEventData[] | undefined;\n rangeStart: Date | string;\n rangeEnd: Date | string;\n expansionLimit?: number;\n}\n\nfunction getRecurrenceKey(recurringEventId: string | number, recurrenceId: DateTimeStringValue) {\n return `${recurringEventId}::${recurrenceId}`;\n}\n\nfunction overlapsRange(\n eventStart: dayjs.Dayjs,\n eventEnd: dayjs.Dayjs,\n rangeStart: dayjs.Dayjs,\n rangeEnd: dayjs.Dayjs\n) {\n return (\n (eventEnd.isAfter(rangeStart) || eventEnd.isSame(rangeStart)) &&\n (eventStart.isBefore(rangeEnd) || eventStart.isSame(rangeEnd))\n );\n}\n\nfunction getExdateSet(recurrence: ScheduleRecurrenceData | undefined) {\n if (!recurrence?.exdate) {\n return new Set<string>();\n }\n\n const values = recurrence.exdate\n .map((value) => dayjs(value))\n .filter((value) => value.isValid())\n .map((value) => value.format('YYYY-MM-DD HH:mm:ss'));\n\n return new Set(values);\n}\n\nfunction getRRuleString(rule: string) {\n const normalized = rule.trim();\n if (!normalized.includes('\\n')) {\n return normalized.startsWith('RRULE:') ? normalized.replace(/^RRULE:/, '') : normalized;\n }\n\n const rruleLine = normalized\n .split('\\n')\n .map((line) => line.trim())\n .find((line) => line.startsWith('RRULE:'));\n\n return rruleLine ? rruleLine.replace(/^RRULE:/, '') : normalized;\n}\n\nfunction getOccurrenceStartsInRange(\n event: ScheduleEventData,\n rangeStart: dayjs.Dayjs,\n rangeEnd: dayjs.Dayjs,\n expansionLimit: number,\n durationMs: number\n) {\n const dtstart = dayjs(event.recurrence?.dtstart || event.start);\n if (!dtstart.isValid() || !event.recurrence) {\n return [];\n }\n\n try {\n const options = RRule.parseString(getRRuleString(event.recurrence.rrule));\n options.dtstart = dtstart.toDate();\n const rule = new RRule(options);\n\n const searchStart = rangeStart.subtract(Math.max(0, durationMs), 'millisecond').toDate();\n const results = rule.between(searchStart, rangeEnd.toDate(), true);\n return results.slice(0, expansionLimit).map((value) => dayjs(value));\n } catch {\n return [];\n }\n}\n\nfunction isEventInRange(event: ScheduleEventData, rangeStart: dayjs.Dayjs, rangeEnd: dayjs.Dayjs) {\n const start = dayjs(event.start);\n const end = dayjs(event.end);\n\n if (!start.isValid() || !end.isValid()) {\n return false;\n }\n\n return overlapsRange(start, end, rangeStart, rangeEnd);\n}\n\nfunction createGeneratedInstance(\n event: ScheduleEventData,\n occurrenceStart: dayjs.Dayjs,\n durationMs: number\n): ScheduleEventData {\n const occurrenceEnd = occurrenceStart.add(durationMs, 'millisecond');\n const recurrenceId = occurrenceStart.format('YYYY-MM-DD HH:mm:ss');\n const { recurrence, ...eventWithoutRecurrence } = event;\n\n return {\n ...eventWithoutRecurrence,\n id: `${event.id}::${recurrenceId}`,\n start: occurrenceStart.format('YYYY-MM-DD HH:mm:ss'),\n end: occurrenceEnd.format('YYYY-MM-DD HH:mm:ss'),\n recurringEventId: event.id,\n recurrenceId,\n recurringInstance: {\n isRecurringInstance: true,\n recurringEventId: event.id,\n recurrenceId,\n originalStart: occurrenceStart.format('YYYY-MM-DD HH:mm:ss'),\n originalEnd: occurrenceEnd.format('YYYY-MM-DD HH:mm:ss'),\n },\n };\n}\n\nconst DEFAULT_EXPANSION_LIMIT = 2000;\n\nexport function expandRecurringEvents({\n events,\n rangeStart,\n rangeEnd,\n expansionLimit = DEFAULT_EXPANSION_LIMIT,\n}: ExpandRecurringEventsInput): ScheduleEventData[] {\n if (!events || events.length === 0) {\n return [];\n }\n\n const start = dayjs(rangeStart);\n const end = dayjs(rangeEnd);\n\n if (!start.isValid() || !end.isValid()) {\n return [];\n }\n\n const regularEvents: ScheduleEventData[] = [];\n const recurringEvents: ScheduleEventData[] = [];\n const overrides = new Map<string, ScheduleEventData>();\n\n for (const event of events) {\n if (event.recurringEventId && event.recurrenceId) {\n overrides.set(getRecurrenceKey(event.recurringEventId, event.recurrenceId), event);\n continue;\n }\n\n if (event.recurrence?.rrule) {\n recurringEvents.push(event);\n continue;\n }\n\n regularEvents.push(event);\n }\n\n const output: ScheduleEventData[] = [];\n const consumedOverrideIds = new Set<string | number>();\n\n for (const event of regularEvents) {\n if (isEventInRange(event, start, end)) {\n output.push(validateEvent(event));\n }\n }\n\n for (const event of recurringEvents) {\n const eventStart = dayjs(event.recurrence?.dtstart || event.start);\n const eventEnd = dayjs(event.end);\n\n if (!eventStart.isValid() || !eventEnd.isValid()) {\n continue;\n }\n\n const durationMs = eventEnd.diff(dayjs(event.start), 'millisecond');\n if (durationMs < 0) {\n continue;\n }\n\n const exdate = getExdateSet(event.recurrence);\n const starts = getOccurrenceStartsInRange(event, start, end, expansionLimit, durationMs);\n\n for (const occurrenceStart of starts) {\n const recurrenceId = occurrenceStart.format('YYYY-MM-DD HH:mm:ss');\n if (exdate.has(recurrenceId)) {\n continue;\n }\n\n const overrideKey = getRecurrenceKey(event.id, recurrenceId);\n const override = overrides.get(overrideKey);\n if (override) {\n if (isEventInRange(override, start, end)) {\n output.push(validateEvent(override));\n consumedOverrideIds.add(override.id);\n }\n continue;\n }\n\n const generated = createGeneratedInstance(event, occurrenceStart, durationMs);\n if (overlapsRange(dayjs(generated.start), dayjs(generated.end), start, end)) {\n output.push(validateEvent(generated));\n }\n }\n }\n\n for (const override of overrides.values()) {\n if (consumedOverrideIds.has(override.id)) {\n continue;\n }\n if (isEventInRange(override, start, end)) {\n output.push(validateEvent(override));\n }\n }\n\n return output;\n}\n\nexport { DEFAULT_EXPANSION_LIMIT };\n"],"names":["dayjs","RRule","validateEvent"],"mappings":"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"}
1
+ {"version":3,"file":"expand-recurring-events.cjs","names":["RRule","validateEvent"],"sources":["../../../src/utils/expand-recurring-events/expand-recurring-events.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { RRule } from 'rrule';\nimport { DateTimeStringValue, ScheduleEventData, ScheduleRecurrenceData } from '../../types';\nimport { validateEvent } from '../validate-event/validate-event';\n\ninterface ExpandRecurringEventsInput {\n events: ScheduleEventData[] | undefined;\n rangeStart: Date | string;\n rangeEnd: Date | string;\n expansionLimit?: number;\n}\n\nfunction getRecurrenceKey(recurringEventId: string | number, recurrenceId: DateTimeStringValue) {\n return `${recurringEventId}::${recurrenceId}`;\n}\n\nfunction overlapsRange(\n eventStart: dayjs.Dayjs,\n eventEnd: dayjs.Dayjs,\n rangeStart: dayjs.Dayjs,\n rangeEnd: dayjs.Dayjs\n) {\n return (\n (eventEnd.isAfter(rangeStart) || eventEnd.isSame(rangeStart)) &&\n (eventStart.isBefore(rangeEnd) || eventStart.isSame(rangeEnd))\n );\n}\n\nfunction getExdateSet(recurrence: ScheduleRecurrenceData | undefined) {\n if (!recurrence?.exdate) {\n return new Set<string>();\n }\n\n const values = recurrence.exdate\n .map((value) => dayjs(value))\n .filter((value) => value.isValid())\n .map((value) => value.format('YYYY-MM-DD HH:mm:ss'));\n\n return new Set(values);\n}\n\nfunction getRRuleString(rule: string) {\n const normalized = rule.trim();\n if (!normalized.includes('\\n')) {\n return normalized.startsWith('RRULE:') ? normalized.replace(/^RRULE:/, '') : normalized;\n }\n\n const rruleLine = normalized\n .split('\\n')\n .map((line) => line.trim())\n .find((line) => line.startsWith('RRULE:'));\n\n return rruleLine ? rruleLine.replace(/^RRULE:/, '') : normalized;\n}\n\nfunction getOccurrenceStartsInRange(\n event: ScheduleEventData,\n rangeStart: dayjs.Dayjs,\n rangeEnd: dayjs.Dayjs,\n expansionLimit: number,\n durationMs: number\n) {\n const dtstart = dayjs(event.recurrence?.dtstart || event.start);\n if (!dtstart.isValid() || !event.recurrence) {\n return [];\n }\n\n try {\n const options = RRule.parseString(getRRuleString(event.recurrence.rrule));\n options.dtstart = dtstart.toDate();\n const rule = new RRule(options);\n\n const searchStart = rangeStart.subtract(Math.max(0, durationMs), 'millisecond').toDate();\n const results = rule.between(searchStart, rangeEnd.toDate(), true);\n return results.slice(0, expansionLimit).map((value) => dayjs(value));\n } catch {\n return [];\n }\n}\n\nfunction isEventInRange(event: ScheduleEventData, rangeStart: dayjs.Dayjs, rangeEnd: dayjs.Dayjs) {\n const start = dayjs(event.start);\n const end = dayjs(event.end);\n\n if (!start.isValid() || !end.isValid()) {\n return false;\n }\n\n return overlapsRange(start, end, rangeStart, rangeEnd);\n}\n\nfunction createGeneratedInstance(\n event: ScheduleEventData,\n occurrenceStart: dayjs.Dayjs,\n durationMs: number\n): ScheduleEventData {\n const occurrenceEnd = occurrenceStart.add(durationMs, 'millisecond');\n const recurrenceId = occurrenceStart.format('YYYY-MM-DD HH:mm:ss');\n const { recurrence, ...eventWithoutRecurrence } = event;\n\n return {\n ...eventWithoutRecurrence,\n id: `${event.id}::${recurrenceId}`,\n start: occurrenceStart.format('YYYY-MM-DD HH:mm:ss'),\n end: occurrenceEnd.format('YYYY-MM-DD HH:mm:ss'),\n recurringEventId: event.id,\n recurrenceId,\n recurringInstance: {\n isRecurringInstance: true,\n recurringEventId: event.id,\n recurrenceId,\n originalStart: occurrenceStart.format('YYYY-MM-DD HH:mm:ss'),\n originalEnd: occurrenceEnd.format('YYYY-MM-DD HH:mm:ss'),\n },\n };\n}\n\nconst DEFAULT_EXPANSION_LIMIT = 2000;\n\nexport function expandRecurringEvents({\n events,\n rangeStart,\n rangeEnd,\n expansionLimit = DEFAULT_EXPANSION_LIMIT,\n}: ExpandRecurringEventsInput): ScheduleEventData[] {\n if (!events || events.length === 0) {\n return [];\n }\n\n const start = dayjs(rangeStart);\n const end = dayjs(rangeEnd);\n\n if (!start.isValid() || !end.isValid()) {\n return [];\n }\n\n const regularEvents: ScheduleEventData[] = [];\n const recurringEvents: ScheduleEventData[] = [];\n const overrides = new Map<string, ScheduleEventData>();\n\n for (const event of events) {\n if (event.recurringEventId && event.recurrenceId) {\n overrides.set(getRecurrenceKey(event.recurringEventId, event.recurrenceId), event);\n continue;\n }\n\n if (event.recurrence?.rrule) {\n recurringEvents.push(event);\n continue;\n }\n\n regularEvents.push(event);\n }\n\n const output: ScheduleEventData[] = [];\n const consumedOverrideIds = new Set<string | number>();\n\n for (const event of regularEvents) {\n if (isEventInRange(event, start, end)) {\n output.push(validateEvent(event));\n }\n }\n\n for (const event of recurringEvents) {\n const eventStart = dayjs(event.recurrence?.dtstart || event.start);\n const eventEnd = dayjs(event.end);\n\n if (!eventStart.isValid() || !eventEnd.isValid()) {\n continue;\n }\n\n const durationMs = eventEnd.diff(dayjs(event.start), 'millisecond');\n if (durationMs < 0) {\n continue;\n }\n\n const exdate = getExdateSet(event.recurrence);\n const starts = getOccurrenceStartsInRange(event, start, end, expansionLimit, durationMs);\n\n for (const occurrenceStart of starts) {\n const recurrenceId = occurrenceStart.format('YYYY-MM-DD HH:mm:ss');\n if (exdate.has(recurrenceId)) {\n continue;\n }\n\n const overrideKey = getRecurrenceKey(event.id, recurrenceId);\n const override = overrides.get(overrideKey);\n if (override) {\n if (isEventInRange(override, start, end)) {\n output.push(validateEvent(override));\n consumedOverrideIds.add(override.id);\n }\n continue;\n }\n\n const generated = createGeneratedInstance(event, occurrenceStart, durationMs);\n if (overlapsRange(dayjs(generated.start), dayjs(generated.end), start, end)) {\n output.push(validateEvent(generated));\n }\n }\n }\n\n for (const override of overrides.values()) {\n if (consumedOverrideIds.has(override.id)) {\n continue;\n }\n if (isEventInRange(override, start, end)) {\n output.push(validateEvent(override));\n }\n }\n\n return output;\n}\n\nexport { DEFAULT_EXPANSION_LIMIT };\n"],"mappings":"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"}
@@ -1,18 +1,13 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var dayjs = require('dayjs');
5
-
6
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
-
8
- var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
9
-
1
+ "use client";
2
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
3
+ let dayjs = require("dayjs");
4
+ dayjs = require_runtime.__toESM(dayjs);
5
+ //#region packages/@mantine/schedule/src/utils/format-date/format-date.ts
10
6
  function formatDate({ locale, date, format }) {
11
- if (typeof format === "function") {
12
- return format(dayjs__default.default(date).format("YYYY-MM-DD HH:mm:ss"));
13
- }
14
- return dayjs__default.default(date).locale(locale).format(format);
7
+ if (typeof format === "function") return format((0, dayjs.default)(date).format("YYYY-MM-DD HH:mm:ss"));
8
+ return (0, dayjs.default)(date).locale(locale).format(format);
15
9
  }
16
-
10
+ //#endregion
17
11
  exports.formatDate = formatDate;
18
- //# sourceMappingURL=format-date.cjs.map
12
+
13
+ //# sourceMappingURL=format-date.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"format-date.cjs","sources":["../../../src/utils/format-date/format-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DateLabelFormat } from '../../types';\n\nexport interface FormatDateInput {\n locale: string;\n date: string | Date | dayjs.Dayjs;\n format: DateLabelFormat;\n}\n\nexport function formatDate({ locale, date, format }: FormatDateInput) {\n if (typeof format === 'function') {\n return format(dayjs(date).format('YYYY-MM-DD HH:mm:ss'));\n }\n\n return dayjs(date).locale(locale).format(format);\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;AASO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,GAAO,CAAA,CAAoB,CAAA;AACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,MAAW,UAAA,CAAA,CAAY,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,EAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAC,CAAA,CAAA;AAAA,CAAA,CACzD,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAM,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,MAAM,CAAA,CAAA;AACjD,CAAA;;"}
1
+ {"version":3,"file":"format-date.cjs","names":[],"sources":["../../../src/utils/format-date/format-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DateLabelFormat } from '../../types';\n\nexport interface FormatDateInput {\n locale: string;\n date: string | Date | dayjs.Dayjs;\n format: DateLabelFormat;\n}\n\nexport function formatDate({ locale, date, format }: FormatDateInput) {\n if (typeof format === 'function') {\n return format(dayjs(date).format('YYYY-MM-DD HH:mm:ss'));\n }\n\n return dayjs(date).locale(locale).format(format);\n}\n"],"mappings":";;;;;AASA,SAAgB,WAAW,EAAE,QAAQ,MAAM,UAA2B;AACpE,KAAI,OAAO,WAAW,WACpB,QAAO,QAAA,GAAA,MAAA,SAAa,KAAK,CAAC,OAAO,sBAAsB,CAAC;AAG1D,SAAA,GAAA,MAAA,SAAa,KAAK,CAAC,OAAO,OAAO,CAAC,OAAO,OAAO"}
@@ -1,24 +1,25 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- function getBusinessHoursMod({
5
- time,
6
- businessHours,
7
- highlightBusinessHours
8
- }) {
9
- if (!highlightBusinessHours || !businessHours) {
10
- return {
11
- "business-hours": false,
12
- "non-business-hours": false
13
- };
14
- }
15
- const [start, end] = businessHours;
16
- const isInBusinessHours = time >= start && time < end;
17
- return {
18
- "business-hours": isInBusinessHours,
19
- "non-business-hours": !isInBusinessHours
20
- };
1
+ "use client";
2
+ //#region packages/@mantine/schedule/src/utils/get-business-hours-mod/get-business-hours-mod.ts
3
+ /**
4
+ * Determines if a given time is within business hours and returns modifier object
5
+ * @param time - Time string in HH:mm:ss format
6
+ * @param businessHours - Tuple of [start, end] times in HH:mm:ss format
7
+ * @param highlightBusinessHours - Whether to highlight business hours
8
+ * @returns Modifier object for styling business/non-business hours
9
+ */
10
+ function getBusinessHoursMod({ time, businessHours, highlightBusinessHours }) {
11
+ if (!highlightBusinessHours || !businessHours) return {
12
+ "business-hours": false,
13
+ "non-business-hours": false
14
+ };
15
+ const [start, end] = businessHours;
16
+ const isInBusinessHours = time >= start && time < end;
17
+ return {
18
+ "business-hours": isInBusinessHours,
19
+ "non-business-hours": !isInBusinessHours
20
+ };
21
21
  }
22
-
22
+ //#endregion
23
23
  exports.getBusinessHoursMod = getBusinessHoursMod;
24
- //# sourceMappingURL=get-business-hours-mod.cjs.map
24
+
25
+ //# sourceMappingURL=get-business-hours-mod.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-business-hours-mod.cjs","sources":["../../../src/utils/get-business-hours-mod/get-business-hours-mod.ts"],"sourcesContent":["export interface GetBusinessHoursModInput {\n time: string;\n businessHours?: [string, string];\n highlightBusinessHours?: boolean;\n}\n\nexport interface BusinessHoursMod {\n 'business-hours': boolean;\n 'non-business-hours': boolean;\n}\n\n/**\n * Determines if a given time is within business hours and returns modifier object\n * @param time - Time string in HH:mm:ss format\n * @param businessHours - Tuple of [start, end] times in HH:mm:ss format\n * @param highlightBusinessHours - Whether to highlight business hours\n * @returns Modifier object for styling business/non-business hours\n */\nexport function getBusinessHoursMod({\n time,\n businessHours,\n highlightBusinessHours,\n}: GetBusinessHoursModInput): BusinessHoursMod {\n if (!highlightBusinessHours || !businessHours) {\n return {\n 'business-hours': false,\n 'non-business-hours': false,\n };\n }\n\n const [start, end] = businessHours;\n const isInBusinessHours = time >= start && time < end;\n\n return {\n 'business-hours': isInBusinessHours,\n 'non-business-hours': !isInBusinessHours,\n };\n}\n"],"names":[],"mappings":";;;AAkBO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,mBAAA,CAAoB,CAAA;AAAA,CAAA,CAClC,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAA+C,CAAA;AAC7C,CAAA,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAC,aAAA,CAAA,CAAe,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClB,oBAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CACxB,CAAA;AAAA,CAAA,CACF,CAAA;AAEA,CAAA,CAAA,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAG,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,iBAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA;AAElD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAsB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CACzB,CAAA;AACF,CAAA;;"}
1
+ {"version":3,"file":"get-business-hours-mod.cjs","names":[],"sources":["../../../src/utils/get-business-hours-mod/get-business-hours-mod.ts"],"sourcesContent":["export interface GetBusinessHoursModInput {\n time: string;\n businessHours?: [string, string];\n highlightBusinessHours?: boolean;\n}\n\nexport interface BusinessHoursMod {\n 'business-hours': boolean;\n 'non-business-hours': boolean;\n}\n\n/**\n * Determines if a given time is within business hours and returns modifier object\n * @param time - Time string in HH:mm:ss format\n * @param businessHours - Tuple of [start, end] times in HH:mm:ss format\n * @param highlightBusinessHours - Whether to highlight business hours\n * @returns Modifier object for styling business/non-business hours\n */\nexport function getBusinessHoursMod({\n time,\n businessHours,\n highlightBusinessHours,\n}: GetBusinessHoursModInput): BusinessHoursMod {\n if (!highlightBusinessHours || !businessHours) {\n return {\n 'business-hours': false,\n 'non-business-hours': false,\n };\n }\n\n const [start, end] = businessHours;\n const isInBusinessHours = time >= start && time < end;\n\n return {\n 'business-hours': isInBusinessHours,\n 'non-business-hours': !isInBusinessHours,\n };\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAgB,oBAAoB,EAClC,MACA,eACA,0BAC6C;AAC7C,KAAI,CAAC,0BAA0B,CAAC,cAC9B,QAAO;EACL,kBAAkB;EAClB,sBAAsB;EACvB;CAGH,MAAM,CAAC,OAAO,OAAO;CACrB,MAAM,oBAAoB,QAAQ,SAAS,OAAO;AAElD,QAAO;EACL,kBAAkB;EAClB,sBAAsB,CAAC;EACxB"}
@@ -1,28 +1,22 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var dayjs = require('dayjs');
5
-
6
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
-
8
- var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
9
-
1
+ "use client";
2
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
3
+ let dayjs = require("dayjs");
4
+ dayjs = require_runtime.__toESM(dayjs);
5
+ //#region packages/@mantine/schedule/src/utils/get-current-time-position/get-current-time-position.ts
10
6
  function getCurrentTimePosition(input) {
11
- const now = dayjs__default.default();
12
- if (!input?.startTime || !input?.endTime) {
13
- const startOf = dayjs__default.default().startOf("date");
14
- const diffInMinutes = now.diff(startOf, "minute");
15
- return diffInMinutes / 1440 * 100;
16
- }
17
- const [startHour, startMinute] = input.startTime.split(":").map(Number);
18
- const [endHour, endMinute] = input.endTime.split(":").map(Number);
19
- const startOfDay = now.startOf("date");
20
- const startDateTime = startOfDay.hour(startHour).minute(startMinute).second(0);
21
- const endDateTime = startOfDay.hour(endHour).minute(endMinute).second(0);
22
- const totalMinutes = endDateTime.diff(startDateTime, "minute");
23
- const currentMinutes = now.diff(startDateTime, "minute");
24
- return currentMinutes / totalMinutes * 100;
7
+ const now = (0, dayjs.default)();
8
+ if (!input?.startTime || !input?.endTime) {
9
+ const startOf = (0, dayjs.default)().startOf("date");
10
+ return now.diff(startOf, "minute") / 1440 * 100;
11
+ }
12
+ const [startHour, startMinute] = input.startTime.split(":").map(Number);
13
+ const [endHour, endMinute] = input.endTime.split(":").map(Number);
14
+ const startOfDay = now.startOf("date");
15
+ const startDateTime = startOfDay.hour(startHour).minute(startMinute).second(0);
16
+ const totalMinutes = startOfDay.hour(endHour).minute(endMinute).second(0).diff(startDateTime, "minute");
17
+ return now.diff(startDateTime, "minute") / totalMinutes * 100;
25
18
  }
26
-
19
+ //#endregion
27
20
  exports.getCurrentTimePosition = getCurrentTimePosition;
28
- //# sourceMappingURL=get-current-time-position.cjs.map
21
+
22
+ //# sourceMappingURL=get-current-time-position.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-current-time-position.cjs","sources":["../../../src/utils/get-current-time-position/get-current-time-position.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\ninterface GetCurrentTimePositionInput {\n startTime?: string;\n endTime?: string;\n}\n\nexport function getCurrentTimePosition(input?: GetCurrentTimePositionInput) {\n const now = dayjs();\n\n if (!input?.startTime || !input?.endTime) {\n const startOf = dayjs().startOf('date');\n const diffInMinutes = now.diff(startOf, 'minute');\n return (diffInMinutes / 1440) * 100;\n }\n\n const [startHour, startMinute] = input.startTime.split(':').map(Number);\n const [endHour, endMinute] = input.endTime.split(':').map(Number);\n\n const startOfDay = now.startOf('date');\n const startDateTime = startOfDay.hour(startHour).minute(startMinute).second(0);\n const endDateTime = startOfDay.hour(endHour).minute(endMinute).second(0);\n\n const totalMinutes = endDateTime.diff(startDateTime, 'minute');\n const currentMinutes = now.diff(startDateTime, 'minute');\n\n return (currentMinutes / totalMinutes) * 100;\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;AAOO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqC,CAAA;AAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,IAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAM,CAAA;AAElB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAa,CAAC,CAAA,CAAA,CAAA,CAAA,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAA,CAAA,CAAA,CAAUA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,EAAM,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAI,IAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAgB,CAAA,CAAA,CAAA,CAAA,GAAQ,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAClC,CAAA;AAEA,CAAA,CAAA,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,UAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAA;AACtE,CAAA,CAAA,MAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA,CAAA,CAAA,CAAI,MAAM,CAAA,CAAA;AAEhE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,UAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,MAAM,CAAA,CAAA;AACrC,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,WAAW,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA;AAC7E,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,WAAW,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA,CAAA;AAEvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,IAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAI,IAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA;AAEvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAgB,CAAA,CAAA,CAAA,CAAA;AAC3C,CAAA;;"}
1
+ {"version":3,"file":"get-current-time-position.cjs","names":[],"sources":["../../../src/utils/get-current-time-position/get-current-time-position.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\ninterface GetCurrentTimePositionInput {\n startTime?: string;\n endTime?: string;\n}\n\nexport function getCurrentTimePosition(input?: GetCurrentTimePositionInput) {\n const now = dayjs();\n\n if (!input?.startTime || !input?.endTime) {\n const startOf = dayjs().startOf('date');\n const diffInMinutes = now.diff(startOf, 'minute');\n return (diffInMinutes / 1440) * 100;\n }\n\n const [startHour, startMinute] = input.startTime.split(':').map(Number);\n const [endHour, endMinute] = input.endTime.split(':').map(Number);\n\n const startOfDay = now.startOf('date');\n const startDateTime = startOfDay.hour(startHour).minute(startMinute).second(0);\n const endDateTime = startOfDay.hour(endHour).minute(endMinute).second(0);\n\n const totalMinutes = endDateTime.diff(startDateTime, 'minute');\n const currentMinutes = now.diff(startDateTime, 'minute');\n\n return (currentMinutes / totalMinutes) * 100;\n}\n"],"mappings":";;;;;AAOA,SAAgB,uBAAuB,OAAqC;CAC1E,MAAM,OAAA,GAAA,MAAA,UAAa;AAEnB,KAAI,CAAC,OAAO,aAAa,CAAC,OAAO,SAAS;EACxC,MAAM,WAAA,GAAA,MAAA,UAAiB,CAAC,QAAQ,OAAO;AAEvC,SADsB,IAAI,KAAK,SAAS,SAAS,GACzB,OAAQ;;CAGlC,MAAM,CAAC,WAAW,eAAe,MAAM,UAAU,MAAM,IAAI,CAAC,IAAI,OAAO;CACvE,MAAM,CAAC,SAAS,aAAa,MAAM,QAAQ,MAAM,IAAI,CAAC,IAAI,OAAO;CAEjE,MAAM,aAAa,IAAI,QAAQ,OAAO;CACtC,MAAM,gBAAgB,WAAW,KAAK,UAAU,CAAC,OAAO,YAAY,CAAC,OAAO,EAAE;CAG9E,MAAM,eAFc,WAAW,KAAK,QAAQ,CAAC,OAAO,UAAU,CAAC,OAAO,EAAE,CAEvC,KAAK,eAAe,SAAS;AAG9D,QAFuB,IAAI,KAAK,eAAe,SAAS,GAE/B,eAAgB"}
@@ -1,37 +1,28 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var dayjs = require('dayjs');
5
- var parseTimeString = require('../parse-time-string/parse-time-string.cjs');
6
-
7
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
-
9
- var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
10
-
11
- function getDayPosition({
12
- event,
13
- startTime = "00:00:00",
14
- endTime = "23:59:59"
15
- }) {
16
- const eventStart = dayjs__default.default(event.start);
17
- const eventEnd = dayjs__default.default(event.end);
18
- const parsedStartTime = parseTimeString.parseTimeString(startTime);
19
- const parsedEndTime = parseTimeString.parseTimeString(endTime);
20
- const startOfDay = eventStart.startOf("date");
21
- const boundaryStart = startOfDay.hour(parsedStartTime.hours).minute(parsedStartTime.minutes).second(0);
22
- const boundaryEnd = startOfDay.hour(parsedEndTime.hours).minute(parsedEndTime.minutes).second(0);
23
- const totalMinutes = boundaryEnd.diff(boundaryStart, "minute");
24
- const clippedEventStart = eventStart.isBefore(boundaryStart) ? boundaryStart : eventStart;
25
- const eventStartMinutes = clippedEventStart.diff(boundaryStart, "minute");
26
- const clippedEventEnd = eventEnd.isAfter(boundaryEnd) ? boundaryEnd : eventEnd;
27
- const eventEndMinutes = clippedEventEnd.diff(boundaryStart, "minute");
28
- const startPercent = eventStartMinutes / totalMinutes * 100;
29
- const endPercent = eventEndMinutes / totalMinutes * 100;
30
- return {
31
- top: startPercent,
32
- height: endPercent - startPercent
33
- };
1
+ "use client";
2
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
3
+ const require_parse_time_string = require("../parse-time-string/parse-time-string.cjs");
4
+ let dayjs = require("dayjs");
5
+ dayjs = require_runtime.__toESM(dayjs);
6
+ //#region packages/@mantine/schedule/src/utils/get-day-position/get-day-position.ts
7
+ /** Calculates day position within given start and end time boundaries. Returns top and height in percentages. */
8
+ function getDayPosition({ event, startTime = "00:00:00", endTime = "23:59:59" }) {
9
+ const eventStart = (0, dayjs.default)(event.start);
10
+ const eventEnd = (0, dayjs.default)(event.end);
11
+ const parsedStartTime = require_parse_time_string.parseTimeString(startTime);
12
+ const parsedEndTime = require_parse_time_string.parseTimeString(endTime);
13
+ const startOfDay = eventStart.startOf("date");
14
+ const boundaryStart = startOfDay.hour(parsedStartTime.hours).minute(parsedStartTime.minutes).second(0);
15
+ const boundaryEnd = startOfDay.hour(parsedEndTime.hours).minute(parsedEndTime.minutes).second(0);
16
+ const totalMinutes = boundaryEnd.diff(boundaryStart, "minute");
17
+ const eventStartMinutes = (eventStart.isBefore(boundaryStart) ? boundaryStart : eventStart).diff(boundaryStart, "minute");
18
+ const eventEndMinutes = (eventEnd.isAfter(boundaryEnd) ? boundaryEnd : eventEnd).diff(boundaryStart, "minute");
19
+ const startPercent = eventStartMinutes / totalMinutes * 100;
20
+ return {
21
+ top: startPercent,
22
+ height: eventEndMinutes / totalMinutes * 100 - startPercent
23
+ };
34
24
  }
35
-
25
+ //#endregion
36
26
  exports.getDayPosition = getDayPosition;
37
- //# sourceMappingURL=get-day-position.cjs.map
27
+
28
+ //# sourceMappingURL=get-day-position.cjs.map