@mantine/schedule 9.3.2 → 9.4.0
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/components/AgendaView/AgendaView.cjs +133 -0
- package/cjs/components/AgendaView/AgendaView.cjs.map +1 -0
- package/cjs/components/AgendaView/AgendaView.module.cjs +19 -0
- package/cjs/components/AgendaView/AgendaView.module.cjs.map +1 -0
- package/cjs/components/AgendaView/get-agenda-view-events.cjs +48 -0
- package/cjs/components/AgendaView/get-agenda-view-events.cjs.map +1 -0
- package/cjs/components/CurrentTimeIndicator/CurrentTimeIndicator.cjs.map +1 -1
- package/cjs/components/DayView/DayView.cjs +127 -106
- package/cjs/components/DayView/DayView.cjs.map +1 -1
- package/cjs/components/DayView/DayView.module.cjs.map +1 -1
- 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.map +1 -1
- package/cjs/components/DragContext/DragContext.cjs.map +1 -1
- 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 +114 -64
- 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/add-event-to-day-groups.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.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.map +1 -1
- package/cjs/components/MonthView/get-renderable-month-event-segments.cjs +17 -15
- package/cjs/components/MonthView/get-renderable-month-event-segments.cjs.map +1 -1
- package/cjs/components/MonthView/get-visible-columns.cjs +54 -0
- package/cjs/components/MonthView/get-visible-columns.cjs.map +1 -0
- package/cjs/components/MonthView/handle-month-view-key-down.cjs.map +1 -1
- package/cjs/components/MoreEvents/MoreEvents.cjs.map +1 -1
- package/cjs/components/ResourcesDayView/ResourcesDayView.cjs +578 -0
- package/cjs/components/ResourcesDayView/ResourcesDayView.cjs.map +1 -0
- package/cjs/components/ResourcesDayView/ResourcesDayView.module.cjs +29 -0
- package/cjs/components/ResourcesDayView/ResourcesDayView.module.cjs.map +1 -0
- package/cjs/components/ResourcesDayView/ResourcesDayViewColumn.cjs +89 -0
- package/cjs/components/ResourcesDayView/ResourcesDayViewColumn.cjs.map +1 -0
- package/cjs/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.cjs +26 -0
- package/cjs/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.cjs.map +1 -0
- package/cjs/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.cjs +115 -0
- package/cjs/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.cjs.map +1 -0
- package/cjs/components/ResourcesMonthView/ResourcesMonthView.cjs +602 -0
- package/cjs/components/ResourcesMonthView/ResourcesMonthView.cjs.map +1 -0
- package/cjs/components/ResourcesMonthView/ResourcesMonthView.module.cjs +23 -0
- package/cjs/components/ResourcesMonthView/ResourcesMonthView.module.cjs.map +1 -0
- package/cjs/components/ResourcesSchedule/ResourcesSchedule.cjs +102 -0
- package/cjs/components/ResourcesSchedule/ResourcesSchedule.cjs.map +1 -0
- package/cjs/components/ResourcesSchedule/ResourcesSchedule.module.cjs +7 -0
- package/cjs/components/ResourcesSchedule/ResourcesSchedule.module.cjs.map +1 -0
- package/cjs/components/ResourcesWeekView/ResourcesWeekView.cjs +610 -0
- package/cjs/components/ResourcesWeekView/ResourcesWeekView.cjs.map +1 -0
- package/cjs/components/ResourcesWeekView/ResourcesWeekView.module.cjs +33 -0
- package/cjs/components/ResourcesWeekView/ResourcesWeekView.module.cjs.map +1 -0
- package/cjs/components/ResourcesWeekView/ResourcesWeekViewRow.cjs +90 -0
- package/cjs/components/ResourcesWeekView/ResourcesWeekViewRow.cjs.map +1 -0
- package/cjs/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.cjs +97 -0
- package/cjs/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.cjs.map +1 -0
- package/cjs/components/Schedule/Schedule.cjs +3 -2
- package/cjs/components/Schedule/Schedule.cjs.map +1 -1
- package/cjs/components/ScheduleEvent/ScheduleEvent.cjs +1 -1
- package/cjs/components/ScheduleEvent/ScheduleEvent.cjs.map +1 -1
- 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/ScheduleHeader.module.cjs +2 -0
- package/cjs/components/ScheduleHeader/ScheduleHeader.module.cjs.map +1 -1
- package/cjs/components/ScheduleHeader/ScheduleHeaderBase.cjs +29 -11
- 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 +128 -102
- package/cjs/components/WeekView/WeekView.cjs.map +1 -1
- package/cjs/components/WeekView/WeekView.module.cjs.map +1 -1
- package/cjs/components/WeekView/WeekViewDay.cjs +3 -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/find-available-column.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.map +1 -1
- package/cjs/components/WeekView/handle-week-view-key-down.cjs.map +1 -1
- package/cjs/components/YearView/YearView.cjs.map +1 -1
- package/cjs/components/YearView/YearViewMonth.cjs.map +1 -1
- 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.map +1 -1
- package/cjs/hooks/use-auto-scroll-on-drag.cjs.map +1 -1
- 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.map +1 -1
- package/cjs/hooks/use-horizontal-event-resize.cjs +153 -0
- package/cjs/hooks/use-horizontal-event-resize.cjs.map +1 -0
- package/cjs/hooks/use-slot-drag-select.cjs.map +1 -1
- package/cjs/index.cjs +18 -0
- package/cjs/labels.cjs +5 -1
- package/cjs/labels.cjs.map +1 -1
- 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/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-group-to-resource-id-map/get-group-to-resource-id-map.cjs +12 -0
- package/cjs/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.cjs.map +1 -0
- package/cjs/utils/get-index-from-drag-point/get-index-from-drag-point.cjs +27 -0
- package/cjs/utils/get-index-from-drag-point/get-index-from-drag-point.cjs.map +1 -0
- 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/utils/get-ordered-resources/get-ordered-resources.cjs +54 -0
- package/cjs/utils/get-ordered-resources/get-ordered-resources.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.map +1 -1
- package/cjs/utils/get-weekdays-names/get-weekdays-names.cjs.map +1 -1
- package/cjs/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.cjs +88 -0
- package/cjs/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.cjs.map +1 -0
- 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.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/parse-time-string/parse-time-string.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/to-time-string/to-time-string.cjs.map +1 -1
- package/cjs/utils/validate-event/validate-event.cjs.map +1 -1
- package/esm/components/AgendaView/AgendaView.mjs +130 -0
- package/esm/components/AgendaView/AgendaView.mjs.map +1 -0
- package/esm/components/AgendaView/AgendaView.module.mjs +19 -0
- package/esm/components/AgendaView/AgendaView.module.mjs.map +1 -0
- package/esm/components/AgendaView/get-agenda-view-events.mjs +46 -0
- package/esm/components/AgendaView/get-agenda-view-events.mjs.map +1 -0
- package/esm/components/CurrentTimeIndicator/CurrentTimeIndicator.mjs.map +1 -1
- package/esm/components/DayView/DayView.mjs +128 -107
- package/esm/components/DayView/DayView.mjs.map +1 -1
- package/esm/components/DayView/DayView.module.mjs.map +1 -1
- 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.map +1 -1
- package/esm/components/MobileMonthView/MobileMonthView.mjs.map +1 -1
- package/esm/components/MobileMonthView/get-mobile-month-view-events.mjs.map +1 -1
- package/esm/components/MonthView/MonthView.mjs +115 -65
- 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/add-event-to-day-groups.mjs.map +1 -1
- 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.map +1 -1
- package/esm/components/MonthView/get-month-view-events/get-month-view-events.mjs.map +1 -1
- package/esm/components/MonthView/get-renderable-month-event-segments.mjs +17 -15
- package/esm/components/MonthView/get-renderable-month-event-segments.mjs.map +1 -1
- package/esm/components/MonthView/get-visible-columns.mjs +53 -0
- package/esm/components/MonthView/get-visible-columns.mjs.map +1 -0
- package/esm/components/MonthView/handle-month-view-key-down.mjs.map +1 -1
- package/esm/components/MoreEvents/MoreEvents.mjs.map +1 -1
- package/esm/components/ResourcesDayView/ResourcesDayView.mjs +576 -0
- package/esm/components/ResourcesDayView/ResourcesDayView.mjs.map +1 -0
- package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs +29 -0
- package/esm/components/ResourcesDayView/ResourcesDayView.module.mjs.map +1 -0
- package/esm/components/ResourcesDayView/ResourcesDayViewColumn.mjs +89 -0
- package/esm/components/ResourcesDayView/ResourcesDayViewColumn.mjs.map +1 -0
- package/esm/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.mjs +26 -0
- package/esm/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.mjs.map +1 -0
- package/esm/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.mjs +113 -0
- package/esm/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.mjs.map +1 -0
- package/esm/components/ResourcesMonthView/ResourcesMonthView.mjs +600 -0
- package/esm/components/ResourcesMonthView/ResourcesMonthView.mjs.map +1 -0
- package/esm/components/ResourcesMonthView/ResourcesMonthView.module.mjs +23 -0
- package/esm/components/ResourcesMonthView/ResourcesMonthView.module.mjs.map +1 -0
- package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs +102 -0
- package/esm/components/ResourcesSchedule/ResourcesSchedule.mjs.map +1 -0
- package/esm/components/ResourcesSchedule/ResourcesSchedule.module.mjs +7 -0
- package/esm/components/ResourcesSchedule/ResourcesSchedule.module.mjs.map +1 -0
- package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs +608 -0
- package/esm/components/ResourcesWeekView/ResourcesWeekView.mjs.map +1 -0
- package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs +33 -0
- package/esm/components/ResourcesWeekView/ResourcesWeekView.module.mjs.map +1 -0
- package/esm/components/ResourcesWeekView/ResourcesWeekViewRow.mjs +90 -0
- package/esm/components/ResourcesWeekView/ResourcesWeekViewRow.mjs.map +1 -0
- package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs +95 -0
- package/esm/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.mjs.map +1 -0
- package/esm/components/Schedule/Schedule.mjs +3 -2
- package/esm/components/Schedule/Schedule.mjs.map +1 -1
- package/esm/components/ScheduleEvent/ScheduleEvent.mjs +1 -1
- package/esm/components/ScheduleEvent/ScheduleEvent.mjs.map +1 -1
- 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.module.mjs +2 -0
- package/esm/components/ScheduleHeader/ScheduleHeader.module.mjs.map +1 -1
- package/esm/components/ScheduleHeader/ScheduleHeaderBase.mjs +29 -11
- 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 +128 -102
- package/esm/components/WeekView/WeekView.mjs.map +1 -1
- package/esm/components/WeekView/WeekView.module.mjs.map +1 -1
- package/esm/components/WeekView/WeekViewDay.mjs +3 -1
- package/esm/components/WeekView/WeekViewDay.mjs.map +1 -1
- package/esm/components/WeekView/get-week-label/get-week-label.mjs.map +1 -1
- 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.map +1 -1
- package/esm/components/WeekView/get-week-view-events/calculate-event-days.mjs.map +1 -1
- 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.map +1 -1
- package/esm/components/WeekView/get-week-view-events/get-week-positioned-events.mjs.map +1 -1
- package/esm/components/WeekView/handle-week-view-key-down.mjs.map +1 -1
- package/esm/components/YearView/YearView.mjs.map +1 -1
- package/esm/components/YearView/YearViewMonth.mjs.map +1 -1
- 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.map +1 -1
- package/esm/hooks/use-drag-drop-handlers.mjs.map +1 -1
- package/esm/hooks/use-event-resize.mjs.map +1 -1
- package/esm/hooks/use-horizontal-event-resize.mjs +151 -0
- package/esm/hooks/use-horizontal-event-resize.mjs.map +1 -0
- package/esm/index.mjs +10 -1
- package/esm/labels.mjs +5 -1
- package/esm/labels.mjs.map +1 -1
- 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.map +1 -1
- package/esm/utils/expand-recurring-events/expand-recurring-events.mjs.map +1 -1
- package/esm/utils/format-date/format-date.mjs.map +1 -1
- 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.map +1 -1
- package/esm/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.mjs +12 -0
- package/esm/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.mjs.map +1 -0
- package/esm/utils/get-index-from-drag-point/get-index-from-drag-point.mjs +27 -0
- package/esm/utils/get-index-from-drag-point/get-index-from-drag-point.mjs.map +1 -0
- package/esm/utils/get-month-days/get-month-days.mjs.map +1 -1
- 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.map +1 -1
- package/esm/utils/get-months-list/get-months-list.mjs.map +1 -1
- package/esm/utils/get-ordered-resources/get-ordered-resources.mjs +54 -0
- package/esm/utils/get-ordered-resources/get-ordered-resources.mjs.map +1 -0
- package/esm/utils/get-week-number/get-week-number.mjs.map +1 -1
- package/esm/utils/get-weekdays-names/get-weekdays-names.mjs.map +1 -1
- package/esm/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.mjs +88 -0
- package/esm/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.mjs.map +1 -0
- 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.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/esm/utils/is-multiday-event/is-multiday-event.mjs.map +1 -1
- package/esm/utils/is-same-month/is-same-month.mjs.map +1 -1
- package/esm/utils/is-within-week/is-within-week.mjs.map +1 -1
- package/esm/utils/next-week/next-week.mjs.map +1 -1
- package/esm/utils/parse-time-string/parse-time-string.mjs.map +1 -1
- package/esm/utils/previous-week/previous-week.mjs.map +1 -1
- package/esm/utils/sort-events/sort-events.mjs.map +1 -1
- package/esm/utils/to-date-string/to-date-string.mjs.map +1 -1
- package/esm/utils/to-time-string/to-time-string.mjs.map +1 -1
- package/esm/utils/validate-event/validate-event.mjs.map +1 -1
- package/lib/components/AgendaView/AgendaView.d.ts +54 -0
- package/lib/components/AgendaView/get-agenda-view-events.d.ts +9 -0
- package/lib/components/AgendaView/index.d.ts +2 -0
- package/lib/components/DayView/DayView.d.ts +6 -1
- package/lib/components/MonthView/MonthView.d.ts +6 -1
- package/lib/components/MonthView/get-renderable-month-event-segments.d.ts +5 -1
- package/lib/components/MonthView/get-visible-columns.d.ts +19 -0
- package/lib/components/ResourcesDayView/ResourcesDayView.d.ts +148 -0
- package/lib/components/ResourcesDayView/ResourcesDayViewColumn.d.ts +39 -0
- package/lib/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.d.ts +2 -0
- package/lib/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.d.ts +16 -0
- package/lib/components/ResourcesDayView/index.d.ts +9 -0
- package/lib/components/ResourcesMonthView/ResourcesMonthView.d.ts +129 -0
- package/lib/components/ResourcesMonthView/index.d.ts +9 -0
- package/lib/components/ResourcesSchedule/ResourcesSchedule.d.ts +123 -0
- package/lib/components/ResourcesSchedule/index.d.ts +3 -0
- package/lib/components/ResourcesWeekView/ResourcesWeekView.d.ts +106 -0
- package/lib/components/ResourcesWeekView/ResourcesWeekViewRow.d.ts +39 -0
- package/lib/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.d.ts +29 -0
- package/lib/components/ResourcesWeekView/index.d.ts +3 -0
- package/lib/components/Schedule/Schedule.d.ts +3 -1
- package/lib/components/ScheduleHeader/ScheduleHeaderBase.d.ts +5 -1
- package/lib/components/WeekView/WeekView.d.ts +6 -1
- package/lib/components/WeekView/WeekViewDay.d.ts +3 -1
- package/lib/hooks/use-horizontal-event-resize.d.ts +37 -0
- package/lib/index.d.mts +5 -0
- package/lib/index.d.ts +5 -0
- package/lib/labels.d.ts +4 -0
- package/lib/types.d.ts +20 -0
- package/lib/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.d.ts +3 -0
- package/lib/utils/get-index-from-drag-point/get-index-from-drag-point.d.ts +6 -0
- package/lib/utils/get-ordered-resources/get-ordered-resources.d.ts +17 -0
- package/lib/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.d.ts +10 -0
- package/lib/utils/index.d.ts +6 -0
- package/package.json +4 -4
- package/styles.css +1362 -9
- package/styles.layer.css +1363 -10
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { BoxProps, DataAttributes, ElementProps, Factory, MantineRadius, ScrollAreaProps, StylesApiProps } from '@mantine/core';
|
|
2
|
+
import { ScheduleLabelsOverride } from '../../labels';
|
|
3
|
+
import { DateLabelFormat, DateStringValue, DateTimeStringValue, DayOfWeek, ScheduleEventData, ScheduleMode, ScheduleResourceData, ScheduleResourceGroup, ScheduleViewLevel } from '../../types';
|
|
4
|
+
import { MoreEventsProps, MoreEventsStylesNames } from '../MoreEvents/MoreEvents';
|
|
5
|
+
import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
|
|
6
|
+
import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
|
|
7
|
+
import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
|
|
8
|
+
export type ResourcesWeekViewStylesNames = 'resourcesWeekView' | 'resourcesWeekViewRoot' | 'resourcesWeekViewInner' | 'resourcesWeekViewHeaderRows' | 'resourcesWeekViewHeaderContent' | 'resourcesWeekViewDayLabelsRow' | 'resourcesWeekViewDayLabel' | 'resourcesWeekViewTimeLabelsRow' | 'resourcesWeekViewScrollArea' | 'resourcesWeekViewCorner' | 'resourcesWeekViewTimeLabel' | 'resourcesWeekViewResourceLabel' | 'resourcesWeekViewRow' | 'resourcesWeekViewRowSlot' | 'resourcesWeekViewRowSlots' | 'resourcesWeekViewBackgroundEvent' | 'resourcesWeekViewAllDayEvent' | 'resourcesWeekViewCurrentTimeIndicator' | 'resourcesWeekViewCurrentTimeIndicatorLine' | 'resourcesWeekViewCurrentTimeIndicatorThumb' | 'resourcesWeekViewCurrentTimeIndicatorTimeBubble' | 'resourcesWeekViewEventWrapper' | 'resourcesWeekViewResizeHandle' | 'resourcesWeekViewGroupColumn' | 'resourcesWeekViewGroupColumnEmpty' | MoreEventsStylesNames | CombinedScheduleHeaderStylesNames;
|
|
9
|
+
export type ResourcesWeekViewCssVariables = {
|
|
10
|
+
resourcesWeekView: '--resources-week-view-radius' | '--resources-week-view-slot-width' | '--resources-week-view-row-height' | '--resources-week-view-group-label-width';
|
|
11
|
+
};
|
|
12
|
+
export interface ResourcesWeekViewProps extends BoxProps, StylesApiProps<ResourcesWeekViewFactory>, ElementProps<'div'> {
|
|
13
|
+
__staticSelector?: string;
|
|
14
|
+
date: Date | string;
|
|
15
|
+
onDateChange?: (value: DateStringValue) => void;
|
|
16
|
+
resources: ScheduleResourceData[];
|
|
17
|
+
startTime?: string;
|
|
18
|
+
endTime?: string;
|
|
19
|
+
intervalMinutes?: number;
|
|
20
|
+
slotLabelFormat?: DateLabelFormat;
|
|
21
|
+
radius?: MantineRadius;
|
|
22
|
+
/** Date and time to scroll to on initial render, in `YYYY-MM-DD HH:mm:ss` format */
|
|
23
|
+
startScrollDateTime?: string;
|
|
24
|
+
scrollAreaProps?: Partial<ScrollAreaProps> & DataAttributes;
|
|
25
|
+
locale?: string;
|
|
26
|
+
withCurrentTimeIndicator?: boolean;
|
|
27
|
+
withCurrentTimeBubble?: boolean;
|
|
28
|
+
withHeader?: boolean;
|
|
29
|
+
onViewChange?: (view: ScheduleViewLevel) => void;
|
|
30
|
+
previousControlProps?: React.ComponentProps<'button'> & DataAttributes;
|
|
31
|
+
nextControlProps?: React.ComponentProps<'button'> & DataAttributes;
|
|
32
|
+
todayControlProps?: React.ComponentProps<'button'> & DataAttributes;
|
|
33
|
+
viewSelectProps?: Partial<ViewSelectProps> & DataAttributes;
|
|
34
|
+
weekLabelFormat?: DateLabelFormat;
|
|
35
|
+
renderWeekLabel?: (params: {
|
|
36
|
+
weekStart: DateStringValue;
|
|
37
|
+
weekEnd: DateStringValue;
|
|
38
|
+
}) => React.ReactNode;
|
|
39
|
+
events?: ScheduleEventData[];
|
|
40
|
+
slotWidth?: React.CSSProperties['width'];
|
|
41
|
+
rowHeight?: React.CSSProperties['height'];
|
|
42
|
+
labels?: ScheduleLabelsOverride;
|
|
43
|
+
highlightBusinessHours?: boolean;
|
|
44
|
+
businessHours?: [string, string];
|
|
45
|
+
renderEventBody?: RenderEventBody;
|
|
46
|
+
renderEvent?: RenderEvent;
|
|
47
|
+
renderResourceLabel?: (resource: ScheduleResourceData) => React.ReactNode;
|
|
48
|
+
/** List of resource groups to display as a column to the left of resource labels */
|
|
49
|
+
groups?: ScheduleResourceGroup[];
|
|
50
|
+
/** Function to customize group label rendering */
|
|
51
|
+
renderGroupLabel?: (group: ScheduleResourceGroup) => React.ReactNode;
|
|
52
|
+
/** Width of the group label column @default 80px */
|
|
53
|
+
groupLabelWidth?: React.CSSProperties['width'];
|
|
54
|
+
withEventsDragAndDrop?: boolean;
|
|
55
|
+
onEventDrop?: (data: {
|
|
56
|
+
eventId: string | number;
|
|
57
|
+
newStart: DateTimeStringValue;
|
|
58
|
+
newEnd: DateTimeStringValue;
|
|
59
|
+
event: ScheduleEventData;
|
|
60
|
+
resourceId?: string | number;
|
|
61
|
+
}) => void;
|
|
62
|
+
canDragEvent?: (event: ScheduleEventData) => boolean;
|
|
63
|
+
onEventDragStart?: (event: ScheduleEventData) => void;
|
|
64
|
+
onEventDragEnd?: () => void;
|
|
65
|
+
onTimeSlotClick?: (data: {
|
|
66
|
+
slotStart: DateTimeStringValue;
|
|
67
|
+
slotEnd: DateTimeStringValue;
|
|
68
|
+
nativeEvent: React.MouseEvent<HTMLButtonElement>;
|
|
69
|
+
resourceId?: string | number;
|
|
70
|
+
}) => void;
|
|
71
|
+
onEventClick?: (event: ScheduleEventData, e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
72
|
+
withDragSlotSelect?: boolean;
|
|
73
|
+
onSlotDragEnd?: (data: {
|
|
74
|
+
rangeStart: DateTimeStringValue;
|
|
75
|
+
rangeEnd: DateTimeStringValue;
|
|
76
|
+
resourceId?: string | number;
|
|
77
|
+
}) => void;
|
|
78
|
+
mode?: ScheduleMode;
|
|
79
|
+
onExternalEventDrop?: (data: {
|
|
80
|
+
dataTransfer: DataTransfer;
|
|
81
|
+
dropDateTime: DateTimeStringValue;
|
|
82
|
+
resourceId?: string | number;
|
|
83
|
+
}) => void;
|
|
84
|
+
recurrenceExpansionLimit?: number;
|
|
85
|
+
/** Maximum number of events visible per time slot before "+more" indicator shows, minimum value is 1 @default 2 */
|
|
86
|
+
maxEventsPerTimeSlot?: number;
|
|
87
|
+
/** Props passed down to `MoreEvents` component */
|
|
88
|
+
moreEventsProps?: Partial<MoreEventsProps>;
|
|
89
|
+
firstDayOfWeek?: DayOfWeek;
|
|
90
|
+
weekendDays?: DayOfWeek[];
|
|
91
|
+
withWeekendDays?: boolean;
|
|
92
|
+
weekdayFormat?: DateLabelFormat;
|
|
93
|
+
highlightToday?: boolean;
|
|
94
|
+
}
|
|
95
|
+
export type ResourcesWeekViewFactory = Factory<{
|
|
96
|
+
props: ResourcesWeekViewProps;
|
|
97
|
+
ref: HTMLDivElement;
|
|
98
|
+
stylesNames: ResourcesWeekViewStylesNames;
|
|
99
|
+
vars: ResourcesWeekViewCssVariables;
|
|
100
|
+
}>;
|
|
101
|
+
export declare const ResourcesWeekView: import("@mantine/core").MantineComponent<{
|
|
102
|
+
props: ResourcesWeekViewProps;
|
|
103
|
+
ref: HTMLDivElement;
|
|
104
|
+
stylesNames: ResourcesWeekViewStylesNames;
|
|
105
|
+
vars: ResourcesWeekViewCssVariables;
|
|
106
|
+
}>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { GetStylesApi } from '@mantine/core';
|
|
2
|
+
import { ScheduleLabelsOverride } from '../../labels';
|
|
3
|
+
import { ScheduleMode, ScheduleResourceData, ScheduleResourceGroup } from '../../types';
|
|
4
|
+
import { DayTimeInterval, ResourceGroupInfo, ResourcesGridControlsRef } from '../../utils';
|
|
5
|
+
import type { ResourcesWeekViewFactory } from './ResourcesWeekView';
|
|
6
|
+
export interface ResourcesWeekViewRowProps {
|
|
7
|
+
resource: ScheduleResourceData;
|
|
8
|
+
resourceIndex: number;
|
|
9
|
+
weekdays: string[];
|
|
10
|
+
slots: DayTimeInterval[];
|
|
11
|
+
getStyles: GetStylesApi<ResourcesWeekViewFactory>;
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
labels?: ScheduleLabelsOverride;
|
|
14
|
+
highlightBusinessHours?: boolean;
|
|
15
|
+
businessHours?: [string, string];
|
|
16
|
+
withEventsDragAndDrop?: boolean;
|
|
17
|
+
onRowSlotsDragOver?: (e: React.DragEvent<HTMLDivElement>, resourceId: string | number, resourceIndex: number) => void;
|
|
18
|
+
onRowSlotsDragLeave?: () => void;
|
|
19
|
+
onRowSlotsDrop?: (e: React.DragEvent<HTMLDivElement>, resourceId: string | number, resourceIndex: number) => void;
|
|
20
|
+
onSlotClick?: (resourceId: string | number, day: string, slotTime: string, event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
21
|
+
dropTargetSlotIndex?: number;
|
|
22
|
+
mode?: ScheduleMode;
|
|
23
|
+
slotsRef?: ResourcesGridControlsRef;
|
|
24
|
+
firstSlotIndex?: {
|
|
25
|
+
resourceIndex: number;
|
|
26
|
+
slotIndex: number;
|
|
27
|
+
};
|
|
28
|
+
onSlotKeyDown?: (event: React.KeyboardEvent<HTMLButtonElement>, resourceIndex: number, slotIndex: number) => void;
|
|
29
|
+
withDragSlotSelect?: boolean;
|
|
30
|
+
onSlotPointerDown?: (event: React.PointerEvent<HTMLButtonElement>, index: number, group: string) => void;
|
|
31
|
+
isSlotDragSelected?: (index: number, group: string) => boolean;
|
|
32
|
+
rowSlotsContainerRef?: (node: HTMLDivElement | null) => void;
|
|
33
|
+
renderResourceLabel?: (resource: ScheduleResourceData) => React.ReactNode;
|
|
34
|
+
renderGroupLabel?: (group: ScheduleResourceGroup) => React.ReactNode;
|
|
35
|
+
scrolledX?: boolean;
|
|
36
|
+
groupInfo?: ResourceGroupInfo | null;
|
|
37
|
+
allDayCount?: number;
|
|
38
|
+
}
|
|
39
|
+
export declare function ResourcesWeekViewRow({ resource, resourceIndex, weekdays, slots, getStyles, children, labels, highlightBusinessHours, businessHours, withEventsDragAndDrop, onRowSlotsDragOver, onRowSlotsDragLeave, onRowSlotsDrop, onSlotClick, dropTargetSlotIndex, mode, slotsRef, firstSlotIndex, onSlotKeyDown, withDragSlotSelect, onSlotPointerDown, isSlotDragSelected, rowSlotsContainerRef, renderResourceLabel, renderGroupLabel, scrolledX, groupInfo, allDayCount, }: ResourcesWeekViewRowProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ScheduleEventData, ScheduleResourceData } from '../../../types';
|
|
2
|
+
import { ResourcesDayViewEventsResult } from '../../ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events';
|
|
3
|
+
/** A single all-day bar (single-day all-day event or a multi-day event) spanning one or more
|
|
4
|
+
* consecutive visible weekdays, placed on a shared row so overlapping bars do not collide. */
|
|
5
|
+
export interface ResourcesWeekViewAllDayBar {
|
|
6
|
+
/** The original event, with its declared start/end preserved for display and interaction */
|
|
7
|
+
event: ScheduleEventData;
|
|
8
|
+
/** Index of the first visible weekday the bar covers */
|
|
9
|
+
startDayIndex: number;
|
|
10
|
+
/** Index of the last visible weekday the bar covers */
|
|
11
|
+
endDayIndex: number;
|
|
12
|
+
/** Row within the all-day band, assigned so overlapping bars stack instead of overlapping */
|
|
13
|
+
row: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ResourcesWeekViewEventsResult {
|
|
16
|
+
byDay: Record<string, ResourcesDayViewEventsResult>;
|
|
17
|
+
/** All-day bars per resource, each spanning the days it covers as a single continuous bar */
|
|
18
|
+
allDayBars: Record<string | number, ResourcesWeekViewAllDayBar[]>;
|
|
19
|
+
}
|
|
20
|
+
interface GetResourcesWeekViewEventsInput {
|
|
21
|
+
events: ScheduleEventData[] | undefined;
|
|
22
|
+
resources: ScheduleResourceData[];
|
|
23
|
+
weekdays: string[];
|
|
24
|
+
startTime?: string;
|
|
25
|
+
endTime?: string;
|
|
26
|
+
expansionLimit?: number;
|
|
27
|
+
}
|
|
28
|
+
export declare function getResourcesWeekViewEvents({ events, resources, weekdays, startTime, endTime, expansionLimit, }: GetResourcesWeekViewEventsInput): ResourcesWeekViewEventsResult;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ResourcesWeekViewCssVariables, ResourcesWeekViewFactory, ResourcesWeekViewProps, ResourcesWeekViewStylesNames } from './ResourcesWeekView';
|
|
2
|
+
export { ResourcesWeekView } from './ResourcesWeekView';
|
|
3
|
+
export type { ResourcesWeekViewProps, ResourcesWeekViewFactory, ResourcesWeekViewStylesNames, ResourcesWeekViewCssVariables, };
|
|
@@ -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' | 'withEventResize' | 'onEventResize' | 'canResizeEvent' | 'recurrenceExpansionLimit';
|
|
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' | 'withAgenda' | '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;
|
|
@@ -101,6 +101,8 @@ export interface ScheduleProps extends BoxProps, StylesApiProps<ScheduleFactory>
|
|
|
101
101
|
yearViewProps?: ScheduleViewProps<YearViewProps>;
|
|
102
102
|
/** Props specific to MobileMonthView (used in responsive layout) */
|
|
103
103
|
mobileMonthViewProps?: ScheduleViewProps<MobileMonthViewProps>;
|
|
104
|
+
/** If set, displays an Agenda button in the header of DayView, WeekView and MonthView @default false */
|
|
105
|
+
withAgenda?: boolean;
|
|
104
106
|
}
|
|
105
107
|
export type ScheduleFactory = Factory<{
|
|
106
108
|
props: ScheduleProps;
|
|
@@ -48,6 +48,10 @@ export interface ScheduleHeaderBaseProps {
|
|
|
48
48
|
viewSelectProps?: Partial<ViewSelectProps>;
|
|
49
49
|
/** Styles API props to pass through */
|
|
50
50
|
stylesApiProps?: StylesApiProps<any>;
|
|
51
|
+
/** Called when agenda button is clicked */
|
|
52
|
+
onAgendaClick?: () => void;
|
|
53
|
+
/** Whether the agenda view is currently active */
|
|
54
|
+
agendaActive?: boolean;
|
|
51
55
|
}
|
|
52
|
-
export declare function ScheduleHeaderBase({ view, navigationHandlers, control, labels, onDateChange, onViewChange, previousControlProps, nextControlProps, todayControlProps, viewSelectProps, stylesApiProps, }: ScheduleHeaderBaseProps): import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
export declare function ScheduleHeaderBase({ view, navigationHandlers, control, labels, onDateChange, onViewChange, previousControlProps, nextControlProps, todayControlProps, viewSelectProps, stylesApiProps, onAgendaClick, agendaActive, }: ScheduleHeaderBaseProps): import("react/jsx-runtime").JSX.Element;
|
|
53
57
|
export {};
|
|
@@ -2,11 +2,12 @@ import { BoxProps, DataAttributes, ElementProps, Factory, MantineRadius, ScrollA
|
|
|
2
2
|
import { ScheduleLabelsOverride } from '../../labels';
|
|
3
3
|
import { AnyDateValue, DateLabelFormat, DateStringValue, DateTimeStringValue, DayOfWeek, ScheduleEventData, ScheduleMode, ScheduleViewLevel } from '../../types';
|
|
4
4
|
import { BusinessHoursValue } from '../../utils';
|
|
5
|
+
import { AgendaViewStylesNames } from '../AgendaView/AgendaView';
|
|
5
6
|
import { CurrentTimeIndicatorStylesNames } from '../CurrentTimeIndicator/CurrentTimeIndicator';
|
|
6
7
|
import { RenderEvent, RenderEventBody } from '../ScheduleEvent/ScheduleEvent';
|
|
7
8
|
import { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader';
|
|
8
9
|
import { ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect';
|
|
9
|
-
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;
|
|
10
|
+
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 | AgendaViewStylesNames;
|
|
10
11
|
export type WeekViewCssVariables = {
|
|
11
12
|
weekView: '--week-view-radius' | '--week-view-slot-height' | '--week-view-all-day-slots-height';
|
|
12
13
|
};
|
|
@@ -22,6 +23,8 @@ export interface WeekViewProps extends BoxProps, StylesApiProps<WeekViewFactory>
|
|
|
22
23
|
endTime?: string;
|
|
23
24
|
/** Number of minutes for each interval in the day view @default 60 */
|
|
24
25
|
intervalMinutes?: number;
|
|
26
|
+
/** If set, grid lines are displayed for intervals smaller than one hour, for example 15 and 30 minutes intervals @default true */
|
|
27
|
+
withSubHourGridLines?: boolean;
|
|
25
28
|
/** Dayjs format for slot labels or a callback function that returns formatted value @default HH:mm */
|
|
26
29
|
slotLabelFormat?: DateLabelFormat;
|
|
27
30
|
/** Number 0-6, where 0 – Sunday and 6 – Saturday. @default 1 – Monday */
|
|
@@ -140,6 +143,8 @@ export interface WeekViewProps extends BoxProps, StylesApiProps<WeekViewFactory>
|
|
|
140
143
|
start: DateTimeStringValue;
|
|
141
144
|
end: DateTimeStringValue;
|
|
142
145
|
}) => Record<string, any> | undefined;
|
|
146
|
+
/** If set, displays an Agenda button in the header that opens an agenda list view @default false */
|
|
147
|
+
withAgenda?: boolean;
|
|
143
148
|
}
|
|
144
149
|
export type WeekViewFactory = Factory<{
|
|
145
150
|
props: WeekViewProps;
|
|
@@ -11,6 +11,8 @@ export interface WeekViewDayProps {
|
|
|
11
11
|
dayIndex: number;
|
|
12
12
|
/** Slots intervals */
|
|
13
13
|
slots: DayTimeInterval[];
|
|
14
|
+
/** Number of minutes for each interval, used to calculate slot height */
|
|
15
|
+
intervalMinutes: number;
|
|
14
16
|
/** `useStyles` return value of `WeekView` */
|
|
15
17
|
getStyles: GetStylesApi<WeekViewFactory>;
|
|
16
18
|
/** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday. The default value is defined by `DatesProvider`. */
|
|
@@ -62,4 +64,4 @@ export interface WeekViewDayProps {
|
|
|
62
64
|
end: DateTimeStringValue;
|
|
63
65
|
}) => Record<string, any> | undefined;
|
|
64
66
|
}
|
|
65
|
-
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, getTimeSlotProps, }: WeekViewDayProps): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
export declare function WeekViewDay({ day, dayIndex, slots, intervalMinutes, getStyles, weekendDays, children, labels, highlightBusinessHours, businessHours, withEventsDragAndDrop, onDaySlotsDragOver, onDaySlotsDragLeave, onDaySlotsDrop, onSlotClick, dropTargetSlotIndex, mode, slotsRef, firstSlotIndex, onSlotKeyDown, onFirstSlotArrowUp, withDragSlotSelect, onSlotPointerDown, isSlotDragSelected, daySlotsContainerRef, getTimeSlotProps, }: WeekViewDayProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { DateTimeStringValue, ScheduleEventData, ScheduleMode } from '../types';
|
|
2
|
+
type ResizeEdge = 'start' | 'end';
|
|
3
|
+
export interface UseHorizontalEventResizeInput {
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
mode?: ScheduleMode;
|
|
6
|
+
startTime: string;
|
|
7
|
+
endTime: string;
|
|
8
|
+
intervalMinutes: number;
|
|
9
|
+
onEventResize?: (data: {
|
|
10
|
+
eventId: string | number;
|
|
11
|
+
newStart: DateTimeStringValue;
|
|
12
|
+
newEnd: DateTimeStringValue;
|
|
13
|
+
event: ScheduleEventData;
|
|
14
|
+
}) => void;
|
|
15
|
+
canResizeEvent?: (event: ScheduleEventData) => boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function useHorizontalEventResize({ enabled, mode, startTime, endTime, intervalMinutes, onEventResize, canResizeEvent, }: UseHorizontalEventResizeInput): {
|
|
18
|
+
handleResizeStart: ({ event, edge, container, originalLeft, originalWidth, eventDate, pointerEvent, }: {
|
|
19
|
+
event: ScheduleEventData;
|
|
20
|
+
edge: ResizeEdge;
|
|
21
|
+
container: HTMLElement;
|
|
22
|
+
originalLeft: number;
|
|
23
|
+
originalWidth: number;
|
|
24
|
+
eventDate: string;
|
|
25
|
+
pointerEvent: React.PointerEvent;
|
|
26
|
+
}) => void;
|
|
27
|
+
isResizing: boolean;
|
|
28
|
+
resizingEventId: string | number | null;
|
|
29
|
+
resizingEdge: ResizeEdge | null;
|
|
30
|
+
getResizePosition: (eventId: string | number) => {
|
|
31
|
+
left: number;
|
|
32
|
+
width: number;
|
|
33
|
+
} | null;
|
|
34
|
+
isResizableEvent: (event: ScheduleEventData) => boolean;
|
|
35
|
+
wasResizing: () => boolean;
|
|
36
|
+
};
|
|
37
|
+
export {};
|
package/lib/index.d.mts
CHANGED
|
@@ -7,6 +7,11 @@ export * from './components/DayView';
|
|
|
7
7
|
export * from './components/WeekView';
|
|
8
8
|
export * from './components/MonthView';
|
|
9
9
|
export * from './components/YearView';
|
|
10
|
+
export * from './components/ResourcesDayView';
|
|
11
|
+
export * from './components/ResourcesWeekView';
|
|
12
|
+
export * from './components/ResourcesMonthView';
|
|
13
|
+
export * from './components/ResourcesSchedule';
|
|
14
|
+
export * from './components/AgendaView';
|
|
10
15
|
export * from './components/ScheduleEvent';
|
|
11
16
|
export * from './components/ScheduleHeader';
|
|
12
17
|
export * from './components/CurrentTimeIndicator';
|
package/lib/index.d.ts
CHANGED
|
@@ -7,6 +7,11 @@ export * from './components/DayView';
|
|
|
7
7
|
export * from './components/WeekView';
|
|
8
8
|
export * from './components/MonthView';
|
|
9
9
|
export * from './components/YearView';
|
|
10
|
+
export * from './components/ResourcesDayView';
|
|
11
|
+
export * from './components/ResourcesWeekView';
|
|
12
|
+
export * from './components/ResourcesMonthView';
|
|
13
|
+
export * from './components/ResourcesSchedule';
|
|
14
|
+
export * from './components/AgendaView';
|
|
10
15
|
export * from './components/ScheduleEvent';
|
|
11
16
|
export * from './components/ScheduleHeader';
|
|
12
17
|
export * from './components/CurrentTimeIndicator';
|
package/lib/labels.d.ts
CHANGED
|
@@ -19,6 +19,10 @@ export interface ScheduleLabels {
|
|
|
19
19
|
viewSelectLabel: string;
|
|
20
20
|
noEvents: string;
|
|
21
21
|
moreLabel: (hiddenEventsCount: number) => string;
|
|
22
|
+
resource?: string;
|
|
23
|
+
resources?: string;
|
|
24
|
+
resourceSlot?: string;
|
|
25
|
+
agenda?: string;
|
|
22
26
|
}
|
|
23
27
|
export declare const DEFAULT_SCHEDULE_LABELS: ScheduleLabels;
|
|
24
28
|
export type ScheduleLabelsOverride = Partial<ScheduleLabels>;
|
package/lib/types.d.ts
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
import dayjs from 'dayjs';
|
|
2
2
|
import { MantineColor } from '@mantine/core';
|
|
3
|
+
/** Resource data object passed to resource view components */
|
|
4
|
+
export interface ScheduleResourceData {
|
|
5
|
+
/** Unique resource identifier */
|
|
6
|
+
id: string | number;
|
|
7
|
+
/** Resource display label */
|
|
8
|
+
label: React.ReactNode;
|
|
9
|
+
/** Optional color for the resource */
|
|
10
|
+
color?: MantineColor;
|
|
11
|
+
/** Additional resource data, defined by the user, not used internally by the library */
|
|
12
|
+
payload?: Record<PropertyKey, any>;
|
|
13
|
+
}
|
|
14
|
+
/** Group definition for resource views, groups are displayed as a rowspan-style column */
|
|
15
|
+
export interface ScheduleResourceGroup {
|
|
16
|
+
/** Group display label */
|
|
17
|
+
label: React.ReactNode;
|
|
18
|
+
/** Resource IDs that belong to this group */
|
|
19
|
+
resourceIds: (string | number)[];
|
|
20
|
+
}
|
|
3
21
|
/** Date value type used by internal package utils */
|
|
4
22
|
export type AnyDateValue = DateStringValue | Date | dayjs.Dayjs;
|
|
5
23
|
/** Date value used by all Mantine components, format: `YYYY-MM-DD` */
|
|
@@ -54,6 +72,8 @@ interface ScheduleEventBase<Payload extends EventPayload = EventPayload> {
|
|
|
54
72
|
display?: 'default' | 'background';
|
|
55
73
|
/** Additional event data, defined by the user, not used internally by the library */
|
|
56
74
|
payload?: Payload;
|
|
75
|
+
/** Resource ID that this event belongs to, used by resource view components */
|
|
76
|
+
resourceId?: string | number;
|
|
57
77
|
}
|
|
58
78
|
/** One-off event without recurrence */
|
|
59
79
|
export interface ScheduleSingleEventData<Payload extends EventPayload = EventPayload> extends ScheduleEventBase<Payload> {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finds the index of the element whose horizontal bounds contain `clientX`.
|
|
3
|
+
* When `clientX` falls outside every element, it clamps to the first or last
|
|
4
|
+
* element; returns `null` when no element matches and the row is empty.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getIndexFromDragPoint(elements: (HTMLElement | null)[], clientX: number): number | null;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ScheduleResourceData, ScheduleResourceGroup } from '../../types';
|
|
2
|
+
export interface GroupRange {
|
|
3
|
+
group: ScheduleResourceGroup;
|
|
4
|
+
startIndex: number;
|
|
5
|
+
count: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ResourceGroupInfo {
|
|
8
|
+
group: ScheduleResourceGroup;
|
|
9
|
+
position: 'first' | 'middle' | 'last' | 'only';
|
|
10
|
+
count: number;
|
|
11
|
+
}
|
|
12
|
+
export interface OrderedResourcesResult {
|
|
13
|
+
orderedResources: ScheduleResourceData[];
|
|
14
|
+
groupRanges: GroupRange[];
|
|
15
|
+
resourceGroupMap: (ResourceGroupInfo | null)[];
|
|
16
|
+
}
|
|
17
|
+
export declare function getOrderedResources(resources: ScheduleResourceData[], groups: ScheduleResourceGroup[] | undefined): OrderedResourcesResult;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
/** Reference to a 2D array of slot buttons: [resourceIndex][slotIndex] */
|
|
3
|
+
export type ResourcesGridControlsRef = RefObject<HTMLButtonElement[][]>;
|
|
4
|
+
export interface HandleResourcesGridKeyDownInput {
|
|
5
|
+
controlsRef: ResourcesGridControlsRef;
|
|
6
|
+
resourceIndex: number;
|
|
7
|
+
slotIndex: number;
|
|
8
|
+
event: React.KeyboardEvent<HTMLButtonElement>;
|
|
9
|
+
}
|
|
10
|
+
export declare function handleResourcesGridKeyDown({ controlsRef, resourceIndex, slotIndex, event, }: HandleResourcesGridKeyDownInput): void;
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -39,3 +39,9 @@ export type { ParsedTime } from './parse-time-string/parse-time-string';
|
|
|
39
39
|
export type { CalculateDropTimeInput, CalculateDropTimeResult, } from './calculate-drop-time/calculate-drop-time';
|
|
40
40
|
export type { CalculateMonthDropDateInput, CalculateMonthDropDateResult, } from './calculate-month-drop-date/calculate-month-drop-date';
|
|
41
41
|
export type { BusinessHoursMod, BusinessHoursPerDay, BusinessHoursRange, BusinessHoursValue, GetBusinessHoursModInput, } from './get-business-hours-mod/get-business-hours-mod';
|
|
42
|
+
export { getOrderedResources } from './get-ordered-resources/get-ordered-resources';
|
|
43
|
+
export type { GroupRange, OrderedResourcesResult, ResourceGroupInfo, } from './get-ordered-resources/get-ordered-resources';
|
|
44
|
+
export { handleResourcesGridKeyDown } from './handle-resources-grid-key-down/handle-resources-grid-key-down';
|
|
45
|
+
export type { HandleResourcesGridKeyDownInput, ResourcesGridControlsRef, } from './handle-resources-grid-key-down/handle-resources-grid-key-down';
|
|
46
|
+
export { getGroupToResourceIdMap } from './get-group-to-resource-id-map/get-group-to-resource-id-map';
|
|
47
|
+
export { getIndexFromDragPoint } from './get-index-from-drag-point/get-index-from-drag-point';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantine/schedule",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.4.0",
|
|
4
4
|
"description": "Schedule Mantine component",
|
|
5
5
|
"homepage": "https://mantine.dev/",
|
|
6
6
|
"license": "MIT",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"directory": "packages/@mantine/schedule"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@mantine/core": "9.
|
|
39
|
-
"@mantine/dates": "9.
|
|
40
|
-
"@mantine/hooks": "9.
|
|
38
|
+
"@mantine/core": "9.4.0",
|
|
39
|
+
"@mantine/dates": "9.4.0",
|
|
40
|
+
"@mantine/hooks": "9.4.0",
|
|
41
41
|
"react": "^19.2.0",
|
|
42
42
|
"react-dom": "^19.2.0"
|
|
43
43
|
},
|