@progress/kendo-vue-grid 7.0.3-develop.1 → 7.1.0-develop.2

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/GridColumn.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 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 e={filterable:!0,editable:!0,sortable:!0,resizable:!0,reorderable:!0,groupable:!0};exports.gridDefaultProps=e;
package/GridColumn.mjs ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ const e = {
9
+ filterable: !0,
10
+ editable: !0,
11
+ sortable: !0,
12
+ resizable: !0,
13
+ reorderable: !0,
14
+ groupable: !0
15
+ };
16
+ export {
17
+ e as gridDefaultProps
18
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 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 e=require("vue"),l=require("@progress/kendo-vue-inputs"),d=require("./key.js"),g=require("@progress/kendo-vue-data-tools"),S=require("@progress/kendo-vue-common"),m=require("@progress/kendo-svg-icons"),p=e.defineComponent({name:"KendoVueGridSearchBox",inheritAttrs:!1,props:{onChange:Function,className:String,placeholder:String},setup(o,{emit:t}){const a=e.inject("kendoLocalizationService",{}),{searchChange:r}=e.inject("kendo",{}),{search:c}=e.inject(d.KendoKey,{}),s=n=>{r&&r(n),t("change",n),o.onChange&&o.onChange.call(void 0,n)},i=e.computed(()=>g.getStringFromSearch(c.value)),u=e.computed(()=>({"k-grid-search":!0,"k-searchbox":!0})),h=e.computed(()=>{const n=a;return n!=null&&n.toLanguageString?n.toLanguageString("searchboxPlaceholder","Search..."):o.placeholder||"Search..."});return{handleChange:s,value:i,rootClassName:u,placeholder:h}},render(){return e.createVNode(l.TextBox,e.mergeProps({placeholder:this.placeholder,value:this.value,prefix:()=>e.createVNode(S.SvgIcon,{icon:m.searchIcon},null)},this.$attrs,{class:this.rootClassName,onInput:this.handleChange}),null)}});exports.GridSearchBox=p;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 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 { defineComponent as g, createVNode as a, mergeProps as m, inject as o, computed as n } from "vue";
9
+ import { TextBox as p } from "@progress/kendo-vue-inputs";
10
+ import { KendoKey as S } from "./key.mjs";
11
+ import { getStringFromSearch as f } from "@progress/kendo-vue-data-tools";
12
+ import { SvgIcon as C } from "@progress/kendo-vue-common";
13
+ import { searchIcon as x } from "@progress/kendo-svg-icons";
14
+ const K = /* @__PURE__ */ g({
15
+ name: "KendoVueGridSearchBox",
16
+ inheritAttrs: !1,
17
+ props: {
18
+ onChange: Function,
19
+ className: String,
20
+ placeholder: String
21
+ },
22
+ setup(r, {
23
+ emit: c
24
+ }) {
25
+ const i = o("kendoLocalizationService", {}), {
26
+ searchChange: t
27
+ } = o("kendo", {}), {
28
+ search: s
29
+ } = o(S, {}), h = (e) => {
30
+ t && t(e), c("change", e), r.onChange && r.onChange.call(void 0, e);
31
+ }, l = n(() => f(s.value)), d = n(() => ({
32
+ "k-grid-search": !0,
33
+ "k-searchbox": !0
34
+ })), u = n(() => {
35
+ const e = i;
36
+ return e != null && e.toLanguageString ? e.toLanguageString("searchboxPlaceholder", "Search...") : r.placeholder || "Search...";
37
+ });
38
+ return {
39
+ handleChange: h,
40
+ value: l,
41
+ rootClassName: d,
42
+ placeholder: u
43
+ };
44
+ },
45
+ render() {
46
+ return a(p, m({
47
+ placeholder: this.placeholder,
48
+ value: this.value,
49
+ prefix: () => a(C, {
50
+ icon: x
51
+ }, null)
52
+ }, this.$attrs, {
53
+ class: this.rootClassName,
54
+ onInput: this.handleChange
55
+ }), null);
56
+ }
57
+ });
58
+ export {
59
+ K as GridSearchBox
60
+ };
package/GridState.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 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 t=require("vue"),w=require("./key.js"),m=require("./common.js"),G=require("@progress/kendo-vue-common"),P=t.defineComponent({name:"KendoVueGridStateProvider",inheritAttrs:!1,props:m.gridProps,setup(a,{emit:n}){const l=t.ref(a.filter||a.defaultFilter||null),f=e=>{l.value=e.filter,n("filterchange",e)};t.watch(()=>a.filter,e=>{l.value=e});const u=t.ref(a.search||a.defaultSearch||null),s=e=>{u.value=e.search,n("searchchange",e)};t.watch(()=>a.search,e=>{u.value=e});const c=t.ref(a.sort||a.defaultSort||[]),S=e=>{c.value=e.sort,n("sortchange",e)};t.watch(()=>a.sort,e=>{c.value=e});const d=t.ref(a.skip||a.defaultSkip||0),r=t.ref(a.take||a.defaultTake),v=e=>{d.value=e.page.skip,r.value=e.page.take,n("pagechange",e)};t.watch(()=>a.skip,e=>{d.value=e}),t.watch(()=>a.take,e=>{r.value=e});const h=t.ref(a.group||a.defaultGroup||[]),x=e=>{h.value=e.group,n("groupchange",e)};t.watch(()=>a.group,e=>{h.value=e});const o=t.ref(a.detailExpand||a.defaultDetailExpand||{}),k=e=>{o.value=e.detailExpand,n("detailexpandchange",e)};t.watch(()=>a.detailExpand,e=>{o.value=e});const g=t.ref(a.groupExpand||a.defaultGroupExpand||[]),C=e=>{g.value=e.groupExpand,n("groupexpandchange",e)};t.watch(()=>a.groupExpand,e=>{g.value=e});const i=t.ref(a.columnsState||a.defaultColumnsState||[]),E=e=>{i.value=e.columnsState,n("columnsstatechange",e)};t.watch(()=>a.columnsState,e=>{i.value=e}),t.provide(w.KendoKey,{sort:c,sortchange:S,filter:l,filterchange:f,search:u,searchchange:s,skip:d,take:r,pagechange:v,group:h,groupchange:x,detailExpand:o,detailexpandchange:k,groupExpand:g,groupexpandchange:C,columnsState:i,columnsstatechange:E})},render(){return G.getDefaultSlots(this)}});exports.GridStateProvider=P;
package/GridState.mjs ADDED
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 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 { defineComponent as G, ref as t, watch as n, provide as P } from "vue";
9
+ import { KendoKey as D } from "./key.mjs";
10
+ import { gridProps as K } from "./common.mjs";
11
+ import { getDefaultSlots as F } from "@progress/kendo-vue-common";
12
+ const V = /* @__PURE__ */ G({
13
+ name: "KendoVueGridStateProvider",
14
+ inheritAttrs: !1,
15
+ props: K,
16
+ setup(e, {
17
+ emit: l
18
+ }) {
19
+ const u = t(e.filter || e.defaultFilter || null), s = (a) => {
20
+ u.value = a.filter, l("filterchange", a);
21
+ };
22
+ n(() => e.filter, (a) => {
23
+ u.value = a;
24
+ });
25
+ const d = t(e.search || e.defaultSearch || null), x = (a) => {
26
+ d.value = a.search, l("searchchange", a);
27
+ };
28
+ n(() => e.search, (a) => {
29
+ d.value = a;
30
+ });
31
+ const c = t(e.sort || e.defaultSort || []), S = (a) => {
32
+ c.value = a.sort, l("sortchange", a);
33
+ };
34
+ n(() => e.sort, (a) => {
35
+ c.value = a;
36
+ });
37
+ const o = t(e.skip || e.defaultSkip || 0), h = t(e.take || e.defaultTake), v = (a) => {
38
+ o.value = a.page.skip, h.value = a.page.take, l("pagechange", a);
39
+ };
40
+ n(() => e.skip, (a) => {
41
+ o.value = a;
42
+ }), n(() => e.take, (a) => {
43
+ h.value = a;
44
+ });
45
+ const g = t(e.group || e.defaultGroup || []), E = (a) => {
46
+ g.value = a.group, l("groupchange", a);
47
+ };
48
+ n(() => e.group, (a) => {
49
+ g.value = a;
50
+ });
51
+ const r = t(e.detailExpand || e.defaultDetailExpand || {}), m = (a) => {
52
+ r.value = a.detailExpand, l("detailexpandchange", a);
53
+ };
54
+ n(() => e.detailExpand, (a) => {
55
+ r.value = a;
56
+ });
57
+ const i = t(e.groupExpand || e.defaultGroupExpand || []), C = (a) => {
58
+ i.value = a.groupExpand, l("groupexpandchange", a);
59
+ };
60
+ n(() => e.groupExpand, (a) => {
61
+ i.value = a;
62
+ });
63
+ const f = t(e.columnsState || e.defaultColumnsState || []), k = (a) => {
64
+ f.value = a.columnsState, l("columnsstatechange", a);
65
+ };
66
+ n(() => e.columnsState, (a) => {
67
+ f.value = a;
68
+ }), P(D, {
69
+ sort: c,
70
+ sortchange: S,
71
+ filter: u,
72
+ filterchange: s,
73
+ search: d,
74
+ searchchange: x,
75
+ skip: o,
76
+ take: h,
77
+ pagechange: v,
78
+ group: g,
79
+ groupchange: E,
80
+ detailExpand: r,
81
+ detailexpandchange: m,
82
+ groupExpand: i,
83
+ groupexpandchange: C,
84
+ columnsState: f,
85
+ columnsstatechange: k
86
+ });
87
+ },
88
+ render() {
89
+ return F(this);
90
+ }
91
+ });
92
+ export {
93
+ V as GridStateProvider
94
+ };
package/RootGrid.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 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"),v=require("./Grid.js"),x=require("./GridState.js"),L=require("./common.js"),n=require("@progress/kendo-vue-common"),P=c.defineComponent({name:"KendoVueGrid",props:L.gridProps,setup(l,{expose:r}){const o=c.ref(null);r({get element(){var e;return((e=o.value)==null?void 0:e.element)||null},get props(){return l},get columns(){var e;return((e=o.value)==null?void 0:e.columns)||[]},scrollIntoView:e=>{var s;(s=o.value)==null||s.scrollIntoView(e)},fitColumns:e=>{var s;(s=o.value)==null||s.fitColumns(e)},exportAsPdf:()=>{var e;(e=o.value)==null||e.exportAsPdf()}})},computed:{columnsWithTemplates(){const l=n.getListeners.call(this);return n.mapTree(this.$props.columns||[],"children",r=>{const o={...r},e=n.templateRendering.call(this,o.cell,l),s=n.templateRendering.call(this,o.headerCell,l),m=n.templateRendering.call(this,o.filterCell,l),u=n.templateRendering.call(this,o.footerCell,l),p=n.templateRendering.call(this,o.columnMenu,l);return{...o,cell:e,headerCell:s,filterCell:m,footerCell:u,columnMenu:p}})}},render(){const l=n.getDefaultSlots(this)||[],r=n.getListeners.call(this),o=l.filter(t=>{var a,i;return t.tag&&t.tag.toLowerCase().indexOf("toolbar")!==-1||t.componentOptions&&((a=t.componentOptions.tag)==null?void 0:a.toLowerCase().indexOf("toolbar"))!==-1||((i=t==null?void 0:t.type)==null?void 0:i.name.toLowerCase().indexOf("toolbar"))!==-1}),e=l.filter(t=>{var a,i;return t.tag&&t.tag.toLowerCase().indexOf("records")!==-1||t.componentOptions&&((a=t.componentOptions.tag)==null?void 0:a.toLowerCase().indexOf("records"))!==-1||((i=t==null?void 0:t.type)==null?void 0:i.name.toLowerCase().indexOf("records"))!==-1}),{cellRender:s,detail:m,columns:u,rowRender:p,pager:g,loader:f,...d}=this.$props,R=n.templateRendering.call(this,m,r),C=n.templateRendering.call(this,s,r),T=n.templateRendering.call(this,p,r),w=n.templateRendering.call(this,g,r),O=n.templateRendering.call(this,f,r),h=this.columnsWithTemplates;return c.createVNode(x.GridStateProvider,d,{default:()=>[c.createVNode(v.Grid,c.mergeProps(d,r,{class:this.$attrs.class,style:this.$attrs.style,columns:h,cellRender:C,rowRender:T,pager:w,loader:O,detail:R,toolbar:o,noRecords:e}),null)]})}});exports.RootGrid=P;
package/RootGrid.mjs ADDED
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 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 { defineComponent as L, createVNode as d, mergeProps as P, ref as v } from "vue";
9
+ import { Grid as b } from "./Grid.mjs";
10
+ import { GridStateProvider as y } from "./GridState.mjs";
11
+ import { gridProps as G } from "./common.mjs";
12
+ import { getDefaultSlots as V, getListeners as f, templateRendering as n, mapTree as $ } from "@progress/kendo-vue-common";
13
+ const I = /* @__PURE__ */ L({
14
+ name: "KendoVueGrid",
15
+ props: G,
16
+ setup(l, {
17
+ expose: r
18
+ }) {
19
+ const o = v(null);
20
+ r({
21
+ get element() {
22
+ var e;
23
+ return ((e = o.value) == null ? void 0 : e.element) || null;
24
+ },
25
+ get props() {
26
+ return l;
27
+ },
28
+ get columns() {
29
+ var e;
30
+ return ((e = o.value) == null ? void 0 : e.columns) || [];
31
+ },
32
+ scrollIntoView: (e) => {
33
+ var s;
34
+ (s = o.value) == null || s.scrollIntoView(e);
35
+ },
36
+ fitColumns: (e) => {
37
+ var s;
38
+ (s = o.value) == null || s.fitColumns(e);
39
+ },
40
+ exportAsPdf: () => {
41
+ var e;
42
+ (e = o.value) == null || e.exportAsPdf();
43
+ }
44
+ });
45
+ },
46
+ computed: {
47
+ columnsWithTemplates() {
48
+ const l = f.call(this);
49
+ return $(this.$props.columns || [], "children", (r) => {
50
+ const o = {
51
+ ...r
52
+ }, e = n.call(this, o.cell, l), s = n.call(this, o.headerCell, l), i = n.call(this, o.filterCell, l), p = n.call(this, o.footerCell, l), m = n.call(this, o.columnMenu, l);
53
+ return {
54
+ ...o,
55
+ cell: e,
56
+ headerCell: s,
57
+ filterCell: i,
58
+ footerCell: p,
59
+ columnMenu: m
60
+ };
61
+ });
62
+ }
63
+ },
64
+ render() {
65
+ const l = V(this) || [], r = f.call(this), o = l.filter((t) => {
66
+ var a, c;
67
+ return t.tag && t.tag.toLowerCase().indexOf("toolbar") !== -1 || t.componentOptions && ((a = t.componentOptions.tag) == null ? void 0 : a.toLowerCase().indexOf("toolbar")) !== -1 || ((c = t == null ? void 0 : t.type) == null ? void 0 : c.name.toLowerCase().indexOf("toolbar")) !== -1;
68
+ }), e = l.filter((t) => {
69
+ var a, c;
70
+ return t.tag && t.tag.toLowerCase().indexOf("records") !== -1 || t.componentOptions && ((a = t.componentOptions.tag) == null ? void 0 : a.toLowerCase().indexOf("records")) !== -1 || ((c = t == null ? void 0 : t.type) == null ? void 0 : c.name.toLowerCase().indexOf("records")) !== -1;
71
+ }), {
72
+ cellRender: s,
73
+ detail: i,
74
+ columns: p,
75
+ rowRender: m,
76
+ pager: g,
77
+ loader: C,
78
+ ...u
79
+ } = this.$props, R = n.call(this, i, r), w = n.call(this, s, r), T = n.call(this, m, r), h = n.call(this, g, r), O = n.call(this, C, r), x = this.columnsWithTemplates;
80
+ return d(y, u, {
81
+ default: () => [d(b, P(u, r, {
82
+ class: this.$attrs.class,
83
+ style: this.$attrs.style,
84
+ columns: x,
85
+ cellRender: w,
86
+ rowRender: T,
87
+ pager: h,
88
+ loader: O,
89
+ detail: R,
90
+ toolbar: o,
91
+ noRecords: e
92
+ }), null)]
93
+ });
94
+ }
95
+ });
96
+ export {
97
+ I as RootGrid
98
+ };
@@ -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 n=require("vue"),d=require("@progress/kendo-vue-common"),m=require("@progress/kendo-vue-data-tools"),r=require("../messages/main.js"),f=require("@progress/kendo-vue-intl"),p=require("@progress/kendo-svg-icons"),v=n.defineComponent({name:"KendoGridGroupCell",inheritAttrs:!1,props:{id:String,field:String,dataItem:Object,format:String,type:String,colSpan:Number,className:String,columnIndex:Number,columnsCount:Number,rowType:String,level:Number,expanded:Boolean,editor:String,dataIndex:Number,isSelected:Boolean,isRtl:Boolean,ariaColumnIndex:Number,render:[String,Function,Object]},emits:{change:null,cellkeydown:null},inject:{kendoIntlService:{default:null},kendoLocalizationService:{default:null},getKeyboardNavigationAttributes:{default:d.noop}},computed:{tdClass(){const{className:e}=this.$props;return{"k-table-td":!0,[e]:e}}},methods:{triggerKeydown(e,t){this.$emit("cellkeydown",{event:e,dataItem:this.$props.dataItem,dataIndex:this.$props.dataIndex,field:this.$props.field,expanded:this.$props.expanded}),!e.defaultPrevented&&e.keyCode===d.Keys.enter&&(e.preventDefault(),this.$emit("change",{dataItem:this.$props.dataItem,dataIndex:this.$props.dataIndex,event:e,level:this.$props.level,field:void 0,value:!t}))},clickHandler(e,t,i){e.preventDefault(),this.$emit("change",{dataItem:t,dataIndex:this.$props.dataIndex,event:e,level:this.$props.level,field:void 0,value:!i})}},render(){let e=null;const{columnIndex:t,level:i,columnsCount:u,rowType:b,dataItem:l,field:o,expanded:a,render:I}=this.$props,s=this.getKeyboardNavigationAttributes(this.$props.id),g=f.provideLocalizationService(this).toLanguageString(r.groupCaretAriaLabelCollapse,r.messages[r.groupCaretAriaLabelCollapse]),h=f.provideLocalizationService(this).toLanguageString(r.groupCaretAriaLabelExpand,r.messages[r.groupCaretAriaLabelExpand]);return t===void 0||i===void 0||t<i||u===void 0||b!=="groupHeader"||l[o]===void 0?e=n.createVNode("td",{style:this.$attrs.style,key:"g"+t,class:"k-table-td k-group-cell"},null):t<=i&&(e=n.createVNode("td",{style:this.$attrs.style,onKeydown:c=>{this.triggerKeydown(c,a)},key:"g-colspan",class:this.tdClass,colspan:u-t,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"aria-expanded":a,"data-grid-col-index":this.$props.columnIndex,tabindex:s.tabIndex,"data-keyboardnavlevel":s[m.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":s[m.KEYBOARD_NAV_DATA_ID]},[n.createVNode("p",{class:"k-reset"},[n.createVNode("a",{onClick:c=>{this.clickHandler(c,l,a)},href:"#",tabindex:-1,title:a?g:h,"aria-label":a?g:h},[n.createVNode(d.Icon,{name:a?"caret-alt-down":this.isRtl?"caret-alt-left":"caret-alt-right",icon:a?p.caretAltDownIcon:this.isRtl?p.caretAltLeftIcon:p.caretAltRightIcon},null)]),l[o]?l[o].toString():""])])),d.getTemplate.call(this,{h:n.h,template:I,defaultRendering:e,additionalProps:this.$props,additionalListeners:{keydown:this.triggerKeydown,click:this.clickHandler}})}});exports.GridGroupCell=v;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),o=require("@progress/kendo-vue-common"),c=require("@progress/kendo-vue-data-tools"),r=require("../messages/main.js"),f=require("@progress/kendo-vue-intl"),u=require("@progress/kendo-svg-icons"),k=n.defineComponent({name:"KendoGridGroupCell",inheritAttrs:!1,props:{id:String,field:String,dataItem:Object,format:String,type:String,colSpan:Number,className:String,columnIndex:Number,columnsCount:Number,rowType:String,level:Number,expanded:Boolean,editor:String,dataIndex:Number,isSelected:Boolean,isRtl:Boolean,ariaColumnIndex:Number,group:Object,render:[String,Function,Object]},emits:{change:null,cellkeydown:null},inject:{kendo:{default:null},kendoIntlService:{default:null},kendoLocalizationService:{default:null},getKeyboardNavigationAttributes:{default:o.noop}},computed:{tdClass(){const{className:e}=this.$props;return{"k-table-td":!0,[e]:e}}},methods:{triggerStateChange(){var t;const e=this.kendo;(t=e==null?void 0:e.dispatchGroupExpand)==null||t.call(e,{type:c.GROUP_EXPAND_ACTION.TOGGLE,group:this.$props.group})},triggerKeydown(e,t){this.$emit("cellkeydown",{event:e,dataItem:this.$props.dataItem,dataIndex:this.$props.dataIndex,field:this.$props.field,expanded:this.$props.expanded}),!e.defaultPrevented&&e.keyCode===o.Keys.enter&&(e.preventDefault(),this.$emit("change",{dataItem:this.$props.dataItem,dataIndex:this.$props.dataIndex,event:e,level:this.$props.level,field:void 0,value:!t}),this.triggerStateChange())},clickHandler(e,t,i){e.preventDefault(),this.$emit("change",{dataItem:t,dataIndex:this.$props.dataIndex,event:e,level:this.$props.level,field:void 0,value:!i}),this.triggerStateChange()}},render(){let e=null;const{columnIndex:t,level:i,columnsCount:g,rowType:b,dataItem:l,field:d,expanded:a,render:I}=this.$props,s=this.getKeyboardNavigationAttributes(this.$props.id),h=f.provideLocalizationService(this).toLanguageString(r.groupCaretAriaLabelCollapse,r.messages[r.groupCaretAriaLabelCollapse]),m=f.provideLocalizationService(this).toLanguageString(r.groupCaretAriaLabelExpand,r.messages[r.groupCaretAriaLabelExpand]);return t===void 0||i===void 0||t<i||g===void 0||b!=="groupHeader"||l[d]===void 0?e=n.createVNode("td",{style:this.$attrs.style,key:"g"+t,class:"k-table-td k-group-cell"},null):t<=i&&(e=n.createVNode("td",{style:this.$attrs.style,onKeydown:p=>{this.triggerKeydown(p,a)},key:"g-colspan",class:this.tdClass,colspan:g-t,role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,"aria-selected":this.$props.isSelected,"aria-expanded":a,"data-grid-col-index":this.$props.columnIndex,tabindex:s.tabIndex,"data-keyboardnavlevel":s[c.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":s[c.KEYBOARD_NAV_DATA_ID]},[n.createVNode("p",{class:"k-reset"},[n.createVNode("a",{onClick:p=>{this.clickHandler(p,l,a)},href:"#",tabindex:-1,title:a?h:m,"aria-label":a?h:m},[n.createVNode(o.Icon,{name:a?"caret-alt-down":this.isRtl?"caret-alt-left":"caret-alt-right",icon:a?u.caretAltDownIcon:this.isRtl?u.caretAltLeftIcon:u.caretAltRightIcon},null)]),l[d]?l[d].toString():""])])),o.getTemplate.call(this,{h:n.h,template:I,defaultRendering:e,additionalProps:this.$props,additionalListeners:{keydown:this.triggerKeydown,click:this.clickHandler}})}});exports.GridGroupCell=k;
@@ -5,13 +5,13 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { defineComponent as x, createVNode as i, h as b } from "vue";
9
- import { noop as y, Icon as $, getTemplate as v, Keys as k } from "@progress/kendo-vue-common";
10
- import { KEYBOARD_NAV_DATA_ID as A, KEYBOARD_NAV_DATA_LEVEL as C } from "@progress/kendo-vue-data-tools";
11
- import { groupCaretAriaLabelCollapse as u, messages as m, groupCaretAriaLabelExpand as g } from "../messages/main.mjs";
12
- import { provideLocalizationService as h } from "@progress/kendo-vue-intl";
13
- import { caretAltDownIcon as S, caretAltRightIcon as N, caretAltLeftIcon as L } from "@progress/kendo-svg-icons";
14
- const _ = /* @__PURE__ */ x({
8
+ import { defineComponent as b, createVNode as n, h as x } from "vue";
9
+ import { noop as y, Icon as $, getTemplate as k, Keys as A } from "@progress/kendo-vue-common";
10
+ import { KEYBOARD_NAV_DATA_ID as v, KEYBOARD_NAV_DATA_LEVEL as S, GROUP_EXPAND_ACTION as C } from "@progress/kendo-vue-data-tools";
11
+ import { groupCaretAriaLabelCollapse as u, messages as g, groupCaretAriaLabelExpand as h } from "../messages/main.mjs";
12
+ import { provideLocalizationService as m } from "@progress/kendo-vue-intl";
13
+ import { caretAltDownIcon as N, caretAltRightIcon as L, caretAltLeftIcon as w } from "@progress/kendo-svg-icons";
14
+ const _ = /* @__PURE__ */ b({
15
15
  name: "KendoGridGroupCell",
16
16
  inheritAttrs: !1,
17
17
  props: {
@@ -32,6 +32,7 @@ const _ = /* @__PURE__ */ x({
32
32
  isSelected: Boolean,
33
33
  isRtl: Boolean,
34
34
  ariaColumnIndex: Number,
35
+ group: Object,
35
36
  render: [String, Function, Object]
36
37
  },
37
38
  emits: {
@@ -39,6 +40,9 @@ const _ = /* @__PURE__ */ x({
39
40
  cellkeydown: null
40
41
  },
41
42
  inject: {
43
+ kendo: {
44
+ default: null
45
+ },
42
46
  kendoIntlService: {
43
47
  default: null
44
48
  },
@@ -61,6 +65,14 @@ const _ = /* @__PURE__ */ x({
61
65
  }
62
66
  },
63
67
  methods: {
68
+ triggerStateChange() {
69
+ var t;
70
+ const e = this.kendo;
71
+ (t = e == null ? void 0 : e.dispatchGroupExpand) == null || t.call(e, {
72
+ type: C.TOGGLE,
73
+ group: this.$props.group
74
+ });
75
+ },
64
76
  triggerKeydown(e, t) {
65
77
  this.$emit("cellkeydown", {
66
78
  event: e,
@@ -68,43 +80,43 @@ const _ = /* @__PURE__ */ x({
68
80
  dataIndex: this.$props.dataIndex,
69
81
  field: this.$props.field,
70
82
  expanded: this.$props.expanded
71
- }), !e.defaultPrevented && e.keyCode === k.enter && (e.preventDefault(), this.$emit("change", {
83
+ }), !e.defaultPrevented && e.keyCode === A.enter && (e.preventDefault(), this.$emit("change", {
72
84
  dataItem: this.$props.dataItem,
73
85
  dataIndex: this.$props.dataIndex,
74
86
  event: e,
75
87
  level: this.$props.level,
76
88
  field: void 0,
77
89
  value: !t
78
- }));
90
+ }), this.triggerStateChange());
79
91
  },
80
- clickHandler(e, t, n) {
92
+ clickHandler(e, t, r) {
81
93
  e.preventDefault(), this.$emit("change", {
82
94
  dataItem: t,
83
95
  dataIndex: this.$props.dataIndex,
84
96
  event: e,
85
97
  level: this.$props.level,
86
98
  field: void 0,
87
- value: !n
88
- });
99
+ value: !r
100
+ }), this.triggerStateChange();
89
101
  }
90
102
  },
91
103
  render() {
92
104
  let e = null;
93
105
  const {
94
106
  columnIndex: t,
95
- level: n,
107
+ level: r,
96
108
  columnsCount: s,
97
109
  rowType: f,
98
- dataItem: r,
110
+ dataItem: i,
99
111
  field: l,
100
112
  expanded: a,
101
113
  render: I
102
- } = this.$props, d = this.getKeyboardNavigationAttributes(this.$props.id), p = h(this).toLanguageString(u, m[u]), c = h(this).toLanguageString(g, m[g]);
103
- return t === void 0 || n === void 0 || t < n || s === void 0 || f !== "groupHeader" || r[l] === void 0 ? e = i("td", {
114
+ } = this.$props, d = this.getKeyboardNavigationAttributes(this.$props.id), p = m(this).toLanguageString(u, g[u]), c = m(this).toLanguageString(h, g[h]);
115
+ return t === void 0 || r === void 0 || t < r || s === void 0 || f !== "groupHeader" || i[l] === void 0 ? e = n("td", {
104
116
  style: this.$attrs.style,
105
117
  key: "g" + t,
106
118
  class: "k-table-td k-group-cell"
107
- }, null) : t <= n && (e = i("td", {
119
+ }, null) : t <= r && (e = n("td", {
108
120
  style: this.$attrs.style,
109
121
  onKeydown: (o) => {
110
122
  this.triggerKeydown(o, a);
@@ -118,23 +130,23 @@ const _ = /* @__PURE__ */ x({
118
130
  "aria-expanded": a,
119
131
  "data-grid-col-index": this.$props.columnIndex,
120
132
  tabindex: d.tabIndex,
121
- "data-keyboardnavlevel": d[C],
122
- "data-keyboardnavid": d[A]
123
- }, [i("p", {
133
+ "data-keyboardnavlevel": d[S],
134
+ "data-keyboardnavid": d[v]
135
+ }, [n("p", {
124
136
  class: "k-reset"
125
- }, [i("a", {
137
+ }, [n("a", {
126
138
  onClick: (o) => {
127
- this.clickHandler(o, r, a);
139
+ this.clickHandler(o, i, a);
128
140
  },
129
141
  href: "#",
130
142
  tabindex: -1,
131
143
  title: a ? p : c,
132
144
  "aria-label": a ? p : c
133
- }, [i($, {
145
+ }, [n($, {
134
146
  name: a ? "caret-alt-down" : this.isRtl ? "caret-alt-left" : "caret-alt-right",
135
- icon: a ? S : this.isRtl ? L : N
136
- }, null)]), r[l] ? r[l].toString() : ""])])), v.call(this, {
137
- h: b,
147
+ icon: a ? N : this.isRtl ? w : L
148
+ }, null)]), i[l] ? i[l].toString() : ""])])), k.call(this, {
149
+ h: x,
138
150
  template: I,
139
151
  defaultRendering: e,
140
152
  additionalProps: this.$props,
@@ -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 i=require("vue"),u=require("../utils/main.js"),l=require("@progress/kendo-vue-common"),c=require("@progress/kendo-vue-data-tools"),h=require("@progress/kendo-vue-intl"),r=require("../messages/main.js"),p=require("@progress/kendo-svg-icons"),m=i.defineComponent({name:"KendoGridHierarchyCell",inheritAttrs:!1,props:{id:String,field:String,dataItem:Object,format:String,type:String,className:String,colSpan:Number,columnIndex:Number,columnsCount:Number,rowType:String,level:Number,expanded:Boolean,editor:String,isSelected:Boolean,dataIndex:Number,ariaColumnIndex:Number,render:[String,Function,Object],isRtl:Boolean},emits:{change:null,cellkeydown:null},inject:{kendoIntlService:{default:null},kendoLocalizationService:{default:null},getKeyboardNavigationAttributes:{default:l.noop}},methods:{triggerKeydown(e,t){this.$emit("cellkeydown",{event:e,dataItem:this.$props.dataItem,field:this.$props.field,expanded:t}),!e.defaultPrevented&&e.keyCode===l.Keys.enter&&(e.preventDefault(),this.$emit("change",{dataItem:this.$props.dataItem,dataIndex:this.$props.dataIndex,event:e,field:this.$props.field,value:!t}))},clickHandler(e,t,n){e.preventDefault(),this.$emit("change",{dataItem:t,event:e,field:void 0,value:!n})}},computed:{wrapperClass(){return{"k-table-td":!0,"k-hierarchy-cell":!0,[this.className||""]:this.className}}},render(){let e=null;const t=this.getKeyboardNavigationAttributes(this.$props.id),n=h.provideLocalizationService(this),o=n.toLanguageString(r.collapseDetailAriaLabel,r.messages[r.collapseDetailAriaLabel]),d=n.toLanguageString(r.expandDetailAriaLabel,r.messages[r.expandDetailAriaLabel]);if(this.$props.rowType==="groupFooter")e=i.createVNode("td",{class:this.wrapperClass},null);else if(this.$props.rowType!=="groupHeader"){const a=u.getNestedValue(this.$props.field,this.$props.dataItem);e=i.createVNode("td",{style:this.$attrs.style,onKeydown:s=>{this.triggerKeydown(s,a)},class:this.wrapperClass,"aria-expanded":a?"true":"false",role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,tabindex:t.tabIndex,"data-keyboardnavlevel":t[c.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":t[c.KEYBOARD_NAV_DATA_ID]},[i.createVNode("a",{onClick:s=>{this.clickHandler(s,this.$props.dataItem,a)},href:"#",tabindex:-1,title:a?o:d,"aria-label":a?o:d},[i.createVNode(l.Icon,{name:a?"minus":"plus",icon:a?p.minusIcon:p.plusIcon},null)])])}return l.getTemplate.call(this,{h:i.h,template:this.$props.render,defaultRendering:e,additionalProps:this.$props,additionalListeners:{keydown:this.triggerKeydown,click:this.clickHandler}})}});exports.GridHierarchyCell=m;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("vue"),u=require("../utils/main.js"),l=require("@progress/kendo-vue-common"),o=require("@progress/kendo-vue-data-tools"),h=require("@progress/kendo-vue-intl"),r=require("../messages/main.js"),p=require("@progress/kendo-svg-icons"),g=i.defineComponent({name:"KendoGridHierarchyCell",inheritAttrs:!1,props:{id:String,field:String,dataItem:Object,format:String,type:String,className:String,colSpan:Number,columnIndex:Number,columnsCount:Number,rowType:String,level:Number,expanded:Boolean,editor:String,isSelected:Boolean,dataIndex:Number,ariaColumnIndex:Number,render:[String,Function,Object],isRtl:Boolean},emits:{change:null,cellkeydown:null},inject:{kendo:{default:null},kendoIntlService:{default:null},kendoLocalizationService:{default:null},getKeyboardNavigationAttributes:{default:l.noop}},methods:{triggerStateChange(){const e=this.kendo;e.dataItemKey&&this.$props.dataItem[e.dataItemKey]!==void 0&&(e==null||e.dispatchDetailExpand({type:o.DETAIL_EXPAND_ACTION.TOGGLE,id:this.$props.dataItem[e.dataItemKey]}))},triggerKeydown(e,t){this.$emit("cellkeydown",{event:e,dataItem:this.$props.dataItem,field:this.$props.field,expanded:t}),!e.defaultPrevented&&e.keyCode===l.Keys.enter&&(e.preventDefault(),this.$emit("change",{dataItem:this.$props.dataItem,dataIndex:this.$props.dataIndex,event:e,field:this.$props.field,value:!t}),this.triggerStateChange())},clickHandler(e,t,n){e.preventDefault(),this.$emit("change",{dataItem:t,event:e,field:void 0,value:!n}),this.triggerStateChange()}},computed:{wrapperClass(){return{"k-table-td":!0,"k-hierarchy-cell":!0,[this.className||""]:this.className}}},render(){let e=null;const t=this.getKeyboardNavigationAttributes(this.$props.id),n=h.provideLocalizationService(this),d=n.toLanguageString(r.collapseDetailAriaLabel,r.messages[r.collapseDetailAriaLabel]),c=n.toLanguageString(r.expandDetailAriaLabel,r.messages[r.expandDetailAriaLabel]);if(this.$props.rowType==="groupFooter")e=i.createVNode("td",{class:this.wrapperClass},null);else if(this.$props.rowType!=="groupHeader"){const a=u.getNestedValue(this.$props.field,this.$props.dataItem);e=i.createVNode("td",{style:this.$attrs.style,onKeydown:s=>{this.triggerKeydown(s,a)},class:this.wrapperClass,"aria-expanded":a?"true":"false",role:"gridcell","aria-colindex":this.$props.ariaColumnIndex,tabindex:t.tabIndex,"data-keyboardnavlevel":t[o.KEYBOARD_NAV_DATA_LEVEL],"data-keyboardnavid":t[o.KEYBOARD_NAV_DATA_ID]},[i.createVNode("a",{onClick:s=>{this.clickHandler(s,this.$props.dataItem,a)},href:"#",tabindex:-1,title:a?d:c,"aria-label":a?d:c},[i.createVNode(l.Icon,{name:a?"minus":"plus",icon:a?p.minusIcon:p.plusIcon},null)])])}return l.getTemplate.call(this,{h:i.h,template:this.$props.render,defaultRendering:e,additionalProps:this.$props,additionalListeners:{keydown:this.triggerKeydown,click:this.clickHandler}})}});exports.GridHierarchyCell=g;
@@ -7,12 +7,12 @@
7
7
  */
8
8
  import { defineComponent as c, createVNode as r, h as m } from "vue";
9
9
  import { getNestedValue as u } from "../utils/main.mjs";
10
- import { noop as h, Icon as g, getTemplate as f, Keys as y } from "@progress/kendo-vue-common";
11
- import { KEYBOARD_NAV_DATA_ID as b, KEYBOARD_NAV_DATA_LEVEL as I } from "@progress/kendo-vue-data-tools";
12
- import { provideLocalizationService as $ } from "@progress/kendo-vue-intl";
10
+ import { noop as h, Icon as g, getTemplate as f, Keys as I } from "@progress/kendo-vue-common";
11
+ import { KEYBOARD_NAV_DATA_ID as y, KEYBOARD_NAV_DATA_LEVEL as b, DETAIL_EXPAND_ACTION as $ } from "@progress/kendo-vue-data-tools";
12
+ import { provideLocalizationService as S } from "@progress/kendo-vue-intl";
13
13
  import { collapseDetailAriaLabel as s, messages as d, expandDetailAriaLabel as p } from "../messages/main.mjs";
14
- import { minusIcon as v, plusIcon as x } from "@progress/kendo-svg-icons";
15
- const D = /* @__PURE__ */ c({
14
+ import { minusIcon as k, plusIcon as A } from "@progress/kendo-svg-icons";
15
+ const L = /* @__PURE__ */ c({
16
16
  name: "KendoGridHierarchyCell",
17
17
  inheritAttrs: !1,
18
18
  props: {
@@ -40,6 +40,9 @@ const D = /* @__PURE__ */ c({
40
40
  cellkeydown: null
41
41
  },
42
42
  inject: {
43
+ kendo: {
44
+ default: null
45
+ },
43
46
  kendoIntlService: {
44
47
  default: null
45
48
  },
@@ -51,19 +54,26 @@ const D = /* @__PURE__ */ c({
51
54
  }
52
55
  },
53
56
  methods: {
57
+ triggerStateChange() {
58
+ const e = this.kendo;
59
+ e.dataItemKey && this.$props.dataItem[e.dataItemKey] !== void 0 && (e == null || e.dispatchDetailExpand({
60
+ type: $.TOGGLE,
61
+ id: this.$props.dataItem[e.dataItemKey]
62
+ }));
63
+ },
54
64
  triggerKeydown(e, t) {
55
65
  this.$emit("cellkeydown", {
56
66
  event: e,
57
67
  dataItem: this.$props.dataItem,
58
68
  field: this.$props.field,
59
69
  expanded: t
60
- }), !e.defaultPrevented && e.keyCode === y.enter && (e.preventDefault(), this.$emit("change", {
70
+ }), !e.defaultPrevented && e.keyCode === I.enter && (e.preventDefault(), this.$emit("change", {
61
71
  dataItem: this.$props.dataItem,
62
72
  dataIndex: this.$props.dataIndex,
63
73
  event: e,
64
74
  field: this.$props.field,
65
75
  value: !t
66
- }));
76
+ }), this.triggerStateChange());
67
77
  },
68
78
  clickHandler(e, t, i) {
69
79
  e.preventDefault(), this.$emit("change", {
@@ -71,7 +81,7 @@ const D = /* @__PURE__ */ c({
71
81
  event: e,
72
82
  field: void 0,
73
83
  value: !i
74
- });
84
+ }), this.triggerStateChange();
75
85
  }
76
86
  },
77
87
  computed: {
@@ -85,7 +95,7 @@ const D = /* @__PURE__ */ c({
85
95
  },
86
96
  render() {
87
97
  let e = null;
88
- const t = this.getKeyboardNavigationAttributes(this.$props.id), i = $(this), l = i.toLanguageString(s, d[s]), o = i.toLanguageString(p, d[p]);
98
+ const t = this.getKeyboardNavigationAttributes(this.$props.id), i = S(this), l = i.toLanguageString(s, d[s]), o = i.toLanguageString(p, d[p]);
89
99
  if (this.$props.rowType === "groupFooter")
90
100
  e = r("td", {
91
101
  class: this.wrapperClass
@@ -102,8 +112,8 @@ const D = /* @__PURE__ */ c({
102
112
  role: "gridcell",
103
113
  "aria-colindex": this.$props.ariaColumnIndex,
104
114
  tabindex: t.tabIndex,
105
- "data-keyboardnavlevel": t[I],
106
- "data-keyboardnavid": t[b]
115
+ "data-keyboardnavlevel": t[b],
116
+ "data-keyboardnavid": t[y]
107
117
  }, [r("a", {
108
118
  onClick: (n) => {
109
119
  this.clickHandler(n, this.$props.dataItem, a);
@@ -114,7 +124,7 @@ const D = /* @__PURE__ */ c({
114
124
  "aria-label": a ? l : o
115
125
  }, [r(g, {
116
126
  name: a ? "minus" : "plus",
117
- icon: a ? v : x
127
+ icon: a ? k : A
118
128
  }, null)])]);
119
129
  }
120
130
  return f.call(this, {
@@ -130,5 +140,5 @@ const D = /* @__PURE__ */ c({
130
140
  }
131
141
  });
132
142
  export {
133
- D as GridHierarchyCell
143
+ L as GridHierarchyCell
134
144
  };
package/common.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2025 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"});require("vue");const t=require("@progress/kendo-vue-common"),n={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(){}},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,Boolean],defaultFilter:Object,filter:Object,defaultSearch:Object,search:Object,searchFields:Array,highlight:Object,pageable:[Boolean,Object],pageSize:Number,total:Number,skip:Number,defaultSkip:Number,take:Number,defaultTake:Number,expandField:String,expandColumn:Object,selectedField:String,cellRender:[String,Function,Object],rowRender:[String,Function,Object],resizable:Boolean,reorderable:Boolean,group:Array,defaultGroup:Array,groupable:[Boolean,Object],groupExpand:Array,defaultGroupExpand:Array,detailExpand:Object,defaultDetailExpand:Object,editField:String,rowClass:Function,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;