@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.
Files changed (62) hide show
  1. package/dist/cdn/js/kendo-vue-scheduler.js +2 -2
  2. package/dist/es/components/BaseView.js +14 -12
  3. package/dist/es/components/header/view-selector/ViewSelectorList.js +9 -7
  4. package/dist/es/hooks/use-items-focus.js +8 -8
  5. package/dist/es/hooks/use-items-selection.js +11 -11
  6. package/dist/es/hooks/use-slots-focus.js +20 -20
  7. package/dist/es/hooks/use-slots-selection.js +4 -4
  8. package/dist/es/hooks/useSlotExpand.js +1 -1
  9. package/dist/es/items/SchedulerEditItem.d.ts +1 -1
  10. package/dist/es/items/SchedulerEditItem.js +145 -119
  11. package/dist/es/items/SchedulerItem.d.ts +1 -0
  12. package/dist/es/items/SchedulerItem.js +408 -167
  13. package/dist/es/items/SchedulerViewItem.d.ts +1 -0
  14. package/dist/es/items/SchedulerViewItem.js +17 -17
  15. package/dist/es/items/hooks/use-drag-item.js +5 -3
  16. package/dist/es/items/hooks/use-resize-item.d.ts +2 -4
  17. package/dist/es/items/hooks/use-resize-item.js +278 -176
  18. package/dist/es/models/SchedulerView.d.ts +2 -0
  19. package/dist/es/package-metadata.js +1 -1
  20. package/dist/es/slots/SchedulerEditSlot.js +21 -16
  21. package/dist/es/slots/SchedulerSlot.js +20 -1
  22. package/dist/es/slots/SchedulerViewSlot.js +30 -5
  23. package/dist/es/utils/index.d.ts +4 -0
  24. package/dist/es/utils/index.js +23 -14
  25. package/dist/es/views/common/SchedulerDrag.js +1 -0
  26. package/dist/es/views/common/SchedulerResize.js +69 -21
  27. package/dist/es/views/common/VerticalResourceIterator.js +2 -2
  28. package/dist/es/views/day/DayView.js +2 -1
  29. package/dist/es/views/day/MultiDayView.d.ts +4 -0
  30. package/dist/es/views/day/MultiDayView.js +86 -15
  31. package/dist/es/views/week/WeekView.js +2 -1
  32. package/dist/npm/components/BaseView.js +14 -12
  33. package/dist/npm/components/header/view-selector/ViewSelectorList.js +9 -7
  34. package/dist/npm/hooks/use-items-focus.js +8 -8
  35. package/dist/npm/hooks/use-items-selection.js +11 -11
  36. package/dist/npm/hooks/use-slots-focus.js +20 -20
  37. package/dist/npm/hooks/use-slots-selection.js +4 -4
  38. package/dist/npm/hooks/useSlotExpand.js +1 -1
  39. package/dist/npm/items/SchedulerEditItem.d.ts +1 -1
  40. package/dist/npm/items/SchedulerEditItem.js +144 -118
  41. package/dist/npm/items/SchedulerItem.d.ts +1 -0
  42. package/dist/npm/items/SchedulerItem.js +407 -166
  43. package/dist/npm/items/SchedulerViewItem.d.ts +1 -0
  44. package/dist/npm/items/SchedulerViewItem.js +17 -17
  45. package/dist/npm/items/hooks/use-drag-item.js +5 -3
  46. package/dist/npm/items/hooks/use-resize-item.d.ts +2 -4
  47. package/dist/npm/items/hooks/use-resize-item.js +281 -176
  48. package/dist/npm/models/SchedulerView.d.ts +2 -0
  49. package/dist/npm/package-metadata.js +1 -1
  50. package/dist/npm/slots/SchedulerEditSlot.js +20 -15
  51. package/dist/npm/slots/SchedulerSlot.js +20 -1
  52. package/dist/npm/slots/SchedulerViewSlot.js +30 -5
  53. package/dist/npm/utils/index.d.ts +4 -0
  54. package/dist/npm/utils/index.js +24 -15
  55. package/dist/npm/views/common/SchedulerDrag.js +1 -0
  56. package/dist/npm/views/common/SchedulerResize.js +69 -21
  57. package/dist/npm/views/common/VerticalResourceIterator.js +2 -2
  58. package/dist/npm/views/day/DayView.js +2 -1
  59. package/dist/npm/views/day/MultiDayView.d.ts +4 -0
  60. package/dist/npm/views/day/MultiDayView.js +87 -15
  61. package/dist/npm/views/week/WeekView.js +2 -1
  62. package/package.json +12 -12
@@ -30,6 +30,7 @@ export interface SchedulerViewItemHandle {
30
30
  * @hidden
31
31
  */
32
32
  export interface SchedulerViewItemState {
33
+ element: any;
33
34
  }
34
35
  /**
35
36
  * @hidden
@@ -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.style) // Keyboard
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
- "resizeselease": this.handleResizeRelease
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
- onResizeselease: this.handleResizeRelease
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
- resizeselease: this.handleResizeRelease
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
- var element = this.$el.nodeType === 8 ? this.$el.parentElement : this.$el;
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
- var element = this.$el.nodeType === 8 ? this.$el.parentElement : this.$el;
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 currentSlot = slot.sort(function (a, b) {
552
+ var currentItem = slot.sort(function (a, b) {
553
553
  return a.$props.order - b.$props.order;
554
554
  });
555
- currentSlot.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.$el !== element) {
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.$el);
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 (this.compDragItem) {
204
+ if (currentDataItem) {
204
205
  this.$emit('dataaction', {
205
206
  type: main_1.DATA_ACTION.update,
206
207
  series: false,
207
- dataItem: this.compDragItem
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 (this.compDragItem) {
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: (_config: {
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
- exports.useResizeItem = function (_config, _state) {
41
- // const oldSlot = React.useRef<HTMLElement | null>(null);
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
  };
@@ -67,6 +67,8 @@ export interface SchedulerViewProps {
67
67
  workWeekStart?: Day;
68
68
  /** @hidden */
69
69
  workWeekEnd?: Day;
70
+ /** @hidden */
71
+ format?: string;
70
72
  }
71
73
  /**
72
74
  * Represents a single Scheduler view.
@@ -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: 1650978689,
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
  };