@progress/kendo-vue-scheduler 3.2.9 → 3.3.0-dev.202205080814

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.
@@ -174,8 +174,8 @@ var SchedulerVue2 = {
174
174
  date: currentDate,
175
175
  timezone: this.$props.timezone,
176
176
  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
177
+ workWeekStart: this.getViewPropValue(view, 'workWeekStart', activeViewName) || this.intl.firstDay(),
178
+ workWeekEnd: this.getViewPropValue(view, 'workWeekEnd', activeViewName) || (this.intl.firstDay() + this.getViewPropValue(view, 'numberOfDays', activeViewName)) % 6
179
179
  });
180
180
  return {
181
181
  ks: {
@@ -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
@@ -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) {
@@ -31,7 +31,7 @@ import { DRAG_ITEM_ACTION, useDragItem } from './hooks/use-drag-item';
31
31
  import { RESIZE_ITEM_ACTION, useResizeItem } from './hooks/use-resize-item';
32
32
  import { seriesReducer, SERIES_ACTION, useSeries } 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',
@@ -1084,6 +1084,8 @@ var SchedulerEditItemVue2 = {
1084
1084
  }
1085
1085
  },
1086
1086
  onKeyDownAction: function onKeyDownAction(event, props) {
1087
+ var nextSlot;
1088
+
1087
1089
  switch (event.event.keyCode) {
1088
1090
  case Keys.enter:
1089
1091
  return [{
@@ -1103,27 +1105,50 @@ var SchedulerEditItemVue2 = {
1103
1105
  }];
1104
1106
 
1105
1107
  case Keys.up:
1106
- return [Boolean(props.slots.length && props.slots[0].refTo.current) && {
1108
+ nextSlot = this.bv.slots.find(function (s) {
1109
+ return compareSlots(s, props.slots[0]);
1110
+ });
1111
+ return [Boolean(props.slots.length && nextSlot) && {
1107
1112
  type: SLOTS_FOCUS_ACTION.up,
1108
- slot: props.slots[0].refTo
1113
+ slot: nextSlot
1109
1114
  }];
1110
1115
 
1111
1116
  case Keys.right:
1112
- return [Boolean(props.slots.length && props.slots[0].refTo.current) && {
1117
+ nextSlot = this.bv.slots.find(function (s) {
1118
+ return compareSlots(s, props.slots[0]);
1119
+ });
1120
+ return [Boolean(props.slots.length && nextSlot) && {
1113
1121
  type: SLOTS_FOCUS_ACTION.right,
1114
- slot: props.slots[0].refTo
1122
+ slot: nextSlot
1115
1123
  }];
1116
1124
 
1117
1125
  case Keys.down:
1118
- return [Boolean(props.slots.length && props.slots[props.slots.length - 1].refTo.current) && {
1126
+ nextSlot = this.bv.slots.find(function (s) {
1127
+ return compareSlots(s, props.slots[props.slots.length - 1]);
1128
+ });
1129
+ return [Boolean(props.slots.length && nextSlot) && {
1119
1130
  type: SLOTS_FOCUS_ACTION.down,
1120
- slot: props.slots[props.slots.length - 1].refTo
1131
+ slot: nextSlot
1121
1132
  }];
1122
1133
 
1123
1134
  case Keys.left:
1124
- return [Boolean(props.slots.length && props.slots[0].refTo.current) && {
1135
+ nextSlot = this.bv.slots.find(function (s) {
1136
+ return compareSlots(s, props.slots[0]);
1137
+ });
1138
+ return [Boolean(props.slots.length && nextSlot) && {
1125
1139
  type: SLOTS_FOCUS_ACTION.left,
1126
- slot: props.slots[0].refTo
1140
+ slot: nextSlot
1141
+ }];
1142
+
1143
+ case Keys.delete:
1144
+ case Keys.backspace:
1145
+ return [{
1146
+ type: REMOVE_ITEM_ACTION.set,
1147
+ payload: props.dataItem
1148
+ }, props.isRecurring ? {
1149
+ type: SHOW_OCCURRENCE_DIALOG_ACTION.open
1150
+ } : {
1151
+ type: SHOW_REMOVE_DIALOG_ACTION.open
1127
1152
  }];
1128
1153
 
1129
1154
  default:
@@ -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: 1651757342,
8
+ publishDate: 1651997436,
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
  };
@@ -5,10 +5,11 @@ var gh = allVue.h;
5
5
  var inject = allVue.inject;
6
6
  import { getDefaultSlots, getTemplate, Keys } from '@progress/kendo-vue-common';
7
7
  import { DATA_ACTION } from '../Scheduler';
8
- import { setField, getField, findFirstItem, isGroupped, compareSlots, findNextItem } from '../utils';
8
+ import { setField, getField, findFirstItem, isGroupped, compareSlots, findCurrentItem, getSortedSlots } from '../utils';
9
9
  import { SchedulerViewSlot } from './SchedulerViewSlot';
10
- import { SLOTS_FOCUS_ACTION, useEditable } from '../hooks';
11
- import { SLOTS_SELECT_ACTION } from '../hooks/use-slots-selection'; // tslint:enable:max-line-length
10
+ import { ITEMS_FOCUS_ACTION, SLOTS_FOCUS_ACTION, useEditable } from '../hooks';
11
+ import { SLOTS_SELECT_ACTION } from '../hooks/use-slots-selection';
12
+ import { ITEMS_SELECT_ACTION } from '../main'; // tslint:enable:max-line-length
12
13
 
13
14
  var SchedulerEditSlotVue2 = {
14
15
  name: 'KendoSchedulerEditSlot',
@@ -65,6 +66,12 @@ var SchedulerEditSlotVue2 = {
65
66
  ks: {
66
67
  default: null
67
68
  },
69
+ dispatchSelectedItems: {
70
+ default: null
71
+ },
72
+ dispatchFocusedItems: {
73
+ default: null
74
+ },
68
75
  dispatchFocusedSlots: {
69
76
  default: null
70
77
  },
@@ -309,7 +316,16 @@ var SchedulerEditSlotVue2 = {
309
316
  break;
310
317
 
311
318
  case Keys.tab:
312
- nextItem = findNextItem(findFirstItem(event.target), this.bv.items, false);
319
+ var fi = findFirstItem(event.target);
320
+ nextItem = fi ? findCurrentItem(fi, this.bv.items, false) : getSortedSlots(this.bv.items, this.ignoreIsAllDay)[0];
321
+ this.dispatchFocusedItems({
322
+ type: ITEMS_FOCUS_ACTION.current,
323
+ item: nextItem
324
+ }, event.event);
325
+ this.dispatchSelectedItems({
326
+ type: ITEMS_SELECT_ACTION.select,
327
+ item: nextItem
328
+ }, event);
313
329
  break;
314
330
 
315
331
  default:
@@ -318,10 +334,6 @@ var SchedulerEditSlotVue2 = {
318
334
 
319
335
  if (nextItem) {
320
336
  event.event.preventDefault();
321
-
322
- if (nextItem.element) {
323
- nextItem.element.focus();
324
- }
325
337
  }
326
338
  },
327
339
  handleEditFormSubmit: function handleEditFormSubmit(event) {
@@ -166,9 +166,17 @@ export declare const noop: (..._args: any) => void;
166
166
  export declare const findFirstItem: (current: any) => SchedulerItemHandle | null;
167
167
  /** @hidden */
168
168
  export declare const compareItems: (f: any, s: any, ignoreIsAllDay?: boolean) => boolean;
169
+ export declare const getSortedSlots: (all: any[], ignoreIsAllDay: boolean) => any[];
169
170
  /** @hidden */
170
171
  export declare const compareSlots: (f: any, s: any) => boolean;
171
172
  /** @hidden */
173
+ export declare const getCurrentItemIndex: (ref: any, all: any, ignoreIsAllDay?: boolean | undefined) => {
174
+ currentIndex: number;
175
+ sorted: any[];
176
+ };
177
+ /** @hidden */
178
+ export declare const findCurrentItem: (ref: any, all: any, ignoreIsAllDay?: boolean | undefined) => any;
179
+ /** @hidden */
172
180
  export declare const findNextItem: (ref: any, all: any, ignoreIsAllDay?: boolean | undefined, backwards?: boolean) => any;
173
181
  /**
174
182
  * @hidden
@@ -535,6 +535,16 @@ export var compareItems = function (f, s, ignoreIsAllDay) { return Boolean(f.uid
535
535
  && (f.group.index === s.group.index)
536
536
  && (f.range.index === s.range.index)
537
537
  && (ignoreIsAllDay || f.isAllDay === s.isAllDay)); };
538
+ export var getSortedSlots = function (all, ignoreIsAllDay) {
539
+ var filtered = all.filter(function (i) { return i.element !== null; });
540
+ var sorted = orderBy(filtered, [
541
+ { field: 'group.index', dir: 'asc' },
542
+ { field: 'range.index', dir: 'asc' },
543
+ (ignoreIsAllDay ? { field: '' } : { field: 'isAllDay', dir: 'desc' }),
544
+ { field: 'start', dir: 'asc' }
545
+ ]);
546
+ return sorted;
547
+ };
538
548
  /** @hidden */
539
549
  export var compareSlots = function (f, s) { return Boolean(f.start.getTime() === s.start.getTime()
540
550
  && f.end.getTime() === s.end.getTime()
@@ -543,22 +553,32 @@ export var compareSlots = function (f, s) { return Boolean(f.start.getTime() ===
543
553
  && f.range.index === s.range.index
544
554
  && f.isAllDay === s.isAllDay); };
545
555
  /** @hidden */
546
- export var findNextItem = function (ref, all, ignoreIsAllDay, backwards) {
556
+ export var getCurrentItemIndex = function (ref, all, ignoreIsAllDay) {
547
557
  if (ignoreIsAllDay === void 0) { ignoreIsAllDay = false; }
548
- if (backwards === void 0) { backwards = false; }
549
558
  var current = ref;
550
- if (!current || !all) {
551
- return null;
552
- }
553
- var filtered = all.filter(function (i) { return i.element !== null; });
554
- var sorted = orderBy(filtered, [
555
- { field: 'group.index', dir: 'asc' },
556
- { field: 'range.index', dir: 'asc' },
557
- (ignoreIsAllDay ? { field: '' } : { field: 'isAllDay', dir: 'desc' }),
558
- { field: 'start', dir: 'asc' }
559
- ]);
559
+ var sorted = getSortedSlots(all, ignoreIsAllDay);
560
560
  var currentIndex = sorted
561
561
  .findIndex(function (i) { return compareItems(i, current, ignoreIsAllDay); });
562
+ return {
563
+ currentIndex: currentIndex,
564
+ sorted: sorted
565
+ };
566
+ };
567
+ /** @hidden */
568
+ export var findCurrentItem = function (ref, all, ignoreIsAllDay) {
569
+ if (ignoreIsAllDay === void 0) { ignoreIsAllDay = false; }
570
+ if (!ref || !all) {
571
+ return null;
572
+ }
573
+ var _a = getCurrentItemIndex(ref, all, ignoreIsAllDay) || {}, currentIndex = _a.currentIndex, sorted = _a.sorted;
574
+ var next = sorted[currentIndex];
575
+ return next;
576
+ };
577
+ /** @hidden */
578
+ export var findNextItem = function (ref, all, ignoreIsAllDay, backwards) {
579
+ if (ignoreIsAllDay === void 0) { ignoreIsAllDay = false; }
580
+ if (backwards === void 0) { backwards = false; }
581
+ var _a = getCurrentItemIndex(ref, all, ignoreIsAllDay), currentIndex = _a.currentIndex, sorted = _a.sorted;
562
582
  var next = sorted[currentIndex + (backwards ? -1 : 1)];
563
583
  return next;
564
584
  };
@@ -198,8 +198,8 @@ var SchedulerVue2 = {
198
198
  date: currentDate,
199
199
  timezone: this.$props.timezone,
200
200
  numberOfDays: this.getViewPropValue(view, 'numberOfDays', activeViewName),
201
- workWeekStart: view.workWeekStart || this.intl.firstDay(),
202
- workWeekEnd: view.workWeekEnd || (this.intl.firstDay() + this.getViewPropValue(view, 'numberOfDays', activeViewName)) % 6
201
+ workWeekStart: this.getViewPropValue(view, 'workWeekStart', activeViewName) || this.intl.firstDay(),
202
+ workWeekEnd: this.getViewPropValue(view, 'workWeekEnd', activeViewName) || (this.intl.firstDay() + this.getViewPropValue(view, 'numberOfDays', activeViewName)) % 6
203
203
  });
204
204
  return {
205
205
  ks: {
@@ -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
@@ -68,6 +68,19 @@ var SchedulerFormVue2 = {
68
68
  default: null
69
69
  }
70
70
  },
71
+ created: function created() {
72
+ this.dialogId = kendo_vue_common_1.guid();
73
+ },
74
+ mounted: function mounted() {
75
+ var that = this;
76
+ setTimeout(function () {
77
+ var dialogWrapper = document.getElementById(that.dialogId);
78
+
79
+ if (dialogWrapper) {
80
+ dialogWrapper.focus();
81
+ }
82
+ }, 10);
83
+ },
71
84
  // @ts-ignore
72
85
  setup: !gh ? undefined : function () {
73
86
  var v3 = !!gh;
@@ -134,7 +147,8 @@ var SchedulerFormVue2 = {
134
147
  var dialogProps = __assign({
135
148
  title: editorTitleMessage,
136
149
  appendTo: 'body',
137
- minWidth: 600
150
+ minWidth: 600,
151
+ wrapperId: this.dialogId
138
152
  }, this.ks.dialogProps);
139
153
 
140
154
  var formProps = __assign({
@@ -17,6 +17,8 @@ var kendo_vue_intl_1 = require("@progress/kendo-vue-intl");
17
17
 
18
18
  var messages_1 = require("../messages");
19
19
 
20
+ var kendo_vue_common_1 = require("@progress/kendo-vue-common");
21
+
20
22
  var kendo_vue_buttons_1 = require("@progress/kendo-vue-buttons"); // tslint:enable:max-line-length
21
23
 
22
24
 
@@ -31,6 +33,19 @@ var SchedulerOccurrenceDialogVue2 = {
31
33
  default: null
32
34
  }
33
35
  },
36
+ created: function created() {
37
+ this.dialogId = kendo_vue_common_1.guid();
38
+ },
39
+ mounted: function mounted() {
40
+ var that = this;
41
+ setTimeout(function () {
42
+ var dialogWrapper = document.getElementById(that.dialogId);
43
+
44
+ if (dialogWrapper) {
45
+ dialogWrapper.focus();
46
+ }
47
+ }, 10);
48
+ },
34
49
  // @ts-ignore
35
50
  setup: !gh ? undefined : function () {
36
51
  var v3 = !!gh;
@@ -69,9 +84,11 @@ var SchedulerOccurrenceDialogVue2 = {
69
84
  title: titleMessage,
70
85
  attrs: this.v3 ? undefined : {
71
86
  title: titleMessage,
72
- appendTo: 'body'
87
+ appendTo: 'body',
88
+ wrapperId: this.dialogId
73
89
  },
74
90
  appendTo: 'body',
91
+ wrapperId: this.dialogId,
75
92
  onClose: this.handleClose,
76
93
  on: this.v3 ? undefined : {
77
94
  "close": this.handleClose
@@ -17,7 +17,9 @@ var kendo_vue_intl_1 = require("@progress/kendo-vue-intl");
17
17
 
18
18
  var messages_1 = require("../messages");
19
19
 
20
- var kendo_vue_buttons_1 = require("@progress/kendo-vue-buttons"); // tslint:enable:max-line-length
20
+ var kendo_vue_buttons_1 = require("@progress/kendo-vue-buttons");
21
+
22
+ var kendo_vue_common_1 = require("@progress/kendo-vue-common"); // tslint:enable:max-line-length
21
23
 
22
24
 
23
25
  var SchedulerRemoveDialogVue2 = {
@@ -30,6 +32,19 @@ var SchedulerRemoveDialogVue2 = {
30
32
  default: null
31
33
  }
32
34
  },
35
+ created: function created() {
36
+ this.dialogId = kendo_vue_common_1.guid();
37
+ },
38
+ mounted: function mounted() {
39
+ var that = this;
40
+ setTimeout(function () {
41
+ var dialogWrapper = document.getElementById(that.dialogId);
42
+
43
+ if (dialogWrapper) {
44
+ dialogWrapper.focus();
45
+ }
46
+ }, 10);
47
+ },
33
48
  // @ts-ignore
34
49
  setup: !gh ? undefined : function () {
35
50
  var v3 = !!gh;
@@ -54,9 +69,11 @@ var SchedulerRemoveDialogVue2 = {
54
69
  title: deleteDialogTitleMessage,
55
70
  attrs: this.v3 ? undefined : {
56
71
  title: deleteDialogTitleMessage,
57
- appendTo: 'body'
72
+ appendTo: 'body',
73
+ wrapperId: this.dialogId
58
74
  },
59
75
  appendTo: 'body',
76
+ wrapperId: this.dialogId,
60
77
  onClose: this.handleClose,
61
78
  on: this.v3 ? undefined : {
62
79
  "close": this.handleClose
@@ -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
  }
@@ -18,6 +18,7 @@ var utils_1 = require("../utils");
18
18
  var ITEMS_FOCUS_ACTION;
19
19
 
20
20
  (function (ITEMS_FOCUS_ACTION) {
21
+ ITEMS_FOCUS_ACTION["current"] = "ITEMS_FOCUS_CURRENT";
21
22
  ITEMS_FOCUS_ACTION["next"] = "ITEMS_FOCUS_NEXT";
22
23
  ITEMS_FOCUS_ACTION["prev"] = "ITEMS_FOCUS_PREV";
23
24
  })(ITEMS_FOCUS_ACTION = exports.ITEMS_FOCUS_ACTION || (exports.ITEMS_FOCUS_ACTION = {}));
@@ -26,6 +27,22 @@ var ITEMS_FOCUS_ACTION;
26
27
 
27
28
  exports.dispatchFocusedItems = function (action, event) {
28
29
  switch (action.type) {
30
+ case ITEMS_FOCUS_ACTION.current:
31
+ {
32
+ if (!action.item || !this.bv.items) {
33
+ return;
34
+ }
35
+
36
+ var next = utils_1.findCurrentItem(action.item, this.bv.items, action.ignoreIsAllDay);
37
+
38
+ if (next && next.element) {
39
+ event.preventDefault();
40
+ next.element.focus();
41
+ }
42
+
43
+ break;
44
+ }
45
+
29
46
  case ITEMS_FOCUS_ACTION.next:
30
47
  {
31
48
  if (!action.item || !this.bv.items) {
@@ -1105,6 +1105,8 @@ var SchedulerEditItemVue2 = {
1105
1105
  }
1106
1106
  },
1107
1107
  onKeyDownAction: function onKeyDownAction(event, props) {
1108
+ var nextSlot;
1109
+
1108
1110
  switch (event.event.keyCode) {
1109
1111
  case kendo_vue_common_1.Keys.enter:
1110
1112
  return [{
@@ -1124,27 +1126,50 @@ var SchedulerEditItemVue2 = {
1124
1126
  }];
1125
1127
 
1126
1128
  case kendo_vue_common_1.Keys.up:
1127
- return [Boolean(props.slots.length && props.slots[0].refTo.current) && {
1129
+ nextSlot = this.bv.slots.find(function (s) {
1130
+ return utils_1.compareSlots(s, props.slots[0]);
1131
+ });
1132
+ return [Boolean(props.slots.length && nextSlot) && {
1128
1133
  type: hooks_1.SLOTS_FOCUS_ACTION.up,
1129
- slot: props.slots[0].refTo
1134
+ slot: nextSlot
1130
1135
  }];
1131
1136
 
1132
1137
  case kendo_vue_common_1.Keys.right:
1133
- return [Boolean(props.slots.length && props.slots[0].refTo.current) && {
1138
+ nextSlot = this.bv.slots.find(function (s) {
1139
+ return utils_1.compareSlots(s, props.slots[0]);
1140
+ });
1141
+ return [Boolean(props.slots.length && nextSlot) && {
1134
1142
  type: hooks_1.SLOTS_FOCUS_ACTION.right,
1135
- slot: props.slots[0].refTo
1143
+ slot: nextSlot
1136
1144
  }];
1137
1145
 
1138
1146
  case kendo_vue_common_1.Keys.down:
1139
- return [Boolean(props.slots.length && props.slots[props.slots.length - 1].refTo.current) && {
1147
+ nextSlot = this.bv.slots.find(function (s) {
1148
+ return utils_1.compareSlots(s, props.slots[props.slots.length - 1]);
1149
+ });
1150
+ return [Boolean(props.slots.length && nextSlot) && {
1140
1151
  type: hooks_1.SLOTS_FOCUS_ACTION.down,
1141
- slot: props.slots[props.slots.length - 1].refTo
1152
+ slot: nextSlot
1142
1153
  }];
1143
1154
 
1144
1155
  case kendo_vue_common_1.Keys.left:
1145
- return [Boolean(props.slots.length && props.slots[0].refTo.current) && {
1156
+ nextSlot = this.bv.slots.find(function (s) {
1157
+ return utils_1.compareSlots(s, props.slots[0]);
1158
+ });
1159
+ return [Boolean(props.slots.length && nextSlot) && {
1146
1160
  type: hooks_1.SLOTS_FOCUS_ACTION.left,
1147
- slot: props.slots[0].refTo
1161
+ slot: nextSlot
1162
+ }];
1163
+
1164
+ case kendo_vue_common_1.Keys.delete:
1165
+ case kendo_vue_common_1.Keys.backspace:
1166
+ return [{
1167
+ type: use_remove_item_1.REMOVE_ITEM_ACTION.set,
1168
+ payload: props.dataItem
1169
+ }, props.isRecurring ? {
1170
+ type: use_show_occurrence_dialog_1.SHOW_OCCURRENCE_DIALOG_ACTION.open
1171
+ } : {
1172
+ type: use_show_remove_item_dialog_1.SHOW_REMOVE_DIALOG_ACTION.open
1148
1173
  }];
1149
1174
 
1150
1175
  default:
@@ -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: 1651757342,
11
+ publishDate: 1651997436,
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
  };