@progress/kendo-vue-layout 2.5.2-dev.202110121006 → 2.5.2-dev.202110150637
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-layout.js +1 -1
- package/dist/es/menu/BaseMenuItemInternalProps.d.ts +1 -1
- package/dist/es/menu/components/Menu.js +17 -16
- package/dist/es/menu/components/MenuItemInternal.d.ts +7 -0
- package/dist/es/menu/components/MenuItemInternal.js +106 -86
- package/dist/es/menu/components/MenuItemInternalsList.js +22 -6
- package/dist/es/menu/utils/prepareInputItemsForInternalWork.d.ts +1 -1
- package/dist/es/menu/utils/prepareInputItemsForInternalWork.js +7 -6
- package/dist/es/package-metadata.js +1 -1
- package/dist/npm/menu/BaseMenuItemInternalProps.d.ts +1 -1
- package/dist/npm/menu/components/Menu.js +21 -19
- package/dist/npm/menu/components/MenuItemInternal.d.ts +7 -0
- package/dist/npm/menu/components/MenuItemInternal.js +105 -85
- package/dist/npm/menu/components/MenuItemInternalsList.js +22 -6
- package/dist/npm/menu/utils/prepareInputItemsForInternalWork.d.ts +1 -1
- package/dist/npm/menu/utils/prepareInputItemsForInternalWork.js +7 -6
- package/dist/npm/package-metadata.js +1 -1
- package/package.json +9 -9
|
@@ -28,6 +28,8 @@ var gh = allVue.h;
|
|
|
28
28
|
|
|
29
29
|
var kendo_vue_common_1 = require("@progress/kendo-vue-common");
|
|
30
30
|
|
|
31
|
+
var kendo_vue_common_2 = require("@progress/kendo-vue-common");
|
|
32
|
+
|
|
31
33
|
var itemsIdsUtils_1 = require("../utils/itemsIdsUtils");
|
|
32
34
|
|
|
33
35
|
var prepareInputItemsForInternalWork_1 = require("../utils/prepareInputItemsForInternalWork");
|
|
@@ -42,9 +44,8 @@ var DirectionHolder_1 = require("../utils/DirectionHolder");
|
|
|
42
44
|
|
|
43
45
|
var MouseOverHandler_1 = require("../utils/MouseOverHandler");
|
|
44
46
|
|
|
45
|
-
var package_metadata_1 = require("../../package-metadata");
|
|
47
|
+
var package_metadata_1 = require("../../package-metadata"); // tslint:enable:max-line-length
|
|
46
48
|
|
|
47
|
-
var initialItemsIds = {}; // tslint:enable:max-line-length
|
|
48
49
|
|
|
49
50
|
var Menu = {
|
|
50
51
|
name: 'KendoMenu',
|
|
@@ -63,12 +64,12 @@ var Menu = {
|
|
|
63
64
|
customCloseItemIds: Array
|
|
64
65
|
},
|
|
65
66
|
created: function created() {
|
|
66
|
-
|
|
67
|
+
kendo_vue_common_2.validatePackage(package_metadata_1.packageMetadata);
|
|
67
68
|
this.mouseOverHandler = new MouseOverHandler_1.MouseOverHandler(this.$props.openOnClick, this.reset, this.onItemMouseOver); // private itemHoverRequest: any;
|
|
68
69
|
// private itemLeaveRequest: any;
|
|
69
70
|
// private menuWrapperEl: any;
|
|
70
71
|
|
|
71
|
-
this.guid =
|
|
72
|
+
this.guid = kendo_vue_common_2.guid();
|
|
72
73
|
this.directionHolder = new DirectionHolder_1.DirectionHolder();
|
|
73
74
|
this.inputItems = [];
|
|
74
75
|
this.currentItems = []; // private mouseOverHandler: MouseOverHandler;
|
|
@@ -128,10 +129,6 @@ var Menu = {
|
|
|
128
129
|
|
|
129
130
|
var lastItemIdToBeOpened = this.hoveredItemId ? this.hoveredItemId : this.focusedItemId ? itemsIdsUtils_1.getDirectParentId(this.focusedItemId) : itemsIdsUtils_1.EMPTY_ID;
|
|
130
131
|
return h("div", {
|
|
131
|
-
onKeydown: this.onKeyDown,
|
|
132
|
-
on: this.v3 ? undefined : {
|
|
133
|
-
"keydown": this.onKeyDown
|
|
134
|
-
},
|
|
135
132
|
"class": this.getMenuWrapperClassName(),
|
|
136
133
|
ref: function ref(el) {
|
|
137
134
|
return _this.menuWrapperEl = el;
|
|
@@ -148,9 +145,10 @@ var Menu = {
|
|
|
148
145
|
focusedItemId: this.focusedItemId,
|
|
149
146
|
lastItemIdToBeOpened: lastItemIdToBeOpened,
|
|
150
147
|
tabbableItemId: this.tabbableItemId,
|
|
151
|
-
itemRender: this.$props.itemRender,
|
|
152
|
-
linkRender: this.$props.linkRender,
|
|
153
|
-
menuGuid: this.guid
|
|
148
|
+
itemRender: kendo_vue_common_1.templateRendering.call(this, this.$props.itemRender, kendo_vue_common_1.getListeners.call(this)),
|
|
149
|
+
linkRender: kendo_vue_common_1.templateRendering.call(this, this.$props.linkRender, kendo_vue_common_1.getListeners.call(this)),
|
|
150
|
+
menuGuid: this.guid,
|
|
151
|
+
originalItemNeeded: this.getInputItem
|
|
154
152
|
},
|
|
155
153
|
items: this.currentItems,
|
|
156
154
|
isMenuVertical: this.$props.vertical,
|
|
@@ -158,31 +156,34 @@ var Menu = {
|
|
|
158
156
|
focusedItemId: this.focusedItemId,
|
|
159
157
|
lastItemIdToBeOpened: lastItemIdToBeOpened,
|
|
160
158
|
tabbableItemId: this.tabbableItemId,
|
|
161
|
-
itemRender: this.$props.itemRender,
|
|
162
|
-
linkRender: this.$props.linkRender,
|
|
159
|
+
itemRender: kendo_vue_common_1.templateRendering.call(this, this.$props.itemRender, kendo_vue_common_1.getListeners.call(this)),
|
|
160
|
+
linkRender: kendo_vue_common_1.templateRendering.call(this, this.$props.linkRender, kendo_vue_common_1.getListeners.call(this)),
|
|
163
161
|
menuGuid: this.guid,
|
|
164
162
|
onMouseleave: this.onItemMouseLeave,
|
|
165
163
|
on: this.v3 ? undefined : {
|
|
166
164
|
"mouseleave": this.onItemMouseLeave,
|
|
167
165
|
"mouseover": this.onItemMouseOver,
|
|
168
166
|
"mousedown": this.onItemMouseDown,
|
|
167
|
+
"keydown": this.onKeyDown,
|
|
169
168
|
"focus": this.onItemFocus,
|
|
170
169
|
"click": this.onItemClick,
|
|
171
|
-
"blur": this.onItemBlur
|
|
172
|
-
"originalitemneeded": this.getInputItem
|
|
170
|
+
"blur": this.onItemBlur
|
|
173
171
|
},
|
|
174
172
|
onMouseover: this.onItemMouseOver,
|
|
175
173
|
onMousedown: this.onItemMouseDown,
|
|
174
|
+
onKeydown: this.onKeyDown,
|
|
176
175
|
onFocus: this.onItemFocus,
|
|
177
176
|
onClick: this.onItemClick,
|
|
178
177
|
onBlur: this.onItemBlur,
|
|
179
|
-
|
|
178
|
+
originalItemNeeded: this.getInputItem
|
|
180
179
|
})]);
|
|
181
180
|
},
|
|
182
181
|
methods: {
|
|
183
182
|
reset: function reset() {
|
|
184
183
|
this.clearItemHoverAndLeaveRequestsIfApplicable();
|
|
185
|
-
this.
|
|
184
|
+
this.focusedItemId = itemsIdsUtils_1.EMPTY_ID;
|
|
185
|
+
this.hoveredItemId = itemsIdsUtils_1.EMPTY_ID;
|
|
186
|
+
this.tabbableItemId = itemsIdsUtils_1.ZERO_LEVEL_ZERO_ITEM_ID;
|
|
186
187
|
},
|
|
187
188
|
onKeyDown: function onKeyDown(event) {
|
|
188
189
|
// The focusedItemId may be empty when contentRender is used.
|
|
@@ -196,7 +197,7 @@ var Menu = {
|
|
|
196
197
|
this.setFocusedItemId(newItemId);
|
|
197
198
|
}
|
|
198
199
|
|
|
199
|
-
if ((event.keyCode ===
|
|
200
|
+
if ((event.keyCode === kendo_vue_common_2.Keys.enter || event.keyCode === kendo_vue_common_2.Keys.space) && !currentItem.disabled) {
|
|
200
201
|
this.mouseOverHandler.handleItemSelectedViaKeyboard();
|
|
201
202
|
this.dispatchSelectEventIfWired(event, currentItem.id);
|
|
202
203
|
|
|
@@ -262,6 +263,7 @@ var Menu = {
|
|
|
262
263
|
var tabbableItemId = focusedItemId === itemsIdsUtils_1.EMPTY_ID ? this.tabbableItemId : itemsIdsUtils_1.getRootParentId(focusedItemId);
|
|
263
264
|
var hoveredItemId = focusedItemId === itemsIdsUtils_1.EMPTY_ID || itemsIdsUtils_1.isIdEmptyOrZeroLevel(this.hoveredItemId) && itemsIdsUtils_1.isIdEmptyOrZeroLevel(focusedItemId) ? this.hoveredItemId : itemsIdsUtils_1.EMPTY_ID;
|
|
264
265
|
this.hoveredItemId = hoveredItemId;
|
|
266
|
+
this.focusedItemId = focusedItemId;
|
|
265
267
|
this.tabbableItemId = tabbableItemId;
|
|
266
268
|
},
|
|
267
269
|
setHoveredItemId: function setHoveredItemId(hoveredItemId) {
|
|
@@ -296,7 +298,7 @@ var Menu = {
|
|
|
296
298
|
return this.$props.dir !== undefined ? this.$props.dir === 'rtl' : this.menuWrapperEl && getComputedStyle(this.menuWrapperEl).direction === 'rtl';
|
|
297
299
|
},
|
|
298
300
|
prepareItems: function prepareItems() {
|
|
299
|
-
var _a = prepareInputItemsForInternalWork_1.prepareInputItemsForInternalWork(this.$props.items),
|
|
301
|
+
var _a = prepareInputItemsForInternalWork_1.prepareInputItemsForInternalWork.call(this, this.$props.items),
|
|
300
302
|
items = _a.items,
|
|
301
303
|
inputItems = _a.inputItems;
|
|
302
304
|
|
|
@@ -18,6 +18,7 @@ export interface MenuItemInternalProps extends BaseMenuItemInternalProps {
|
|
|
18
18
|
export interface MenuItemInternalState {
|
|
19
19
|
itemElement: any;
|
|
20
20
|
isFirstRender: boolean;
|
|
21
|
+
prevFocusedItemId?: string;
|
|
21
22
|
kendoAnchorRef: any;
|
|
22
23
|
_anchor: string;
|
|
23
24
|
}
|
|
@@ -25,6 +26,12 @@ export interface MenuItemInternalState {
|
|
|
25
26
|
* @hidden
|
|
26
27
|
*/
|
|
27
28
|
export interface MenuItemInternalComputed {
|
|
29
|
+
currentItemRender: any;
|
|
30
|
+
currentLinkRender: any;
|
|
31
|
+
contentRender: any;
|
|
32
|
+
currentOpened: boolean;
|
|
33
|
+
popupClassName: string;
|
|
34
|
+
menuItemClassName: object;
|
|
28
35
|
}
|
|
29
36
|
/**
|
|
30
37
|
* @hidden
|
|
@@ -28,6 +28,16 @@ var MenuItemArrow_1 = require("./MenuItemArrow"); // tslint:enable:max-line-leng
|
|
|
28
28
|
|
|
29
29
|
var MenuItemInternal = {
|
|
30
30
|
name: 'KendoMenuItemInternal',
|
|
31
|
+
// @ts-ignore
|
|
32
|
+
emits: {
|
|
33
|
+
'keydown': null,
|
|
34
|
+
'mouseover': null,
|
|
35
|
+
'mouseleave': null,
|
|
36
|
+
'blur': null,
|
|
37
|
+
'focus': null,
|
|
38
|
+
'click': null,
|
|
39
|
+
'mousedown': null
|
|
40
|
+
},
|
|
31
41
|
props: {
|
|
32
42
|
item: Object,
|
|
33
43
|
focusedItemId: String,
|
|
@@ -37,10 +47,12 @@ var MenuItemInternal = {
|
|
|
37
47
|
linkRender: [String, Object, Function],
|
|
38
48
|
isMenuVertical: Boolean,
|
|
39
49
|
isDirectionRightToLeft: Boolean,
|
|
40
|
-
menuGuid: String
|
|
50
|
+
menuGuid: String,
|
|
51
|
+
originalItemNeeded: Function
|
|
41
52
|
},
|
|
42
53
|
created: function created() {
|
|
43
54
|
this.itemElement = null;
|
|
55
|
+
this.prevFocusedItemId = this.$props.focusedItemId;
|
|
44
56
|
this.isFirstRender = true;
|
|
45
57
|
this._anchor = kendo_vue_common_1.guid();
|
|
46
58
|
},
|
|
@@ -50,7 +62,7 @@ var MenuItemInternal = {
|
|
|
50
62
|
};
|
|
51
63
|
},
|
|
52
64
|
mounted: function mounted() {
|
|
53
|
-
this.itemElement = this.$refs[this._anchor];
|
|
65
|
+
this.itemElement = this.v3 ? this.kendoAnchorRef : this.$refs[this._anchor];
|
|
54
66
|
var focusedItemId = this.$props.focusedItemId;
|
|
55
67
|
var currentItemId = this.$props.item.id; // If the menu item component has been just mounted due to
|
|
56
68
|
// keyboard navigation and it is the selected one.
|
|
@@ -61,26 +73,29 @@ var MenuItemInternal = {
|
|
|
61
73
|
|
|
62
74
|
this.isFirstRender = false;
|
|
63
75
|
},
|
|
76
|
+
watch: {
|
|
77
|
+
focusedItemId: function focusedItemId(_, oldValue) {
|
|
78
|
+
this.prevFocusedItemId = oldValue;
|
|
79
|
+
}
|
|
80
|
+
},
|
|
64
81
|
updated: function updated() {
|
|
65
82
|
var focusedItemId = this.$props.focusedItemId;
|
|
66
83
|
var currentItemId = this.$props.item.id;
|
|
67
84
|
|
|
68
|
-
if (focusedItemId) {
|
|
85
|
+
if (focusedItemId) {
|
|
86
|
+
// If the item has been navigated to via the keyboard navigation
|
|
69
87
|
// (Clicking and focusing an item also come here).
|
|
70
|
-
|
|
71
|
-
//
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
// && !this.itemElement.contains(document.activeElement)) {
|
|
76
|
-
// this.itemElement.focus();
|
|
77
|
-
// }
|
|
88
|
+
if (this.prevFocusedItemId !== focusedItemId && focusedItemId === currentItemId // No need to focus the wrapping menu item DOM element
|
|
89
|
+
// when a child DOM element was clicked.
|
|
90
|
+
&& !this.itemElement.contains(document.activeElement)) {
|
|
91
|
+
this.itemElement.focus();
|
|
92
|
+
}
|
|
78
93
|
} else if (document.activeElement === this.itemElement) {
|
|
79
94
|
this.itemElement.blur();
|
|
80
95
|
}
|
|
81
96
|
},
|
|
82
97
|
computed: {
|
|
83
|
-
|
|
98
|
+
currentItemRender: function currentItemRender() {
|
|
84
99
|
return this.$props.item.render || this.$props.itemRender;
|
|
85
100
|
},
|
|
86
101
|
currentLinkRender: function currentLinkRender() {
|
|
@@ -100,6 +115,18 @@ var MenuItemInternal = {
|
|
|
100
115
|
'k-menu-popup': true,
|
|
101
116
|
'k-rtl': this.$props.isDirectionRightToLeft
|
|
102
117
|
});
|
|
118
|
+
},
|
|
119
|
+
menuItemClassName: function menuItemClassName() {
|
|
120
|
+
var _a;
|
|
121
|
+
|
|
122
|
+
var item = this.$props.item;
|
|
123
|
+
return _a = {
|
|
124
|
+
'k-item': true,
|
|
125
|
+
'k-menu-item': true,
|
|
126
|
+
'k-first': itemsIdsUtils_1.isFirstItemFromSiblings(item.id),
|
|
127
|
+
'k-last': item.isLastFromSiblings,
|
|
128
|
+
'k-state-disabled': item.disabled
|
|
129
|
+
}, _a[item.cssClass ? item.cssClass : ''] = item.cssClass, _a;
|
|
103
130
|
}
|
|
104
131
|
},
|
|
105
132
|
// @ts-ignore
|
|
@@ -120,20 +147,25 @@ var MenuItemInternal = {
|
|
|
120
147
|
|
|
121
148
|
var renderContent = function renderContent() {
|
|
122
149
|
var parentItemId = this.$props.item.contentParentItemId;
|
|
150
|
+
|
|
151
|
+
var contentRender = function contentRender(args) {
|
|
152
|
+
return kendo_vue_common_1.getTemplate.call(this, {
|
|
153
|
+
h: h,
|
|
154
|
+
template: this.contentRender,
|
|
155
|
+
additionalProps: args
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
|
|
123
159
|
return h("div", {
|
|
124
160
|
"class": "k-content",
|
|
125
161
|
role: "presentation",
|
|
126
162
|
attrs: this.v3 ? undefined : {
|
|
127
163
|
role: "presentation"
|
|
128
164
|
}
|
|
129
|
-
}, [
|
|
165
|
+
}, [contentRender.call(this, {
|
|
130
166
|
item: this.handleOriginalItemNeeded(parentItemId),
|
|
131
|
-
attrs: this.v3 ? undefined : {
|
|
132
|
-
item: this.handleOriginalItemNeeded(parentItemId),
|
|
133
|
-
itemId: parentItemId
|
|
134
|
-
},
|
|
135
167
|
itemId: parentItemId
|
|
136
|
-
})]);
|
|
168
|
+
}), h(this.contentRender)]);
|
|
137
169
|
};
|
|
138
170
|
|
|
139
171
|
var renderMenuIconIfApplicable = function renderMenuIconIfApplicable() {
|
|
@@ -165,42 +197,39 @@ var MenuItemInternal = {
|
|
|
165
197
|
var renderMenuItemLink = function renderMenuItemLink() {
|
|
166
198
|
var _this2 = this;
|
|
167
199
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
200
|
+
var defaultItemRender = item.text;
|
|
201
|
+
var textOrItemRender = kendo_vue_common_1.getTemplate.call(this, {
|
|
202
|
+
h: h,
|
|
203
|
+
template: this.currentItemRender,
|
|
204
|
+
defaultRendering: defaultItemRender,
|
|
205
|
+
additionalProps: {
|
|
206
|
+
item: this.$props.originalItemNeeded(item.id),
|
|
207
|
+
itemId: item.id,
|
|
208
|
+
key: '1'
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
var defaultLink = // @ts-ignore function children
|
|
212
|
+
h(MenuItemLink_1.MenuItemLink, {
|
|
213
|
+
url: item.url,
|
|
214
|
+
attrs: this.v3 ? undefined : {
|
|
215
|
+
url: item.url,
|
|
216
|
+
opened: this.currentOpened
|
|
217
|
+
},
|
|
218
|
+
opened: this.currentOpened
|
|
219
|
+
}, this.v3 ? function () {
|
|
220
|
+
return [[renderMenuIconIfApplicable.call(_this2), textOrItemRender, renderArrowIfApplicable.call(_this2)]];
|
|
221
|
+
} : [[renderMenuIconIfApplicable.call(_this2), textOrItemRender, renderArrowIfApplicable.call(_this2)]]);
|
|
222
|
+
return kendo_vue_common_1.getTemplate.call(this, {
|
|
223
|
+
h: h,
|
|
224
|
+
template: this.currentLinkRender,
|
|
225
|
+
defaultRendering: defaultLink,
|
|
226
|
+
additionalProps: {
|
|
227
|
+
item: this.$props.originalItemNeeded(item.id),
|
|
177
228
|
itemId: item.id,
|
|
178
229
|
opened: this.currentOpened,
|
|
179
230
|
dir: misc_1.convertBoolDirectionToString(this.$props.isDirectionRightToLeft)
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
var textOrItemRender = this.currnetItemRender ? h(this.currnetItemRender, {
|
|
183
|
-
item: this.$props.onOriginalItemNeeded(item.id),
|
|
184
|
-
attrs: this.v3 ? undefined : {
|
|
185
|
-
item: this.$props.onOriginalItemNeeded(item.id),
|
|
186
|
-
itemId: item.id
|
|
187
|
-
},
|
|
188
|
-
itemId: item.id,
|
|
189
|
-
key: "1"
|
|
190
|
-
}) : item.text;
|
|
191
|
-
return (// @ts-ignore function children
|
|
192
|
-
h(MenuItemLink_1.MenuItemLink, {
|
|
193
|
-
url: item.url,
|
|
194
|
-
attrs: this.v3 ? undefined : {
|
|
195
|
-
url: item.url,
|
|
196
|
-
opened: this.currentOpened
|
|
197
|
-
},
|
|
198
|
-
opened: this.currentOpened
|
|
199
|
-
}, this.v3 ? function () {
|
|
200
|
-
return [[renderMenuIconIfApplicable.call(_this2), textOrItemRender, renderArrowIfApplicable.call(_this2)]];
|
|
201
|
-
} : [[renderMenuIconIfApplicable.call(_this2), textOrItemRender, renderArrowIfApplicable.call(_this2)]])
|
|
202
|
-
);
|
|
203
|
-
}
|
|
231
|
+
}
|
|
232
|
+
});
|
|
204
233
|
};
|
|
205
234
|
|
|
206
235
|
var renderPopupIfOpened = function renderPopupIfOpened() {
|
|
@@ -244,7 +273,8 @@ var MenuItemInternal = {
|
|
|
244
273
|
itemRender: _this3.$props.itemRender,
|
|
245
274
|
linkRender: _this3.$props.linkRender,
|
|
246
275
|
isMenuVertical: _this3.$props.isMenuVertical,
|
|
247
|
-
isDirectionRightToLeft: _this3.$props.isDirectionRightToLeft
|
|
276
|
+
isDirectionRightToLeft: _this3.$props.isDirectionRightToLeft,
|
|
277
|
+
originalItemNeeded: _this3.handleOriginalItemNeeded
|
|
248
278
|
},
|
|
249
279
|
items: _this3.$props.item.items,
|
|
250
280
|
menuGuid: _this3.$props.menuGuid,
|
|
@@ -260,18 +290,19 @@ var MenuItemInternal = {
|
|
|
260
290
|
on: _this3.v3 ? undefined : {
|
|
261
291
|
"mouseover": _this3.handleItemMouseOver,
|
|
262
292
|
"mouseleave": _this3.handleItemMouseLeave,
|
|
263
|
-
"mousedown": _this3.
|
|
293
|
+
"mousedown": _this3.handleMouseDown,
|
|
264
294
|
"blur": _this3.handleItemMouseBlur,
|
|
265
295
|
"focus": _this3.handleItemMouseFocus,
|
|
266
|
-
"click": _this3.
|
|
267
|
-
"
|
|
296
|
+
"click": _this3.handleClick,
|
|
297
|
+
"keydown": _this3.handleKeyDown
|
|
268
298
|
},
|
|
269
299
|
onMouseleave: _this3.handleItemMouseLeave,
|
|
270
|
-
onMousedown: _this3.
|
|
300
|
+
onMousedown: _this3.handleMouseDown,
|
|
271
301
|
onBlur: _this3.handleItemMouseBlur,
|
|
272
302
|
onFocus: _this3.handleItemMouseFocus,
|
|
273
|
-
onClick: _this3.
|
|
274
|
-
|
|
303
|
+
onClick: _this3.handleClick,
|
|
304
|
+
onKeydown: _this3.handleKeyDown,
|
|
305
|
+
originalItemNeeded: _this3.handleOriginalItemNeeded
|
|
275
306
|
})];
|
|
276
307
|
} : [h(MenuItemInternalsList_1.MenuItemInternalsList, {
|
|
277
308
|
parentItemId: itemId,
|
|
@@ -285,7 +316,8 @@ var MenuItemInternal = {
|
|
|
285
316
|
itemRender: _this3.$props.itemRender,
|
|
286
317
|
linkRender: _this3.$props.linkRender,
|
|
287
318
|
isMenuVertical: _this3.$props.isMenuVertical,
|
|
288
|
-
isDirectionRightToLeft: _this3.$props.isDirectionRightToLeft
|
|
319
|
+
isDirectionRightToLeft: _this3.$props.isDirectionRightToLeft,
|
|
320
|
+
originalItemNeeded: _this3.handleOriginalItemNeeded
|
|
289
321
|
},
|
|
290
322
|
items: _this3.$props.item.items,
|
|
291
323
|
menuGuid: _this3.$props.menuGuid,
|
|
@@ -301,18 +333,19 @@ var MenuItemInternal = {
|
|
|
301
333
|
on: _this3.v3 ? undefined : {
|
|
302
334
|
"mouseover": _this3.handleItemMouseOver,
|
|
303
335
|
"mouseleave": _this3.handleItemMouseLeave,
|
|
304
|
-
"mousedown": _this3.
|
|
336
|
+
"mousedown": _this3.handleMouseDown,
|
|
305
337
|
"blur": _this3.handleItemMouseBlur,
|
|
306
338
|
"focus": _this3.handleItemMouseFocus,
|
|
307
|
-
"click": _this3.
|
|
308
|
-
"
|
|
339
|
+
"click": _this3.handleClick,
|
|
340
|
+
"keydown": _this3.handleKeyDown
|
|
309
341
|
},
|
|
310
342
|
onMouseleave: _this3.handleItemMouseLeave,
|
|
311
|
-
onMousedown: _this3.
|
|
343
|
+
onMousedown: _this3.handleMouseDown,
|
|
312
344
|
onBlur: _this3.handleItemMouseBlur,
|
|
313
345
|
onFocus: _this3.handleItemMouseFocus,
|
|
314
|
-
onClick: _this3.
|
|
315
|
-
|
|
346
|
+
onClick: _this3.handleClick,
|
|
347
|
+
onKeydown: _this3.handleKeyDown,
|
|
348
|
+
originalItemNeeded: _this3.handleOriginalItemNeeded
|
|
316
349
|
})])
|
|
317
350
|
);
|
|
318
351
|
};
|
|
@@ -345,7 +378,8 @@ var MenuItemInternal = {
|
|
|
345
378
|
},
|
|
346
379
|
"click": function click(event) {
|
|
347
380
|
return _this.handleClick(event, itemId);
|
|
348
|
-
}
|
|
381
|
+
},
|
|
382
|
+
"keydown": this.handleKeyDown
|
|
349
383
|
},
|
|
350
384
|
onMouseleave: this.onMouseLeave,
|
|
351
385
|
onMousedown: function mousedown(event) {
|
|
@@ -360,6 +394,7 @@ var MenuItemInternal = {
|
|
|
360
394
|
onClick: function click(event) {
|
|
361
395
|
return _this.handleClick(event, itemId);
|
|
362
396
|
},
|
|
397
|
+
onKeydown: this.handleKeyDown,
|
|
363
398
|
role: "menuitem",
|
|
364
399
|
"aria-disabled": item.disabled ? true : undefined,
|
|
365
400
|
"aria-haspopup": item.items.length > 0 ? true : undefined,
|
|
@@ -373,24 +408,21 @@ var MenuItemInternal = {
|
|
|
373
408
|
}, [this.contentRender ? renderContent.call(this) : renderMenuItemLink.call(this), renderPopupIfOpened.call(this)]);
|
|
374
409
|
},
|
|
375
410
|
methods: {
|
|
411
|
+
handleKeyDown: function handleKeyDown(event) {
|
|
412
|
+
this.$emit('keydown', event);
|
|
413
|
+
},
|
|
376
414
|
handleItemMouseOver: function handleItemMouseOver(event) {
|
|
377
415
|
this.$emit('mouseover', event);
|
|
378
416
|
},
|
|
379
417
|
handleItemMouseLeave: function handleItemMouseLeave(event) {
|
|
380
418
|
this.$emit('mouseleave', event);
|
|
381
419
|
},
|
|
382
|
-
handleItemMouseDown: function handleItemMouseDown(event) {
|
|
383
|
-
this.$emit('mousedown', event);
|
|
384
|
-
},
|
|
385
420
|
handleItemMouseBlur: function handleItemMouseBlur(event) {
|
|
386
421
|
this.$emit('blur', event);
|
|
387
422
|
},
|
|
388
423
|
handleItemMouseFocus: function handleItemMouseFocus(event) {
|
|
389
424
|
this.$emit('focus', event);
|
|
390
425
|
},
|
|
391
|
-
handleItemMouseClick: function handleItemMouseClick(event) {
|
|
392
|
-
this.$emit('click', event);
|
|
393
|
-
},
|
|
394
426
|
handleClick: function handleClick(event, itemId) {
|
|
395
427
|
this.$emit('click', event, itemId);
|
|
396
428
|
},
|
|
@@ -404,7 +436,7 @@ var MenuItemInternal = {
|
|
|
404
436
|
this.$emit('mousedown', event);
|
|
405
437
|
},
|
|
406
438
|
handleOriginalItemNeeded: function handleOriginalItemNeeded(event) {
|
|
407
|
-
this.$
|
|
439
|
+
this.$props.originalItemNeeded(event);
|
|
408
440
|
},
|
|
409
441
|
onMouseOver: function onMouseOver(event) {
|
|
410
442
|
this.$emit('mouseover', this.$props.item.id);
|
|
@@ -413,18 +445,6 @@ var MenuItemInternal = {
|
|
|
413
445
|
onMouseLeave: function onMouseLeave(event) {
|
|
414
446
|
this.$emit('mouseleave', this.$props.item.id);
|
|
415
447
|
event.stopPropagation();
|
|
416
|
-
},
|
|
417
|
-
menuItemClassName: function menuItemClassName() {
|
|
418
|
-
var _a;
|
|
419
|
-
|
|
420
|
-
var item = this.$props.item;
|
|
421
|
-
return _a = {
|
|
422
|
-
'k-item': true,
|
|
423
|
-
'k-menu-item': true,
|
|
424
|
-
'k-first': itemsIdsUtils_1.isFirstItemFromSiblings(item.id),
|
|
425
|
-
'k-last': item.isLastFromSiblings,
|
|
426
|
-
'k-state-disabled': item.disabled
|
|
427
|
-
}, _a[item.cssClass ? item.cssClass : ''] = item.cssClass, _a;
|
|
428
448
|
}
|
|
429
449
|
}
|
|
430
450
|
};
|
|
@@ -17,6 +17,16 @@ var misc_1 = require("./../utils/misc"); // tslint:enable:max-line-length
|
|
|
17
17
|
|
|
18
18
|
var MenuItemInternalsList = {
|
|
19
19
|
name: 'KendoMenuItemInternalsList',
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
emits: {
|
|
22
|
+
'keydown': null,
|
|
23
|
+
'mouseover': null,
|
|
24
|
+
'mouseleave': null,
|
|
25
|
+
'blur': null,
|
|
26
|
+
'focus': null,
|
|
27
|
+
'click': null,
|
|
28
|
+
'mousedown': null
|
|
29
|
+
},
|
|
20
30
|
props: {
|
|
21
31
|
items: Array,
|
|
22
32
|
parentItemId: String,
|
|
@@ -27,7 +37,8 @@ var MenuItemInternalsList = {
|
|
|
27
37
|
linkRender: [String, Object, Function],
|
|
28
38
|
isMenuVertical: Boolean,
|
|
29
39
|
isDirectionRightToLeft: Boolean,
|
|
30
|
-
menuGuid: String
|
|
40
|
+
menuGuid: String,
|
|
41
|
+
originalItemNeeded: Function
|
|
31
42
|
},
|
|
32
43
|
// @ts-ignore
|
|
33
44
|
setup: !gh ? undefined : function () {
|
|
@@ -54,7 +65,8 @@ var MenuItemInternalsList = {
|
|
|
54
65
|
tabbableItemId: this.$props.tabbableItemId,
|
|
55
66
|
itemRender: this.$props.itemRender,
|
|
56
67
|
linkRender: this.$props.linkRender,
|
|
57
|
-
menuGuid: this.$props.menuGuid
|
|
68
|
+
menuGuid: this.$props.menuGuid,
|
|
69
|
+
originalItemNeeded: this.handleOriginalItemNeeded
|
|
58
70
|
},
|
|
59
71
|
isMenuVertical: this.$props.isMenuVertical,
|
|
60
72
|
isDirectionRightToLeft: this.$props.isDirectionRightToLeft,
|
|
@@ -69,17 +81,18 @@ var MenuItemInternalsList = {
|
|
|
69
81
|
"mouseover": this.handleItemMouseOver,
|
|
70
82
|
"mouseleave": this.handleItemMouseLeave,
|
|
71
83
|
"mousedown": this.handleItemMouseDown,
|
|
84
|
+
"keydown": this.handleKeyDown,
|
|
72
85
|
"blur": this.handleItemMouseBlur,
|
|
73
86
|
"focus": this.handleItemMouseFocus,
|
|
74
|
-
"click": this.handleItemMouseClick
|
|
75
|
-
"originalitemneeded": this.handleOriginalItemNeeded
|
|
87
|
+
"click": this.handleItemMouseClick
|
|
76
88
|
},
|
|
77
89
|
onMouseleave: this.handleItemMouseLeave,
|
|
78
90
|
onMousedown: this.handleItemMouseDown,
|
|
91
|
+
onKeydown: this.handleKeyDown,
|
|
79
92
|
onBlur: this.handleItemMouseBlur,
|
|
80
93
|
onFocus: this.handleItemMouseFocus,
|
|
81
94
|
onClick: this.handleItemMouseClick,
|
|
82
|
-
|
|
95
|
+
originalItemNeeded: this.handleOriginalItemNeeded,
|
|
83
96
|
key: index
|
|
84
97
|
})
|
|
85
98
|
);
|
|
@@ -102,8 +115,11 @@ var MenuItemInternalsList = {
|
|
|
102
115
|
}, [renderChildItems.call(this)]);
|
|
103
116
|
},
|
|
104
117
|
methods: {
|
|
118
|
+
handleKeyDown: function handleKeyDown(event) {
|
|
119
|
+
this.$emit('keydown', event);
|
|
120
|
+
},
|
|
105
121
|
handleOriginalItemNeeded: function handleOriginalItemNeeded(event) {
|
|
106
|
-
this.$
|
|
122
|
+
this.$props.originalItemNeeded(event);
|
|
107
123
|
},
|
|
108
124
|
handleItemMouseOver: function handleItemMouseOver(event) {
|
|
109
125
|
this.$emit('mouseover', event);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.prepareInputItemsForInternalWork = void 0;
|
|
4
|
+
var kendo_vue_common_1 = require("@progress/kendo-vue-common");
|
|
4
5
|
var itemsIdsUtils_1 = require("./itemsIdsUtils");
|
|
5
6
|
/**
|
|
6
7
|
* @hidden
|
|
@@ -8,7 +9,7 @@ var itemsIdsUtils_1 = require("./itemsIdsUtils");
|
|
|
8
9
|
function prepareInputItemsForInternalWork(models) {
|
|
9
10
|
if (models && models.length > 0) {
|
|
10
11
|
return {
|
|
11
|
-
items: convertInputModelsToInternalOnesHelper(models),
|
|
12
|
+
items: convertInputModelsToInternalOnesHelper.call(this, models),
|
|
12
13
|
inputItems: models
|
|
13
14
|
};
|
|
14
15
|
}
|
|
@@ -39,13 +40,13 @@ function copyInputItemWithoutChildren(inputModel) {
|
|
|
39
40
|
result.cssStyle = cssStyle;
|
|
40
41
|
}
|
|
41
42
|
if (render !== undefined) {
|
|
42
|
-
result.render = render;
|
|
43
|
+
result.render = kendo_vue_common_1.templateRendering.call(this, render, kendo_vue_common_1.getListeners.call(this));
|
|
43
44
|
}
|
|
44
45
|
if (linkRender !== undefined) {
|
|
45
|
-
result.linkRender = linkRender;
|
|
46
|
+
result.linkRender = kendo_vue_common_1.templateRendering.call(this, linkRender, kendo_vue_common_1.getListeners.call(this));
|
|
46
47
|
}
|
|
47
48
|
if (contentRender !== undefined) {
|
|
48
|
-
result.contentRender = contentRender;
|
|
49
|
+
result.contentRender = kendo_vue_common_1.templateRendering.call(this, contentRender, kendo_vue_common_1.getListeners.call(this));
|
|
49
50
|
}
|
|
50
51
|
if (data !== undefined) {
|
|
51
52
|
result.data = data;
|
|
@@ -56,7 +57,7 @@ function convertInputModelsToInternalOnesHelper(inputModels, parentId) {
|
|
|
56
57
|
var result = [];
|
|
57
58
|
for (var index = 0; index < inputModels.length; index++) {
|
|
58
59
|
var inputModel = inputModels[index];
|
|
59
|
-
var internalModel = copyInputItemWithoutChildren(inputModel);
|
|
60
|
+
var internalModel = copyInputItemWithoutChildren.call(this, inputModel);
|
|
60
61
|
internalModel.id = itemsIdsUtils_1.createId(index.toString(), parentId);
|
|
61
62
|
internalModel.isLastFromSiblings = index === inputModels.length - 1;
|
|
62
63
|
internalModel.items = copyOrCreateModelChildren(inputModel, internalModel);
|
|
@@ -75,7 +76,7 @@ function copyOrCreateModelChildren(inputModel, internalModel) {
|
|
|
75
76
|
}];
|
|
76
77
|
}
|
|
77
78
|
else if (inputModel.items) {
|
|
78
|
-
return convertInputModelsToInternalOnesHelper(inputModel.items, internalModel.id);
|
|
79
|
+
return convertInputModelsToInternalOnesHelper.call(this, inputModel.items, internalModel.id);
|
|
79
80
|
}
|
|
80
81
|
else {
|
|
81
82
|
return [];
|
|
@@ -8,7 +8,7 @@ exports.packageMetadata = {
|
|
|
8
8
|
name: '@progress/kendo-vue-layout',
|
|
9
9
|
productName: 'Kendo UI for Vue',
|
|
10
10
|
productCodes: ['KENDOUIVUE', 'KENDOUICOMPLETE'],
|
|
11
|
-
publishDate:
|
|
11
|
+
publishDate: 1634279685,
|
|
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
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-vue-layout",
|
|
3
3
|
"description": "Kendo UI for Vue Layouts package",
|
|
4
|
-
"version": "2.5.2-dev.
|
|
4
|
+
"version": "2.5.2-dev.202110150637",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/telerik/kendo-vue.git"
|
|
@@ -36,20 +36,20 @@
|
|
|
36
36
|
"vue": "^2.6.12 || ^3.0.2"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@progress/kendo-vue-animation": "2.5.2-dev.
|
|
40
|
-
"@progress/kendo-vue-common": "2.5.2-dev.
|
|
41
|
-
"@progress/kendo-vue-popup": "2.5.2-dev.
|
|
39
|
+
"@progress/kendo-vue-animation": "2.5.2-dev.202110150637",
|
|
40
|
+
"@progress/kendo-vue-common": "2.5.2-dev.202110150637",
|
|
41
|
+
"@progress/kendo-vue-popup": "2.5.2-dev.202110150637"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@progress/kendo-data-query": "^1.5.0",
|
|
45
45
|
"@progress/kendo-date-math": "^1.5.1",
|
|
46
46
|
"@progress/kendo-drawing": "^1.8.0",
|
|
47
47
|
"@progress/kendo-licensing": "^1.0.1",
|
|
48
|
-
"@progress/kendo-vue-buttons": "2.5.2-dev.
|
|
49
|
-
"@progress/kendo-vue-dateinputs": "2.5.2-dev.
|
|
50
|
-
"@progress/kendo-vue-dropdowns": "2.5.2-dev.
|
|
51
|
-
"@progress/kendo-vue-inputs": "2.5.2-dev.
|
|
52
|
-
"@progress/kendo-vue-intl": "2.5.2-dev.
|
|
48
|
+
"@progress/kendo-vue-buttons": "2.5.2-dev.202110150637",
|
|
49
|
+
"@progress/kendo-vue-dateinputs": "2.5.2-dev.202110150637",
|
|
50
|
+
"@progress/kendo-vue-dropdowns": "2.5.2-dev.202110150637",
|
|
51
|
+
"@progress/kendo-vue-inputs": "2.5.2-dev.202110150637",
|
|
52
|
+
"@progress/kendo-vue-intl": "2.5.2-dev.202110150637"
|
|
53
53
|
},
|
|
54
54
|
"@progress": {
|
|
55
55
|
"friendlyName": "Layouts",
|