@progress/kendo-vue-scheduler 3.2.6 → 3.2.7-dev.202205021145
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdn/js/kendo-vue-scheduler.js +2 -2
- package/dist/es/components/BaseView.js +14 -12
- package/dist/es/components/header/view-selector/ViewSelectorList.js +9 -7
- package/dist/es/hooks/use-items-focus.js +8 -8
- package/dist/es/hooks/use-items-selection.js +11 -11
- package/dist/es/hooks/use-slots-focus.js +20 -20
- package/dist/es/hooks/use-slots-selection.js +4 -4
- package/dist/es/hooks/useSlotExpand.js +1 -1
- package/dist/es/items/SchedulerEditItem.d.ts +1 -1
- package/dist/es/items/SchedulerEditItem.js +145 -119
- package/dist/es/items/SchedulerItem.d.ts +1 -0
- package/dist/es/items/SchedulerItem.js +408 -167
- package/dist/es/items/SchedulerViewItem.d.ts +1 -0
- package/dist/es/items/SchedulerViewItem.js +17 -17
- package/dist/es/items/hooks/use-drag-item.js +5 -3
- package/dist/es/items/hooks/use-resize-item.d.ts +2 -4
- package/dist/es/items/hooks/use-resize-item.js +278 -176
- package/dist/es/models/SchedulerView.d.ts +2 -0
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/slots/SchedulerEditSlot.js +21 -16
- package/dist/es/slots/SchedulerSlot.js +20 -1
- package/dist/es/slots/SchedulerViewSlot.js +30 -5
- package/dist/es/utils/index.d.ts +4 -0
- package/dist/es/utils/index.js +23 -14
- package/dist/es/views/common/SchedulerDrag.js +1 -0
- package/dist/es/views/common/SchedulerResize.js +69 -21
- package/dist/es/views/common/VerticalResourceIterator.js +2 -2
- package/dist/es/views/day/DayView.js +2 -1
- package/dist/es/views/day/MultiDayView.d.ts +4 -0
- package/dist/es/views/day/MultiDayView.js +86 -15
- package/dist/es/views/week/WeekView.js +2 -1
- package/dist/npm/components/BaseView.js +14 -12
- package/dist/npm/components/header/view-selector/ViewSelectorList.js +9 -7
- package/dist/npm/hooks/use-items-focus.js +8 -8
- package/dist/npm/hooks/use-items-selection.js +11 -11
- package/dist/npm/hooks/use-slots-focus.js +20 -20
- package/dist/npm/hooks/use-slots-selection.js +4 -4
- package/dist/npm/hooks/useSlotExpand.js +1 -1
- package/dist/npm/items/SchedulerEditItem.d.ts +1 -1
- package/dist/npm/items/SchedulerEditItem.js +144 -118
- package/dist/npm/items/SchedulerItem.d.ts +1 -0
- package/dist/npm/items/SchedulerItem.js +407 -166
- package/dist/npm/items/SchedulerViewItem.d.ts +1 -0
- package/dist/npm/items/SchedulerViewItem.js +17 -17
- package/dist/npm/items/hooks/use-drag-item.js +5 -3
- package/dist/npm/items/hooks/use-resize-item.d.ts +2 -4
- package/dist/npm/items/hooks/use-resize-item.js +281 -176
- package/dist/npm/models/SchedulerView.d.ts +2 -0
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/slots/SchedulerEditSlot.js +20 -15
- package/dist/npm/slots/SchedulerSlot.js +20 -1
- package/dist/npm/slots/SchedulerViewSlot.js +30 -5
- package/dist/npm/utils/index.d.ts +4 -0
- package/dist/npm/utils/index.js +24 -15
- package/dist/npm/views/common/SchedulerDrag.js +1 -0
- package/dist/npm/views/common/SchedulerResize.js +69 -21
- package/dist/npm/views/common/VerticalResourceIterator.js +2 -2
- package/dist/npm/views/day/DayView.js +2 -1
- package/dist/npm/views/day/MultiDayView.d.ts +4 -0
- package/dist/npm/views/day/MultiDayView.js +87 -15
- package/dist/npm/views/week/WeekView.js +2 -1
- package/package.json +12 -12
|
@@ -111,6 +111,7 @@ var SchedulerViewItemVue2 = {
|
|
|
111
111
|
},
|
|
112
112
|
mounted: function mounted() {
|
|
113
113
|
var that = this;
|
|
114
|
+
this.element = this.getElement();
|
|
114
115
|
this.$nextTick(function () {
|
|
115
116
|
that.align();
|
|
116
117
|
that.position();
|
|
@@ -256,7 +257,7 @@ var SchedulerViewItemVue2 = {
|
|
|
256
257
|
style: __assign({
|
|
257
258
|
visibility: this.visible ? undefined : 'hidden',
|
|
258
259
|
display: this.display ? undefined : 'none'
|
|
259
|
-
}, this.$props.
|
|
260
|
+
}, this.$props.itemStyle) // Keyboard
|
|
260
261
|
,
|
|
261
262
|
onKeydown: this.handleKeyDown,
|
|
262
263
|
on: this.v3 ? undefined : {
|
|
@@ -274,7 +275,7 @@ var SchedulerViewItemVue2 = {
|
|
|
274
275
|
"resizepress": this.handleResizePress,
|
|
275
276
|
"resizeenddrag": this.handleResizeEndDrag,
|
|
276
277
|
"resizestartdrag": this.handleResizeStartDrag,
|
|
277
|
-
"
|
|
278
|
+
"resizerelease": this.handleResizeRelease
|
|
278
279
|
},
|
|
279
280
|
onKeyup: this.handleKeyUp // Focus
|
|
280
281
|
,
|
|
@@ -293,7 +294,7 @@ var SchedulerViewItemVue2 = {
|
|
|
293
294
|
onResizepress: this.handleResizePress,
|
|
294
295
|
onResizeenddrag: this.handleResizeEndDrag,
|
|
295
296
|
onResizestartdrag: this.handleResizeStartDrag,
|
|
296
|
-
|
|
297
|
+
onResizerelease: this.handleResizeRelease
|
|
297
298
|
}, this.v3 ? function () {
|
|
298
299
|
return [!_this2.$props.resizeHint && h("div", {
|
|
299
300
|
title: _this2.itemTitle,
|
|
@@ -365,12 +366,15 @@ var SchedulerViewItemVue2 = {
|
|
|
365
366
|
resizepress: this.handleResizePress,
|
|
366
367
|
resizeenddrag: this.handleResizeEndDrag,
|
|
367
368
|
resizestartdrag: this.handleResizeStartDrag,
|
|
368
|
-
|
|
369
|
+
resizerelease: this.handleResizeRelease
|
|
369
370
|
}
|
|
370
371
|
});
|
|
371
372
|
return itemRender;
|
|
372
373
|
},
|
|
373
374
|
methods: {
|
|
375
|
+
getElement: function getElement() {
|
|
376
|
+
return this.$el.nodeType === 8 ? this.$el.parentElement : this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;
|
|
377
|
+
},
|
|
374
378
|
// Focus Handlers
|
|
375
379
|
handleFocus: function handleFocus(e) {
|
|
376
380
|
this.$emit('focus', e);
|
|
@@ -469,9 +473,7 @@ var SchedulerViewItemVue2 = {
|
|
|
469
473
|
align: function align() {
|
|
470
474
|
var _this = this;
|
|
471
475
|
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
if (!element) {
|
|
476
|
+
if (!this.element) {
|
|
475
477
|
return;
|
|
476
478
|
}
|
|
477
479
|
|
|
@@ -497,14 +499,12 @@ var SchedulerViewItemVue2 = {
|
|
|
497
499
|
}
|
|
498
500
|
|
|
499
501
|
var rect = getRect(firstSlot.$el);
|
|
500
|
-
setRect(element, rect);
|
|
502
|
+
setRect(this.element, rect);
|
|
501
503
|
},
|
|
502
504
|
position: function position() {
|
|
503
505
|
var _this = this;
|
|
504
506
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
if (!element) {
|
|
507
|
+
if (!this.element) {
|
|
508
508
|
return;
|
|
509
509
|
}
|
|
510
510
|
|
|
@@ -531,18 +531,18 @@ var SchedulerViewItemVue2 = {
|
|
|
531
531
|
var mostSiblingsInSlot = this.$props.dragHint || this.$props.resizeHint ? this.calculateMostSiblings(slots, this.$props.dragHint ? dragItems : resizeItems) : this.calculateMostSiblings(slots, items);
|
|
532
532
|
var siblingsPerSlot = this.getSiblingsInAllSlots(slots, items);
|
|
533
533
|
var topOffset = 0;
|
|
534
|
-
var rect = getRect(element);
|
|
534
|
+
var rect = getRect(this.element);
|
|
535
535
|
siblingsPerSlot.forEach(function (slot) {
|
|
536
536
|
var currentOffset = 0;
|
|
537
|
-
var
|
|
537
|
+
var currentItem = slot.sort(function (a, b) {
|
|
538
538
|
return a.$props.order - b.$props.order;
|
|
539
539
|
});
|
|
540
|
-
|
|
541
|
-
if (intersects(current.$props.start, current.$props.end, _this.$props.start, _this.$props.end) && !(_this.$props.dragHint || _this.$props.resizeHint) && current.$props.maxSiblingsPerSlot && current.$props.maxSiblingsPerSlot > mostSiblingsInSlot && current
|
|
540
|
+
currentItem.forEach(function (current) {
|
|
541
|
+
if (intersects(current.$props.start, current.$props.end, _this.$props.start, _this.$props.end) && !(_this.$props.dragHint || _this.$props.resizeHint) && current.$props.maxSiblingsPerSlot && current.$props.maxSiblingsPerSlot > mostSiblingsInSlot && current.getElement() !== _this.element) {
|
|
542
542
|
mostSiblingsInSlot = current.$props.maxSiblingsPerSlot;
|
|
543
543
|
}
|
|
544
544
|
|
|
545
|
-
var currentRect = getRect(current
|
|
545
|
+
var currentRect = getRect(current.getElement());
|
|
546
546
|
|
|
547
547
|
if (current.$props.order !== null && current.$props.order < order) {
|
|
548
548
|
currentOffset = (currentRect.top || rect.top) + currentRect.height - rect.top - BORDER_WIDTH * order + ITEMS_SPACING;
|
|
@@ -565,7 +565,7 @@ var SchedulerViewItemVue2 = {
|
|
|
565
565
|
rect.left = this.$props.vertical ? rect.left + order * rect.width + BORDER_WIDTH * order : rect.left;
|
|
566
566
|
rect.top = this.$props.vertical ? rect.top : rect.top + topOffset + BORDER_WIDTH * order;
|
|
567
567
|
this.maxSiblingsPerSlot = mostSiblingsInSlot;
|
|
568
|
-
setRect(element, rect);
|
|
568
|
+
setRect(this.element, rect);
|
|
569
569
|
this.visible = true;
|
|
570
570
|
this.display = true;
|
|
571
571
|
},
|
|
@@ -188,13 +188,14 @@ export var useDragItem = function useDragItem(action) {
|
|
|
188
188
|
|
|
189
189
|
case DRAG_ITEM_ACTION.complete:
|
|
190
190
|
{
|
|
191
|
+
var currentDataItem = this.compDragItem;
|
|
191
192
|
this.currentDragItem = null;
|
|
192
193
|
|
|
193
|
-
if (
|
|
194
|
+
if (currentDataItem) {
|
|
194
195
|
this.$emit('dataaction', {
|
|
195
196
|
type: DATA_ACTION.update,
|
|
196
197
|
series: false,
|
|
197
|
-
dataItem:
|
|
198
|
+
dataItem: currentDataItem
|
|
198
199
|
});
|
|
199
200
|
}
|
|
200
201
|
|
|
@@ -204,9 +205,10 @@ export var useDragItem = function useDragItem(action) {
|
|
|
204
205
|
case DRAG_ITEM_ACTION.completeOccurrence:
|
|
205
206
|
{
|
|
206
207
|
var newDataItem = Array.isArray(this.compDragItem) ? this.compDragItem.slice() : clone(this.compDragItem);
|
|
208
|
+
var currentDataItem = this.compDragItem;
|
|
207
209
|
this.currentDragItem = null;
|
|
208
210
|
|
|
209
|
-
if (
|
|
211
|
+
if (currentDataItem) {
|
|
210
212
|
this.$emit('dataaction', {
|
|
211
213
|
type: DATA_ACTION.update,
|
|
212
214
|
series: false,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DataItem } from '../../models';
|
|
2
|
+
import { SchedulerEditItemAll } from '../SchedulerEditItem';
|
|
2
3
|
/**
|
|
3
4
|
* Represents the available `action` types for the `SchedulerItemResizeItemAction` objects.
|
|
4
5
|
*
|
|
@@ -35,7 +36,4 @@ export interface SchedulerItemResizeItemAction {
|
|
|
35
36
|
event?: any;
|
|
36
37
|
}
|
|
37
38
|
/** @hidden */
|
|
38
|
-
export declare const useResizeItem: (
|
|
39
|
-
dataItem: DataItem;
|
|
40
|
-
onDataaction: any;
|
|
41
|
-
}, _state: [DataItem, DataItem, any]) => any[];
|
|
39
|
+
export declare const useResizeItem: (this: SchedulerEditItemAll, action: SchedulerItemResizeItemAction, event: any) => void;
|
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
var __spreadArrays = this && this.__spreadArrays || function () {
|
|
2
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) {
|
|
3
|
+
s += arguments[i].length;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++) {
|
|
7
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {
|
|
8
|
+
r[k] = a[j];
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
return r;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
import { clone } from '@progress/kendo-vue-common';
|
|
16
|
+
import { DATA_ACTION } from '../../Scheduler';
|
|
17
|
+
import { getField, setField, slotDive } from '../../utils';
|
|
1
18
|
/**
|
|
2
19
|
* Represents the available `action` types for the `SchedulerItemResizeItemAction` objects.
|
|
3
20
|
*
|
|
@@ -13,6 +30,7 @@
|
|
|
13
30
|
* - `RESIZE_ITEM_COMPLETE_SERIES`
|
|
14
31
|
* - `RESIZE_ITEM_RESET`
|
|
15
32
|
*/
|
|
33
|
+
|
|
16
34
|
export var RESIZE_ITEM_ACTION;
|
|
17
35
|
|
|
18
36
|
(function (RESIZE_ITEM_ACTION) {
|
|
@@ -27,183 +45,267 @@ export var RESIZE_ITEM_ACTION;
|
|
|
27
45
|
RESIZE_ITEM_ACTION["completeSeries"] = "RESIZE_ITEM_COMPLETE_SERIES";
|
|
28
46
|
RESIZE_ITEM_ACTION["reset"] = "RESIZE_ITEM_RESET";
|
|
29
47
|
})(RESIZE_ITEM_ACTION || (RESIZE_ITEM_ACTION = {}));
|
|
48
|
+
|
|
49
|
+
var oldSlot = null;
|
|
30
50
|
/** @hidden */
|
|
31
51
|
|
|
52
|
+
export var useResizeItem = function useResizeItem(action, event) {
|
|
53
|
+
var _this = this;
|
|
54
|
+
|
|
55
|
+
var newResizeItem = this.compResizeItem;
|
|
56
|
+
|
|
57
|
+
switch (action.type) {
|
|
58
|
+
case RESIZE_ITEM_ACTION.set:
|
|
59
|
+
newResizeItem = action.payload;
|
|
60
|
+
break;
|
|
61
|
+
|
|
62
|
+
case RESIZE_ITEM_ACTION.reset:
|
|
63
|
+
newResizeItem = null;
|
|
64
|
+
break;
|
|
65
|
+
|
|
66
|
+
case RESIZE_ITEM_ACTION.start:
|
|
67
|
+
{
|
|
68
|
+
event.stopPropagation();
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
var clientX = action.payload.x;
|
|
71
|
+
var clientY = action.payload.y;
|
|
72
|
+
var slot = slotDive(clientX, clientY, 7);
|
|
73
|
+
|
|
74
|
+
if (!slot) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
if (slot === oldSlot) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
var slotStart = slot.getAttribute('data-slot-start');
|
|
83
|
+
var newStart = new Date(Number(slotStart));
|
|
84
|
+
var dataItem = clone(this.dataItem);
|
|
85
|
+
|
|
86
|
+
if (newStart >= getField(dataItem, this.ks.fields.end)) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
setField(dataItem, this.ks.fields.start, newStart);
|
|
91
|
+
oldSlot = slot;
|
|
92
|
+
newResizeItem = dataItem;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
case RESIZE_ITEM_ACTION.startDragSelected:
|
|
97
|
+
{
|
|
98
|
+
event.stopPropagation();
|
|
99
|
+
event.preventDefault();
|
|
100
|
+
var clientX = action.payload.x;
|
|
101
|
+
var clientY = action.payload.y;
|
|
102
|
+
var dataItem = clone(this.dataItem);
|
|
103
|
+
var slot = slotDive(clientX, clientY, 7);
|
|
104
|
+
|
|
105
|
+
if (!slot) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (slot === oldSlot) {
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
var slotStart = slot.getAttribute('data-slot-start');
|
|
114
|
+
var itemStart = new Date(getField(dataItem, this.ks.fields.start));
|
|
115
|
+
var newStart = new Date(Number(slotStart));
|
|
116
|
+
var distance_1 = newStart.getTime() - itemStart.getTime();
|
|
117
|
+
var unreachable_1 = false;
|
|
118
|
+
var newResizeItems = this.bv.selectedItems.map(function (si) {
|
|
119
|
+
if (!si) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
var selectedDataItem = clone(si.props.dataItem);
|
|
124
|
+
var selectedStart = new Date(si.props.start.getTime() + distance_1);
|
|
125
|
+
|
|
126
|
+
if (selectedStart >= getField(selectedDataItem, _this.ks.fields.end)) {
|
|
127
|
+
unreachable_1 = true;
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
setField(selectedDataItem, _this.ks.fields.start, selectedStart);
|
|
132
|
+
return selectedDataItem;
|
|
133
|
+
}).filter(Boolean);
|
|
134
|
+
|
|
135
|
+
if (!unreachable_1) {
|
|
136
|
+
newResizeItem = __spreadArrays(newResizeItems);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
case RESIZE_ITEM_ACTION.startDrag:
|
|
143
|
+
{
|
|
144
|
+
var clientX = action.payload.x;
|
|
145
|
+
var clientY = action.payload.y;
|
|
146
|
+
var slot = slotDive(clientX, clientY, 7);
|
|
147
|
+
|
|
148
|
+
if (!slot) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (slot === oldSlot) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
var slotStart = slot.getAttribute('data-slot-start');
|
|
157
|
+
var newStart = new Date(Number(slotStart));
|
|
158
|
+
var dataItem = clone(this.dataItem);
|
|
159
|
+
|
|
160
|
+
if (newStart >= dataItem.end) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
setField(dataItem, this.ks.fields.start, newStart);
|
|
165
|
+
oldSlot = slot;
|
|
166
|
+
newResizeItem = dataItem;
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
case RESIZE_ITEM_ACTION.endDrag:
|
|
171
|
+
{
|
|
172
|
+
var clientX = action.payload.x;
|
|
173
|
+
var clientY = action.payload.y;
|
|
174
|
+
var slot = slotDive(clientX, clientY, 7);
|
|
175
|
+
|
|
176
|
+
if (!slot) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (slot === oldSlot) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
var slotEnd = slot.getAttribute('data-slot-end');
|
|
185
|
+
var newEnd = new Date(Number(slotEnd));
|
|
186
|
+
var dataItem = clone(this.dataItem);
|
|
187
|
+
|
|
188
|
+
if (newEnd <= dataItem.start) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
setField(dataItem, this.ks.fields.end, newEnd);
|
|
193
|
+
oldSlot = slot;
|
|
194
|
+
newResizeItem = dataItem;
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
case RESIZE_ITEM_ACTION.endDragSelected:
|
|
199
|
+
{
|
|
200
|
+
event.stopPropagation();
|
|
201
|
+
event.preventDefault();
|
|
202
|
+
var clientX = action.payload.x;
|
|
203
|
+
var clientY = action.payload.y;
|
|
204
|
+
var dataItem = clone(this.dataItem);
|
|
205
|
+
var slot = slotDive(clientX, clientY, 7);
|
|
206
|
+
|
|
207
|
+
if (!slot) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
if (slot === oldSlot) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
var slotEnd = slot.getAttribute('data-slot-start');
|
|
216
|
+
var itemEnd = new Date(getField(dataItem, this.ks.fields.end));
|
|
217
|
+
var newEnd = new Date(Number(slotEnd));
|
|
218
|
+
var distance_2 = newEnd.getTime() - itemEnd.getTime();
|
|
219
|
+
var unreachable_2;
|
|
220
|
+
var newResizeItems = this.bv.selectedItems.map(function (si) {
|
|
221
|
+
if (!si) {
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
var selectedDataItem = clone(si.props.dataItem);
|
|
226
|
+
var selectedEnd = new Date(si.props.end.getTime() + distance_2);
|
|
227
|
+
|
|
228
|
+
if (selectedEnd <= getField(selectedDataItem, _this.ks.fields.start)) {
|
|
229
|
+
unreachable_2 = true;
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
setField(selectedDataItem, _this.ks.fields.end, selectedEnd);
|
|
234
|
+
return selectedDataItem;
|
|
235
|
+
}).filter(Boolean);
|
|
236
|
+
|
|
237
|
+
if (!unreachable_2) {
|
|
238
|
+
newResizeItem = __spreadArrays(newResizeItems);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
break;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
case RESIZE_ITEM_ACTION.complete:
|
|
245
|
+
{
|
|
246
|
+
newResizeItem = null;
|
|
247
|
+
|
|
248
|
+
if (this.compResizeItem) {
|
|
249
|
+
this.$emit('dataaction', {
|
|
250
|
+
type: DATA_ACTION.update,
|
|
251
|
+
series: false,
|
|
252
|
+
dataItem: this.compResizeItem
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
break;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
case RESIZE_ITEM_ACTION.completeOccurrence:
|
|
260
|
+
{
|
|
261
|
+
newResizeItem = null;
|
|
262
|
+
|
|
263
|
+
if (this.compResizeItem) {
|
|
264
|
+
this.$emit('dataaction', {
|
|
265
|
+
type: DATA_ACTION.update,
|
|
266
|
+
series: false,
|
|
267
|
+
dataItem: this.compResizeItem
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
case RESIZE_ITEM_ACTION.completeSeries:
|
|
275
|
+
{
|
|
276
|
+
newResizeItem = null;
|
|
277
|
+
var newDataItem = void 0;
|
|
278
|
+
|
|
279
|
+
if (Array.isArray(this.compResizeItem)) {
|
|
280
|
+
newDataItem = this.compResizeItem.map(function (item) {
|
|
281
|
+
var newItem = clone(item);
|
|
282
|
+
setField(newItem, _this.ks.fields.start, getField(item, _this.ks.fields.start));
|
|
283
|
+
setField(newItem, _this.ks.fields.end, getField(item, _this.ks.fields.end));
|
|
284
|
+
return newItem;
|
|
285
|
+
});
|
|
286
|
+
} else {
|
|
287
|
+
var newItem = clone(this.compResizeItem);
|
|
288
|
+
setField(newItem, this.ks.fields.start, getField(this.compResizeItem, this.ks.fields.start));
|
|
289
|
+
setField(newItem, this.ks.fields.end, getField(this.compResizeItem, this.ks.fields.end));
|
|
290
|
+
newDataItem = newItem;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
if (newDataItem) {
|
|
294
|
+
this.$emit('dataaction', {
|
|
295
|
+
type: DATA_ACTION.update,
|
|
296
|
+
series: true,
|
|
297
|
+
dataItem: newDataItem
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
break;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
default:
|
|
305
|
+
newResizeItem = null;
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
32
308
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
// const [resizeItem, setResizeItem] = useControlledState<DataItem | null | (DataItem | null)[]>(...state);
|
|
36
|
-
// const [selectedItems] = useSchedulerViewSelectedItemsContext();
|
|
37
|
-
// const fields = useSchedulerFieldsContext();
|
|
38
|
-
// const handleDragItemAction = (action: SchedulerItemResizeItemAction, event: any) => {
|
|
39
|
-
// let newResizeItem = resizeItem;
|
|
40
|
-
// switch(action.type) {
|
|
41
|
-
// case RESIZE_ITEM_ACTION.set:
|
|
42
|
-
// newResizeItem = action.payload;
|
|
43
|
-
// break;
|
|
44
|
-
// case RESIZE_ITEM_ACTION.reset:
|
|
45
|
-
// newResizeItem = null;
|
|
46
|
-
// break;
|
|
47
|
-
// case RESIZE_ITEM_ACTION.start: {
|
|
48
|
-
// event.stopPropagation();
|
|
49
|
-
// event.preventDefault();
|
|
50
|
-
// const clientX = action.payload.x;
|
|
51
|
-
// const clientY = action.payload.y;
|
|
52
|
-
// const slot: HTMLElement | null = slotDive(clientX, clientY, 7);
|
|
53
|
-
// if (!slot) { return; }
|
|
54
|
-
// if (slot === oldSlot.current) { return; }
|
|
55
|
-
// const slotStart = slot.getAttribute('data-slot-start');
|
|
56
|
-
// const newStart = new Date(Number(slotStart));
|
|
57
|
-
// const dataItem = clone(config.dataItem);
|
|
58
|
-
// if (newStart >= getField(dataItem, fields.end)) { return; }
|
|
59
|
-
// setField(dataItem, fields.start, newStart);
|
|
60
|
-
// oldSlot.current = slot;
|
|
61
|
-
// newResizeItem = dataItem;
|
|
62
|
-
// break;
|
|
63
|
-
// }
|
|
64
|
-
// case RESIZE_ITEM_ACTION.startDragSelected: {
|
|
65
|
-
// event.stopPropagation();
|
|
66
|
-
// event.preventDefault();
|
|
67
|
-
// const clientX = action.payload.x;
|
|
68
|
-
// const clientY = action.payload.y;
|
|
69
|
-
// const dataItem = clone(config.dataItem);
|
|
70
|
-
// const slot: HTMLElement | null = slotDive(clientX, clientY, 7);
|
|
71
|
-
// if (!slot) { return; }
|
|
72
|
-
// if (slot === oldSlot.current) { return; }
|
|
73
|
-
// const slotStart = slot.getAttribute('data-slot-start');
|
|
74
|
-
// const itemStart = new Date(getField(dataItem, fields.start));
|
|
75
|
-
// const newStart = new Date(Number(slotStart));
|
|
76
|
-
// const distance = newStart.getTime() - itemStart.getTime();
|
|
77
|
-
// let unreachable = false;
|
|
78
|
-
// const newResizeItems = selectedItems.map((si) => {
|
|
79
|
-
// if(!si.current) {return null;}
|
|
80
|
-
// const selectedDataItem = clone(si.current.props.dataItem);
|
|
81
|
-
// const selectedStart = new Date(si.current.props.start.getTime() + distance);
|
|
82
|
-
// if(selectedStart >= getField(selectedDataItem, fields.end)) {
|
|
83
|
-
// unreachable = true;
|
|
84
|
-
// return;
|
|
85
|
-
// }
|
|
86
|
-
// setField(selectedDataItem, fields.start, selectedStart);
|
|
87
|
-
// return selectedDataItem;
|
|
88
|
-
// }).filter(Boolean);
|
|
89
|
-
// if(!unreachable) {
|
|
90
|
-
// newResizeItem = [...newResizeItems];
|
|
91
|
-
// }
|
|
92
|
-
// break;
|
|
93
|
-
// }
|
|
94
|
-
// case RESIZE_ITEM_ACTION.startDrag: {
|
|
95
|
-
// const clientX = action.payload.x;
|
|
96
|
-
// const clientY = action.payload.y;
|
|
97
|
-
// const slot: HTMLElement | null = slotDive(clientX, clientY, 7);
|
|
98
|
-
// if (!slot) { return; }
|
|
99
|
-
// if (slot === oldSlot.current) { return; }
|
|
100
|
-
// const slotStart = slot.getAttribute('data-slot-start');
|
|
101
|
-
// const newStart = new Date(Number(slotStart));
|
|
102
|
-
// const dataItem = clone(config.dataItem);
|
|
103
|
-
// if (newStart >= dataItem.end) { return; }
|
|
104
|
-
// setField(dataItem, fields.start, newStart);
|
|
105
|
-
// oldSlot.current = slot;
|
|
106
|
-
// newResizeItem = dataItem;
|
|
107
|
-
// break;
|
|
108
|
-
// }
|
|
109
|
-
// case RESIZE_ITEM_ACTION.endDrag: {
|
|
110
|
-
// const clientX = action.payload.x;
|
|
111
|
-
// const clientY = action.payload.y;
|
|
112
|
-
// const slot: HTMLElement | null = slotDive(clientX, clientY, 7);
|
|
113
|
-
// if (!slot) { return; }
|
|
114
|
-
// if (slot === oldSlot.current) { return; }
|
|
115
|
-
// const slotEnd = slot.getAttribute('data-slot-end');
|
|
116
|
-
// const newEnd = new Date(Number(slotEnd));
|
|
117
|
-
// const dataItem = clone(config.dataItem);
|
|
118
|
-
// if (newEnd <= dataItem.start) { return; }
|
|
119
|
-
// setField(dataItem, fields.end, newEnd);
|
|
120
|
-
// oldSlot.current = slot;
|
|
121
|
-
// newResizeItem = dataItem;
|
|
122
|
-
// break;
|
|
123
|
-
// }
|
|
124
|
-
// case RESIZE_ITEM_ACTION.endDragSelected: {
|
|
125
|
-
// event.stopPropagation();
|
|
126
|
-
// event.preventDefault();
|
|
127
|
-
// const clientX = action.payload.x;
|
|
128
|
-
// const clientY = action.payload.y;
|
|
129
|
-
// const dataItem = clone(config.dataItem);
|
|
130
|
-
// const slot: HTMLElement | null = slotDive(clientX, clientY, 7);
|
|
131
|
-
// if (!slot) { return; }
|
|
132
|
-
// if (slot === oldSlot.current) { return; }
|
|
133
|
-
// const slotEnd = slot.getAttribute('data-slot-start');
|
|
134
|
-
// const itemEnd = new Date(getField(dataItem, fields.end));
|
|
135
|
-
// const newEnd = new Date(Number(slotEnd));
|
|
136
|
-
// const distance = newEnd.getTime() - itemEnd.getTime();
|
|
137
|
-
// let unreachable;
|
|
138
|
-
// const newResizeItems = selectedItems.map((si) => {
|
|
139
|
-
// if(!si.current) {return null;}
|
|
140
|
-
// const selectedDataItem = clone(si.current.props.dataItem);
|
|
141
|
-
// const selectedEnd = new Date(si.current.props.end.getTime() + distance);
|
|
142
|
-
// if(selectedEnd <= getField(selectedDataItem, fields.start)) {
|
|
143
|
-
// unreachable = true;
|
|
144
|
-
// return;
|
|
145
|
-
// }
|
|
146
|
-
// setField(selectedDataItem, fields.end, selectedEnd);
|
|
147
|
-
// return selectedDataItem;
|
|
148
|
-
// }).filter(Boolean);
|
|
149
|
-
// if(!unreachable) {
|
|
150
|
-
// newResizeItem = [...newResizeItems];
|
|
151
|
-
// }
|
|
152
|
-
// break;
|
|
153
|
-
// }
|
|
154
|
-
// case RESIZE_ITEM_ACTION.complete: {
|
|
155
|
-
// newResizeItem = null;
|
|
156
|
-
// if(config.onDataAction && resizeItem) {
|
|
157
|
-
// config.onDataAction.call(undefined,{
|
|
158
|
-
// type: DATA_ACTION.update,
|
|
159
|
-
// series: false,
|
|
160
|
-
// dataItem: resizeItem
|
|
161
|
-
// });
|
|
162
|
-
// }
|
|
163
|
-
// break;
|
|
164
|
-
// }
|
|
165
|
-
// case RESIZE_ITEM_ACTION.completeOccurrence: {
|
|
166
|
-
// newResizeItem = null;
|
|
167
|
-
// if(config.onDataAction && resizeItem) {
|
|
168
|
-
// config.onDataAction.call(undefined,{
|
|
169
|
-
// type: DATA_ACTION.update,
|
|
170
|
-
// series: false,
|
|
171
|
-
// dataItem: resizeItem
|
|
172
|
-
// });
|
|
173
|
-
// }
|
|
174
|
-
// break;
|
|
175
|
-
// }
|
|
176
|
-
// case RESIZE_ITEM_ACTION.completeSeries: {
|
|
177
|
-
// newResizeItem = null;
|
|
178
|
-
// let newDataItem;
|
|
179
|
-
// if(Array.isArray(resizeItem)) {
|
|
180
|
-
// newDataItem = resizeItem.map((item) => {
|
|
181
|
-
// const newItem = clone(item);
|
|
182
|
-
// setField(newItem, fields.start, getField(item, fields.start));
|
|
183
|
-
// setField(newItem, fields.end, getField(item, fields.end));
|
|
184
|
-
// return newItem;
|
|
185
|
-
// });
|
|
186
|
-
// } else {
|
|
187
|
-
// const newItem = clone(resizeItem);
|
|
188
|
-
// setField(newItem, fields.start, getField(resizeItem, fields.start));
|
|
189
|
-
// setField(newItem, fields.end, getField(resizeItem, fields.end));
|
|
190
|
-
// newDataItem = newItem;
|
|
191
|
-
// }
|
|
192
|
-
// if(config.onDataAction && newDataItem) {
|
|
193
|
-
// config.onDataAction.call(undefined,{
|
|
194
|
-
// type: DATA_ACTION.update,
|
|
195
|
-
// series: true,
|
|
196
|
-
// dataItem: newDataItem
|
|
197
|
-
// });
|
|
198
|
-
// }
|
|
199
|
-
// break;
|
|
200
|
-
// }
|
|
201
|
-
// default:
|
|
202
|
-
// newResizeItem = null;
|
|
203
|
-
// break;
|
|
204
|
-
// }
|
|
205
|
-
// setResizeItem(newResizeItem);
|
|
206
|
-
// };
|
|
207
|
-
// return [resizeItem, setResizeItem, handleDragItemAction];
|
|
208
|
-
return [];
|
|
309
|
+
this.currentResizeItem = newResizeItem;
|
|
310
|
+
this.$emit('resizeitemchange', newResizeItem);
|
|
209
311
|
};
|
|
@@ -5,7 +5,7 @@ export var packageMetadata = {
|
|
|
5
5
|
name: '@progress/kendo-vue-scheduler',
|
|
6
6
|
productName: 'Kendo UI for Vue',
|
|
7
7
|
productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],
|
|
8
|
-
publishDate:
|
|
8
|
+
publishDate: 1651491665,
|
|
9
9
|
version: '',
|
|
10
10
|
licensingDocsUrl: 'https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning'
|
|
11
11
|
};
|