@mantine-vue/schedule 3.1.0 → 3.3.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.
Files changed (87) hide show
  1. package/cjs/index.cjs +6765 -3783
  2. package/cjs/index.cjs.map +1 -1
  3. package/esm/index.mjs +6724 -3793
  4. package/esm/index.mjs.map +1 -1
  5. package/lib/component-props.d.ts +197 -215
  6. package/lib/components/CurrentTimeIndicator/CurrentTimeIndicator.d.ts +8 -114
  7. package/lib/components/CurrentTimeIndicator/CurrentTimeIndicator.types.d.ts +89 -0
  8. package/lib/components/CurrentTimeIndicator/CurrentTimeIndicator.vue.d.ts +20 -0
  9. package/lib/components/DayView/DayView.d.ts +10 -212
  10. package/lib/components/DayView/DayView.types.d.ts +65 -0
  11. package/lib/components/DayView/DayView.vue.d.ts +51 -0
  12. package/lib/components/DragContext/DragContext.d.ts +43 -5
  13. package/lib/components/MobileMonthView/MobileMonthView.d.ts +10 -171
  14. package/lib/components/MobileMonthView/MobileMonthView.types.d.ts +110 -0
  15. package/lib/components/MobileMonthView/MobileMonthView.vue.d.ts +44 -0
  16. package/lib/components/MonthView/MonthView.d.ts +10 -174
  17. package/lib/components/MonthView/MonthView.types.d.ts +125 -0
  18. package/lib/components/MonthView/MonthView.vue.d.ts +56 -0
  19. package/lib/components/MoreEvents/MoreEvents.d.ts +9 -65
  20. package/lib/components/MoreEvents/MoreEvents.types.d.ts +62 -0
  21. package/lib/components/MoreEvents/MoreEvents.vue.d.ts +23 -0
  22. package/lib/components/ResourcesDayView/ResourcesDayView.d.ts +10 -346
  23. package/lib/components/ResourcesDayView/ResourcesDayView.types.d.ts +314 -0
  24. package/lib/components/ResourcesDayView/ResourcesDayView.vue.d.ts +53 -0
  25. package/lib/components/ResourcesMonthView/ResourcesMonthView.d.ts +10 -279
  26. package/lib/components/ResourcesMonthView/ResourcesMonthView.types.d.ts +239 -0
  27. package/lib/components/ResourcesMonthView/ResourcesMonthView.vue.d.ts +55 -0
  28. package/lib/components/ResourcesMonthView/get-resources-month-view-layout/get-resources-month-view-layout.d.ts +54 -0
  29. package/lib/components/ResourcesMonthView/index.d.ts +1 -0
  30. package/lib/components/ResourcesSchedule/ResourcesSchedule.d.ts +9 -201
  31. package/lib/components/ResourcesSchedule/ResourcesSchedule.types.d.ts +161 -0
  32. package/lib/components/ResourcesSchedule/ResourcesSchedule.vue.d.ts +44 -0
  33. package/lib/components/ResourcesWeekView/ResourcesWeekView.d.ts +10 -412
  34. package/lib/components/ResourcesWeekView/ResourcesWeekView.types.d.ts +320 -0
  35. package/lib/components/ResourcesWeekView/ResourcesWeekView.vue.d.ts +58 -0
  36. package/lib/components/Schedule/Schedule.d.ts +9 -134
  37. package/lib/components/Schedule/Schedule.types.d.ts +155 -0
  38. package/lib/components/Schedule/Schedule.vue.d.ts +50 -0
  39. package/lib/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.d.ts +3 -0
  40. package/lib/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.types.d.ts +24 -0
  41. package/lib/components/ScheduleBackgroundEvent/ScheduleBackgroundEvent.vue.d.ts +15 -0
  42. package/lib/components/ScheduleBackgroundEvent/index.d.ts +1 -0
  43. package/lib/components/ScheduleEvent/ScheduleEvent.d.ts +11 -88
  44. package/lib/components/ScheduleEvent/ScheduleEvent.types.d.ts +109 -0
  45. package/lib/components/ScheduleEvent/ScheduleEvent.vue.d.ts +24 -0
  46. package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.d.ts +36 -0
  47. package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.types.d.ts +44 -0
  48. package/lib/components/ScheduleHeader/HeaderControl/HeaderControl.vue.d.ts +14 -0
  49. package/lib/components/ScheduleHeader/HeaderControl/ScheduleHeaderNext.vue.d.ts +11 -0
  50. package/lib/components/ScheduleHeader/HeaderControl/ScheduleHeaderPrevious.vue.d.ts +11 -0
  51. package/lib/components/ScheduleHeader/HeaderControl/ScheduleHeaderToday.vue.d.ts +11 -0
  52. package/lib/components/ScheduleHeader/HeaderControl/index.d.ts +1 -2
  53. package/lib/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.d.ts +8 -0
  54. package/lib/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.types.d.ts +70 -0
  55. package/lib/components/ScheduleHeader/MonthYearSelect/MonthYearSelect.vue.d.ts +21 -0
  56. package/lib/components/ScheduleHeader/MonthYearSelect/index.d.ts +1 -2
  57. package/lib/components/ScheduleHeader/ScheduleHeader.context.d.ts +12 -0
  58. package/lib/components/ScheduleHeader/ScheduleHeader.d.ts +20 -364
  59. package/lib/components/ScheduleHeader/ScheduleHeader.types.d.ts +28 -0
  60. package/lib/components/ScheduleHeader/ScheduleHeader.vue.d.ts +11 -0
  61. package/lib/components/ScheduleHeader/ScheduleHeaderBase.d.ts +37 -75
  62. package/lib/components/ScheduleHeader/ScheduleHeaderBase.types.d.ts +54 -0
  63. package/lib/components/ScheduleHeader/ScheduleHeaderBase.vue.d.ts +21 -0
  64. package/lib/components/ScheduleHeader/ViewSelect/ViewSelect.d.ts +8 -0
  65. package/lib/components/ScheduleHeader/ViewSelect/ViewSelect.types.d.ts +39 -0
  66. package/lib/components/ScheduleHeader/ViewSelect/ViewSelect.vue.d.ts +16 -0
  67. package/lib/components/ScheduleHeader/ViewSelect/index.d.ts +1 -2
  68. package/lib/components/ScheduleHeader/index.d.ts +4 -0
  69. package/lib/components/WeekView/WeekView.d.ts +10 -294
  70. package/lib/components/WeekView/WeekView.types.d.ts +129 -0
  71. package/lib/components/WeekView/WeekView.vue.d.ts +60 -0
  72. package/lib/components/WeekView/get-week-view-events/find-available-column.d.ts +6 -3
  73. package/lib/components/YearView/YearView.d.ts +10 -151
  74. package/lib/components/YearView/YearView.types.d.ts +100 -0
  75. package/lib/components/YearView/YearView.vue.d.ts +42 -0
  76. package/lib/components/shared.d.ts +71 -141
  77. package/lib/components/use-slot-drag-select.d.ts +7 -9
  78. package/lib/components/use-slot-drop-target.d.ts +42 -0
  79. package/lib/hooks/use-event-resize.d.ts +2 -1
  80. package/lib/hooks/use-horizontal-event-resize.d.ts +3 -156
  81. package/lib/index.d.mts +2 -0
  82. package/lib/index.d.ts +2 -0
  83. package/lib/types.d.ts +1 -1
  84. package/lib/utils/calculate-drop-time/calculate-drop-time.d.ts +11 -1
  85. package/package.json +4 -4
  86. package/styles.css +527 -384
  87. package/styles.layer.css +527 -384
@@ -0,0 +1,53 @@
1
+ import type { ScheduleEventData, ScheduleViewLevel } from '../../types';
2
+ import type { ResourcesDayViewSlots } from './ResourcesDayView.types';
3
+ import type { ResourcesDayViewOwnProps } from './ResourcesDayView.types';
4
+ declare const defaultProps: {
5
+ startTime: string;
6
+ endTime: string;
7
+ intervalMinutes: number;
8
+ slotLabelFormat: string;
9
+ withCurrentTimeBubble: true;
10
+ withHeader: true;
11
+ headerFormat: string;
12
+ slotWidth: number;
13
+ rowHeight: number;
14
+ groupLabelWidth: number;
15
+ businessHours: [string, string];
16
+ mode: "default";
17
+ recurrenceExpansionLimit: number;
18
+ maxEventsPerTimeSlot: number;
19
+ };
20
+ /** View levels the header offers – a resource schedule has no year view. */
21
+ declare const RESOURCE_VIEWS: readonly ["day", "week", "month"];
22
+ declare const varsResolver: (theme: import("@mantine-vue/core").MantineTheme, props: any, ctx: Record<string, any>) => Record<string, Record<string, string | undefined>>;
23
+ export { defaultProps, varsResolver, RESOURCE_VIEWS };
24
+ declare const _default: typeof __VLS_export;
25
+ export default _default;
26
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ResourcesDayViewOwnProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
27
+ dateChange: (date: string) => any;
28
+ eventDragStart: (event: ScheduleEventData) => any;
29
+ eventDragEnd: () => any;
30
+ eventClick: (event: ScheduleEventData, nativeEvent: MouseEvent) => any;
31
+ viewChange: (view: ScheduleViewLevel) => any;
32
+ eventDrop: (data: import("./ResourcesDayView.types").ResourceViewDropData) => any;
33
+ timeSlotClick: (data: import("./ResourcesDayView.types").ResourceTimeSlotClickData) => any;
34
+ slotDragEnd: (data: import("./ResourcesDayView.types").ResourceSlotDragEndData) => any;
35
+ externalEventDrop: (data: import("./ResourcesDayView.types").ResourceExternalDropData) => any;
36
+ eventResize: (data: import("../..").EventDropData) => any;
37
+ }, string, import("vue").PublicProps, Readonly<ResourcesDayViewOwnProps> & Readonly<{
38
+ onDateChange?: ((date: string) => any) | undefined;
39
+ onEventDragStart?: ((event: ScheduleEventData) => any) | undefined;
40
+ onEventDragEnd?: (() => any) | undefined;
41
+ onEventClick?: ((event: ScheduleEventData, nativeEvent: MouseEvent) => any) | undefined;
42
+ onViewChange?: ((view: ScheduleViewLevel) => any) | undefined;
43
+ onEventDrop?: ((data: import("./ResourcesDayView.types").ResourceViewDropData) => any) | undefined;
44
+ onTimeSlotClick?: ((data: import("./ResourcesDayView.types").ResourceTimeSlotClickData) => any) | undefined;
45
+ onSlotDragEnd?: ((data: import("./ResourcesDayView.types").ResourceSlotDragEndData) => any) | undefined;
46
+ onExternalEventDrop?: ((data: import("./ResourcesDayView.types").ResourceExternalDropData) => any) | undefined;
47
+ onEventResize?: ((data: import("../..").EventDropData) => any) | undefined;
48
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ResourcesDayViewSlots>;
49
+ type __VLS_WithSlots<T, S> = T & {
50
+ new (): {
51
+ $slots: S;
52
+ };
53
+ };
@@ -1,279 +1,10 @@
1
- import { type CSSProperties, type PropType, type SlotsType, type VNodeChild } from 'vue';
2
- import type { MonthYearSelectProps, NativeButtonProps, RenderEvent, RenderEventBody, ViewSelectProps } from '../../component-props';
3
- import { type ScheduleLabelsOverride } from '../../labels';
4
- import type { DateLabelFormat, DateStringValue, DateTimeStringValue, DayOfWeek, ScheduleEventData, ScheduleMode, ScheduleResourceData, ScheduleResourceGroup, ScheduleViewLevel } from '../../types';
5
- import type { ResourceViewDropData } from '../ResourcesDayView/ResourcesDayView';
6
- import classes from './ResourcesMonthView.module.css';
7
- export interface ResourcesMonthViewProps {
8
- date: Date | string;
9
- onDateChange?: (value: DateStringValue) => void;
10
- resources: ScheduleResourceData[];
11
- locale?: string;
12
- weekdayFormat?: DateLabelFormat;
13
- weekendDays?: DayOfWeek[];
14
- withWeekendDays?: boolean;
15
- startScrollDate?: string;
16
- onDayClick?: (data: {
17
- date: DateStringValue;
18
- nativeEvent: MouseEvent;
19
- resourceId?: string | number;
20
- }) => void;
21
- highlightToday?: boolean;
22
- radius?: string | number;
23
- withHeader?: boolean;
24
- monthYearSelectProps?: Partial<MonthYearSelectProps>;
25
- onViewChange?: (view: ScheduleViewLevel) => void;
26
- previousControlProps?: NativeButtonProps;
27
- nextControlProps?: NativeButtonProps;
28
- todayControlProps?: NativeButtonProps;
29
- viewSelectProps?: Partial<ViewSelectProps>;
30
- events?: ScheduleEventData[];
31
- dayWidth?: CSSProperties['width'];
32
- rowHeight?: CSSProperties['height'];
33
- renderEventBody?: RenderEventBody;
34
- renderEvent?: RenderEvent;
35
- renderResourceLabel?: (resource: ScheduleResourceData) => VNodeChild;
36
- groups?: ScheduleResourceGroup[];
37
- renderGroupLabel?: (group: ScheduleResourceGroup) => VNodeChild;
38
- groupLabelWidth?: CSSProperties['width'];
39
- withEventsDragAndDrop?: boolean;
40
- onEventDrop?: (data: ResourceViewDropData) => void;
41
- canDragEvent?: (event: ScheduleEventData) => boolean;
42
- onEventDragStart?: (event: ScheduleEventData) => void;
43
- onEventDragEnd?: () => void;
44
- onEventClick?: (event: ScheduleEventData, nativeEvent: MouseEvent) => void;
45
- withDragSlotSelect?: boolean;
46
- onSlotDragEnd?: (data: {
47
- rangeStart: DateTimeStringValue;
48
- rangeEnd: DateTimeStringValue;
49
- resourceId?: string | number;
50
- }) => void;
51
- labels?: ScheduleLabelsOverride;
52
- mode?: ScheduleMode;
53
- scrollAreaProps?: Record<string, unknown>;
54
- onExternalEventDrop?: (data: {
55
- dataTransfer: DataTransfer;
56
- dropDateTime: DateTimeStringValue;
57
- resourceId?: string | number;
58
- }) => void;
59
- maxEventsPerTimeSlot?: number;
60
- moreEventsProps?: Record<string, unknown>;
61
- recurrenceExpansionLimit?: number;
62
- }
63
- export interface ResourcesMonthViewSlots {
64
- header?: (props: {
65
- month: DateStringValue;
66
- }) => VNodeChild;
67
- corner?: (props: {
68
- resources: ScheduleResourceData[];
69
- }) => VNodeChild;
70
- dayLabel?: (props: {
71
- date: DateStringValue;
72
- weekday: VNodeChild;
73
- day: number;
74
- }) => VNodeChild;
75
- resourceLabel?: (props: {
76
- resource: ScheduleResourceData;
77
- }) => VNodeChild;
78
- groupLabel?: (props: {
79
- group: ScheduleResourceGroup;
80
- }) => VNodeChild;
81
- dayCell?: (props: {
82
- resource: ScheduleResourceData;
83
- date: DateStringValue;
84
- }) => VNodeChild;
85
- eventBody?: (props: {
86
- event: ScheduleEventData;
87
- }) => VNodeChild;
88
- event?: (props: Record<string, unknown> & {
89
- event: ScheduleEventData;
90
- }) => VNodeChild;
91
- moreEvents?: (props: {
92
- events: ScheduleEventData[];
93
- hiddenCount: number;
94
- resource: ScheduleResourceData;
95
- date: DateStringValue;
96
- }) => VNodeChild;
97
- }
98
- export declare const ResourcesMonthView: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
99
- date: {
100
- type: PropType<Date | string>;
101
- required: true;
102
- };
103
- onDateChange: PropType<ResourcesMonthViewProps["onDateChange"]>;
104
- resources: {
105
- type: PropType<ScheduleResourceData[]>;
106
- required: true;
107
- };
108
- locale: StringConstructor;
109
- weekdayFormat: {
110
- type: PropType<DateLabelFormat>;
111
- default: string;
112
- };
113
- weekendDays: {
114
- type: PropType<DayOfWeek[]>;
115
- default: () => number[];
116
- };
117
- withWeekendDays: {
118
- type: BooleanConstructor;
119
- default: boolean;
120
- };
121
- startScrollDate: StringConstructor;
122
- onDayClick: PropType<ResourcesMonthViewProps["onDayClick"]>;
123
- highlightToday: {
124
- type: BooleanConstructor;
125
- default: boolean;
126
- };
127
- radius: PropType<string | number>;
128
- withHeader: {
129
- type: BooleanConstructor;
130
- default: boolean;
131
- };
132
- monthYearSelectProps: PropType<Partial<MonthYearSelectProps>>;
133
- onViewChange: PropType<ResourcesMonthViewProps["onViewChange"]>;
134
- previousControlProps: PropType<NativeButtonProps>;
135
- nextControlProps: PropType<NativeButtonProps>;
136
- todayControlProps: PropType<NativeButtonProps>;
137
- viewSelectProps: PropType<Partial<ViewSelectProps>>;
138
- events: PropType<ScheduleEventData[]>;
139
- dayWidth: {
140
- type: PropType<CSSProperties["width"]>;
141
- default: number;
142
- };
143
- rowHeight: {
144
- type: PropType<CSSProperties["height"]>;
145
- default: number;
146
- };
147
- renderEventBody: PropType<RenderEventBody>;
148
- renderEvent: PropType<RenderEvent>;
149
- renderResourceLabel: PropType<ResourcesMonthViewProps["renderResourceLabel"]>;
150
- groups: PropType<ScheduleResourceGroup[]>;
151
- renderGroupLabel: PropType<ResourcesMonthViewProps["renderGroupLabel"]>;
152
- groupLabelWidth: {
153
- type: PropType<CSSProperties["width"]>;
154
- default: number;
155
- };
156
- withEventsDragAndDrop: BooleanConstructor;
157
- onEventDrop: PropType<ResourcesMonthViewProps["onEventDrop"]>;
158
- canDragEvent: PropType<ResourcesMonthViewProps["canDragEvent"]>;
159
- onEventDragStart: PropType<ResourcesMonthViewProps["onEventDragStart"]>;
160
- onEventDragEnd: PropType<ResourcesMonthViewProps["onEventDragEnd"]>;
161
- onEventClick: PropType<ResourcesMonthViewProps["onEventClick"]>;
162
- withDragSlotSelect: BooleanConstructor;
163
- onSlotDragEnd: PropType<ResourcesMonthViewProps["onSlotDragEnd"]>;
164
- labels: PropType<ScheduleLabelsOverride>;
165
- mode: {
166
- type: PropType<ScheduleMode>;
167
- default: string;
168
- };
169
- scrollAreaProps: PropType<Record<string, unknown>>;
170
- onExternalEventDrop: PropType<ResourcesMonthViewProps["onExternalEventDrop"]>;
171
- maxEventsPerTimeSlot: {
172
- type: NumberConstructor;
173
- default: number;
174
- };
175
- moreEventsProps: PropType<Record<string, unknown>>;
176
- recurrenceExpansionLimit: {
177
- type: NumberConstructor;
178
- default: number;
179
- };
180
- }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
181
- [key: string]: any;
182
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
183
- date: {
184
- type: PropType<Date | string>;
185
- required: true;
186
- };
187
- onDateChange: PropType<ResourcesMonthViewProps["onDateChange"]>;
188
- resources: {
189
- type: PropType<ScheduleResourceData[]>;
190
- required: true;
191
- };
192
- locale: StringConstructor;
193
- weekdayFormat: {
194
- type: PropType<DateLabelFormat>;
195
- default: string;
196
- };
197
- weekendDays: {
198
- type: PropType<DayOfWeek[]>;
199
- default: () => number[];
200
- };
201
- withWeekendDays: {
202
- type: BooleanConstructor;
203
- default: boolean;
204
- };
205
- startScrollDate: StringConstructor;
206
- onDayClick: PropType<ResourcesMonthViewProps["onDayClick"]>;
207
- highlightToday: {
208
- type: BooleanConstructor;
209
- default: boolean;
210
- };
211
- radius: PropType<string | number>;
212
- withHeader: {
213
- type: BooleanConstructor;
214
- default: boolean;
215
- };
216
- monthYearSelectProps: PropType<Partial<MonthYearSelectProps>>;
217
- onViewChange: PropType<ResourcesMonthViewProps["onViewChange"]>;
218
- previousControlProps: PropType<NativeButtonProps>;
219
- nextControlProps: PropType<NativeButtonProps>;
220
- todayControlProps: PropType<NativeButtonProps>;
221
- viewSelectProps: PropType<Partial<ViewSelectProps>>;
222
- events: PropType<ScheduleEventData[]>;
223
- dayWidth: {
224
- type: PropType<CSSProperties["width"]>;
225
- default: number;
226
- };
227
- rowHeight: {
228
- type: PropType<CSSProperties["height"]>;
229
- default: number;
230
- };
231
- renderEventBody: PropType<RenderEventBody>;
232
- renderEvent: PropType<RenderEvent>;
233
- renderResourceLabel: PropType<ResourcesMonthViewProps["renderResourceLabel"]>;
234
- groups: PropType<ScheduleResourceGroup[]>;
235
- renderGroupLabel: PropType<ResourcesMonthViewProps["renderGroupLabel"]>;
236
- groupLabelWidth: {
237
- type: PropType<CSSProperties["width"]>;
238
- default: number;
239
- };
240
- withEventsDragAndDrop: BooleanConstructor;
241
- onEventDrop: PropType<ResourcesMonthViewProps["onEventDrop"]>;
242
- canDragEvent: PropType<ResourcesMonthViewProps["canDragEvent"]>;
243
- onEventDragStart: PropType<ResourcesMonthViewProps["onEventDragStart"]>;
244
- onEventDragEnd: PropType<ResourcesMonthViewProps["onEventDragEnd"]>;
245
- onEventClick: PropType<ResourcesMonthViewProps["onEventClick"]>;
246
- withDragSlotSelect: BooleanConstructor;
247
- onSlotDragEnd: PropType<ResourcesMonthViewProps["onSlotDragEnd"]>;
248
- labels: PropType<ScheduleLabelsOverride>;
249
- mode: {
250
- type: PropType<ScheduleMode>;
251
- default: string;
252
- };
253
- scrollAreaProps: PropType<Record<string, unknown>>;
254
- onExternalEventDrop: PropType<ResourcesMonthViewProps["onExternalEventDrop"]>;
255
- maxEventsPerTimeSlot: {
256
- type: NumberConstructor;
257
- default: number;
258
- };
259
- moreEventsProps: PropType<Record<string, unknown>>;
260
- recurrenceExpansionLimit: {
261
- type: NumberConstructor;
262
- default: number;
263
- };
264
- }>> & Readonly<{}>, {
265
- mode: ScheduleMode;
266
- withHeader: boolean;
267
- highlightToday: boolean;
268
- weekendDays: DayOfWeek[];
269
- weekdayFormat: DateLabelFormat;
270
- withWeekendDays: boolean;
271
- recurrenceExpansionLimit: number;
272
- withEventsDragAndDrop: boolean;
273
- withDragSlotSelect: boolean;
274
- rowHeight: import("csstype").Property.Height<string | number> | undefined;
275
- groupLabelWidth: import("csstype").Property.Width<string | number> | undefined;
276
- maxEventsPerTimeSlot: number;
277
- dayWidth: import("csstype").Property.Width<string | number> | undefined;
278
- }, SlotsType<ResourcesMonthViewSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
279
- export type ResourcesMonthViewStylesNames = keyof typeof classes;
1
+ export declare const ResourcesMonthView: import("@mantine-vue/core").MantineComponent<{
2
+ props: Omit<import("./ResourcesMonthView.types").ResourcesMonthViewProps, "rootRef">;
3
+ slots: import("./ResourcesMonthView.types").ResourcesMonthViewSlots;
4
+ emits: import("./ResourcesMonthView.types").ResourcesMonthViewEmits;
5
+ ref: HTMLDivElement;
6
+ element: "div";
7
+ stylesNames: import("./ResourcesMonthView.types").ResourcesMonthViewStylesNames;
8
+ vars: import("./ResourcesMonthView.types").ResourcesMonthViewCssVariables;
9
+ }>;
10
+ export type { ResourcesMonthViewCssVariables, ResourcesMonthViewDayClickData, ResourcesMonthViewEmits, ResourcesMonthViewFactory, ResourcesMonthViewOwnProps, ResourcesMonthViewOwnStylesNames, ResourcesMonthViewProps, ResourcesMonthViewSlots, ResourcesMonthViewStylesNames, } from './ResourcesMonthView.types';
@@ -0,0 +1,239 @@
1
+ import type { CSSProperties, VNodeChild } from 'vue';
2
+ import type { BoxProps, Factory, ScrollAreaProps } from '@mantine-vue/core';
3
+ import type { StylesApiProps } from '@mantine-vue/core/styles-api';
4
+ import type { EventSlots, EventDropData, ForwardedProps, NativeButtonProps, RenderEvent, RenderEventBody } from '../../component-props';
5
+ import type { ScheduleLabelsOverride } from '../../labels';
6
+ import type { DateLabelFormat, DateStringValue, DayOfWeek, ScheduleEventData, ScheduleMode, ScheduleResourceData, ScheduleResourceGroup, ScheduleViewLevel } from '../../types';
7
+ import type { MoreEventsEmits, MoreEventsProps, MoreEventsStylesNames } from '../MoreEvents/MoreEvents.types';
8
+ import type { ScheduleEventStylesNames } from '../ScheduleEvent/ScheduleEvent.types';
9
+ import type { CombinedScheduleHeaderStylesNames } from '../ScheduleHeader/ScheduleHeader.types';
10
+ import type { MonthYearSelectEmits, MonthYearSelectProps } from '../ScheduleHeader/MonthYearSelect/MonthYearSelect.types';
11
+ import type { ViewSelectEmits, ViewSelectProps } from '../ScheduleHeader/ViewSelect/ViewSelect.types';
12
+ import type { ResourceExternalDropData, ResourceSlotDragEndData, ResourceViewDropData } from '../ResourcesDayView/ResourcesDayView.types';
13
+ export type ResourcesMonthViewOwnStylesNames = 'resourcesMonthView' | 'resourcesMonthViewRoot' | 'resourcesMonthViewInner' | 'resourcesMonthViewScrollArea' | 'resourcesMonthViewDayLabelsRow' | 'resourcesMonthViewDayLabel' | 'resourcesMonthViewDayLabelWeekday' | 'resourcesMonthViewDayLabelNumber' | 'resourcesMonthViewCorner' | 'resourcesMonthViewResourceLabel' | 'resourcesMonthViewRow' | 'resourcesMonthViewRowSlots' | 'resourcesMonthViewCell' | 'resourcesMonthViewEventWrapper' | 'resourcesMonthViewResizeHandle' | 'resourcesMonthViewGroupColumn' | 'resourcesMonthViewGroupColumnEmpty';
14
+ /**
15
+ * `ResourcesMonthView` forwards `classNames` and `styles` to the components it renders, so
16
+ * their selectors are part of its Styles API.
17
+ */
18
+ export type ResourcesMonthViewStylesNames = ResourcesMonthViewOwnStylesNames | MoreEventsStylesNames | ScheduleEventStylesNames | CombinedScheduleHeaderStylesNames;
19
+ export type ResourcesMonthViewCssVariables = {
20
+ resourcesMonthView: '--resources-month-view-radius' | '--resources-month-view-day-width' | '--resources-month-view-row-height' | '--resources-month-view-group-label-width';
21
+ };
22
+ /** Payload of the `dayClick` event of `ResourcesMonthView`. */
23
+ export interface ResourcesMonthViewDayClickData {
24
+ /** Day that was clicked, `YYYY-MM-DD`. */
25
+ date: DateStringValue;
26
+ /** Originating DOM event. */
27
+ nativeEvent: MouseEvent;
28
+ /** Resource the cell belongs to. */
29
+ resourceId?: string | number;
30
+ }
31
+ export interface ResourcesMonthViewSlots extends EventSlots {
32
+ /** Replaces the navigation header. */
33
+ header?: (props: {
34
+ month: DateStringValue;
35
+ }) => VNodeChild;
36
+ /** Content of the top-left corner of the grid. */
37
+ corner?: (props: {
38
+ resources: ScheduleResourceData[];
39
+ }) => VNodeChild;
40
+ /** Replaces the label of a day column. */
41
+ dayLabel?: (props: {
42
+ date: DateStringValue;
43
+ weekday: VNodeChild;
44
+ day: number;
45
+ }) => VNodeChild;
46
+ /** Replaces the label of a resource row. Takes precedence over `renderResourceLabel`. */
47
+ resourceLabel?: (props: {
48
+ resource: ScheduleResourceData;
49
+ }) => VNodeChild;
50
+ /** Replaces the label of a resource group. Takes precedence over `renderGroupLabel`. */
51
+ groupLabel?: (props: {
52
+ group: ScheduleResourceGroup;
53
+ }) => VNodeChild;
54
+ /** Content rendered inside every day cell. */
55
+ dayCell?: (props: {
56
+ resource: ScheduleResourceData;
57
+ date: DateStringValue;
58
+ }) => VNodeChild;
59
+ /** Replaces the "more events" control of a day cell. */
60
+ moreEvents?: (props: {
61
+ events: ScheduleEventData[];
62
+ hiddenCount: number;
63
+ resource: ScheduleResourceData;
64
+ date: DateStringValue;
65
+ }) => VNodeChild;
66
+ }
67
+ /**
68
+ * Props declared by `ResourcesMonthView` itself. See `ResourcesMonthViewProps` for the full
69
+ * public type.
70
+ */
71
+ export interface ResourcesMonthViewOwnProps extends StylesApiProps<ResourcesMonthViewFactory> {
72
+ /** Month displayed by the view. Any day inside the month works. */
73
+ date: Date | DateStringValue;
74
+ /** Resources rendered as rows, in the given order. */
75
+ resources: ScheduleResourceData[];
76
+ /** Groups the resources are bucketed into, rendered as a leading column. */
77
+ groups?: ScheduleResourceGroup[];
78
+ /**
79
+ * Locale passed down to `dayjs` when formatting labels.
80
+ * @default 'en'
81
+ */
82
+ locale?: string;
83
+ /**
84
+ * Format of the weekday part of the day column labels.
85
+ * @default 'ddd'
86
+ */
87
+ weekdayFormat?: DateLabelFormat;
88
+ /**
89
+ * Days marked as weekend, `0` – Sunday.
90
+ * @default [0, 6]
91
+ */
92
+ weekendDays?: DayOfWeek[];
93
+ /**
94
+ * If set, weekend days get a column of their own.
95
+ * @default true
96
+ */
97
+ withWeekendDays?: boolean;
98
+ /** Day the view scrolls to on the initial render, `YYYY-MM-DD`. */
99
+ startScrollDate?: string;
100
+ /**
101
+ * If set, today is highlighted.
102
+ * @default true
103
+ */
104
+ highlightToday?: boolean;
105
+ /** Key of `theme.radius` or any valid CSS value to set `border-radius`. */
106
+ radius?: string | number;
107
+ /**
108
+ * If set, the navigation header is rendered above the grid.
109
+ * @default true
110
+ */
111
+ withHeader?: boolean;
112
+ /** Props passed to the month/year select in the header. */
113
+ monthYearSelectProps?: ForwardedProps<MonthYearSelectProps, MonthYearSelectEmits>;
114
+ /** Props passed to the previous control of the header. */
115
+ previousControlProps?: NativeButtonProps;
116
+ /** Props passed to the next control of the header. */
117
+ nextControlProps?: NativeButtonProps;
118
+ /** Props passed to the today control of the header. */
119
+ todayControlProps?: NativeButtonProps;
120
+ /** Props passed to the view select of the header. */
121
+ viewSelectProps?: ForwardedProps<ViewSelectProps, ViewSelectEmits>;
122
+ /** Events rendered by the view. */
123
+ events?: ScheduleEventData[];
124
+ /**
125
+ * Width of one day column.
126
+ * @default 80
127
+ */
128
+ dayWidth?: CSSProperties['width'];
129
+ /**
130
+ * Height of one resource row.
131
+ * @default 64
132
+ */
133
+ rowHeight?: CSSProperties['height'];
134
+ /**
135
+ * Width of the group column.
136
+ * @default 80
137
+ */
138
+ groupLabelWidth?: CSSProperties['width'];
139
+ /**
140
+ * Replaces the body of every event. Can also be set with the `eventBody` slot,
141
+ * which takes precedence over the prop.
142
+ */
143
+ renderEventBody?: RenderEventBody;
144
+ /**
145
+ * Replaces every event entirely. Can also be set with the `event` slot, which takes
146
+ * precedence over the prop.
147
+ */
148
+ renderEvent?: RenderEvent;
149
+ /**
150
+ * Replaces the label of every resource row. Can also be set with the `resourceLabel` slot,
151
+ * which takes precedence over the prop.
152
+ */
153
+ renderResourceLabel?: (resource: ScheduleResourceData) => VNodeChild;
154
+ /**
155
+ * Replaces the label of every resource group. Can also be set with the `groupLabel` slot,
156
+ * which takes precedence over the prop.
157
+ */
158
+ renderGroupLabel?: (group: ScheduleResourceGroup) => VNodeChild;
159
+ /**
160
+ * If set, events can be dragged onto another day or resource.
161
+ * @default false
162
+ */
163
+ withEventsDragAndDrop?: boolean;
164
+ /**
165
+ * Returns whether the given event may be dragged.
166
+ * @default () => true
167
+ */
168
+ canDragEvent?: (event: ScheduleEventData) => boolean;
169
+ /** If set, event start and end edges can be dragged across day cells. @default false */
170
+ withEventResize?: boolean;
171
+ /** Returns whether the given event may be resized. @default () => true */
172
+ canResizeEvent?: (event: ScheduleEventData) => boolean;
173
+ /**
174
+ * If set, items dragged in from outside the schedule can be dropped on a day cell, which emits
175
+ * `externalEventDrop`. Enabling event drag and drop turns this on as well.
176
+ * @default false
177
+ */
178
+ withExternalEventDrop?: boolean;
179
+ /**
180
+ * If set, dragging across day cells selects a range.
181
+ * @default false
182
+ */
183
+ withDragSlotSelect?: boolean;
184
+ /** Overrides for the built-in labels, used for i18n and accessible names. */
185
+ labels?: ScheduleLabelsOverride;
186
+ /**
187
+ * Interaction mode. `static` disables every event and cell interaction.
188
+ * @default 'default'
189
+ */
190
+ mode?: ScheduleMode;
191
+ /** Props passed to the `ScrollArea` that wraps the grid. */
192
+ scrollAreaProps?: ForwardedProps<ScrollAreaProps>;
193
+ /**
194
+ * Number of event rows a day cell shows before the rest collapse into a "more" control.
195
+ * Clamped to the `1` – `10` range.
196
+ * @default 2
197
+ */
198
+ maxEventsPerTimeSlot?: number;
199
+ /** Props passed to the `MoreEvents` control of a day cell. */
200
+ moreEventsProps?: ForwardedProps<MoreEventsProps, MoreEventsEmits>;
201
+ /**
202
+ * Maximum number of instances generated per recurring series.
203
+ * @default 2000
204
+ */
205
+ recurrenceExpansionLimit?: number;
206
+ }
207
+ export interface ResourcesMonthViewProps extends Omit<BoxProps, keyof ResourcesMonthViewOwnProps>, ResourcesMonthViewOwnProps {
208
+ }
209
+ export interface ResourcesMonthViewEmits {
210
+ /** Emitted when the view navigates to another month. */
211
+ dateChange: [date: DateStringValue];
212
+ /** Emitted when the header view select picks another view level. */
213
+ viewChange: [view: ScheduleViewLevel];
214
+ /** Emitted when a day cell is clicked. */
215
+ dayClick: [data: ResourcesMonthViewDayClickData];
216
+ /** Emitted when an event is clicked. */
217
+ eventClick: [event: ScheduleEventData, nativeEvent: MouseEvent];
218
+ /** Emitted when an event is dropped. */
219
+ eventDrop: [data: ResourceViewDropData];
220
+ /** Emitted when a drag of an event starts. */
221
+ eventDragStart: [event: ScheduleEventData];
222
+ /** Emitted when a drag of an event ends. */
223
+ eventDragEnd: [];
224
+ /** Emitted when a day range is selected by dragging. */
225
+ slotDragEnd: [data: ResourceSlotDragEndData];
226
+ /** Emitted when an item from outside the schedule is dropped. */
227
+ externalEventDrop: [data: ResourceExternalDropData];
228
+ /** Emitted when an event resize gesture completes. */
229
+ eventResize: [data: EventDropData];
230
+ }
231
+ export type ResourcesMonthViewFactory = Factory<{
232
+ props: Omit<ResourcesMonthViewProps, 'rootRef'>;
233
+ slots: ResourcesMonthViewSlots;
234
+ emits: ResourcesMonthViewEmits;
235
+ ref: HTMLDivElement;
236
+ element: 'div';
237
+ stylesNames: ResourcesMonthViewStylesNames;
238
+ vars: ResourcesMonthViewCssVariables;
239
+ }>;
@@ -0,0 +1,55 @@
1
+ import type { ScheduleEventData, ScheduleViewLevel } from '../../types';
2
+ import type { ResourcesMonthViewSlots } from './ResourcesMonthView.types';
3
+ import type { ResourcesMonthViewOwnProps } from './ResourcesMonthView.types';
4
+ declare const defaultProps: {
5
+ weekdayFormat: string;
6
+ weekendDays: (0 | 6)[];
7
+ withWeekendDays: true;
8
+ highlightToday: true;
9
+ withHeader: true;
10
+ dayWidth: number;
11
+ rowHeight: number;
12
+ groupLabelWidth: number;
13
+ mode: "default";
14
+ maxEventsPerTimeSlot: number;
15
+ recurrenceExpansionLimit: number;
16
+ withEventResize: false;
17
+ };
18
+ /** View levels the header offers – a resource schedule has no year view. */
19
+ declare const RESOURCE_VIEWS: readonly ["day", "week", "month"];
20
+ /** Height reserved for the "more events" control at the bottom of a cell, in px. */
21
+ declare const MORE_EVENTS_HEIGHT = 18;
22
+ /** `maxEventsPerTimeSlot` is clamped so the cells keep a workable row height. */
23
+ declare function clampMaxRows(value: number): number;
24
+ declare const varsResolver: (theme: import("@mantine-vue/core").MantineTheme, props: any, ctx: Record<string, any>) => Record<string, Record<string, string | undefined>>;
25
+ export { defaultProps, varsResolver, clampMaxRows, RESOURCE_VIEWS, MORE_EVENTS_HEIGHT };
26
+ declare const _default: typeof __VLS_export;
27
+ export default _default;
28
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ResourcesMonthViewOwnProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
29
+ dateChange: (date: string) => any;
30
+ dayClick: (data: import("./ResourcesMonthView.types").ResourcesMonthViewDayClickData) => any;
31
+ eventDragStart: (event: ScheduleEventData) => any;
32
+ eventDragEnd: () => any;
33
+ eventClick: (event: ScheduleEventData, nativeEvent: MouseEvent) => any;
34
+ viewChange: (view: ScheduleViewLevel) => any;
35
+ eventDrop: (data: import("../ResourcesDayView").ResourceViewDropData) => any;
36
+ slotDragEnd: (data: import("../ResourcesDayView").ResourceSlotDragEndData) => any;
37
+ externalEventDrop: (data: import("../ResourcesDayView").ResourceExternalDropData) => any;
38
+ eventResize: (data: import("../..").EventDropData) => any;
39
+ }, string, import("vue").PublicProps, Readonly<ResourcesMonthViewOwnProps> & Readonly<{
40
+ onDateChange?: ((date: string) => any) | undefined;
41
+ onDayClick?: ((data: import("./ResourcesMonthView.types").ResourcesMonthViewDayClickData) => any) | undefined;
42
+ onEventDragStart?: ((event: ScheduleEventData) => any) | undefined;
43
+ onEventDragEnd?: (() => any) | undefined;
44
+ onEventClick?: ((event: ScheduleEventData, nativeEvent: MouseEvent) => any) | undefined;
45
+ onViewChange?: ((view: ScheduleViewLevel) => any) | undefined;
46
+ onEventDrop?: ((data: import("../ResourcesDayView").ResourceViewDropData) => any) | undefined;
47
+ onSlotDragEnd?: ((data: import("../ResourcesDayView").ResourceSlotDragEndData) => any) | undefined;
48
+ onExternalEventDrop?: ((data: import("../ResourcesDayView").ResourceExternalDropData) => any) | undefined;
49
+ onEventResize?: ((data: import("../..").EventDropData) => any) | undefined;
50
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ResourcesMonthViewSlots>;
51
+ type __VLS_WithSlots<T, S> = T & {
52
+ new (): {
53
+ $slots: S;
54
+ };
55
+ };