react-big-schedule 4.4.3 → 4.4.4-beta-4

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/dist/index.d.ts CHANGED
@@ -1,378 +1,378 @@
1
- import { ConfigType, Dayjs, OptionType } from 'dayjs';
2
- import React, { CSSProperties } from 'react';
3
-
4
- export class Scheduler<EventType extends EventItem = EventItem> extends React.Component<SchedulerProps<EventType>, any> {}
5
-
6
- export const AddMorePopover: <EventType extends EventItem = EventItem>(props: AddMorePopoverProps<EventType>) => React.ReactElement;
7
-
8
- export interface SchedulerProps<EventType extends EventItem = EventItem> {
9
- schedulerData: SchedulerData<EventType>;
10
- prevClick(schedulerData: SchedulerData<EventType>): void;
11
- nextClick(schedulerData: SchedulerData<EventType>): void;
12
- onSelectDate(schedulerData: SchedulerData<EventType>, date: string): void;
13
- onViewChange(schedulerData: SchedulerData<EventType>, view: View): void;
14
- eventItemClick?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
15
- eventItemTemplateResolver?: (
16
- schedulerData: SchedulerData<EventType>,
17
- event: EventType,
18
- bgColor: string,
19
- isStart: boolean,
20
- isEnd: boolean,
21
- mustAddCssClass: string,
22
- mustBeHeight: number,
23
- agendaMaxEventWidth: number
24
- ) => void;
25
- eventItemPopoverTemplateResolver?: (schedulerData: SchedulerData<EventType>, event: EventType, title: string, start: Dayjs, end: Dayjs, statusColor: string) => void;
26
- toggleExpandFunc?: (schedulerData: SchedulerData<EventType>, slotId: string) => void;
27
- viewEventClick?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
28
- viewEventText?: string;
29
- viewEvent2Text?: string;
30
- viewEvent2Click?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
31
- updateEventStart?: (schedulerData: SchedulerData<EventType>, event: EventType, newStart: string) => void;
32
- updateEventEnd?: (schedulerData: SchedulerData<EventType>, event: EventType, newEnd: string) => void;
33
- moveEvent?: (schedulerData: SchedulerData<EventType>, event: EventType, slotId: string, slotName: string, start: string, end: string) => void;
34
- newEvent?: (schedulerData: SchedulerData<EventType>, slotId: string, slotName: string, start: string, end: string, type: string, item: EventType) => void;
35
- onScrollLeft?: (schedulerData: SchedulerData<EventType>, schedulerContent: React.ReactNode, maxScrollLeft: number) => void;
36
- onScrollRight?: (schedulerData: SchedulerData<EventType>, schedulerContent: React.ReactNode, maxScrollLeft: number) => void;
37
- onScrollTop?: (schedulerData: SchedulerData<EventType>, schedulerContent: React.ReactNode, maxScrollTop: number) => void;
38
- onScrollBottom?: (schedulerData: SchedulerData<EventType>, schedulerContent: React.ReactNode, maxScrollTop: number) => void;
39
- onSetAddMoreState?: (newState: State<EventType>) => void;
40
- conflictOccurred?: (
41
- schedulerData: SchedulerData<EventType>,
42
- action: string,
43
- item: EventType,
44
- type: string,
45
- slotId: string,
46
- slotName: string,
47
- newStart: string,
48
- newEnd: string
49
- ) => void;
50
- nonAgendaCellHeaderTemplateResolver?: (
51
- schedulerData: SchedulerData<EventType>,
52
- item: { time: string; nonWorkingTime: boolean },
53
- formattedDateItems: string[],
54
- style: CSSProperties
55
- ) => void;
56
- subtitleGetter?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
57
- movingEvent?: (
58
- schedulerData: SchedulerData<EventType>,
59
- slotId: string,
60
- slotName: string,
61
- newStart: string,
62
- newEnd: string,
63
- action: string,
64
- type: string,
65
- item: EventType
66
- ) => void;
67
- slotClickedFunc?: (schedulerData: SchedulerData<EventType>, slot: ResourceEvent<EventType>) => void;
68
- slotItemTemplateResolver?: (
69
- schedulerData: SchedulerData<EventType>,
70
- slot: ResourceEvent<EventType>,
71
- slotClickedFunc: (schedulerData: SchedulerData<EventType>, slot: ResourceEvent<EventType>) => void,
72
- width: number,
73
- clsName: string
74
- ) => void;
75
- leftCustomHeader?: React.ReactNode;
76
- rightCustomHeader?: React.ReactNode;
77
- dndSources?: DnDSource[];
78
- parentRef?: React.RefObject<any>;
79
- }
80
-
81
- export interface AddMorePopoverProps<EventType extends EventItem = EventItem> {
82
- schedulerData: SchedulerData<EventType>;
83
- headerItem: HeaderItem<EventType>;
84
- left: number;
85
- top: number;
86
- height: number;
87
- closeAction: (newState: State<EventType>) => void;
88
- subtitleGetter?: SchedulerProps<EventType>['subtitleGetter'];
89
- moveEvent?: SchedulerProps<EventType>['moveEvent'];
90
- eventItemClick?: SchedulerProps<EventType>['eventItemClick'];
91
- viewEventClick?: SchedulerProps<EventType>['viewEventClick'];
92
- viewEventText?: string;
93
- viewEvent2Text?: string;
94
- viewEvent2Click?: SchedulerProps<EventType>['viewEvent2Click'];
95
- eventItemTemplateResolver?: SchedulerProps<EventType>['eventItemTemplateResolver'];
96
- }
97
-
98
- export class SchedulerData<EventType extends EventItem = EventItem> {
99
- localeDayjs(date?: ConfigType): Dayjs;
100
- localeDayjs(date?: ConfigType, format?: OptionType, strict?: boolean): Dayjs;
101
- localeDayjs(date?: ConfigType, format?: OptionType, locale?: string, strict?: boolean): Dayjs;
102
-
103
- cellUnit: CellUnit;
104
- viewType: ViewType;
105
- startDate: string;
106
- config: SchedulerDataConfig;
107
- resources: Resource[];
108
- events: EventType[];
109
- eventGroups: EventGroup<EventType>[];
110
- eventGroupsAutoGenerated: boolean;
111
- showAgenda: boolean;
112
- isEventPerspective: boolean;
113
- resizing: boolean;
114
- scrollToSpecialDayjs: boolean;
115
- documentWidth: number;
116
- behaviors: SchedulerDataBehaviors<EventType>;
117
-
118
- constructor(
119
- date?: string | Dayjs,
120
- viewType?: ViewType,
121
- showAgenda?: boolean,
122
- isEventPerspective?: boolean,
123
- newConfig?: SchedulerDataConfig,
124
- newBehaviours?: SchedulerDataBehaviors<EventType>
125
- );
126
-
127
- setSchedulerLocale(preset: string | ILocale, object?: Partial<ILocale>): void;
128
- setCalendarPopoverLocale(lang: string): void;
129
- setResources(resources: Resource[]): void;
130
- setEvents(events: EventType[]): void;
131
- prev(): void;
132
- next(): void;
133
- setViewType(viewType?: ViewType, showAgenda?: boolean, isEventPerspective?: boolean): void;
134
- setDate(date?: string): void;
135
- setEventGroups(eventGroups: EventGroup<EventType>[]): void;
136
- setEventGroupsAutoGenerated(autoGenerated: boolean): void;
137
- setMinuteStep(minuteStep: number): void;
138
- getMinuteStepsInHour(): number;
139
- addEventGroup(eventGroup: EventGroup<EventType>): void;
140
- updateEventStart(event: EventType, newStart: string): void;
141
- updateEventEnd(event: EventType, newEnd: string): void;
142
- moveEvent(event: EventType, newSlotId: string, newSlotName: string, newStart: string, newEnd: string): void;
143
- getSlots(): EventGroup<EventType>[] | Resource[];
144
- addResource(resource: Resource): void;
145
- getSlotById(slotId: string): EventType;
146
- toggleExpandStatus(slotId: string): void;
147
- removeEventById(eventId: string): void;
148
- removeEvent(event: EventType): void;
149
- isEventInTimeWindow(eventStart: Date | Dayjs, eventEnd: Date | Dayjs, windowStart: Date | Dayjs, windowEnd: Date | Dayjs): boolean;
150
- addEvent(newEvent: EventType): void;
151
- getResourceById(resourceId: string): ResourceEvent<EventType>;
152
- getViewStartDate(): Dayjs;
153
- getViewEndDate(): Dayjs;
154
- getViewDates(): { startDate: Dayjs; endDate: Dayjs };
155
- }
156
-
157
- export class DnDContext {
158
- constructor(sources: DnDSource[], DecoratedComponent: React.ReactNode);
159
- }
160
-
161
- export class DnDSource {
162
- constructor(resolveDragObjFunc: (props: {}) => any, DecoratedComponent: React.ReactNode, dragAnDropEnabled: boolean, dndType: string);
163
- }
164
-
165
- export enum CellUnit {
166
- Day,
167
- Hour,
168
- }
169
-
170
- export enum ViewType {
171
- Day,
172
- Week,
173
- Month,
174
- Quarter,
175
- Year,
176
- Custom,
177
- Custom1,
178
- Custom2,
179
- }
180
-
181
- export interface View {
182
- viewName?: string;
183
- viewType: ViewType;
184
- showAgenda: boolean;
185
- isEventPerspective: boolean;
186
- }
187
-
188
- export interface EventGroup<EventType extends EventItem = EventItem> {
189
- id: string;
190
- name: string;
191
- state: EventType;
192
- }
193
-
194
- export interface EventItem {
195
- id: number | string;
196
- start: string;
197
- end: string;
198
- resourceId: string;
199
- title: string;
200
- bgColor?: string;
201
- rrule?: string;
202
- showPopover?: boolean;
203
- resizable?: boolean;
204
- movable?: boolean;
205
- startResizable?: boolean;
206
- endResizable?: boolean;
207
- groupId?: string;
208
- groupName?: string;
209
- /**
210
- * @deprecated This property should not be used as EXRULE has been [deprecated in RFC 5545](https://icalendar.org/iCalendar-RFC-5545/a-3-deprecated-features.html) and does not support a DTSTART property
211
- */
212
- exrule?: string;
213
- exdates?: string[];
214
- [x: string]: unknown;
215
- }
216
-
217
- export interface ResourceEvent<EventType extends EventItem = EventItem> {
218
- id: number;
219
- name: string;
220
- parentId?: string;
221
- groupOnly?: boolean;
222
- hasSummary?: boolean;
223
- expanded?: boolean;
224
- headerItems?: EventType[];
225
- render?: boolean;
226
- rowHeight: number;
227
- rowMaxCount: number;
228
- }
229
-
230
- export interface Resource {
231
- id: string;
232
- name: string;
233
- parentId?: string;
234
- groupOnly?: boolean;
235
- }
236
-
237
- export interface HeaderItem<EventType extends EventItem = EventItem> {
238
- time: string;
239
- start: string;
240
- end: string;
241
- addMore: number;
242
- addMoreIndex: number;
243
- count: number;
244
- nonWorkingTime: boolean;
245
- events: EventType[];
246
- }
247
-
248
- export interface HeaderEvent<EventType extends EventItem = EventItem> {
249
- render: boolean;
250
- span: number;
251
- eventItem: EventType;
252
- }
253
-
254
- export interface State<EventType extends EventItem = EventItem> {
255
- headerItem: HeaderItem<EventType>;
256
- left: number;
257
- top: number;
258
- height: number;
259
- }
260
-
261
- export interface SchedulerDataConfig {
262
- schedulerWidth?: `${number}%`;
263
- besidesWidth?: number;
264
- schedulerMaxHeight?: number;
265
- tableHeaderHeight?: number;
266
- schedulerContentHeight?: string | number;
267
- agendaResourceTableWidth?: string | number;
268
- agendaMaxEventWidth?: string | number;
269
- dayResourceTableWidth?: string | number;
270
- weekResourceTableWidth?: string | number;
271
- monthResourceTableWidth?: string | number;
272
- quarterResourceTableWidth?: string | number;
273
- yearResourceTableWidth?: string | number;
274
- customResourceTableWidth?: string | number;
275
- dayCellWidth?: string | number;
276
- weekCellWidth?: string | number;
277
- monthCellWidth?: string | number;
278
- quarterCellWidth?: string | number;
279
- yearCellWidth?: string | number;
280
- customCellWidth?: string | number;
281
- dayMaxEvents?: number;
282
- weekMaxEvents?: number;
283
- monthMaxEvents?: number;
284
- quarterMaxEvents?: number;
285
- yearMaxEvents?: number;
286
- customMaxEvents?: number;
287
- eventItemPopoverTrigger?: 'hover' | 'click';
288
- eventItemPopoverPlacement?:
289
- | 'topLeftMousePosition'
290
- | 'bottomLeftMousePosition'
291
- | 'topRightMousePosition'
292
- | 'bottomRightMousePosition'
293
- | 'top'
294
- | 'left'
295
- | 'right'
296
- | 'bottom'
297
- | 'topLeft'
298
- | 'topRight'
299
- | 'bottomLeft'
300
- | 'bottomRight'
301
- | 'leftTop'
302
- | 'leftBottom'
303
- | 'rightTop'
304
- | 'rightBottom';
305
- eventItemPopoverWidth?: number;
306
- eventItemHeight?: number;
307
- eventItemLineHeight?: number;
308
- nonAgendaSlotMinHeight?: number;
309
- dayStartFrom?: number;
310
- dayStopTo?: number;
311
- defaultEventBgColor?: string;
312
- selectedAreaColor?: string;
313
- nonWorkingTimeHeadColor?: string;
314
- nonWorkingTimeHeadBgColor?: string;
315
- nonWorkingTimeBodyBgColor?: string;
316
- summaryColor?: string;
317
- summaryPos?: SummaryPos;
318
- groupOnlySlotColor?: string;
319
- startResizable?: boolean;
320
- endResizable?: boolean;
321
- movable?: boolean;
322
- creatable?: boolean;
323
- crossResourceMove?: boolean;
324
- checkConflict?: boolean;
325
- scrollToSpecialDaysjsEnabled?: boolean;
326
- eventItemPopoverEnabled?: boolean;
327
- calendarPopoverEnabled?: boolean;
328
- recurringEventsEnabled?: boolean;
329
- viewChangeSpinEnabled?: boolean;
330
- dateChangeSpinEnabled?: boolean;
331
- headerEnabled?: boolean;
332
- resourceViewEnabled?: boolean;
333
- displayWeekend?: boolean;
334
- relativeMove?: boolean;
335
- defaultExpanded?: boolean;
336
- dragAndDropEnabled?: boolean;
337
- schedulerHeaderEventsFuncsTimeoutMs?: number;
338
- resourceName?: string;
339
- taskName?: string;
340
- agendaViewHeader?: string;
341
- addMorePopoverHeaderFormat?: string;
342
- eventItemPopoverDateFormat?: string;
343
- nonAgendaDayCellHeaderFormat?: string;
344
- nonAgendaOtherCellHeaderFormat?: string;
345
- minuteStep?: number;
346
- views?: View[];
347
- responsiveByParent?: boolean;
348
- }
349
-
350
- export enum SummaryPos {
351
- Top,
352
- TopRight,
353
- TopLeft,
354
- Bottom,
355
- BottomRight,
356
- BottomLeft,
357
- }
358
-
359
- export interface SchedulerDataBehaviors<EventType extends EventItem = EventItem> {
360
- isNonWorkingTimeFunc?: (schedulerData: SchedulerData<EventType>, time: string) => boolean;
361
- getCustomDateFunc?: (schedulerData: SchedulerData<EventType>, num: number, date?: string | Dayjs) => { startDate: string | Dayjs; endDate: string | Dayjs; cellUnit: CellUnit };
362
- getEventTextFunc?: (schedulerData: SchedulerData<EventType>, event: EventType) => string;
363
- getDateLabel?: (schedulerData: SchedulerData<EventType>, viewType: ViewType, startDate: string | Date, endDate: string | Date) => string;
364
- getScrollSpecialDayjs?: (schedulerData: SchedulerData<EventType>, startDayjs: Dayjs, endDays: Dayjs) => Dayjs;
365
- getSummaryFunc?: (
366
- schedulerData: SchedulerData<EventType>,
367
- headerEvents: HeaderEvent<EventType>[],
368
- slotId: string,
369
- slotName: string,
370
- headerStart: string,
371
- headerEnd: string
372
- ) => { text: string; color: string; fontSize: string };
373
- getNonAgendaViewBodyCellBgColorFunc?: (schedulerData: SchedulerData<EventType>, slotId: string, header: { nonWorkingTime: boolean; time: string }) => string;
374
- }
375
-
376
- export const DATE_FORMAT = 'YYYY-MM-DD';
377
-
378
- export const DATETIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
1
+ import { ConfigType, Dayjs, OptionType } from 'dayjs';
2
+ import React, { CSSProperties } from 'react';
3
+
4
+ export class Scheduler<EventType extends EventItem = EventItem> extends React.Component<SchedulerProps<EventType>, any> {}
5
+
6
+ export const AddMorePopover: <EventType extends EventItem = EventItem>(props: AddMorePopoverProps<EventType>) => React.ReactElement;
7
+
8
+ export interface SchedulerProps<EventType extends EventItem = EventItem> {
9
+ schedulerData: SchedulerData<EventType>;
10
+ prevClick(schedulerData: SchedulerData<EventType>): void;
11
+ nextClick(schedulerData: SchedulerData<EventType>): void;
12
+ onSelectDate(schedulerData: SchedulerData<EventType>, date: string): void;
13
+ onViewChange(schedulerData: SchedulerData<EventType>, view: View): void;
14
+ eventItemClick?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
15
+ eventItemTemplateResolver?: (
16
+ schedulerData: SchedulerData<EventType>,
17
+ event: EventType,
18
+ bgColor: string,
19
+ isStart: boolean,
20
+ isEnd: boolean,
21
+ mustAddCssClass: string,
22
+ mustBeHeight: number,
23
+ agendaMaxEventWidth: number
24
+ ) => void;
25
+ eventItemPopoverTemplateResolver?: (schedulerData: SchedulerData<EventType>, event: EventType, title: string, start: Dayjs, end: Dayjs, statusColor: string) => void;
26
+ toggleExpandFunc?: (schedulerData: SchedulerData<EventType>, slotId: string) => void;
27
+ viewEventClick?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
28
+ viewEventText?: string;
29
+ viewEvent2Text?: string;
30
+ viewEvent2Click?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
31
+ updateEventStart?: (schedulerData: SchedulerData<EventType>, event: EventType, newStart: string) => void;
32
+ updateEventEnd?: (schedulerData: SchedulerData<EventType>, event: EventType, newEnd: string) => void;
33
+ moveEvent?: (schedulerData: SchedulerData<EventType>, event: EventType, slotId: string, slotName: string, start: string, end: string) => void;
34
+ newEvent?: (schedulerData: SchedulerData<EventType>, slotId: string, slotName: string, start: string, end: string, type: string, item: EventType) => void;
35
+ onScrollLeft?: (schedulerData: SchedulerData<EventType>, schedulerContent: React.ReactNode, maxScrollLeft: number) => void;
36
+ onScrollRight?: (schedulerData: SchedulerData<EventType>, schedulerContent: React.ReactNode, maxScrollLeft: number) => void;
37
+ onScrollTop?: (schedulerData: SchedulerData<EventType>, schedulerContent: React.ReactNode, maxScrollTop: number) => void;
38
+ onScrollBottom?: (schedulerData: SchedulerData<EventType>, schedulerContent: React.ReactNode, maxScrollTop: number) => void;
39
+ onSetAddMoreState?: (newState: State<EventType>) => void;
40
+ conflictOccurred?: (
41
+ schedulerData: SchedulerData<EventType>,
42
+ action: string,
43
+ item: EventType,
44
+ type: string,
45
+ slotId: string,
46
+ slotName: string,
47
+ newStart: string,
48
+ newEnd: string
49
+ ) => void;
50
+ nonAgendaCellHeaderTemplateResolver?: (
51
+ schedulerData: SchedulerData<EventType>,
52
+ item: { time: string; nonWorkingTime: boolean },
53
+ formattedDateItems: string[],
54
+ style: CSSProperties
55
+ ) => void;
56
+ subtitleGetter?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
57
+ movingEvent?: (
58
+ schedulerData: SchedulerData<EventType>,
59
+ slotId: string,
60
+ slotName: string,
61
+ newStart: string,
62
+ newEnd: string,
63
+ action: string,
64
+ type: string,
65
+ item: EventType
66
+ ) => void;
67
+ slotClickedFunc?: (schedulerData: SchedulerData<EventType>, slot: ResourceEvent<EventType>) => void;
68
+ slotItemTemplateResolver?: (
69
+ schedulerData: SchedulerData<EventType>,
70
+ slot: ResourceEvent<EventType>,
71
+ slotClickedFunc: (schedulerData: SchedulerData<EventType>, slot: ResourceEvent<EventType>) => void,
72
+ width: number,
73
+ clsName: string
74
+ ) => void;
75
+ leftCustomHeader?: React.ReactNode;
76
+ rightCustomHeader?: React.ReactNode;
77
+ dndSources?: DnDSource[];
78
+ parentRef?: React.RefObject<any>;
79
+ }
80
+
81
+ export interface AddMorePopoverProps<EventType extends EventItem = EventItem> {
82
+ schedulerData: SchedulerData<EventType>;
83
+ headerItem: HeaderItem<EventType>;
84
+ left: number;
85
+ top: number;
86
+ height: number;
87
+ closeAction: (newState: State<EventType>) => void;
88
+ subtitleGetter?: SchedulerProps<EventType>['subtitleGetter'];
89
+ moveEvent?: SchedulerProps<EventType>['moveEvent'];
90
+ eventItemClick?: SchedulerProps<EventType>['eventItemClick'];
91
+ viewEventClick?: SchedulerProps<EventType>['viewEventClick'];
92
+ viewEventText?: string;
93
+ viewEvent2Text?: string;
94
+ viewEvent2Click?: SchedulerProps<EventType>['viewEvent2Click'];
95
+ eventItemTemplateResolver?: SchedulerProps<EventType>['eventItemTemplateResolver'];
96
+ }
97
+
98
+ export class SchedulerData<EventType extends EventItem = EventItem> {
99
+ localeDayjs(date?: ConfigType): Dayjs;
100
+ localeDayjs(date?: ConfigType, format?: OptionType, strict?: boolean): Dayjs;
101
+ localeDayjs(date?: ConfigType, format?: OptionType, locale?: string, strict?: boolean): Dayjs;
102
+
103
+ cellUnit: CellUnit;
104
+ viewType: ViewType;
105
+ startDate: string;
106
+ config: SchedulerDataConfig;
107
+ resources: Resource[];
108
+ events: EventType[];
109
+ eventGroups: EventGroup<EventType>[];
110
+ eventGroupsAutoGenerated: boolean;
111
+ showAgenda: boolean;
112
+ isEventPerspective: boolean;
113
+ resizing: boolean;
114
+ scrollToSpecialDayjs: boolean;
115
+ documentWidth: number;
116
+ behaviors: SchedulerDataBehaviors<EventType>;
117
+
118
+ constructor(
119
+ date?: string | Dayjs,
120
+ viewType?: ViewType,
121
+ showAgenda?: boolean,
122
+ isEventPerspective?: boolean,
123
+ newConfig?: SchedulerDataConfig,
124
+ newBehaviours?: SchedulerDataBehaviors<EventType>
125
+ );
126
+
127
+ setSchedulerLocale(preset: string | ILocale, object?: Partial<ILocale>): void;
128
+ setCalendarPopoverLocale(lang: string): void;
129
+ setResources(resources: Resource[]): void;
130
+ setEvents(events: EventType[]): void;
131
+ prev(): void;
132
+ next(): void;
133
+ setViewType(viewType?: ViewType, showAgenda?: boolean, isEventPerspective?: boolean): void;
134
+ setDate(date?: string): void;
135
+ setEventGroups(eventGroups: EventGroup<EventType>[]): void;
136
+ setEventGroupsAutoGenerated(autoGenerated: boolean): void;
137
+ setMinuteStep(minuteStep: number): void;
138
+ getMinuteStepsInHour(): number;
139
+ addEventGroup(eventGroup: EventGroup<EventType>): void;
140
+ updateEventStart(event: EventType, newStart: string): void;
141
+ updateEventEnd(event: EventType, newEnd: string): void;
142
+ moveEvent(event: EventType, newSlotId: string, newSlotName: string, newStart: string, newEnd: string): void;
143
+ getSlots(): EventGroup<EventType>[] | Resource[];
144
+ addResource(resource: Resource): void;
145
+ getSlotById(slotId: string): EventType;
146
+ toggleExpandStatus(slotId: string): void;
147
+ removeEventById(eventId: string): void;
148
+ removeEvent(event: EventType): void;
149
+ isEventInTimeWindow(eventStart: Date | Dayjs, eventEnd: Date | Dayjs, windowStart: Date | Dayjs, windowEnd: Date | Dayjs): boolean;
150
+ addEvent(newEvent: EventType): void;
151
+ getResourceById(resourceId: string): ResourceEvent<EventType>;
152
+ getViewStartDate(): Dayjs;
153
+ getViewEndDate(): Dayjs;
154
+ getViewDates(): { startDate: Dayjs; endDate: Dayjs };
155
+ }
156
+
157
+ export class DnDContext {
158
+ constructor(sources: DnDSource[], DecoratedComponent: React.ReactNode);
159
+ }
160
+
161
+ export class DnDSource {
162
+ constructor(resolveDragObjFunc: (props: {}) => any, DecoratedComponent: React.ReactNode, dragAnDropEnabled: boolean, dndType: string);
163
+ }
164
+
165
+ export enum CellUnit {
166
+ Day,
167
+ Hour,
168
+ }
169
+
170
+ export enum ViewType {
171
+ Day,
172
+ Week,
173
+ Month,
174
+ Quarter,
175
+ Year,
176
+ Custom,
177
+ Custom1,
178
+ Custom2,
179
+ }
180
+
181
+ export interface View {
182
+ viewName?: string;
183
+ viewType: ViewType;
184
+ showAgenda: boolean;
185
+ isEventPerspective: boolean;
186
+ }
187
+
188
+ export interface EventGroup<EventType extends EventItem = EventItem> {
189
+ id: string;
190
+ name: string;
191
+ state: EventType;
192
+ }
193
+
194
+ export interface EventItem {
195
+ id: number | string;
196
+ start: string;
197
+ end: string;
198
+ resourceId: string;
199
+ title: string;
200
+ bgColor?: string;
201
+ rrule?: string;
202
+ showPopover?: boolean;
203
+ resizable?: boolean;
204
+ movable?: boolean;
205
+ startResizable?: boolean;
206
+ endResizable?: boolean;
207
+ groupId?: string;
208
+ groupName?: string;
209
+ /**
210
+ * @deprecated This property should not be used as EXRULE has been [deprecated in RFC 5545](https://icalendar.org/iCalendar-RFC-5545/a-3-deprecated-features.html) and does not support a DTSTART property
211
+ */
212
+ exrule?: string;
213
+ exdates?: string[];
214
+ [x: string]: unknown;
215
+ }
216
+
217
+ export interface ResourceEvent<EventType extends EventItem = EventItem> {
218
+ id: number;
219
+ name: string;
220
+ parentId?: string;
221
+ groupOnly?: boolean;
222
+ hasSummary?: boolean;
223
+ expanded?: boolean;
224
+ headerItems?: EventType[];
225
+ render?: boolean;
226
+ rowHeight: number;
227
+ rowMaxCount: number;
228
+ }
229
+
230
+ export interface Resource {
231
+ id: string;
232
+ name: string;
233
+ parentId?: string;
234
+ groupOnly?: boolean;
235
+ }
236
+
237
+ export interface HeaderItem<EventType extends EventItem = EventItem> {
238
+ time: string;
239
+ start: string;
240
+ end: string;
241
+ addMore: number;
242
+ addMoreIndex: number;
243
+ count: number;
244
+ nonWorkingTime: boolean;
245
+ events: EventType[];
246
+ }
247
+
248
+ export interface HeaderEvent<EventType extends EventItem = EventItem> {
249
+ render: boolean;
250
+ span: number;
251
+ eventItem: EventType;
252
+ }
253
+
254
+ export interface State<EventType extends EventItem = EventItem> {
255
+ headerItem: HeaderItem<EventType>;
256
+ left: number;
257
+ top: number;
258
+ height: number;
259
+ }
260
+
261
+ export interface SchedulerDataConfig {
262
+ schedulerWidth?: `${number}%`;
263
+ besidesWidth?: number;
264
+ schedulerMaxHeight?: number;
265
+ tableHeaderHeight?: number;
266
+ schedulerContentHeight?: string | number;
267
+ agendaResourceTableWidth?: string | number;
268
+ agendaMaxEventWidth?: string | number;
269
+ dayResourceTableWidth?: string | number;
270
+ weekResourceTableWidth?: string | number;
271
+ monthResourceTableWidth?: string | number;
272
+ quarterResourceTableWidth?: string | number;
273
+ yearResourceTableWidth?: string | number;
274
+ customResourceTableWidth?: string | number;
275
+ dayCellWidth?: string | number;
276
+ weekCellWidth?: string | number;
277
+ monthCellWidth?: string | number;
278
+ quarterCellWidth?: string | number;
279
+ yearCellWidth?: string | number;
280
+ customCellWidth?: string | number;
281
+ dayMaxEvents?: number;
282
+ weekMaxEvents?: number;
283
+ monthMaxEvents?: number;
284
+ quarterMaxEvents?: number;
285
+ yearMaxEvents?: number;
286
+ customMaxEvents?: number;
287
+ eventItemPopoverTrigger?: 'hover' | 'click';
288
+ eventItemPopoverPlacement?:
289
+ | 'topLeftMousePosition'
290
+ | 'bottomLeftMousePosition'
291
+ | 'topRightMousePosition'
292
+ | 'bottomRightMousePosition'
293
+ | 'top'
294
+ | 'left'
295
+ | 'right'
296
+ | 'bottom'
297
+ | 'topLeft'
298
+ | 'topRight'
299
+ | 'bottomLeft'
300
+ | 'bottomRight'
301
+ | 'leftTop'
302
+ | 'leftBottom'
303
+ | 'rightTop'
304
+ | 'rightBottom';
305
+ eventItemPopoverWidth?: number;
306
+ eventItemHeight?: number;
307
+ eventItemLineHeight?: number;
308
+ nonAgendaSlotMinHeight?: number;
309
+ dayStartFrom?: number;
310
+ dayStopTo?: number;
311
+ defaultEventBgColor?: string;
312
+ selectedAreaColor?: string;
313
+ nonWorkingTimeHeadColor?: string;
314
+ nonWorkingTimeHeadBgColor?: string;
315
+ nonWorkingTimeBodyBgColor?: string;
316
+ summaryColor?: string;
317
+ summaryPos?: SummaryPos;
318
+ groupOnlySlotColor?: string;
319
+ startResizable?: boolean;
320
+ endResizable?: boolean;
321
+ movable?: boolean;
322
+ creatable?: boolean;
323
+ crossResourceMove?: boolean;
324
+ checkConflict?: boolean;
325
+ scrollToSpecialDaysjsEnabled?: boolean;
326
+ eventItemPopoverEnabled?: boolean;
327
+ calendarPopoverEnabled?: boolean;
328
+ recurringEventsEnabled?: boolean;
329
+ viewChangeSpinEnabled?: boolean;
330
+ dateChangeSpinEnabled?: boolean;
331
+ headerEnabled?: boolean;
332
+ resourceViewEnabled?: boolean;
333
+ displayWeekend?: boolean;
334
+ relativeMove?: boolean;
335
+ defaultExpanded?: boolean;
336
+ dragAndDropEnabled?: boolean;
337
+ schedulerHeaderEventsFuncsTimeoutMs?: number;
338
+ resourceName?: string;
339
+ taskName?: string;
340
+ agendaViewHeader?: string;
341
+ addMorePopoverHeaderFormat?: string;
342
+ eventItemPopoverDateFormat?: string;
343
+ nonAgendaDayCellHeaderFormat?: string;
344
+ nonAgendaOtherCellHeaderFormat?: string;
345
+ minuteStep?: number;
346
+ views?: View[];
347
+ responsiveByParent?: boolean;
348
+ }
349
+
350
+ export enum SummaryPos {
351
+ Top,
352
+ TopRight,
353
+ TopLeft,
354
+ Bottom,
355
+ BottomRight,
356
+ BottomLeft,
357
+ }
358
+
359
+ export interface SchedulerDataBehaviors<EventType extends EventItem = EventItem> {
360
+ isNonWorkingTimeFunc?: (schedulerData: SchedulerData<EventType>, time: string) => boolean;
361
+ getCustomDateFunc?: (schedulerData: SchedulerData<EventType>, num: number, date?: string | Dayjs) => { startDate: string | Dayjs; endDate: string | Dayjs; cellUnit: CellUnit };
362
+ getEventTextFunc?: (schedulerData: SchedulerData<EventType>, event: EventType) => string;
363
+ getDateLabel?: (schedulerData: SchedulerData<EventType>, viewType: ViewType, startDate: string | Date, endDate: string | Date) => string;
364
+ getScrollSpecialDayjs?: (schedulerData: SchedulerData<EventType>, startDayjs: Dayjs, endDays: Dayjs) => Dayjs;
365
+ getSummaryFunc?: (
366
+ schedulerData: SchedulerData<EventType>,
367
+ headerEvents: HeaderEvent<EventType>[],
368
+ slotId: string,
369
+ slotName: string,
370
+ headerStart: string,
371
+ headerEnd: string
372
+ ) => { text: string; color: string; fontSize: string };
373
+ getNonAgendaViewBodyCellBgColorFunc?: (schedulerData: SchedulerData<EventType>, slotId: string, header: { nonWorkingTime: boolean; time: string }) => string;
374
+ }
375
+
376
+ export const DATE_FORMAT = 'YYYY-MM-DD';
377
+
378
+ export const DATETIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';