@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.
Files changed (160) hide show
  1. package/Scheduler.d.ts +597 -0
  2. package/Scheduler.js +1 -1
  3. package/Scheduler.mjs +1 -1
  4. package/components/BaseView.d.ts +25 -0
  5. package/components/BaseView.js +1 -1
  6. package/components/BaseView.mjs +3 -3
  7. package/components/CurrentTimeMarket.d.ts +17 -0
  8. package/components/DateHeaderCell.d.ts +53 -0
  9. package/components/SchedulerForm.d.ts +87 -0
  10. package/components/SchedulerForm.mjs +3 -3
  11. package/components/SchedulerOccurrenceDialog.d.ts +58 -0
  12. package/components/SchedulerOccurrenceDialog.mjs +2 -2
  13. package/components/SchedulerRemoveDialog.d.ts +54 -0
  14. package/components/ShowMoreItemsButton.d.ts +33 -0
  15. package/components/TimeHeaderCell.d.ts +53 -0
  16. package/components/footer/SchedulerFooter.d.ts +37 -0
  17. package/components/footer/bussiness-hours/BussinessHours.d.ts +20 -0
  18. package/components/header/SchedulerHeader.d.ts +34 -0
  19. package/components/header/navigation/NavigationDatePicker.d.ts +12 -0
  20. package/components/header/navigation/SchedulerNavigation.d.ts +31 -0
  21. package/components/header/view-selector/SchedulerViewSelector.d.ts +31 -0
  22. package/components/header/view-selector/ViewSelectorItem.d.ts +16 -0
  23. package/components/header/view-selector/ViewSelectorList.d.ts +10 -0
  24. package/constants/index.d.ts +61 -0
  25. package/constants/index.js +1 -1
  26. package/constants/index.mjs +9 -9
  27. package/context/SchedulerContext.d.ts +234 -0
  28. package/context/SchedulerEditItemContext.d.ts +199 -0
  29. package/context/SchedulerEditSlotContext.d.ts +54 -0
  30. package/context/SchedulerEditTaskContext.d.ts +36 -0
  31. package/context/SchedulerResourceIteratorContext.d.ts +23 -0
  32. package/context/SchedulerViewContext.d.ts +97 -0
  33. package/context/index.d.ts +12 -0
  34. package/dist/cdn/js/kendo-react-scheduler.js +1 -1
  35. package/editors/FilterableComboBox.d.ts +12 -0
  36. package/editors/ResourceEditor.d.ts +22 -0
  37. package/editors/SchedulerFormEditor.d.ts +495 -0
  38. package/editors/SchedulerFormEditor.mjs +3 -3
  39. package/editors/ZonedDateTime.d.ts +25 -0
  40. package/editors/common.d.ts +19 -0
  41. package/hooks/index.d.ts +17 -0
  42. package/hooks/use-items-focus.d.ts +39 -0
  43. package/hooks/use-items-selection.d.ts +47 -0
  44. package/hooks/use-slots-focus.d.ts +47 -0
  45. package/hooks/use-slots-selection.d.ts +37 -0
  46. package/hooks/useAsyncMouseEnterLeave.d.ts +18 -0
  47. package/hooks/useCellSync.d.ts +17 -0
  48. package/hooks/useControlledState.d.ts +20 -0
  49. package/hooks/useEditable.d.ts +10 -0
  50. package/hooks/usePropOrState.d.ts +9 -0
  51. package/hooks/useRowSync.d.ts +18 -0
  52. package/hooks/useSchedulerItem.d.ts +14 -0
  53. package/hooks/useSchedulerSlot.d.ts +14 -0
  54. package/hooks/useSlotExpand.d.ts +12 -0
  55. package/hooks/useWorkHours.d.ts +9 -0
  56. package/index.d.mts +41 -4703
  57. package/index.d.ts +41 -4703
  58. package/items/SchedulerEditItem.d.ts +453 -0
  59. package/items/SchedulerEditItem.mjs +7 -7
  60. package/items/SchedulerItem.d.ts +222 -0
  61. package/items/SchedulerItemContent.d.ts +18 -0
  62. package/items/SchedulerProportionalViewItem.d.ts +19 -0
  63. package/items/SchedulerViewItem.d.ts +46 -0
  64. package/items/hooks/use-drag-item.d.ts +51 -0
  65. package/items/hooks/use-form-item.d.ts +25 -0
  66. package/items/hooks/use-remove-item.d.ts +33 -0
  67. package/items/hooks/use-resize-item.d.ts +57 -0
  68. package/items/hooks/use-series.d.ts +30 -0
  69. package/items/hooks/use-show-occurrence-dialog.d.ts +34 -0
  70. package/items/hooks/use-show-remove-item-dialog.d.ts +34 -0
  71. package/messages/index.d.ts +243 -0
  72. package/models/DataItem.d.ts +15 -0
  73. package/models/DateRange.d.ts +25 -0
  74. package/models/EditableProp.d.ts +36 -0
  75. package/models/Fields.d.ts +60 -0
  76. package/models/Group.d.ts +21 -0
  77. package/models/Item.d.ts +71 -0
  78. package/models/NavigationAction.d.ts +65 -0
  79. package/models/Occurrence.d.ts +59 -0
  80. package/models/Omit.d.ts +11 -0
  81. package/models/Orientation.d.ts +9 -0
  82. package/models/Range.d.ts +17 -0
  83. package/models/Rect.d.ts +22 -0
  84. package/models/Resource.d.ts +15 -0
  85. package/models/SchedulerGroup.d.ts +20 -0
  86. package/models/SchedulerHandle.d.ts +21 -0
  87. package/models/SchedulerModelFields.d.ts +69 -0
  88. package/models/SchedulerResource.d.ts +40 -0
  89. package/models/SchedulerView.d.ts +103 -0
  90. package/models/Slot.d.ts +57 -0
  91. package/models/events.d.ts +96 -0
  92. package/models/index.d.ts +26 -0
  93. package/package-metadata.d.ts +12 -0
  94. package/package-metadata.js +1 -1
  95. package/package-metadata.mjs +9 -16
  96. package/package.json +11 -11
  97. package/recurrence/RecurrenceEditor.d.ts +19 -0
  98. package/recurrence/RecurrenceEditor.mjs +3 -3
  99. package/recurrence/RecurrenceFrequencyEditor.d.ts +17 -0
  100. package/recurrence/RecurrenceRepeatOnWeekEditor.d.ts +20 -0
  101. package/recurrence/common.d.ts +64 -0
  102. package/recurrence/types/EndRule.d.ts +11 -0
  103. package/recurrence/types/Frequency.d.ts +11 -0
  104. package/recurrence/types/FrequencyEntity.d.ts +15 -0
  105. package/recurrence/types/MonthEntity.d.ts +14 -0
  106. package/recurrence/types/OffsetPosition.d.ts +11 -0
  107. package/recurrence/types/OffsetPositionEntity.d.ts +14 -0
  108. package/recurrence/types/RepeatOnRule.d.ts +11 -0
  109. package/recurrence/types/WeekDayEntity.d.ts +14 -0
  110. package/recurrence/types/WeekDayRule.d.ts +14 -0
  111. package/recurrence/utils/index.d.ts +7 -0
  112. package/reducers/editReducer.d.ts +40 -0
  113. package/reducers/index.d.ts +8 -0
  114. package/services/index.d.ts +11 -0
  115. package/services/itemsService.d.ts +19 -0
  116. package/services/occurrenceService.d.ts +10 -0
  117. package/services/occurrenceService.js +1 -1
  118. package/services/occurrenceService.mjs +12 -10
  119. package/services/rangeService.d.ts +10 -0
  120. package/services/slotsService.d.ts +13 -0
  121. package/slots/SchedulerEditSlot.d.ts +62 -0
  122. package/slots/SchedulerSlot.d.ts +140 -0
  123. package/slots/SchedulerViewSlot.d.ts +56 -0
  124. package/tasks/SchedulerEditTask.d.ts +93 -0
  125. package/tasks/SchedulerTask.d.ts +70 -0
  126. package/tasks/SchedulerViewTask.d.ts +44 -0
  127. package/utils/index.d.ts +177 -0
  128. package/views/agenda/AgendaView.d.ts +97 -0
  129. package/views/agenda/AgendaView.js +1 -1
  130. package/views/agenda/AgendaView.mjs +2 -2
  131. package/views/agenda/AgendaViewHeaderItem.d.ts +15 -0
  132. package/views/common/HorizontalResourceIterator.d.ts +33 -0
  133. package/views/common/HorizontalResourceIterator.js +1 -1
  134. package/views/common/HorizontalResourceIterator.mjs +33 -39
  135. package/views/common/SchedulerDrag.d.ts +46 -0
  136. package/views/common/SchedulerResize.d.ts +48 -0
  137. package/views/common/VerticalResourceIterator.d.ts +28 -0
  138. package/views/common/VerticalResourceIterator.js +1 -1
  139. package/views/common/VerticalResourceIterator.mjs +21 -21
  140. package/views/common/utils.d.ts +41 -0
  141. package/views/day/DayView.d.ts +38 -0
  142. package/views/day/DayView.mjs +3 -3
  143. package/views/day/DayViewAllDayRowContent.d.ts +15 -0
  144. package/views/day/DayViewGroupRowContent.d.ts +15 -0
  145. package/views/day/DayViewRowContent.d.ts +20 -0
  146. package/views/day/MultiDayView.d.ts +179 -0
  147. package/views/day/MultiDayView.mjs +8 -8
  148. package/views/month/MonthView.d.ts +104 -0
  149. package/views/month/MonthView.js +1 -1
  150. package/views/month/MonthView.mjs +5 -5
  151. package/views/time/MultiDayTimelineView.d.ts +183 -0
  152. package/views/time/MultiDayTimelineView.mjs +5 -5
  153. package/views/time/TimelineView.d.ts +38 -0
  154. package/views/time/TimelineView.mjs +3 -3
  155. package/views/time/TimelineViewAllEventsRowContent.d.ts +14 -0
  156. package/views/time/TimelineViewRowContent.d.ts +14 -0
  157. package/views/week/WeekView.d.ts +109 -0
  158. package/views/week/WeekView.mjs +1 -1
  159. package/views/week/WorkWeekView.d.ts +27 -0
  160. 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 < 24 * 60 && /* @__PURE__ */ a.createElement($e, null, /* @__PURE__ */ a.createElement(R, { tabIndex: -1, onClick: xe, icon: "clock", svgIcon: tt }, C.toLanguageString(
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
  )))),