@progress/kendo-vue-scheduler 9.3.0-develop.5 → 9.3.0-develop.7
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 +67 -4
- package/Scheduler.js +1 -1
- package/Scheduler.mjs +267 -115
- package/components/BaseView.js +1 -1
- package/components/BaseView.mjs +10 -4
- package/components/CurrentTimeMarker.js +1 -1
- package/components/CurrentTimeMarker.mjs +9 -9
- package/components/CurrentTimeMarkerArrow.js +1 -1
- package/components/CurrentTimeMarkerArrow.mjs +3 -3
- package/components/DateHeaderCell.js +1 -1
- package/components/DateHeaderCell.mjs +22 -13
- package/components/MoreEventsPopover.d.ts +77 -0
- package/components/MoreEventsPopover.js +8 -0
- package/components/MoreEventsPopover.mjs +125 -0
- package/components/SchedulerActionButtons.d.ts +6 -0
- package/components/SchedulerActionButtons.js +1 -1
- package/components/SchedulerActionButtons.mjs +25 -19
- package/components/SchedulerForm.d.ts +7 -0
- package/components/SchedulerForm.js +1 -1
- package/components/SchedulerForm.mjs +69 -61
- package/components/SchedulerOccurrenceDialog.d.ts +4 -4
- package/components/SchedulerOccurrenceDialog.js +1 -1
- package/components/SchedulerOccurrenceDialog.mjs +35 -26
- package/components/SchedulerRemoveDialog.d.ts +6 -0
- package/components/SchedulerRemoveDialog.js +1 -1
- package/components/SchedulerRemoveDialog.mjs +24 -23
- package/components/ShowMoreItemsButton.d.ts +10 -1
- package/components/ShowMoreItemsButton.js +1 -1
- package/components/ShowMoreItemsButton.mjs +40 -18
- package/components/footer/bussiness-hours/BusinessHours.js +1 -1
- package/components/footer/bussiness-hours/BusinessHours.mjs +16 -21
- package/components/header/SchedulerAdaptiveHeader.js +1 -1
- package/components/header/SchedulerAdaptiveHeader.mjs +28 -26
- package/components/header/SchedulerHeader.d.ts +5 -1
- package/components/header/SchedulerHeader.js +1 -1
- package/components/header/SchedulerHeader.mjs +11 -7
- package/components/header/navigation/NavigationDatePicker.d.ts +22 -3
- package/components/header/navigation/NavigationDatePicker.js +1 -1
- package/components/header/navigation/NavigationDatePicker.mjs +27 -30
- package/components/header/view-selector/ViewSelectorList.d.ts +26 -6
- package/components/header/view-selector/ViewSelectorList.js +1 -1
- package/components/header/view-selector/ViewSelectorList.mjs +55 -49
- package/dist/cdn/js/kendo-vue-scheduler.js +1 -1
- package/editors/RemoveRecurrenceConfirmDialog.d.ts +29 -0
- package/editors/RemoveRecurrenceConfirmDialog.js +8 -0
- package/editors/RemoveRecurrenceConfirmDialog.mjs +65 -0
- package/editors/ResourceEditor.d.ts +3 -0
- package/editors/ResourceEditor.js +1 -1
- package/editors/ResourceEditor.mjs +12 -10
- package/editors/SchedulerFormEditor.d.ts +1067 -2953
- package/editors/SchedulerFormEditor.js +1 -1
- package/editors/SchedulerFormEditor.mjs +297 -365
- package/editors/SchedulerRecurrenceDialog.d.ts +143 -0
- package/editors/SchedulerRecurrenceDialog.js +8 -0
- package/editors/SchedulerRecurrenceDialog.mjs +575 -0
- package/editors/TimezoneDropDownList.d.ts +46 -0
- package/editors/TimezoneDropDownList.js +8 -0
- package/editors/TimezoneDropDownList.mjs +63 -0
- package/editors/ZonedSplitDateTime.d.ts +65 -0
- package/editors/ZonedSplitDateTime.js +8 -0
- package/editors/ZonedSplitDateTime.mjs +100 -0
- package/hooks/main.d.ts +1 -0
- package/hooks/useGroupRowHeightSync.d.ts +10 -0
- package/hooks/useRecurrenceSummary.d.ts +10 -0
- package/hooks/useRecurrenceSummary.js +8 -0
- package/hooks/useRecurrenceSummary.mjs +74 -0
- package/hooks/useRowSync.js +1 -1
- package/hooks/useRowSync.mjs +23 -4
- package/hooks/useSlotExpand.js +1 -1
- package/hooks/useSlotExpand.mjs +36 -28
- package/index.d.mts +9 -3
- package/index.d.ts +9 -3
- package/index.js +1 -1
- package/index.mjs +83 -71
- package/items/SchedulerEditItem.d.ts +14 -3
- package/items/SchedulerEditItem.js +1 -1
- package/items/SchedulerEditItem.mjs +130 -72
- package/items/SchedulerItem.d.ts +10 -0
- package/items/SchedulerItem.js +1 -1
- package/items/SchedulerItem.mjs +153 -135
- package/items/SchedulerProportionalViewItem.d.ts +183 -0
- package/items/SchedulerProportionalViewItem.js +8 -0
- package/items/SchedulerProportionalViewItem.mjs +378 -0
- package/items/SchedulerViewItem.d.ts +3 -0
- package/items/SchedulerViewItem.js +1 -1
- package/items/SchedulerViewItem.mjs +107 -67
- package/messages/main.d.ts +186 -0
- package/messages/main.js +1 -1
- package/messages/main.mjs +226 -102
- package/models/Item.d.ts +2 -0
- package/models/Occurrence.d.ts +2 -0
- package/models/SchedulerModelFields.d.ts +5 -0
- package/models/SchedulerResource.d.ts +6 -0
- package/models/SchedulerView.d.ts +2 -0
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +12 -11
- package/recurrence/common.js +1 -1
- package/recurrence/common.mjs +36 -39
- package/services/itemsService.js +1 -1
- package/services/itemsService.mjs +31 -27
- package/services/occurrenceService.js +1 -1
- package/services/occurrenceService.mjs +41 -35
- package/slots/SchedulerEditSlot.d.ts +2 -0
- package/slots/SchedulerEditSlot.js +1 -1
- package/slots/SchedulerEditSlot.mjs +27 -28
- package/slots/SchedulerSlot.d.ts +4 -0
- package/slots/SchedulerSlot.js +1 -1
- package/slots/SchedulerSlot.mjs +10 -1
- package/slots/SchedulerViewSlot.d.ts +5 -0
- package/slots/SchedulerViewSlot.js +1 -1
- package/slots/SchedulerViewSlot.mjs +70 -50
- package/tasks/SchedulerEditTask.d.ts +6 -0
- package/tasks/SchedulerEditTask.js +1 -1
- package/tasks/SchedulerEditTask.mjs +64 -23
- package/tasks/SchedulerTask.d.ts +15 -0
- package/tasks/SchedulerTask.js +1 -1
- package/tasks/SchedulerTask.mjs +39 -28
- package/tasks/SchedulerViewTask.d.ts +9 -0
- package/tasks/SchedulerViewTask.js +1 -1
- package/tasks/SchedulerViewTask.mjs +10 -5
- package/utils/main.d.ts +4 -1
- package/utils/main.js +1 -1
- package/utils/main.mjs +133 -112
- package/views/agenda/AgendaView.js +1 -1
- package/views/agenda/AgendaView.mjs +28 -22
- package/views/agenda/AgendaViewBody.js +1 -1
- package/views/agenda/AgendaViewBody.mjs +44 -42
- package/views/agenda/AgendaViewHead.js +1 -1
- package/views/agenda/AgendaViewHead.mjs +14 -10
- package/views/common/SchedulerDrag.d.ts +12 -0
- package/views/common/SchedulerResize.d.ts +12 -0
- package/views/common/VerticalResourceIterator.d.ts +3 -0
- package/views/common/VerticalResourceIterator.js +1 -1
- package/views/common/VerticalResourceIterator.mjs +16 -9
- package/views/day/DayView.js +1 -1
- package/views/day/DayView.mjs +2 -2
- package/views/day/MultiDayView.js +1 -1
- package/views/day/MultiDayView.mjs +98 -127
- package/views/month/MonthView.d.ts +8 -2
- package/views/month/MonthView.js +1 -1
- package/views/month/MonthView.mjs +115 -109
- package/views/month/MonthViewBody.d.ts +7 -2
- package/views/month/MonthViewBody.js +1 -1
- package/views/month/MonthViewBody.mjs +15 -11
- package/views/time/MultiDayTimelineView.d.ts +5 -0
- package/views/time/MultiDayTimelineView.js +1 -1
- package/views/time/MultiDayTimelineView.mjs +125 -132
- package/views/time/TimelineView.js +1 -1
- package/views/time/TimelineView.mjs +2 -2
- package/views/week/WeekView.js +1 -1
- package/views/week/WeekView.mjs +2 -2
- package/views/week/WorkWeekView.js +1 -1
- package/views/week/WorkWeekView.mjs +9 -9
- package/components/header/navigation/DatePickerToggleButton.d.ts +0 -16
- package/editors/FilterableComboBox.d.ts +0 -38
- package/editors/FilterableComboBox.js +0 -8
- package/editors/FilterableComboBox.mjs +0 -61
- package/editors/ZonedDateTime.js +0 -8
- package/editors/ZonedDateTime.mjs +0 -57
|
@@ -0,0 +1,378 @@
|
|
|
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 { defineComponent as _, createVNode as i, Fragment as H, h as B } from "vue";
|
|
9
|
+
import { SchedulerItem as j } from "./SchedulerItem.mjs";
|
|
10
|
+
import { intersects as v, first as y, last as T, calculateProportionalOrder as C } from "../utils/main.mjs";
|
|
11
|
+
import { getRect as D, setRect as N } from "../views/common/utils.mjs";
|
|
12
|
+
import { BORDER_WIDTH as u } from "../constants/main.mjs";
|
|
13
|
+
import { provideIntlService as K } from "@progress/kendo-vue-intl";
|
|
14
|
+
import { SchedulerItemContent as k } from "./SchedulerItemContent.mjs";
|
|
15
|
+
import { getDefaultSlots as U, Icon as d, getTemplate as V, canUseDOM as x } from "@progress/kendo-vue-common";
|
|
16
|
+
import { chevronRightIcon as E, chevronLeftIcon as M, chevronUpIcon as G, arrowRotateCwIcon as O, arrowsNoRepeatIcon as F, chevronDownIcon as L } from "@progress/kendo-svg-icons";
|
|
17
|
+
const q = 1, A = 12, se = /* @__PURE__ */ _({
|
|
18
|
+
name: "KendoSchedulerProportionalViewItem",
|
|
19
|
+
inheritAttrs: !1,
|
|
20
|
+
props: {
|
|
21
|
+
ignoreIsAllDay: Boolean,
|
|
22
|
+
item: [String, Function, Object],
|
|
23
|
+
uid: [String, Number],
|
|
24
|
+
start: Date,
|
|
25
|
+
end: Date,
|
|
26
|
+
originalStart: Date,
|
|
27
|
+
startTimezone: String,
|
|
28
|
+
endTimezone: String,
|
|
29
|
+
isAllDay: Boolean,
|
|
30
|
+
title: String,
|
|
31
|
+
description: String,
|
|
32
|
+
occurrenceId: String,
|
|
33
|
+
recurrenceExceptions: Array,
|
|
34
|
+
recurrenceRule: String,
|
|
35
|
+
recurrenceId: [String, Number],
|
|
36
|
+
dataItem: Object,
|
|
37
|
+
head: Boolean,
|
|
38
|
+
tail: Boolean,
|
|
39
|
+
order: Number,
|
|
40
|
+
zonedStart: Object,
|
|
41
|
+
zonedEnd: Object,
|
|
42
|
+
slots: Array,
|
|
43
|
+
group: Object,
|
|
44
|
+
range: Object,
|
|
45
|
+
isException: Boolean,
|
|
46
|
+
isRecurring: Boolean,
|
|
47
|
+
id: String,
|
|
48
|
+
tabIndex: Number,
|
|
49
|
+
className: String,
|
|
50
|
+
itemStyle: Object,
|
|
51
|
+
editable: [Object, Boolean],
|
|
52
|
+
readonly: Boolean,
|
|
53
|
+
selected: Boolean,
|
|
54
|
+
vertical: Boolean,
|
|
55
|
+
dragHint: Boolean,
|
|
56
|
+
resizeHint: Boolean,
|
|
57
|
+
format: String,
|
|
58
|
+
showOccurrenceDialog: {
|
|
59
|
+
type: Boolean,
|
|
60
|
+
default: void 0
|
|
61
|
+
},
|
|
62
|
+
showRemoveDialog: {
|
|
63
|
+
type: Boolean,
|
|
64
|
+
default: void 0
|
|
65
|
+
},
|
|
66
|
+
formItem: Object,
|
|
67
|
+
dragItem: Object,
|
|
68
|
+
resizeItem: Object,
|
|
69
|
+
removeItem: Object,
|
|
70
|
+
itemRef: Object,
|
|
71
|
+
onKeydown: Function,
|
|
72
|
+
onKeyup: Function,
|
|
73
|
+
onFocus: Function,
|
|
74
|
+
onMouseup: Function,
|
|
75
|
+
onMousedown: Function,
|
|
76
|
+
onClick: Function,
|
|
77
|
+
onDoubleclick: Function,
|
|
78
|
+
onRemoveclick: Function,
|
|
79
|
+
onPress: Function,
|
|
80
|
+
onDrag: Function,
|
|
81
|
+
onRelease: Function,
|
|
82
|
+
onResizepress: Function,
|
|
83
|
+
onResizeenddrag: Function,
|
|
84
|
+
onResizestartdrag: Function,
|
|
85
|
+
onResizerelease: Function
|
|
86
|
+
},
|
|
87
|
+
inject: {
|
|
88
|
+
kendoIntlService: {
|
|
89
|
+
default: null
|
|
90
|
+
},
|
|
91
|
+
ks: {
|
|
92
|
+
default: null
|
|
93
|
+
},
|
|
94
|
+
bv: {
|
|
95
|
+
default: null
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
computed: {
|
|
99
|
+
itemTime() {
|
|
100
|
+
return this.$props.isAllDay ? this.intl.toString(this.$props.zonedStart, "t") : this.intl.format("{0:t} - {1:t}", this.$props.zonedStart, this.$props.zonedEnd);
|
|
101
|
+
},
|
|
102
|
+
itemTitle() {
|
|
103
|
+
return `(${this.itemTime}): ${this.$props.title}`;
|
|
104
|
+
},
|
|
105
|
+
formattedTime() {
|
|
106
|
+
return this.intl.format("{0:t} – {1:t}", this.$props.zonedStart, this.$props.zonedEnd);
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
data() {
|
|
110
|
+
return {
|
|
111
|
+
timeout: void 0,
|
|
112
|
+
display: !0,
|
|
113
|
+
visible: !1,
|
|
114
|
+
maxSiblingsPerSlot: 0
|
|
115
|
+
};
|
|
116
|
+
},
|
|
117
|
+
mounted() {
|
|
118
|
+
if (this.element = this.getElement(), !this.ks.scheduler || !this.ks.scheduler.$el)
|
|
119
|
+
return;
|
|
120
|
+
x && (this.observer = new window.ResizeObserver(this.handleResize), this.observer.observe(this.ks.scheduler.$el));
|
|
121
|
+
const e = this;
|
|
122
|
+
this.$nextTick(function() {
|
|
123
|
+
e.position();
|
|
124
|
+
});
|
|
125
|
+
},
|
|
126
|
+
updated() {
|
|
127
|
+
const e = this;
|
|
128
|
+
this.$nextTick(function() {
|
|
129
|
+
e.position();
|
|
130
|
+
}), !(!this.ks.scheduler || !this.ks.scheduler.$el || this.observer) && x && window.ResizeObserver && (this.observer = new window.ResizeObserver(this.handleResize), this.observer.observe(this.ks.scheduler.$el));
|
|
131
|
+
},
|
|
132
|
+
unmounted() {
|
|
133
|
+
this.observer && this.observer.disconnect();
|
|
134
|
+
},
|
|
135
|
+
render() {
|
|
136
|
+
const e = U(this);
|
|
137
|
+
this.intl = K(this);
|
|
138
|
+
let s;
|
|
139
|
+
const n = i(j, {
|
|
140
|
+
ignoreIsAllDay: this.ignoreIsAllDay,
|
|
141
|
+
item: this.item,
|
|
142
|
+
uid: this.uid,
|
|
143
|
+
start: this.start,
|
|
144
|
+
end: this.end,
|
|
145
|
+
originalStart: this.originalStart,
|
|
146
|
+
startTimezone: this.startTimezone,
|
|
147
|
+
endTimezone: this.endTimezone,
|
|
148
|
+
isAllDay: this.isAllDay,
|
|
149
|
+
title: this.title,
|
|
150
|
+
description: this.description,
|
|
151
|
+
occurrenceId: this.occurrenceId,
|
|
152
|
+
recurrenceExceptions: this.recurrenceExceptions,
|
|
153
|
+
recurrenceRule: this.recurrenceRule,
|
|
154
|
+
recurrenceId: this.recurrenceId,
|
|
155
|
+
dataItem: this.dataItem,
|
|
156
|
+
head: this.head,
|
|
157
|
+
tail: this.tail,
|
|
158
|
+
order: this.order,
|
|
159
|
+
zonedStart: this.zonedStart,
|
|
160
|
+
zonedEnd: this.zonedEnd,
|
|
161
|
+
slots: this.slots,
|
|
162
|
+
group: this.group,
|
|
163
|
+
range: this.range,
|
|
164
|
+
isException: this.isException,
|
|
165
|
+
isRecurring: this.isRecurring,
|
|
166
|
+
id: this.id,
|
|
167
|
+
tabIndex: this.tabIndex,
|
|
168
|
+
className: this.className,
|
|
169
|
+
itemStyle: {
|
|
170
|
+
visibility: this.visible ? void 0 : "hidden",
|
|
171
|
+
display: this.display ? void 0 : "none",
|
|
172
|
+
...this.$props.itemStyle
|
|
173
|
+
},
|
|
174
|
+
editable: this.editable,
|
|
175
|
+
readonly: this.readonly,
|
|
176
|
+
selected: this.selected,
|
|
177
|
+
vertical: this.vertical,
|
|
178
|
+
dragHint: this.dragHint,
|
|
179
|
+
resizeHint: this.resizeHint,
|
|
180
|
+
format: this.format,
|
|
181
|
+
itemTitle: this.itemTitle,
|
|
182
|
+
showOccurrenceDialog: this.showOccurrenceDialog,
|
|
183
|
+
showRemoveDialog: this.showRemoveDialog,
|
|
184
|
+
formItem: this.formItem,
|
|
185
|
+
dragItem: this.dragItem,
|
|
186
|
+
resizeItem: this.resizeItem,
|
|
187
|
+
removeItem: this.removeItem,
|
|
188
|
+
maxSiblingsPerSlot: this.maxSiblingsPerSlot,
|
|
189
|
+
onKeydown: this.handleKeyDown,
|
|
190
|
+
onKeyup: this.handleKeyUp,
|
|
191
|
+
onFocus: this.handleFocus,
|
|
192
|
+
onMouseup: this.handleMouseUp,
|
|
193
|
+
onMousedown: this.handleMouseDown,
|
|
194
|
+
onClick: this.handleClick,
|
|
195
|
+
onDoubleclick: this.handleDoubleClick,
|
|
196
|
+
onRemoveclick: this.handleRemoveClick,
|
|
197
|
+
onPress: this.handlePress,
|
|
198
|
+
onDrag: this.handleDrag,
|
|
199
|
+
onRelease: this.handleRelease,
|
|
200
|
+
onResizepress: this.handleResizePress,
|
|
201
|
+
onResizeenddrag: this.handleResizeEndDrag,
|
|
202
|
+
onResizestartdrag: this.handleResizeStartDrag,
|
|
203
|
+
onResizerelease: this.handleResizeRelease
|
|
204
|
+
}, {
|
|
205
|
+
default: () => [!this.$props.resizeHint && i(H, null, [this.$props.tail && !this.$props.vertical && i("span", {
|
|
206
|
+
class: "k-event-continuation"
|
|
207
|
+
}, [i(d, {
|
|
208
|
+
name: this.ks.isRtl ? "chevron-right" : "chevron-left",
|
|
209
|
+
icon: this.ks.isRtl ? E : M
|
|
210
|
+
}, null)]), i("div", {
|
|
211
|
+
title: this.itemTitle
|
|
212
|
+
}, [this.$props.tail && this.$props.vertical && i("span", {
|
|
213
|
+
class: "k-event-continuation"
|
|
214
|
+
}, [i(d, {
|
|
215
|
+
name: "chevron-up",
|
|
216
|
+
icon: G
|
|
217
|
+
}, null)]), i(k, {
|
|
218
|
+
class: "k-event-title"
|
|
219
|
+
}, {
|
|
220
|
+
default: () => [this.$props.title]
|
|
221
|
+
}), !this.$props.isAllDay && i(k, {
|
|
222
|
+
class: "k-event-time"
|
|
223
|
+
}, {
|
|
224
|
+
default: () => [this.$props.isRecurring && !this.$props.isException && i("span", {
|
|
225
|
+
class: "k-event-recurrence-icon"
|
|
226
|
+
}, [i(d, {
|
|
227
|
+
name: "arrow-rotate-cw",
|
|
228
|
+
icon: O
|
|
229
|
+
}, null)]), !this.$props.isRecurring && this.$props.isException && i("span", {
|
|
230
|
+
class: "k-event-recurrence-icon"
|
|
231
|
+
}, [i(d, {
|
|
232
|
+
name: "arrows-no-repeat",
|
|
233
|
+
icon: F
|
|
234
|
+
}, null)]), this.formattedTime]
|
|
235
|
+
}), this.$props.head && this.$props.vertical && i("span", {
|
|
236
|
+
class: "k-event-continuation"
|
|
237
|
+
}, [i(d, {
|
|
238
|
+
name: "chevron-down",
|
|
239
|
+
icon: L
|
|
240
|
+
}, null)])]), (this.$props.isRecurring && !this.$props.isException || !this.$props.isRecurring && this.$props.isException) && i("span", {
|
|
241
|
+
class: "k-event-recurrence-icon"
|
|
242
|
+
}, [i(d, {
|
|
243
|
+
name: this.$props.isRecurring ? "arrow-rotate-cw" : "arrows-no-repeat",
|
|
244
|
+
icon: this.$props.isRecurring ? O : F
|
|
245
|
+
}, null)]), this.$props.head && !this.$props.vertical && i("span", {
|
|
246
|
+
class: "k-event-continuation"
|
|
247
|
+
}, [i(d, {
|
|
248
|
+
name: this.ks.isRtl ? "chevron-left" : "chevron-right",
|
|
249
|
+
icon: this.ks.isRtl ? M : E
|
|
250
|
+
}, null)])])]
|
|
251
|
+
});
|
|
252
|
+
return s = V.call(this, {
|
|
253
|
+
h: B,
|
|
254
|
+
template: this.$props.item,
|
|
255
|
+
defaultRendering: n,
|
|
256
|
+
defaultSlots: e,
|
|
257
|
+
additionalListeners: {
|
|
258
|
+
doubleclick: this.handleDoubleClick,
|
|
259
|
+
removeclick: this.handleRemoveClick,
|
|
260
|
+
press: this.handlePress,
|
|
261
|
+
drag: this.handleDrag,
|
|
262
|
+
release: this.handleRelease,
|
|
263
|
+
resizepress: this.handleResizePress,
|
|
264
|
+
resizeenddrag: this.handleResizeEndDrag,
|
|
265
|
+
resizestartdrag: this.handleResizeStartDrag,
|
|
266
|
+
resizerelease: this.handleResizeRelease
|
|
267
|
+
}
|
|
268
|
+
}), s;
|
|
269
|
+
},
|
|
270
|
+
methods: {
|
|
271
|
+
getElement() {
|
|
272
|
+
return this.$el.nodeType === 8 ? this.$el.parentElement : this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;
|
|
273
|
+
},
|
|
274
|
+
handleFocus(e) {
|
|
275
|
+
this.$emit("focus", e);
|
|
276
|
+
},
|
|
277
|
+
handleMouseDown(e) {
|
|
278
|
+
this.$emit("mousedown", e);
|
|
279
|
+
},
|
|
280
|
+
handleClick(e) {
|
|
281
|
+
this.$emit("click", e);
|
|
282
|
+
},
|
|
283
|
+
handleMouseUp(e) {
|
|
284
|
+
this.$emit("mouseup", e);
|
|
285
|
+
},
|
|
286
|
+
handleDoubleClick(e) {
|
|
287
|
+
this.$emit("doubleclick", e);
|
|
288
|
+
},
|
|
289
|
+
handleRemoveClick(e) {
|
|
290
|
+
this.$emit("removeclick", e);
|
|
291
|
+
},
|
|
292
|
+
handleKeyDown(e) {
|
|
293
|
+
this.$emit("keydown", e);
|
|
294
|
+
},
|
|
295
|
+
handleKeyUp(e) {
|
|
296
|
+
this.$emit("keyup", e);
|
|
297
|
+
},
|
|
298
|
+
handlePress(e) {
|
|
299
|
+
this.$emit("press", e);
|
|
300
|
+
},
|
|
301
|
+
handleDrag(e) {
|
|
302
|
+
this.$emit("drag", e);
|
|
303
|
+
},
|
|
304
|
+
handleRelease(e) {
|
|
305
|
+
this.$emit("release", e);
|
|
306
|
+
},
|
|
307
|
+
handleResizePress(e) {
|
|
308
|
+
this.$emit("resizepress", e);
|
|
309
|
+
},
|
|
310
|
+
handleResizeStartDrag(e) {
|
|
311
|
+
this.$emit("resizestartdrag", e);
|
|
312
|
+
},
|
|
313
|
+
handleResizeEndDrag(e) {
|
|
314
|
+
this.$emit("resizeenddrag", e);
|
|
315
|
+
},
|
|
316
|
+
handleResizeRelease(e) {
|
|
317
|
+
this.$emit("resizerelease", e);
|
|
318
|
+
},
|
|
319
|
+
calculateMostSiblings(e, s) {
|
|
320
|
+
let n = 0;
|
|
321
|
+
return s.forEach((a) => {
|
|
322
|
+
a._order !== void 0 && a._order !== null && n < a._order && (n = a._order);
|
|
323
|
+
}), n + 1;
|
|
324
|
+
},
|
|
325
|
+
getSiblings(e, s, n) {
|
|
326
|
+
const [a, r] = s, c = new Date(Math.min(r.cSlot.end.getTime() - n, Math.max(this.$props.start.getTime(), a.cSlot.start.getTime()))), $ = new Date(Math.max(c.getTime() + n, Math.min(this.$props.end.getTime(), r.cSlot.end.getTime())));
|
|
327
|
+
return e.filter((l) => {
|
|
328
|
+
const p = Math.max(Math.min(r.cSlot.end.getTime() - n, l.$props.start.getTime()), a.cSlot.start.getTime()), f = Math.min(Math.max(p + n, l.$props.end.getTime()), r.cSlot.end.getTime());
|
|
329
|
+
return l.$props.id !== this.$props.id && l.$props.group.index === this.$props.group.index && l.$props.range.index === this.$props.range.index && (this.$props.ignoreIsAllDay || l.$props.isAllDay === this.$props.isAllDay) && v(new Date(p), new Date(f), c, $) && v(a.cSlot.start, r.cSlot.end, l.$props.start, l.$props.end);
|
|
330
|
+
});
|
|
331
|
+
},
|
|
332
|
+
inSlot(e, s) {
|
|
333
|
+
return e.group.index === s.group.index && e.range.index === s.range.index && (e.range.isAllDay === void 0 || s.range.isAllDay === void 0 || e.range.isAllDay === s.range.isAllDay) && (this.$props.ignoreIsAllDay || e.isAllDay === s.isAllDay);
|
|
334
|
+
},
|
|
335
|
+
position() {
|
|
336
|
+
var w, I;
|
|
337
|
+
if (!this.element)
|
|
338
|
+
return;
|
|
339
|
+
const e = (this.bv.slots || []).filter((t) => t && this.inSlot(t.cSlot, this.$props)).sort((t, S) => t.cSlot.start.getTime() - S.cSlot.start.getTime()), s = e.filter((t) => v(t.cSlot.start, t.cSlot.end, this.$props.start, this.$props.end));
|
|
340
|
+
if (!this.element || !s.length)
|
|
341
|
+
return;
|
|
342
|
+
const n = y(e), a = T(e), r = y(s), c = T(s);
|
|
343
|
+
if (!r || !c || !n || !a)
|
|
344
|
+
return;
|
|
345
|
+
if (!v(r.cSlot.start, c.cSlot.end, this.$props.start, this.$props.end)) {
|
|
346
|
+
this.display = !1;
|
|
347
|
+
return;
|
|
348
|
+
}
|
|
349
|
+
const $ = [], l = D(r.$el), p = (this.$props.vertical ? l.height : l.width) / (r.cSlot.end.getTime() - r.cSlot.start.getTime()), f = (this.$props.vertical ? A : 8) / p, R = (Math.min(this.$props.start.getTime(), c.cSlot.end.getTime() - f) - r.cSlot.start.getTime()) * p, b = Math.floor(Math.min(this.$props.end.getTime(), c.cSlot.end.getTime()) - Math.max(this.$props.start.getTime(), r.cSlot.start.getTime())) * p;
|
|
350
|
+
(this.bv.items || []).forEach((t) => {
|
|
351
|
+
t && (t.$props.dragHint || t.$props.resizeHint || $.push(t));
|
|
352
|
+
});
|
|
353
|
+
const g = this.getSiblings($, [n, a], f), m = this.$props.resizeHint || this.$props.dragHint ? 0 : C(this, g);
|
|
354
|
+
let h = 1;
|
|
355
|
+
this.$props.resizeHint || this.$props.dragHint || (h = this.calculateMostSiblings(this, g), g.forEach((t) => {
|
|
356
|
+
t._maxSiblingsPerSlot && h < t._maxSiblingsPerSlot && (h = t._maxSiblingsPerSlot);
|
|
357
|
+
}), g.forEach((t) => {
|
|
358
|
+
t._maxSiblingsPerSlot !== void 0 && t._maxSiblingsPerSlot !== null && t._maxSiblingsPerSlot < h && (t._maxSiblingsPerSlot = h);
|
|
359
|
+
}));
|
|
360
|
+
let z = 0;
|
|
361
|
+
const o = l;
|
|
362
|
+
g.forEach((t) => {
|
|
363
|
+
let S = 0;
|
|
364
|
+
t._order !== void 0 && t._order !== null && t._order < m && (S = D(t.getElement()).top + D(t.getElement()).height - o.top - u * m + q), S > z && (z = S);
|
|
365
|
+
});
|
|
366
|
+
const P = 20;
|
|
367
|
+
o.width = this.$props.vertical ? o.width / h - u - P / h : b - u, this.$props.vertical ? o.height = b - u : (this.$props.resizeHint || this.$props.dragHint) && h <= 1 || (o.height = (I = (w = this.$props.itemStyle) == null ? void 0 : w.height) != null ? I : A), o.left = this.$props.vertical ? o.left + m + u * m * o.width : o.left + (R < 0 ? 0 : R), o.top = this.$props.vertical ? o.top + (R < 0 ? 0 : R) : o.top + z + u * m, this.maxSiblingsPerSlot = h, this._order = m, N(this.element, o), this.visible = !0, this.display = !0;
|
|
368
|
+
},
|
|
369
|
+
handleResize() {
|
|
370
|
+
this.timeout !== void 0 && window.cancelAnimationFrame(this.timeout), this.timeout = window.requestAnimationFrame(() => {
|
|
371
|
+
this.position();
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
export {
|
|
377
|
+
se as SchedulerProportionalViewItem
|
|
378
|
+
};
|
|
@@ -91,6 +91,7 @@ declare const SchedulerViewItem: import('vue').DefineComponent<import('vue').Ext
|
|
|
91
91
|
className: PropType<string>;
|
|
92
92
|
itemStyle: PropType<any>;
|
|
93
93
|
editable: PropType<boolean | import('../models/EditableProp').EditableProp>;
|
|
94
|
+
readonly: PropType<boolean>;
|
|
94
95
|
selected: PropType<boolean>;
|
|
95
96
|
vertical: PropType<boolean>;
|
|
96
97
|
dragHint: PropType<boolean>;
|
|
@@ -134,6 +135,7 @@ declare const SchedulerViewItem: import('vue').DefineComponent<import('vue').Ext
|
|
|
134
135
|
}, {
|
|
135
136
|
itemTime(): any;
|
|
136
137
|
itemTitle(): string;
|
|
138
|
+
formattedTime(): any;
|
|
137
139
|
}, {
|
|
138
140
|
getElement(): any;
|
|
139
141
|
handleFocus(e: any): void;
|
|
@@ -195,6 +197,7 @@ declare const SchedulerViewItem: import('vue').DefineComponent<import('vue').Ext
|
|
|
195
197
|
className: PropType<string>;
|
|
196
198
|
itemStyle: PropType<any>;
|
|
197
199
|
editable: PropType<boolean | import('../models/EditableProp').EditableProp>;
|
|
200
|
+
readonly: PropType<boolean>;
|
|
198
201
|
selected: PropType<boolean>;
|
|
199
202
|
vertical: PropType<boolean>;
|
|
200
203
|
dragHint: PropType<boolean>;
|
|
@@ -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 h=require("vue"),z=require("./SchedulerItem.js"),m=require("../utils/main.js"),u=require("../views/common/utils.js"),c=require("../constants/main.js"),D=require("@progress/kendo-vue-intl"),b=require("./SchedulerItemContent.js"),g=require("@progress/kendo-vue-common");function R(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!h.isVNode(e)}const I=1,v=h.defineComponent({name:"KendoSchedulerViewItem",inheritAttrs:!1,props:{ignoreIsAllDay:Boolean,item:[String,Function,Object],uid:[String,Number],start:Date,end:Date,originalStart:Date,startTimezone:String,endTimezone:String,isAllDay:Boolean,title:String,description:String,occurrenceId:String,recurrenceExceptions:Array,recurrenceRule:String,recurrenceId:[String,Number],dataItem:Object,head:Boolean,tail:Boolean,order:Number,zonedStart:Object,zonedEnd:Object,slots:Array,group:Object,range:Object,isException:Boolean,isRecurring:Boolean,id:String,tabIndex:Number,className:String,itemStyle:Object,editable:[Object,Boolean],selected:Boolean,vertical:Boolean,dragHint:Boolean,resizeHint:Boolean,format:String,showOccurrenceDialog:{type:Boolean,default:void 0},showRemoveDialog:{type:Boolean,default:void 0},formItem:Object,dragItem:Object,resizeItem:Object,removeItem:Object,itemRef:Object,onKeydown:Function,onKeyup:Function,onFocus:Function,onMouseup:Function,onMousedown:Function,onClick:Function,onDoubleclick:Function,onRemoveclick:Function,onPress:Function,onDrag:Function,onRelease:Function,onResizepress:Function,onResizeenddrag:Function,onResizestartdrag:Function,onResizerelease:Function},inject:{kendoIntlService:{default:null},ks:{default:null},bv:{default:null}},computed:{itemTime(){return this.$props.isAllDay?this.intl.toString(this.$props.zonedStart,"t"):this.intl.format("{0:t} - {1:t}",this.$props.zonedStart,this.$props.zonedEnd)},itemTitle(){return`(${this.itemTime}): ${this.$props.title}`}},data(){return{timeout:void 0,currentItem:null,viewItem:null,display:!0,visible:!1,maxSiblingsPerSlot:0}},mounted(){if(this.element=this.getElement(),!this.ks.scheduler||!this.ks.scheduler.$el)return;g.canUseDOM&&(this.observer=new window.ResizeObserver(this.handleResize),this.observer.observe(this.ks.scheduler.$el));const e=this;this.$nextTick(function(){e.align(),e.position()})},updated(){const e=this;this.$nextTick(function(){e.align(),e.position()}),!(!this.ks.scheduler||!this.ks.scheduler.$el||this.observer)&&g.canUseDOM&&window.ResizeObserver&&(this.observer=new window.ResizeObserver(this.handleResize),this.observer.observe(this.ks.scheduler.$el))},unmounted(){this.observer&&this.observer.disconnect()},render(){const e=g.getDefaultSlots(this);this.intl=D.provideIntlService(this);let t;const n=h.createVNode(z.SchedulerItem,{ignoreIsAllDay:this.ignoreIsAllDay,item:this.item,uid:this.uid,start:this.start,end:this.end,originalStart:this.originalStart,startTimezone:this.startTimezone,endTimezone:this.endTimezone,isAllDay:this.isAllDay,title:this.title,description:this.description,occurrenceId:this.occurrenceId,recurrenceExceptions:this.recurrenceExceptions,recurrenceRule:this.recurrenceRule,recurrenceId:this.recurrenceId,dataItem:this.dataItem,head:this.head,tail:this.tail,order:this.order,zonedStart:this.zonedStart,zonedEnd:this.zonedEnd,slots:this.slots,group:this.group,range:this.range,isException:this.isException,isRecurring:this.isRecurring,id:this.id,tabIndex:this.tabIndex,className:this.className,itemStyle:{visibility:this.visible?void 0:"hidden",display:this.display?void 0:"none",...this.$props.itemStyle},editable:this.editable,selected:this.selected,vertical:this.vertical,dragHint:this.dragHint,resizeHint:this.resizeHint,format:this.format,itemTitle:this.itemTitle,showOccurrenceDialog:this.showOccurrenceDialog,showRemoveDialog:this.showRemoveDialog,formItem:this.formItem,dragItem:this.dragItem,resizeItem:this.resizeItem,removeItem:this.removeItem,maxSiblingsPerSlot:this.maxSiblingsPerSlot,onKeydown:this.handleKeyDown,onKeyup:this.handleKeyUp,onFocus:this.handleFocus,onMouseup:this.handleMouseUp,onMousedown:this.handleMouseDown,onClick:this.handleClick,onDoubleclick:this.handleDoubleClick,onRemoveclick:this.handleRemoveClick,onPress:this.handlePress,onDrag:this.handleDrag,onRelease:this.handleRelease,onResizepress:this.handleResizePress,onResizeenddrag:this.handleResizeEndDrag,onResizestartdrag:this.handleResizeStartDrag,onResizerelease:this.handleResizeRelease},{default:()=>[!this.$props.resizeHint&&h.createVNode("div",{title:this.itemTitle},[!this.$props.isAllDay&&h.createVNode(b.SchedulerItemContent,{title:this.itemTitle,class:"k-event-template k-event-time "},R(e)?e:{default:()=>[e]}),h.createVNode(b.SchedulerItemContent,{title:this.$props.title,class:"k-event-template"},R(e)?e:{default:()=>[e]})])]});return t=g.getTemplate.call(this,{h:h.h,template:this.$props.item,defaultRendering:n,defaultSlots:e,additionalListeners:{doubleclick:this.handleDoubleClick,removeclick:this.handleRemoveClick,press:this.handlePress,drag:this.handleDrag,release:this.handleRelease,resizepress:this.handleResizePress,resizeenddrag:this.handleResizeEndDrag,resizestartdrag:this.handleResizeStartDrag,resizerelease:this.handleResizeRelease}}),t},methods:{getElement(){return this.$el.nodeType===8?this.$el.parentElement:this.$el.nodeType===3?this.$el.nextElementSibling:this.$el},handleFocus(e){this.$emit("focus",e)},handleBlur(e){this.$emit("blur",e)},handleMouseDown(e){this.$emit("mousedown",e)},handleClick(e){this.$emit("click",e)},handleMouseUp(e){this.$emit("mouseup",e)},handleMouseOver(e){this.$emit("mouseover",e)},handleMouseOut(e){this.$emit("mouseout",e)},handleMouseEnter(e){this.$emit("mouseenter",e)},handleMouseLeave(e){this.$emit("mouseleave",e)},handleDoubleClick(e){this.$emit("doubleclick",e)},handleRemoveClick(e){this.$emit("removeclick",e)},handleKeyDown(e){this.$emit("keydown",e)},handleKeyPress(e){this.$emit("keypress",e)},handleKeyUp(e){this.$emit("keyup",e)},handlePress(e){this.$emit("press",e)},handleDrag(e){this.$emit("drag",e)},handleRelease(e){this.$emit("release",e)},handleResizePress(e){this.$emit("resizepress",e)},handleResizeStartDrag(e){this.$emit("resizestartdrag",e)},handleResizeEndDrag(e){this.$emit("resizeenddrag",e)},handleResizeRelease(e){this.$emit("resizerelease",e)},calculateMostSiblings(e,t){let n=1;return e.forEach(o=>{const i=t.filter(r=>this.inSlot(o.cSlot,r.$props));i.length>n&&(n=i.length)}),n},getSiblingsInAllSlots(e,t){return e.map(o=>t.filter(i=>this.inSlot(o.cSlot,i.$props)))},inSlot(e,t){return m.intersects(e.start,e.end,t.start,t.end)&&e.group.index===t.group.index&&e.range.index===t.range.index&&(this.$props.ignoreIsAllDay||e.isAllDay===t.isAllDay)},align(){if(!this.element)return;const e=(this.bv.slots||[]).filter(i=>i&&this.inSlot(i.cSlot,this.$props));if(e.length===0){this.display=!1;return}const t=m.first(e.sort(function(i,r){return i.cSlot.start&&r.cSlot.start?i.cSlot.start.getTime()-r.cSlot.start.getTime():!0}));if(!t)return;const n=u.getRect(t.$el),o=t.$el;if(o&&!this.$props.vertical){const i=o.querySelector(".k-nav-day");if(i)n.top+=i.offsetTop+parseFloat(window.getComputedStyle(i).lineHeight||"0");else if(o.firstElementChild){const r=window.getComputedStyle(o),S=parseFloat(r.paddingTop||"0"),d=parseFloat(r.lineHeight||"0");d>0&&(n.top+=S+d)}}u.setRect(this.element,n)},position(){if(!this.element)return;const e=(this.bv.slots||[]).filter(l=>l&&this.inSlot(l.cSlot,this.$props)),t=[],n=[],o=[];(this.bv.items||[]).forEach(l=>{l&&(l.$props.dragHint?n.push(l):l.$props.resizeHint?o.push(l):t.push(l))});const i=this.$props.dragHint||this.$props.resizeHint?m.calculateOrder(this,this.$props.dragHint?n:o,e,this.$props.ignoreIsAllDay):this.$props.order||0;let r=this.$props.dragHint||this.$props.resizeHint?this.calculateMostSiblings(e,this.$props.dragHint?n:o):this.calculateMostSiblings(e,t);const S=this.getSiblingsInAllSlots(e,t);let d=0;const s=u.getRect(this.element);if(S.forEach(l=>{let $=0;l.sort(function(a,p){return a.$props.order-p.$props.order}).forEach(a=>{m.intersects(a.$props.start,a.$props.end,this.$props.start,this.$props.end)&&!(this.$props.dragHint||this.$props.resizeHint)&&a.$props.maxSiblingsPerSlot&&a.$props.maxSiblingsPerSlot>r&&a.getElement()!==this.element&&(r=a.$props.maxSiblingsPerSlot);const p=u.getRect(a.getElement());a.$props.order!==null&&a.$props.order<i&&($=(p.top||s.top)+p.height-s.top-c.BORDER_WIDTH*i+I)}),$>d&&(d=$)}),e.length===0){this.display=!1;return}const f=20;s.width=this.$props.vertical?s.width/r-c.BORDER_WIDTH-f/r:s.width*e.length-c.BORDER_WIDTH-f,s.height=this.$props.vertical?s.height*e.length-c.BORDER_WIDTH:(this.$props.resizeHint||this.$props.dragHint)&&r<=1?s.height:this.$props.itemStyle&&this.$props.itemStyle.height?this.$props.itemStyle.height:25,s.left=this.$props.vertical?s.left+i*s.width+c.BORDER_WIDTH*i:s.left,s.top=this.$props.vertical?s.top:s.top+d+c.BORDER_WIDTH*i,this.maxSiblingsPerSlot=r,u.setRect(this.element,s),this.visible=!0,this.display=!0},handleResize(){this.timeout!==void 0&&window.cancelAnimationFrame(this.timeout),this.timeout=window.requestAnimationFrame(()=>{this.align(),this.position()})}}});exports.SchedulerViewItem=v;
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("vue"),H=require("./SchedulerItem.js"),S=require("../utils/main.js"),g=require("../views/common/utils.js"),u=require("../constants/main.js"),O=require("@progress/kendo-vue-intl"),y=require("./SchedulerItemContent.js"),c=require("@progress/kendo-vue-common"),d=require("@progress/kendo-svg-icons"),w=1,k=25,T=s.defineComponent({name:"KendoSchedulerViewItem",inheritAttrs:!1,props:{ignoreIsAllDay:Boolean,item:[String,Function,Object],uid:[String,Number],start:Date,end:Date,originalStart:Date,startTimezone:String,endTimezone:String,isAllDay:Boolean,title:String,description:String,occurrenceId:String,recurrenceExceptions:Array,recurrenceRule:String,recurrenceId:[String,Number],dataItem:Object,head:Boolean,tail:Boolean,order:Number,zonedStart:Object,zonedEnd:Object,slots:Array,group:Object,range:Object,isException:Boolean,isRecurring:Boolean,id:String,tabIndex:Number,className:String,itemStyle:Object,editable:[Object,Boolean],readonly:Boolean,selected:Boolean,vertical:Boolean,dragHint:Boolean,resizeHint:Boolean,format:String,showOccurrenceDialog:{type:Boolean,default:void 0},showRemoveDialog:{type:Boolean,default:void 0},formItem:Object,dragItem:Object,resizeItem:Object,removeItem:Object,itemRef:Object,onKeydown:Function,onKeyup:Function,onFocus:Function,onMouseup:Function,onMousedown:Function,onClick:Function,onDoubleclick:Function,onRemoveclick:Function,onPress:Function,onDrag:Function,onRelease:Function,onResizepress:Function,onResizeenddrag:Function,onResizestartdrag:Function,onResizerelease:Function},inject:{kendoIntlService:{default:null},ks:{default:null},bv:{default:null}},computed:{itemTime(){return this.$props.isAllDay?this.intl.toString(this.$props.zonedStart,"t"):this.intl.format("{0:t} - {1:t}",this.$props.zonedStart,this.$props.zonedEnd)},itemTitle(){return`(${this.itemTime}): ${this.$props.title}`},formattedTime(){return this.intl.format("{0:t} – {1:t}",this.$props.zonedStart,this.$props.zonedEnd)}},data(){return{timeout:void 0,currentItem:null,viewItem:null,display:!0,visible:!1,maxSiblingsPerSlot:0}},mounted(){if(this.element=this.getElement(),!this.ks.scheduler||!this.ks.scheduler.$el)return;c.canUseDOM&&(this.observer=new window.ResizeObserver(this.handleResize),this.observer.observe(this.ks.scheduler.$el));const e=this;this.$nextTick(function(){e.align(),e.position()})},updated(){const e=this;this.$nextTick(function(){e.align(),e.position()}),!(!this.ks.scheduler||!this.ks.scheduler.$el||this.observer)&&c.canUseDOM&&window.ResizeObserver&&(this.observer=new window.ResizeObserver(this.handleResize),this.observer.observe(this.ks.scheduler.$el))},unmounted(){this.observer&&this.observer.disconnect()},render(){const e=c.getDefaultSlots(this);this.intl=O.provideIntlService(this);let t;const o=s.createVNode(H.SchedulerItem,{ignoreIsAllDay:this.ignoreIsAllDay,item:this.item,uid:this.uid,start:this.start,end:this.end,originalStart:this.originalStart,startTimezone:this.startTimezone,endTimezone:this.endTimezone,isAllDay:this.isAllDay,title:this.title,description:this.description,occurrenceId:this.occurrenceId,recurrenceExceptions:this.recurrenceExceptions,recurrenceRule:this.recurrenceRule,recurrenceId:this.recurrenceId,dataItem:this.dataItem,head:this.head,tail:this.tail,order:this.order,zonedStart:this.zonedStart,zonedEnd:this.zonedEnd,slots:this.slots,group:this.group,range:this.range,isException:this.isException,isRecurring:this.isRecurring,id:this.id,tabIndex:this.tabIndex,className:this.className,itemStyle:{visibility:this.visible?void 0:"hidden",display:this.display?void 0:"none",...this.$props.itemStyle},editable:this.editable,readonly:this.readonly,selected:this.selected,vertical:this.vertical,dragHint:this.dragHint,resizeHint:this.resizeHint,format:this.format,itemTitle:this.itemTitle,showOccurrenceDialog:this.showOccurrenceDialog,showRemoveDialog:this.showRemoveDialog,formItem:this.formItem,dragItem:this.dragItem,resizeItem:this.resizeItem,removeItem:this.removeItem,maxSiblingsPerSlot:this.maxSiblingsPerSlot,onKeydown:this.handleKeyDown,onKeyup:this.handleKeyUp,onFocus:this.handleFocus,onMouseup:this.handleMouseUp,onMousedown:this.handleMouseDown,onClick:this.handleClick,onDoubleclick:this.handleDoubleClick,onRemoveclick:this.handleRemoveClick,onPress:this.handlePress,onDrag:this.handleDrag,onRelease:this.handleRelease,onResizepress:this.handleResizePress,onResizeenddrag:this.handleResizeEndDrag,onResizestartdrag:this.handleResizeStartDrag,onResizerelease:this.handleResizeRelease},{default:()=>[!this.$props.resizeHint&&s.createVNode(s.Fragment,null,[this.$props.tail&&!this.$props.vertical&&s.createVNode("span",{class:"k-event-continuation"},[s.createVNode(c.Icon,{name:this.ks.isRtl?"chevron-right":"chevron-left",icon:this.ks.isRtl?d.chevronRightIcon:d.chevronLeftIcon},null)]),s.createVNode("div",{title:this.itemTitle},[this.$props.tail&&this.$props.vertical&&s.createVNode("span",{class:"k-event-continuation"},[s.createVNode(c.Icon,{name:"chevron-up",icon:d.chevronUpIcon},null)]),s.createVNode(y.SchedulerItemContent,{class:"k-event-title"},{default:()=>[this.$props.title]}),!this.$props.isAllDay&&s.createVNode(y.SchedulerItemContent,{class:"k-event-time"},{default:()=>[this.$props.isRecurring&&!this.$props.isException&&s.createVNode("span",{class:"k-event-recurrence-icon"},[s.createVNode(c.Icon,{name:"arrow-rotate-cw",icon:d.arrowRotateCwIcon},null)]),!this.$props.isRecurring&&this.$props.isException&&s.createVNode("span",{class:"k-event-recurrence-icon"},[s.createVNode(c.Icon,{name:"arrows-no-repeat",icon:d.arrowsNoRepeatIcon},null)]),this.formattedTime]}),this.$props.head&&this.$props.vertical&&s.createVNode("span",{class:"k-event-continuation"},[s.createVNode(c.Icon,{name:"chevron-down",icon:d.chevronDownIcon},null)])]),(this.$props.isRecurring&&!this.$props.isException||!this.$props.isRecurring&&this.$props.isException)&&s.createVNode("span",{class:"k-event-recurrence-icon"},[s.createVNode(c.Icon,{name:this.$props.isRecurring?"arrow-rotate-cw":"arrows-no-repeat",icon:this.$props.isRecurring?d.arrowRotateCwIcon:d.arrowsNoRepeatIcon},null)]),this.$props.head&&!this.$props.vertical&&s.createVNode("span",{class:"k-event-continuation"},[s.createVNode(c.Icon,{name:this.ks.isRtl?"chevron-left":"chevron-right",icon:this.ks.isRtl?d.chevronLeftIcon:d.chevronRightIcon},null)])])]});return t=c.getTemplate.call(this,{h:s.h,template:this.$props.item,defaultRendering:o,defaultSlots:e,additionalListeners:{doubleclick:this.handleDoubleClick,removeclick:this.handleRemoveClick,press:this.handlePress,drag:this.handleDrag,release:this.handleRelease,resizepress:this.handleResizePress,resizeenddrag:this.handleResizeEndDrag,resizestartdrag:this.handleResizeStartDrag,resizerelease:this.handleResizeRelease}}),t},methods:{getElement(){return this.$el.nodeType===8?this.$el.parentElement:this.$el.nodeType===3?this.$el.nextElementSibling:this.$el},handleFocus(e){this.$emit("focus",e)},handleBlur(e){this.$emit("blur",e)},handleMouseDown(e){this.$emit("mousedown",e)},handleClick(e){this.$emit("click",e)},handleMouseUp(e){this.$emit("mouseup",e)},handleMouseOver(e){this.$emit("mouseover",e)},handleMouseOut(e){this.$emit("mouseout",e)},handleMouseEnter(e){this.$emit("mouseenter",e)},handleMouseLeave(e){this.$emit("mouseleave",e)},handleDoubleClick(e){this.$emit("doubleclick",e)},handleRemoveClick(e){this.$emit("removeclick",e)},handleKeyDown(e){this.$emit("keydown",e)},handleKeyPress(e){this.$emit("keypress",e)},handleKeyUp(e){this.$emit("keyup",e)},handlePress(e){this.$emit("press",e)},handleDrag(e){this.$emit("drag",e)},handleRelease(e){this.$emit("release",e)},handleResizePress(e){this.$emit("resizepress",e)},handleResizeStartDrag(e){this.$emit("resizestartdrag",e)},handleResizeEndDrag(e){this.$emit("resizeenddrag",e)},handleResizeRelease(e){this.$emit("resizerelease",e)},calculateMostSiblings(e,t){let o=1;return e.forEach(l=>{const i=t.filter(r=>this.inSlot(l.cSlot,r.$props));i.length>o&&(o=i.length)}),o},getSiblingsInAllSlots(e,t){return e.map(l=>t.filter(i=>this.inSlot(l.cSlot,i.$props)))},inSlot(e,t){return S.intersects(e.start,e.end,t.start,t.end)&&e.group.index===t.group.index&&e.range.index===t.range.index&&(e.range.isAllDay===void 0||t.range.isAllDay===void 0||e.range.isAllDay===t.range.isAllDay)&&(this.$props.ignoreIsAllDay||e.isAllDay===t.isAllDay)},align(){if(!this.element)return;const e=(this.bv.slots||[]).filter(i=>i&&this.inSlot(i.cSlot,this.$props));if(e.length===0){this.display=!1;return}const t=S.first(e.sort(function(i,r){return i.cSlot.start&&r.cSlot.start?i.cSlot.start.getTime()-r.cSlot.start.getTime():!0}));if(!t)return;const o=g.getRect(t.$el),l=t.$el;if(l&&!this.$props.vertical){const i=l.querySelector(".k-nav-day");let r=0;if(i)r=i.offsetTop+parseFloat(window.getComputedStyle(i).lineHeight||"0");else if(l.firstElementChild){const $=window.getComputedStyle(l),p=parseFloat($.paddingTop||"0"),n=parseFloat($.lineHeight||"0");n>0&&(r=p+n)}o.top+=r,(this.$props.dragHint||this.$props.resizeHint)&&(o.height-=r)}g.setRect(this.element,o)},position(){var z,D;if(!this.element)return;const e=(this.bv.slots||[]).filter(a=>a&&this.inSlot(a.cSlot,this.$props)),t=[],o=[],l=[];(this.bv.items||[]).forEach(a=>{a&&(a.$props.dragHint?o.push(a):a.$props.resizeHint?l.push(a):t.push(a))});const i=this.$props.dragHint||this.$props.resizeHint?S.calculateOrder(this,this.$props.dragHint?o:l,e,this.$props.ignoreIsAllDay):this.$props.order||0;let r=this.$props.dragHint||this.$props.resizeHint?this.calculateMostSiblings(e,this.$props.dragHint?o:l):this.calculateMostSiblings(e,t);const $=this.getSiblingsInAllSlots(e,t);let p=0;const n=g.getRect(this.element),m=(z=this.$props.itemStyle)==null?void 0:z.height,R=typeof m=="number"?m:parseFloat(m),I=!this.$props.vertical&&(m==null||!Number.isNaN(R));if($.forEach(a=>{let v=0;a.sort(function(h,f){return h.$props.order-f.$props.order}).forEach(h=>{if(S.intersects(h.$props.start,h.$props.end,this.$props.start,this.$props.end)&&!(this.$props.dragHint||this.$props.resizeHint)&&h.$props.maxSiblingsPerSlot&&h.$props.maxSiblingsPerSlot>r&&h.getElement()!==this.element&&(r=h.$props.maxSiblingsPerSlot),!I){const f=g.getRect(h.getElement());h.$props.order!==null&&h.$props.order<i&&(v=(f.top||n.top)+f.height-n.top-u.BORDER_WIDTH*i+w)}}),v>p&&(p=v)}),I&&(p=i*((Number.isNaN(R)?k:R)+w)),e.length===0){this.display=!1;return}const b=20,E=((D=this.$props.itemStyle)==null?void 0:D.height)||k;n.width=this.$props.vertical?n.width/r-u.BORDER_WIDTH-b/r:n.width*e.length-u.BORDER_WIDTH-b,this.$props.vertical?n.height=n.height*e.length-u.BORDER_WIDTH:(this.$props.resizeHint||this.$props.dragHint)&&r<=1||(n.height=E),n.left=this.$props.vertical?n.left+i*n.width+u.BORDER_WIDTH*i:n.left,n.top=this.$props.vertical?n.top:n.top+p+u.BORDER_WIDTH*i,this.maxSiblingsPerSlot=r,this._order=i,g.setRect(this.element,n),this.visible=!0,this.display=!0},handleResize(){this.timeout!==void 0&&window.cancelAnimationFrame(this.timeout),this.timeout=window.requestAnimationFrame(()=>{this.align(),this.position()})}}});exports.SchedulerViewItem=T;
|