@progress/kendo-vue-grid 8.1.0-develop.2 → 8.1.0-develop.3

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 (61) hide show
  1. package/Grid.d.ts +56 -5
  2. package/Grid.js +1 -1
  3. package/Grid.mjs +667 -649
  4. package/GridNav.d.ts +24 -4
  5. package/GridNav.js +1 -1
  6. package/GridNav.mjs +62 -22
  7. package/GridState.d.ts +4 -0
  8. package/RootGrid.d.ts +32 -11
  9. package/RootGrid.js +1 -1
  10. package/RootGrid.mjs +96 -57
  11. package/cells/GridCell.js +1 -1
  12. package/cells/GridCell.mjs +35 -26
  13. package/cells/GridGroupCell.d.ts +10 -0
  14. package/cells/GridGroupCell.js +1 -1
  15. package/cells/GridGroupCell.mjs +95 -53
  16. package/columnMenu/GridColumnMenuCheckboxFilter.d.ts +1 -1
  17. package/columnMenu/GridColumnMenuCheckboxFilter.js +1 -1
  18. package/columnMenu/GridColumnMenuCheckboxFilter.mjs +11 -11
  19. package/common.d.ts +2 -0
  20. package/common.js +1 -1
  21. package/common.mjs +2 -0
  22. package/components/StickyGroupTable.d.ts +85 -0
  23. package/components/StickyGroupTable.js +8 -0
  24. package/components/StickyGroupTable.mjs +113 -0
  25. package/dist/cdn/js/kendo-vue-grid.js +1 -1
  26. package/drag/ColumnResize.d.ts +10 -1
  27. package/drag/ColumnResize.js +1 -1
  28. package/drag/ColumnResize.mjs +129 -104
  29. package/drag/GroupingIndicator.d.ts +1 -0
  30. package/drag/GroupingIndicator.js +1 -1
  31. package/drag/GroupingIndicator.mjs +28 -18
  32. package/footer/FooterCell.d.ts +43 -0
  33. package/footer/FooterCell.js +8 -0
  34. package/footer/FooterCell.mjs +68 -0
  35. package/footer/FooterRow.d.ts +5 -6
  36. package/footer/FooterRow.js +1 -1
  37. package/footer/FooterRow.mjs +16 -39
  38. package/getRowContents.d.ts +85 -0
  39. package/getRowContents.js +8 -0
  40. package/getRowContents.mjs +172 -0
  41. package/header/GridHeaderGroupSpacerCell.d.ts +11 -0
  42. package/hooks/useStickyGroups.d.ts +72 -0
  43. package/hooks/useStickyGroups.js +8 -0
  44. package/hooks/useStickyGroups.mjs +350 -0
  45. package/index.d.mts +1 -0
  46. package/index.d.ts +1 -0
  47. package/index.js +1 -1
  48. package/index.mjs +74 -73
  49. package/interfaces/GridCellProps.d.ts +4 -0
  50. package/interfaces/GridCellsSettings.d.ts +320 -0
  51. package/interfaces/GridColumnProps.d.ts +11 -1
  52. package/interfaces/GridGroupableSettings.d.ts +23 -0
  53. package/interfaces/GridProps.d.ts +33 -0
  54. package/messages/main.d.ts +5 -0
  55. package/messages/main.js +2 -2
  56. package/messages/main.mjs +15 -13
  57. package/package-metadata.js +1 -1
  58. package/package-metadata.mjs +2 -2
  59. package/package.json +12 -12
  60. package/utils/main.js +1 -1
  61. package/utils/main.mjs +80 -76
@@ -0,0 +1,85 @@
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 { DataRowContext } from '../getRowContents';
10
+ import { StickyGroupItem } from '../hooks/useStickyGroups';
11
+ /**
12
+ * Represents the StickyGroupTable handle.
13
+ *
14
+ * @hidden
15
+ */
16
+ export interface StickyTableHandle {
17
+ /**
18
+ * Sets the width of the sticky table element.
19
+ */
20
+ setWidth: (width: number) => void;
21
+ /**
22
+ * Sets the horizontal scroll position of the sticky container.
23
+ */
24
+ setScrollLeft: (scrollLeft: number) => void;
25
+ }
26
+ /**
27
+ * @hidden
28
+ */
29
+ export interface StickyGroupTableProps {
30
+ size?: string;
31
+ items?: any[];
32
+ cols: any[];
33
+ colGroups?: any;
34
+ dataRowContext: DataRowContext;
35
+ position: 'top' | 'bottom';
36
+ isStackedMode?: boolean;
37
+ groupLevelCount?: number;
38
+ rowHeight?: number;
39
+ }
40
+ /**
41
+ * @hidden
42
+ */
43
+ export declare const StickyGroupTable: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
44
+ size: StringConstructor;
45
+ items: ArrayConstructor;
46
+ cols: ArrayConstructor;
47
+ dataRowContext: {
48
+ type: PropType<DataRowContext>;
49
+ required: true;
50
+ };
51
+ position: {
52
+ type: PropType<"bottom" | "top">;
53
+ required: true;
54
+ };
55
+ isStackedMode: BooleanConstructor;
56
+ groupLevelCount: NumberConstructor;
57
+ rowHeight: NumberConstructor;
58
+ }>, {}, {}, {
59
+ isTop(): boolean;
60
+ stickyItems(): StickyGroupItem[];
61
+ hasContent(): boolean;
62
+ containerClassName(): string;
63
+ tableClassName(): string;
64
+ }, {
65
+ setWidth(width: number): void;
66
+ setScrollLeft(scrollLeft: number): void;
67
+ renderRows(): any;
68
+ }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
69
+ size: StringConstructor;
70
+ items: ArrayConstructor;
71
+ cols: ArrayConstructor;
72
+ dataRowContext: {
73
+ type: PropType<DataRowContext>;
74
+ required: true;
75
+ };
76
+ position: {
77
+ type: PropType<"bottom" | "top">;
78
+ required: true;
79
+ };
80
+ isStackedMode: BooleanConstructor;
81
+ groupLevelCount: NumberConstructor;
82
+ rowHeight: NumberConstructor;
83
+ }>> & Readonly<{}>, {
84
+ isStackedMode: boolean;
85
+ }, {}, {}, {}, 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 o=require("vue"),e=require("@progress/kendo-vue-common"),d=require("../rows/GridRow.js"),c=require("../getRowContents.js"),u=o.defineComponent({name:"StickyGroupTable",props:{size:String,items:Array,cols:Array,dataRowContext:{type:Object,required:!0},position:{type:String,required:!0},isStackedMode:Boolean,groupLevelCount:Number,rowHeight:Number},inject:{sticky:{default:null}},mounted(){this.tableRef=e.getRef(this,"table"),this.colGroupRef=e.getRef(this,"colGroup")},updated(){this.tableRef=e.getRef(this,"table"),this.colGroupRef=e.getRef(this,"colGroup")},computed:{isTop(){return this.position==="top"},stickyItems(){return this.isTop?this.sticky.headerItems||[]:this.sticky.footerItems||[]},hasContent(){return this.stickyItems.length>0},containerClassName(){return e.classNames(e.uGrid.stickyContainer({bottom:!this.isTop}))},tableClassName(){return e.classNames(e.uGrid.table({size:this.size}))}},methods:{setWidth(s){const t=e.getRef(this,"tableRef");t&&(t.style.width=s?s+"px":"")},setScrollLeft(s){const t=this.$el;t&&t.scrollLeft!==s&&(t.scrollLeft=s)},renderRows(){return this.stickyItems.map((s,t)=>{const{item:r,flatIndex:i}=s,a=this.dataRowContext.dataItemKey&&e.getter(this.dataRowContext.dataItemKey)(r.dataItem)||"ai"+i,n=c.getRowContents(this.dataRowContext,r,a,t),l=this.isTop?"groupHeader":"groupFooter";return o.createVNode(d.GridRow,{key:a,rowType:l,item:r,dataIndex:-1,ariaRowIndex:t,absoluteRowIndex:i,isAltRow:!1,isHidden:!1,rowHeight:this.$props.rowHeight,isSelected:!1,isInEdit:!1},{default:()=>[n.row]})})}},render(){return o.createVNode("div",{class:this.containerClassName,style:{display:this.hasContent?"":"none"}},[o.createVNode("table",{ref:e.setRef(this,"table"),class:this.tableClassName},[o.createVNode("colgroup",{ref:e.setRef(this,"colGroup")},[this.$props.cols]),o.createVNode("tbody",{class:e.classNames(e.uGrid.tbody({}))},[this.renderRows()])])])}});exports.StickyGroupTable=u;
@@ -0,0 +1,113 @@
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 { defineComponent as p, createVNode as s } from "vue";
9
+ import { setRef as d, classNames as r, uGrid as a, getter as m, getRef as o } from "@progress/kendo-vue-common";
10
+ import { GridRow as u } from "../rows/GridRow.mjs";
11
+ import { getRowContents as f } from "../getRowContents.mjs";
12
+ const g = /* @__PURE__ */ p({
13
+ name: "StickyGroupTable",
14
+ props: {
15
+ size: String,
16
+ items: Array,
17
+ cols: Array,
18
+ dataRowContext: {
19
+ type: Object,
20
+ required: !0
21
+ },
22
+ position: {
23
+ type: String,
24
+ required: !0
25
+ },
26
+ isStackedMode: Boolean,
27
+ groupLevelCount: Number,
28
+ rowHeight: Number
29
+ },
30
+ inject: {
31
+ sticky: {
32
+ default: null
33
+ }
34
+ },
35
+ mounted() {
36
+ this.tableRef = o(this, "table"), this.colGroupRef = o(this, "colGroup");
37
+ },
38
+ updated() {
39
+ this.tableRef = o(this, "table"), this.colGroupRef = o(this, "colGroup");
40
+ },
41
+ computed: {
42
+ isTop() {
43
+ return this.position === "top";
44
+ },
45
+ stickyItems() {
46
+ return this.isTop ? this.sticky.headerItems || [] : this.sticky.footerItems || [];
47
+ },
48
+ hasContent() {
49
+ return this.stickyItems.length > 0;
50
+ },
51
+ containerClassName() {
52
+ return r(a.stickyContainer({
53
+ bottom: !this.isTop
54
+ }));
55
+ },
56
+ tableClassName() {
57
+ return r(a.table({
58
+ size: this.size
59
+ }));
60
+ }
61
+ },
62
+ methods: {
63
+ setWidth(e) {
64
+ const t = o(this, "tableRef");
65
+ t && (t.style.width = e ? e + "px" : "");
66
+ },
67
+ setScrollLeft(e) {
68
+ const t = this.$el;
69
+ t && t.scrollLeft !== e && (t.scrollLeft = e);
70
+ },
71
+ renderRows() {
72
+ return this.stickyItems.map((e, t) => {
73
+ const {
74
+ item: i,
75
+ flatIndex: n
76
+ } = e, l = this.dataRowContext.dataItemKey && m(this.dataRowContext.dataItemKey)(i.dataItem) || "ai" + n, c = f(this.dataRowContext, i, l, t), h = this.isTop ? "groupHeader" : "groupFooter";
77
+ return s(u, {
78
+ key: l,
79
+ rowType: h,
80
+ item: i,
81
+ dataIndex: -1,
82
+ ariaRowIndex: t,
83
+ absoluteRowIndex: n,
84
+ isAltRow: !1,
85
+ isHidden: !1,
86
+ rowHeight: this.$props.rowHeight,
87
+ isSelected: !1,
88
+ isInEdit: !1
89
+ }, {
90
+ default: () => [c.row]
91
+ });
92
+ });
93
+ }
94
+ },
95
+ render() {
96
+ return s("div", {
97
+ class: this.containerClassName,
98
+ style: {
99
+ display: this.hasContent ? "" : "none"
100
+ }
101
+ }, [s("table", {
102
+ ref: d(this, "table"),
103
+ class: this.tableClassName
104
+ }, [s("colgroup", {
105
+ ref: d(this, "colGroup")
106
+ }, [this.$props.cols]), s("tbody", {
107
+ class: r(a.tbody({}))
108
+ }, [this.renderRows()])])]);
109
+ }
110
+ });
111
+ export {
112
+ g as StickyGroupTable
113
+ };