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