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