@progress/kendo-vue-grid 8.1.2-develop.2 → 8.2.0

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 (58) hide show
  1. package/Grid.d.ts +36 -3
  2. package/Grid.js +1 -1
  3. package/Grid.mjs +706 -496
  4. package/GridSearchBox.js +1 -1
  5. package/GridSearchBox.mjs +5 -5
  6. package/GridState.d.ts +6 -0
  7. package/RootGrid.d.ts +6 -10
  8. package/cells/GridCell.d.ts +2 -0
  9. package/cells/GridCell.js +1 -1
  10. package/cells/GridCell.mjs +52 -43
  11. package/cells/GridDetailCell.d.ts +4 -1
  12. package/cells/GridDetailCell.js +1 -1
  13. package/cells/GridDetailCell.mjs +27 -18
  14. package/cells/GridEditCell.d.ts +2 -0
  15. package/cells/GridEditCell.js +1 -1
  16. package/cells/GridEditCell.mjs +21 -14
  17. package/cells/GridGroupCell.d.ts +1 -0
  18. package/cells/GridGroupCell.js +1 -1
  19. package/cells/GridGroupCell.mjs +45 -40
  20. package/cells/GridHierarchyCell.d.ts +1 -0
  21. package/cells/GridHierarchyCell.js +1 -1
  22. package/cells/GridHierarchyCell.mjs +25 -20
  23. package/cells/GridSelectionCell.d.ts +4 -1
  24. package/cells/GridSelectionCell.js +1 -1
  25. package/cells/GridSelectionCell.mjs +31 -21
  26. package/cells/pincell/GridPinCell.d.ts +6 -2
  27. package/cells/pincell/GridPinCell.js +1 -1
  28. package/cells/pincell/GridPinCell.mjs +67 -42
  29. package/cells/pincell/GridPinDropdownButton.js +1 -1
  30. package/cells/pincell/GridPinDropdownButton.mjs +25 -25
  31. package/common.d.ts +3 -0
  32. package/common.js +1 -1
  33. package/common.mjs +4 -1
  34. package/components/PinnedRowsTable.js +1 -1
  35. package/components/PinnedRowsTable.mjs +46 -34
  36. package/components/table/GridTable.js +1 -1
  37. package/components/table/GridTable.mjs +6 -6
  38. package/components/table/GridTableScrollable.js +1 -1
  39. package/components/table/GridTableScrollable.mjs +4 -4
  40. package/contextMenu/GridContextMenu.d.ts +155 -0
  41. package/contextMenu/GridContextMenu.js +8 -0
  42. package/contextMenu/GridContextMenu.mjs +336 -0
  43. package/contextMenu/enums.d.ts +40 -0
  44. package/contextMenu/enums.js +8 -0
  45. package/contextMenu/enums.mjs +12 -0
  46. package/dist/cdn/js/kendo-vue-grid.js +1 -1
  47. package/header/HeaderRow.d.ts +1 -0
  48. package/header/HeaderRow.js +1 -1
  49. package/header/HeaderRow.mjs +92 -81
  50. package/index.d.mts +3 -0
  51. package/index.d.ts +3 -0
  52. package/index.js +1 -1
  53. package/index.mjs +61 -53
  54. package/interfaces/GridProps.d.ts +31 -1
  55. package/interfaces/events.d.ts +38 -0
  56. package/package-metadata.js +1 -1
  57. package/package-metadata.mjs +2 -2
  58. package/package.json +13 -13
@@ -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"),g=require("@progress/kendo-vue-common"),w=require("@progress/kendo-vue-popup"),u=require("@progress/kendo-svg-icons"),t=require("../../messages/main.js"),B=require("@progress/kendo-vue-layout"),V=o.defineComponent({name:"GridPinDropdownButton",props:{dataItem:Object},inject:{kendoLocalizationService:{default:null},kendo:{default:null}},setup(l){const e=o.inject("kendoLocalizationService",{}),s=o.inject("kendo",{}),i=o.ref(!1),T="#",P=g.guid(),a=o.computed(()=>s!=null&&s.getRowPinPosition?s.getRowPinPosition(l.dataItem):"none"),p=o.computed(()=>a.value!=="none"),c=o.computed(()=>{var n;return((n=e==null?void 0:e.toLanguageString)==null?void 0:n.call(e,t.gridPinToTop,t.messages[t.gridPinToTop]))||t.messages[t.gridPinToTop]}),f=o.computed(()=>{var n;return((n=e==null?void 0:e.toLanguageString)==null?void 0:n.call(e,t.gridPinToBottom,t.messages[t.gridPinToBottom]))||t.messages[t.gridPinToBottom]}),r=o.computed(()=>{var n;return((n=e==null?void 0:e.toLanguageString)==null?void 0:n.call(e,t.gridUnpin,t.messages[t.gridUnpin]))||t.messages[t.gridUnpin]}),I=o.computed(()=>{const n=[];return p.value&&n.push({text:r.value,svgIcon:u.unpinOutlineIcon,data:{action:"unpin"}}),a.value!=="top"&&n.push({text:c.value,svgIcon:u.pinOutlineTopIcon,data:{action:"pinTop"}}),a.value!=="bottom"&&n.push({text:f.value,svgIcon:u.pinOutlineBottomIcon,data:{action:"pinBottom"}}),n});return{anchor:P,showPopup:i,hrefValue:T,isPinned:p,pinToTopText:c,unpinText:r,menuItems:I,handleToggle:n=>{n.preventDefault(),i.value=!i.value},handleClose:n=>{n.isAnchorClicked||(i.value=!1)},handleMenuSelect:n=>{var d,h,m;const v=(h=(d=n.item)==null?void 0:d.data)==null?void 0:h.action;(m=s==null?void 0:s.onRowPin)==null||m.call(s,v,l.dataItem),i.value=!1}}},render(){return[o.createVNode("a",{class:"k-pin-cell",ref:this.anchor,href:this.hrefValue,tabindex:-1,onClick:this.handleToggle,"aria-label":this.isPinned?this.unpinText:this.pinToTopText},[o.createVNode(g.Icon,{name:this.isPinned?"unpin":"pin",icon:this.isPinned?u.unpinOutlineIcon:u.pinOutlineIcon},null)]),o.createVNode(w.Popup,{anchor:this.anchor,show:this.showPopup,anchorAlign:{vertical:"bottom",horizontal:"right"},popupClass:"k-menu-popup",onMousedownoutside:this.handleClose},{default:()=>[o.createVNode(B.Menu,{vertical:!0,items:this.menuItems,onSelect:this.handleMenuSelect},null)]})]}});exports.GridPinDropdownButton=V;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),m=require("@progress/kendo-vue-common"),w=require("@progress/kendo-vue-popup"),u=require("@progress/kendo-svg-icons"),t=require("../../messages/main.js"),B=require("@progress/kendo-vue-layout"),V=o.defineComponent({name:"GridPinDropdownButton",props:{dataItem:Object},inject:{kendoLocalizationService:{default:null},gridContext:{default:null}},setup(l){const e=o.inject("kendoLocalizationService",{}),s=o.inject("gridContext",{}),i=o.ref(!1),T="#",P=m.guid(),a=o.computed(()=>s!=null&&s.getRowPinPosition?s.getRowPinPosition(l.dataItem):"none"),p=o.computed(()=>a.value!=="none"),r=o.computed(()=>{var n;return((n=e==null?void 0:e.toLanguageString)==null?void 0:n.call(e,t.gridPinToTop,t.messages[t.gridPinToTop]))||t.messages[t.gridPinToTop]}),f=o.computed(()=>{var n;return((n=e==null?void 0:e.toLanguageString)==null?void 0:n.call(e,t.gridPinToBottom,t.messages[t.gridPinToBottom]))||t.messages[t.gridPinToBottom]}),c=o.computed(()=>{var n;return((n=e==null?void 0:e.toLanguageString)==null?void 0:n.call(e,t.gridUnpin,t.messages[t.gridUnpin]))||t.messages[t.gridUnpin]}),I=o.computed(()=>{const n=[];return p.value&&n.push({text:c.value,svgIcon:u.unpinOutlineIcon,data:{action:"unpin"}}),a.value!=="top"&&n.push({text:r.value,svgIcon:u.pinOutlineTopIcon,data:{action:"pinTop"}}),a.value!=="bottom"&&n.push({text:f.value,svgIcon:u.pinOutlineBottomIcon,data:{action:"pinBottom"}}),n});return{anchor:P,showPopup:i,hrefValue:T,isPinned:p,pinToTopText:r,unpinText:c,menuItems:I,handleToggle:n=>{n.preventDefault(),i.value=!i.value},handleClose:n=>{n.isAnchorClicked||(i.value=!1)},handleMenuSelect:n=>{var d,h,g;const v=(h=(d=n.item)==null?void 0:d.data)==null?void 0:h.action;(g=s==null?void 0:s.onRowPin)==null||g.call(s,v,l.dataItem),i.value=!1}}},render(){return[o.createVNode("a",{class:"k-pin-cell",ref:this.anchor,href:this.hrefValue,tabindex:-1,onClick:this.handleToggle,"aria-label":this.isPinned?this.unpinText:this.pinToTopText},[o.createVNode(m.Icon,{name:this.isPinned?"unpin":"pin",icon:this.isPinned?u.unpinOutlineIcon:u.pinOutlineIcon},null)]),o.createVNode(w.Popup,{anchor:this.anchor,show:this.showPopup,anchorAlign:{vertical:"bottom",horizontal:"right"},popupClass:"k-menu-popup",onMousedownoutside:this.handleClose},{default:()=>[o.createVNode(B.Menu,{vertical:!0,items:this.menuItems,onSelect:this.handleMenuSelect},null)]})]}});exports.GridPinDropdownButton=V;
@@ -6,10 +6,10 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  import { defineComponent as M, createVNode as u, inject as P, ref as O, computed as e } from "vue";
9
- import { Icon as j, guid as D } from "@progress/kendo-vue-common";
10
- import { Popup as R } from "@progress/kendo-vue-popup";
11
- import { unpinOutlineIcon as I, pinOutlineIcon as V, pinOutlineTopIcon as A, pinOutlineBottomIcon as C } from "@progress/kendo-svg-icons";
12
- import { messages as s, gridPinToTop as l, gridPinToBottom as p, gridUnpin as h } from "../../messages/main.mjs";
9
+ import { Icon as C, guid as j } from "@progress/kendo-vue-common";
10
+ import { Popup as D } from "@progress/kendo-vue-popup";
11
+ import { unpinOutlineIcon as I, pinOutlineIcon as R, pinOutlineTopIcon as V, pinOutlineBottomIcon as A } from "@progress/kendo-svg-icons";
12
+ import { messages as i, gridPinToTop as l, gridPinToBottom as p, gridUnpin as r } from "../../messages/main.mjs";
13
13
  import { Menu as G } from "@progress/kendo-vue-layout";
14
14
  const Q = /* @__PURE__ */ M({
15
15
  name: "GridPinDropdownButton",
@@ -20,21 +20,21 @@ const Q = /* @__PURE__ */ M({
20
20
  kendoLocalizationService: {
21
21
  default: null
22
22
  },
23
- kendo: {
23
+ gridContext: {
24
24
  default: null
25
25
  }
26
26
  },
27
- setup(r) {
28
- const t = P("kendoLocalizationService", {}), o = P("kendo", {}), i = O(!1), w = "#", v = D(), a = e(() => o != null && o.getRowPinPosition ? o.getRowPinPosition(r.dataItem) : "none"), c = e(() => a.value !== "none"), m = e(() => {
27
+ setup(h) {
28
+ const t = P("kendoLocalizationService", {}), o = P("gridContext", {}), s = O(!1), w = "#", v = j(), a = e(() => o != null && o.getRowPinPosition ? o.getRowPinPosition(h.dataItem) : "none"), c = e(() => a.value !== "none"), m = e(() => {
29
29
  var n;
30
- return ((n = t == null ? void 0 : t.toLanguageString) == null ? void 0 : n.call(t, l, s[l])) || s[l];
31
- }), B = e(() => {
30
+ return ((n = t == null ? void 0 : t.toLanguageString) == null ? void 0 : n.call(t, l, i[l])) || i[l];
31
+ }), x = e(() => {
32
32
  var n;
33
- return ((n = t == null ? void 0 : t.toLanguageString) == null ? void 0 : n.call(t, p, s[p])) || s[p];
33
+ return ((n = t == null ? void 0 : t.toLanguageString) == null ? void 0 : n.call(t, p, i[p])) || i[p];
34
34
  }), d = e(() => {
35
35
  var n;
36
- return ((n = t == null ? void 0 : t.toLanguageString) == null ? void 0 : n.call(t, h, s[h])) || s[h];
37
- }), b = e(() => {
36
+ return ((n = t == null ? void 0 : t.toLanguageString) == null ? void 0 : n.call(t, r, i[r])) || i[r];
37
+ }), B = e(() => {
38
38
  const n = [];
39
39
  return c.value && n.push({
40
40
  text: d.value,
@@ -44,13 +44,13 @@ const Q = /* @__PURE__ */ M({
44
44
  }
45
45
  }), a.value !== "top" && n.push({
46
46
  text: m.value,
47
- svgIcon: A,
47
+ svgIcon: V,
48
48
  data: {
49
49
  action: "pinTop"
50
50
  }
51
51
  }), a.value !== "bottom" && n.push({
52
- text: B.value,
53
- svgIcon: C,
52
+ text: x.value,
53
+ svgIcon: A,
54
54
  data: {
55
55
  action: "pinBottom"
56
56
  }
@@ -58,22 +58,22 @@ const Q = /* @__PURE__ */ M({
58
58
  });
59
59
  return {
60
60
  anchor: v,
61
- showPopup: i,
61
+ showPopup: s,
62
62
  hrefValue: w,
63
63
  isPinned: c,
64
64
  pinToTopText: m,
65
65
  unpinText: d,
66
- menuItems: b,
66
+ menuItems: B,
67
67
  handleToggle: (n) => {
68
- n.preventDefault(), i.value = !i.value;
68
+ n.preventDefault(), s.value = !s.value;
69
69
  },
70
70
  handleClose: (n) => {
71
- n.isAnchorClicked || (i.value = !1);
71
+ n.isAnchorClicked || (s.value = !1);
72
72
  },
73
73
  handleMenuSelect: (n) => {
74
- var f, g, T;
75
- const x = (g = (f = n.item) == null ? void 0 : f.data) == null ? void 0 : g.action;
76
- (T = o == null ? void 0 : o.onRowPin) == null || T.call(o, x, r.dataItem), i.value = !1;
74
+ var g, f, T;
75
+ const b = (f = (g = n.item) == null ? void 0 : g.data) == null ? void 0 : f.action;
76
+ (T = o == null ? void 0 : o.onRowPin) == null || T.call(o, b, h.dataItem), s.value = !1;
77
77
  }
78
78
  };
79
79
  },
@@ -85,10 +85,10 @@ const Q = /* @__PURE__ */ M({
85
85
  tabindex: -1,
86
86
  onClick: this.handleToggle,
87
87
  "aria-label": this.isPinned ? this.unpinText : this.pinToTopText
88
- }, [u(j, {
88
+ }, [u(C, {
89
89
  name: this.isPinned ? "unpin" : "pin",
90
- icon: this.isPinned ? I : V
91
- }, null)]), u(R, {
90
+ icon: this.isPinned ? I : R
91
+ }, null)]), u(D, {
92
92
  anchor: this.anchor,
93
93
  show: this.showPopup,
94
94
  anchorAlign: {
package/common.d.ts CHANGED
@@ -33,6 +33,7 @@ declare const gridProps: {
33
33
  default: () => any;
34
34
  };
35
35
  cells: PropType<import('.').GridCellsSettings>;
36
+ contextMenu: PropType<boolean | import('.').GridContextMenuOptions | ((options: import('.').GridCellBaseOptions) => boolean | import('.').GridContextMenuOptions)>;
36
37
  rows: PropType<import('./interfaces/GridRowsSettings').GridRowsSettings>;
37
38
  defaultColumnsState: {
38
39
  type: PropType<import('.').GridColumnState[]>;
@@ -191,5 +192,7 @@ declare const gridProps: {
191
192
  onSearchchange: PropType<(event: import('.').GridSearchChangeEvent) => void>;
192
193
  onGroupexpandchange: PropType<(event: import('.').GridGroupExpandChangeEvent) => void>;
193
194
  onDetailexpandchange: PropType<(event: import('.').GridDetailExpandChangeEvent) => void>;
195
+ onContextmenu: PropType<(event: import('.').GridContextMenuEvent) => void>;
196
+ onContextmenuitemclick: PropType<(event: import('.').GridContextMenuItemClickEvent) => void>;
194
197
  };
195
198
  export { gridProps };
package/common.js CHANGED
@@ -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"});require("vue");const t=require("@progress/kendo-vue-common"),n={id:String,autoProcessData:[Boolean,Object],topCacheCount:{type:Number,default:0},collapsedGroups:{type:Array,default:function(){return[]}},uniqueField:String,totalGroupedHeight:Number,allGroupedItems:Object,alternatePerGroup:Boolean,columns:Array,columnsState:{type:Array,default:function(){}},cells:Object,rows:Object,defaultColumnsState:{type:Array,default:function(){}},columnVirtualization:Boolean,dataItems:[Array,Object],sortable:[Boolean,Object],defaultSort:Array,sort:Array,filterable:Boolean,filterOperators:Object,filterCellRender:[String,Function,Object],headerCellRender:[String,Function,Object],showLoader:{type:Boolean,default:void 0},loader:[String,Function,Object],lockGroups:Boolean,pinnable:Boolean,defaultPinnedTopRows:Array,defaultPinnedBottomRows:Array,pinnedTopRows:Array,pinnedBottomRows:Array,defaultFilter:Object,filter:Object,defaultSearch:Object,search:Object,searchFields:Array,highlight:Object,pageable:[Boolean,Object],pageSize:Number,total:Number,fixedScroll:Boolean,skip:Number,defaultSkip:Number,take:Number,defaultTake:Number,expandField:String,expandColumn:Object,selectedField:String,cellRender:[String,Function,Object],rowRender:[String,Function,Object],rowSpannable:[Boolean,Object],resizable:Boolean,reorderable:Boolean,group:Array,defaultGroup:Array,groupable:[Boolean,Object],groupExpand:Array,defaultGroupExpand:Array,detailExpand:Object,defaultDetailExpand:Object,editField:String,rowClass:Function,select:Object,defaultSelect:Object,selectable:[Boolean,Object],scrollable:{type:String,default:"scrollable"},size:{type:String,default:"medium",validator:function(e){return["small","medium"].includes(e)}},pager:[String,Function,Object],rowHeight:Number,detailRowHeight:Number,detail:[String,Function,Object],columnMenu:[Boolean,String,Function,Object],columnMenuAnimate:{type:[Boolean,Object],default:function(){return!0}},columnMenuIcon:t.SvgIcon,dataItemKey:String,navigatable:{type:Boolean,default:!1},onItemchange:Function,onExpandchange:Function,onDatastatechange:Function,onPagechange:Function,onSortchange:Function,onFilterchange:Function,onGroupchange:Function,onSearchchange:Function,onGroupexpandchange:Function,onDetailexpandchange:Function};exports.gridProps=n;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("vue");const t=require("@progress/kendo-vue-common"),n={id:String,autoProcessData:[Boolean,Object],topCacheCount:{type:Number,default:0},collapsedGroups:{type:Array,default:function(){return[]}},uniqueField:String,totalGroupedHeight:Number,allGroupedItems:Object,alternatePerGroup:Boolean,columns:Array,columnsState:{type:Array,default:function(){}},cells:Object,contextMenu:[Boolean,Object,Function],rows:Object,defaultColumnsState:{type:Array,default:function(){}},columnVirtualization:Boolean,dataItems:[Array,Object],sortable:[Boolean,Object],defaultSort:Array,sort:Array,filterable:Boolean,filterOperators:Object,filterCellRender:[String,Function,Object],headerCellRender:[String,Function,Object],showLoader:{type:Boolean,default:void 0},loader:[String,Function,Object],lockGroups:Boolean,pinnable:Boolean,defaultPinnedTopRows:Array,defaultPinnedBottomRows:Array,pinnedTopRows:Array,pinnedBottomRows:Array,defaultFilter:Object,filter:Object,defaultSearch:Object,search:Object,searchFields:Array,highlight:Object,pageable:[Boolean,Object],pageSize:Number,total:Number,fixedScroll:Boolean,skip:Number,defaultSkip:Number,take:Number,defaultTake:Number,expandField:String,expandColumn:Object,selectedField:String,cellRender:[String,Function,Object],rowRender:[String,Function,Object],rowSpannable:[Boolean,Object],resizable:Boolean,reorderable:Boolean,group:Array,defaultGroup:Array,groupable:[Boolean,Object],groupExpand:Array,defaultGroupExpand:Array,detailExpand:Object,defaultDetailExpand:Object,editField:String,rowClass:Function,select:Object,defaultSelect:Object,selectable:[Boolean,Object],scrollable:{type:String,default:"scrollable"},size:{type:String,default:"medium",validator:function(e){return["small","medium"].includes(e)}},pager:[String,Function,Object],rowHeight:Number,detailRowHeight:Number,detail:[String,Function,Object],columnMenu:[Boolean,String,Function,Object],columnMenuAnimate:{type:[Boolean,Object],default:function(){return!0}},columnMenuIcon:t.SvgIcon,dataItemKey:String,navigatable:{type:Boolean,default:!1},onItemchange:Function,onExpandchange:Function,onDatastatechange:Function,onPagechange:Function,onSortchange:Function,onFilterchange:Function,onGroupchange:Function,onSearchchange:Function,onGroupexpandchange:Function,onDetailexpandchange:Function,onContextmenu:Function,onContextmenuitemclick:Function};exports.gridProps=n;
package/common.mjs CHANGED
@@ -31,6 +31,7 @@ const a = {
31
31
  }
32
32
  },
33
33
  cells: Object,
34
+ contextMenu: [Boolean, Object, Function],
34
35
  rows: Object,
35
36
  defaultColumnsState: {
36
37
  type: Array,
@@ -128,7 +129,9 @@ const a = {
128
129
  onGroupchange: Function,
129
130
  onSearchchange: Function,
130
131
  onGroupexpandchange: Function,
131
- onDetailexpandchange: Function
132
+ onDetailexpandchange: Function,
133
+ onContextmenu: Function,
134
+ onContextmenuitemclick: Function
132
135
  };
133
136
  export {
134
137
  a as gridProps
@@ -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 t=require("vue"),n=require("@progress/kendo-vue-common"),c=require("@progress/kendo-vue-data-tools"),R=require("@progress/kendo-vue-intl"),L=require("../rows/GridRow.js"),I=require("../getRowContents.js"),l=require("../messages/main.js"),C=t.defineComponent({name:"PinnedRowsTable",props:{size:String,cols:Array,dataRowContext:Object,position:String,pinnedItems:Array,rowHeight:Number,rows:Object,selectable:Object},inject:{gridContext:{default:()=>({})},kendoLocalizationService:{default:null}},mounted(){this.tableRef=n.getRef(this,"table"),this.colGroupRefEl=n.getRef(this,"colGroup")},updated(){this.tableRef=n.getRef(this,"table"),this.colGroupRefEl=n.getRef(this,"colGroup")},methods:{setWidth(e){const a=n.getRef(this,"table");a&&(a.style.width=e?e+"px":"")},setScrollLeft(e){const a=n.getRef(this,"pinnedRef");a&&a.scrollLeft!==e&&(a.scrollLeft=e)}},setup(e){const a=t.inject("kendo",{}),d=t.computed(()=>e.position==="top"),m=t.computed(()=>d.value?a.pinnedTopRef:a.pinnedBottomRef),p=t.ref(!1),w=s=>{const o=a.containerElementRef;if(!o||p.value)return;const i=s.currentTarget.scrollLeft;o.scrollLeft!==i&&(o.scrollLeft=i)},g=t.computed(()=>!e.pinnedItems||!e.dataRowContext?[]:e.pinnedItems.map((s,o)=>{var b;const i={dataItem:s,rowType:"data",level:0,expanded:!1,dataIndex:o},r=e.dataRowContext.dataItemKey,u="pinned_"+((r?n.getter(r)(s):void 0)||"ai"+o),f=I.getRowContents(e.dataRowContext,i,u,o),v=(b=e.rows)!=null&&b.pinnedData?{...e.rows,data:e.rows.pinnedData}:e.rows;return t.createVNode(L.GridRow,{key:u,rowType:"data",item:i,dataIndex:o,ariaRowIndex:o+1,absoluteRowIndex:o,isAltRow:o%2!==0,isHidden:!1,rowHeight:e.rowHeight,isSelected:f.isSelected,rows:v},{default:()=>[f.row]})})),h=t.computed(()=>n.classNames("k-grid-pinned-container",{"k-pos-bottom":!d.value})),S=t.computed(()=>n.classNames(n.uGrid.table({size:e.size}))),y=s=>{var i,r;const o=(i=e.pinnedItems)==null?void 0:i[s.startRowIndex];o&&((r=a.pinnedSelectionRelease)==null||r.call(a,s,o))},N=t.computed(()=>e.selectable?{...typeof e.selectable=="object"?e.selectable:{},enabled:!0,drag:!1}:e.selectable),T=t.computed(()=>d.value?c.tableKeyboardNavigationTopPinnedAttributes:c.tableKeyboardNavigationBottomPinnedAttributes);return{isTop:d,pinnedRef:m,handlePinnedScroll:w,pinnedRows:g,containerClassName:h,tableClassName:S,handleSelectionRelease:y,pinnedSelectable:N,pinnedBodyAttributes:T}},render(){return t.createVNode("div",{class:this.containerClassName,role:"presentation",style:{display:this.pinnedRows.length?"":"none"}},[t.createVNode("div",{class:"k-grid-pinned-wrap",ref:n.setRef(this,"pinnedRef"),onScroll:this.handlePinnedScroll},[t.createVNode(c.TableSelection,{selectable:this.pinnedSelectable,onRelease:this.handleSelectionRelease},{default:()=>[t.createVNode("table",{ref:n.setRef(this,"table"),class:this.tableClassName,"aria-label":this.isTop?R.provideLocalizationService(this).toLanguageString(l.pinnedTopRowsAriaLabel,l.messages[l.pinnedTopRowsAriaLabel]):R.provideLocalizationService(this).toLanguageString(l.pinnedBottomRowsAriaLabel,l.messages[l.pinnedBottomRowsAriaLabel])},[t.createVNode("colgroup",{ref:n.setRef(this,"colGroup")},[this.$props.cols]),t.createVNode("tbody",t.mergeProps({class:n.classNames(n.uGrid.tbody({}))},this.pinnedBodyAttributes),[this.pinnedRows])])]})])])}});exports.PinnedRowsTable=C;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),o=require("@progress/kendo-vue-common"),c=require("@progress/kendo-vue-data-tools"),b=require("@progress/kendo-vue-intl"),T=require("../rows/GridRow.js"),I=require("../getRowContents.js"),l=require("../messages/main.js"),C=t.defineComponent({name:"PinnedRowsTable",props:{size:String,cols:Array,dataRowContext:Object,position:String,pinnedItems:Array,rowHeight:Number,rows:Object,selectable:Object},inject:{gridContext:{default:()=>({})},kendoLocalizationService:{default:null}},mounted(){this.tableRef=o.getRef(this,"table"),this.colGroupRefEl=o.getRef(this,"colGroup")},updated(){this.tableRef=o.getRef(this,"table"),this.colGroupRefEl=o.getRef(this,"colGroup")},methods:{setWidth(e){const a=o.getRef(this,"table");a&&(a.style.width=e?e+"px":"")},setScrollLeft(e){const a=o.getRef(this,"pinnedRef");a&&a.scrollLeft!==e&&(a.scrollLeft=e)}},setup(e){const a=t.inject("gridContext",{}),d=t.computed(()=>e.position==="top"),m=t.computed(()=>d.value?a.pinnedTopRef:a.pinnedBottomRef),w=t.ref(!1),g=i=>{const n=a.containerElementRef;if(!n||w.value)return;const s=i.currentTarget.scrollLeft;n.scrollLeft!==s&&(n.scrollLeft=s)},h=t.computed(()=>{if(!e.rows)return;const{pinnedData:i,...n}=e.rows;return i?{...n,data:i}:e.rows}),p=t.computed(()=>!e.pinnedItems||!e.dataRowContext?[]:e.pinnedItems.map((i,n)=>{var R;const s={dataItem:i,rowType:"data",level:0,expanded:!1,dataIndex:n},r=e.dataRowContext.dataItemKey,u="pinned_"+((r?o.getter(r)(i):void 0)||"ai"+n),f=I.getRowContents(e.dataRowContext,s,u,n);return(R=e.rows)!=null&&R.pinnedData?{...e.rows,data:e.rows.pinnedData}:e.rows,t.createVNode(T.GridRow,{key:u,rowType:"data",isPinned:!0,item:s,dataIndex:n,ariaRowIndex:n+1,absoluteRowIndex:n,isAltRow:n%2!==0,isHidden:!1,rowHeight:e.rowHeight,isSelected:f.isSelected,rows:h.value},{default:()=>[f.row]})})),S=t.computed(()=>o.classNames("k-grid-pinned-container",{"k-pos-bottom":!d.value})),y=t.computed(()=>o.classNames(o.uGrid.table({size:e.size}))),N=i=>{var s,r;const n=(s=e.pinnedItems)==null?void 0:s[i.startRowIndex];n&&((r=a.pinnedSelectionRelease)==null||r.call(a,i,n))},v=t.computed(()=>e.selectable?{...typeof e.selectable=="object"?e.selectable:{},enabled:!0,drag:!1}:e.selectable),L=t.computed(()=>d.value?c.tableKeyboardNavigationTopPinnedAttributes:c.tableKeyboardNavigationBottomPinnedAttributes);return{isTop:d,pinnedRef:m,handlePinnedScroll:g,pinnedRows:p,containerClassName:S,tableClassName:y,handleSelectionRelease:N,pinnedSelectable:v,pinnedBodyAttributes:L}},render(){return t.createVNode("div",{class:this.containerClassName,role:"presentation",style:this.pinnedRows.length?void 0:{display:"none"}},[t.createVNode("div",{class:"k-grid-pinned-wrap",ref:o.setRef(this,"pinnedRef"),onScroll:this.handlePinnedScroll},[t.createVNode(c.TableSelection,{selectable:this.pinnedSelectable,onRelease:this.handleSelectionRelease},{default:()=>[t.createVNode("table",{ref:o.setRef(this,"table"),class:this.tableClassName,"aria-label":this.isTop?b.provideLocalizationService(this).toLanguageString(l.pinnedTopRowsAriaLabel,l.messages[l.pinnedTopRowsAriaLabel]):b.provideLocalizationService(this).toLanguageString(l.pinnedBottomRowsAriaLabel,l.messages[l.pinnedBottomRowsAriaLabel])},[t.createVNode("colgroup",{ref:o.setRef(this,"colGroup")},[this.$props.cols]),t.createVNode("tbody",t.mergeProps({class:o.classNames(o.uGrid.tbody({}))},this.pinnedBodyAttributes),[this.pinnedRows])])]})])])}});exports.PinnedRowsTable=C;
@@ -5,14 +5,14 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { defineComponent as G, createVNode as a, mergeProps as P, inject as j, computed as s, ref as x } from "vue";
8
+ import { defineComponent as x, createVNode as s, mergeProps as G, inject as j, computed as a, ref as k } from "vue";
9
9
  import { setRef as c, classNames as f, uGrid as R, getter as K, getRef as l } from "@progress/kendo-vue-common";
10
10
  import { TableSelection as z, tableKeyboardNavigationTopPinnedAttributes as B, tableKeyboardNavigationBottomPinnedAttributes as E } from "@progress/kendo-vue-data-tools";
11
- import { provideLocalizationService as p } from "@progress/kendo-vue-intl";
11
+ import { provideLocalizationService as w } from "@progress/kendo-vue-intl";
12
12
  import { GridRow as H } from "../rows/GridRow.mjs";
13
- import { getRowContents as O } from "../getRowContents.mjs";
14
- import { pinnedTopRowsAriaLabel as h, messages as w, pinnedBottomRowsAriaLabel as g } from "../messages/main.mjs";
15
- const M = /* @__PURE__ */ G({
13
+ import { getRowContents as D } from "../getRowContents.mjs";
14
+ import { pinnedTopRowsAriaLabel as h, messages as p, pinnedBottomRowsAriaLabel as g } from "../messages/main.mjs";
15
+ const M = /* @__PURE__ */ x({
16
16
  name: "PinnedRowsTable",
17
17
  props: {
18
18
  size: String,
@@ -49,27 +49,39 @@ const M = /* @__PURE__ */ G({
49
49
  }
50
50
  },
51
51
  setup(e) {
52
- const n = j("kendo", {}), d = s(() => e.position === "top"), S = s(() => d.value ? n.pinnedTopRef : n.pinnedBottomRef), y = x(!1), I = (o) => {
52
+ const n = j("gridContext", {}), d = a(() => e.position === "top"), S = a(() => d.value ? n.pinnedTopRef : n.pinnedBottomRef), y = k(!1), I = (o) => {
53
53
  const t = n.containerElementRef;
54
54
  if (!t || y.value)
55
55
  return;
56
56
  const i = o.currentTarget.scrollLeft;
57
57
  t.scrollLeft !== i && (t.scrollLeft = i);
58
- }, L = s(() => !e.pinnedItems || !e.dataRowContext ? [] : e.pinnedItems.map((o, t) => {
59
- var u;
58
+ }, v = a(() => {
59
+ if (!e.rows)
60
+ return;
61
+ const {
62
+ pinnedData: o,
63
+ ...t
64
+ } = e.rows;
65
+ return o ? {
66
+ ...t,
67
+ data: o
68
+ } : e.rows;
69
+ }), L = a(() => !e.pinnedItems || !e.dataRowContext ? [] : e.pinnedItems.map((o, t) => {
70
+ var m;
60
71
  const i = {
61
72
  dataItem: o,
62
73
  rowType: "data",
63
74
  level: 0,
64
75
  expanded: !1,
65
76
  dataIndex: t
66
- }, r = e.dataRowContext.dataItemKey, b = "pinned_" + ((r ? K(r)(o) : void 0) || "ai" + t), m = O(e.dataRowContext, i, b, t), k = (u = e.rows) != null && u.pinnedData ? {
77
+ }, r = e.dataRowContext.dataItemKey, u = "pinned_" + ((r ? K(r)(o) : void 0) || "ai" + t), b = D(e.dataRowContext, i, u, t);
78
+ return (m = e.rows) != null && m.pinnedData ? {
67
79
  ...e.rows,
68
80
  data: e.rows.pinnedData
69
- } : e.rows;
70
- return a(H, {
71
- key: b,
81
+ } : e.rows, s(H, {
82
+ key: u,
72
83
  rowType: "data",
84
+ isPinned: !0,
73
85
  item: i,
74
86
  dataIndex: t,
75
87
  ariaRowIndex: t + 1,
@@ -77,58 +89,58 @@ const M = /* @__PURE__ */ G({
77
89
  isAltRow: t % 2 !== 0,
78
90
  isHidden: !1,
79
91
  rowHeight: e.rowHeight,
80
- isSelected: m.isSelected,
81
- rows: k
92
+ isSelected: b.isSelected,
93
+ rows: v.value
82
94
  }, {
83
- default: () => [m.row]
95
+ default: () => [b.row]
84
96
  });
85
- })), T = s(() => f("k-grid-pinned-container", {
97
+ })), C = a(() => f("k-grid-pinned-container", {
86
98
  "k-pos-bottom": !d.value
87
- })), v = s(() => f(R.table({
99
+ })), T = a(() => f(R.table({
88
100
  size: e.size
89
- }))), C = (o) => {
101
+ }))), A = (o) => {
90
102
  var i, r;
91
103
  const t = (i = e.pinnedItems) == null ? void 0 : i[o.startRowIndex];
92
104
  t && ((r = n.pinnedSelectionRelease) == null || r.call(n, o, t));
93
- }, A = s(() => e.selectable ? {
105
+ }, N = a(() => e.selectable ? {
94
106
  ...typeof e.selectable == "object" ? e.selectable : {},
95
107
  enabled: !0,
96
108
  drag: !1
97
- } : e.selectable), N = s(() => d.value ? B : E);
109
+ } : e.selectable), P = a(() => d.value ? B : E);
98
110
  return {
99
111
  isTop: d,
100
112
  pinnedRef: S,
101
113
  handlePinnedScroll: I,
102
114
  pinnedRows: L,
103
- containerClassName: T,
104
- tableClassName: v,
105
- handleSelectionRelease: C,
106
- pinnedSelectable: A,
107
- pinnedBodyAttributes: N
115
+ containerClassName: C,
116
+ tableClassName: T,
117
+ handleSelectionRelease: A,
118
+ pinnedSelectable: N,
119
+ pinnedBodyAttributes: P
108
120
  };
109
121
  },
110
122
  render() {
111
- return a("div", {
123
+ return s("div", {
112
124
  class: this.containerClassName,
113
125
  role: "presentation",
114
- style: {
115
- display: this.pinnedRows.length ? "" : "none"
126
+ style: this.pinnedRows.length ? void 0 : {
127
+ display: "none"
116
128
  }
117
- }, [a("div", {
129
+ }, [s("div", {
118
130
  class: "k-grid-pinned-wrap",
119
131
  ref: c(this, "pinnedRef"),
120
132
  onScroll: this.handlePinnedScroll
121
- }, [a(z, {
133
+ }, [s(z, {
122
134
  selectable: this.pinnedSelectable,
123
135
  onRelease: this.handleSelectionRelease
124
136
  }, {
125
- default: () => [a("table", {
137
+ default: () => [s("table", {
126
138
  ref: c(this, "table"),
127
139
  class: this.tableClassName,
128
- "aria-label": this.isTop ? p(this).toLanguageString(h, w[h]) : p(this).toLanguageString(g, w[g])
129
- }, [a("colgroup", {
140
+ "aria-label": this.isTop ? w(this).toLanguageString(h, p[h]) : w(this).toLanguageString(g, p[g])
141
+ }, [s("colgroup", {
130
142
  ref: c(this, "colGroup")
131
- }, [this.$props.cols]), a("tbody", P({
143
+ }, [this.$props.cols]), s("tbody", G({
132
144
  class: f(R.tbody({}))
133
145
  }, this.pinnedBodyAttributes), [this.pinnedRows])])]
134
146
  })])]);
@@ -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 e=require("vue"),r=require("@progress/kendo-vue-data-tools"),o=e.defineComponent({name:"GridTable",props:{selectable:Object,tableClassName:String},setup(a,{slots:t}){const{selectionRelease:n}=e.inject("kendo",{});return()=>e.createVNode(r.TableSelection,{selectable:a.selectable,onRelease:n},{default:()=>{var l;return[e.createVNode("table",{style:{tableLayout:"fixed"},role:"none",class:a.tableClassName},[(l=t.default)==null?void 0:l.call(t)])]}})}});exports.GridTable=o;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),r=require("@progress/kendo-vue-data-tools"),o=e.defineComponent({name:"GridTable",props:{selectable:Object,tableClassName:String},setup(a,{slots:t}){const{selectionRelease:n}=e.inject("gridContext",{});return()=>e.createVNode(r.TableSelection,{selectable:a.selectable,onRelease:n},{default:()=>{var l;return[e.createVNode("table",{style:{tableLayout:"fixed"},role:"none",class:a.tableClassName},[(l=t.default)==null?void 0:l.call(t)])]}})}});exports.GridTable=o;
@@ -13,25 +13,25 @@ const d = /* @__PURE__ */ r({
13
13
  selectable: Object,
14
14
  tableClassName: String
15
15
  },
16
- setup(a, {
16
+ setup(t, {
17
17
  slots: e
18
18
  }) {
19
19
  const {
20
20
  selectionRelease: n
21
- } = o("kendo", {});
21
+ } = o("gridContext", {});
22
22
  return () => l(b, {
23
- selectable: a.selectable,
23
+ selectable: t.selectable,
24
24
  onRelease: n
25
25
  }, {
26
26
  default: () => {
27
- var t;
27
+ var a;
28
28
  return [l("table", {
29
29
  style: {
30
30
  tableLayout: "fixed"
31
31
  },
32
32
  role: "none",
33
- class: a.tableClassName
34
- }, [(t = e.default) == null ? void 0 : t.call(e)])];
33
+ class: t.tableClassName
34
+ }, [(a = e.default) == null ? void 0 : a.call(e)])];
35
35
  }
36
36
  });
37
37
  }
@@ -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 e=require("vue"),n=require("@progress/kendo-vue-data-tools"),o=e.defineComponent({name:"GridTableScrollable",props:{selectable:Object,tableClassName:Object,tableStyle:Object},setup(l,{slots:t}){const{selectionRelease:c}=e.inject("kendo",{});return()=>{const b={...l.tableStyle};return e.createVNode(n.TableSelection,{selectable:l.selectable,onRelease:c},{default:()=>{var a;return[e.createVNode("table",{role:"none",class:l.tableClassName,style:b},[(a=t.default)==null?void 0:a.call(t)])]}})}}});exports.GridTableScrollable=o;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),n=require("@progress/kendo-vue-data-tools"),r=e.defineComponent({name:"GridTableScrollable",props:{selectable:Object,tableClassName:Object,tableStyle:Object},setup(l,{slots:t}){const{selectionRelease:c}=e.inject("gridContext",{});return()=>{const b={...l.tableStyle};return e.createVNode(n.TableSelection,{selectable:l.selectable,onRelease:c},{default:()=>{var a;return[e.createVNode("table",{role:"none",class:l.tableClassName,style:b},[(a=t.default)==null?void 0:a.call(t)])]}})}}});exports.GridTableScrollable=r;
@@ -5,8 +5,8 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { defineComponent as n, inject as o, createVNode as a } from "vue";
9
- import { TableSelection as r } from "@progress/kendo-vue-data-tools";
8
+ import { defineComponent as n, inject as r, createVNode as a } from "vue";
9
+ import { TableSelection as o } from "@progress/kendo-vue-data-tools";
10
10
  const s = /* @__PURE__ */ n({
11
11
  name: "GridTableScrollable",
12
12
  props: {
@@ -19,12 +19,12 @@ const s = /* @__PURE__ */ n({
19
19
  }) {
20
20
  const {
21
21
  selectionRelease: b
22
- } = o("kendo", {});
22
+ } = r("gridContext", {});
23
23
  return () => {
24
24
  const c = {
25
25
  ...e.tableStyle
26
26
  };
27
- return a(r, {
27
+ return a(o, {
28
28
  selectable: e.selectable,
29
29
  onRelease: b
30
30
  }, {
@@ -0,0 +1,155 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { PropType } from 'vue';
9
+ import { LocalizationService } from '@progress/kendo-vue-intl';
10
+ import { MenuItemModel, MenuSelectEvent } from '@progress/kendo-vue-layout';
11
+ import { Offset } from '@progress/kendo-vue-popup';
12
+ import { GridContextMenuItemNames } from './enums';
13
+ /**
14
+ * Represents the `GridContextMenuOptions`.
15
+ */
16
+ export interface GridContextMenuOptions {
17
+ /**
18
+ * The contextmenu settings for the head of the data table.
19
+ */
20
+ head?: boolean | (GridContextMenuItemNames | MenuItemModel)[];
21
+ /**
22
+ * The contextmenu settings for the body of the data table.
23
+ */
24
+ body?: boolean | (GridContextMenuItemNames | MenuItemModel)[];
25
+ }
26
+ /**
27
+ * Represents the `GridCellBaseOptions` object that are passed to the handler.
28
+ */
29
+ export interface GridCellBaseOptions {
30
+ /**
31
+ * The data item associated with the cell.
32
+ */
33
+ dataItem?: any;
34
+ /**
35
+ * The field name of the column associated with the cell.
36
+ */
37
+ field?: string;
38
+ }
39
+ /**
40
+ * @hidden
41
+ */
42
+ export interface GridContextMenuItem extends MenuItemModel {
43
+ name?: string;
44
+ options?: string;
45
+ items?: GridContextMenuItem[];
46
+ }
47
+ /**
48
+ * @hidden
49
+ */
50
+ export interface GridContextMenuProps {
51
+ show: boolean;
52
+ offset: Offset;
53
+ onClose: () => void;
54
+ onSelect: (e: {
55
+ event: MenuSelectEvent;
56
+ dataItem?: any;
57
+ field?: string;
58
+ }) => void;
59
+ dataItem?: any;
60
+ field?: string;
61
+ items?: (GridContextMenuItemNames | GridContextMenuItem)[];
62
+ }
63
+ /**
64
+ * @hidden
65
+ */
66
+ export declare const contextMenuItemsMap: Record<string, GridContextMenuItem>;
67
+ /**
68
+ * @hidden
69
+ */
70
+ export declare const getDefaultHeadContextMenuItems: (options: {
71
+ pdf?: boolean;
72
+ sortable?: boolean;
73
+ selectable?: boolean;
74
+ editable?: boolean;
75
+ reorderable?: boolean;
76
+ clipboard?: boolean;
77
+ }) => GridContextMenuItemNames[];
78
+ /**
79
+ * @hidden
80
+ */
81
+ export declare const getDefaultBodyContextMenuItems: (options: {
82
+ pdf?: boolean;
83
+ sortable?: boolean;
84
+ selectable?: boolean;
85
+ editable?: boolean;
86
+ rowReorderable?: boolean;
87
+ clipboard?: boolean;
88
+ pinnable?: boolean;
89
+ }) => GridContextMenuItemNames[];
90
+ /**
91
+ * @hidden
92
+ */
93
+ export declare const GridContextMenu: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
94
+ show: {
95
+ type: BooleanConstructor;
96
+ default: boolean;
97
+ };
98
+ offset: {
99
+ type: PropType<Offset>;
100
+ default: () => {
101
+ left: number;
102
+ top: number;
103
+ };
104
+ };
105
+ dataItem: {
106
+ type: ObjectConstructor;
107
+ default: any;
108
+ };
109
+ field: {
110
+ type: StringConstructor;
111
+ default: any;
112
+ };
113
+ items: {
114
+ type: PropType<(GridContextMenuItemNames | GridContextMenuItem)[]>;
115
+ default: any;
116
+ };
117
+ }>, {}, {}, {}, {
118
+ localizeItem(item: GridContextMenuItem, ls: LocalizationService): GridContextMenuItem;
119
+ menuItems(): GridContextMenuItem[] | undefined;
120
+ handleSelect(event: MenuSelectEvent): void;
121
+ handleClose(): void;
122
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("select" | "close")[], "select" | "close", import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
123
+ show: {
124
+ type: BooleanConstructor;
125
+ default: boolean;
126
+ };
127
+ offset: {
128
+ type: PropType<Offset>;
129
+ default: () => {
130
+ left: number;
131
+ top: number;
132
+ };
133
+ };
134
+ dataItem: {
135
+ type: ObjectConstructor;
136
+ default: any;
137
+ };
138
+ field: {
139
+ type: StringConstructor;
140
+ default: any;
141
+ };
142
+ items: {
143
+ type: PropType<(GridContextMenuItemNames | GridContextMenuItem)[]>;
144
+ default: any;
145
+ };
146
+ }>> & Readonly<{
147
+ onSelect?: (...args: any[]) => any;
148
+ onClose?: (...args: any[]) => any;
149
+ }>, {
150
+ field: string;
151
+ dataItem: Record<string, any>;
152
+ items: (GridContextMenuItemNames | GridContextMenuItem)[];
153
+ offset: Offset;
154
+ show: boolean;
155
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("vue"),s=require("@progress/kendo-vue-intl"),d=require("@progress/kendo-vue-layout"),o=require("@progress/kendo-svg-icons"),t=require("./enums.js"),m={[t.GridContextMenuItemNames.create]:{name:"create",text:"Add",icon:"plus",svgIcon:o.plusIcon,data:{action:"AddCommand"}},[t.GridContextMenuItemNames.edit]:{name:"edit",text:"Edit",icon:"pencil",svgIcon:o.pencilIcon,data:{action:"EditCommand"}},[t.GridContextMenuItemNames.delete]:{name:"delete",text:"Delete",icon:"trash",svgIcon:o.trashIcon,data:{action:"DeleteCommand"}},[t.GridContextMenuItemNames.select]:{name:"select",text:"Select",icon:"table-body",svgIcon:o.tableBodyIcon,items:[{name:"selectRow",text:"Row",icon:"table-row-groups",svgIcon:o.tableRowGroupsIcon,data:{action:"SelectRowCommand"}},{name:"selectAllRows",text:"All rows",icon:"grid",svgIcon:o.gridIcon,data:{action:"SelectAllRowsCommand"}},{name:"clearSelection",text:"Clear selection",icon:"table-unmerge",svgIcon:o.tableUnmergeIcon,data:{action:"ClearSelectionCommand"}}]},[t.GridContextMenuItemNames.pinRow]:{name:"pinRow",text:"Pin row",icon:"pin-outline",svgIcon:o.pinOutlineIcon,items:[{name:"pinTop",text:"Pin to Top",icon:"pin-outline-top",svgIcon:o.pinOutlineTopIcon,data:{action:"PinTopCommand"}},{name:"pinBottom",text:"Pin to Bottom",icon:"pin-outline-bottom",svgIcon:o.pinOutlineBottomIcon,data:{action:"PinBottomCommand"}},{name:"unpin",text:"Unpin",icon:"unpin-outline",svgIcon:o.unpinOutlineIcon,data:{action:"UnpinCommand"}}]},[t.GridContextMenuItemNames.pinTop]:{name:"pinTop",text:"Pin to Top",icon:"pin-outline-top",svgIcon:o.pinOutlineTopIcon,data:{action:"PinTopCommand"}},[t.GridContextMenuItemNames.pinBottom]:{name:"pinBottom",text:"Pin to Bottom",icon:"pin-outline-bottom",svgIcon:o.pinOutlineBottomIcon,data:{action:"PinBottomCommand"}},[t.GridContextMenuItemNames.unpin]:{name:"unpin",text:"Unpin",icon:"unpin-outline",svgIcon:o.unpinOutlineIcon,data:{action:"UnpinCommand"}},[t.GridContextMenuItemNames.copySelection]:{name:"copySelection",text:"Copy selection",icon:"page-header-section",svgIcon:o.pageHeaderSectionIcon,data:{action:"CopySelectionCommand"},options:"withHeaders"},[t.GridContextMenuItemNames.copySelectionNoHeaders]:{name:"copySelectionNoHeaders",text:"Copy selection (No Headers)",icon:"file-txt",svgIcon:o.fileTxtIcon,data:{action:"CopySelectionCommand"}},[t.GridContextMenuItemNames.paste]:{name:"paste",text:"Paste (use CTRL/⌘ + V)",icon:"clipboard",svgIcon:o.clipboardIcon,data:{action:"PasteCommand"}},[t.GridContextMenuItemNames.reorderRow]:{name:"reorderRow",text:"Reorder row",icon:"caret-alt-expand",svgIcon:o.caretAltExpandIcon,items:[{name:"reorderRowUp",text:"Up",icon:"caret-alt-up",svgIcon:o.caretAltUpIcon,data:{action:"ReorderRowCommand"}},{name:"reorderRowDown",text:"Down",icon:"caret-alt-down",svgIcon:o.caretAltDownIcon,data:{action:"ReorderRowCommand"}},{name:"reorderRowTop",text:"Top",icon:"caret-alt-to-top",svgIcon:o.caretAltToTopIcon,data:{action:"ReorderRowCommand"}},{name:"reorderRowBottom",text:"Bottom",icon:"caret-alt-to-bottom",svgIcon:o.caretAltToBottomIcon,data:{action:"ReorderRowCommand"}}]},[t.GridContextMenuItemNames.exportPDF]:{name:"exportPDF",text:"Export to PDF",icon:"file-pdf",svgIcon:o.filePdfIcon,data:{action:"ExportPDFCommand"}},[t.GridContextMenuItemNames.exportExcel]:{name:"exportExcel",text:"Export to Excel",icon:"file-excel",svgIcon:o.fileExcelIcon,items:[{name:"exportToExcelAll",text:"All",data:{action:"ExportExcelCommand"}},{name:"exportToExcelSelection",text:"Selection",data:{action:"ExportExcelCommand"},options:"selection,withHeaders"},{name:"exportToExcelSelectionNoHeaders",text:"Selection (No Headers)",data:{action:"ExportExcelCommand"},options:"selection"}]},[t.GridContextMenuItemNames.separator]:{name:"separator",separator:!0},[t.GridContextMenuItemNames.sortAsc]:{name:"sortAsc",text:"Sort Ascending",icon:"sort-asc-small",svgIcon:o.sortAscSmallIcon,data:{action:"SortCommand"}},[t.GridContextMenuItemNames.sortDesc]:{name:"sortDesc",text:"Sort Descending",icon:"sort-desc-small",svgIcon:o.sortDescSmallIcon,data:{action:"SortCommand"}}},l=n=>{let e=[];return n.sortable&&(e=e.concat([t.GridContextMenuItemNames.sortAsc,t.GridContextMenuItemNames.sortDesc])),n.pdf&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.exportPDF])),e},p=n=>{let e=[];return n.clipboard&&(e=e.concat([t.GridContextMenuItemNames.copySelection,t.GridContextMenuItemNames.copySelectionNoHeaders,t.GridContextMenuItemNames.paste])),n.editable&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.create,t.GridContextMenuItemNames.edit,t.GridContextMenuItemNames.delete])),n.selectable&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.select])),n.rowReorderable&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.reorderRow])),n.pdf&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.exportPDF])),n.pinnable&&(e.length&&(e=e.concat([t.GridContextMenuItemNames.separator])),e=e.concat([t.GridContextMenuItemNames.pinRow])),e},u=c.defineComponent({name:"GridContextMenu",props:{show:{type:Boolean,default:!1},offset:{type:Object,default:()=>({left:0,top:0})},dataItem:{type:Object,default:void 0},field:{type:String,default:void 0},items:{type:Array,default:void 0}},inject:{kendoLocalizationService:{default:null}},emits:["close","select"],methods:{localizeItem(n,e){const a={...n};return a.text&&a.name&&(a.text=e.toLanguageString(`contextMenu.${a.name}`,a.text||"")),a.items&&Array.isArray(a.items)&&(a.items=a.items.map(i=>this.localizeItem(i,e))),a},menuItems(){if(this.$props.items)return this.$props.items.map(n=>typeof n=="string"?{...m[n]}:{...n})},handleSelect(n){this.$emit("select",{event:n,dataItem:this.$props.dataItem,field:this.$props.field})},handleClose(){this.$emit("close")}},render(){const n=s.provideLocalizationService(this),e=this.menuItems(),a=e==null?void 0:e.map(r=>this.localizeItem(r,n)),i=!!(this.$props.show&&(a!=null&&a.length));return c.createVNode(d.ContextMenu,{show:i,offset:this.$props.offset,items:a,onClose:this.handleClose,onSelect:this.handleSelect},null)}});exports.GridContextMenu=u;exports.contextMenuItemsMap=m;exports.getDefaultBodyContextMenuItems=p;exports.getDefaultHeadContextMenuItems=l;