react-big-schedule 8.1.0 → 9.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -1129
- package/dist/calendar/Calendar.d.ts +28 -0
- package/dist/calendar/Calendar.js +95 -0
- package/dist/calendar/Toolbar.d.ts +18 -0
- package/dist/calendar/Toolbar.js +6 -0
- package/dist/calendar/recurrence.check.d.ts +1 -0
- package/dist/calendar/recurrence.check.js +49 -0
- package/dist/calendar/recurrence.d.ts +8 -0
- package/dist/calendar/recurrence.js +90 -0
- package/dist/calendar/timezone.d.ts +6 -0
- package/dist/calendar/timezone.js +14 -0
- package/dist/calendar/types.d.ts +187 -0
- package/dist/calendar/types.js +1 -0
- package/dist/calendar/useEventSources.d.ts +11 -0
- package/dist/calendar/useEventSources.js +89 -0
- package/dist/calendar/useRecurrence.d.ts +4 -0
- package/dist/calendar/useRecurrence.js +15 -0
- package/dist/calendar/utils.d.ts +38 -0
- package/dist/calendar/utils.js +143 -0
- package/dist/calendar/views/DayGridView.d.ts +3 -0
- package/dist/calendar/views/DayGridView.js +375 -0
- package/dist/calendar/views/ListView.d.ts +4 -0
- package/dist/calendar/views/ListView.js +56 -0
- package/dist/calendar/views/MultiMonthView.d.ts +4 -0
- package/dist/calendar/views/MultiMonthView.js +36 -0
- package/dist/calendar/views/TimeGridView.d.ts +3 -0
- package/dist/calendar/views/TimeGridView.js +334 -0
- package/dist/calendar/views/daygrid/DayCell.d.ts +19 -0
- package/dist/calendar/views/daygrid/DayCell.js +17 -0
- package/dist/calendar/views/daygrid/EventChip.d.ts +19 -0
- package/dist/calendar/views/daygrid/EventChip.js +40 -0
- package/dist/calendar/views/daygrid/layout.d.ts +30 -0
- package/dist/calendar/views/daygrid/layout.js +63 -0
- package/dist/calendar/views/list/bucket.d.ts +8 -0
- package/dist/calendar/views/list/bucket.js +37 -0
- package/dist/calendar/views/multimonth/Cell.d.ts +12 -0
- package/dist/calendar/views/multimonth/Cell.js +44 -0
- package/dist/calendar/views/multimonth/Continuous.d.ts +8 -0
- package/dist/calendar/views/multimonth/Continuous.js +28 -0
- package/dist/calendar/views/multimonth/MonthGrid.d.ts +10 -0
- package/dist/calendar/views/multimonth/MonthGrid.js +36 -0
- package/dist/calendar/views/multimonth/shared.d.ts +27 -0
- package/dist/calendar/views/multimonth/shared.js +40 -0
- package/dist/calendar/views/timegrid/DayColumn.d.ts +49 -0
- package/dist/calendar/views/timegrid/DayColumn.js +86 -0
- package/dist/calendar/views/timegrid/model.d.ts +55 -0
- package/dist/calendar/views/timegrid/model.js +102 -0
- package/dist/components/AddMore.d.ts +13 -0
- package/dist/components/AddMore.js +9 -42
- package/dist/components/AddMorePopover.d.ts +13 -0
- package/dist/components/AddMorePopover.js +24 -95
- package/dist/components/AgendaEventItem.d.ts +10 -0
- package/dist/components/AgendaEventItem.js +33 -81
- package/dist/components/AgendaResourceEvents.d.ts +10 -0
- package/dist/components/AgendaResourceEvents.js +37 -91
- package/dist/components/AgendaView.d.ts +9 -0
- package/dist/components/AgendaView.js +10 -69
- package/dist/components/BodyView.d.ts +11 -0
- package/dist/components/BodyView.js +36 -67
- package/dist/components/DnDContext.d.ts +48 -0
- package/dist/components/DnDContext.js +200 -221
- package/dist/components/DnDSource.d.ts +49 -0
- package/dist/components/DnDSource.js +125 -120
- package/dist/components/EventItem.d.ts +41 -0
- package/dist/components/EventItem.js +585 -787
- package/dist/components/EventItemPopover.d.ts +12 -0
- package/dist/components/EventItemPopover.js +19 -143
- package/dist/components/HeaderView.d.ts +14 -0
- package/dist/components/HeaderView.js +123 -186
- package/dist/components/ResourceEvents.d.ts +54 -0
- package/dist/components/ResourceEvents.js +534 -703
- package/dist/components/ResourceView.d.ts +26 -0
- package/dist/components/ResourceView.js +64 -184
- package/dist/components/SchedulerData.d.ts +136 -0
- package/dist/components/SchedulerData.js +1296 -1226
- package/dist/components/SchedulerHeader.d.ts +25 -0
- package/dist/components/SchedulerHeader.js +50 -150
- package/dist/components/SelectedArea.d.ts +8 -0
- package/dist/components/SelectedArea.js +11 -26
- package/dist/components/Summary.d.ts +11 -0
- package/dist/components/Summary.js +21 -50
- package/dist/components/WrapperFun.d.ts +2 -0
- package/dist/components/WrapperFun.js +5 -10
- package/dist/components/index.d.ts +44 -0
- package/dist/components/index.js +428 -654
- package/dist/components/ui/Icons.d.ts +8 -0
- package/dist/components/ui/Icons.js +7 -0
- package/dist/components/ui/MiniCalendar.d.ts +9 -0
- package/dist/components/ui/MiniCalendar.js +17 -0
- package/dist/components/ui/Popover.d.ts +13 -0
- package/dist/components/ui/Popover.js +80 -0
- package/dist/config/default.d.ts +36 -0
- package/dist/config/default.js +17 -26
- package/dist/config/i18n.d.ts +27 -0
- package/dist/config/i18n.js +21 -37
- package/dist/config/scheduler.d.ts +12 -0
- package/dist/config/scheduler.js +126 -119
- package/dist/css/style.css +2 -316
- package/dist/helper/behaviors.d.ts +14 -0
- package/dist/helper/behaviors.js +75 -75
- package/dist/helper/utility.d.ts +26 -0
- package/dist/helper/utility.js +23 -30
- package/dist/index.d.ts +6 -477
- package/dist/index.js +4 -2
- package/dist/sample-data/sample1.d.ts +11 -0
- package/dist/sample-data/sample1.js +427 -372
- package/dist/types.d.ts +267 -0
- package/dist/types.js +1 -0
- package/package.json +30 -27
package/dist/helper/utility.js
CHANGED
|
@@ -1,56 +1,49 @@
|
|
|
1
1
|
import dayjs from 'dayjs';
|
|
2
2
|
export function getPos(element) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
x,
|
|
13
|
-
y
|
|
14
|
-
};
|
|
3
|
+
let x = 0;
|
|
4
|
+
let y = 0;
|
|
5
|
+
let currentElement = element;
|
|
6
|
+
while (currentElement) {
|
|
7
|
+
x += currentElement.offsetLeft - currentElement.scrollLeft;
|
|
8
|
+
y += currentElement.offsetTop - currentElement.scrollTop;
|
|
9
|
+
currentElement = currentElement.offsetParent;
|
|
10
|
+
}
|
|
11
|
+
return { x, y };
|
|
15
12
|
}
|
|
16
|
-
|
|
17
13
|
/**
|
|
18
14
|
* Generates the next numeric event ID by finding the maximum numeric ID in the events array
|
|
19
15
|
* and incrementing it by 1. Filters out non-numeric and non-finite IDs.
|
|
20
|
-
* @param {Array} events - Array of event objects with id properties
|
|
21
|
-
* @returns {number} The next available numeric ID
|
|
22
16
|
*/
|
|
23
17
|
export function getNextNumericEventId(events) {
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
const numericIds = events
|
|
19
|
+
.map(event => event.id)
|
|
20
|
+
.filter((id) => typeof id === 'number' && Number.isFinite(id));
|
|
21
|
+
return Math.max(...numericIds, 0) + 1;
|
|
26
22
|
}
|
|
27
|
-
|
|
28
23
|
/**
|
|
29
24
|
* Returns true if the string is a date-only value (YYYY-MM-DD) with no time component.
|
|
30
25
|
*/
|
|
31
26
|
export function isDateOnly(dateStr) {
|
|
32
|
-
|
|
27
|
+
return typeof dateStr === 'string' && /^\d{4}-\d{2}-\d{2}$/.test(dateStr);
|
|
33
28
|
}
|
|
34
|
-
|
|
35
29
|
/**
|
|
36
30
|
* Normalizes an event start date string to a dayjs object.
|
|
37
31
|
* Date-only strings are treated as start-of-day.
|
|
38
32
|
*/
|
|
39
33
|
export function normalizeEventStart(dateStr) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
if (isDateOnly(dateStr)) {
|
|
35
|
+
return dayjs(dateStr).startOf('day');
|
|
36
|
+
}
|
|
37
|
+
return dayjs(dateStr);
|
|
44
38
|
}
|
|
45
|
-
|
|
46
39
|
/**
|
|
47
40
|
* Normalizes an event end date string to a dayjs object.
|
|
48
41
|
* Date-only strings are treated as end-of-day to avoid UTC midnight timezone shifting
|
|
49
42
|
* causing off-by-one errors in day-cell span calculations (particularly in Month view).
|
|
50
43
|
*/
|
|
51
44
|
export function normalizeEventEnd(dateStr) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
45
|
+
if (isDateOnly(dateStr)) {
|
|
46
|
+
return dayjs(dateStr).endOf('day');
|
|
47
|
+
}
|
|
48
|
+
return dayjs(dateStr);
|
|
49
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,477 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
any
|
|
8
|
-
> {}
|
|
9
|
-
|
|
10
|
-
export function AddMorePopover<EventType extends EventItem = EventItem>(
|
|
11
|
-
props: AddMorePopoverProps<EventType>,
|
|
12
|
-
): React.ReactElement;
|
|
13
|
-
|
|
14
|
-
export interface SchedulerProps<EventType extends EventItem = EventItem> {
|
|
15
|
-
schedulerData: SchedulerData<EventType>;
|
|
16
|
-
prevClick(schedulerData: SchedulerData<EventType>): void;
|
|
17
|
-
nextClick(schedulerData: SchedulerData<EventType>): void;
|
|
18
|
-
onSelectDate(schedulerData: SchedulerData<EventType>, date: string): void;
|
|
19
|
-
onViewChange(schedulerData: SchedulerData<EventType>, view: View): void;
|
|
20
|
-
eventItemClick?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
|
|
21
|
-
eventItemTemplateResolver?: (
|
|
22
|
-
schedulerData: SchedulerData<EventType>,
|
|
23
|
-
event: EventType,
|
|
24
|
-
bgColor: string,
|
|
25
|
-
isStart: boolean,
|
|
26
|
-
isEnd: boolean,
|
|
27
|
-
mustAddCssClass: string,
|
|
28
|
-
mustBeHeight: number,
|
|
29
|
-
agendaMaxEventWidth: number,
|
|
30
|
-
) => void;
|
|
31
|
-
eventItemPopoverTemplateResolver?: (
|
|
32
|
-
schedulerData: SchedulerData<EventType>,
|
|
33
|
-
event: EventType,
|
|
34
|
-
title: string,
|
|
35
|
-
start: Dayjs,
|
|
36
|
-
end: Dayjs,
|
|
37
|
-
statusColor: string,
|
|
38
|
-
) => void;
|
|
39
|
-
toggleExpandFunc?: (schedulerData: SchedulerData<EventType>, slotId: string) => void;
|
|
40
|
-
viewEventClick?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
|
|
41
|
-
viewEventText?: string;
|
|
42
|
-
viewEvent2Text?: string;
|
|
43
|
-
viewEvent2Click?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
|
|
44
|
-
updateEventStart?: (schedulerData: SchedulerData<EventType>, event: EventType, newStart: string) => void;
|
|
45
|
-
updateEventEnd?: (schedulerData: SchedulerData<EventType>, event: EventType, newEnd: string) => void;
|
|
46
|
-
moveEvent?: (
|
|
47
|
-
schedulerData: SchedulerData<EventType>,
|
|
48
|
-
event: EventType,
|
|
49
|
-
slotId: string,
|
|
50
|
-
slotName: string,
|
|
51
|
-
start: string,
|
|
52
|
-
end: string,
|
|
53
|
-
) => void;
|
|
54
|
-
newEvent?: (
|
|
55
|
-
schedulerData: SchedulerData<EventType>,
|
|
56
|
-
slotId: string,
|
|
57
|
-
slotName: string,
|
|
58
|
-
start: string,
|
|
59
|
-
end: string,
|
|
60
|
-
type: string,
|
|
61
|
-
item: EventType,
|
|
62
|
-
) => void;
|
|
63
|
-
onScrollLeft?: (
|
|
64
|
-
schedulerData: SchedulerData<EventType>,
|
|
65
|
-
schedulerContent: React.ReactNode,
|
|
66
|
-
maxScrollLeft: number,
|
|
67
|
-
) => void;
|
|
68
|
-
onScrollRight?: (
|
|
69
|
-
schedulerData: SchedulerData<EventType>,
|
|
70
|
-
schedulerContent: React.ReactNode,
|
|
71
|
-
maxScrollLeft: number,
|
|
72
|
-
) => void;
|
|
73
|
-
onScrollTop?: (
|
|
74
|
-
schedulerData: SchedulerData<EventType>,
|
|
75
|
-
schedulerContent: React.ReactNode,
|
|
76
|
-
maxScrollTop: number,
|
|
77
|
-
) => void;
|
|
78
|
-
onScrollBottom?: (
|
|
79
|
-
schedulerData: SchedulerData<EventType>,
|
|
80
|
-
schedulerContent: React.ReactNode,
|
|
81
|
-
maxScrollTop: number,
|
|
82
|
-
) => void;
|
|
83
|
-
onSetAddMoreState?: (newState: State<EventType>) => void;
|
|
84
|
-
conflictOccurred?: (
|
|
85
|
-
schedulerData: SchedulerData<EventType>,
|
|
86
|
-
action: string,
|
|
87
|
-
item: EventType,
|
|
88
|
-
type: string,
|
|
89
|
-
slotId: string,
|
|
90
|
-
slotName: string,
|
|
91
|
-
newStart: string,
|
|
92
|
-
newEnd: string,
|
|
93
|
-
) => void;
|
|
94
|
-
nonAgendaCellHeaderTemplateResolver?: (
|
|
95
|
-
schedulerData: SchedulerData<EventType>,
|
|
96
|
-
item: { time: string; nonWorkingTime: boolean },
|
|
97
|
-
formattedDateItems: string[],
|
|
98
|
-
style: CSSProperties,
|
|
99
|
-
) => void;
|
|
100
|
-
subtitleGetter?: (schedulerData: SchedulerData<EventType>, event: EventType) => void;
|
|
101
|
-
movingEvent?: (
|
|
102
|
-
schedulerData: SchedulerData<EventType>,
|
|
103
|
-
slotId: string,
|
|
104
|
-
slotName: string,
|
|
105
|
-
newStart: string,
|
|
106
|
-
newEnd: string,
|
|
107
|
-
action: string,
|
|
108
|
-
type: string,
|
|
109
|
-
item: EventType,
|
|
110
|
-
) => void;
|
|
111
|
-
slotClickedFunc?: (schedulerData: SchedulerData<EventType>, slot: ResourceEvent<EventType>) => void;
|
|
112
|
-
slotItemTemplateResolver?: (
|
|
113
|
-
schedulerData: SchedulerData<EventType>,
|
|
114
|
-
slot: ResourceEvent<EventType>,
|
|
115
|
-
slotClickedFunc: (schedulerData: SchedulerData<EventType>, slot: ResourceEvent<EventType>) => void,
|
|
116
|
-
width: number,
|
|
117
|
-
clsName: string,
|
|
118
|
-
) => void;
|
|
119
|
-
leftCustomHeader?: React.ReactNode;
|
|
120
|
-
rightCustomHeader?: React.ReactNode;
|
|
121
|
-
dndSources?: DnDSource[];
|
|
122
|
-
// biome-ignore lint/suspicious/noExplicitAny: legacy any usage
|
|
123
|
-
parentRef?: React.RefObject<any>;
|
|
124
|
-
/** Class names for the scheduler's container, e.g. tailwind classes. They win over the default 100% width / max height. */
|
|
125
|
-
className?: string;
|
|
126
|
-
/** Inline style for the scheduler's container. */
|
|
127
|
-
style?: CSSProperties;
|
|
128
|
-
// biome-ignore lint/suspicious/noExplicitAny: legacy any usage
|
|
129
|
-
CustomResourceHeader?: React.ComponentType<any>;
|
|
130
|
-
CustomResourceCell?: React.ComponentType<CustomResourceCellProps<EventType>>;
|
|
131
|
-
configTableHeaderStyle?: CSSProperties;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
export interface CustomResourceCellProps<EventType extends EventItem = EventItem> {
|
|
135
|
-
schedulerData: SchedulerData<EventType>;
|
|
136
|
-
item: ResourceEvent<EventType>;
|
|
137
|
-
indents: React.ReactNode[];
|
|
138
|
-
slotClickedFunc?: (schedulerData: SchedulerData<EventType>, slot: ResourceEvent<EventType>) => void;
|
|
139
|
-
handleToggleExpand: (item: ResourceEvent<EventType>) => void;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export interface AddMorePopoverProps<EventType extends EventItem = EventItem> {
|
|
143
|
-
schedulerData: SchedulerData<EventType>;
|
|
144
|
-
headerItem: HeaderItem<EventType>;
|
|
145
|
-
left: number;
|
|
146
|
-
top: number;
|
|
147
|
-
height: number;
|
|
148
|
-
closeAction: (newState: State<EventType>) => void;
|
|
149
|
-
subtitleGetter?: SchedulerProps<EventType>['subtitleGetter'];
|
|
150
|
-
moveEvent?: SchedulerProps<EventType>['moveEvent'];
|
|
151
|
-
eventItemClick?: SchedulerProps<EventType>['eventItemClick'];
|
|
152
|
-
viewEventClick?: SchedulerProps<EventType>['viewEventClick'];
|
|
153
|
-
viewEventText?: string;
|
|
154
|
-
viewEvent2Text?: string;
|
|
155
|
-
viewEvent2Click?: SchedulerProps<EventType>['viewEvent2Click'];
|
|
156
|
-
eventItemTemplateResolver?: SchedulerProps<EventType>['eventItemTemplateResolver'];
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
export class SchedulerData<EventType extends EventItem = EventItem> {
|
|
160
|
-
localeDayjs(date?: ConfigType): Dayjs;
|
|
161
|
-
localeDayjs(date?: ConfigType, format?: OptionType, strict?: boolean): Dayjs;
|
|
162
|
-
localeDayjs(date?: ConfigType, format?: OptionType, locale?: string, strict?: boolean): Dayjs;
|
|
163
|
-
|
|
164
|
-
cellUnit: CellUnit;
|
|
165
|
-
viewType: ViewType;
|
|
166
|
-
startDate: string;
|
|
167
|
-
config: SchedulerDataConfig;
|
|
168
|
-
resources: Resource[];
|
|
169
|
-
events: EventType[];
|
|
170
|
-
eventGroups: EventGroup<EventType>[];
|
|
171
|
-
eventGroupsAutoGenerated: boolean;
|
|
172
|
-
showAgenda: boolean;
|
|
173
|
-
isEventPerspective: boolean;
|
|
174
|
-
resizing: boolean;
|
|
175
|
-
scrollToSpecialDayjs: boolean;
|
|
176
|
-
documentWidth: number;
|
|
177
|
-
behaviors: SchedulerDataBehaviors<EventType>;
|
|
178
|
-
|
|
179
|
-
constructor(
|
|
180
|
-
date?: string | Dayjs,
|
|
181
|
-
viewType?: ViewType,
|
|
182
|
-
showAgenda?: boolean,
|
|
183
|
-
isEventPerspective?: boolean,
|
|
184
|
-
newConfig?: SchedulerDataConfig,
|
|
185
|
-
newBehaviours?: SchedulerDataBehaviors<EventType>,
|
|
186
|
-
);
|
|
187
|
-
|
|
188
|
-
setSchedulerLocale(preset: string | ILocale, object?: Partial<ILocale>): void;
|
|
189
|
-
setCalendarPopoverLocale(lang: string): void;
|
|
190
|
-
setResources(resources: Resource[]): void;
|
|
191
|
-
setEvents(events: EventType[]): void;
|
|
192
|
-
prev(): void;
|
|
193
|
-
next(): void;
|
|
194
|
-
setViewType(viewType?: ViewType, showAgenda?: boolean, isEventPerspective?: boolean): void;
|
|
195
|
-
setDate(date?: string): void;
|
|
196
|
-
setEventGroups(eventGroups: EventGroup<EventType>[]): void;
|
|
197
|
-
setEventGroupsAutoGenerated(autoGenerated: boolean): void;
|
|
198
|
-
setMinuteStep(minuteStep: number): void;
|
|
199
|
-
getMinuteStepsInHour(): number;
|
|
200
|
-
addEventGroup(eventGroup: EventGroup<EventType>): void;
|
|
201
|
-
updateEventStart(event: EventType, newStart: string): void;
|
|
202
|
-
updateEventEnd(event: EventType, newEnd: string): void;
|
|
203
|
-
moveEvent(event: EventType, newSlotId: string, newSlotName: string, newStart: string, newEnd: string): void;
|
|
204
|
-
getSlots(): EventGroup<EventType>[] | Resource[];
|
|
205
|
-
addResource(resource: Resource): void;
|
|
206
|
-
getSlotById(slotId: string): EventType;
|
|
207
|
-
toggleExpandStatus(slotId: string): void;
|
|
208
|
-
removeEventById(eventId: string): void;
|
|
209
|
-
removeEvent(event: EventType): void;
|
|
210
|
-
isEventInTimeWindow(
|
|
211
|
-
eventStart: Date | Dayjs,
|
|
212
|
-
eventEnd: Date | Dayjs,
|
|
213
|
-
windowStart: Date | Dayjs,
|
|
214
|
-
windowEnd: Date | Dayjs,
|
|
215
|
-
): boolean;
|
|
216
|
-
addEvent(newEvent: EventType): void;
|
|
217
|
-
getResourceById(resourceId: string): ResourceEvent<EventType>;
|
|
218
|
-
getViewStartDate(): Dayjs;
|
|
219
|
-
getViewEndDate(): Dayjs;
|
|
220
|
-
getViewDates(): { startDate: Dayjs; endDate: Dayjs };
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
export class DnDContext {
|
|
224
|
-
constructor(sources: DnDSource[]);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
export class DnDSource {
|
|
228
|
-
// biome-ignore lint/complexity/noBannedTypes: legacy {} usage
|
|
229
|
-
// biome-ignore lint/suspicious/noExplicitAny: legacy any usage
|
|
230
|
-
constructor(resolveDragObjFunc: (props: {}) => any, dragAnDropEnabled: boolean, dndType?: string);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
export enum CellUnit {
|
|
234
|
-
Day,
|
|
235
|
-
Hour,
|
|
236
|
-
Week,
|
|
237
|
-
Month,
|
|
238
|
-
Year,
|
|
239
|
-
Quarter,
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
export enum ViewType {
|
|
243
|
-
Day,
|
|
244
|
-
Week,
|
|
245
|
-
Month,
|
|
246
|
-
Quarter,
|
|
247
|
-
Year,
|
|
248
|
-
Custom,
|
|
249
|
-
Custom1,
|
|
250
|
-
Custom2,
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
export interface View {
|
|
254
|
-
viewName?: string;
|
|
255
|
-
viewType: ViewType;
|
|
256
|
-
showAgenda: boolean;
|
|
257
|
-
isEventPerspective: boolean;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
export interface EventGroup<EventType extends EventItem = EventItem> {
|
|
261
|
-
id: string;
|
|
262
|
-
name: string;
|
|
263
|
-
state: EventType;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
export interface EventItem {
|
|
267
|
-
id: number | string;
|
|
268
|
-
start: string;
|
|
269
|
-
end: string;
|
|
270
|
-
resourceId: string;
|
|
271
|
-
title: string;
|
|
272
|
-
bgColor?: string;
|
|
273
|
-
rrule?: string;
|
|
274
|
-
showPopover?: boolean;
|
|
275
|
-
resizable?: boolean;
|
|
276
|
-
movable?: boolean;
|
|
277
|
-
startResizable?: boolean;
|
|
278
|
-
endResizable?: boolean;
|
|
279
|
-
groupId?: string;
|
|
280
|
-
groupName?: string;
|
|
281
|
-
/**
|
|
282
|
-
* @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
|
|
283
|
-
*/
|
|
284
|
-
exrule?: string;
|
|
285
|
-
exdates?: string[];
|
|
286
|
-
[x: string]: unknown;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
export interface ResourceEvent<EventType extends EventItem = EventItem> {
|
|
290
|
-
id: number;
|
|
291
|
-
name: string;
|
|
292
|
-
parentId?: string;
|
|
293
|
-
groupOnly?: boolean;
|
|
294
|
-
hasSummary?: boolean;
|
|
295
|
-
expanded?: boolean;
|
|
296
|
-
headerItems?: EventType[];
|
|
297
|
-
render?: boolean;
|
|
298
|
-
rowHeight: number;
|
|
299
|
-
rowMaxCount: number;
|
|
300
|
-
slotName: string;
|
|
301
|
-
slotId: string;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
export interface Resource {
|
|
305
|
-
id: string;
|
|
306
|
-
name: string;
|
|
307
|
-
parentId?: string;
|
|
308
|
-
groupOnly?: boolean;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
export interface HeaderItem<EventType extends EventItem = EventItem> {
|
|
312
|
-
time: string;
|
|
313
|
-
start: string;
|
|
314
|
-
end: string;
|
|
315
|
-
addMore: number;
|
|
316
|
-
addMoreIndex: number;
|
|
317
|
-
count: number;
|
|
318
|
-
nonWorkingTime: boolean;
|
|
319
|
-
events: EventType[];
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
export interface HeaderEvent<EventType extends EventItem = EventItem> {
|
|
323
|
-
render: boolean;
|
|
324
|
-
span: number;
|
|
325
|
-
eventItem: EventType;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
export interface State<EventType extends EventItem = EventItem> {
|
|
329
|
-
headerItem: HeaderItem<EventType>;
|
|
330
|
-
left: number;
|
|
331
|
-
top: number;
|
|
332
|
-
height: number;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
export interface SchedulerDataConfig {
|
|
336
|
-
schedulerWidth?: `${number}%`;
|
|
337
|
-
underneathHeight?: number;
|
|
338
|
-
schedulerMaxHeight?: number;
|
|
339
|
-
tableHeaderHeight?: number;
|
|
340
|
-
schedulerContentHeight?: string | number;
|
|
341
|
-
agendaResourceTableWidth?: string | number;
|
|
342
|
-
agendaMaxEventWidth?: string | number;
|
|
343
|
-
dayResourceTableWidth?: string | number;
|
|
344
|
-
weekResourceTableWidth?: string | number;
|
|
345
|
-
monthResourceTableWidth?: string | number;
|
|
346
|
-
quarterResourceTableWidth?: string | number;
|
|
347
|
-
yearResourceTableWidth?: string | number;
|
|
348
|
-
customResourceTableWidth?: string | number;
|
|
349
|
-
dayCellWidth?: string | number;
|
|
350
|
-
weekCellWidth?: string | number;
|
|
351
|
-
monthCellWidth?: string | number;
|
|
352
|
-
quarterCellWidth?: string | number;
|
|
353
|
-
yearCellWidth?: string | number;
|
|
354
|
-
customCellWidth?: string | number;
|
|
355
|
-
dayMaxEvents?: number;
|
|
356
|
-
weekMaxEvents?: number;
|
|
357
|
-
monthMaxEvents?: number;
|
|
358
|
-
quarterMaxEvents?: number;
|
|
359
|
-
yearMaxEvents?: number;
|
|
360
|
-
customMaxEvents?: number;
|
|
361
|
-
eventItemPopoverTrigger?: 'hover' | 'click';
|
|
362
|
-
eventItemPopoverPlacement?:
|
|
363
|
-
| 'topLeftMousePosition'
|
|
364
|
-
| 'bottomLeftMousePosition'
|
|
365
|
-
| 'topRightMousePosition'
|
|
366
|
-
| 'bottomRightMousePosition'
|
|
367
|
-
| 'top'
|
|
368
|
-
| 'left'
|
|
369
|
-
| 'right'
|
|
370
|
-
| 'bottom'
|
|
371
|
-
| 'topLeft'
|
|
372
|
-
| 'topRight'
|
|
373
|
-
| 'bottomLeft'
|
|
374
|
-
| 'bottomRight'
|
|
375
|
-
| 'leftTop'
|
|
376
|
-
| 'leftBottom'
|
|
377
|
-
| 'rightTop'
|
|
378
|
-
| 'rightBottom';
|
|
379
|
-
eventItemPopoverWidth?: number;
|
|
380
|
-
eventItemHeight?: number;
|
|
381
|
-
eventItemLineHeight?: number;
|
|
382
|
-
nonAgendaSlotMinHeight?: number;
|
|
383
|
-
dayStartFrom?: number;
|
|
384
|
-
dayStopTo?: number;
|
|
385
|
-
defaultEventBgColor?: string;
|
|
386
|
-
selectedAreaColor?: string;
|
|
387
|
-
nonWorkingTimeHeadColor?: string;
|
|
388
|
-
nonWorkingTimeHeadBgColor?: string;
|
|
389
|
-
nonWorkingTimeBodyBgColor?: string;
|
|
390
|
-
summaryColor?: string;
|
|
391
|
-
summaryPos?: SummaryPos;
|
|
392
|
-
groupOnlySlotColor?: string;
|
|
393
|
-
startResizable?: boolean;
|
|
394
|
-
endResizable?: boolean;
|
|
395
|
-
movable?: boolean;
|
|
396
|
-
creatable?: boolean;
|
|
397
|
-
crossResourceMove?: boolean;
|
|
398
|
-
checkConflict?: boolean;
|
|
399
|
-
scrollToSpecialDaysjsEnabled?: boolean;
|
|
400
|
-
eventItemPopoverEnabled?: boolean;
|
|
401
|
-
calendarPopoverEnabled?: boolean;
|
|
402
|
-
recurringEventsEnabled?: boolean;
|
|
403
|
-
viewChangeSpinEnabled?: boolean;
|
|
404
|
-
dateChangeSpinEnabled?: boolean;
|
|
405
|
-
headerEnabled?: boolean;
|
|
406
|
-
resourceViewEnabled?: boolean;
|
|
407
|
-
displayWeekend?: boolean;
|
|
408
|
-
relativeMove?: boolean;
|
|
409
|
-
defaultExpanded?: boolean;
|
|
410
|
-
dragAndDropEnabled?: boolean;
|
|
411
|
-
schedulerHeaderEventsFuncsTimeoutMs?: number;
|
|
412
|
-
resourceName?: string;
|
|
413
|
-
taskName?: string;
|
|
414
|
-
agendaViewHeader?: string;
|
|
415
|
-
addMorePopoverHeaderFormat?: string;
|
|
416
|
-
eventItemPopoverDateFormat?: string;
|
|
417
|
-
nonAgendaDayCellHeaderFormat?: string;
|
|
418
|
-
nonAgendaOtherCellHeaderFormat?: string;
|
|
419
|
-
minuteStep?: number;
|
|
420
|
-
views?: View[];
|
|
421
|
-
responsiveByParent?: boolean;
|
|
422
|
-
showWeekNumber?: boolean;
|
|
423
|
-
weekNumberRowHeight?: number;
|
|
424
|
-
showMonthRow?: boolean;
|
|
425
|
-
/** Show a box where the dragged event / task / resource would be placed (default true). */
|
|
426
|
-
dropPreviewEnabled?: boolean;
|
|
427
|
-
/** Extra class name for the drop preview box. */
|
|
428
|
-
dropPreviewClassName?: string;
|
|
429
|
-
/** Inline style for the drop preview box, e.g. `{ border: '2px dashed green' }`. */
|
|
430
|
-
dropPreviewStyle?: React.CSSProperties;
|
|
431
|
-
monthRowHeight?: number;
|
|
432
|
-
weekNumberLabel?: string;
|
|
433
|
-
headerBorderColor?: string;
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
export enum SummaryPos {
|
|
437
|
-
Top,
|
|
438
|
-
TopRight,
|
|
439
|
-
TopLeft,
|
|
440
|
-
Bottom,
|
|
441
|
-
BottomRight,
|
|
442
|
-
BottomLeft,
|
|
443
|
-
}
|
|
444
|
-
|
|
445
|
-
export interface SchedulerDataBehaviors<EventType extends EventItem = EventItem> {
|
|
446
|
-
isNonWorkingTimeFunc?: (schedulerData: SchedulerData<EventType>, time: string) => boolean;
|
|
447
|
-
getCustomDateFunc?: (
|
|
448
|
-
schedulerData: SchedulerData<EventType>,
|
|
449
|
-
num: number,
|
|
450
|
-
date?: string | Dayjs,
|
|
451
|
-
) => { startDate: string | Dayjs; endDate: string | Dayjs; cellUnit: CellUnit };
|
|
452
|
-
getEventTextFunc?: (schedulerData: SchedulerData<EventType>, event: EventType) => string;
|
|
453
|
-
getDateLabel?: (
|
|
454
|
-
schedulerData: SchedulerData<EventType>,
|
|
455
|
-
viewType: ViewType,
|
|
456
|
-
startDate: string | Date,
|
|
457
|
-
endDate: string | Date,
|
|
458
|
-
) => string;
|
|
459
|
-
getScrollSpecialDayjs?: (schedulerData: SchedulerData<EventType>, startDayjs: Dayjs, endDays: Dayjs) => Dayjs;
|
|
460
|
-
getSummaryFunc?: (
|
|
461
|
-
schedulerData: SchedulerData<EventType>,
|
|
462
|
-
headerEvents: HeaderEvent<EventType>[],
|
|
463
|
-
slotId: string,
|
|
464
|
-
slotName: string,
|
|
465
|
-
headerStart: string,
|
|
466
|
-
headerEnd: string,
|
|
467
|
-
) => { text: string; color: string; fontSize: string };
|
|
468
|
-
getNonAgendaViewBodyCellBgColorFunc?: (
|
|
469
|
-
schedulerData: SchedulerData<EventType>,
|
|
470
|
-
slotId: string,
|
|
471
|
-
header: { nonWorkingTime: boolean; time: string },
|
|
472
|
-
) => string;
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
export const DATE_FORMAT = 'YYYY-MM-DD';
|
|
476
|
-
|
|
477
|
-
export const DATETIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
|
|
1
|
+
export { type CalendarProps, default as Calendar } from './calendar/Calendar';
|
|
2
|
+
export type * from './calendar/types';
|
|
3
|
+
export { AddMorePopover, CellUnit, DATE_FORMAT, DATETIME_FORMAT, DemoData, DnDContext, DnDSource, Scheduler, SchedulerData, SummaryPos, ViewType, wrapperFun, } from './components/index';
|
|
4
|
+
export { getDefaultLabels, getLabel, resetLabelsProvider, setLabelsProvider, } from './config/i18n';
|
|
5
|
+
export { createDemoData } from './sample-data/sample1';
|
|
6
|
+
export type * from './types';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { default as Calendar } from './calendar/Calendar';
|
|
2
|
+
export { AddMorePopover, CellUnit, DATE_FORMAT, DATETIME_FORMAT, DemoData, DnDContext, DnDSource, Scheduler, SchedulerData, SummaryPos, ViewType, wrapperFun, } from './components/index';
|
|
3
|
+
export { getDefaultLabels, getLabel, resetLabelsProvider, setLabelsProvider, } from './config/i18n';
|
|
4
|
+
export { createDemoData } from './sample-data/sample1';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DateInput, Resource, SchedulerEvent } from '../types';
|
|
2
|
+
interface DemoDataset {
|
|
3
|
+
resources: Resource[];
|
|
4
|
+
events: SchedulerEvent[];
|
|
5
|
+
eventsForTaskView: SchedulerEvent[];
|
|
6
|
+
eventsForCustomEventStyle: SchedulerEvent[];
|
|
7
|
+
}
|
|
8
|
+
/** Sample resources and events moved to the week that contains `anchor` (default: today), so demos always show the current period. */
|
|
9
|
+
export declare function createDemoData(anchor?: DateInput): DemoDataset;
|
|
10
|
+
declare const DemoData: DemoDataset;
|
|
11
|
+
export default DemoData;
|