@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.
- package/dist/cdn/js/kendo-vue-scheduler.js +2 -2
- package/dist/es/Scheduler.js +2 -2
- package/dist/es/components/SchedulerForm.d.ts +1 -0
- package/dist/es/components/SchedulerForm.js +16 -2
- package/dist/es/components/SchedulerOccurrenceDialog.js +17 -1
- package/dist/es/components/SchedulerRemoveDialog.js +18 -2
- package/dist/es/hooks/use-items-focus.d.ts +1 -0
- package/dist/es/hooks/use-items-focus.js +18 -1
- package/dist/es/items/SchedulerEditItem.js +34 -9
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/slots/SchedulerEditSlot.js +20 -8
- package/dist/es/utils/index.d.ts +8 -0
- package/dist/es/utils/index.js +32 -12
- package/dist/npm/Scheduler.js +2 -2
- package/dist/npm/components/SchedulerForm.d.ts +1 -0
- package/dist/npm/components/SchedulerForm.js +15 -1
- package/dist/npm/components/SchedulerOccurrenceDialog.js +18 -1
- package/dist/npm/components/SchedulerRemoveDialog.js +19 -2
- package/dist/npm/hooks/use-items-focus.d.ts +1 -0
- package/dist/npm/hooks/use-items-focus.js +17 -0
- package/dist/npm/items/SchedulerEditItem.js +33 -8
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/slots/SchedulerEditSlot.js +19 -6
- package/dist/npm/utils/index.d.ts +8 -0
- package/dist/npm/utils/index.js +33 -13
- package/package.json +12 -12
package/dist/es/Scheduler.js
CHANGED
|
@@ -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
|
|
178
|
-
workWeekEnd: view
|
|
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: {
|
|
@@ -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';
|
|
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
|
|
@@ -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
|
-
|
|
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:
|
|
1113
|
+
slot: nextSlot
|
|
1109
1114
|
}];
|
|
1110
1115
|
|
|
1111
1116
|
case Keys.right:
|
|
1112
|
-
|
|
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:
|
|
1122
|
+
slot: nextSlot
|
|
1115
1123
|
}];
|
|
1116
1124
|
|
|
1117
1125
|
case Keys.down:
|
|
1118
|
-
|
|
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:
|
|
1131
|
+
slot: nextSlot
|
|
1121
1132
|
}];
|
|
1122
1133
|
|
|
1123
1134
|
case Keys.left:
|
|
1124
|
-
|
|
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:
|
|
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:
|
|
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,
|
|
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';
|
|
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
|
-
|
|
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) {
|
package/dist/es/utils/index.d.ts
CHANGED
|
@@ -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
|
package/dist/es/utils/index.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
};
|
package/dist/npm/Scheduler.js
CHANGED
|
@@ -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
|
|
202
|
-
workWeekEnd: view
|
|
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: {
|
|
@@ -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");
|
|
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
|
|
@@ -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
|
-
|
|
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:
|
|
1134
|
+
slot: nextSlot
|
|
1130
1135
|
}];
|
|
1131
1136
|
|
|
1132
1137
|
case kendo_vue_common_1.Keys.right:
|
|
1133
|
-
|
|
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:
|
|
1143
|
+
slot: nextSlot
|
|
1136
1144
|
}];
|
|
1137
1145
|
|
|
1138
1146
|
case kendo_vue_common_1.Keys.down:
|
|
1139
|
-
|
|
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:
|
|
1152
|
+
slot: nextSlot
|
|
1142
1153
|
}];
|
|
1143
1154
|
|
|
1144
1155
|
case kendo_vue_common_1.Keys.left:
|
|
1145
|
-
|
|
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:
|
|
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:
|
|
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
|
};
|