@progress/kendo-react-scheduler 13.3.0 → 13.4.0-develop.2
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/Scheduler.d.ts +597 -0
- package/Scheduler.js +1 -1
- package/Scheduler.mjs +1 -1
- package/components/BaseView.d.ts +25 -0
- package/components/BaseView.js +1 -1
- package/components/BaseView.mjs +3 -3
- package/components/CurrentTimeMarket.d.ts +17 -0
- package/components/DateHeaderCell.d.ts +53 -0
- package/components/SchedulerForm.d.ts +87 -0
- package/components/SchedulerForm.mjs +3 -3
- package/components/SchedulerOccurrenceDialog.d.ts +58 -0
- package/components/SchedulerOccurrenceDialog.mjs +2 -2
- package/components/SchedulerRemoveDialog.d.ts +54 -0
- package/components/ShowMoreItemsButton.d.ts +33 -0
- package/components/TimeHeaderCell.d.ts +53 -0
- package/components/footer/SchedulerFooter.d.ts +37 -0
- package/components/footer/bussiness-hours/BussinessHours.d.ts +20 -0
- package/components/header/SchedulerHeader.d.ts +34 -0
- package/components/header/navigation/NavigationDatePicker.d.ts +12 -0
- package/components/header/navigation/SchedulerNavigation.d.ts +31 -0
- package/components/header/view-selector/SchedulerViewSelector.d.ts +31 -0
- package/components/header/view-selector/ViewSelectorItem.d.ts +16 -0
- package/components/header/view-selector/ViewSelectorList.d.ts +10 -0
- package/constants/index.d.ts +61 -0
- package/constants/index.js +1 -1
- package/constants/index.mjs +9 -9
- package/context/SchedulerContext.d.ts +234 -0
- package/context/SchedulerEditItemContext.d.ts +199 -0
- package/context/SchedulerEditSlotContext.d.ts +54 -0
- package/context/SchedulerEditTaskContext.d.ts +36 -0
- package/context/SchedulerResourceIteratorContext.d.ts +23 -0
- package/context/SchedulerViewContext.d.ts +97 -0
- package/context/index.d.ts +12 -0
- package/dist/cdn/js/kendo-react-scheduler.js +1 -1
- package/editors/FilterableComboBox.d.ts +12 -0
- package/editors/ResourceEditor.d.ts +22 -0
- package/editors/SchedulerFormEditor.d.ts +495 -0
- package/editors/SchedulerFormEditor.mjs +3 -3
- package/editors/ZonedDateTime.d.ts +25 -0
- package/editors/common.d.ts +19 -0
- package/hooks/index.d.ts +17 -0
- package/hooks/use-items-focus.d.ts +39 -0
- package/hooks/use-items-selection.d.ts +47 -0
- package/hooks/use-slots-focus.d.ts +47 -0
- package/hooks/use-slots-selection.d.ts +37 -0
- package/hooks/useAsyncMouseEnterLeave.d.ts +18 -0
- package/hooks/useCellSync.d.ts +17 -0
- package/hooks/useControlledState.d.ts +20 -0
- package/hooks/useEditable.d.ts +10 -0
- package/hooks/usePropOrState.d.ts +9 -0
- package/hooks/useRowSync.d.ts +18 -0
- package/hooks/useSchedulerItem.d.ts +14 -0
- package/hooks/useSchedulerSlot.d.ts +14 -0
- package/hooks/useSlotExpand.d.ts +12 -0
- package/hooks/useWorkHours.d.ts +9 -0
- package/index.d.mts +41 -4703
- package/index.d.ts +41 -4703
- package/items/SchedulerEditItem.d.ts +453 -0
- package/items/SchedulerEditItem.mjs +7 -7
- package/items/SchedulerItem.d.ts +222 -0
- package/items/SchedulerItemContent.d.ts +18 -0
- package/items/SchedulerProportionalViewItem.d.ts +19 -0
- package/items/SchedulerViewItem.d.ts +46 -0
- package/items/hooks/use-drag-item.d.ts +51 -0
- package/items/hooks/use-form-item.d.ts +25 -0
- package/items/hooks/use-remove-item.d.ts +33 -0
- package/items/hooks/use-resize-item.d.ts +57 -0
- package/items/hooks/use-series.d.ts +30 -0
- package/items/hooks/use-show-occurrence-dialog.d.ts +34 -0
- package/items/hooks/use-show-remove-item-dialog.d.ts +34 -0
- package/messages/index.d.ts +243 -0
- package/models/DataItem.d.ts +15 -0
- package/models/DateRange.d.ts +25 -0
- package/models/EditableProp.d.ts +36 -0
- package/models/Fields.d.ts +60 -0
- package/models/Group.d.ts +21 -0
- package/models/Item.d.ts +71 -0
- package/models/NavigationAction.d.ts +65 -0
- package/models/Occurrence.d.ts +59 -0
- package/models/Omit.d.ts +11 -0
- package/models/Orientation.d.ts +9 -0
- package/models/Range.d.ts +17 -0
- package/models/Rect.d.ts +22 -0
- package/models/Resource.d.ts +15 -0
- package/models/SchedulerGroup.d.ts +20 -0
- package/models/SchedulerHandle.d.ts +21 -0
- package/models/SchedulerModelFields.d.ts +69 -0
- package/models/SchedulerResource.d.ts +40 -0
- package/models/SchedulerView.d.ts +103 -0
- package/models/Slot.d.ts +57 -0
- package/models/events.d.ts +96 -0
- package/models/index.d.ts +26 -0
- package/package-metadata.d.ts +12 -0
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +9 -16
- package/package.json +11 -11
- package/recurrence/RecurrenceEditor.d.ts +19 -0
- package/recurrence/RecurrenceEditor.mjs +3 -3
- package/recurrence/RecurrenceFrequencyEditor.d.ts +17 -0
- package/recurrence/RecurrenceRepeatOnWeekEditor.d.ts +20 -0
- package/recurrence/common.d.ts +64 -0
- package/recurrence/types/EndRule.d.ts +11 -0
- package/recurrence/types/Frequency.d.ts +11 -0
- package/recurrence/types/FrequencyEntity.d.ts +15 -0
- package/recurrence/types/MonthEntity.d.ts +14 -0
- package/recurrence/types/OffsetPosition.d.ts +11 -0
- package/recurrence/types/OffsetPositionEntity.d.ts +14 -0
- package/recurrence/types/RepeatOnRule.d.ts +11 -0
- package/recurrence/types/WeekDayEntity.d.ts +14 -0
- package/recurrence/types/WeekDayRule.d.ts +14 -0
- package/recurrence/utils/index.d.ts +7 -0
- package/reducers/editReducer.d.ts +40 -0
- package/reducers/index.d.ts +8 -0
- package/services/index.d.ts +11 -0
- package/services/itemsService.d.ts +19 -0
- package/services/occurrenceService.d.ts +10 -0
- package/services/occurrenceService.js +1 -1
- package/services/occurrenceService.mjs +12 -10
- package/services/rangeService.d.ts +10 -0
- package/services/slotsService.d.ts +13 -0
- package/slots/SchedulerEditSlot.d.ts +62 -0
- package/slots/SchedulerSlot.d.ts +140 -0
- package/slots/SchedulerViewSlot.d.ts +56 -0
- package/tasks/SchedulerEditTask.d.ts +93 -0
- package/tasks/SchedulerTask.d.ts +70 -0
- package/tasks/SchedulerViewTask.d.ts +44 -0
- package/utils/index.d.ts +177 -0
- package/views/agenda/AgendaView.d.ts +97 -0
- package/views/agenda/AgendaView.js +1 -1
- package/views/agenda/AgendaView.mjs +2 -2
- package/views/agenda/AgendaViewHeaderItem.d.ts +15 -0
- package/views/common/HorizontalResourceIterator.d.ts +33 -0
- package/views/common/HorizontalResourceIterator.js +1 -1
- package/views/common/HorizontalResourceIterator.mjs +33 -39
- package/views/common/SchedulerDrag.d.ts +46 -0
- package/views/common/SchedulerResize.d.ts +48 -0
- package/views/common/VerticalResourceIterator.d.ts +28 -0
- package/views/common/VerticalResourceIterator.js +1 -1
- package/views/common/VerticalResourceIterator.mjs +21 -21
- package/views/common/utils.d.ts +41 -0
- package/views/day/DayView.d.ts +38 -0
- package/views/day/DayView.mjs +3 -3
- package/views/day/DayViewAllDayRowContent.d.ts +15 -0
- package/views/day/DayViewGroupRowContent.d.ts +15 -0
- package/views/day/DayViewRowContent.d.ts +20 -0
- package/views/day/MultiDayView.d.ts +179 -0
- package/views/day/MultiDayView.mjs +8 -8
- package/views/month/MonthView.d.ts +104 -0
- package/views/month/MonthView.js +1 -1
- package/views/month/MonthView.mjs +5 -5
- package/views/time/MultiDayTimelineView.d.ts +183 -0
- package/views/time/MultiDayTimelineView.mjs +5 -5
- package/views/time/TimelineView.d.ts +38 -0
- package/views/time/TimelineView.mjs +3 -3
- package/views/time/TimelineViewAllEventsRowContent.d.ts +14 -0
- package/views/time/TimelineViewRowContent.d.ts +14 -0
- package/views/week/WeekView.d.ts +109 -0
- package/views/week/WeekView.mjs +1 -1
- package/views/week/WorkWeekView.d.ts +27 -0
- package/views/week/WorkWeekView.mjs +1 -1
package/Scheduler.d.ts
ADDED
|
@@ -0,0 +1,597 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
import { DataItem, SchedulerView, EditableProp, SchedulerGroup, SchedulerResource, SchedulerModelFields } from './models/index.js';
|
|
9
|
+
import { SchedulerHandle } from './models/SchedulerHandle.js';
|
|
10
|
+
import { SchedulerHeaderProps } from './components/header/SchedulerHeader.js';
|
|
11
|
+
import { SchedulerTaskProps } from './tasks/SchedulerTask.js';
|
|
12
|
+
import { SchedulerSlotProps } from './slots/SchedulerSlot.js';
|
|
13
|
+
import { SchedulerItemProps } from './items/SchedulerItem.js';
|
|
14
|
+
import { SchedulerEditItemProps } from './items/SchedulerEditItem.js';
|
|
15
|
+
import { SchedulerViewItemProps } from './items/SchedulerViewItem.js';
|
|
16
|
+
import { SchedulerViewSlotProps } from './slots/SchedulerViewSlot.js';
|
|
17
|
+
import { SchedulerEditSlotProps } from './slots/SchedulerEditSlot.js';
|
|
18
|
+
import { SchedulerFooterProps } from './components/footer/SchedulerFooter.js';
|
|
19
|
+
import { SchedulerFormProps } from './components/SchedulerForm.js';
|
|
20
|
+
import { DATA_ACTION } from './constants/index.js';
|
|
21
|
+
import * as React from 'react';
|
|
22
|
+
/**
|
|
23
|
+
* Represents the props of the [KendoReact Scheduler component](https://www.telerik.com/kendo-react-ui/components/scheduler).
|
|
24
|
+
*/
|
|
25
|
+
export interface SchedulerProps {
|
|
26
|
+
/**
|
|
27
|
+
* Specifies the `id` of the wrapping element of the Scheduler.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```jsx
|
|
31
|
+
* <Scheduler id="my-scheduler" />
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
id?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Specifies the `tabIndex` attribute of the wrapping element of the Scheduler.
|
|
37
|
+
*
|
|
38
|
+
* @default -1
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```jsx
|
|
42
|
+
* <Scheduler tabIndex={0} />
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
tabIndex?: number;
|
|
46
|
+
/**
|
|
47
|
+
* Specifies the `role` attribute of the Scheduler wrapping element.
|
|
48
|
+
*
|
|
49
|
+
* For more information, refer to the [Scheduler Accessibility Compliance](https://www.telerik.com/kendo-react-ui/components/scheduler/accessibility/wai-aria-support) article.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```jsx
|
|
53
|
+
* <Scheduler role="application" />
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
role?: string;
|
|
57
|
+
/**
|
|
58
|
+
* The `aria-labelledby` attribute to be applied to the Scheduler component.
|
|
59
|
+
*
|
|
60
|
+
* For more information, refer to the [Scheduler Accessibility Compliance](https://www.telerik.com/kendo-react-ui/components/scheduler/accessibility/wai-aria-support) article.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```jsx
|
|
64
|
+
* <Scheduler ariaLabelledby="scheduler-label" />
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
ariaLabelledby?: string;
|
|
68
|
+
/**
|
|
69
|
+
* The `aria-label` attribute to be applied to the Scheduler component.
|
|
70
|
+
*
|
|
71
|
+
* For more information, refer to the [Scheduler Accessibility Compliance](https://www.telerik.com/kendo-react-ui/components/scheduler/accessibility/wai-aria-support) article.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```jsx
|
|
75
|
+
* <Scheduler ariaLabel="Scheduler component" />
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
ariaLabel?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Specifies the `style` object of the wrapping element of the Scheduler.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```jsx
|
|
84
|
+
* <Scheduler style={{ height: '500px' }} />
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
style?: React.CSSProperties;
|
|
88
|
+
/**
|
|
89
|
+
* Specifies the `className` attribute of the wrapping element of the Scheduler.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```jsx
|
|
93
|
+
* <Scheduler className="custom-scheduler" />
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
className?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Overrides the default item. If you specify the `item` property of a specific view, it overrides this property.
|
|
99
|
+
*
|
|
100
|
+
* The default component is: [SchedulerItem](https://www.telerik.com/kendo-react-ui/components/scheduler/api/scheduleritem).
|
|
101
|
+
*
|
|
102
|
+
* For more information on customizing the scheduler items, refer to the [Item Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/items) article.
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```jsx
|
|
106
|
+
* const CustomItem = (props) => <div>{props.title}</div>;
|
|
107
|
+
* <Scheduler item={CustomItem} />
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
item?: React.ComponentType<SchedulerItemProps>;
|
|
111
|
+
/**
|
|
112
|
+
* Overrides the default viewItem. If you specify the `viewItem` property of a specific view, it overrides this property.
|
|
113
|
+
*
|
|
114
|
+
* The default component is: [SchedulerViewItem](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulerviewitem).
|
|
115
|
+
*
|
|
116
|
+
* For more information on customizing the scheduler items, refer to the [Item Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/items) article.
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* ```jsx
|
|
120
|
+
* const CustomViewItem = (props) => <div>{props.title}</div>;
|
|
121
|
+
* <Scheduler viewItem={CustomViewItem} />
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
viewItem?: React.ComponentType<SchedulerViewItemProps>;
|
|
125
|
+
/**
|
|
126
|
+
* Overrides the default editItem. Specifying the `editItem` property of a specific view will override this property.
|
|
127
|
+
*
|
|
128
|
+
* The default component is: [SchedulerEditItem](https://www.telerik.com/kendo-react-ui/components/scheduler/api/scheduleredititem).
|
|
129
|
+
*
|
|
130
|
+
* For more information on customizing the scheduler items, refer to the [Item Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/items) article.
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```jsx
|
|
134
|
+
* const CustomEditItem = (props) => <div>{props.title}</div>;
|
|
135
|
+
* <Scheduler editItem={CustomEditItem} />
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
editItem?: React.ComponentType<SchedulerEditItemProps>;
|
|
139
|
+
/**
|
|
140
|
+
* Overrides the default task. Specifying the `task` property of a specific view will override this property.
|
|
141
|
+
* Currently, only the [AgendaView](https://www.telerik.com/kendo-react-ui/components/scheduler/views/agenda) uses the `task`.
|
|
142
|
+
*
|
|
143
|
+
* The default component is: [SchedulerTask](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulertask).
|
|
144
|
+
*
|
|
145
|
+
* For more information on customizing the scheduler tasks, refer to the [Task Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/tasks) article.
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```jsx
|
|
149
|
+
* const CustomTask = (props) => <div>{props.title}</div>;
|
|
150
|
+
* <Scheduler task={CustomTask} />
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
task?: React.ComponentType<SchedulerTaskProps>;
|
|
154
|
+
/**
|
|
155
|
+
* Overrides the default viewTask. Specifying the `viewTask` property of a specific view will override this property.
|
|
156
|
+
* Currently, only the [AgendaView](https://www.telerik.com/kendo-react-ui/components/scheduler/views/agenda) uses the `viewTask`.
|
|
157
|
+
*
|
|
158
|
+
* The default component is: [SchedulerViewTask](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulerviewtask).
|
|
159
|
+
*
|
|
160
|
+
* For more information on customizing the scheduler tasks, refer to the [Task Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/tasks) article.
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```jsx
|
|
164
|
+
* const CustomViewTask = (props) => <div>{props.title}</div>;
|
|
165
|
+
* <Scheduler viewTask={CustomViewTask} />
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
viewTask?: React.ComponentType<SchedulerTaskProps>;
|
|
169
|
+
/**
|
|
170
|
+
* Overrides the default editTask. Specifying the `editTask` property of a specific view will override this property.
|
|
171
|
+
* Currently, only the [AgendaView](https://www.telerik.com/kendo-react-ui/components/scheduler/views/agenda) uses the `editTask`.
|
|
172
|
+
*
|
|
173
|
+
* The default component is: [SchedulerEditTask](https://www.telerik.com/kendo-react-ui/components/scheduler/api/scheduleredittask).
|
|
174
|
+
*
|
|
175
|
+
* For more information on customizing the scheduler tasks, refer to the [Task Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/tasks) article.
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```jsx
|
|
179
|
+
* const CustomEditTask = (props) => <div>{props.title}</div>;
|
|
180
|
+
* <Scheduler editTask={CustomEditTask} />
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
editTask?: React.ComponentType<SchedulerTaskProps>;
|
|
184
|
+
/**
|
|
185
|
+
* Overrides the default header component of the Scheduler.
|
|
186
|
+
*
|
|
187
|
+
* The default component is: [SchedulerHeader](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulerheader).
|
|
188
|
+
*
|
|
189
|
+
* For more information on customizing the scheduler header, refer to the [Header Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/header-footer) article.
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```jsx
|
|
193
|
+
* const CustomHeader = (props) => <div>Custom Header</div>;
|
|
194
|
+
* <Scheduler header={CustomHeader} />
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
header?: React.ComponentType<SchedulerHeaderProps>;
|
|
198
|
+
/**
|
|
199
|
+
* Overrides the default footer component of the Scheduler.
|
|
200
|
+
*
|
|
201
|
+
* The default component is: [SchedulerFooter](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulerfooter).
|
|
202
|
+
*
|
|
203
|
+
* For more information on customizing the scheduler footer, refer to the [Footer Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/header-footer) article.
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```jsx
|
|
207
|
+
* const CustomFooter = (props) => <div>Custom Footer</div>;
|
|
208
|
+
* <Scheduler footer={CustomFooter} />
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
footer?: React.ComponentType<SchedulerFooterProps>;
|
|
212
|
+
/**
|
|
213
|
+
* Overrides the default slot component. Specifying the `slot` property of a specific view will override this property.
|
|
214
|
+
*
|
|
215
|
+
* The default component is: [SchedulerSlot](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulerslot).
|
|
216
|
+
*
|
|
217
|
+
* For more information on customizing the scheduler slots, refer to the [Slot Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/slots) article.
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```jsx
|
|
221
|
+
* const CustomSlot = (props) => <div>{props.title}</div>;
|
|
222
|
+
* <Scheduler slot={CustomSlot} />
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
slot?: React.ComponentType<SchedulerSlotProps>;
|
|
226
|
+
/**
|
|
227
|
+
* Overrides the default viewSlot component. Specifying the `viewSlot` property of a specific view will override this property.
|
|
228
|
+
*
|
|
229
|
+
* The default component is: [SchedulerViewSlot](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulerviewslot).
|
|
230
|
+
*
|
|
231
|
+
* For more information on customizing the scheduler slots, refer to the [Slot Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/slots) article.
|
|
232
|
+
*
|
|
233
|
+
* @example
|
|
234
|
+
* ```jsx
|
|
235
|
+
* const CustomViewSlot = (props) => <div>{props.title}</div>;
|
|
236
|
+
* <Scheduler viewSlot={CustomViewSlot} />
|
|
237
|
+
* ```
|
|
238
|
+
*/
|
|
239
|
+
viewSlot?: React.ComponentType<SchedulerViewSlotProps>;
|
|
240
|
+
/**
|
|
241
|
+
* Overrides the default editSlot component. Specifying the `editSlot` property of a specific view will override this property.
|
|
242
|
+
*
|
|
243
|
+
* The default component is: [SchedulerEditSlot](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulereditslot).
|
|
244
|
+
*
|
|
245
|
+
* For more information on customizing the scheduler slots, refer to the [Slot Customization](https://www.telerik.com/kendo-react-ui/components/scheduler/customization/slots) article.
|
|
246
|
+
*
|
|
247
|
+
* @example
|
|
248
|
+
* ```jsx
|
|
249
|
+
* const CustomEditSlot = (props) => <div>{props.title}</div>;
|
|
250
|
+
* <Scheduler editSlot={CustomEditSlot} />
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
editSlot?: React.ComponentType<SchedulerEditSlotProps>;
|
|
254
|
+
/** @hidden */
|
|
255
|
+
form?: React.ComponentType<SchedulerFormProps>;
|
|
256
|
+
/**
|
|
257
|
+
* Sets the currently selected view. The value is matched with the `name` property of the view.
|
|
258
|
+
*
|
|
259
|
+
* Sets the initially selected view. The available values are:
|
|
260
|
+
* * `day`
|
|
261
|
+
* * `week`
|
|
262
|
+
* * `month`
|
|
263
|
+
* * `agenda`
|
|
264
|
+
* * `timeline`
|
|
265
|
+
*
|
|
266
|
+
* @example
|
|
267
|
+
* ```jsx
|
|
268
|
+
* <Scheduler view="day" />
|
|
269
|
+
* ```
|
|
270
|
+
*/
|
|
271
|
+
view?: string;
|
|
272
|
+
/**
|
|
273
|
+
* Sets the data of the Scheduler component. The data is then parsed and rendered as visual Scheduler items.
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* ```jsx
|
|
277
|
+
* const data = [{ id: 1, title: 'Event', start: new Date(), end: new Date() }];
|
|
278
|
+
* <Scheduler data={data} />
|
|
279
|
+
* ```
|
|
280
|
+
*/
|
|
281
|
+
data?: DataItem[];
|
|
282
|
+
/**
|
|
283
|
+
* Sets if the Scheduler component is editable. The value can be either a `boolean` or an Object to specify different types of editing.
|
|
284
|
+
*
|
|
285
|
+
* @default false
|
|
286
|
+
*
|
|
287
|
+
* @example
|
|
288
|
+
* ```jsx
|
|
289
|
+
* <Scheduler editable={true} />
|
|
290
|
+
* ```
|
|
291
|
+
*/
|
|
292
|
+
editable?: EditableProp | boolean;
|
|
293
|
+
/**
|
|
294
|
+
* Sets the initially selected view.
|
|
295
|
+
*
|
|
296
|
+
* For more information refer to the [Scheduler Views](https://www.telerik.com/kendo-react-ui/components/scheduler/views) article.
|
|
297
|
+
*
|
|
298
|
+
* Sets the initially selected view. The available values are:
|
|
299
|
+
* * `day`
|
|
300
|
+
* * `week`
|
|
301
|
+
* * `month`
|
|
302
|
+
* * `agenda`
|
|
303
|
+
* * `timeline`
|
|
304
|
+
*
|
|
305
|
+
* @example
|
|
306
|
+
* ```jsx
|
|
307
|
+
* <Scheduler defaultView="week" />
|
|
308
|
+
* ```
|
|
309
|
+
*/
|
|
310
|
+
defaultView?: string;
|
|
311
|
+
/**
|
|
312
|
+
* Sets the current selected `Date`. The current selected date is passed to the selected view and transformed into a range.
|
|
313
|
+
*
|
|
314
|
+
* @example
|
|
315
|
+
* ```jsx
|
|
316
|
+
* <Scheduler date={new Date()} />
|
|
317
|
+
* ```
|
|
318
|
+
*/
|
|
319
|
+
date?: Date;
|
|
320
|
+
/**
|
|
321
|
+
* Sets a default selected `Date`. Use the `defaultDate` property to specify the initial rendered date while remaining in an uncontrolled mode.
|
|
322
|
+
*
|
|
323
|
+
* @example
|
|
324
|
+
* ```jsx
|
|
325
|
+
* <Scheduler defaultDate={new Date()} />
|
|
326
|
+
* ```
|
|
327
|
+
*/
|
|
328
|
+
defaultDate?: Date;
|
|
329
|
+
/**
|
|
330
|
+
* Forces RTL mode. For more information refer to [RTL Support](https://www.telerik.com/kendo-react-ui/components/scheduler/globalization#toc-right-to-left-support).
|
|
331
|
+
*
|
|
332
|
+
* @example
|
|
333
|
+
* ```jsx
|
|
334
|
+
* <Scheduler rtl={true} />
|
|
335
|
+
* ```
|
|
336
|
+
*/
|
|
337
|
+
rtl?: boolean;
|
|
338
|
+
/**
|
|
339
|
+
* Sets the `height` of the Scheduler.
|
|
340
|
+
*
|
|
341
|
+
* @default 600
|
|
342
|
+
*
|
|
343
|
+
* @example
|
|
344
|
+
* ```jsx
|
|
345
|
+
* <Scheduler height={600} />
|
|
346
|
+
* ```
|
|
347
|
+
*/
|
|
348
|
+
height?: number | string;
|
|
349
|
+
/**
|
|
350
|
+
* Specifies the available `view` components as `children`. The Scheduler matches the currently selected view and renders it.
|
|
351
|
+
*
|
|
352
|
+
* @example
|
|
353
|
+
* ```jsx
|
|
354
|
+
* <Scheduler>
|
|
355
|
+
* <DayView />
|
|
356
|
+
* <WeekView />
|
|
357
|
+
* </Scheduler>
|
|
358
|
+
* ```
|
|
359
|
+
*/
|
|
360
|
+
children?: SchedulerView[] | SchedulerView;
|
|
361
|
+
/**
|
|
362
|
+
* Specifies the id of the timezone that the Scheduler displays.
|
|
363
|
+
* For example, `Europe/Sofia`.
|
|
364
|
+
*
|
|
365
|
+
* @default "Etc/UTC"
|
|
366
|
+
*
|
|
367
|
+
* @example
|
|
368
|
+
* ```jsx
|
|
369
|
+
* <Scheduler timezone="Europe/Sofia" />
|
|
370
|
+
* ```
|
|
371
|
+
*/
|
|
372
|
+
timezone?: string;
|
|
373
|
+
/**
|
|
374
|
+
* Specifies the groups of the Scheduler.
|
|
375
|
+
*
|
|
376
|
+
* @example
|
|
377
|
+
* ```jsx
|
|
378
|
+
* const group = { resources: ['Rooms'], orientation: 'horizontal' };
|
|
379
|
+
* <Scheduler group={group} />
|
|
380
|
+
* ```
|
|
381
|
+
*/
|
|
382
|
+
group?: SchedulerGroup;
|
|
383
|
+
/**
|
|
384
|
+
* Specifies the resources of the Scheduler.
|
|
385
|
+
*
|
|
386
|
+
* @example
|
|
387
|
+
* ```jsx
|
|
388
|
+
* const resources = [{ name: 'Rooms', data: [{ text: 'Room 1', value: 1 }] }];
|
|
389
|
+
* <Scheduler resources={resources} />
|
|
390
|
+
* ```
|
|
391
|
+
*/
|
|
392
|
+
resources?: SchedulerResource[];
|
|
393
|
+
/**
|
|
394
|
+
* Specifies the names of the model fields from which the Scheduler reads its data
|
|
395
|
+
* ([see example](https://www.telerik.com/kendo-react-ui/components/scheduler/data-binding)).
|
|
396
|
+
*
|
|
397
|
+
* @example
|
|
398
|
+
* ```jsx
|
|
399
|
+
* const modelFields = { id: 'TaskID', start: 'Start', end: 'End' };
|
|
400
|
+
* <Scheduler modelFields={modelFields} />
|
|
401
|
+
* ```
|
|
402
|
+
*/
|
|
403
|
+
modelFields?: SchedulerModelFields;
|
|
404
|
+
/**
|
|
405
|
+
* Fires when the user selects a new `date`.
|
|
406
|
+
*
|
|
407
|
+
* @example
|
|
408
|
+
* ```jsx
|
|
409
|
+
* const handleDateChange = (args) => console.log(args.value);
|
|
410
|
+
* <Scheduler onDateChange={handleDateChange} />
|
|
411
|
+
* ```
|
|
412
|
+
*/
|
|
413
|
+
onDateChange?: (args: SchedulerDateChangeEvent) => void;
|
|
414
|
+
/**
|
|
415
|
+
* Fires when the user selects a new `view`. [(see example)](https://www.telerik.com/kendo-react-ui/components/scheduler/views#toc-controlling-the-selected-view).
|
|
416
|
+
*
|
|
417
|
+
* @example
|
|
418
|
+
* ```jsx
|
|
419
|
+
* const handleViewChange = (args) => console.log(args.value);
|
|
420
|
+
* <Scheduler onViewChange={handleViewChange} />
|
|
421
|
+
* ```
|
|
422
|
+
*/
|
|
423
|
+
onViewChange?: (args: SchedulerViewChangeEvent) => void;
|
|
424
|
+
/**
|
|
425
|
+
* Fires each time editing occurs.
|
|
426
|
+
* To enable editing set the `editable` property to `true` or an [`EditableProp`](https://www.telerik.com/kendo-react-ui/components/scheduler/api/editableprop).
|
|
427
|
+
*
|
|
428
|
+
* For more information refer to the [Scheduler Editing](https://www.telerik.com/kendo-react-ui/components/scheduler/editing) article.
|
|
429
|
+
*
|
|
430
|
+
* @example
|
|
431
|
+
* ```jsx
|
|
432
|
+
* const handleDataChange = (event) => console.log(event);
|
|
433
|
+
* <Scheduler onDataChange={handleDataChange} />
|
|
434
|
+
* ```
|
|
435
|
+
*/
|
|
436
|
+
onDataChange?: (event: SchedulerDataChangeEvent) => void;
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Specifies the action which can be dispatched through the [SchedulerDataContext](https://www.telerik.com/kendo-react-ui/components/scheduler/api/schedulerdatacontext).
|
|
440
|
+
*
|
|
441
|
+
* For more information refer to the [Scheduler Context](https://www.telerik.com/kendo-react-ui/components/scheduler/context) article.
|
|
442
|
+
*/
|
|
443
|
+
export interface DataAction {
|
|
444
|
+
/**
|
|
445
|
+
* The `type` of the action. The available types are:
|
|
446
|
+
* - `create`
|
|
447
|
+
* - `update`
|
|
448
|
+
* - `remove`
|
|
449
|
+
*/
|
|
450
|
+
type: DATA_ACTION;
|
|
451
|
+
/**
|
|
452
|
+
* Specifies if the action should be applied to the whole series of a recurring item. If the item is not recurring, set `series` to `false`.
|
|
453
|
+
*/
|
|
454
|
+
series: boolean;
|
|
455
|
+
/**
|
|
456
|
+
* Specifies the `dataItem` being edited.
|
|
457
|
+
*/
|
|
458
|
+
dataItem: DataItem;
|
|
459
|
+
}
|
|
460
|
+
/** @hidden */
|
|
461
|
+
export interface DateChangeEvent {
|
|
462
|
+
target: any;
|
|
463
|
+
syntheticEvent: React.SyntheticEvent;
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Fires every time the user changes the selected `date`.
|
|
467
|
+
* The value is a JavaScript `Date` object.
|
|
468
|
+
* For more information, refer to the article on
|
|
469
|
+
* [date selection](https://www.telerik.com/kendo-react-ui/components/scheduler/date-selection).
|
|
470
|
+
*/
|
|
471
|
+
export interface SchedulerDateChangeEvent {
|
|
472
|
+
/**
|
|
473
|
+
* The new date value selected by the user.
|
|
474
|
+
*/
|
|
475
|
+
value: Date;
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* Fires every time the user changes the provided `data`.
|
|
479
|
+
*
|
|
480
|
+
* For more information, refer to the [Scheduler Data Binding](https://www.telerik.com/kendo-react-ui/components/scheduler/data-binding) article.
|
|
481
|
+
*/
|
|
482
|
+
export interface SchedulerDataChangeEvent {
|
|
483
|
+
/**
|
|
484
|
+
* Contains the newly created data items.
|
|
485
|
+
*/
|
|
486
|
+
created: DataItem[];
|
|
487
|
+
/**
|
|
488
|
+
* Contains the updated data items.
|
|
489
|
+
*/
|
|
490
|
+
updated: DataItem[];
|
|
491
|
+
/**
|
|
492
|
+
* Contains the deleted data items.
|
|
493
|
+
*/
|
|
494
|
+
deleted: DataItem[];
|
|
495
|
+
}
|
|
496
|
+
/** @hidden */
|
|
497
|
+
export interface ActiveViewNameChangeEvent {
|
|
498
|
+
syntheticEvent: React.SyntheticEvent;
|
|
499
|
+
target: any;
|
|
500
|
+
}
|
|
501
|
+
/**
|
|
502
|
+
* Fires every time the user changes the active `view`.
|
|
503
|
+
*
|
|
504
|
+
* For more information, refer to the [Scheduler Views](https://www.telerik.com/kendo-react-ui/components/scheduler/views) article.
|
|
505
|
+
*/
|
|
506
|
+
export interface SchedulerViewChangeEvent {
|
|
507
|
+
/**
|
|
508
|
+
* The name of the selected view.
|
|
509
|
+
*/
|
|
510
|
+
value: string;
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* Represents the [KendoReact Scheduler component](https://www.telerik.com/kendo-react-ui/components/scheduler)
|
|
514
|
+
*
|
|
515
|
+
* @remarks
|
|
516
|
+
* Supported children components are: {@link TimelineView}, {@link DayView}, {@link WeekView}, {@link MonthView}, {@link AgendaView}.
|
|
517
|
+
*
|
|
518
|
+
* @example
|
|
519
|
+
* ```jsx
|
|
520
|
+
* const currentYear = new Date().getFullYear();
|
|
521
|
+
* const parseAdjust = (eventDate) => {
|
|
522
|
+
* const date = new Date(eventDate);
|
|
523
|
+
* date.setFullYear(currentYear);
|
|
524
|
+
* return date;
|
|
525
|
+
* };
|
|
526
|
+
*
|
|
527
|
+
* const baseData = [
|
|
528
|
+
* {
|
|
529
|
+
* TaskID: 4,
|
|
530
|
+
* OwnerID: 2,
|
|
531
|
+
* Title: 'Bowling tournament',
|
|
532
|
+
* Description: '',
|
|
533
|
+
* StartTimezone: null,
|
|
534
|
+
* Start: '2013-06-09T21:00:00.000Z',
|
|
535
|
+
* End: '2013-06-10T00:00:00.000Z',
|
|
536
|
+
* EndTimezone: null,
|
|
537
|
+
* RecurrenceRule: null,
|
|
538
|
+
* RecurrenceID: null,
|
|
539
|
+
* RecurrenceException: null,
|
|
540
|
+
* isAllDay: false,
|
|
541
|
+
* },
|
|
542
|
+
* {
|
|
543
|
+
* TaskID: 5,
|
|
544
|
+
* OwnerID: 2,
|
|
545
|
+
* Title: 'Take the dog to the vet',
|
|
546
|
+
* Description: '',
|
|
547
|
+
* StartTimezone: null,
|
|
548
|
+
* Start: '2013-06-10T07:00:00.000Z',
|
|
549
|
+
* End: '2013-06-10T08:00:00.000Z',
|
|
550
|
+
* EndTimezone: null,
|
|
551
|
+
* RecurrenceRule: null,
|
|
552
|
+
* RecurrenceID: null,
|
|
553
|
+
* RecurrenceException: null,
|
|
554
|
+
* isAllDay: false,
|
|
555
|
+
* },
|
|
556
|
+
* ];
|
|
557
|
+
*
|
|
558
|
+
* const sampleData = baseData.map((dataItem) => ({
|
|
559
|
+
* id: dataItem.TaskID,
|
|
560
|
+
* start: parseAdjust(dataItem.Start),
|
|
561
|
+
* startTimezone: dataItem.startTimezone,
|
|
562
|
+
* end: parseAdjust(dataItem.End),
|
|
563
|
+
* endTimezone: dataItem.endTimezone,
|
|
564
|
+
* isAllDay: dataItem.isAllDay,
|
|
565
|
+
* title: dataItem.Title,
|
|
566
|
+
* description: dataItem.Description,
|
|
567
|
+
* recurrenceRule: dataItem.RecurrenceRule,
|
|
568
|
+
* recurrenceExceptions: dataItem.RecurrenceException,
|
|
569
|
+
* roomId: dataItem.RoomID,
|
|
570
|
+
* ownerID: dataItem.OwnerID,
|
|
571
|
+
* personId: dataItem.OwnerID,
|
|
572
|
+
* }));
|
|
573
|
+
*
|
|
574
|
+
* const App = () => {
|
|
575
|
+
* return (
|
|
576
|
+
* <Scheduler data={sampleData}>
|
|
577
|
+
* <AgendaView />
|
|
578
|
+
* <DayView />
|
|
579
|
+
* <WeekView />
|
|
580
|
+
* <MonthView />
|
|
581
|
+
* </Scheduler>
|
|
582
|
+
* );
|
|
583
|
+
* };
|
|
584
|
+
* ```
|
|
585
|
+
*/
|
|
586
|
+
export declare const Scheduler: React.ForwardRefExoticComponent<SchedulerProps & React.RefAttributes<SchedulerHandle | null>>;
|
|
587
|
+
export declare const schedulerDefaultProps: {
|
|
588
|
+
data: never[];
|
|
589
|
+
height: number;
|
|
590
|
+
tabIndex: number;
|
|
591
|
+
editable: boolean;
|
|
592
|
+
defaultDate: Date;
|
|
593
|
+
header: React.ForwardRefExoticComponent<SchedulerHeaderProps & React.RefAttributes<import('./components/header/SchedulerHeader').SchedulerHeaderHandle>>;
|
|
594
|
+
footer: React.ForwardRefExoticComponent<SchedulerFooterProps & React.RefAttributes<import('./components/footer/SchedulerFooter').SchedulerFooterHandle>>;
|
|
595
|
+
navigation: React.ForwardRefExoticComponent<import('./components/header/navigation/SchedulerNavigation').SchedulerNavigationProps & React.RefAttributes<import('./components/header/navigation/SchedulerNavigation').SchedulerNavigationHandle>>;
|
|
596
|
+
viewSelector: React.ForwardRefExoticComponent<import('./components/header/view-selector/SchedulerViewSelector').SchedulerViewSelectorProps & React.RefAttributes<import('./components/header/view-selector/SchedulerViewSelector').SchedulerViewSelectorHandle>>;
|
|
597
|
+
};
|
package/Scheduler.js
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ae=require("react"),l=require("prop-types"),r=require("./utils/index.js"),g=require("@progress/kendo-react-common"),Me=require("./context/SchedulerContext.js"),_=require("./hooks/useControlledState.js"),ae=require("@progress/kendo-react-intl"),qe=require("./components/header/SchedulerHeader.js"),ie=require("./components/header/navigation/SchedulerNavigation.js"),Oe=require("./components/header/view-selector/SchedulerViewSelector.js"),R=require("@progress/kendo-date-math"),Le=require("./components/footer/SchedulerFooter.js"),v=require("@progress/kendo-react-buttons"),m=require("./messages/index.js"),Ne=require("./components/header/navigation/NavigationDatePicker.js"),Pe=require("./components/header/view-selector/ViewSelectorList.js"),We=require("./components/footer/bussiness-hours/BussinessHours.js"),M=require("./views/day/DayView.js"),re=require("./package-metadata.js"),T=require("@progress/kendo-svg-icons"),H=require("./constants/index.js"),ne=require("./views/agenda/AgendaView.js"),le=require("./views/month/MonthView.js"),oe=require("./views/week/WeekView.js"),se=require("./views/week/WorkWeekView.js"),ce=require("./views/time/TimelineView.js");function _e(t){const E=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const I in t)if(I!=="default"){const V=Object.getOwnPropertyDescriptor(t,I);Object.defineProperty(E,I,V.get?V:{enumerable:!0,get:()=>t[I]})}}return E.default=t,Object.freeze(E)}const n=_e(Ae),He="{0:D}",ze="{0:d}",Be="application",p=new Map;p.set(ne.AgendaView,ne.agendaViewDefaultProps);p.set(M.DayView,M.dayViewDefaultProps);p.set(le.MonthView,le.monthViewDefaultProps);p.set(oe.WeekView,oe.weekViewDefaultProps);p.set(se.WorkWeekView,se.workWeekDefaultProps);p.set(ce.TimelineView,ce.timeLineViewDefaultProps);const z=n.forwardRef((t,E)=>{var Y,ee,te;const I=!g.validatePackage(re.packageMetadata,{component:"Scheduler"}),V=g.getLicenseMessage(re.packageMetadata),{timezone:q,onDataChange:O}=t,f=n.useRef(null),b=n.useRef(null);n.useImperativeHandle(b,()=>({props:t,element:f.current})),n.useImperativeHandle(E,()=>b.current);const F=g.useRtl(f),L=ae.useInternationalization(),A=ae.useLocalization(),{fields:a}=n.useMemo(()=>r.getModelFields(t.modelFields),[t.modelFields]),[w,D]=_.useControlledState(t.defaultDate||h.defaultDate,t.date,t.onDateChange),C=n.Children.toArray(t.children||[]).map(e=>{var s;return n.isValidElement(e)?n.cloneElement(e,{...p.get(e.type),...(s=e.props)!=null?s:{}}):e}),de=n.cloneElement(n.createElement(M.DayView,null),p.get(M.DayView)),[B,j]=_.useControlledState(t.defaultView||C[0]&&C[0].props.name||"day",t.view,t.onViewChange),[x,U]=_.useControlledState(!0),i=C.find(e=>e.props.name===B)||C[0]||de,k=((Y=t.data)!=null?Y:h.data)||h.data,ue=r.toSchedulerGroups(t.group,t.resources),ge=t.group&&t.group.orientation?t.group.orientation:"horizontal",me=i.props.selectedDateFormat||He,he=i.props.selectedShortDateFormat||ze,G=i.props.slotDuration,fe=i.props.dateRange!==void 0?typeof i.props.dateRange=="function"?i.props.dateRange.call(void 0,{intl:L,date:w,timezone:q,numberOfDays:i.props.numberOfDays,workWeekStart:i.props.workWeekStart||L.firstDay(),workWeekEnd:i.props.workWeekEnd||(L.firstDay()+i.props.numberOfDays)%6}):i.props.dateRange:{start:h.defaultDate,end:h.defaultDate},y=n.useCallback(({created:e=[],updated:s=[],deleted:u=[]})=>{if(O){const o={created:e,updated:s,deleted:u};O.call(void 0,o)}},[O]),$=n.useCallback(e=>{const s=[e.dataItem];y({created:s})},[y]),K=n.useCallback(e=>{const s=[],u=[];if(e.series)if(Array.isArray(e.dataItem))e.dataItem.forEach(o=>{const c=g.clone(r.findMaster(e.dataItem,a,k)),d=g.clone(o);r.setField(d,a.originalStart,r.getField(c,a.originalStart)),r.setField(d,a.recurrenceId,r.getField(c,a.recurrenceId)),r.setField(d,a.recurrenceExceptions,r.getField(c,a.recurrenceExceptions)),u.push(d)});else{const o=g.clone(r.findMaster(e.dataItem,a,k)),c=g.clone(e.dataItem);r.setField(c,a.originalStart,r.getField(o,a.originalStart)),r.setField(c,a.recurrenceId,r.getField(o,a.recurrenceId)),r.setField(c,a.recurrenceExceptions,r.getField(o,a.recurrenceExceptions)),u.push(c)}else if(Array.isArray(e.dataItem))e.dataItem.forEach(o=>{const c=r.getField(o,a.recurrenceRule)!==null&&r.getField(o,a.recurrenceRule)!==void 0;if(r.getField(o,a.recurrenceId)!==null&&r.getField(o,a.recurrenceId)!==void 0&&c){const S=g.clone(r.findMaster(o,a,k)),W=r.getField(o,a.originalStart),Ve=r.getField(S,a.recurrenceExceptions)||[];r.setField(S,a.recurrenceExceptions,[...Ve,W]),r.setField(o,a.recurrenceRule,null),u.push(S),s.push(o)}else u.push(o)});else{const o=r.getField(e.dataItem,a.recurrenceRule)!==null&&r.getField(e.dataItem,a.recurrenceRule)!==void 0;if(r.getField(e.dataItem,a.recurrenceId)!==null&&r.getField(e.dataItem,a.recurrenceId)!==void 0&&o){const d=g.clone(r.findMaster(e.dataItem,a,k)),S=r.getField(e.dataItem,a.originalStart),W=r.getField(d,a.recurrenceExceptions)||[];r.setField(d,a.recurrenceExceptions,[...W,S]),r.setField(e.dataItem,a.recurrenceRule,null),u.push(d),s.push(e.dataItem)}else u.push(e.dataItem)}y({updated:u,created:s})},[y,a,k]),Z=n.useCallback(e=>{const s=[],u=[];if(e.series){const o=g.clone(r.findMaster(e.dataItem,a,k)),c=g.clone(e.dataItem);r.setField(c,a.originalStart,r.getField(o,a.originalStart)),r.setField(c,a.recurrenceId,r.getField(o,a.recurrenceId)),r.setField(c,a.recurrenceRule,r.getField(o,a.recurrenceRule)),r.setField(c,a.recurrenceExceptions,r.getField(o,a.recurrenceExceptions)),u.push(c)}else if(!(r.getField(e.dataItem,a.recurrenceRule)!==null&&r.getField(e.dataItem,a.recurrenceRule)!==void 0))u.push(e.dataItem);else{const c=g.clone(r.findMaster(e.dataItem,a,k)),d=r.getField(e.dataItem,a.originalStart),S=r.getField(c,a.recurrenceExceptions)||[];r.setField(c,a.recurrenceExceptions,[...S,d]),r.setField(e.dataItem,a.recurrenceRule,null),s.push(c)}y({updated:s,deleted:u})},[y,a,k]),J=n.useCallback(e=>{switch(e.type){case H.DATA_ACTION.create:$(e);break;case H.DATA_ACTION.update:K(e);break;case H.DATA_ACTION.remove:Z(e);break}},[$,Z,K]),De=n.useCallback((e,s)=>{j(e,{...s,target:b.current})},[j,b]),we=n.useCallback((e,s)=>{D(e,{...s,target:b.current})},[D,b]),ke=n.useCallback(e=>{e.value&&D(e.value,{...e,target:b.current,nativeEvent:e.nativeEvent})},[D,b]),be=n.useCallback(e=>{var c,d;e.preventDefault();const s=(d=(c=i.props.step)!=null?c:i.props.numberOfDays)!=null?d:1,o=s>27?R.addMonths(w,Math.round(s/27)):R.addDays(w,s);D(o,e)},[w,D,i.props.numberOfDays,i.props.step]),pe=n.useCallback(e=>{var c,d;e.preventDefault();const s=(d=(c=i.props.step)!=null?c:i.props.numberOfDays)!=null?d:1,o=s>27?R.addMonths(w,-Math.round(s/27)):R.addDays(w,-s);D(o,e)},[w,D,i.props.numberOfDays,i.props.step]),Fe=n.useCallback(e=>{e.preventDefault();const s=R.ZonedDate.fromLocalDate(new Date,q);D(new Date(s.getTime()),e)},[D,q]),Se=n.useCallback(()=>{U(!x)},[U,x]),Ie=n.useCallback(()=>{f.current&&(f.current.style.boxShadow="0 0.5px 0.5px 0.5px rgba(0, 0, 0, .12)")},[f]),ye=n.useCallback(()=>{f.current&&(f.current.style.boxShadow="")},[f]),ve=n.useMemo(()=>{var e;return{...t.style,height:(e=t.height)!=null?e:h.height}},[t.height,t.style]),Ee=n.useMemo(()=>g.classNames({"k-rtl":t.rtl!==void 0?t.rtl:F==="rtl"},"k-scheduler",t.className),[t.className,t.rtl,F]),N=A.toLanguageString(m.today,m.messages[m.today]),Q=A.toLanguageString(m.previousTitle,m.messages[m.previousTitle]),X=A.toLanguageString(m.nextTitle,m.messages[m.nextTitle]),Ce=i.props.header||t.header||h.header,xe=i.props.footer||t.footer||h.footer,Re=ie.SchedulerNavigation,[P,Te]=n.useState(null);return n.createElement(Me.SchedulerContext,{element:f,props:t,views:C,fields:a,groups:ue,dateRange:fe,orientation:ge,dateFormat:{dateFormat:me,shortDateFormat:he},date:[w,we],activeView:[B,De],selection:[P,Te],data:[k,J]},n.createElement("div",{ref:f,id:t.id,style:ve,className:Ee,tabIndex:(ee=t.tabIndex)!=null?ee:h.tabIndex,dir:F,role:t.role||Be,"aria-label":t.ariaLabel,"aria-labelledby":t.ariaLabelledby,"aria-activedescendant":P&&P.props.id||void 0,onFocus:Ie,onBlur:ye},n.createElement(Ce,null,n.createElement(Re,null,n.createElement(v.ButtonGroup,{className:"k-scheduler-navigation"},n.createElement(v.Button,{role:"button",tabIndex:-1,title:N,"aria-label":N,onClick:Fe},N),n.createElement(v.Button,{role:"button",tabIndex:-1,icon:F==="rtl"?"caret-alt-right":"caret-alt-left",svgIcon:F==="rtl"?T.caretAltRightIcon:T.caretAltLeftIcon,title:Q,"aria-label":Q,onClick:pe}),n.createElement(v.Button,{role:"button",tabIndex:-1,icon:F==="rtl"?"caret-alt-left":"caret-alt-right",svgIcon:F==="rtl"?T.caretAltLeftIcon:T.caretAltRightIcon,title:X,"aria-label":X,onClick:be}))),n.createElement(Ne.NavigationDatePicker,{value:w,onChange:ke}),n.createElement(v.ToolbarSpacer,null),n.createElement(Pe.ViewSelectorList,null)),i&&n.createElement(i.type,{editable:(te=t.editable)!=null?te:h.editable,key:i.props.name,item:t.item,viewItem:t.viewItem,editItem:t.editItem,task:t.task,viewTask:t.viewTask,editTask:t.viewTask,slot:t.slot,viewSlot:t.viewSlot,editSlot:t.editSlot,form:t.form,onDataAction:J,showWorkHours:x,...i.props}),n.createElement(xe,null,G&&G<24*60&&n.createElement(We.BusinessHours,null,n.createElement(v.Button,{tabIndex:-1,onClick:Se,icon:"clock",svgIcon:T.clockIcon},A.toLanguageString(x?m.showFullDay:m.showWorkDay,m.messages[x?m.showFullDay:m.showWorkDay])))),I&&n.createElement(g.WatermarkOverlay,{message:V})))}),h={data:[],height:600,tabIndex:-1,editable:!1,defaultDate:new Date,header:qe.SchedulerHeader,footer:Le.SchedulerFooter,navigation:ie.SchedulerNavigation,viewSelector:Oe.SchedulerViewSelector};z.propTypes={data:l.array,editable:l.oneOfType([l.bool,l.shape({add:l.bool,drag:l.bool,edit:l.bool,remove:l.bool,resize:l.bool})]),view:l.string,defaultView:l.string,date:l.any,defaultDate:l.any,rtl:l.bool,height:l.oneOfType([l.number,l.string]),children:l.any,timezone:l.string,group:l.any,resources:l.any,modelFields:l.shape({id:l.string,start:l.string,startTimezone:l.string,end:l.string,endTimezone:l.string,isAllDay:l.string,title:l.string,description:l.string,recurrenceRule:l.string,recurrenceId:l.string,recurrenceException:l.string})};z.displayName="KendoReactScheduler";exports.Scheduler=z;exports.schedulerDefaultProps=h;
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ae=require("react"),l=require("prop-types"),r=require("./utils/index.js"),g=require("@progress/kendo-react-common"),Me=require("./context/SchedulerContext.js"),_=require("./hooks/useControlledState.js"),ae=require("@progress/kendo-react-intl"),qe=require("./components/header/SchedulerHeader.js"),ie=require("./components/header/navigation/SchedulerNavigation.js"),Oe=require("./components/header/view-selector/SchedulerViewSelector.js"),R=require("@progress/kendo-date-math"),Le=require("./components/footer/SchedulerFooter.js"),v=require("@progress/kendo-react-buttons"),m=require("./messages/index.js"),Ne=require("./components/header/navigation/NavigationDatePicker.js"),Pe=require("./components/header/view-selector/ViewSelectorList.js"),We=require("./components/footer/bussiness-hours/BussinessHours.js"),M=require("./views/day/DayView.js"),re=require("./package-metadata.js"),T=require("@progress/kendo-svg-icons"),H=require("./constants/index.js"),ne=require("./views/agenda/AgendaView.js"),le=require("./views/month/MonthView.js"),oe=require("./views/week/WeekView.js"),se=require("./views/week/WorkWeekView.js"),ce=require("./views/time/TimelineView.js");function _e(t){const E=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const I in t)if(I!=="default"){const V=Object.getOwnPropertyDescriptor(t,I);Object.defineProperty(E,I,V.get?V:{enumerable:!0,get:()=>t[I]})}}return E.default=t,Object.freeze(E)}const n=_e(Ae),He="{0:D}",ze="{0:d}",Be="application",p=new Map;p.set(ne.AgendaView,ne.agendaViewDefaultProps);p.set(M.DayView,M.dayViewDefaultProps);p.set(le.MonthView,le.monthViewDefaultProps);p.set(oe.WeekView,oe.weekViewDefaultProps);p.set(se.WorkWeekView,se.workWeekDefaultProps);p.set(ce.TimelineView,ce.timeLineViewDefaultProps);const z=n.forwardRef((t,E)=>{var Y,ee,te;const I=!g.validatePackage(re.packageMetadata,{component:"Scheduler"}),V=g.getLicenseMessage(re.packageMetadata),{timezone:q,onDataChange:O}=t,f=n.useRef(null),b=n.useRef(null);n.useImperativeHandle(b,()=>({props:t,element:f.current})),n.useImperativeHandle(E,()=>b.current);const F=g.useRtl(f),L=ae.useInternationalization(),A=ae.useLocalization(),{fields:a}=n.useMemo(()=>r.getModelFields(t.modelFields),[t.modelFields]),[w,D]=_.useControlledState(t.defaultDate||h.defaultDate,t.date,t.onDateChange),C=n.Children.toArray(t.children||[]).map(e=>{var s;return n.isValidElement(e)?n.cloneElement(e,{...p.get(e.type),...(s=e.props)!=null?s:{}}):e}),de=n.cloneElement(n.createElement(M.DayView,null),p.get(M.DayView)),[B,j]=_.useControlledState(t.defaultView||C[0]&&C[0].props.name||"day",t.view,t.onViewChange),[x,U]=_.useControlledState(!0),i=C.find(e=>e.props.name===B)||C[0]||de,k=((Y=t.data)!=null?Y:h.data)||h.data,ue=r.toSchedulerGroups(t.group,t.resources),ge=t.group&&t.group.orientation?t.group.orientation:"horizontal",me=i.props.selectedDateFormat||He,he=i.props.selectedShortDateFormat||ze,G=i.props.slotDuration,fe=i.props.dateRange!==void 0?typeof i.props.dateRange=="function"?i.props.dateRange.call(void 0,{intl:L,date:w,timezone:q,numberOfDays:i.props.numberOfDays,workWeekStart:i.props.workWeekStart||L.firstDay(),workWeekEnd:i.props.workWeekEnd||(L.firstDay()+i.props.numberOfDays)%6}):i.props.dateRange:{start:h.defaultDate,end:h.defaultDate},y=n.useCallback(({created:e=[],updated:s=[],deleted:u=[]})=>{if(O){const o={created:e,updated:s,deleted:u};O.call(void 0,o)}},[O]),$=n.useCallback(e=>{const s=[e.dataItem];y({created:s})},[y]),K=n.useCallback(e=>{const s=[],u=[];if(e.series)if(Array.isArray(e.dataItem))e.dataItem.forEach(o=>{const c=g.clone(r.findMaster(e.dataItem,a,k)),d=g.clone(o);r.setField(d,a.originalStart,r.getField(c,a.originalStart)),r.setField(d,a.recurrenceId,r.getField(c,a.recurrenceId)),r.setField(d,a.recurrenceExceptions,r.getField(c,a.recurrenceExceptions)),u.push(d)});else{const o=g.clone(r.findMaster(e.dataItem,a,k)),c=g.clone(e.dataItem);r.setField(c,a.originalStart,r.getField(o,a.originalStart)),r.setField(c,a.recurrenceId,r.getField(o,a.recurrenceId)),r.setField(c,a.recurrenceExceptions,r.getField(o,a.recurrenceExceptions)),u.push(c)}else if(Array.isArray(e.dataItem))e.dataItem.forEach(o=>{const c=r.getField(o,a.recurrenceRule)!==null&&r.getField(o,a.recurrenceRule)!==void 0;if(r.getField(o,a.recurrenceId)!==null&&r.getField(o,a.recurrenceId)!==void 0&&c){const S=g.clone(r.findMaster(o,a,k)),W=r.getField(o,a.originalStart),Ve=r.getField(S,a.recurrenceExceptions)||[];r.setField(S,a.recurrenceExceptions,[...Ve,W]),r.setField(o,a.recurrenceRule,null),u.push(S),s.push(o)}else u.push(o)});else{const o=r.getField(e.dataItem,a.recurrenceRule)!==null&&r.getField(e.dataItem,a.recurrenceRule)!==void 0;if(r.getField(e.dataItem,a.recurrenceId)!==null&&r.getField(e.dataItem,a.recurrenceId)!==void 0&&o){const d=g.clone(r.findMaster(e.dataItem,a,k)),S=r.getField(e.dataItem,a.originalStart),W=r.getField(d,a.recurrenceExceptions)||[];r.setField(d,a.recurrenceExceptions,[...W,S]),r.setField(e.dataItem,a.recurrenceRule,null),u.push(d),s.push(e.dataItem)}else u.push(e.dataItem)}y({updated:u,created:s})},[y,a,k]),Z=n.useCallback(e=>{const s=[],u=[];if(e.series){const o=g.clone(r.findMaster(e.dataItem,a,k)),c=g.clone(e.dataItem);r.setField(c,a.originalStart,r.getField(o,a.originalStart)),r.setField(c,a.recurrenceId,r.getField(o,a.recurrenceId)),r.setField(c,a.recurrenceRule,r.getField(o,a.recurrenceRule)),r.setField(c,a.recurrenceExceptions,r.getField(o,a.recurrenceExceptions)),u.push(c)}else if(!(r.getField(e.dataItem,a.recurrenceRule)!==null&&r.getField(e.dataItem,a.recurrenceRule)!==void 0))u.push(e.dataItem);else{const c=g.clone(r.findMaster(e.dataItem,a,k)),d=r.getField(e.dataItem,a.originalStart),S=r.getField(c,a.recurrenceExceptions)||[];r.setField(c,a.recurrenceExceptions,[...S,d]),r.setField(e.dataItem,a.recurrenceRule,null),s.push(c)}y({updated:s,deleted:u})},[y,a,k]),J=n.useCallback(e=>{switch(e.type){case H.DATA_ACTION.create:$(e);break;case H.DATA_ACTION.update:K(e);break;case H.DATA_ACTION.remove:Z(e);break}},[$,Z,K]),De=n.useCallback((e,s)=>{j(e,{...s,target:b.current})},[j,b]),we=n.useCallback((e,s)=>{D(e,{...s,target:b.current})},[D,b]),ke=n.useCallback(e=>{e.value&&D(e.value,{...e,target:b.current,nativeEvent:e.nativeEvent})},[D,b]),be=n.useCallback(e=>{var c,d;e.preventDefault();const s=(d=(c=i.props.step)!=null?c:i.props.numberOfDays)!=null?d:1,o=s>27?R.addMonths(w,Math.round(s/27)):R.addDays(w,s);D(o,e)},[w,D,i.props.numberOfDays,i.props.step]),pe=n.useCallback(e=>{var c,d;e.preventDefault();const s=(d=(c=i.props.step)!=null?c:i.props.numberOfDays)!=null?d:1,o=s>27?R.addMonths(w,-Math.round(s/27)):R.addDays(w,-s);D(o,e)},[w,D,i.props.numberOfDays,i.props.step]),Fe=n.useCallback(e=>{e.preventDefault();const s=R.ZonedDate.fromLocalDate(new Date,q);D(new Date(s.getTime()),e)},[D,q]),Se=n.useCallback(()=>{U(!x)},[U,x]),Ie=n.useCallback(()=>{f.current&&(f.current.style.boxShadow="0 0.5px 0.5px 0.5px rgba(0, 0, 0, .12)")},[f]),ye=n.useCallback(()=>{f.current&&(f.current.style.boxShadow="")},[f]),ve=n.useMemo(()=>{var e;return{...t.style,height:(e=t.height)!=null?e:h.height}},[t.height,t.style]),Ee=n.useMemo(()=>g.classNames({"k-rtl":t.rtl!==void 0?t.rtl:F==="rtl"},"k-scheduler",t.className),[t.className,t.rtl,F]),N=A.toLanguageString(m.today,m.messages[m.today]),Q=A.toLanguageString(m.previousTitle,m.messages[m.previousTitle]),X=A.toLanguageString(m.nextTitle,m.messages[m.nextTitle]),Ce=i.props.header||t.header||h.header,xe=i.props.footer||t.footer||h.footer,Re=ie.SchedulerNavigation,[P,Te]=n.useState(null);return n.createElement(Me.SchedulerContext,{element:f,props:t,views:C,fields:a,groups:ue,dateRange:fe,orientation:ge,dateFormat:{dateFormat:me,shortDateFormat:he},date:[w,we],activeView:[B,De],selection:[P,Te],data:[k,J]},n.createElement("div",{ref:f,id:t.id,style:ve,className:Ee,tabIndex:(ee=t.tabIndex)!=null?ee:h.tabIndex,dir:F,role:t.role||Be,"aria-label":t.ariaLabel,"aria-labelledby":t.ariaLabelledby,"aria-activedescendant":P&&P.props.id||void 0,onFocus:Ie,onBlur:ye},n.createElement(Ce,null,n.createElement(Re,null,n.createElement(v.ButtonGroup,{className:"k-scheduler-navigation"},n.createElement(v.Button,{role:"button",tabIndex:-1,title:N,"aria-label":N,onClick:Fe},N),n.createElement(v.Button,{role:"button",tabIndex:-1,icon:F==="rtl"?"caret-alt-right":"caret-alt-left",svgIcon:F==="rtl"?T.caretAltRightIcon:T.caretAltLeftIcon,title:Q,"aria-label":Q,onClick:pe}),n.createElement(v.Button,{role:"button",tabIndex:-1,icon:F==="rtl"?"caret-alt-left":"caret-alt-right",svgIcon:F==="rtl"?T.caretAltLeftIcon:T.caretAltRightIcon,title:X,"aria-label":X,onClick:be}))),n.createElement(Ne.NavigationDatePicker,{value:w,onChange:ke}),n.createElement(v.ToolbarSpacer,null),n.createElement(Pe.ViewSelectorList,null)),i&&n.createElement(i.type,{editable:(te=t.editable)!=null?te:h.editable,key:i.props.name,item:t.item,viewItem:t.viewItem,editItem:t.editItem,task:t.task,viewTask:t.viewTask,editTask:t.viewTask,slot:t.slot,viewSlot:t.viewSlot,editSlot:t.editSlot,form:t.form,onDataAction:J,showWorkHours:x,...i.props}),n.createElement(xe,null,G&&G<1440&&n.createElement(We.BusinessHours,null,n.createElement(v.Button,{tabIndex:-1,onClick:Se,icon:"clock",svgIcon:T.clockIcon},A.toLanguageString(x?m.showFullDay:m.showWorkDay,m.messages[x?m.showFullDay:m.showWorkDay])))),I&&n.createElement(g.WatermarkOverlay,{message:V})))}),h={data:[],height:600,tabIndex:-1,editable:!1,defaultDate:new Date,header:qe.SchedulerHeader,footer:Le.SchedulerFooter,navigation:ie.SchedulerNavigation,viewSelector:Oe.SchedulerViewSelector};z.propTypes={data:l.array,editable:l.oneOfType([l.bool,l.shape({add:l.bool,drag:l.bool,edit:l.bool,remove:l.bool,resize:l.bool})]),view:l.string,defaultView:l.string,date:l.any,defaultDate:l.any,rtl:l.bool,height:l.oneOfType([l.number,l.string]),children:l.any,timezone:l.string,group:l.any,resources:l.any,modelFields:l.shape({id:l.string,start:l.string,startTimezone:l.string,end:l.string,endTimezone:l.string,isAllDay:l.string,title:l.string,description:l.string,recurrenceRule:l.string,recurrenceId:l.string,recurrenceException:l.string})};z.displayName="KendoReactScheduler";exports.Scheduler=z;exports.schedulerDefaultProps=h;
|
package/Scheduler.mjs
CHANGED
|
@@ -308,7 +308,7 @@ const ie = a.forwardRef((r, ue) => {
|
|
|
308
308
|
...i.props
|
|
309
309
|
}
|
|
310
310
|
),
|
|
311
|
-
/* @__PURE__ */ a.createElement(Ae, null, B && B <
|
|
311
|
+
/* @__PURE__ */ a.createElement(Ae, null, B && B < 1440 && /* @__PURE__ */ a.createElement($e, null, /* @__PURE__ */ a.createElement(R, { tabIndex: -1, onClick: xe, icon: "clock", svgIcon: tt }, C.toLanguageString(
|
|
312
312
|
S ? ae : ne,
|
|
313
313
|
T[S ? ae : ne]
|
|
314
314
|
)))),
|