@mantine-vue/schedule 2.1.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/cjs/index.cjs +2228 -1
  2. package/cjs/index.cjs.map +1 -1
  3. package/esm/index.mjs +2220 -3
  4. package/esm/index.mjs.map +1 -1
  5. package/lib/components/ResourcesDayView/ResourcesDayView.d.ts +346 -0
  6. package/lib/components/ResourcesDayView/get-overlap-clusters/get-overlap-clusters.d.ts +2 -0
  7. package/lib/components/ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events.d.ts +15 -0
  8. package/lib/components/ResourcesDayView/index.d.ts +3 -0
  9. package/lib/components/ResourcesMonthView/ResourcesMonthView.d.ts +279 -0
  10. package/lib/components/ResourcesMonthView/index.d.ts +1 -0
  11. package/lib/components/ResourcesSchedule/ResourcesSchedule.d.ts +201 -0
  12. package/lib/components/ResourcesSchedule/index.d.ts +1 -0
  13. package/lib/components/ResourcesWeekView/ResourcesWeekView.d.ts +412 -0
  14. package/lib/components/ResourcesWeekView/get-resources-week-view-events/get-resources-week-view-events.d.ts +21 -0
  15. package/lib/components/ResourcesWeekView/index.d.ts +2 -0
  16. package/lib/hooks/use-horizontal-event-resize.d.ts +200 -0
  17. package/lib/index.d.mts +4 -0
  18. package/lib/index.d.ts +4 -0
  19. package/lib/labels.d.ts +3 -0
  20. package/lib/types.d.ts +15 -0
  21. package/lib/utils/get-group-to-resource-id-map/get-group-to-resource-id-map.d.ts +2 -0
  22. package/lib/utils/get-ordered-resources/get-ordered-resources.d.ts +17 -0
  23. package/lib/utils/handle-resources-grid-key-down/handle-resources-grid-key-down.d.ts +8 -0
  24. package/lib/utils/index.d.ts +5 -0
  25. package/package.json +4 -4
  26. package/styles.css +933 -0
  27. package/styles.layer.css +933 -0
@@ -0,0 +1,201 @@
1
+ import { type PropType, type SlotsType, type VNodeChild } from 'vue';
2
+ import type { RenderEventBody } from '../../component-props';
3
+ import type { ScheduleLabelsOverride } from '../../labels';
4
+ import type { DateStringValue, ScheduleEventData, ScheduleMode, ScheduleResourceData, ScheduleResourceGroup } from '../../types';
5
+ import { type ResourcesDayViewProps, type ResourcesDayViewStylesNames } from '../ResourcesDayView/ResourcesDayView';
6
+ import { type ResourcesMonthViewProps, type ResourcesMonthViewStylesNames } from '../ResourcesMonthView/ResourcesMonthView';
7
+ import { type ResourcesWeekViewProps, type ResourcesWeekViewStylesNames } from '../ResourcesWeekView/ResourcesWeekView';
8
+ export type ResourcesScheduleStylesNames = 'root' | ResourcesDayViewStylesNames | ResourcesWeekViewStylesNames | ResourcesMonthViewStylesNames;
9
+ export type ResourcesScheduleViewLevel = 'day' | 'week' | 'month';
10
+ type ResourcesScheduleCommonProps = 'date' | 'onDateChange' | 'resources' | 'events' | 'locale' | 'radius' | 'labels' | 'renderEventBody' | 'renderResourceLabel' | 'withEventsDragAndDrop' | 'onEventDrop' | 'canDragEvent' | 'onEventDragStart' | 'onEventDragEnd' | 'onTimeSlotClick' | 'onEventClick' | 'onDayClick' | 'withDragSlotSelect' | 'onSlotDragEnd' | 'onViewChange' | 'mode' | 'onExternalEventDrop' | 'withEventResize' | 'onEventResize' | 'canResizeEvent' | 'recurrenceExpansionLimit';
11
+ /** View-specific props with the shared/common props removed */
12
+ export type ResourcesScheduleViewProps<T> = Partial<Omit<T, ResourcesScheduleCommonProps>>;
13
+ export interface ResourcesScheduleProps {
14
+ /** List of resources to display */
15
+ resources: ScheduleResourceData[];
16
+ /** Current date to display (controlled) */
17
+ date?: Date | DateStringValue;
18
+ /** Default date (uncontrolled) */
19
+ defaultDate?: Date | DateStringValue;
20
+ /** Called when date changes via navigation */
21
+ onDateChange?: (date: DateStringValue) => void;
22
+ /** Current view level (controlled) */
23
+ view?: ResourcesScheduleViewLevel;
24
+ /** Default view level (uncontrolled) @default 'day' */
25
+ defaultView?: ResourcesScheduleViewLevel;
26
+ /** Called when view level changes */
27
+ onViewChange?: (view: ResourcesScheduleViewLevel) => void;
28
+ /** Events to display across all views */
29
+ events?: ScheduleEventData[];
30
+ /** Locale for date formatting */
31
+ locale?: string;
32
+ /** Key of theme.radius or any valid CSS value to set border-radius */
33
+ radius?: string | number;
34
+ /** Labels override for i18n */
35
+ labels?: ScheduleLabelsOverride;
36
+ /** Custom event body renderer */
37
+ renderEventBody?: RenderEventBody;
38
+ /** Custom resource label renderer */
39
+ renderResourceLabel?: (resource: ScheduleResourceData) => VNodeChild;
40
+ /** Enable drag and drop for events @default false */
41
+ withEventsDragAndDrop?: boolean;
42
+ /** Called when event is dropped */
43
+ onEventDrop?: ResourcesDayViewProps['onEventDrop'];
44
+ /** Function to determine if event can be dragged */
45
+ canDragEvent?: ResourcesDayViewProps['canDragEvent'];
46
+ /** Called when any event drag starts */
47
+ onEventDragStart?: ResourcesDayViewProps['onEventDragStart'];
48
+ /** Called when any event drag ends */
49
+ onEventDragEnd?: ResourcesDayViewProps['onEventDragEnd'];
50
+ /** Called when time slot is clicked (day/week views) */
51
+ onTimeSlotClick?: ResourcesDayViewProps['onTimeSlotClick'];
52
+ /** Called when day is clicked in month view */
53
+ onDayClick?: ResourcesMonthViewProps['onDayClick'];
54
+ /** Called when event is clicked */
55
+ onEventClick?: ResourcesDayViewProps['onEventClick'];
56
+ /** If set, enables drag-to-select slot ranges @default false */
57
+ withDragSlotSelect?: boolean;
58
+ /** Called when a slot range is selected by dragging */
59
+ onSlotDragEnd?: ResourcesDayViewProps['onSlotDragEnd'];
60
+ /** Interaction mode @default 'default' */
61
+ mode?: ScheduleMode;
62
+ /** Called when an external item is dropped onto the schedule */
63
+ onExternalEventDrop?: ResourcesDayViewProps['onExternalEventDrop'];
64
+ /** If true, events can be resized (day/week views) @default false */
65
+ withEventResize?: boolean;
66
+ /** Called when event is resized */
67
+ onEventResize?: ResourcesDayViewProps['onEventResize'];
68
+ /** Function to determine if event can be resized */
69
+ canResizeEvent?: ResourcesDayViewProps['canResizeEvent'];
70
+ /** Max number of generated recurring instances @default 2000 */
71
+ recurrenceExpansionLimit?: number;
72
+ /** Props specific to ResourcesDayView */
73
+ dayViewProps?: ResourcesScheduleViewProps<ResourcesDayViewProps>;
74
+ /** Props specific to ResourcesWeekView */
75
+ weekViewProps?: ResourcesScheduleViewProps<ResourcesWeekViewProps>;
76
+ /** Props specific to ResourcesMonthView */
77
+ monthViewProps?: ResourcesScheduleViewProps<ResourcesMonthViewProps>;
78
+ }
79
+ export interface ResourcesScheduleSlots {
80
+ /** Scoped alternative to the `renderResourceLabel` prop */
81
+ resourceLabel?: (props: {
82
+ resource: ScheduleResourceData;
83
+ }) => VNodeChild;
84
+ /** Scoped alternative to the `renderGroupLabel` view prop */
85
+ groupLabel?: (props: {
86
+ group: ScheduleResourceGroup;
87
+ }) => VNodeChild;
88
+ /** Content rendered in the top-left corner of the grid */
89
+ corner?: (props: {
90
+ resources: ScheduleResourceData[];
91
+ }) => VNodeChild;
92
+ /** Scoped alternative to the `renderEventBody` prop */
93
+ eventBody?: (props: {
94
+ event: ScheduleEventData;
95
+ }) => VNodeChild;
96
+ /** Scoped alternative to the `renderEvent` view prop */
97
+ event?: (props: Record<string, unknown> & {
98
+ event: ScheduleEventData;
99
+ }) => VNodeChild;
100
+ }
101
+ export declare const ResourcesSchedule: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
102
+ resources: {
103
+ type: PropType<ScheduleResourceData[]>;
104
+ required: true;
105
+ };
106
+ date: PropType<Date | DateStringValue>;
107
+ defaultDate: PropType<Date | DateStringValue>;
108
+ onDateChange: PropType<(date: DateStringValue) => void>;
109
+ view: PropType<ResourcesScheduleViewLevel>;
110
+ defaultView: {
111
+ type: PropType<ResourcesScheduleViewLevel>;
112
+ default: string;
113
+ };
114
+ onViewChange: PropType<(view: ResourcesScheduleViewLevel) => void>;
115
+ events: PropType<ScheduleEventData[]>;
116
+ locale: StringConstructor;
117
+ radius: PropType<string | number>;
118
+ labels: PropType<ScheduleLabelsOverride>;
119
+ renderEventBody: PropType<RenderEventBody>;
120
+ renderResourceLabel: PropType<ResourcesScheduleProps["renderResourceLabel"]>;
121
+ withEventsDragAndDrop: BooleanConstructor;
122
+ onEventDrop: PropType<ResourcesScheduleProps["onEventDrop"]>;
123
+ canDragEvent: PropType<ResourcesScheduleProps["canDragEvent"]>;
124
+ onEventDragStart: PropType<ResourcesScheduleProps["onEventDragStart"]>;
125
+ onEventDragEnd: PropType<ResourcesScheduleProps["onEventDragEnd"]>;
126
+ onTimeSlotClick: PropType<ResourcesScheduleProps["onTimeSlotClick"]>;
127
+ onDayClick: PropType<ResourcesScheduleProps["onDayClick"]>;
128
+ onEventClick: PropType<ResourcesScheduleProps["onEventClick"]>;
129
+ withDragSlotSelect: BooleanConstructor;
130
+ onSlotDragEnd: PropType<ResourcesScheduleProps["onSlotDragEnd"]>;
131
+ mode: {
132
+ type: PropType<ScheduleMode>;
133
+ default: string;
134
+ };
135
+ onExternalEventDrop: PropType<ResourcesScheduleProps["onExternalEventDrop"]>;
136
+ withEventResize: BooleanConstructor;
137
+ onEventResize: PropType<ResourcesScheduleProps["onEventResize"]>;
138
+ canResizeEvent: PropType<ResourcesScheduleProps["canResizeEvent"]>;
139
+ recurrenceExpansionLimit: {
140
+ type: NumberConstructor;
141
+ default: number;
142
+ };
143
+ dayViewProps: PropType<ResourcesScheduleViewProps<ResourcesDayViewProps>>;
144
+ weekViewProps: PropType<ResourcesScheduleViewProps<ResourcesWeekViewProps>>;
145
+ monthViewProps: PropType<ResourcesScheduleViewProps<ResourcesMonthViewProps>>;
146
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
147
+ [key: string]: any;
148
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
149
+ resources: {
150
+ type: PropType<ScheduleResourceData[]>;
151
+ required: true;
152
+ };
153
+ date: PropType<Date | DateStringValue>;
154
+ defaultDate: PropType<Date | DateStringValue>;
155
+ onDateChange: PropType<(date: DateStringValue) => void>;
156
+ view: PropType<ResourcesScheduleViewLevel>;
157
+ defaultView: {
158
+ type: PropType<ResourcesScheduleViewLevel>;
159
+ default: string;
160
+ };
161
+ onViewChange: PropType<(view: ResourcesScheduleViewLevel) => void>;
162
+ events: PropType<ScheduleEventData[]>;
163
+ locale: StringConstructor;
164
+ radius: PropType<string | number>;
165
+ labels: PropType<ScheduleLabelsOverride>;
166
+ renderEventBody: PropType<RenderEventBody>;
167
+ renderResourceLabel: PropType<ResourcesScheduleProps["renderResourceLabel"]>;
168
+ withEventsDragAndDrop: BooleanConstructor;
169
+ onEventDrop: PropType<ResourcesScheduleProps["onEventDrop"]>;
170
+ canDragEvent: PropType<ResourcesScheduleProps["canDragEvent"]>;
171
+ onEventDragStart: PropType<ResourcesScheduleProps["onEventDragStart"]>;
172
+ onEventDragEnd: PropType<ResourcesScheduleProps["onEventDragEnd"]>;
173
+ onTimeSlotClick: PropType<ResourcesScheduleProps["onTimeSlotClick"]>;
174
+ onDayClick: PropType<ResourcesScheduleProps["onDayClick"]>;
175
+ onEventClick: PropType<ResourcesScheduleProps["onEventClick"]>;
176
+ withDragSlotSelect: BooleanConstructor;
177
+ onSlotDragEnd: PropType<ResourcesScheduleProps["onSlotDragEnd"]>;
178
+ mode: {
179
+ type: PropType<ScheduleMode>;
180
+ default: string;
181
+ };
182
+ onExternalEventDrop: PropType<ResourcesScheduleProps["onExternalEventDrop"]>;
183
+ withEventResize: BooleanConstructor;
184
+ onEventResize: PropType<ResourcesScheduleProps["onEventResize"]>;
185
+ canResizeEvent: PropType<ResourcesScheduleProps["canResizeEvent"]>;
186
+ recurrenceExpansionLimit: {
187
+ type: NumberConstructor;
188
+ default: number;
189
+ };
190
+ dayViewProps: PropType<ResourcesScheduleViewProps<ResourcesDayViewProps>>;
191
+ weekViewProps: PropType<ResourcesScheduleViewProps<ResourcesWeekViewProps>>;
192
+ monthViewProps: PropType<ResourcesScheduleViewProps<ResourcesMonthViewProps>>;
193
+ }>> & Readonly<{}>, {
194
+ mode: ScheduleMode;
195
+ recurrenceExpansionLimit: number;
196
+ defaultView: ResourcesScheduleViewLevel;
197
+ withEventsDragAndDrop: boolean;
198
+ withDragSlotSelect: boolean;
199
+ withEventResize: boolean;
200
+ }, SlotsType<ResourcesScheduleSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
201
+ export {};
@@ -0,0 +1 @@
1
+ export * from './ResourcesSchedule';
@@ -0,0 +1,412 @@
1
+ import { type CSSProperties, type PropType, type SlotsType, type VNodeChild } from 'vue';
2
+ import type { EventDropData, NativeButtonProps, RenderEvent, RenderEventBody, ViewSelectProps } from '../../component-props';
3
+ import { type ScheduleLabelsOverride } from '../../labels';
4
+ import type { AnyDateValue, DateLabelFormat, DateStringValue, DateTimeStringValue, DayOfWeek, ScheduleEventData, ScheduleMode, ScheduleResourceData, ScheduleResourceGroup, ScheduleViewLevel } from '../../types';
5
+ import type { ResourceViewDropData } from '../ResourcesDayView/ResourcesDayView';
6
+ import classes from './ResourcesWeekView.module.css';
7
+ export interface ResourcesWeekViewProps {
8
+ date: Date | string;
9
+ onDateChange?: (value: DateStringValue) => void;
10
+ resources: ScheduleResourceData[];
11
+ startTime?: string;
12
+ endTime?: string;
13
+ intervalMinutes?: number;
14
+ slotLabelFormat?: DateLabelFormat;
15
+ radius?: string | number;
16
+ startScrollDateTime?: string;
17
+ scrollAreaProps?: Record<string, unknown>;
18
+ locale?: string;
19
+ withCurrentTimeIndicator?: boolean;
20
+ withCurrentTimeBubble?: boolean;
21
+ getCurrentTime?: () => AnyDateValue;
22
+ withHeader?: boolean;
23
+ onViewChange?: (view: ScheduleViewLevel) => void;
24
+ previousControlProps?: NativeButtonProps;
25
+ nextControlProps?: NativeButtonProps;
26
+ todayControlProps?: NativeButtonProps;
27
+ viewSelectProps?: Partial<ViewSelectProps>;
28
+ weekLabelFormat?: DateLabelFormat;
29
+ renderWeekLabel?: (params: {
30
+ weekStart: DateStringValue;
31
+ weekEnd: DateStringValue;
32
+ }) => VNodeChild;
33
+ events?: ScheduleEventData[];
34
+ slotWidth?: CSSProperties['width'];
35
+ rowHeight?: CSSProperties['height'];
36
+ labels?: ScheduleLabelsOverride;
37
+ highlightBusinessHours?: boolean;
38
+ businessHours?: [string, string];
39
+ renderEventBody?: RenderEventBody;
40
+ renderEvent?: RenderEvent;
41
+ renderResourceLabel?: (resource: ScheduleResourceData) => VNodeChild;
42
+ groups?: ScheduleResourceGroup[];
43
+ renderGroupLabel?: (group: ScheduleResourceGroup) => VNodeChild;
44
+ groupLabelWidth?: CSSProperties['width'];
45
+ withEventsDragAndDrop?: boolean;
46
+ onEventDrop?: (data: ResourceViewDropData) => void;
47
+ canDragEvent?: (event: ScheduleEventData) => boolean;
48
+ onEventDragStart?: (event: ScheduleEventData) => void;
49
+ onEventDragEnd?: () => void;
50
+ onTimeSlotClick?: (data: {
51
+ slotStart: DateTimeStringValue;
52
+ slotEnd: DateTimeStringValue;
53
+ nativeEvent: MouseEvent;
54
+ resourceId?: string | number;
55
+ }) => void;
56
+ onEventClick?: (event: ScheduleEventData, nativeEvent: MouseEvent) => void;
57
+ withDragSlotSelect?: boolean;
58
+ onSlotDragEnd?: (data: {
59
+ rangeStart: DateTimeStringValue;
60
+ rangeEnd: DateTimeStringValue;
61
+ resourceId?: string | number;
62
+ }) => void;
63
+ mode?: ScheduleMode;
64
+ onExternalEventDrop?: (data: {
65
+ dataTransfer: DataTransfer;
66
+ dropDateTime: DateTimeStringValue;
67
+ resourceId?: string | number;
68
+ }) => void;
69
+ withEventResize?: boolean;
70
+ onEventResize?: (data: EventDropData) => void;
71
+ canResizeEvent?: (event: ScheduleEventData) => boolean;
72
+ recurrenceExpansionLimit?: number;
73
+ maxEventsPerTimeSlot?: number;
74
+ moreEventsProps?: Record<string, unknown>;
75
+ firstDayOfWeek?: DayOfWeek;
76
+ weekendDays?: DayOfWeek[];
77
+ withWeekendDays?: boolean;
78
+ weekdayFormat?: DateLabelFormat;
79
+ highlightToday?: boolean;
80
+ }
81
+ export interface ResourcesWeekViewSlots {
82
+ header?: (props: {
83
+ weekStart: DateStringValue;
84
+ weekEnd: DateStringValue;
85
+ label: VNodeChild;
86
+ }) => VNodeChild;
87
+ corner?: (props: {
88
+ resources: ScheduleResourceData[];
89
+ }) => VNodeChild;
90
+ dayLabel?: (props: {
91
+ date: DateStringValue;
92
+ label: VNodeChild;
93
+ }) => VNodeChild;
94
+ timeLabel?: (props: {
95
+ date: DateStringValue;
96
+ label: VNodeChild;
97
+ startTime: string;
98
+ endTime: string;
99
+ }) => VNodeChild;
100
+ resourceLabel?: (props: {
101
+ resource: ScheduleResourceData;
102
+ }) => VNodeChild;
103
+ groupLabel?: (props: {
104
+ group: ScheduleResourceGroup;
105
+ }) => VNodeChild;
106
+ timeSlot?: (props: {
107
+ resource: ScheduleResourceData;
108
+ date: DateStringValue;
109
+ startTime: string;
110
+ endTime: string;
111
+ }) => VNodeChild;
112
+ backgroundEvent?: (props: {
113
+ event: ScheduleEventData;
114
+ date: DateStringValue;
115
+ }) => VNodeChild;
116
+ allDayEvent?: (props: {
117
+ event: ScheduleEventData;
118
+ startDayIndex: number;
119
+ endDayIndex: number;
120
+ }) => VNodeChild;
121
+ eventBody?: (props: {
122
+ event: ScheduleEventData;
123
+ }) => VNodeChild;
124
+ event?: (props: Record<string, unknown> & {
125
+ event: ScheduleEventData;
126
+ }) => VNodeChild;
127
+ moreEvents?: (props: {
128
+ events: ScheduleEventData[];
129
+ hiddenCount: number;
130
+ date: DateStringValue;
131
+ }) => VNodeChild;
132
+ currentTimeIndicator?: (props: {
133
+ time: VNodeChild;
134
+ offset: number;
135
+ date: DateStringValue;
136
+ }) => VNodeChild;
137
+ }
138
+ export declare const ResourcesWeekView: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
139
+ date: {
140
+ type: PropType<Date | string>;
141
+ required: true;
142
+ };
143
+ onDateChange: PropType<ResourcesWeekViewProps["onDateChange"]>;
144
+ resources: {
145
+ type: PropType<ScheduleResourceData[]>;
146
+ required: true;
147
+ };
148
+ startTime: {
149
+ type: StringConstructor;
150
+ default: string;
151
+ };
152
+ endTime: {
153
+ type: StringConstructor;
154
+ default: string;
155
+ };
156
+ intervalMinutes: {
157
+ type: NumberConstructor;
158
+ default: number;
159
+ };
160
+ slotLabelFormat: {
161
+ type: PropType<DateLabelFormat>;
162
+ default: string;
163
+ };
164
+ radius: PropType<string | number>;
165
+ startScrollDateTime: StringConstructor;
166
+ scrollAreaProps: PropType<Record<string, unknown>>;
167
+ locale: StringConstructor;
168
+ withCurrentTimeIndicator: {
169
+ type: BooleanConstructor;
170
+ default: undefined;
171
+ };
172
+ withCurrentTimeBubble: {
173
+ type: BooleanConstructor;
174
+ default: boolean;
175
+ };
176
+ getCurrentTime: PropType<() => AnyDateValue>;
177
+ withHeader: {
178
+ type: BooleanConstructor;
179
+ default: boolean;
180
+ };
181
+ onViewChange: PropType<ResourcesWeekViewProps["onViewChange"]>;
182
+ previousControlProps: PropType<NativeButtonProps>;
183
+ nextControlProps: PropType<NativeButtonProps>;
184
+ todayControlProps: PropType<NativeButtonProps>;
185
+ viewSelectProps: PropType<Partial<ViewSelectProps>>;
186
+ weekLabelFormat: {
187
+ type: PropType<DateLabelFormat>;
188
+ default: string;
189
+ };
190
+ renderWeekLabel: PropType<ResourcesWeekViewProps["renderWeekLabel"]>;
191
+ events: PropType<ScheduleEventData[]>;
192
+ slotWidth: {
193
+ type: PropType<CSSProperties["width"]>;
194
+ default: number;
195
+ };
196
+ rowHeight: {
197
+ type: PropType<CSSProperties["height"]>;
198
+ default: number;
199
+ };
200
+ labels: PropType<ScheduleLabelsOverride>;
201
+ highlightBusinessHours: BooleanConstructor;
202
+ businessHours: {
203
+ type: PropType<[string, string]>;
204
+ default: () => string[];
205
+ };
206
+ renderEventBody: PropType<RenderEventBody>;
207
+ renderEvent: PropType<RenderEvent>;
208
+ renderResourceLabel: PropType<ResourcesWeekViewProps["renderResourceLabel"]>;
209
+ groups: PropType<ScheduleResourceGroup[]>;
210
+ renderGroupLabel: PropType<ResourcesWeekViewProps["renderGroupLabel"]>;
211
+ groupLabelWidth: {
212
+ type: PropType<CSSProperties["width"]>;
213
+ default: number;
214
+ };
215
+ withEventsDragAndDrop: BooleanConstructor;
216
+ onEventDrop: PropType<ResourcesWeekViewProps["onEventDrop"]>;
217
+ canDragEvent: PropType<ResourcesWeekViewProps["canDragEvent"]>;
218
+ onEventDragStart: PropType<ResourcesWeekViewProps["onEventDragStart"]>;
219
+ onEventDragEnd: PropType<ResourcesWeekViewProps["onEventDragEnd"]>;
220
+ onTimeSlotClick: PropType<ResourcesWeekViewProps["onTimeSlotClick"]>;
221
+ onEventClick: PropType<ResourcesWeekViewProps["onEventClick"]>;
222
+ withDragSlotSelect: BooleanConstructor;
223
+ onSlotDragEnd: PropType<ResourcesWeekViewProps["onSlotDragEnd"]>;
224
+ mode: {
225
+ type: PropType<ScheduleMode>;
226
+ default: string;
227
+ };
228
+ onExternalEventDrop: PropType<ResourcesWeekViewProps["onExternalEventDrop"]>;
229
+ withEventResize: BooleanConstructor;
230
+ onEventResize: PropType<ResourcesWeekViewProps["onEventResize"]>;
231
+ canResizeEvent: PropType<ResourcesWeekViewProps["canResizeEvent"]>;
232
+ recurrenceExpansionLimit: {
233
+ type: NumberConstructor;
234
+ default: number;
235
+ };
236
+ maxEventsPerTimeSlot: {
237
+ type: NumberConstructor;
238
+ default: number;
239
+ };
240
+ moreEventsProps: PropType<Record<string, unknown>>;
241
+ firstDayOfWeek: {
242
+ type: PropType<DayOfWeek>;
243
+ default: number;
244
+ };
245
+ weekendDays: {
246
+ type: PropType<DayOfWeek[]>;
247
+ default: () => number[];
248
+ };
249
+ withWeekendDays: {
250
+ type: BooleanConstructor;
251
+ default: boolean;
252
+ };
253
+ weekdayFormat: {
254
+ type: PropType<DateLabelFormat>;
255
+ default: string;
256
+ };
257
+ highlightToday: {
258
+ type: BooleanConstructor;
259
+ default: boolean;
260
+ };
261
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
262
+ [key: string]: any;
263
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
264
+ date: {
265
+ type: PropType<Date | string>;
266
+ required: true;
267
+ };
268
+ onDateChange: PropType<ResourcesWeekViewProps["onDateChange"]>;
269
+ resources: {
270
+ type: PropType<ScheduleResourceData[]>;
271
+ required: true;
272
+ };
273
+ startTime: {
274
+ type: StringConstructor;
275
+ default: string;
276
+ };
277
+ endTime: {
278
+ type: StringConstructor;
279
+ default: string;
280
+ };
281
+ intervalMinutes: {
282
+ type: NumberConstructor;
283
+ default: number;
284
+ };
285
+ slotLabelFormat: {
286
+ type: PropType<DateLabelFormat>;
287
+ default: string;
288
+ };
289
+ radius: PropType<string | number>;
290
+ startScrollDateTime: StringConstructor;
291
+ scrollAreaProps: PropType<Record<string, unknown>>;
292
+ locale: StringConstructor;
293
+ withCurrentTimeIndicator: {
294
+ type: BooleanConstructor;
295
+ default: undefined;
296
+ };
297
+ withCurrentTimeBubble: {
298
+ type: BooleanConstructor;
299
+ default: boolean;
300
+ };
301
+ getCurrentTime: PropType<() => AnyDateValue>;
302
+ withHeader: {
303
+ type: BooleanConstructor;
304
+ default: boolean;
305
+ };
306
+ onViewChange: PropType<ResourcesWeekViewProps["onViewChange"]>;
307
+ previousControlProps: PropType<NativeButtonProps>;
308
+ nextControlProps: PropType<NativeButtonProps>;
309
+ todayControlProps: PropType<NativeButtonProps>;
310
+ viewSelectProps: PropType<Partial<ViewSelectProps>>;
311
+ weekLabelFormat: {
312
+ type: PropType<DateLabelFormat>;
313
+ default: string;
314
+ };
315
+ renderWeekLabel: PropType<ResourcesWeekViewProps["renderWeekLabel"]>;
316
+ events: PropType<ScheduleEventData[]>;
317
+ slotWidth: {
318
+ type: PropType<CSSProperties["width"]>;
319
+ default: number;
320
+ };
321
+ rowHeight: {
322
+ type: PropType<CSSProperties["height"]>;
323
+ default: number;
324
+ };
325
+ labels: PropType<ScheduleLabelsOverride>;
326
+ highlightBusinessHours: BooleanConstructor;
327
+ businessHours: {
328
+ type: PropType<[string, string]>;
329
+ default: () => string[];
330
+ };
331
+ renderEventBody: PropType<RenderEventBody>;
332
+ renderEvent: PropType<RenderEvent>;
333
+ renderResourceLabel: PropType<ResourcesWeekViewProps["renderResourceLabel"]>;
334
+ groups: PropType<ScheduleResourceGroup[]>;
335
+ renderGroupLabel: PropType<ResourcesWeekViewProps["renderGroupLabel"]>;
336
+ groupLabelWidth: {
337
+ type: PropType<CSSProperties["width"]>;
338
+ default: number;
339
+ };
340
+ withEventsDragAndDrop: BooleanConstructor;
341
+ onEventDrop: PropType<ResourcesWeekViewProps["onEventDrop"]>;
342
+ canDragEvent: PropType<ResourcesWeekViewProps["canDragEvent"]>;
343
+ onEventDragStart: PropType<ResourcesWeekViewProps["onEventDragStart"]>;
344
+ onEventDragEnd: PropType<ResourcesWeekViewProps["onEventDragEnd"]>;
345
+ onTimeSlotClick: PropType<ResourcesWeekViewProps["onTimeSlotClick"]>;
346
+ onEventClick: PropType<ResourcesWeekViewProps["onEventClick"]>;
347
+ withDragSlotSelect: BooleanConstructor;
348
+ onSlotDragEnd: PropType<ResourcesWeekViewProps["onSlotDragEnd"]>;
349
+ mode: {
350
+ type: PropType<ScheduleMode>;
351
+ default: string;
352
+ };
353
+ onExternalEventDrop: PropType<ResourcesWeekViewProps["onExternalEventDrop"]>;
354
+ withEventResize: BooleanConstructor;
355
+ onEventResize: PropType<ResourcesWeekViewProps["onEventResize"]>;
356
+ canResizeEvent: PropType<ResourcesWeekViewProps["canResizeEvent"]>;
357
+ recurrenceExpansionLimit: {
358
+ type: NumberConstructor;
359
+ default: number;
360
+ };
361
+ maxEventsPerTimeSlot: {
362
+ type: NumberConstructor;
363
+ default: number;
364
+ };
365
+ moreEventsProps: PropType<Record<string, unknown>>;
366
+ firstDayOfWeek: {
367
+ type: PropType<DayOfWeek>;
368
+ default: number;
369
+ };
370
+ weekendDays: {
371
+ type: PropType<DayOfWeek[]>;
372
+ default: () => number[];
373
+ };
374
+ withWeekendDays: {
375
+ type: BooleanConstructor;
376
+ default: boolean;
377
+ };
378
+ weekdayFormat: {
379
+ type: PropType<DateLabelFormat>;
380
+ default: string;
381
+ };
382
+ highlightToday: {
383
+ type: BooleanConstructor;
384
+ default: boolean;
385
+ };
386
+ }>> & Readonly<{}>, {
387
+ mode: ScheduleMode;
388
+ firstDayOfWeek: DayOfWeek;
389
+ weekendDays: DayOfWeek[];
390
+ highlightToday: boolean;
391
+ weekdayFormat: DateLabelFormat;
392
+ startTime: string;
393
+ endTime: string;
394
+ intervalMinutes: number;
395
+ withWeekendDays: boolean;
396
+ businessHours: [string, string];
397
+ highlightBusinessHours: boolean;
398
+ withHeader: boolean;
399
+ recurrenceExpansionLimit: number;
400
+ withEventsDragAndDrop: boolean;
401
+ withDragSlotSelect: boolean;
402
+ withEventResize: boolean;
403
+ slotLabelFormat: DateLabelFormat;
404
+ withCurrentTimeIndicator: boolean;
405
+ withCurrentTimeBubble: boolean;
406
+ weekLabelFormat: DateLabelFormat;
407
+ slotWidth: import("csstype").Property.Width<string | number> | undefined;
408
+ rowHeight: import("csstype").Property.Height<string | number> | undefined;
409
+ groupLabelWidth: import("csstype").Property.Width<string | number> | undefined;
410
+ maxEventsPerTimeSlot: number;
411
+ }, SlotsType<ResourcesWeekViewSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
412
+ export type ResourcesWeekViewStylesNames = keyof typeof classes;
@@ -0,0 +1,21 @@
1
+ import type { ScheduleEventData, ScheduleResourceData } from '../../../types';
2
+ import { type ResourcesDayViewEventsResult } from '../../ResourcesDayView/get-resources-day-view-events/get-resources-day-view-events';
3
+ export interface ResourcesWeekViewAllDayBar {
4
+ event: ScheduleEventData;
5
+ startDayIndex: number;
6
+ endDayIndex: number;
7
+ row: number;
8
+ }
9
+ export interface ResourcesWeekViewEventsResult {
10
+ byDay: Record<string, ResourcesDayViewEventsResult>;
11
+ allDayBars: Record<string | number, ResourcesWeekViewAllDayBar[]>;
12
+ }
13
+ export declare function getResourcesWeekViewEvents({ events, resources, weekdays, startTime, endTime, intervalMinutes, expansionLimit, }: {
14
+ events: ScheduleEventData[] | undefined;
15
+ resources: ScheduleResourceData[];
16
+ weekdays: string[];
17
+ startTime?: string;
18
+ endTime?: string;
19
+ intervalMinutes?: number;
20
+ expansionLimit?: number;
21
+ }): ResourcesWeekViewEventsResult;
@@ -0,0 +1,2 @@
1
+ export * from './ResourcesWeekView';
2
+ export * from './get-resources-week-view-events/get-resources-week-view-events';