@mantine/schedule 9.0.0-alpha.4 → 9.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
- package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs +79 -101
- package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs.map +1 -1
- package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.cjs +12 -0
- package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.cjs.map +1 -0
- package/cjs/components/DayView/DayView.cjs +462 -480
- package/cjs/components/DayView/DayView.cjs.map +1 -1
- package/cjs/components/DayView/DayView.module.cjs +20 -0
- package/cjs/components/DayView/DayView.module.cjs.map +1 -0
- package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs +89 -105
- package/cjs/components/DayView/get-day-view-events/get-day-positioned-events.cjs.map +1 -1
- package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs +106 -49
- package/cjs/components/DayView/get-day-view-events/get-day-view-events.cjs.map +1 -1
- package/cjs/components/DragContext/DragContext.cjs +7 -8
- package/cjs/components/DragContext/DragContext.cjs.map +1 -1
- package/cjs/components/MobileMonthView/MobileMonthView.cjs +261 -289
- package/cjs/components/MobileMonthView/MobileMonthView.cjs.map +1 -1
- package/cjs/components/MobileMonthView/MobileMonthView.module.cjs +27 -0
- package/cjs/components/MobileMonthView/MobileMonthView.module.cjs.map +1 -0
- package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs +35 -49
- package/cjs/components/MobileMonthView/get-mobile-month-view-events.cjs.map +1 -1
- package/cjs/components/MonthView/MonthView.cjs +365 -416
- package/cjs/components/MonthView/MonthView.cjs.map +1 -1
- package/cjs/components/MonthView/MonthView.module.cjs +18 -0
- package/cjs/components/MonthView/MonthView.module.cjs.map +1 -0
- package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs +15 -24
- package/cjs/components/MonthView/get-month-view-events/add-event-to-day-groups.cjs.map +1 -1
- package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs +23 -35
- package/cjs/components/MonthView/get-month-view-events/calculate-event-position-in-week.cjs.map +1 -1
- package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs +16 -29
- package/cjs/components/MonthView/get-month-view-events/find-available-row.cjs.map +1 -1
- package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs +87 -81
- package/cjs/components/MonthView/get-month-view-events/get-month-positioned-events.cjs.map +1 -1
- package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs +36 -44
- package/cjs/components/MonthView/get-month-view-events/get-month-view-events.cjs.map +1 -1
- package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs +30 -38
- package/cjs/components/MonthView/get-month-view-events/get-weeks-in-range.cjs.map +1 -1
- package/cjs/components/MonthView/handle-month-view-key-down.cjs +94 -139
- package/cjs/components/MonthView/handle-month-view-key-down.cjs.map +1 -1
- package/cjs/components/MoreEvents/MoreEvents.cjs +87 -121
- package/cjs/components/MoreEvents/MoreEvents.cjs.map +1 -1
- package/cjs/components/MoreEvents/MoreEvents.module.cjs +11 -0
- package/cjs/components/MoreEvents/MoreEvents.module.cjs.map +1 -0
- package/cjs/components/Schedule/Schedule.cjs +147 -165
- package/cjs/components/Schedule/Schedule.cjs.map +1 -1
- package/cjs/components/Schedule/Schedule.module.cjs +11 -0
- package/cjs/components/Schedule/Schedule.module.cjs.map +1 -0
- package/cjs/components/ScheduleEvent/ScheduleEvent.cjs +116 -130
- package/cjs/components/ScheduleEvent/ScheduleEvent.cjs.map +1 -1
- package/cjs/components/ScheduleEvent/ScheduleEvent.module.cjs +11 -0
- package/cjs/components/ScheduleEvent/ScheduleEvent.module.cjs.map +1 -0
- package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs +62 -73
- package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.cjs.map +1 -1
- package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.cjs +7 -0
- package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.cjs.map +1 -0
- package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs +152 -189
- package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.cjs.map +1 -1
- package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.cjs +13 -0
- package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.cjs.map +1 -0
- package/cjs/components/ScheduleHeader/ScheduleHeader.cjs +41 -55
- package/cjs/components/ScheduleHeader/ScheduleHeader.cjs.map +1 -1
- package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs +13 -0
- package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs.map +1 -0
- package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs +83 -84
- package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs.map +1 -1
- package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs +105 -126
- package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.cjs.map +1 -1
- package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.cjs +7 -0
- package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.cjs.map +1 -0
- package/cjs/components/WeekView/WeekView.cjs +617 -632
- package/cjs/components/WeekView/WeekView.cjs.map +1 -1
- package/cjs/components/WeekView/WeekView.module.cjs +29 -0
- package/cjs/components/WeekView/WeekView.module.cjs.map +1 -0
- package/cjs/components/WeekView/WeekViewDay.cjs +71 -106
- package/cjs/components/WeekView/WeekViewDay.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-label/get-week-label.cjs +27 -34
- package/cjs/components/WeekView/get-week-label/get-week-label.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs +21 -28
- package/cjs/components/WeekView/get-week-view-events/assign-event-rows.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs +13 -29
- package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-offset.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs +14 -31
- package/cjs/components/WeekView/get-week-view-events/calculate-all-day-event-width.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs +13 -16
- package/cjs/components/WeekView/get-week-view-events/calculate-event-days.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs +14 -21
- package/cjs/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs +26 -34
- package/cjs/components/WeekView/get-week-view-events/filter-week-view-events.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs +26 -38
- package/cjs/components/WeekView/get-week-view-events/find-available-column.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs +11 -16
- package/cjs/components/WeekView/get-week-view-events/get-event-end-date.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs +17 -30
- package/cjs/components/WeekView/get-week-view-events/get-hanging-status.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs +200 -140
- package/cjs/components/WeekView/get-week-view-events/get-week-positioned-events.cjs.map +1 -1
- package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs +11 -9
- package/cjs/components/WeekView/get-week-view-events/get-week-view-events.cjs.map +1 -1
- package/cjs/components/WeekView/handle-week-view-key-down.cjs +82 -127
- package/cjs/components/WeekView/handle-week-view-key-down.cjs.map +1 -1
- package/cjs/components/YearView/YearView.cjs +160 -210
- package/cjs/components/YearView/YearView.cjs.map +1 -1
- package/cjs/components/YearView/YearView.module.cjs +20 -0
- package/cjs/components/YearView/YearView.module.cjs.map +1 -0
- package/cjs/components/YearView/YearViewMonth.cjs +135 -156
- package/cjs/components/YearView/YearViewMonth.cjs.map +1 -1
- package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs +32 -47
- package/cjs/components/YearView/get-year-view-events/get-year-view-events.cjs.map +1 -1
- package/cjs/components/YearView/handle-year-view-key-down.cjs +143 -202
- package/cjs/components/YearView/handle-year-view-key-down.cjs.map +1 -1
- package/cjs/hooks/use-auto-scroll-on-drag.cjs +67 -70
- package/cjs/hooks/use-auto-scroll-on-drag.cjs.map +1 -1
- package/cjs/hooks/use-drag-drop-handlers.cjs +110 -126
- package/cjs/hooks/use-drag-drop-handlers.cjs.map +1 -1
- package/cjs/hooks/use-drag-state.cjs +38 -42
- package/cjs/hooks/use-drag-state.cjs.map +1 -1
- package/cjs/hooks/use-event-resize.cjs +134 -0
- package/cjs/hooks/use-event-resize.cjs.map +1 -0
- package/cjs/hooks/use-slot-drag-select.cjs +75 -88
- package/cjs/hooks/use-slot-drag-select.cjs.map +1 -1
- package/cjs/index.cjs +98 -101
- package/cjs/labels.cjs +30 -28
- package/cjs/labels.cjs.map +1 -1
- package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs +23 -36
- package/cjs/utils/calculate-drop-time/calculate-drop-time.cjs.map +1 -1
- package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs +17 -24
- package/cjs/utils/calculate-month-drop-date/calculate-month-drop-date.cjs.map +1 -1
- package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs +9 -8
- package/cjs/utils/clamp-interval-minutes/clamp-interval-minutes.cjs.map +1 -1
- package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs +120 -0
- package/cjs/utils/expand-recurring-events/expand-recurring-events.cjs.map +1 -0
- package/cjs/utils/format-date/format-date.cjs +10 -15
- package/cjs/utils/format-date/format-date.cjs.map +1 -1
- package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs +23 -22
- package/cjs/utils/get-business-hours-mod/get-business-hours-mod.cjs.map +1 -1
- package/cjs/utils/get-current-time-position/get-current-time-position.cjs +19 -25
- package/cjs/utils/get-current-time-position/get-current-time-position.cjs.map +1 -1
- package/cjs/utils/get-day-position/get-day-position.cjs +26 -35
- package/cjs/utils/get-day-position/get-day-position.cjs.map +1 -1
- package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs +50 -45
- package/cjs/utils/get-day-time-intervals/get-day-time-intervals.cjs.map +1 -1
- package/cjs/utils/get-end-of-week/get-end-of-week.cjs +13 -20
- package/cjs/utils/get-end-of-week/get-end-of-week.cjs.map +1 -1
- package/cjs/utils/get-month-days/get-month-days.cjs +41 -47
- package/cjs/utils/get-month-days/get-month-days.cjs.map +1 -1
- package/cjs/utils/get-month-range/get-month-range.cjs +25 -30
- package/cjs/utils/get-month-range/get-month-range.cjs.map +1 -1
- package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs +21 -21
- package/cjs/utils/get-months-by-quarter/get-months-by-quarter.cjs.map +1 -1
- package/cjs/utils/get-months-list/get-months-list.cjs +20 -18
- package/cjs/utils/get-months-list/get-months-list.cjs.map +1 -1
- package/cjs/utils/get-start-of-week/get-start-of-week.cjs +11 -16
- package/cjs/utils/get-start-of-week/get-start-of-week.cjs.map +1 -1
- package/cjs/utils/get-visible-events/get-visible-events.cjs +13 -15
- package/cjs/utils/get-visible-events/get-visible-events.cjs.map +1 -1
- package/cjs/utils/get-week-days/get-week-days.cjs +23 -30
- package/cjs/utils/get-week-days/get-week-days.cjs.map +1 -1
- package/cjs/utils/get-week-number/get-week-number.cjs +13 -19
- package/cjs/utils/get-week-number/get-week-number.cjs.map +1 -1
- package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs +18 -23
- package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
- package/cjs/utils/get-years-list/get-years-list.cjs +8 -10
- package/cjs/utils/get-years-list/get-years-list.cjs.map +1 -1
- package/cjs/utils/is-after-min-date/is-after-min-date.cjs +9 -12
- package/cjs/utils/is-after-min-date/is-after-min-date.cjs.map +1 -1
- package/cjs/utils/is-all-day-event/is-all-day-event.cjs +13 -16
- package/cjs/utils/is-all-day-event/is-all-day-event.cjs.map +1 -1
- package/cjs/utils/is-before-max-date/is-before-max-date.cjs +9 -12
- package/cjs/utils/is-before-max-date/is-before-max-date.cjs.map +1 -1
- package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs +19 -27
- package/cjs/utils/is-event-in-time-range/is-event-in-time-range.cjs.map +1 -1
- package/cjs/utils/is-events-overlap/is-events-overlap.cjs +13 -16
- package/cjs/utils/is-events-overlap/is-events-overlap.cjs.map +1 -1
- package/cjs/utils/is-in-time-range/is-in-time-range.cjs +17 -23
- package/cjs/utils/is-in-time-range/is-in-time-range.cjs.map +1 -1
- package/cjs/utils/is-multiday-event/is-multiday-event.cjs +10 -14
- package/cjs/utils/is-multiday-event/is-multiday-event.cjs.map +1 -1
- package/cjs/utils/is-same-month/is-same-month.cjs +9 -12
- package/cjs/utils/is-same-month/is-same-month.cjs.map +1 -1
- package/cjs/utils/is-within-week/is-within-week.cjs +15 -15
- package/cjs/utils/is-within-week/is-within-week.cjs.map +1 -1
- package/cjs/utils/next-week/next-week.cjs +15 -15
- package/cjs/utils/next-week/next-week.cjs.map +1 -1
- package/cjs/utils/parse-time-string/parse-time-string.cjs +11 -7
- package/cjs/utils/parse-time-string/parse-time-string.cjs.map +1 -1
- package/cjs/utils/previous-week/previous-week.cjs +15 -15
- package/cjs/utils/previous-week/previous-week.cjs.map +1 -1
- package/cjs/utils/sort-events/sort-events.cjs +14 -18
- package/cjs/utils/sort-events/sort-events.cjs.map +1 -1
- package/cjs/utils/to-date-string/to-date-string.cjs +9 -12
- package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -1
- package/cjs/utils/to-time-string/to-time-string.cjs +6 -6
- package/cjs/utils/to-time-string/to-time-string.cjs.map +1 -1
- package/cjs/utils/validate-event/validate-event.cjs +12 -23
- package/cjs/utils/validate-event/validate-event.cjs.map +1 -1
- package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs +76 -94
- package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -1
- package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.mjs +12 -0
- package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.mjs.map +1 -0
- package/esm/components/DayView/DayView.mjs +459 -473
- package/esm/components/DayView/DayView.mjs.map +1 -1
- package/esm/components/DayView/DayView.module.mjs +20 -0
- package/esm/components/DayView/DayView.module.mjs.map +1 -0
- package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs +89 -103
- package/esm/components/DayView/get-day-view-events/get-day-positioned-events.mjs.map +1 -1
- package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs +104 -43
- package/esm/components/DayView/get-day-view-events/get-day-view-events.mjs.map +1 -1
- package/esm/components/DragContext/DragContext.mjs +6 -5
- package/esm/components/DragContext/DragContext.mjs.map +1 -1
- package/esm/components/MobileMonthView/MobileMonthView.mjs +257 -281
- package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -1
- package/esm/components/MobileMonthView/MobileMonthView.module.mjs +27 -0
- package/esm/components/MobileMonthView/MobileMonthView.module.mjs.map +1 -0
- package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs +33 -43
- package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs.map +1 -1
- package/esm/components/MonthView/MonthView.mjs +362 -409
- package/esm/components/MonthView/MonthView.mjs.map +1 -1
- package/esm/components/MonthView/MonthView.module.mjs +18 -0
- package/esm/components/MonthView/MonthView.module.mjs.map +1 -0
- package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs +15 -22
- package/esm/components/MonthView/get-month-view-events/add-event-to-day-groups.mjs.map +1 -1
- package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs +23 -33
- package/esm/components/MonthView/get-month-view-events/calculate-event-position-in-week.mjs.map +1 -1
- package/esm/components/MonthView/get-month-view-events/find-available-row.mjs +14 -23
- package/esm/components/MonthView/get-month-view-events/find-available-row.mjs.map +1 -1
- package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs +85 -75
- package/esm/components/MonthView/get-month-view-events/get-month-positioned-events.mjs.map +1 -1
- package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs +34 -38
- package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs.map +1 -1
- package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs +28 -32
- package/esm/components/MonthView/get-month-view-events/get-weeks-in-range.mjs.map +1 -1
- package/esm/components/MonthView/handle-month-view-key-down.mjs +94 -137
- package/esm/components/MonthView/handle-month-view-key-down.mjs.map +1 -1
- package/esm/components/MoreEvents/MoreEvents.mjs +85 -118
- package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -1
- package/esm/components/MoreEvents/MoreEvents.module.mjs +11 -0
- package/esm/components/MoreEvents/MoreEvents.module.mjs.map +1 -0
- package/esm/components/Schedule/Schedule.mjs +145 -162
- package/esm/components/Schedule/Schedule.mjs.map +1 -1
- package/esm/components/Schedule/Schedule.module.mjs +11 -0
- package/esm/components/Schedule/Schedule.module.mjs.map +1 -0
- package/esm/components/ScheduleEvent/ScheduleEvent.mjs +114 -127
- package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -1
- package/esm/components/ScheduleEvent/ScheduleEvent.module.mjs +11 -0
- package/esm/components/ScheduleEvent/ScheduleEvent.module.mjs.map +1 -0
- package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs +60 -70
- package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.mjs.map +1 -1
- package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.mjs +7 -0
- package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.mjs.map +1 -0
- package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs +150 -186
- package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.mjs.map +1 -1
- package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.mjs +13 -0
- package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.mjs.map +1 -0
- package/esm/components/ScheduleHeader/ScheduleHeader.mjs +33 -46
- package/esm/components/ScheduleHeader/ScheduleHeader.mjs.map +1 -1
- package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs +13 -0
- package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs.map +1 -0
- package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs +82 -82
- package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs.map +1 -1
- package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs +103 -123
- package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.mjs.map +1 -1
- package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.mjs +7 -0
- package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.mjs.map +1 -0
- package/esm/components/WeekView/WeekView.mjs +614 -625
- package/esm/components/WeekView/WeekView.mjs.map +1 -1
- package/esm/components/WeekView/WeekView.module.mjs +29 -0
- package/esm/components/WeekView/WeekView.module.mjs.map +1 -0
- package/esm/components/WeekView/WeekViewDay.mjs +69 -100
- package/esm/components/WeekView/WeekViewDay.mjs.map +1 -1
- package/esm/components/WeekView/get-week-label/get-week-label.mjs +25 -28
- package/esm/components/WeekView/get-week-label/get-week-label.mjs.map +1 -1
- package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs +21 -26
- package/esm/components/WeekView/get-week-view-events/assign-event-rows.mjs.map +1 -1
- package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs +11 -23
- package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-offset.mjs.map +1 -1
- package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs +12 -25
- package/esm/components/WeekView/get-week-view-events/calculate-all-day-event-width.mjs.map +1 -1
- package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs +11 -10
- package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs.map +1 -1
- package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs +14 -19
- package/esm/components/WeekView/get-week-view-events/calculate-regular-event-overlaps.mjs.map +1 -1
- package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs +26 -32
- package/esm/components/WeekView/get-week-view-events/filter-week-view-events.mjs.map +1 -1
- package/esm/components/WeekView/get-week-view-events/find-available-column.mjs +26 -36
- package/esm/components/WeekView/get-week-view-events/find-available-column.mjs.map +1 -1
- package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs +9 -10
- package/esm/components/WeekView/get-week-view-events/get-event-end-date.mjs.map +1 -1
- package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs +15 -24
- package/esm/components/WeekView/get-week-view-events/get-hanging-status.mjs.map +1 -1
- package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs +198 -134
- package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs.map +1 -1
- package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs +11 -7
- package/esm/components/WeekView/get-week-view-events/get-week-view-events.mjs.map +1 -1
- package/esm/components/WeekView/handle-week-view-key-down.mjs +82 -125
- package/esm/components/WeekView/handle-week-view-key-down.mjs.map +1 -1
- package/esm/components/YearView/YearView.mjs +157 -203
- package/esm/components/YearView/YearView.mjs.map +1 -1
- package/esm/components/YearView/YearView.module.mjs +20 -0
- package/esm/components/YearView/YearView.module.mjs.map +1 -0
- package/esm/components/YearView/YearViewMonth.mjs +133 -150
- package/esm/components/YearView/YearViewMonth.mjs.map +1 -1
- package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs +30 -41
- package/esm/components/YearView/get-year-view-events/get-year-view-events.mjs.map +1 -1
- package/esm/components/YearView/handle-year-view-key-down.mjs +143 -200
- package/esm/components/YearView/handle-year-view-key-down.mjs.map +1 -1
- package/esm/hooks/use-auto-scroll-on-drag.mjs +66 -68
- package/esm/hooks/use-auto-scroll-on-drag.mjs.map +1 -1
- package/esm/hooks/use-drag-drop-handlers.mjs +108 -120
- package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -1
- package/esm/hooks/use-drag-state.mjs +37 -40
- package/esm/hooks/use-drag-state.mjs.map +1 -1
- package/esm/hooks/use-event-resize.mjs +132 -0
- package/esm/hooks/use-event-resize.mjs.map +1 -0
- package/esm/hooks/use-slot-drag-select.mjs +74 -86
- package/esm/hooks/use-slot-drag-select.mjs.map +1 -1
- package/esm/index.mjs +49 -48
- package/esm/labels.mjs +30 -26
- package/esm/labels.mjs.map +1 -1
- package/esm/utils/calculate-drop-time/calculate-drop-time.mjs +21 -30
- package/esm/utils/calculate-drop-time/calculate-drop-time.mjs.map +1 -1
- package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs +15 -18
- package/esm/utils/calculate-month-drop-date/calculate-month-drop-date.mjs.map +1 -1
- package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs +9 -6
- package/esm/utils/clamp-interval-minutes/clamp-interval-minutes.mjs.map +1 -1
- package/esm/utils/expand-recurring-events/expand-recurring-events.mjs +118 -0
- package/esm/utils/expand-recurring-events/expand-recurring-events.mjs.map +1 -0
- package/esm/utils/format-date/format-date.mjs +8 -9
- package/esm/utils/format-date/format-date.mjs.map +1 -1
- package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs +23 -20
- package/esm/utils/get-business-hours-mod/get-business-hours-mod.mjs.map +1 -1
- package/esm/utils/get-current-time-position/get-current-time-position.mjs +17 -19
- package/esm/utils/get-current-time-position/get-current-time-position.mjs.map +1 -1
- package/esm/utils/get-day-position/get-day-position.mjs +24 -29
- package/esm/utils/get-day-position/get-day-position.mjs.map +1 -1
- package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs +50 -43
- package/esm/utils/get-day-time-intervals/get-day-time-intervals.mjs.map +1 -1
- package/esm/utils/get-end-of-week/get-end-of-week.mjs +11 -14
- package/esm/utils/get-end-of-week/get-end-of-week.mjs.map +1 -1
- package/esm/utils/get-month-days/get-month-days.mjs +39 -41
- package/esm/utils/get-month-days/get-month-days.mjs.map +1 -1
- package/esm/utils/get-month-range/get-month-range.mjs +23 -24
- package/esm/utils/get-month-range/get-month-range.mjs.map +1 -1
- package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs +19 -15
- package/esm/utils/get-months-by-quarter/get-months-by-quarter.mjs.map +1 -1
- package/esm/utils/get-months-list/get-months-list.mjs +18 -12
- package/esm/utils/get-months-list/get-months-list.mjs.map +1 -1
- package/esm/utils/get-start-of-week/get-start-of-week.mjs +9 -10
- package/esm/utils/get-start-of-week/get-start-of-week.mjs.map +1 -1
- package/esm/utils/get-visible-events/get-visible-events.mjs +13 -13
- package/esm/utils/get-visible-events/get-visible-events.mjs.map +1 -1
- package/esm/utils/get-week-days/get-week-days.mjs +21 -24
- package/esm/utils/get-week-days/get-week-days.mjs.map +1 -1
- package/esm/utils/get-week-number/get-week-number.mjs +9 -11
- package/esm/utils/get-week-number/get-week-number.mjs.map +1 -1
- package/esm/utils/get-weekdays-names/get-weekdays-names.mjs +16 -17
- package/esm/utils/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
- package/esm/utils/get-years-list/get-years-list.mjs +8 -8
- package/esm/utils/get-years-list/get-years-list.mjs.map +1 -1
- package/esm/utils/is-after-min-date/is-after-min-date.mjs +7 -6
- package/esm/utils/is-after-min-date/is-after-min-date.mjs.map +1 -1
- package/esm/utils/is-all-day-event/is-all-day-event.mjs +11 -10
- package/esm/utils/is-all-day-event/is-all-day-event.mjs.map +1 -1
- package/esm/utils/is-before-max-date/is-before-max-date.mjs +7 -6
- package/esm/utils/is-before-max-date/is-before-max-date.mjs.map +1 -1
- package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs +17 -21
- package/esm/utils/is-event-in-time-range/is-event-in-time-range.mjs.map +1 -1
- package/esm/utils/is-events-overlap/is-events-overlap.mjs +11 -10
- package/esm/utils/is-events-overlap/is-events-overlap.mjs.map +1 -1
- package/esm/utils/is-in-time-range/is-in-time-range.mjs +15 -17
- package/esm/utils/is-in-time-range/is-in-time-range.mjs.map +1 -1
- package/esm/utils/is-multiday-event/is-multiday-event.mjs +8 -8
- package/esm/utils/is-multiday-event/is-multiday-event.mjs.map +1 -1
- package/esm/utils/is-same-month/is-same-month.mjs +7 -6
- package/esm/utils/is-same-month/is-same-month.mjs.map +1 -1
- package/esm/utils/is-within-week/is-within-week.mjs +13 -9
- package/esm/utils/is-within-week/is-within-week.mjs.map +1 -1
- package/esm/utils/next-week/next-week.mjs +13 -9
- package/esm/utils/next-week/next-week.mjs.map +1 -1
- package/esm/utils/parse-time-string/parse-time-string.mjs +11 -5
- package/esm/utils/parse-time-string/parse-time-string.mjs.map +1 -1
- package/esm/utils/previous-week/previous-week.mjs +13 -9
- package/esm/utils/previous-week/previous-week.mjs.map +1 -1
- package/esm/utils/sort-events/sort-events.mjs +12 -12
- package/esm/utils/sort-events/sort-events.mjs.map +1 -1
- package/esm/utils/to-date-string/to-date-string.mjs +7 -6
- package/esm/utils/to-date-string/to-date-string.mjs.map +1 -1
- package/esm/utils/to-time-string/to-time-string.mjs +6 -4
- package/esm/utils/to-time-string/to-time-string.mjs.map +1 -1
- package/esm/utils/validate-event/validate-event.mjs +10 -17
- package/esm/utils/validate-event/validate-event.mjs.map +1 -1
- package/lib/components/DayView/DayView.d.ts +10 -2
- package/lib/components/DayView/get-day-view-events/get-day-positioned-events.d.ts +1 -1
- package/lib/components/DayView/get-day-view-events/get-day-view-events.d.ts +4 -2
- package/lib/components/MobileMonthView/MobileMonthView.d.ts +2 -2
- package/lib/components/MonthView/MonthView.d.ts +7 -3
- package/lib/components/MonthView/get-month-view-events/get-month-positioned-events.d.ts +4 -0
- package/lib/components/Schedule/Schedule.d.ts +10 -2
- package/lib/components/ScheduleEvent/ScheduleEvent.d.ts +7 -1
- package/lib/components/WeekView/WeekView.d.ts +10 -2
- package/lib/components/WeekView/WeekViewDay.d.ts +3 -1
- package/lib/components/WeekView/get-week-view-events/get-week-positioned-events.d.ts +1 -0
- package/lib/components/YearView/YearView.d.ts +3 -1
- package/lib/hooks/use-drag-drop-handlers.d.ts +1 -1
- package/lib/hooks/use-event-resize.d.ts +22 -0
- package/lib/labels.d.ts +1 -0
- package/lib/test-utils.d.ts +1 -1
- package/lib/types.d.ts +58 -8
- package/lib/utils/expand-recurring-events/expand-recurring-events.d.ts +10 -0
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/validate-event/validate-event.d.ts +1 -1
- package/package.json +9 -6
- package/styles.css +185 -79
- package/styles.layer.css +185 -79
- package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs +0 -7
- package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.cjs.map +0 -1
- package/cjs/components/DayView/DayView.module.css.cjs +0 -7
- package/cjs/components/DayView/DayView.module.css.cjs.map +0 -1
- package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs +0 -7
- package/cjs/components/MobileMonthView/MobileMonthView.module.css.cjs.map +0 -1
- package/cjs/components/MonthView/MonthView.module.css.cjs +0 -7
- package/cjs/components/MonthView/MonthView.module.css.cjs.map +0 -1
- package/cjs/components/MoreEvents/MoreEvents.module.css.cjs +0 -7
- package/cjs/components/MoreEvents/MoreEvents.module.css.cjs.map +0 -1
- package/cjs/components/Schedule/Schedule.module.css.cjs +0 -7
- package/cjs/components/Schedule/Schedule.module.css.cjs.map +0 -1
- package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs +0 -7
- package/cjs/components/ScheduleEvent/ScheduleEvent.module.css.cjs.map +0 -1
- package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs +0 -7
- package/cjs/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.cjs.map +0 -1
- package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs +0 -7
- package/cjs/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.cjs.map +0 -1
- package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs +0 -7
- package/cjs/components/ScheduleHeader/ScheduleHeader.module.css.cjs.map +0 -1
- package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs +0 -7
- package/cjs/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.cjs.map +0 -1
- package/cjs/components/WeekView/WeekView.module.css.cjs +0 -7
- package/cjs/components/WeekView/WeekView.module.css.cjs.map +0 -1
- package/cjs/components/YearView/YearView.module.css.cjs +0 -7
- package/cjs/components/YearView/YearView.module.css.cjs.map +0 -1
- package/cjs/index.cjs.map +0 -1
- package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs +0 -5
- package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.module.css.mjs.map +0 -1
- package/esm/components/DayView/DayView.module.css.mjs +0 -5
- package/esm/components/DayView/DayView.module.css.mjs.map +0 -1
- package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs +0 -5
- package/esm/components/MobileMonthView/MobileMonthView.module.css.mjs.map +0 -1
- package/esm/components/MonthView/MonthView.module.css.mjs +0 -5
- package/esm/components/MonthView/MonthView.module.css.mjs.map +0 -1
- package/esm/components/MoreEvents/MoreEvents.module.css.mjs +0 -5
- package/esm/components/MoreEvents/MoreEvents.module.css.mjs.map +0 -1
- package/esm/components/Schedule/Schedule.module.css.mjs +0 -5
- package/esm/components/Schedule/Schedule.module.css.mjs.map +0 -1
- package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs +0 -5
- package/esm/components/ScheduleEvent/ScheduleEvent.module.css.mjs.map +0 -1
- package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs +0 -5
- package/esm/components/ScheduleHeader/HeaderControl/HeaderControl.module.css.mjs.map +0 -1
- package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs +0 -5
- package/esm/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.module.css.mjs.map +0 -1
- package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs +0 -5
- package/esm/components/ScheduleHeader/ScheduleHeader.module.css.mjs.map +0 -1
- package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs +0 -5
- package/esm/components/ScheduleHeader/ViewSelect/ViewSelect.module.css.mjs.map +0 -1
- package/esm/components/WeekView/WeekView.module.css.mjs +0 -5
- package/esm/components/WeekView/WeekView.module.css.mjs.map +0 -1
- package/esm/components/YearView/YearView.module.css.mjs +0 -5
- package/esm/components/YearView/YearView.module.css.mjs.map +0 -1
- package/esm/index.mjs.map +0 -1
|
@@ -6,9 +6,9 @@ import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
|
|
|
6
6
|
import { MonthYearSelectProps } from '../ScheduleHeader/MonthYearSelect/MonthYearSelect';
|
|
7
7
|
import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
|
|
8
8
|
import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
|
|
9
|
-
export type MonthViewStylesNames = 'monthView' | 'monthViewScrollArea' | 'monthViewInner' | 'monthViewWeek' | 'monthViewDay' | 'monthViewDayLabel' | 'monthViewWeekNumber' | 'monthViewWeekday' | 'monthViewWeekdays' | 'monthViewWeekdaysCorner' | 'monthViewEvents' | CombinedScheduleHeaderStylesNames;
|
|
9
|
+
export type MonthViewStylesNames = 'monthView' | 'monthViewScrollArea' | 'monthViewInner' | 'monthViewWeek' | 'monthViewDay' | 'monthViewDayLabel' | 'monthViewWeekNumber' | 'monthViewWeekday' | 'monthViewWeekdays' | 'monthViewWeekdaysCorner' | 'monthViewEvents' | 'monthViewBackgroundEvent' | CombinedScheduleHeaderStylesNames;
|
|
10
10
|
export type MonthViewCssVariables = {
|
|
11
|
-
monthView: '--month-view-radius';
|
|
11
|
+
monthView: '--month-view-radius' | '--month-view-max-events';
|
|
12
12
|
};
|
|
13
13
|
export interface MonthViewProps extends BoxProps, StylesApiProps<MonthViewFactory>, ElementProps<'div'> {
|
|
14
14
|
__staticSelector?: string;
|
|
@@ -69,7 +69,7 @@ export interface MonthViewProps extends BoxProps, StylesApiProps<MonthViewFactor
|
|
|
69
69
|
/** If true, events can be dragged and dropped @default false */
|
|
70
70
|
withEventsDragAndDrop?: boolean;
|
|
71
71
|
/** Called when event is dropped on new date */
|
|
72
|
-
onEventDrop?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue) => void;
|
|
72
|
+
onEventDrop?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue, event: ScheduleEventData) => void;
|
|
73
73
|
/** Function to determine if event can be dragged */
|
|
74
74
|
canDragEvent?: (event: ScheduleEventData) => boolean;
|
|
75
75
|
/** Called when any event drag starts */
|
|
@@ -90,6 +90,10 @@ export interface MonthViewProps extends BoxProps, StylesApiProps<MonthViewFactor
|
|
|
90
90
|
scrollAreaProps?: Partial<ScrollAreaProps> & DataAttributes;
|
|
91
91
|
/** Called when an external item is dropped onto the schedule. Receives the `DataTransfer` object and the drop target datetime. */
|
|
92
92
|
onExternalEventDrop?: (dataTransfer: DataTransfer, dropDateTime: DateTimeStringValue) => void;
|
|
93
|
+
/** Max number of generated recurring instances per recurring series @default 2000 */
|
|
94
|
+
recurrenceExpansionLimit?: number;
|
|
95
|
+
/** Maximum number of events visible per day before "+more" indicator shows, value is clamped between 1 and 10 @default 2 */
|
|
96
|
+
maxEventsPerDay?: number;
|
|
93
97
|
}
|
|
94
98
|
export type MonthViewFactory = Factory<{
|
|
95
99
|
props: MonthViewProps;
|
|
@@ -22,6 +22,10 @@ export interface GroupedMonthEvents {
|
|
|
22
22
|
groupedByDay: {
|
|
23
23
|
[date: string]: MonthPositionedEventData[];
|
|
24
24
|
};
|
|
25
|
+
/** Background events grouped by week index */
|
|
26
|
+
backgroundByWeek: {
|
|
27
|
+
[weekIndex: string]: MonthPositionedEventData[];
|
|
28
|
+
};
|
|
25
29
|
}
|
|
26
30
|
export declare function getMonthPositionedEvents({ date, events, firstDayOfWeek, range, }: GetMonthPositionedEventsInput): GroupedMonthEvents;
|
|
27
31
|
export {};
|
|
@@ -9,7 +9,7 @@ import { WeekViewProps, WeekViewStylesNames } from '../WeekView/WeekView';
|
|
|
9
9
|
import { YearViewProps, YearViewStylesNames } from '../YearView/YearView';
|
|
10
10
|
export type ScheduleStylesNames = 'root' | 'desktopView' | 'mobileView' | DayViewStylesNames | WeekViewStylesNames | MonthViewStylesNames | YearViewStylesNames | MobileMonthViewStylesNames;
|
|
11
11
|
export type ScheduleLayout = 'default' | 'responsive';
|
|
12
|
-
type ScheduleCommonProps = 'date' | 'onDateChange' | 'events' | 'locale' | 'radius' | 'labels' | 'renderEventBody' | 'withEventsDragAndDrop' | 'onEventDrop' | 'canDragEvent' | 'onEventDragStart' | 'onEventDragEnd' | 'onTimeSlotClick' | 'onAllDaySlotClick' | 'onEventClick' | 'onDayClick' | 'onMonthClick' | 'withDragSlotSelect' | 'onSlotDragEnd' | 'view' | 'onViewChange' | 'mode' | 'onExternalEventDrop';
|
|
12
|
+
type ScheduleCommonProps = 'date' | 'onDateChange' | 'events' | 'locale' | 'radius' | 'labels' | 'renderEventBody' | 'withEventsDragAndDrop' | 'onEventDrop' | 'canDragEvent' | 'onEventDragStart' | 'onEventDragEnd' | 'onTimeSlotClick' | 'onAllDaySlotClick' | 'onEventClick' | 'onDayClick' | 'onMonthClick' | 'withDragSlotSelect' | 'onSlotDragEnd' | 'view' | 'onViewChange' | 'mode' | 'onExternalEventDrop' | 'withEventResize' | 'onEventResize' | 'canResizeEvent' | 'recurrenceExpansionLimit';
|
|
13
13
|
type ScheduleViewProps<T> = Partial<Omit<T, ScheduleCommonProps>>;
|
|
14
14
|
export interface ScheduleProps extends BoxProps, StylesApiProps<ScheduleFactory>, ElementProps<'div'> {
|
|
15
15
|
__staticSelector?: string;
|
|
@@ -38,7 +38,7 @@ export interface ScheduleProps extends BoxProps, StylesApiProps<ScheduleFactory>
|
|
|
38
38
|
/** Enable drag and drop for events @default false */
|
|
39
39
|
withEventsDragAndDrop?: boolean;
|
|
40
40
|
/** Called when event is dropped */
|
|
41
|
-
onEventDrop?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue) => void;
|
|
41
|
+
onEventDrop?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue, event: ScheduleEventData) => void;
|
|
42
42
|
/** Function to determine if event can be dragged */
|
|
43
43
|
canDragEvent?: (event: ScheduleEventData) => boolean;
|
|
44
44
|
/** Called when any event drag starts */
|
|
@@ -64,6 +64,14 @@ export interface ScheduleProps extends BoxProps, StylesApiProps<ScheduleFactory>
|
|
|
64
64
|
mode?: ScheduleMode;
|
|
65
65
|
/** Called when an external item is dropped onto the schedule. Receives the `DataTransfer` object and the drop target datetime. */
|
|
66
66
|
onExternalEventDrop?: (dataTransfer: DataTransfer, dropDateTime: DateTimeStringValue) => void;
|
|
67
|
+
/** If true, events can be resized by dragging their edges @default false */
|
|
68
|
+
withEventResize?: boolean;
|
|
69
|
+
/** Called when event is resized */
|
|
70
|
+
onEventResize?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue, event: ScheduleEventData) => void;
|
|
71
|
+
/** Function to determine if event can be resized */
|
|
72
|
+
canResizeEvent?: (event: ScheduleEventData) => boolean;
|
|
73
|
+
/** Max number of generated recurring instances per recurring series @default 2000 */
|
|
74
|
+
recurrenceExpansionLimit?: number;
|
|
67
75
|
/** Layout mode:
|
|
68
76
|
* - `'default'` uses same views on all screen sizes
|
|
69
77
|
* - `'responsive'` switches to YearView/MobileMonthView on small screens
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BoxProps, ElementProps, Factory, MantineRadius, StylesApiProps } from '@mantine/core';
|
|
2
2
|
import { ScheduleEventData, ScheduleMode } from '../../types';
|
|
3
|
-
export type ScheduleEventStylesNames = 'event' | 'eventInner';
|
|
3
|
+
export type ScheduleEventStylesNames = 'event' | 'eventInner' | 'eventResizeHandle';
|
|
4
4
|
export type ScheduleEventVariant = 'filled' | 'light';
|
|
5
5
|
export type ScheduleEventCssVariables = {
|
|
6
6
|
event: '--event-bg' | '--event-color' | '--event-radius' | '--event-hover';
|
|
@@ -37,6 +37,12 @@ export interface ScheduleEventProps extends BoxProps, StylesApiProps<ScheduleEve
|
|
|
37
37
|
isDragging?: boolean;
|
|
38
38
|
/** Interaction mode: 'default' allows all interactions, 'static' disables event interactions @default default */
|
|
39
39
|
mode?: ScheduleMode;
|
|
40
|
+
/** If true, event can be resized by dragging its edges @default false */
|
|
41
|
+
withResize?: boolean;
|
|
42
|
+
/** Called when resize starts on an edge */
|
|
43
|
+
onResizeStart?: (edge: 'top' | 'bottom', e: React.PointerEvent) => void;
|
|
44
|
+
/** If true, event is currently being resized @default false */
|
|
45
|
+
isResizing?: boolean;
|
|
40
46
|
}
|
|
41
47
|
export type ScheduleEventFactory = Factory<{
|
|
42
48
|
props: ScheduleEventProps;
|
|
@@ -5,7 +5,7 @@ import { CurrentTimeIndicatorStylesNames } from '../CurrentTimeIndicator/Current
|
|
|
5
5
|
import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
|
|
6
6
|
import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
|
|
7
7
|
import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
|
|
8
|
-
export type WeekViewStylesNames = 'weekView' | 'weekViewRoot' | 'weekViewHeader' | 'weekViewInner' | 'weekViewAllDaySlotsEvents' | 'weekViewAllDaySlots' | 'weekViewAllDaySlotsList' | 'weekViewAllDaySlot' | 'weekViewAllDaySlotsLabel' | 'weekViewScrollArea' | 'weekViewCorner' | 'weekViewSlotLabels' | 'weekViewSlotLabel' | 'weekViewDayLabel' | 'weekViewDayWeekday' | 'weekViewDay' | 'weekViewDayNumber' | 'weekViewDaySlot' | 'weekViewDaySlots' | 'weekViewWeekLabel' | 'weekViewWeekNumber' | CurrentTimeIndicatorStylesNames | CombinedScheduleHeaderStylesNames;
|
|
8
|
+
export type WeekViewStylesNames = 'weekView' | 'weekViewRoot' | 'weekViewHeader' | 'weekViewInner' | 'weekViewAllDaySlotsEvents' | 'weekViewAllDaySlots' | 'weekViewAllDaySlotsList' | 'weekViewAllDaySlot' | 'weekViewAllDaySlotsLabel' | 'weekViewScrollArea' | 'weekViewCorner' | 'weekViewSlotLabels' | 'weekViewSlotLabel' | 'weekViewDayLabel' | 'weekViewDayWeekday' | 'weekViewDay' | 'weekViewDayNumber' | 'weekViewDaySlot' | 'weekViewDaySlots' | 'weekViewWeekLabel' | 'weekViewWeekNumber' | 'weekViewBackgroundEvent' | CurrentTimeIndicatorStylesNames | CombinedScheduleHeaderStylesNames;
|
|
9
9
|
export type WeekViewCssVariables = {
|
|
10
10
|
weekView: '--week-view-radius' | '--week-view-slot-height' | '--week-view-all-day-slots-height';
|
|
11
11
|
};
|
|
@@ -80,7 +80,7 @@ export interface WeekViewProps extends BoxProps, StylesApiProps<WeekViewFactory>
|
|
|
80
80
|
/** If true, events can be dragged and dropped @default false */
|
|
81
81
|
withEventsDragAndDrop?: boolean;
|
|
82
82
|
/** Called when event is dropped at new time */
|
|
83
|
-
onEventDrop?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue) => void;
|
|
83
|
+
onEventDrop?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue, event: ScheduleEventData) => void;
|
|
84
84
|
/** Function to determine if event can be dragged */
|
|
85
85
|
canDragEvent?: (event: ScheduleEventData) => boolean;
|
|
86
86
|
/** Called when any event drag starts */
|
|
@@ -108,6 +108,14 @@ export interface WeekViewProps extends BoxProps, StylesApiProps<WeekViewFactory>
|
|
|
108
108
|
}) => React.ReactNode;
|
|
109
109
|
/** Called when an external item is dropped onto the schedule. Receives the `DataTransfer` object and the drop target datetime. */
|
|
110
110
|
onExternalEventDrop?: (dataTransfer: DataTransfer, dropDateTime: DateTimeStringValue) => void;
|
|
111
|
+
/** If true, events can be resized by dragging their edges @default false */
|
|
112
|
+
withEventResize?: boolean;
|
|
113
|
+
/** Called when event is resized */
|
|
114
|
+
onEventResize?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue, event: ScheduleEventData) => void;
|
|
115
|
+
/** Function to determine if event can be resized */
|
|
116
|
+
canResizeEvent?: (event: ScheduleEventData) => boolean;
|
|
117
|
+
/** Max number of generated recurring instances per recurring series @default 2000 */
|
|
118
|
+
recurrenceExpansionLimit?: number;
|
|
111
119
|
}
|
|
112
120
|
export type WeekViewFactory = Factory<{
|
|
113
121
|
props: WeekViewProps;
|
|
@@ -54,5 +54,7 @@ export interface WeekViewDayProps {
|
|
|
54
54
|
onSlotPointerDown?: (event: React.PointerEvent<HTMLButtonElement>, index: number, group: string) => void;
|
|
55
55
|
/** Function to check if a slot is drag-selected */
|
|
56
56
|
isSlotDragSelected?: (index: number, group: string) => boolean;
|
|
57
|
+
/** Ref callback for the day slots container */
|
|
58
|
+
daySlotsContainerRef?: (node: HTMLDivElement | null) => void;
|
|
57
59
|
}
|
|
58
|
-
export declare function WeekViewDay({ day, dayIndex, slots, getStyles, weekendDays, children, labels, highlightBusinessHours, businessHours, withEventsDragAndDrop, onDaySlotsDragOver, onDaySlotsDragLeave, onDaySlotsDrop, onSlotClick, dropTargetSlotIndex, mode, slotsRef, firstSlotIndex, onSlotKeyDown, onFirstSlotArrowUp, withDragSlotSelect, onSlotPointerDown, isSlotDragSelected, }: WeekViewDayProps): import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
export declare function WeekViewDay({ day, dayIndex, slots, getStyles, weekendDays, children, labels, highlightBusinessHours, businessHours, withEventsDragAndDrop, onDaySlotsDragOver, onDaySlotsDragLeave, onDaySlotsDrop, onSlotClick, dropTargetSlotIndex, mode, slotsRef, firstSlotIndex, onSlotKeyDown, onFirstSlotArrowUp, withDragSlotSelect, onSlotPointerDown, isSlotDragSelected, daySlotsContainerRef, }: WeekViewDayProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -19,5 +19,6 @@ export interface GetWeekPositionedEventsInput {
|
|
|
19
19
|
export interface GroupedWeekEvents {
|
|
20
20
|
allDayEvents: WeekPositionedEventData[];
|
|
21
21
|
regularEvents: Record<DateStringValue, WeekPositionedEventData[]>;
|
|
22
|
+
backgroundEvents: Record<DateStringValue, WeekPositionedEventData[]>;
|
|
22
23
|
}
|
|
23
24
|
export declare function getWeekPositionedEvents({ date, events, startTime, endTime, firstDayOfWeek, weekendDays, withWeekendDays, }: GetWeekPositionedEventsInput): GroupedWeekEvents;
|
|
@@ -4,7 +4,7 @@ import { MonthYearSelectProps } from '../ScheduleHeader/MonthYearSelect/MonthYea
|
|
|
4
4
|
import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
|
|
5
5
|
import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
|
|
6
6
|
import { YearViewMonthSettings } from './YearViewMonth';
|
|
7
|
-
export type YearViewStylesNames = 'yearView' | 'yearViewMonths' | 'yearViewMonth' | 'yearViewWeekday' | 'yearViewDay' | 'yearViewWeek' | 'yearViewWeekNumber' | 'yearViewWeekdays' | 'yearViewWeekdaysCorner' | 'yearViewMonthCaption' | '
|
|
7
|
+
export type YearViewStylesNames = 'yearView' | 'yearViewMonths' | 'yearViewMonth' | 'yearViewWeekday' | 'yearViewDay' | 'yearViewWeek' | 'yearViewWeekNumber' | 'yearViewWeekdays' | 'yearViewWeekdaysCorner' | 'yearViewMonthCaption' | 'yearViewDayIndicators' | 'yearViewDayIndicator' | CombinedScheduleHeaderStylesNames;
|
|
8
8
|
export type YearViewCssVariables = {
|
|
9
9
|
yearView: '--year-view-radius';
|
|
10
10
|
};
|
|
@@ -36,6 +36,8 @@ export interface YearViewProps extends YearViewMonthSettings, BoxProps, StylesAp
|
|
|
36
36
|
viewSelectProps?: Partial<ViewSelectProps> & DataAttributes;
|
|
37
37
|
/** Interaction mode: 'default' allows all interactions, 'static' disables event interactions @default default */
|
|
38
38
|
mode?: ScheduleMode;
|
|
39
|
+
/** Max number of generated recurring instances per recurring series @default 2000 */
|
|
40
|
+
recurrenceExpansionLimit?: number;
|
|
39
41
|
}
|
|
40
42
|
export type YearViewFactory = Factory<{
|
|
41
43
|
props: YearViewProps;
|
|
@@ -6,7 +6,7 @@ export interface UseDragDropHandlersOptions<T = any> {
|
|
|
6
6
|
/** Schedule interaction mode */
|
|
7
7
|
mode: ScheduleMode;
|
|
8
8
|
/** Called when event is dropped at new location */
|
|
9
|
-
onEventDrop?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue) => void;
|
|
9
|
+
onEventDrop?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue, event: ScheduleEventData) => void;
|
|
10
10
|
/** Function to determine if event can be dragged */
|
|
11
11
|
canDragEvent?: (event: ScheduleEventData) => boolean;
|
|
12
12
|
/** Called when any event drag starts */
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DateTimeStringValue, ScheduleEventData, ScheduleMode } from '../types';
|
|
2
|
+
type ResizeEdge = 'top' | 'bottom';
|
|
3
|
+
export interface UseEventResizeInput {
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
mode?: ScheduleMode;
|
|
6
|
+
startTime: string;
|
|
7
|
+
endTime: string;
|
|
8
|
+
intervalMinutes: number;
|
|
9
|
+
onEventResize?: (eventId: string | number, newStart: DateTimeStringValue, newEnd: DateTimeStringValue, event: ScheduleEventData) => void;
|
|
10
|
+
canResizeEvent?: (event: ScheduleEventData) => boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function useEventResize({ enabled, mode, startTime, endTime, intervalMinutes, onEventResize, canResizeEvent, }: UseEventResizeInput): {
|
|
13
|
+
handleResizeStart: (event: ScheduleEventData, edge: ResizeEdge, container: HTMLElement, originalTop: number, originalHeight: number, eventDate: string, pointerEvent: React.PointerEvent) => void;
|
|
14
|
+
isResizing: boolean;
|
|
15
|
+
resizingEventId: string | number | null;
|
|
16
|
+
getResizePosition: (eventId: string | number) => {
|
|
17
|
+
top: number;
|
|
18
|
+
height: number;
|
|
19
|
+
} | null;
|
|
20
|
+
isResizableEvent: (event: ScheduleEventData) => boolean;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
package/lib/labels.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface ScheduleLabels {
|
|
|
17
17
|
switchToMonthView: string;
|
|
18
18
|
switchToYearView: string;
|
|
19
19
|
viewSelectLabel: string;
|
|
20
|
+
noEvents: string;
|
|
20
21
|
moreLabel: (hiddenEventsCount: number) => string;
|
|
21
22
|
}
|
|
22
23
|
export declare const DEFAULT_SCHEDULE_LABELS: ScheduleLabels;
|
package/lib/test-utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ScheduleEventData } from './types';
|
|
2
|
-
declare function createEvent(input
|
|
2
|
+
declare function createEvent(input?: Partial<ScheduleEventData>): ScheduleEventData;
|
|
3
3
|
export declare const testUtils: {
|
|
4
4
|
testDate: string;
|
|
5
5
|
createEvent: typeof createEvent;
|
package/lib/types.d.ts
CHANGED
|
@@ -16,8 +16,28 @@ export type ScheduleViewLevel = 'day' | 'week' | 'month' | 'year';
|
|
|
16
16
|
export type ScheduleMode = 'static' | 'default';
|
|
17
17
|
/** Payload type for ScheduleEventData, defined in user application */
|
|
18
18
|
export type EventPayload = Record<PropertyKey, any>;
|
|
19
|
-
/**
|
|
20
|
-
export interface
|
|
19
|
+
/** RFC 5545 recurrence data */
|
|
20
|
+
export interface ScheduleRecurrenceData {
|
|
21
|
+
/** Recurrence rule string, for example: `FREQ=WEEKLY;BYDAY=MO,WE` */
|
|
22
|
+
rrule: string;
|
|
23
|
+
/** Exception datetimes in `YYYY-MM-DD HH:mm:ss` or valid date string format */
|
|
24
|
+
exdate?: DateTimeStringValue[];
|
|
25
|
+
/** Optional explicit series start datetime */
|
|
26
|
+
dtstart?: DateTimeStringValue;
|
|
27
|
+
}
|
|
28
|
+
/** Metadata attached to generated recurring instances */
|
|
29
|
+
export interface RecurringInstanceMeta {
|
|
30
|
+
/** If true, event is generated from recurrence rule */
|
|
31
|
+
isRecurringInstance: boolean;
|
|
32
|
+
/** Parent series event id */
|
|
33
|
+
recurringEventId: string | number;
|
|
34
|
+
/** Original occurrence datetime key */
|
|
35
|
+
recurrenceId: DateTimeStringValue;
|
|
36
|
+
/** Original occurrence dates before any drag/drop updates */
|
|
37
|
+
originalStart: DateTimeStringValue;
|
|
38
|
+
originalEnd: DateTimeStringValue;
|
|
39
|
+
}
|
|
40
|
+
interface ScheduleEventBase<Payload extends EventPayload = EventPayload> {
|
|
21
41
|
/** Unique event id, used for key and identification */
|
|
22
42
|
id: string | number;
|
|
23
43
|
/** Event title, displayed in month, week and day views */
|
|
@@ -30,9 +50,38 @@ export interface ScheduleEventData<Payload extends EventPayload = EventPayload>
|
|
|
30
50
|
color: MantineColor;
|
|
31
51
|
/** Event variant, default is `'light'` */
|
|
32
52
|
variant?: 'filled' | 'light';
|
|
53
|
+
/** Event display mode. Background events render as full-width, non-interactive blocks behind regular events. @default 'default' */
|
|
54
|
+
display?: 'default' | 'background';
|
|
33
55
|
/** Additional event data, defined by the user, not used internally by the library */
|
|
34
56
|
payload?: Payload;
|
|
35
57
|
}
|
|
58
|
+
/** One-off event without recurrence */
|
|
59
|
+
export interface ScheduleSingleEventData<Payload extends EventPayload = EventPayload> extends ScheduleEventBase<Payload> {
|
|
60
|
+
recurrence?: never;
|
|
61
|
+
recurringEventId?: never;
|
|
62
|
+
recurrenceId?: never;
|
|
63
|
+
}
|
|
64
|
+
/** Recurring series source event */
|
|
65
|
+
export interface ScheduleRecurringSeriesEventData<Payload extends EventPayload = EventPayload> extends ScheduleEventBase<Payload> {
|
|
66
|
+
/** Recurrence definition for the event series */
|
|
67
|
+
recurrence: ScheduleRecurrenceData;
|
|
68
|
+
recurringEventId?: never;
|
|
69
|
+
recurrenceId?: never;
|
|
70
|
+
}
|
|
71
|
+
/** Override for one specific recurring occurrence */
|
|
72
|
+
export interface ScheduleRecurringOverrideEventData<Payload extends EventPayload = EventPayload> extends ScheduleEventBase<Payload> {
|
|
73
|
+
recurrence?: never;
|
|
74
|
+
/** Parent recurring series id */
|
|
75
|
+
recurringEventId: string | number;
|
|
76
|
+
/** Occurrence id (`YYYY-MM-DD HH:mm:ss`) */
|
|
77
|
+
recurrenceId: DateTimeStringValue;
|
|
78
|
+
}
|
|
79
|
+
interface ScheduleEventRuntimeMeta {
|
|
80
|
+
/** Metadata for generated recurring instances */
|
|
81
|
+
recurringInstance?: RecurringInstanceMeta;
|
|
82
|
+
}
|
|
83
|
+
/** Event data object passed to all `@mantine/schedule` components */
|
|
84
|
+
export type ScheduleEventData<Payload extends EventPayload = EventPayload> = (ScheduleSingleEventData<Payload> & ScheduleEventRuntimeMeta) | (ScheduleRecurringSeriesEventData<Payload> & ScheduleEventRuntimeMeta) | (ScheduleRecurringOverrideEventData<Payload> & ScheduleEventRuntimeMeta);
|
|
36
85
|
export interface DayEventPositionData {
|
|
37
86
|
/** All day events */
|
|
38
87
|
allDay: boolean;
|
|
@@ -50,9 +99,9 @@ export interface DayEventPositionData {
|
|
|
50
99
|
column: number;
|
|
51
100
|
}
|
|
52
101
|
/** Event data with calculated position for day view */
|
|
53
|
-
export
|
|
102
|
+
export type DayPositionedEventData<Payload extends EventPayload = EventPayload> = ScheduleEventData<Payload> & {
|
|
54
103
|
position: DayEventPositionData;
|
|
55
|
-
}
|
|
104
|
+
};
|
|
56
105
|
export interface WeekEventPositionData extends DayEventPositionData {
|
|
57
106
|
/** Week offset in %, represents event start position from the first day of the week (for regular events only) */
|
|
58
107
|
weekOffset?: number;
|
|
@@ -62,9 +111,9 @@ export interface WeekEventPositionData extends DayEventPositionData {
|
|
|
62
111
|
hanging: 'start' | 'end' | 'both' | 'none';
|
|
63
112
|
}
|
|
64
113
|
/** Event data with calculated position for week view */
|
|
65
|
-
export
|
|
114
|
+
export type WeekPositionedEventData<Payload extends EventPayload = EventPayload> = ScheduleEventData<Payload> & {
|
|
66
115
|
position: WeekEventPositionData;
|
|
67
|
-
}
|
|
116
|
+
};
|
|
68
117
|
export interface MonthEventPositionData {
|
|
69
118
|
/** Start offset % from the start of the week (inset-inline-start) */
|
|
70
119
|
startOffset: number;
|
|
@@ -78,9 +127,9 @@ export interface MonthEventPositionData {
|
|
|
78
127
|
hanging: 'start' | 'end' | 'both' | 'none';
|
|
79
128
|
}
|
|
80
129
|
/** Event data with calculated position for month view */
|
|
81
|
-
export
|
|
130
|
+
export type MonthPositionedEventData<Payload extends EventPayload = EventPayload> = ScheduleEventData<Payload> & {
|
|
82
131
|
position: MonthEventPositionData;
|
|
83
|
-
}
|
|
132
|
+
};
|
|
84
133
|
export interface DropTarget {
|
|
85
134
|
/** Target date in YYYY-MM-DD format */
|
|
86
135
|
date: DateStringValue;
|
|
@@ -89,3 +138,4 @@ export interface DropTarget {
|
|
|
89
138
|
/** Target slot index (for DayView/WeekView) */
|
|
90
139
|
slotIndex?: number;
|
|
91
140
|
}
|
|
141
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ScheduleEventData } from '../../types';
|
|
2
|
+
interface ExpandRecurringEventsInput {
|
|
3
|
+
events: ScheduleEventData[] | undefined;
|
|
4
|
+
rangeStart: Date | string;
|
|
5
|
+
rangeEnd: Date | string;
|
|
6
|
+
expansionLimit?: number;
|
|
7
|
+
}
|
|
8
|
+
declare const DEFAULT_EXPANSION_LIMIT = 2000;
|
|
9
|
+
export declare function expandRecurringEvents({ events, rangeStart, rangeEnd, expansionLimit, }: ExpandRecurringEventsInput): ScheduleEventData[];
|
|
10
|
+
export { DEFAULT_EXPANSION_LIMIT };
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export { getDayPosition } from './get-day-position/get-day-position';
|
|
|
33
33
|
export { calculateDropTime } from './calculate-drop-time/calculate-drop-time';
|
|
34
34
|
export { calculateMonthDropDate } from './calculate-month-drop-date/calculate-month-drop-date';
|
|
35
35
|
export { getBusinessHoursMod } from './get-business-hours-mod/get-business-hours-mod';
|
|
36
|
+
export { expandRecurringEvents } from './expand-recurring-events/expand-recurring-events';
|
|
36
37
|
export type { DayTimeInterval } from './get-day-time-intervals/get-day-time-intervals';
|
|
37
38
|
export type { ParsedTime } from './parse-time-string/parse-time-string';
|
|
38
39
|
export type { CalculateDropTimeInput, CalculateDropTimeResult, } from './calculate-drop-time/calculate-drop-time';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ScheduleEventData } from '../../types';
|
|
2
|
-
export declare function validateEvent(eventData: ScheduleEventData): ScheduleEventData
|
|
2
|
+
export declare function validateEvent(eventData: ScheduleEventData): ScheduleEventData;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantine/schedule",
|
|
3
|
-
"version": "9.0.0-alpha.
|
|
3
|
+
"version": "9.0.0-alpha.6",
|
|
4
4
|
"description": "Schedule Mantine component",
|
|
5
5
|
"homepage": "https://mantine.dev/",
|
|
6
6
|
"license": "MIT",
|
|
@@ -35,11 +35,14 @@
|
|
|
35
35
|
"directory": "packages/@mantine/schedule"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@mantine/core": "9.0.0-alpha.
|
|
39
|
-
"@mantine/dates": "9.0.0-alpha.
|
|
40
|
-
"@mantine/hooks": "9.0.0-alpha.
|
|
41
|
-
"react": "^
|
|
42
|
-
"react-dom": "^
|
|
38
|
+
"@mantine/core": "9.0.0-alpha.6",
|
|
39
|
+
"@mantine/dates": "9.0.0-alpha.6",
|
|
40
|
+
"@mantine/hooks": "9.0.0-alpha.6",
|
|
41
|
+
"react": "^19.2.0",
|
|
42
|
+
"react-dom": "^19.2.0"
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"rrule": "^2.8.1"
|
|
43
46
|
},
|
|
44
47
|
"devDependencies": {
|
|
45
48
|
"@mantine-tests/core": "workspace:*",
|