@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
|
@@ -126,6 +126,7 @@ var SchedulerViewItemVue2 = {
|
|
|
126
126
|
},
|
|
127
127
|
mounted: function mounted() {
|
|
128
128
|
var that = this;
|
|
129
|
+
this.element = this.getElement();
|
|
129
130
|
this.$nextTick(function () {
|
|
130
131
|
that.align();
|
|
131
132
|
that.position();
|
|
@@ -271,7 +272,7 @@ var SchedulerViewItemVue2 = {
|
|
|
271
272
|
style: __assign({
|
|
272
273
|
visibility: this.visible ? undefined : 'hidden',
|
|
273
274
|
display: this.display ? undefined : 'none'
|
|
274
|
-
}, this.$props.
|
|
275
|
+
}, this.$props.itemStyle) // Keyboard
|
|
275
276
|
,
|
|
276
277
|
onKeydown: this.handleKeyDown,
|
|
277
278
|
on: this.v3 ? undefined : {
|
|
@@ -289,7 +290,7 @@ var SchedulerViewItemVue2 = {
|
|
|
289
290
|
"resizepress": this.handleResizePress,
|
|
290
291
|
"resizeenddrag": this.handleResizeEndDrag,
|
|
291
292
|
"resizestartdrag": this.handleResizeStartDrag,
|
|
292
|
-
"
|
|
293
|
+
"resizerelease": this.handleResizeRelease
|
|
293
294
|
},
|
|
294
295
|
onKeyup: this.handleKeyUp // Focus
|
|
295
296
|
,
|
|
@@ -308,7 +309,7 @@ var SchedulerViewItemVue2 = {
|
|
|
308
309
|
onResizepress: this.handleResizePress,
|
|
309
310
|
onResizeenddrag: this.handleResizeEndDrag,
|
|
310
311
|
onResizestartdrag: this.handleResizeStartDrag,
|
|
311
|
-
|
|
312
|
+
onResizerelease: this.handleResizeRelease
|
|
312
313
|
}, this.v3 ? function () {
|
|
313
314
|
return [!_this2.$props.resizeHint && h("div", {
|
|
314
315
|
title: _this2.itemTitle,
|
|
@@ -380,12 +381,15 @@ var SchedulerViewItemVue2 = {
|
|
|
380
381
|
resizepress: this.handleResizePress,
|
|
381
382
|
resizeenddrag: this.handleResizeEndDrag,
|
|
382
383
|
resizestartdrag: this.handleResizeStartDrag,
|
|
383
|
-
|
|
384
|
+
resizerelease: this.handleResizeRelease
|
|
384
385
|
}
|
|
385
386
|
});
|
|
386
387
|
return itemRender;
|
|
387
388
|
},
|
|
388
389
|
methods: {
|
|
390
|
+
getElement: function getElement() {
|
|
391
|
+
return this.$el.nodeType === 8 ? this.$el.parentElement : this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el;
|
|
392
|
+
},
|
|
389
393
|
// Focus Handlers
|
|
390
394
|
handleFocus: function handleFocus(e) {
|
|
391
395
|
this.$emit('focus', e);
|
|
@@ -484,9 +488,7 @@ var SchedulerViewItemVue2 = {
|
|
|
484
488
|
align: function align() {
|
|
485
489
|
var _this = this;
|
|
486
490
|
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
if (!element) {
|
|
491
|
+
if (!this.element) {
|
|
490
492
|
return;
|
|
491
493
|
}
|
|
492
494
|
|
|
@@ -512,14 +514,12 @@ var SchedulerViewItemVue2 = {
|
|
|
512
514
|
}
|
|
513
515
|
|
|
514
516
|
var rect = utils_2.getRect(firstSlot.$el);
|
|
515
|
-
utils_2.setRect(element, rect);
|
|
517
|
+
utils_2.setRect(this.element, rect);
|
|
516
518
|
},
|
|
517
519
|
position: function position() {
|
|
518
520
|
var _this = this;
|
|
519
521
|
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
if (!element) {
|
|
522
|
+
if (!this.element) {
|
|
523
523
|
return;
|
|
524
524
|
}
|
|
525
525
|
|
|
@@ -546,18 +546,18 @@ var SchedulerViewItemVue2 = {
|
|
|
546
546
|
var mostSiblingsInSlot = this.$props.dragHint || this.$props.resizeHint ? this.calculateMostSiblings(slots, this.$props.dragHint ? dragItems : resizeItems) : this.calculateMostSiblings(slots, items);
|
|
547
547
|
var siblingsPerSlot = this.getSiblingsInAllSlots(slots, items);
|
|
548
548
|
var topOffset = 0;
|
|
549
|
-
var rect = utils_2.getRect(element);
|
|
549
|
+
var rect = utils_2.getRect(this.element);
|
|
550
550
|
siblingsPerSlot.forEach(function (slot) {
|
|
551
551
|
var currentOffset = 0;
|
|
552
|
-
var
|
|
552
|
+
var currentItem = slot.sort(function (a, b) {
|
|
553
553
|
return a.$props.order - b.$props.order;
|
|
554
554
|
});
|
|
555
|
-
|
|
556
|
-
if (utils_1.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
|
|
555
|
+
currentItem.forEach(function (current) {
|
|
556
|
+
if (utils_1.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) {
|
|
557
557
|
mostSiblingsInSlot = current.$props.maxSiblingsPerSlot;
|
|
558
558
|
}
|
|
559
559
|
|
|
560
|
-
var currentRect = utils_2.getRect(current
|
|
560
|
+
var currentRect = utils_2.getRect(current.getElement());
|
|
561
561
|
|
|
562
562
|
if (current.$props.order !== null && current.$props.order < order) {
|
|
563
563
|
currentOffset = (currentRect.top || rect.top) + currentRect.height - rect.top - constants_1.BORDER_WIDTH * order + ITEMS_SPACING;
|
|
@@ -580,7 +580,7 @@ var SchedulerViewItemVue2 = {
|
|
|
580
580
|
rect.left = this.$props.vertical ? rect.left + order * rect.width + constants_1.BORDER_WIDTH * order : rect.left;
|
|
581
581
|
rect.top = this.$props.vertical ? rect.top : rect.top + topOffset + constants_1.BORDER_WIDTH * order;
|
|
582
582
|
this.maxSiblingsPerSlot = mostSiblingsInSlot;
|
|
583
|
-
utils_2.setRect(element, rect);
|
|
583
|
+
utils_2.setRect(this.element, rect);
|
|
584
584
|
this.visible = true;
|
|
585
585
|
this.display = true;
|
|
586
586
|
},
|
|
@@ -198,13 +198,14 @@ exports.useDragItem = function (action) {
|
|
|
198
198
|
|
|
199
199
|
case DRAG_ITEM_ACTION.complete:
|
|
200
200
|
{
|
|
201
|
+
var currentDataItem = this.compDragItem;
|
|
201
202
|
this.currentDragItem = null;
|
|
202
203
|
|
|
203
|
-
if (
|
|
204
|
+
if (currentDataItem) {
|
|
204
205
|
this.$emit('dataaction', {
|
|
205
206
|
type: main_1.DATA_ACTION.update,
|
|
206
207
|
series: false,
|
|
207
|
-
dataItem:
|
|
208
|
+
dataItem: currentDataItem
|
|
208
209
|
});
|
|
209
210
|
}
|
|
210
211
|
|
|
@@ -214,9 +215,10 @@ exports.useDragItem = function (action) {
|
|
|
214
215
|
case DRAG_ITEM_ACTION.completeOccurrence:
|
|
215
216
|
{
|
|
216
217
|
var newDataItem = Array.isArray(this.compDragItem) ? this.compDragItem.slice() : kendo_vue_common_1.clone(this.compDragItem);
|
|
218
|
+
var currentDataItem = this.compDragItem;
|
|
217
219
|
this.currentDragItem = null;
|
|
218
220
|
|
|
219
|
-
if (
|
|
221
|
+
if (currentDataItem) {
|
|
220
222
|
this.$emit('dataaction', {
|
|
221
223
|
type: main_1.DATA_ACTION.update,
|
|
222
224
|
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,9 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var __spreadArrays = undefined && undefined.__spreadArrays || function () {
|
|
4
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) {
|
|
5
|
+
s += arguments[i].length;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++) {
|
|
9
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {
|
|
10
|
+
r[k] = a[j];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return r;
|
|
15
|
+
};
|
|
16
|
+
|
|
3
17
|
Object.defineProperty(exports, "__esModule", {
|
|
4
18
|
value: true
|
|
5
19
|
});
|
|
6
20
|
exports.useResizeItem = exports.RESIZE_ITEM_ACTION = void 0;
|
|
21
|
+
|
|
22
|
+
var kendo_vue_common_1 = require("@progress/kendo-vue-common");
|
|
23
|
+
|
|
24
|
+
var Scheduler_1 = require("../../Scheduler");
|
|
25
|
+
|
|
26
|
+
var utils_1 = require("../../utils");
|
|
7
27
|
/**
|
|
8
28
|
* Represents the available `action` types for the `SchedulerItemResizeItemAction` objects.
|
|
9
29
|
*
|
|
@@ -20,6 +40,7 @@ exports.useResizeItem = exports.RESIZE_ITEM_ACTION = void 0;
|
|
|
20
40
|
* - `RESIZE_ITEM_RESET`
|
|
21
41
|
*/
|
|
22
42
|
|
|
43
|
+
|
|
23
44
|
var RESIZE_ITEM_ACTION;
|
|
24
45
|
|
|
25
46
|
(function (RESIZE_ITEM_ACTION) {
|
|
@@ -34,183 +55,267 @@ var RESIZE_ITEM_ACTION;
|
|
|
34
55
|
RESIZE_ITEM_ACTION["completeSeries"] = "RESIZE_ITEM_COMPLETE_SERIES";
|
|
35
56
|
RESIZE_ITEM_ACTION["reset"] = "RESIZE_ITEM_RESET";
|
|
36
57
|
})(RESIZE_ITEM_ACTION = exports.RESIZE_ITEM_ACTION || (exports.RESIZE_ITEM_ACTION = {}));
|
|
58
|
+
|
|
59
|
+
var oldSlot = null;
|
|
37
60
|
/** @hidden */
|
|
38
61
|
|
|
62
|
+
exports.useResizeItem = function (action, event) {
|
|
63
|
+
var _this = this;
|
|
64
|
+
|
|
65
|
+
var newResizeItem = this.compResizeItem;
|
|
66
|
+
|
|
67
|
+
switch (action.type) {
|
|
68
|
+
case RESIZE_ITEM_ACTION.set:
|
|
69
|
+
newResizeItem = action.payload;
|
|
70
|
+
break;
|
|
71
|
+
|
|
72
|
+
case RESIZE_ITEM_ACTION.reset:
|
|
73
|
+
newResizeItem = null;
|
|
74
|
+
break;
|
|
75
|
+
|
|
76
|
+
case RESIZE_ITEM_ACTION.start:
|
|
77
|
+
{
|
|
78
|
+
event.stopPropagation();
|
|
79
|
+
event.preventDefault();
|
|
80
|
+
var clientX = action.payload.x;
|
|
81
|
+
var clientY = action.payload.y;
|
|
82
|
+
var slot = utils_1.slotDive(clientX, clientY, 7);
|
|
83
|
+
|
|
84
|
+
if (!slot) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (slot === oldSlot) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
var slotStart = slot.getAttribute('data-slot-start');
|
|
93
|
+
var newStart = new Date(Number(slotStart));
|
|
94
|
+
var dataItem = kendo_vue_common_1.clone(this.dataItem);
|
|
95
|
+
|
|
96
|
+
if (newStart >= utils_1.getField(dataItem, this.ks.fields.end)) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
utils_1.setField(dataItem, this.ks.fields.start, newStart);
|
|
101
|
+
oldSlot = slot;
|
|
102
|
+
newResizeItem = dataItem;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
case RESIZE_ITEM_ACTION.startDragSelected:
|
|
107
|
+
{
|
|
108
|
+
event.stopPropagation();
|
|
109
|
+
event.preventDefault();
|
|
110
|
+
var clientX = action.payload.x;
|
|
111
|
+
var clientY = action.payload.y;
|
|
112
|
+
var dataItem = kendo_vue_common_1.clone(this.dataItem);
|
|
113
|
+
var slot = utils_1.slotDive(clientX, clientY, 7);
|
|
114
|
+
|
|
115
|
+
if (!slot) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (slot === oldSlot) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
var slotStart = slot.getAttribute('data-slot-start');
|
|
124
|
+
var itemStart = new Date(utils_1.getField(dataItem, this.ks.fields.start));
|
|
125
|
+
var newStart = new Date(Number(slotStart));
|
|
126
|
+
var distance_1 = newStart.getTime() - itemStart.getTime();
|
|
127
|
+
var unreachable_1 = false;
|
|
128
|
+
var newResizeItems = this.bv.selectedItems.map(function (si) {
|
|
129
|
+
if (!si) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
var selectedDataItem = kendo_vue_common_1.clone(si.props.dataItem);
|
|
134
|
+
var selectedStart = new Date(si.props.start.getTime() + distance_1);
|
|
135
|
+
|
|
136
|
+
if (selectedStart >= utils_1.getField(selectedDataItem, _this.ks.fields.end)) {
|
|
137
|
+
unreachable_1 = true;
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
utils_1.setField(selectedDataItem, _this.ks.fields.start, selectedStart);
|
|
142
|
+
return selectedDataItem;
|
|
143
|
+
}).filter(Boolean);
|
|
144
|
+
|
|
145
|
+
if (!unreachable_1) {
|
|
146
|
+
newResizeItem = __spreadArrays(newResizeItems);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
case RESIZE_ITEM_ACTION.startDrag:
|
|
153
|
+
{
|
|
154
|
+
var clientX = action.payload.x;
|
|
155
|
+
var clientY = action.payload.y;
|
|
156
|
+
var slot = utils_1.slotDive(clientX, clientY, 7);
|
|
157
|
+
|
|
158
|
+
if (!slot) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if (slot === oldSlot) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
var slotStart = slot.getAttribute('data-slot-start');
|
|
167
|
+
var newStart = new Date(Number(slotStart));
|
|
168
|
+
var dataItem = kendo_vue_common_1.clone(this.dataItem);
|
|
169
|
+
|
|
170
|
+
if (newStart >= dataItem.end) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
utils_1.setField(dataItem, this.ks.fields.start, newStart);
|
|
175
|
+
oldSlot = slot;
|
|
176
|
+
newResizeItem = dataItem;
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
case RESIZE_ITEM_ACTION.endDrag:
|
|
181
|
+
{
|
|
182
|
+
var clientX = action.payload.x;
|
|
183
|
+
var clientY = action.payload.y;
|
|
184
|
+
var slot = utils_1.slotDive(clientX, clientY, 7);
|
|
185
|
+
|
|
186
|
+
if (!slot) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (slot === oldSlot) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
var slotEnd = slot.getAttribute('data-slot-end');
|
|
195
|
+
var newEnd = new Date(Number(slotEnd));
|
|
196
|
+
var dataItem = kendo_vue_common_1.clone(this.dataItem);
|
|
197
|
+
|
|
198
|
+
if (newEnd <= dataItem.start) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
utils_1.setField(dataItem, this.ks.fields.end, newEnd);
|
|
203
|
+
oldSlot = slot;
|
|
204
|
+
newResizeItem = dataItem;
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
case RESIZE_ITEM_ACTION.endDragSelected:
|
|
209
|
+
{
|
|
210
|
+
event.stopPropagation();
|
|
211
|
+
event.preventDefault();
|
|
212
|
+
var clientX = action.payload.x;
|
|
213
|
+
var clientY = action.payload.y;
|
|
214
|
+
var dataItem = kendo_vue_common_1.clone(this.dataItem);
|
|
215
|
+
var slot = utils_1.slotDive(clientX, clientY, 7);
|
|
216
|
+
|
|
217
|
+
if (!slot) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
if (slot === oldSlot) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
var slotEnd = slot.getAttribute('data-slot-start');
|
|
226
|
+
var itemEnd = new Date(utils_1.getField(dataItem, this.ks.fields.end));
|
|
227
|
+
var newEnd = new Date(Number(slotEnd));
|
|
228
|
+
var distance_2 = newEnd.getTime() - itemEnd.getTime();
|
|
229
|
+
var unreachable_2;
|
|
230
|
+
var newResizeItems = this.bv.selectedItems.map(function (si) {
|
|
231
|
+
if (!si) {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
var selectedDataItem = kendo_vue_common_1.clone(si.props.dataItem);
|
|
236
|
+
var selectedEnd = new Date(si.props.end.getTime() + distance_2);
|
|
237
|
+
|
|
238
|
+
if (selectedEnd <= utils_1.getField(selectedDataItem, _this.ks.fields.start)) {
|
|
239
|
+
unreachable_2 = true;
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
utils_1.setField(selectedDataItem, _this.ks.fields.end, selectedEnd);
|
|
244
|
+
return selectedDataItem;
|
|
245
|
+
}).filter(Boolean);
|
|
246
|
+
|
|
247
|
+
if (!unreachable_2) {
|
|
248
|
+
newResizeItem = __spreadArrays(newResizeItems);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
case RESIZE_ITEM_ACTION.complete:
|
|
255
|
+
{
|
|
256
|
+
newResizeItem = null;
|
|
257
|
+
|
|
258
|
+
if (this.compResizeItem) {
|
|
259
|
+
this.$emit('dataaction', {
|
|
260
|
+
type: Scheduler_1.DATA_ACTION.update,
|
|
261
|
+
series: false,
|
|
262
|
+
dataItem: this.compResizeItem
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
break;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
case RESIZE_ITEM_ACTION.completeOccurrence:
|
|
270
|
+
{
|
|
271
|
+
newResizeItem = null;
|
|
272
|
+
|
|
273
|
+
if (this.compResizeItem) {
|
|
274
|
+
this.$emit('dataaction', {
|
|
275
|
+
type: Scheduler_1.DATA_ACTION.update,
|
|
276
|
+
series: false,
|
|
277
|
+
dataItem: this.compResizeItem
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
case RESIZE_ITEM_ACTION.completeSeries:
|
|
285
|
+
{
|
|
286
|
+
newResizeItem = null;
|
|
287
|
+
var newDataItem = void 0;
|
|
288
|
+
|
|
289
|
+
if (Array.isArray(this.compResizeItem)) {
|
|
290
|
+
newDataItem = this.compResizeItem.map(function (item) {
|
|
291
|
+
var newItem = kendo_vue_common_1.clone(item);
|
|
292
|
+
utils_1.setField(newItem, _this.ks.fields.start, utils_1.getField(item, _this.ks.fields.start));
|
|
293
|
+
utils_1.setField(newItem, _this.ks.fields.end, utils_1.getField(item, _this.ks.fields.end));
|
|
294
|
+
return newItem;
|
|
295
|
+
});
|
|
296
|
+
} else {
|
|
297
|
+
var newItem = kendo_vue_common_1.clone(this.compResizeItem);
|
|
298
|
+
utils_1.setField(newItem, this.ks.fields.start, utils_1.getField(this.compResizeItem, this.ks.fields.start));
|
|
299
|
+
utils_1.setField(newItem, this.ks.fields.end, utils_1.getField(this.compResizeItem, this.ks.fields.end));
|
|
300
|
+
newDataItem = newItem;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
if (newDataItem) {
|
|
304
|
+
this.$emit('dataaction', {
|
|
305
|
+
type: Scheduler_1.DATA_ACTION.update,
|
|
306
|
+
series: true,
|
|
307
|
+
dataItem: newDataItem
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
break;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
default:
|
|
315
|
+
newResizeItem = null;
|
|
316
|
+
break;
|
|
317
|
+
}
|
|
39
318
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
// const [resizeItem, setResizeItem] = useControlledState<DataItem | null | (DataItem | null)[]>(...state);
|
|
43
|
-
// const [selectedItems] = useSchedulerViewSelectedItemsContext();
|
|
44
|
-
// const fields = useSchedulerFieldsContext();
|
|
45
|
-
// const handleDragItemAction = (action: SchedulerItemResizeItemAction, event: any) => {
|
|
46
|
-
// let newResizeItem = resizeItem;
|
|
47
|
-
// switch(action.type) {
|
|
48
|
-
// case RESIZE_ITEM_ACTION.set:
|
|
49
|
-
// newResizeItem = action.payload;
|
|
50
|
-
// break;
|
|
51
|
-
// case RESIZE_ITEM_ACTION.reset:
|
|
52
|
-
// newResizeItem = null;
|
|
53
|
-
// break;
|
|
54
|
-
// case RESIZE_ITEM_ACTION.start: {
|
|
55
|
-
// event.stopPropagation();
|
|
56
|
-
// event.preventDefault();
|
|
57
|
-
// const clientX = action.payload.x;
|
|
58
|
-
// const clientY = action.payload.y;
|
|
59
|
-
// const slot: HTMLElement | null = slotDive(clientX, clientY, 7);
|
|
60
|
-
// if (!slot) { return; }
|
|
61
|
-
// if (slot === oldSlot.current) { return; }
|
|
62
|
-
// const slotStart = slot.getAttribute('data-slot-start');
|
|
63
|
-
// const newStart = new Date(Number(slotStart));
|
|
64
|
-
// const dataItem = clone(config.dataItem);
|
|
65
|
-
// if (newStart >= getField(dataItem, fields.end)) { return; }
|
|
66
|
-
// setField(dataItem, fields.start, newStart);
|
|
67
|
-
// oldSlot.current = slot;
|
|
68
|
-
// newResizeItem = dataItem;
|
|
69
|
-
// break;
|
|
70
|
-
// }
|
|
71
|
-
// case RESIZE_ITEM_ACTION.startDragSelected: {
|
|
72
|
-
// event.stopPropagation();
|
|
73
|
-
// event.preventDefault();
|
|
74
|
-
// const clientX = action.payload.x;
|
|
75
|
-
// const clientY = action.payload.y;
|
|
76
|
-
// const dataItem = clone(config.dataItem);
|
|
77
|
-
// const slot: HTMLElement | null = slotDive(clientX, clientY, 7);
|
|
78
|
-
// if (!slot) { return; }
|
|
79
|
-
// if (slot === oldSlot.current) { return; }
|
|
80
|
-
// const slotStart = slot.getAttribute('data-slot-start');
|
|
81
|
-
// const itemStart = new Date(getField(dataItem, fields.start));
|
|
82
|
-
// const newStart = new Date(Number(slotStart));
|
|
83
|
-
// const distance = newStart.getTime() - itemStart.getTime();
|
|
84
|
-
// let unreachable = false;
|
|
85
|
-
// const newResizeItems = selectedItems.map((si) => {
|
|
86
|
-
// if(!si.current) {return null;}
|
|
87
|
-
// const selectedDataItem = clone(si.current.props.dataItem);
|
|
88
|
-
// const selectedStart = new Date(si.current.props.start.getTime() + distance);
|
|
89
|
-
// if(selectedStart >= getField(selectedDataItem, fields.end)) {
|
|
90
|
-
// unreachable = true;
|
|
91
|
-
// return;
|
|
92
|
-
// }
|
|
93
|
-
// setField(selectedDataItem, fields.start, selectedStart);
|
|
94
|
-
// return selectedDataItem;
|
|
95
|
-
// }).filter(Boolean);
|
|
96
|
-
// if(!unreachable) {
|
|
97
|
-
// newResizeItem = [...newResizeItems];
|
|
98
|
-
// }
|
|
99
|
-
// break;
|
|
100
|
-
// }
|
|
101
|
-
// case RESIZE_ITEM_ACTION.startDrag: {
|
|
102
|
-
// const clientX = action.payload.x;
|
|
103
|
-
// const clientY = action.payload.y;
|
|
104
|
-
// const slot: HTMLElement | null = slotDive(clientX, clientY, 7);
|
|
105
|
-
// if (!slot) { return; }
|
|
106
|
-
// if (slot === oldSlot.current) { return; }
|
|
107
|
-
// const slotStart = slot.getAttribute('data-slot-start');
|
|
108
|
-
// const newStart = new Date(Number(slotStart));
|
|
109
|
-
// const dataItem = clone(config.dataItem);
|
|
110
|
-
// if (newStart >= dataItem.end) { return; }
|
|
111
|
-
// setField(dataItem, fields.start, newStart);
|
|
112
|
-
// oldSlot.current = slot;
|
|
113
|
-
// newResizeItem = dataItem;
|
|
114
|
-
// break;
|
|
115
|
-
// }
|
|
116
|
-
// case RESIZE_ITEM_ACTION.endDrag: {
|
|
117
|
-
// const clientX = action.payload.x;
|
|
118
|
-
// const clientY = action.payload.y;
|
|
119
|
-
// const slot: HTMLElement | null = slotDive(clientX, clientY, 7);
|
|
120
|
-
// if (!slot) { return; }
|
|
121
|
-
// if (slot === oldSlot.current) { return; }
|
|
122
|
-
// const slotEnd = slot.getAttribute('data-slot-end');
|
|
123
|
-
// const newEnd = new Date(Number(slotEnd));
|
|
124
|
-
// const dataItem = clone(config.dataItem);
|
|
125
|
-
// if (newEnd <= dataItem.start) { return; }
|
|
126
|
-
// setField(dataItem, fields.end, newEnd);
|
|
127
|
-
// oldSlot.current = slot;
|
|
128
|
-
// newResizeItem = dataItem;
|
|
129
|
-
// break;
|
|
130
|
-
// }
|
|
131
|
-
// case RESIZE_ITEM_ACTION.endDragSelected: {
|
|
132
|
-
// event.stopPropagation();
|
|
133
|
-
// event.preventDefault();
|
|
134
|
-
// const clientX = action.payload.x;
|
|
135
|
-
// const clientY = action.payload.y;
|
|
136
|
-
// const dataItem = clone(config.dataItem);
|
|
137
|
-
// const slot: HTMLElement | null = slotDive(clientX, clientY, 7);
|
|
138
|
-
// if (!slot) { return; }
|
|
139
|
-
// if (slot === oldSlot.current) { return; }
|
|
140
|
-
// const slotEnd = slot.getAttribute('data-slot-start');
|
|
141
|
-
// const itemEnd = new Date(getField(dataItem, fields.end));
|
|
142
|
-
// const newEnd = new Date(Number(slotEnd));
|
|
143
|
-
// const distance = newEnd.getTime() - itemEnd.getTime();
|
|
144
|
-
// let unreachable;
|
|
145
|
-
// const newResizeItems = selectedItems.map((si) => {
|
|
146
|
-
// if(!si.current) {return null;}
|
|
147
|
-
// const selectedDataItem = clone(si.current.props.dataItem);
|
|
148
|
-
// const selectedEnd = new Date(si.current.props.end.getTime() + distance);
|
|
149
|
-
// if(selectedEnd <= getField(selectedDataItem, fields.start)) {
|
|
150
|
-
// unreachable = true;
|
|
151
|
-
// return;
|
|
152
|
-
// }
|
|
153
|
-
// setField(selectedDataItem, fields.end, selectedEnd);
|
|
154
|
-
// return selectedDataItem;
|
|
155
|
-
// }).filter(Boolean);
|
|
156
|
-
// if(!unreachable) {
|
|
157
|
-
// newResizeItem = [...newResizeItems];
|
|
158
|
-
// }
|
|
159
|
-
// break;
|
|
160
|
-
// }
|
|
161
|
-
// case RESIZE_ITEM_ACTION.complete: {
|
|
162
|
-
// newResizeItem = null;
|
|
163
|
-
// if(config.onDataAction && resizeItem) {
|
|
164
|
-
// config.onDataAction.call(undefined,{
|
|
165
|
-
// type: DATA_ACTION.update,
|
|
166
|
-
// series: false,
|
|
167
|
-
// dataItem: resizeItem
|
|
168
|
-
// });
|
|
169
|
-
// }
|
|
170
|
-
// break;
|
|
171
|
-
// }
|
|
172
|
-
// case RESIZE_ITEM_ACTION.completeOccurrence: {
|
|
173
|
-
// newResizeItem = null;
|
|
174
|
-
// if(config.onDataAction && resizeItem) {
|
|
175
|
-
// config.onDataAction.call(undefined,{
|
|
176
|
-
// type: DATA_ACTION.update,
|
|
177
|
-
// series: false,
|
|
178
|
-
// dataItem: resizeItem
|
|
179
|
-
// });
|
|
180
|
-
// }
|
|
181
|
-
// break;
|
|
182
|
-
// }
|
|
183
|
-
// case RESIZE_ITEM_ACTION.completeSeries: {
|
|
184
|
-
// newResizeItem = null;
|
|
185
|
-
// let newDataItem;
|
|
186
|
-
// if(Array.isArray(resizeItem)) {
|
|
187
|
-
// newDataItem = resizeItem.map((item) => {
|
|
188
|
-
// const newItem = clone(item);
|
|
189
|
-
// setField(newItem, fields.start, getField(item, fields.start));
|
|
190
|
-
// setField(newItem, fields.end, getField(item, fields.end));
|
|
191
|
-
// return newItem;
|
|
192
|
-
// });
|
|
193
|
-
// } else {
|
|
194
|
-
// const newItem = clone(resizeItem);
|
|
195
|
-
// setField(newItem, fields.start, getField(resizeItem, fields.start));
|
|
196
|
-
// setField(newItem, fields.end, getField(resizeItem, fields.end));
|
|
197
|
-
// newDataItem = newItem;
|
|
198
|
-
// }
|
|
199
|
-
// if(config.onDataAction && newDataItem) {
|
|
200
|
-
// config.onDataAction.call(undefined,{
|
|
201
|
-
// type: DATA_ACTION.update,
|
|
202
|
-
// series: true,
|
|
203
|
-
// dataItem: newDataItem
|
|
204
|
-
// });
|
|
205
|
-
// }
|
|
206
|
-
// break;
|
|
207
|
-
// }
|
|
208
|
-
// default:
|
|
209
|
-
// newResizeItem = null;
|
|
210
|
-
// break;
|
|
211
|
-
// }
|
|
212
|
-
// setResizeItem(newResizeItem);
|
|
213
|
-
// };
|
|
214
|
-
// return [resizeItem, setResizeItem, handleDragItemAction];
|
|
215
|
-
return [];
|
|
319
|
+
this.currentResizeItem = newResizeItem;
|
|
320
|
+
this.$emit('resizeitemchange', newResizeItem);
|
|
216
321
|
};
|
|
@@ -8,7 +8,7 @@ exports.packageMetadata = {
|
|
|
8
8
|
name: '@progress/kendo-vue-scheduler',
|
|
9
9
|
productName: 'Kendo UI for Vue',
|
|
10
10
|
productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],
|
|
11
|
-
publishDate:
|
|
11
|
+
publishDate: 1651491665,
|
|
12
12
|
version: '',
|
|
13
13
|
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'
|
|
14
14
|
};
|