@progress/kendo-vue-layout 10.2.0-develop.4 → 10.2.0-develop.6

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 (36) hide show
  1. package/contextmenu/ContextMenu.d.ts +15 -1
  2. package/contextmenu/ContextMenu.js +1 -1
  3. package/contextmenu/ContextMenu.mjs +34 -27
  4. package/dist/cdn/js/kendo-vue-layout.js +1 -1
  5. package/index.d.mts +3 -0
  6. package/index.d.ts +3 -0
  7. package/menu/BaseMenuItemInternalProps.d.ts +4 -0
  8. package/menu/MenuProps.d.ts +35 -0
  9. package/menu/components/Menu.d.ts +11 -3
  10. package/menu/components/Menu.js +1 -1
  11. package/menu/components/Menu.mjs +46 -34
  12. package/menu/components/MenuItemInternal.d.ts +20 -4
  13. package/menu/components/MenuItemInternal.js +1 -1
  14. package/menu/components/MenuItemInternal.mjs +156 -82
  15. package/menu/components/MenuItemLink.d.ts +8 -0
  16. package/menu/components/MenuItemLink.js +1 -1
  17. package/menu/components/MenuItemLink.mjs +13 -11
  18. package/menu/models/BaseMenuItem.d.ts +36 -0
  19. package/menu/models/MenuItemActionsRenderProps.d.ts +17 -0
  20. package/menu/models/MenuItemGroupHeaderRenderProps.d.ts +17 -0
  21. package/menu/utils/getNewItemIdUponKeyboardNavigation.js +1 -1
  22. package/menu/utils/getNewItemIdUponKeyboardNavigation.mjs +57 -62
  23. package/menu/utils/itemsIdsUtils.d.ts +0 -16
  24. package/menu/utils/itemsIdsUtils.js +1 -1
  25. package/menu/utils/itemsIdsUtils.mjs +23 -40
  26. package/menu/utils/misc.d.ts +8 -0
  27. package/menu/utils/misc.js +1 -1
  28. package/menu/utils/misc.mjs +23 -14
  29. package/menu/utils/navigableItems.d.ts +28 -0
  30. package/menu/utils/navigableItems.js +8 -0
  31. package/menu/utils/navigableItems.mjs +45 -0
  32. package/menu/utils/prepareInputItemsForInternalWork.js +1 -1
  33. package/menu/utils/prepareInputItemsForInternalWork.mjs +58 -46
  34. package/package-metadata.js +1 -1
  35. package/package-metadata.mjs +2 -2
  36. package/package.json +7 -7
@@ -13,7 +13,7 @@ import { MenuProps } from '../menu/MenuProps';
13
13
  /**
14
14
  * Represents the props of the ContextMenu component.
15
15
  */
16
- export interface ContextMenuProps extends Omit<MenuProps, 'openOnClick' | 'hoverOpenDelay' | 'hoverCloseDelay'> {
16
+ export interface ContextMenuProps extends Omit<MenuProps, 'openOnClick' | 'hoverOpenDelay' | 'hoverCloseDelay' | 'contextMenu'> {
17
17
  /**
18
18
  * Controls the visibility of the ContextMenu.
19
19
  */
@@ -39,6 +39,10 @@ declare const ContextMenu: import('vue').DefineComponent<import('vue').ExtractPr
39
39
  top: number;
40
40
  };
41
41
  };
42
+ vertical: {
43
+ type: PropType<boolean>;
44
+ default: boolean;
45
+ };
42
46
  items: {
43
47
  type: PropType<MenuItemModel[]>;
44
48
  default: any;
@@ -46,10 +50,13 @@ declare const ContextMenu: import('vue').DefineComponent<import('vue').ExtractPr
46
50
  dir: PropType<string>;
47
51
  itemRender: PropType<any>;
48
52
  linkRender: PropType<any>;
53
+ actionsRender: PropType<any>;
49
54
  customCloseItemIds: PropType<string[]>;
55
+ size: PropType<import('../menu/MenuProps').MenuSize>;
50
56
  className: PropType<string>;
51
57
  }>, {}, {
52
58
  visible: boolean;
59
+ lastItems: MenuItemModel[];
53
60
  }, {}, {
54
61
  handleClose(): void;
55
62
  handleSelect(event: MenuSelectEvent): void;
@@ -66,6 +73,10 @@ declare const ContextMenu: import('vue').DefineComponent<import('vue').ExtractPr
66
73
  top: number;
67
74
  };
68
75
  };
76
+ vertical: {
77
+ type: PropType<boolean>;
78
+ default: boolean;
79
+ };
69
80
  items: {
70
81
  type: PropType<MenuItemModel[]>;
71
82
  default: any;
@@ -73,12 +84,15 @@ declare const ContextMenu: import('vue').DefineComponent<import('vue').ExtractPr
73
84
  dir: PropType<string>;
74
85
  itemRender: PropType<any>;
75
86
  linkRender: PropType<any>;
87
+ actionsRender: PropType<any>;
76
88
  customCloseItemIds: PropType<string[]>;
89
+ size: PropType<import('../menu/MenuProps').MenuSize>;
77
90
  className: PropType<string>;
78
91
  }>> & Readonly<{
79
92
  onSelect?: (...args: any[]) => any;
80
93
  onClose?: (...args: any[]) => any;
81
94
  }>, {
95
+ vertical: boolean;
82
96
  items: MenuItemModel[];
83
97
  show: boolean;
84
98
  offset: Offset;
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),r=require("@progress/kendo-vue-common"),u=require("@progress/kendo-vue-popup"),l=require("../menu/components/Menu.js");function c(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!o.isVNode(e)}const d=o.defineComponent({name:"KendoContextMenu",props:{show:{type:Boolean,default:!1},offset:{type:Object,default:()=>({left:0,top:0})},items:{type:Array,default:void 0},dir:String,itemRender:[String,Object,Function],linkRender:[String,Object,Function],customCloseItemIds:Array,className:String},emits:["close","select"],data(){return{visible:this.show}},watch:{show(e){this.visible=e,r.canUseDOM&&(e?(o.nextTick(()=>{var n;const t=(n=this.$refs.popupRef)==null?void 0:n.$el,s=t==null?void 0:t.querySelector(".k-menu-item"),i=r.getActiveElement(t==null?void 0:t.ownerDocument);s&&s!==i&&s.focus()}),document.addEventListener("mousedown",this.handleClickOutside)):document.removeEventListener("mousedown",this.handleClickOutside))}},unmounted(){r.canUseDOM&&document.removeEventListener("mousedown",this.handleClickOutside)},methods:{handleClose(){this.$emit("close")},handleSelect(e){this.$emit("select",e)},handleClickOutside(e){var i,n;const t=(i=this.$refs.popupRef)==null?void 0:i.$el,s=e.target;if(t&&!t.contains(s)){if((n=s.closest)!=null&&n.call(s,".k-menu-item"))return;this.handleClose()}}},render(){var s;let e;const t=this.visible&&((s=this.$props.items)==null?void 0:s.length);return o.createVNode(u.Popup,{ref:"popupRef",show:!!t,offset:this.$props.offset,popupClass:"k-menu-popup k-overflow-visible"},{default:()=>[t?o.createVNode(l.Menu,{vertical:!0,items:this.$props.items,dir:this.$props.dir,itemRender:this.$props.itemRender,linkRender:this.$props.linkRender,customCloseItemIds:this.$props.customCloseItemIds,class:["k-context-menu",this.$props.className],onSelect:this.handleSelect},c(e=r.getDefaultSlots(this))?e:{default:()=>[e]}):void 0]})}});exports.ContextMenu=d;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),r=require("@progress/kendo-vue-common"),l=require("@progress/kendo-vue-popup"),c=require("../menu/components/Menu.js"),u=o.defineComponent({name:"KendoContextMenu",props:{show:{type:Boolean,default:!1},offset:{type:Object,default:()=>({left:0,top:0})},vertical:{type:Boolean,default:!0},items:{type:Array,default:void 0},dir:String,itemRender:[String,Object,Function],linkRender:[String,Object,Function],actionsRender:[String,Object,Function],customCloseItemIds:Array,size:String,className:String},emits:["close","select"],data(){return{visible:this.show,lastItems:this.items}},watch:{items(e){e!=null&&e.length&&(this.lastItems=e)},show(e){this.visible=e,r.canUseDOM&&(e?(o.nextTick(()=>{var n;const t=(n=this.$refs.popupRef)==null?void 0:n.$el,s=t==null?void 0:t.querySelector('[role="menuitem"]'),i=r.getActiveElement(t==null?void 0:t.ownerDocument);s&&s!==i&&s.focus()}),document.addEventListener("mousedown",this.handleClickOutside)):document.removeEventListener("mousedown",this.handleClickOutside))}},unmounted(){r.canUseDOM&&document.removeEventListener("mousedown",this.handleClickOutside)},methods:{handleClose(){this.$emit("close")},handleSelect(e){this.$emit("select",e)},handleClickOutside(e){var i,n;const t=(i=this.$refs.popupRef)==null?void 0:i.$el,s=e.target;if(t&&!t.contains(s)){if((n=s.closest)!=null&&n.call(s,".k-menu-popup"))return;this.handleClose()}}},render(){var s,i;const e=this.visible&&((s=this.$props.items)==null?void 0:s.length),t=(i=this.$props.items)!=null&&i.length?this.$props.items:this.lastItems;return o.createVNode(l.Popup,{ref:"popupRef",show:!!e,offset:this.$props.offset,popupClass:"k-menu-popup k-overflow-visible"},{default:()=>[o.createVNode(c.Menu,{vertical:this.$props.vertical,items:t,dir:this.$props.dir,itemRender:this.$props.itemRender,linkRender:this.$props.linkRender,actionsRender:this.$props.actionsRender,customCloseItemIds:this.$props.customCloseItemIds,size:this.$props.size,contextMenu:!0,className:this.$props.className,onSelect:this.handleSelect},this.$slots)]})}});exports.ContextMenu=u;
@@ -5,14 +5,11 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { defineComponent as l, createVNode as i, nextTick as c, isVNode as d } from "vue";
9
- import { getDefaultSlots as m, canUseDOM as r, getActiveElement as u } from "@progress/kendo-vue-common";
10
- import { Popup as p } from "@progress/kendo-vue-popup";
11
- import { Menu as f } from "../menu/components/Menu.mjs";
12
- function h(e) {
13
- return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !d(e);
14
- }
15
- const C = /* @__PURE__ */ l({
8
+ import { defineComponent as l, createVNode as n, nextTick as c } from "vue";
9
+ import { canUseDOM as r, getActiveElement as p } from "@progress/kendo-vue-common";
10
+ import { Popup as m } from "@progress/kendo-vue-popup";
11
+ import { Menu as d } from "../menu/components/Menu.mjs";
12
+ const $ = /* @__PURE__ */ l({
16
13
  name: "KendoContextMenu",
17
14
  props: {
18
15
  show: {
@@ -26,6 +23,10 @@ const C = /* @__PURE__ */ l({
26
23
  top: 0
27
24
  })
28
25
  },
26
+ vertical: {
27
+ type: Boolean,
28
+ default: !0
29
+ },
29
30
  items: {
30
31
  type: Array,
31
32
  default: void 0
@@ -33,21 +34,27 @@ const C = /* @__PURE__ */ l({
33
34
  dir: String,
34
35
  itemRender: [String, Object, Function],
35
36
  linkRender: [String, Object, Function],
37
+ actionsRender: [String, Object, Function],
36
38
  customCloseItemIds: Array,
39
+ size: String,
37
40
  className: String
38
41
  },
39
42
  emits: ["close", "select"],
40
43
  data() {
41
44
  return {
42
- visible: this.show
45
+ visible: this.show,
46
+ lastItems: this.items
43
47
  };
44
48
  },
45
49
  watch: {
50
+ items(e) {
51
+ e != null && e.length && (this.lastItems = e);
52
+ },
46
53
  show(e) {
47
54
  this.visible = e, r && (e ? (c(() => {
48
55
  var o;
49
- const t = (o = this.$refs.popupRef) == null ? void 0 : o.$el, s = t == null ? void 0 : t.querySelector(".k-menu-item"), n = u(t == null ? void 0 : t.ownerDocument);
50
- s && s !== n && s.focus();
56
+ const t = (o = this.$refs.popupRef) == null ? void 0 : o.$el, s = t == null ? void 0 : t.querySelector('[role="menuitem"]'), i = p(t == null ? void 0 : t.ownerDocument);
57
+ s && s !== i && s.focus();
51
58
  }), document.addEventListener("mousedown", this.handleClickOutside)) : document.removeEventListener("mousedown", this.handleClickOutside));
52
59
  }
53
60
  },
@@ -62,40 +69,40 @@ const C = /* @__PURE__ */ l({
62
69
  this.$emit("select", e);
63
70
  },
64
71
  handleClickOutside(e) {
65
- var n, o;
66
- const t = (n = this.$refs.popupRef) == null ? void 0 : n.$el, s = e.target;
72
+ var i, o;
73
+ const t = (i = this.$refs.popupRef) == null ? void 0 : i.$el, s = e.target;
67
74
  if (t && !t.contains(s)) {
68
- if ((o = s.closest) != null && o.call(s, ".k-menu-item"))
75
+ if ((o = s.closest) != null && o.call(s, ".k-menu-popup"))
69
76
  return;
70
77
  this.handleClose();
71
78
  }
72
79
  }
73
80
  },
74
81
  render() {
75
- var s;
76
- let e;
77
- const t = this.visible && ((s = this.$props.items) == null ? void 0 : s.length);
78
- return i(p, {
82
+ var s, i;
83
+ const e = this.visible && ((s = this.$props.items) == null ? void 0 : s.length), t = (i = this.$props.items) != null && i.length ? this.$props.items : this.lastItems;
84
+ return n(m, {
79
85
  ref: "popupRef",
80
- show: !!t,
86
+ show: !!e,
81
87
  offset: this.$props.offset,
82
88
  popupClass: "k-menu-popup k-overflow-visible"
83
89
  }, {
84
- default: () => [t ? i(f, {
85
- vertical: !0,
86
- items: this.$props.items,
90
+ default: () => [n(d, {
91
+ vertical: this.$props.vertical,
92
+ items: t,
87
93
  dir: this.$props.dir,
88
94
  itemRender: this.$props.itemRender,
89
95
  linkRender: this.$props.linkRender,
96
+ actionsRender: this.$props.actionsRender,
90
97
  customCloseItemIds: this.$props.customCloseItemIds,
91
- class: ["k-context-menu", this.$props.className],
98
+ size: this.$props.size,
99
+ contextMenu: !0,
100
+ className: this.$props.className,
92
101
  onSelect: this.handleSelect
93
- }, h(e = m(this)) ? e : {
94
- default: () => [e]
95
- }) : void 0]
102
+ }, this.$slots)]
96
103
  });
97
104
  }
98
105
  });
99
106
  export {
100
- C as ContextMenu
107
+ $ as ContextMenu
101
108
  };