@progress/kendo-vue-scheduler 3.2.10 → 3.3.0-dev.202205091534

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 (38) hide show
  1. package/dist/cdn/js/kendo-vue-scheduler.js +2 -2
  2. package/dist/es/Scheduler.js +11 -9
  3. package/dist/es/components/SchedulerForm.d.ts +1 -0
  4. package/dist/es/components/SchedulerForm.js +16 -2
  5. package/dist/es/components/SchedulerOccurrenceDialog.js +17 -1
  6. package/dist/es/components/SchedulerRemoveDialog.js +18 -2
  7. package/dist/es/editors/ZonedDateTime.js +5 -1
  8. package/dist/es/hooks/use-items-focus.d.ts +1 -0
  9. package/dist/es/hooks/use-items-focus.js +18 -1
  10. package/dist/es/items/SchedulerEditItem.js +39 -86
  11. package/dist/es/items/SchedulerItem.js +57 -73
  12. package/dist/es/package-metadata.js +1 -1
  13. package/dist/es/slots/SchedulerEditSlot.js +20 -8
  14. package/dist/es/slots/SchedulerViewSlot.js +2 -2
  15. package/dist/es/tasks/SchedulerEditTask.js +3 -2
  16. package/dist/es/utils/index.d.ts +8 -0
  17. package/dist/es/utils/index.js +32 -12
  18. package/dist/es/views/common/SchedulerDrag.js +39 -48
  19. package/dist/es/views/common/SchedulerResize.js +39 -42
  20. package/dist/npm/Scheduler.js +12 -9
  21. package/dist/npm/components/SchedulerForm.d.ts +1 -0
  22. package/dist/npm/components/SchedulerForm.js +15 -1
  23. package/dist/npm/components/SchedulerOccurrenceDialog.js +18 -1
  24. package/dist/npm/components/SchedulerRemoveDialog.js +19 -2
  25. package/dist/npm/editors/ZonedDateTime.js +5 -1
  26. package/dist/npm/hooks/use-items-focus.d.ts +1 -0
  27. package/dist/npm/hooks/use-items-focus.js +17 -0
  28. package/dist/npm/items/SchedulerEditItem.js +34 -81
  29. package/dist/npm/items/SchedulerItem.js +57 -73
  30. package/dist/npm/package-metadata.js +1 -1
  31. package/dist/npm/slots/SchedulerEditSlot.js +19 -6
  32. package/dist/npm/slots/SchedulerViewSlot.js +2 -2
  33. package/dist/npm/tasks/SchedulerEditTask.js +3 -2
  34. package/dist/npm/utils/index.d.ts +8 -0
  35. package/dist/npm/utils/index.js +33 -13
  36. package/dist/npm/views/common/SchedulerDrag.js +39 -48
  37. package/dist/npm/views/common/SchedulerResize.js +39 -42
  38. package/package.json +12 -12
@@ -49,6 +49,7 @@ import { validatePackage } from '@progress/kendo-vue-common';
49
49
  import { packageMetadata } from './package-metadata';
50
50
  import { AgendaView, MonthView, WeekView, WorkWeekView } from './main';
51
51
  import { TimelineView } from './views/time/TimelineView';
52
+ import { useEditable } from './hooks';
52
53
  var DEFAULT_DATE_FORMAT = '{0:D}';
53
54
  var DEFAULT_SHORT_DATE_FORMAT = '{0:d}';
54
55
  /**
@@ -142,6 +143,9 @@ var SchedulerVue2 = {
142
143
  },
143
144
  fields: function fields() {
144
145
  return getModelFields(this.$props.modelFields).fields;
146
+ },
147
+ currentEditable: function currentEditable() {
148
+ return useEditable(this.$props.editable);
145
149
  }
146
150
  },
147
151
  provide: function provide() {
@@ -174,8 +178,8 @@ var SchedulerVue2 = {
174
178
  date: currentDate,
175
179
  timezone: this.$props.timezone,
176
180
  numberOfDays: this.getViewPropValue(view, 'numberOfDays', activeViewName),
177
- workWeekStart: view.workWeekStart || this.intl.firstDay(),
178
- workWeekEnd: view.workWeekEnd || (this.intl.firstDay() + this.getViewPropValue(view, 'numberOfDays', activeViewName)) % 6
181
+ workWeekStart: this.getViewPropValue(view, 'workWeekStart', activeViewName) || this.intl.firstDay(),
182
+ workWeekEnd: this.getViewPropValue(view, 'workWeekEnd', activeViewName) || (this.intl.firstDay() + this.getViewPropValue(view, 'numberOfDays', activeViewName)) % 6
179
183
  });
180
184
  return {
181
185
  ks: {
@@ -197,9 +201,6 @@ var SchedulerVue2 = {
197
201
  }
198
202
  };
199
203
  },
200
- mounted: function mounted() {
201
- this.ks.scheduler = this.$el;
202
- },
203
204
  watch: {
204
205
  view: function view(newName) {
205
206
  this.updatePassedState(newName);
@@ -260,7 +261,8 @@ var SchedulerVue2 = {
260
261
  viewItem: viewItem,
261
262
  task: task,
262
263
  dateHeaderCell: dateHeaderCell,
263
- timeHeaderCell: timeHeaderCell
264
+ timeHeaderCell: timeHeaderCell,
265
+ editable: this.currentEditable
264
266
  });
265
267
 
266
268
  var headerRender;
@@ -554,12 +556,12 @@ var SchedulerVue2 = {
554
556
  this.$emit('viewchange', __assign(__assign({
555
557
  viewName: newView
556
558
  }, event), {
557
- target: this.ks.scheduler
559
+ target: this.ks.scheduler.$el
558
560
  }));
559
561
  },
560
562
  handleDateChange: function handleDateChange(newDate, event) {
561
563
  this.setDate(newDate, __assign(__assign({}, event), {
562
- target: this.ks.scheduler
564
+ target: this.ks.scheduler.$el
563
565
  }));
564
566
  },
565
567
  handleDatePickerChange: function handleDatePickerChange(event) {
@@ -568,7 +570,7 @@ var SchedulerVue2 = {
568
570
  }
569
571
 
570
572
  this.setDate(event.value, __assign(__assign({}, event), {
571
- target: this.ks.scheduler,
573
+ target: this.ks.scheduler.$el,
572
574
  nativeEvent: event.event
573
575
  }));
574
576
  },
@@ -40,6 +40,7 @@ export interface SchedulerFormHandle {
40
40
  * @hidden
41
41
  */
42
42
  export interface SchedulerFormState {
43
+ dialogId: string;
43
44
  }
44
45
  /**
45
46
  * @hidden
@@ -26,7 +26,7 @@ import { provideLocalizationService } from '@progress/kendo-vue-intl';
26
26
  import { SchedulerFormEditor } from '../editors/SchedulerFormEditor'; // import { useSchedulerFieldsContext } from '../context';
27
27
 
28
28
  import { messages, editorValidationRequired, editorValidationStart, editorValidationEnd, editorSave, editorCancel, editorTitle } from '../messages';
29
- import { getTemplate } from '@progress/kendo-vue-common'; // tslint:enable:max-line-length
29
+ import { getTemplate, guid } from '@progress/kendo-vue-common'; // tslint:enable:max-line-length
30
30
 
31
31
  var SchedulerFormVue2 = {
32
32
  name: 'KendoSchedulerForm',
@@ -53,6 +53,19 @@ var SchedulerFormVue2 = {
53
53
  default: null
54
54
  }
55
55
  },
56
+ created: function created() {
57
+ this.dialogId = guid();
58
+ },
59
+ mounted: function mounted() {
60
+ var that = this;
61
+ setTimeout(function () {
62
+ var dialogWrapper = document.getElementById(that.dialogId);
63
+
64
+ if (dialogWrapper) {
65
+ dialogWrapper.focus();
66
+ }
67
+ }, 10);
68
+ },
56
69
  // @ts-ignore
57
70
  setup: !gh ? undefined : function () {
58
71
  var v3 = !!gh;
@@ -119,7 +132,8 @@ var SchedulerFormVue2 = {
119
132
  var dialogProps = __assign({
120
133
  title: editorTitleMessage,
121
134
  appendTo: 'body',
122
- minWidth: 600
135
+ minWidth: 600,
136
+ wrapperId: this.dialogId
123
137
  }, this.ks.dialogProps);
124
138
 
125
139
  var formProps = __assign({
@@ -6,6 +6,7 @@ var inject = allVue.inject;
6
6
  import { Dialog, DialogActionsBar } from '@progress/kendo-vue-dialogs';
7
7
  import { provideLocalizationService } from '@progress/kendo-vue-intl';
8
8
  import { messages, editorOccurrence, editorSeries, editorRecurringConfirmation, editorRecurringDialogTitle, deleteOccurrence, deleteSeries, deleteRecurringDialogTitle, deleteRecurringConfirmation } from '../messages';
9
+ import { guid } from '@progress/kendo-vue-common';
9
10
  import { Button } from '@progress/kendo-vue-buttons'; // tslint:enable:max-line-length
10
11
 
11
12
  var SchedulerOccurrenceDialogVue2 = {
@@ -19,6 +20,19 @@ var SchedulerOccurrenceDialogVue2 = {
19
20
  default: null
20
21
  }
21
22
  },
23
+ created: function created() {
24
+ this.dialogId = guid();
25
+ },
26
+ mounted: function mounted() {
27
+ var that = this;
28
+ setTimeout(function () {
29
+ var dialogWrapper = document.getElementById(that.dialogId);
30
+
31
+ if (dialogWrapper) {
32
+ dialogWrapper.focus();
33
+ }
34
+ }, 10);
35
+ },
22
36
  // @ts-ignore
23
37
  setup: !gh ? undefined : function () {
24
38
  var v3 = !!gh;
@@ -57,9 +71,11 @@ var SchedulerOccurrenceDialogVue2 = {
57
71
  title: titleMessage,
58
72
  attrs: this.v3 ? undefined : {
59
73
  title: titleMessage,
60
- appendTo: 'body'
74
+ appendTo: 'body',
75
+ wrapperId: this.dialogId
61
76
  },
62
77
  appendTo: 'body',
78
+ wrapperId: this.dialogId,
63
79
  onClose: this.handleClose,
64
80
  on: this.v3 ? undefined : {
65
81
  "close": this.handleClose
@@ -6,7 +6,8 @@ var inject = allVue.inject;
6
6
  import { DialogActionsBar, Dialog } from '@progress/kendo-vue-dialogs';
7
7
  import { provideLocalizationService } from '@progress/kendo-vue-intl';
8
8
  import { messages, editorCancel, deleteConfirmation, editorDelete, deleteDialogTitle } from '../messages';
9
- import { Button } from '@progress/kendo-vue-buttons'; // tslint:enable:max-line-length
9
+ import { Button } from '@progress/kendo-vue-buttons';
10
+ import { guid } from '@progress/kendo-vue-common'; // tslint:enable:max-line-length
10
11
 
11
12
  var SchedulerRemoveDialogVue2 = {
12
13
  name: 'KendoSchedulerRemoveDialog',
@@ -18,6 +19,19 @@ var SchedulerRemoveDialogVue2 = {
18
19
  default: null
19
20
  }
20
21
  },
22
+ created: function created() {
23
+ this.dialogId = guid();
24
+ },
25
+ mounted: function mounted() {
26
+ var that = this;
27
+ setTimeout(function () {
28
+ var dialogWrapper = document.getElementById(that.dialogId);
29
+
30
+ if (dialogWrapper) {
31
+ dialogWrapper.focus();
32
+ }
33
+ }, 10);
34
+ },
21
35
  // @ts-ignore
22
36
  setup: !gh ? undefined : function () {
23
37
  var v3 = !!gh;
@@ -42,9 +56,11 @@ var SchedulerRemoveDialogVue2 = {
42
56
  title: deleteDialogTitleMessage,
43
57
  attrs: this.v3 ? undefined : {
44
58
  title: deleteDialogTitleMessage,
45
- appendTo: 'body'
59
+ appendTo: 'body',
60
+ wrapperId: this.dialogId
46
61
  },
47
62
  appendTo: 'body',
63
+ wrapperId: this.dialogId,
48
64
  onClose: this.handleClose,
49
65
  on: this.v3 ? undefined : {
50
66
  "close": this.handleClose
@@ -37,6 +37,10 @@ import { ZonedDate, toLocalDate } from '@progress/kendo-date-math'; // tslint:en
37
37
 
38
38
  var ZonedDateTimeVue2 = {
39
39
  name: 'KendoZonedDateTime',
40
+ // @ts-ignore
41
+ emits: {
42
+ change: null
43
+ },
40
44
  props: __assign(__assign({}, DateTimePicker.props), {
41
45
  value: [String, Date],
42
46
  isAllDay: Boolean,
@@ -65,7 +69,7 @@ var ZonedDateTimeVue2 = {
65
69
  var timezone = this.ks.timezone;
66
70
 
67
71
  var dtpProps = __assign(__assign({}, other), {
68
- format: this.isAllDay ? 'd' : 'M/dd/yyyy HH:mm',
72
+ format: this.isAllDay ? 'd' : 'g',
69
73
  value: this.readDateAsLocal(other.value, timezone)
70
74
  });
71
75
 
@@ -7,6 +7,7 @@ import { BaseViewAll } from '../components/BaseView';
7
7
  * - `ITEMS_FOCUS_PREV`
8
8
  */
9
9
  export declare enum ITEMS_FOCUS_ACTION {
10
+ current = "ITEMS_FOCUS_CURRENT",
10
11
  next = "ITEMS_FOCUS_NEXT",
11
12
  prev = "ITEMS_FOCUS_PREV"
12
13
  }
@@ -1,4 +1,4 @@
1
- import { findNextItem } from '../utils';
1
+ import { findCurrentItem, findNextItem } from '../utils';
2
2
  /**
3
3
  * Represents the available `action` types for the `SchedulerItemsFocusAction` objects.
4
4
  *
@@ -10,6 +10,7 @@ import { findNextItem } from '../utils';
10
10
  export var ITEMS_FOCUS_ACTION;
11
11
 
12
12
  (function (ITEMS_FOCUS_ACTION) {
13
+ ITEMS_FOCUS_ACTION["current"] = "ITEMS_FOCUS_CURRENT";
13
14
  ITEMS_FOCUS_ACTION["next"] = "ITEMS_FOCUS_NEXT";
14
15
  ITEMS_FOCUS_ACTION["prev"] = "ITEMS_FOCUS_PREV";
15
16
  })(ITEMS_FOCUS_ACTION || (ITEMS_FOCUS_ACTION = {}));
@@ -18,6 +19,22 @@ export var ITEMS_FOCUS_ACTION;
18
19
 
19
20
  export var dispatchFocusedItems = function dispatchFocusedItems(action, event) {
20
21
  switch (action.type) {
22
+ case ITEMS_FOCUS_ACTION.current:
23
+ {
24
+ if (!action.item || !this.bv.items) {
25
+ return;
26
+ }
27
+
28
+ var next = findCurrentItem(action.item, this.bv.items, action.ignoreIsAllDay);
29
+
30
+ if (next && next.element) {
31
+ event.preventDefault();
32
+ next.element.focus();
33
+ }
34
+
35
+ break;
36
+ }
37
+
21
38
  case ITEMS_FOCUS_ACTION.next:
22
39
  {
23
40
  if (!action.item || !this.bv.items) {
@@ -22,16 +22,16 @@ var inject = allVue.inject;
22
22
  import { DATA_ACTION } from '../Scheduler';
23
23
  import { clone, Keys, getDefaultSlots, getTemplate } from '@progress/kendo-vue-common';
24
24
  import { SchedulerViewItem } from './SchedulerViewItem';
25
- import { ITEMS_FOCUS_ACTION, SLOTS_FOCUS_ACTION, useEditable } from '../hooks';
25
+ import { ITEMS_FOCUS_ACTION, SLOTS_FOCUS_ACTION } from '../hooks';
26
26
  import { FORM_ITEM_ACTION } from './hooks/use-form-item';
27
- import { showOccurrenceDialogReducer, SHOW_OCCURRENCE_DIALOG_ACTION, useShowOccurrenceDialog } from './hooks/use-show-occurrence-dialog';
27
+ import { showOccurrenceDialogReducer, SHOW_OCCURRENCE_DIALOG_ACTION } from './hooks/use-show-occurrence-dialog';
28
28
  import { REMOVE_ITEM_ACTION } from './hooks/use-remove-item';
29
- import { showRemoveDialogReducer, SHOW_REMOVE_DIALOG_ACTION, useShowRemoveDialog } from './hooks/use-show-remove-item-dialog';
29
+ import { showRemoveDialogReducer, SHOW_REMOVE_DIALOG_ACTION } from './hooks/use-show-remove-item-dialog';
30
30
  import { DRAG_ITEM_ACTION, useDragItem } from './hooks/use-drag-item';
31
31
  import { RESIZE_ITEM_ACTION, useResizeItem } from './hooks/use-resize-item';
32
- import { seriesReducer, SERIES_ACTION, useSeries } from './hooks/use-series';
32
+ import { seriesReducer, SERIES_ACTION } from './hooks/use-series';
33
33
  import { ITEMS_SELECT_ACTION } from '../hooks/use-items-selection';
34
- import { compareItems, findMaster } from '../utils'; // tslint:enable:max-line-length
34
+ import { compareItems, compareSlots, findMaster } from '../utils'; // tslint:enable:max-line-length
35
35
 
36
36
  var SchedulerEditItemVue2 = {
37
37
  name: 'KendoSchedulerEditItem',
@@ -196,77 +196,6 @@ var SchedulerEditItemVue2 = {
196
196
  var h = gh || createElement;
197
197
  var defaultSlot = getDefaultSlots(this); // tslint:enable:max-line-length
198
198
 
199
- var _a = this.$props,
200
- onDataaction = _a.onDataaction,
201
- ignoreIsAllDay = _a.ignoreIsAllDay,
202
- propViewItem = _a.viewItem,
203
- propSeries = _a.series,
204
- onSeriesChange = _a.onSeriesChange,
205
- propForm = _a.form,
206
- propFormItem = _a.formItem,
207
- onFormItemChange = _a.onFormItemChange,
208
- propDrag = _a.drag,
209
- propDragItem = _a.dragItem,
210
- onDragItemChange = _a.onDragItemChange,
211
- propResize = _a.resize,
212
- propResizeItem = _a.resizeItem,
213
- onResizeItemChange = _a.onResizeItemChange,
214
- propRemoveDialog = _a.removeDialog,
215
- propRemoveItem = _a.removeItem,
216
- onRemoveItemChange = _a.onRemoveItemChange,
217
- propOccurrenceDialog = _a.occurrenceDialog,
218
- propShowOccurrenceDialog = _a.showOccurrenceDialog,
219
- onShowOccurrenceDialogChange = _a.onShowOccurrenceDialogChange,
220
- propShowRemoveDialog = _a.showRemoveDialog,
221
- onShowRemoveDialogChange = _a.onShowRemoveDialogChange; // const editItem = React.useRef<SchedulerEditItemHandle>(null);
222
- // const item = React.useRef<SchedulerItemHandle>(null);
223
-
224
- var ViewItem = propViewItem;
225
- var Drag = propDrag;
226
- var Resize = propResize;
227
- var Form = propForm;
228
- var OccurrenceDialog = propOccurrenceDialog;
229
- var RemoveDialog = propRemoveDialog;
230
- var editable = useEditable(this.$props.editable); // const [selectedItems, dispatchItemSelection] = useSchedulerViewSelectedItemsContext();
231
-
232
- var _b = useSeries(null, propSeries, onSeriesChange),
233
- series = _b[0],
234
- dispatchSeries = _b[1]; // const [formItem, setFormItem, dispatchFormItem] = useFormItem(
235
- // { series, onDataaction},
236
- // [null, propFormItem, onFormItemChange]
237
- // );
238
- // const [dragItem, setDragItem, dispatchDragItem] = useDragItem(
239
- // {
240
- // dataItem: this.$props.dataItem,
241
- // ignoreIsAllDay: this.$props.ignoreIsAllDay,
242
- // isAllDay: this.$props.isAllDay,
243
- // onDataaction },
244
- // [null, propDragItem, onDragItemChange]
245
- // );
246
- // const [resizeItem, setResizeItem, dispatchResizeItem] = useResizeItem(
247
- // { dataItem: this.$props.dataItem, onDataaction },
248
- // [null, propResizeItem, onResizeItemChange]
249
- // );
250
- // const [removeItem, setRemoveItem, dispatchRemoveItem] = useRemoveItem(
251
- // { series, onDataaction},
252
- // [null, propRemoveItem, onRemoveItemChange]
253
- // );
254
-
255
-
256
- var _c = useShowRemoveDialog(false, propShowRemoveDialog, onShowRemoveDialogChange),
257
- showRemoveDialog = _c[0],
258
- setShowRemoveDialog = _c[1],
259
- dispatchShowRemoveDialog = _c[2];
260
-
261
- var _d = useShowOccurrenceDialog(false, propShowOccurrenceDialog, onShowOccurrenceDialogChange),
262
- showOccurrenceDialog = _d[0],
263
- setShowOccurrenceDialog = _d[1],
264
- dispatchShowOccurrenceDialog = _d[2];
265
-
266
- var items = this.bv.items; // useSchedulerViewItemsContext();
267
- // const [,dispatchViewItemsFocus] = useSchedulerViewFocusedItemsContext();
268
- // const [,dispatchViewSlotsFocus] = useSchedulerViewFocusedSlotsContext();
269
-
270
199
  var selected = Boolean(this.bv.selectedItems && this.bv.selectedItems.some(function (si) {
271
200
  return compareItems(si, _this, _this.ignoreIsAllDay);
272
201
  }));
@@ -314,8 +243,7 @@ var SchedulerEditItemVue2 = {
314
243
  formItem: this.compFormItem,
315
244
  dragItem: this.compDragItem,
316
245
  resizeItem: this.compResizeItem,
317
- removeItem: this.compRemoveItem // refTo={this}
318
- ,
246
+ removeItem: this.compRemoveItem,
319
247
  itemRef: this.item,
320
248
  selected: selected,
321
249
  tabIndex: this.currentTabIndex // Keyboard
@@ -1084,6 +1012,8 @@ var SchedulerEditItemVue2 = {
1084
1012
  }
1085
1013
  },
1086
1014
  onKeyDownAction: function onKeyDownAction(event, props) {
1015
+ var nextSlot;
1016
+
1087
1017
  switch (event.event.keyCode) {
1088
1018
  case Keys.enter:
1089
1019
  return [{
@@ -1103,27 +1033,50 @@ var SchedulerEditItemVue2 = {
1103
1033
  }];
1104
1034
 
1105
1035
  case Keys.up:
1106
- return [Boolean(props.slots.length && props.slots[0].refTo.current) && {
1036
+ nextSlot = this.bv.slots.find(function (s) {
1037
+ return compareSlots(s, props.slots[0]);
1038
+ });
1039
+ return [Boolean(props.slots.length && nextSlot) && {
1107
1040
  type: SLOTS_FOCUS_ACTION.up,
1108
- slot: props.slots[0].refTo
1041
+ slot: nextSlot
1109
1042
  }];
1110
1043
 
1111
1044
  case Keys.right:
1112
- return [Boolean(props.slots.length && props.slots[0].refTo.current) && {
1045
+ nextSlot = this.bv.slots.find(function (s) {
1046
+ return compareSlots(s, props.slots[0]);
1047
+ });
1048
+ return [Boolean(props.slots.length && nextSlot) && {
1113
1049
  type: SLOTS_FOCUS_ACTION.right,
1114
- slot: props.slots[0].refTo
1050
+ slot: nextSlot
1115
1051
  }];
1116
1052
 
1117
1053
  case Keys.down:
1118
- return [Boolean(props.slots.length && props.slots[props.slots.length - 1].refTo.current) && {
1054
+ nextSlot = this.bv.slots.find(function (s) {
1055
+ return compareSlots(s, props.slots[props.slots.length - 1]);
1056
+ });
1057
+ return [Boolean(props.slots.length && nextSlot) && {
1119
1058
  type: SLOTS_FOCUS_ACTION.down,
1120
- slot: props.slots[props.slots.length - 1].refTo
1059
+ slot: nextSlot
1121
1060
  }];
1122
1061
 
1123
1062
  case Keys.left:
1124
- return [Boolean(props.slots.length && props.slots[0].refTo.current) && {
1063
+ nextSlot = this.bv.slots.find(function (s) {
1064
+ return compareSlots(s, props.slots[0]);
1065
+ });
1066
+ return [Boolean(props.slots.length && nextSlot) && {
1125
1067
  type: SLOTS_FOCUS_ACTION.left,
1126
- slot: props.slots[0].refTo
1068
+ slot: nextSlot
1069
+ }];
1070
+
1071
+ case Keys.delete:
1072
+ case Keys.backspace:
1073
+ return [{
1074
+ type: REMOVE_ITEM_ACTION.set,
1075
+ payload: props.dataItem
1076
+ }, props.isRecurring ? {
1077
+ type: SHOW_OCCURRENCE_DIALOG_ACTION.open
1078
+ } : {
1079
+ type: SHOW_REMOVE_DIALOG_ACTION.open
1127
1080
  }];
1128
1081
 
1129
1082
  default: