@progress/kendo-react-grid 14.2.2-develop.1 → 14.3.0-develop.10
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/GridClientContextReader.js +1 -1
- package/GridClientContextReader.mjs +10 -9
- package/GridClientWrapper.js +1 -1
- package/GridClientWrapper.mjs +651 -494
- package/GridComponent.js +1 -1
- package/GridComponent.mjs +418 -379
- package/GridState.d.ts +2 -0
- package/GridState.js +1 -1
- package/GridState.mjs +98 -90
- package/{toolbar-tools/smartbox/SegmentedControl.d.ts → cells/pincell/GridPinCell.d.ts} +4 -2
- package/cells/pincell/GridPinCell.js +9 -0
- package/cells/pincell/GridPinCell.mjs +19 -0
- package/cells/pincell/GridPinCellServer.d.ts +15 -0
- package/cells/pincell/GridPinCellServer.js +8 -0
- package/cells/pincell/GridPinCellServer.mjs +32 -0
- package/cells/pincell/GridPinCellServerContainer.d.ts +11 -0
- package/cells/pincell/GridPinCellServerContainer.js +9 -0
- package/cells/pincell/GridPinCellServerContainer.mjs +26 -0
- package/cells/pincell/GridPinDropdownButton.d.ts +21 -0
- package/cells/pincell/GridPinDropdownButton.js +9 -0
- package/cells/pincell/GridPinDropdownButton.mjs +58 -0
- package/cells/pincell/useGridPinCellClientTdProps.d.ts +24 -0
- package/cells/pincell/useGridPinCellClientTdProps.js +9 -0
- package/cells/pincell/useGridPinCellClientTdProps.mjs +21 -0
- package/cells/pincell/utils.d.ts +20 -0
- package/cells/pincell/utils.js +8 -0
- package/cells/pincell/utils.mjs +47 -0
- package/components/PinnedRowsTable.d.ts +48 -0
- package/components/PinnedRowsTable.js +9 -0
- package/components/PinnedRowsTable.mjs +133 -0
- package/components/StickyGroupTable.d.ts +42 -0
- package/components/StickyGroupTable.js +9 -0
- package/components/StickyGroupTable.mjs +82 -0
- package/components/colGroup/GridColGroup.js +1 -1
- package/components/colGroup/GridColGroup.mjs +9 -9
- package/contextMenu/GridContextMenu.d.ts +42 -0
- package/contextMenu/GridContextMenu.js +1 -1
- package/contextMenu/GridContextMenu.mjs +101 -51
- package/contextMenu/enums.d.ts +5 -1
- package/contextMenu/enums.js +1 -1
- package/contextMenu/enums.mjs +2 -2
- package/dist/cdn/js/kendo-react-grid.js +1 -1
- package/drag/ColumnResize.d.ts +17 -0
- package/drag/ColumnResize.js +1 -1
- package/drag/ColumnResize.mjs +107 -100
- package/getRowContents.d.ts +58 -0
- package/getRowContents.js +8 -0
- package/getRowContents.mjs +99 -0
- package/header/GridHeaderGroupSpacerCell.d.ts +13 -0
- package/header/GridHeaderGroupSpacerCell.js +9 -0
- package/header/GridHeaderGroupSpacerCell.mjs +23 -0
- package/header/client/GridHeaderPinCell.d.ts +12 -0
- package/header/client/GridHeaderPinCell.js +9 -0
- package/header/client/GridHeaderPinCell.mjs +14 -0
- package/hooks/useStickyGroups.d.ts +71 -0
- package/hooks/useStickyGroups.js +9 -0
- package/hooks/useStickyGroups.mjs +350 -0
- package/index.d.mts +5 -2
- package/index.d.ts +5 -2
- package/index.js +1 -1
- package/index.mjs +97 -95
- package/interfaces/ColumnType.d.ts +1 -1
- package/interfaces/GridCellsSettings.d.ts +23 -0
- package/interfaces/GridGroupableSettings.d.ts +23 -0
- package/interfaces/GridProps.d.ts +70 -1
- package/interfaces/GridRowProps.d.ts +4 -0
- package/interfaces/GridRowsSettings.d.ts +11 -0
- package/interfaces/events.d.ts +17 -0
- package/messages/index.d.ts +25 -0
- package/messages/index.js +2 -2
- package/messages/index.mjs +122 -112
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +17 -17
- package/rows/GridRow.js +1 -1
- package/rows/GridRow.mjs +25 -24
- package/rows/GridRowRenderer.d.ts +1 -0
- package/rows/GridRowRenderer.js +1 -1
- package/rows/GridRowRenderer.mjs +39 -36
- package/stacked/GridStackedRow.d.ts +5 -0
- package/stacked/GridStackedRow.js +1 -1
- package/stacked/GridStackedRow.mjs +118 -116
- package/stacked/StackedModeComponents.d.ts +1 -0
- package/stacked/StackedModeComponents.js +1 -1
- package/stacked/StackedModeComponents.mjs +14 -14
- package/stacked/StackedModeRow.d.ts +1 -0
- package/stacked/StackedModeRow.js +1 -1
- package/stacked/StackedModeRow.mjs +13 -11
- package/toolbar-tools/smartbox/SmartBox.js +1 -1
- package/toolbar-tools/smartbox/SmartBox.mjs +102 -94
- package/toolbar-tools/smartbox/hooks/useSmartBoxSegmentedControl.d.ts +12 -3
- package/toolbar-tools/smartbox/hooks/useSmartBoxSegmentedControl.js +1 -1
- package/toolbar-tools/smartbox/hooks/useSmartBoxSegmentedControl.mjs +42 -41
- package/toolbar-tools/smartbox/index.d.ts +0 -1
- package/toolbar-tools/smartbox/interfaces/index.d.ts +0 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.js +1 -1
- package/utils/index.mjs +44 -44
- package/toolbar-tools/smartbox/SegmentedControl.js +0 -8
- package/toolbar-tools/smartbox/SegmentedControl.mjs +0 -109
- package/toolbar-tools/smartbox/interfaces/SegmentedControlTypes.d.ts +0 -66
|
@@ -0,0 +1,47 @@
|
|
|
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 * as c from "react";
|
|
9
|
+
import { GRID_COL_INDEX_ATTRIBUTE as s } from "../../constants/index.mjs";
|
|
10
|
+
import { uGrid as o, classNames as r } from "@progress/kendo-react-common";
|
|
11
|
+
import { GridPinDropdownButton as m } from "./GridPinDropdownButton.mjs";
|
|
12
|
+
const I = (e) => {
|
|
13
|
+
var i;
|
|
14
|
+
let t = null, l = null;
|
|
15
|
+
if (e.rowType === "groupFooter")
|
|
16
|
+
t = {
|
|
17
|
+
className: e.className
|
|
18
|
+
};
|
|
19
|
+
else if (e.rowType !== "groupHeader") {
|
|
20
|
+
const a = e.unstyled, n = (i = a == null ? void 0 : a.uGrid) != null ? i : o, d = r(
|
|
21
|
+
n.td({
|
|
22
|
+
selected: e.isSelected,
|
|
23
|
+
highlighted: e.isHighlighted,
|
|
24
|
+
sorted: e.isSorted,
|
|
25
|
+
alt: e.isAlt
|
|
26
|
+
}),
|
|
27
|
+
e.className
|
|
28
|
+
);
|
|
29
|
+
t = {
|
|
30
|
+
colSpan: e.colSpan,
|
|
31
|
+
style: e.style,
|
|
32
|
+
className: d,
|
|
33
|
+
role: "gridcell",
|
|
34
|
+
"aria-colindex": e.ariaColumnIndex,
|
|
35
|
+
"aria-selected": e.isSelected,
|
|
36
|
+
[s]: e.columnIndex
|
|
37
|
+
}, l = /* @__PURE__ */ c.createElement(m, { dataItem: e.dataItem });
|
|
38
|
+
}
|
|
39
|
+
return { tdProps: t, content: l };
|
|
40
|
+
}, T = (e) => {
|
|
41
|
+
var t, l;
|
|
42
|
+
return (l = (t = e.cells) == null ? void 0 : t.pin) == null ? void 0 : l[e.rowType || "data"];
|
|
43
|
+
};
|
|
44
|
+
export {
|
|
45
|
+
T as getCustomCell,
|
|
46
|
+
I as getPinCellTdProps
|
|
47
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
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 { EditDescriptor } from '@progress/kendo-react-data-tools';
|
|
9
|
+
import { DataRowContext } from '../getRowContents.js';
|
|
10
|
+
import { GridStackedLayoutSettings } from '../interfaces/GridStackedLayoutSettings.js';
|
|
11
|
+
import { GridRowProps } from '../interfaces/GridRowProps.js';
|
|
12
|
+
import * as React from 'react';
|
|
13
|
+
/**
|
|
14
|
+
* Represents the PinnedRowsTable handle.
|
|
15
|
+
*
|
|
16
|
+
* @hidden
|
|
17
|
+
*/
|
|
18
|
+
export interface PinnedRowsTableHandle {
|
|
19
|
+
/**
|
|
20
|
+
* Sets the width of the pinned rows table element.
|
|
21
|
+
*/
|
|
22
|
+
setWidth: (width: number) => void;
|
|
23
|
+
/**
|
|
24
|
+
* Sets the horizontal scroll position of the pinned rows container.
|
|
25
|
+
*/
|
|
26
|
+
setScrollLeft: (scrollLeft: number) => void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @hidden
|
|
30
|
+
*/
|
|
31
|
+
export interface PinnedRowsTableProps {
|
|
32
|
+
size?: string;
|
|
33
|
+
colGroups?: React.ReactElement;
|
|
34
|
+
dataRowContext: DataRowContext;
|
|
35
|
+
position: 'top' | 'bottom';
|
|
36
|
+
pinnedItems: any[];
|
|
37
|
+
isStackedMode?: boolean;
|
|
38
|
+
groupLevelCount?: number;
|
|
39
|
+
stackedLayoutSettings?: GridStackedLayoutSettings;
|
|
40
|
+
rowHeight?: number;
|
|
41
|
+
rows?: GridRowProps['rows'];
|
|
42
|
+
selectable?: any;
|
|
43
|
+
edit?: EditDescriptor;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @hidden
|
|
47
|
+
*/
|
|
48
|
+
export declare const PinnedRowsTable: React.FC<PinnedRowsTableProps>;
|
|
@@ -0,0 +1,9 @@
|
|
|
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 client";
|
|
9
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("react"),d=require("@progress/kendo-react-common"),E=require("@progress/kendo-react-data-tools"),H=require("../utils/GridContext.js"),_=require("../rows/GridRowRenderer.js"),F=require("../getRowContents.js");function U(s){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const r in s)if(r!=="default"){const p=Object.getOwnPropertyDescriptor(s,r);Object.defineProperty(c,r,p.get?p:{enumerable:!0,get:()=>s[r]})}}return c.default=s,Object.freeze(c)}const n=U(A),W=({size:s,colGroups:c,dataRowContext:r,position:p,pinnedItems:y,isStackedMode:P,groupLevelCount:h,stackedLayoutSettings:C,rowHeight:G,rows:i,selectable:u,edit:I})=>{const m=d.useUnstyled(),k=m!=null&&m.uGrid?m.uGrid:d.uGrid,o=n.useContext(H.GridContext),a=p==="top",R=a?o.pinnedTopRef:o.pinnedBottomRef,v=a?o.pinnedTopTableRef:o.pinnedBottomTableRef,b=n.useRef(null),S=n.useRef(!1);n.useImperativeHandle(v,()=>({setWidth:e=>{b.current&&(b.current.style.width=e?e+"px":"")},setScrollLeft:e=>{R.current&&R.current.scrollLeft!==e&&(S.current=!0,R.current.scrollLeft=e,S.current=!1)}}));const D=n.useCallback(e=>{var f;const t=(f=o.containerElementRef)==null?void 0:f.current;if(!t||S.current)return;const l=e.currentTarget.scrollLeft;t.scrollLeft!==l&&(t.scrollLeft=l)},[o.containerElementRef]),L=n.useCallback(e=>{var t;(t=o.columnResizeRef)!=null&&t.current&&(a?o.columnResizeRef.current.colGroupPinnedTop=e:o.columnResizeRef.current.colGroupPinnedBottom=e)},[o.columnResizeRef,a]),j=i!=null&&i.pinnedData?{...i,data:i.pinnedData}:i,w=y.map((e,t)=>{var N;const l={dataItem:e,rowType:"data",level:0,expanded:!1,dataIndex:t},f=r.dataItemKey,T="pinned_"+((f?d.getter(f)(e):void 0)||"ai"+t),g=F.getRowContents(r,I,l,T,t,!1);return n.createElement(_.GridRowRenderer,{key:T,isStackedMode:!!P,item:l,rowId:T,dataIndex:t,ariaRowIndex:t+1,absoluteRowIndex:t,isAltRow:t%2!==0,isHidden:!1,isRowReorderable:!1,rowHeight:G,rows:j,leafColumns:r.leafColumns,groupLevelCount:h||0,stackedLayoutSettings:C,cells:r.cells,editMode:(N=r.editable)==null?void 0:N.mode,isSelected:g.isSelected,isHighlighted:g.isHighlighted,isInEdit:g.isInEdit&&!r.isEditDialog,preparedCells:g.row,showDetailToggle:!1,isDetailExpanded:!1})}),q=d.classNames("k-grid-pinned-container",{"k-pos-bottom":!a}),K=d.classNames(k.table({size:s})),O=c?n.cloneElement(c,{colGroupRef:L}):null,z=n.useCallback(e=>{var l;const t=y[e.startRowIndex];t&&((l=o.pinnedSelectionRelease)==null||l.call(o,e,t))},[o,y]),B=n.useMemo(()=>u&&{...typeof u=="object"?u:{},enabled:!0,drag:!1},[u]),M=a?E.tableKeyboardNavigationTopPinnedAttributes:E.tableKeyboardNavigationBottomPinnedAttributes;return n.createElement("div",{className:q,style:{display:w.length?"":"none"}},n.createElement("div",{className:"k-grid-pinned-wrap",ref:R,onScroll:D},n.createElement(E.TableSelection,{selectable:B,onRelease:z,childRef:e=>{b.current=e}},n.createElement("table",{ref:b,className:K,"aria-label":a?"Pinned top rows":"Pinned bottom rows"},O,n.createElement("tbody",{className:d.classNames(k.tbody({})),...M},w)))))};exports.PinnedRowsTable=W;
|
|
@@ -0,0 +1,133 @@
|
|
|
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 client";
|
|
9
|
+
import * as n from "react";
|
|
10
|
+
import { useUnstyled as j, uGrid as F, getter as U, classNames as g } from "@progress/kendo-react-common";
|
|
11
|
+
import { TableSelection as W, tableKeyboardNavigationTopPinnedAttributes as _, tableKeyboardNavigationBottomPinnedAttributes as q } from "@progress/kendo-react-data-tools";
|
|
12
|
+
import { GridContext as J } from "../utils/GridContext.mjs";
|
|
13
|
+
import { GridRowRenderer as O } from "../rows/GridRowRenderer.mjs";
|
|
14
|
+
import { getRowContents as Q } from "../getRowContents.mjs";
|
|
15
|
+
const ee = ({
|
|
16
|
+
size: h,
|
|
17
|
+
colGroups: y,
|
|
18
|
+
dataRowContext: s,
|
|
19
|
+
position: I,
|
|
20
|
+
pinnedItems: p,
|
|
21
|
+
isStackedMode: k,
|
|
22
|
+
groupLevelCount: N,
|
|
23
|
+
stackedLayoutSettings: w,
|
|
24
|
+
rowHeight: C,
|
|
25
|
+
rows: a,
|
|
26
|
+
selectable: i,
|
|
27
|
+
edit: G
|
|
28
|
+
}) => {
|
|
29
|
+
const d = j(), E = d != null && d.uGrid ? d.uGrid : F, o = n.useContext(J), r = I === "top", f = r ? o.pinnedTopRef : o.pinnedBottomRef, P = r ? o.pinnedTopTableRef : o.pinnedBottomTableRef, u = n.useRef(null), R = n.useRef(!1);
|
|
30
|
+
n.useImperativeHandle(P, () => ({
|
|
31
|
+
setWidth: (e) => {
|
|
32
|
+
u.current && (u.current.style.width = e ? e + "px" : "");
|
|
33
|
+
},
|
|
34
|
+
setScrollLeft: (e) => {
|
|
35
|
+
f.current && f.current.scrollLeft !== e && (R.current = !0, f.current.scrollLeft = e, R.current = !1);
|
|
36
|
+
}
|
|
37
|
+
}));
|
|
38
|
+
const v = n.useCallback(
|
|
39
|
+
(e) => {
|
|
40
|
+
var c;
|
|
41
|
+
const t = (c = o.containerElementRef) == null ? void 0 : c.current;
|
|
42
|
+
if (!t || R.current)
|
|
43
|
+
return;
|
|
44
|
+
const l = e.currentTarget.scrollLeft;
|
|
45
|
+
t.scrollLeft !== l && (t.scrollLeft = l);
|
|
46
|
+
},
|
|
47
|
+
[o.containerElementRef]
|
|
48
|
+
), L = n.useCallback(
|
|
49
|
+
(e) => {
|
|
50
|
+
var t;
|
|
51
|
+
(t = o.columnResizeRef) != null && t.current && (r ? o.columnResizeRef.current.colGroupPinnedTop = e : o.columnResizeRef.current.colGroupPinnedBottom = e);
|
|
52
|
+
},
|
|
53
|
+
[o.columnResizeRef, r]
|
|
54
|
+
), K = a != null && a.pinnedData ? { ...a, data: a.pinnedData } : a, S = p.map((e, t) => {
|
|
55
|
+
var T;
|
|
56
|
+
const l = {
|
|
57
|
+
dataItem: e,
|
|
58
|
+
rowType: "data",
|
|
59
|
+
level: 0,
|
|
60
|
+
expanded: !1,
|
|
61
|
+
dataIndex: t
|
|
62
|
+
}, c = s.dataItemKey, b = "pinned_" + ((c ? U(c)(e) : void 0) || "ai" + t), m = Q(s, G, l, b, t, !1);
|
|
63
|
+
return /* @__PURE__ */ n.createElement(
|
|
64
|
+
O,
|
|
65
|
+
{
|
|
66
|
+
key: b,
|
|
67
|
+
isStackedMode: !!k,
|
|
68
|
+
item: l,
|
|
69
|
+
rowId: b,
|
|
70
|
+
dataIndex: t,
|
|
71
|
+
ariaRowIndex: t + 1,
|
|
72
|
+
absoluteRowIndex: t,
|
|
73
|
+
isAltRow: t % 2 !== 0,
|
|
74
|
+
isHidden: !1,
|
|
75
|
+
isRowReorderable: !1,
|
|
76
|
+
rowHeight: C,
|
|
77
|
+
rows: K,
|
|
78
|
+
leafColumns: s.leafColumns,
|
|
79
|
+
groupLevelCount: N || 0,
|
|
80
|
+
stackedLayoutSettings: w,
|
|
81
|
+
cells: s.cells,
|
|
82
|
+
editMode: (T = s.editable) == null ? void 0 : T.mode,
|
|
83
|
+
isSelected: m.isSelected,
|
|
84
|
+
isHighlighted: m.isHighlighted,
|
|
85
|
+
isInEdit: m.isInEdit && !s.isEditDialog,
|
|
86
|
+
preparedCells: m.row,
|
|
87
|
+
showDetailToggle: !1,
|
|
88
|
+
isDetailExpanded: !1
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
}), B = g("k-grid-pinned-container", {
|
|
92
|
+
"k-pos-bottom": !r
|
|
93
|
+
}), D = g(E.table({ size: h })), z = y ? n.cloneElement(y, { colGroupRef: L }) : null, A = n.useCallback(
|
|
94
|
+
(e) => {
|
|
95
|
+
var l;
|
|
96
|
+
const t = p[e.startRowIndex];
|
|
97
|
+
t && ((l = o.pinnedSelectionRelease) == null || l.call(o, e, t));
|
|
98
|
+
},
|
|
99
|
+
[o, p]
|
|
100
|
+
), H = n.useMemo(() => i && { ...typeof i == "object" ? i : {}, enabled: !0, drag: !1 }, [i]), M = r ? _ : q;
|
|
101
|
+
return /* @__PURE__ */ n.createElement(
|
|
102
|
+
"div",
|
|
103
|
+
{
|
|
104
|
+
className: B,
|
|
105
|
+
style: {
|
|
106
|
+
display: S.length ? "" : "none"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
/* @__PURE__ */ n.createElement("div", { className: "k-grid-pinned-wrap", ref: f, onScroll: v }, /* @__PURE__ */ n.createElement(
|
|
110
|
+
W,
|
|
111
|
+
{
|
|
112
|
+
selectable: H,
|
|
113
|
+
onRelease: A,
|
|
114
|
+
childRef: (e) => {
|
|
115
|
+
u.current = e;
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
/* @__PURE__ */ n.createElement(
|
|
119
|
+
"table",
|
|
120
|
+
{
|
|
121
|
+
ref: u,
|
|
122
|
+
className: D,
|
|
123
|
+
"aria-label": r ? "Pinned top rows" : "Pinned bottom rows"
|
|
124
|
+
},
|
|
125
|
+
z,
|
|
126
|
+
/* @__PURE__ */ n.createElement("tbody", { className: g(E.tbody({})), ...M }, S)
|
|
127
|
+
)
|
|
128
|
+
))
|
|
129
|
+
);
|
|
130
|
+
};
|
|
131
|
+
export {
|
|
132
|
+
ee as PinnedRowsTable
|
|
133
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
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 { DataRowContext } from '../getRowContents.js';
|
|
9
|
+
import { GridStackedLayoutSettings } from '../interfaces/GridStackedLayoutSettings.js';
|
|
10
|
+
import * as React from 'react';
|
|
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
|
+
colGroups?: React.ReactElement;
|
|
32
|
+
dataRowContext: DataRowContext;
|
|
33
|
+
position: 'top' | 'bottom';
|
|
34
|
+
isStackedMode?: boolean;
|
|
35
|
+
groupLevelCount?: number;
|
|
36
|
+
stackedLayoutSettings?: GridStackedLayoutSettings;
|
|
37
|
+
rowHeight?: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @hidden
|
|
41
|
+
*/
|
|
42
|
+
export declare const StickyGroupTable: React.FC<StickyGroupTableProps>;
|
|
@@ -0,0 +1,9 @@
|
|
|
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 client";
|
|
9
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react"),l=require("@progress/kendo-react-common"),h=require("../utils/GridContext.js"),j=require("../rows/GridRowRenderer.js"),q=require("../getRowContents.js");function x(o){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const e in o)if(e!=="default"){const i=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(n,e,i.get?i:{enumerable:!0,get:()=>o[e]})}}return n.default=o,Object.freeze(n)}const r=x(O),z=({size:o,colGroups:n,dataRowContext:e,position:i,isStackedMode:k,groupLevelCount:g,stackedLayoutSettings:I,rowHeight:C})=>{const u=l.useUnstyled(),f=u!=null&&u.uGrid?u.uGrid:l.uGrid,t=r.useContext(h.GridContext),c=i==="top",d=c?t.stickyHeaderRef:t.stickyFooterRef,b=(c?t.stickyHeaderItems:t.stickyFooterItems)||[],G=b.length>0,w=l.classNames(f.stickyContainer({bottom:!c})),S=l.classNames(f.table({size:o})),m=r.useRef(null),N=c?t.stickyHeaderTableRef:t.stickyFooterTableRef;r.useImperativeHandle(N,()=>({setWidth:s=>{m.current&&(m.current.style.width=s?s+"px":"")},setScrollLeft:s=>{d.current&&d.current.scrollLeft!==s&&(d.current.scrollLeft=s)}}));const T=r.useCallback(s=>{var a;(a=t.columnResizeRef)!=null&&a.current&&(c?t.columnResizeRef.current.colGroupStickyHeader=s:t.columnResizeRef.current.colGroupStickyFooter=s)},[t.columnResizeRef,c]),E=n?r.cloneElement(n,{colGroupRef:T}):null,v=()=>b.map((s,a)=>{const{item:y,flatIndex:p}=s,R=e.dataItemKey&&l.getter(e.dataItemKey)(y.dataItem)||"ai"+p,H=q.getRowContents(e,{},y,R,a,!1);return r.createElement(j.GridRowRenderer,{key:R,isStackedMode:!!k,item:y,rowId:R,dataIndex:-1,ariaRowIndex:a,absoluteRowIndex:p,isAltRow:!1,isHidden:!1,isRowReorderable:!1,rowHeight:C,rows:void 0,leafColumns:e.leafColumns,groupLevelCount:g||0,stackedLayoutSettings:I,cells:e.cells,isSelected:!1,isInEdit:!1,preparedCells:H.row,showDetailToggle:!1,isDetailExpanded:!1})});return r.createElement("div",{ref:d,className:w,style:{display:G?"":"none"}},r.createElement("table",{ref:m,className:S},E,r.createElement("tbody",{className:l.classNames(f.tbody({}))},v())))};exports.StickyGroupTable=z;
|
|
@@ -0,0 +1,82 @@
|
|
|
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 client";
|
|
9
|
+
import * as s from "react";
|
|
10
|
+
import { useUnstyled as T, uGrid as v, classNames as f, getter as z } from "@progress/kendo-react-common";
|
|
11
|
+
import { GridContext as F } from "../utils/GridContext.mjs";
|
|
12
|
+
import { GridRowRenderer as K } from "../rows/GridRowRenderer.mjs";
|
|
13
|
+
import { getRowContents as L } from "../getRowContents.mjs";
|
|
14
|
+
const j = ({
|
|
15
|
+
size: p,
|
|
16
|
+
colGroups: u,
|
|
17
|
+
dataRowContext: o,
|
|
18
|
+
position: k,
|
|
19
|
+
isStackedMode: I,
|
|
20
|
+
groupLevelCount: b,
|
|
21
|
+
stackedLayoutSettings: C,
|
|
22
|
+
rowHeight: g
|
|
23
|
+
}) => {
|
|
24
|
+
const n = T(), c = n != null && n.uGrid ? n.uGrid : v, e = s.useContext(F), r = k === "top", a = r ? e.stickyHeaderRef : e.stickyFooterRef, R = (r ? e.stickyHeaderItems : e.stickyFooterItems) || [], G = R.length > 0, w = f(c.stickyContainer({ bottom: !r })), E = f(c.table({ size: p })), i = s.useRef(null), H = r ? e.stickyHeaderTableRef : e.stickyFooterTableRef;
|
|
25
|
+
s.useImperativeHandle(H, () => ({
|
|
26
|
+
setWidth: (t) => {
|
|
27
|
+
i.current && (i.current.style.width = t ? t + "px" : "");
|
|
28
|
+
},
|
|
29
|
+
setScrollLeft: (t) => {
|
|
30
|
+
a.current && a.current.scrollLeft !== t && (a.current.scrollLeft = t);
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
33
|
+
const N = s.useCallback(
|
|
34
|
+
(t) => {
|
|
35
|
+
var l;
|
|
36
|
+
(l = e.columnResizeRef) != null && l.current && (r ? e.columnResizeRef.current.colGroupStickyHeader = t : e.columnResizeRef.current.colGroupStickyFooter = t);
|
|
37
|
+
},
|
|
38
|
+
[e.columnResizeRef, r]
|
|
39
|
+
), S = u ? s.cloneElement(u, { colGroupRef: N }) : null, h = () => R.map((t, l) => {
|
|
40
|
+
const { item: d, flatIndex: y } = t, m = o.dataItemKey && z(o.dataItemKey)(d.dataItem) || "ai" + y, x = L(o, {}, d, m, l, !1);
|
|
41
|
+
return /* @__PURE__ */ s.createElement(
|
|
42
|
+
K,
|
|
43
|
+
{
|
|
44
|
+
key: m,
|
|
45
|
+
isStackedMode: !!I,
|
|
46
|
+
item: d,
|
|
47
|
+
rowId: m,
|
|
48
|
+
dataIndex: -1,
|
|
49
|
+
ariaRowIndex: l,
|
|
50
|
+
absoluteRowIndex: y,
|
|
51
|
+
isAltRow: !1,
|
|
52
|
+
isHidden: !1,
|
|
53
|
+
isRowReorderable: !1,
|
|
54
|
+
rowHeight: g,
|
|
55
|
+
rows: void 0,
|
|
56
|
+
leafColumns: o.leafColumns,
|
|
57
|
+
groupLevelCount: b || 0,
|
|
58
|
+
stackedLayoutSettings: C,
|
|
59
|
+
cells: o.cells,
|
|
60
|
+
isSelected: !1,
|
|
61
|
+
isInEdit: !1,
|
|
62
|
+
preparedCells: x.row,
|
|
63
|
+
showDetailToggle: !1,
|
|
64
|
+
isDetailExpanded: !1
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
});
|
|
68
|
+
return /* @__PURE__ */ s.createElement(
|
|
69
|
+
"div",
|
|
70
|
+
{
|
|
71
|
+
ref: a,
|
|
72
|
+
className: w,
|
|
73
|
+
style: {
|
|
74
|
+
display: G ? "" : "none"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
/* @__PURE__ */ s.createElement("table", { ref: i, className: E }, S, /* @__PURE__ */ s.createElement("tbody", { className: f(c.tbody({})) }, h()))
|
|
78
|
+
);
|
|
79
|
+
};
|
|
80
|
+
export {
|
|
81
|
+
j as StickyGroupTable
|
|
82
|
+
};
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
8
|
"use client";
|
|
9
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),i=require("../../utils/GridContext.js");function u(
|
|
9
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),i=require("../../utils/GridContext.js");function u(t){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(r,e,n.get?n:{enumerable:!0,get:()=>t[e]})}}return r.default=t,Object.freeze(r)}const o=u(c),l=t=>{const r=o.useContext(i.GridContext),e=t.colGroupRef;return o.createElement("colgroup",{ref:n=>{e?typeof e=="function"?e(n):e.current=n:(r.columnResizeRef.current.colGroupMain=n,r.columnResizeRef.current.initWidths())}},t.children)};exports.GridColGroup=l;
|
|
@@ -6,20 +6,20 @@
|
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
8
|
"use client";
|
|
9
|
-
import * as
|
|
10
|
-
import { GridContext as
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
return /* @__PURE__ */
|
|
9
|
+
import * as n from "react";
|
|
10
|
+
import { GridContext as i } from "../../utils/GridContext.mjs";
|
|
11
|
+
const u = (r) => {
|
|
12
|
+
const o = n.useContext(i), e = r.colGroupRef;
|
|
13
|
+
return /* @__PURE__ */ n.createElement(
|
|
14
14
|
"colgroup",
|
|
15
15
|
{
|
|
16
|
-
ref: (
|
|
17
|
-
e.columnResizeRef.current.colGroupMain =
|
|
16
|
+
ref: (t) => {
|
|
17
|
+
e ? typeof e == "function" ? e(t) : e.current = t : (o.columnResizeRef.current.colGroupMain = t, o.columnResizeRef.current.initWidths());
|
|
18
18
|
}
|
|
19
19
|
},
|
|
20
|
-
|
|
20
|
+
r.children
|
|
21
21
|
);
|
|
22
22
|
};
|
|
23
23
|
export {
|
|
24
|
-
|
|
24
|
+
u as GridColGroup
|
|
25
25
|
};
|
|
@@ -103,6 +103,48 @@ export declare const contextMenuItemsMap: {
|
|
|
103
103
|
};
|
|
104
104
|
}[];
|
|
105
105
|
};
|
|
106
|
+
pinRow: {
|
|
107
|
+
name: string;
|
|
108
|
+
text: string;
|
|
109
|
+
icon: string;
|
|
110
|
+
svgIcon: import('@progress/kendo-svg-icons').SVGIcon;
|
|
111
|
+
items: {
|
|
112
|
+
name: string;
|
|
113
|
+
text: string;
|
|
114
|
+
icon: string;
|
|
115
|
+
svgIcon: import('@progress/kendo-svg-icons').SVGIcon;
|
|
116
|
+
data: {
|
|
117
|
+
action: string;
|
|
118
|
+
};
|
|
119
|
+
}[];
|
|
120
|
+
};
|
|
121
|
+
pinTop: {
|
|
122
|
+
name: string;
|
|
123
|
+
text: string;
|
|
124
|
+
icon: string;
|
|
125
|
+
svgIcon: import('@progress/kendo-svg-icons').SVGIcon;
|
|
126
|
+
data: {
|
|
127
|
+
action: string;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
pinBottom: {
|
|
131
|
+
name: string;
|
|
132
|
+
text: string;
|
|
133
|
+
icon: string;
|
|
134
|
+
svgIcon: import('@progress/kendo-svg-icons').SVGIcon;
|
|
135
|
+
data: {
|
|
136
|
+
action: string;
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
unpin: {
|
|
140
|
+
name: string;
|
|
141
|
+
text: string;
|
|
142
|
+
icon: string;
|
|
143
|
+
svgIcon: import('@progress/kendo-svg-icons').SVGIcon;
|
|
144
|
+
data: {
|
|
145
|
+
action: string;
|
|
146
|
+
};
|
|
147
|
+
};
|
|
106
148
|
copySelection: {
|
|
107
149
|
name: string;
|
|
108
150
|
text: string;
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
8
|
"use client";
|
|
9
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
9
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("react"),e=require("@progress/kendo-svg-icons"),v=require("@progress/kendo-react-intl"),M=require("@progress/kendo-react-layout"),t=require("./enums.js");function R(n){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const c in n)if(c!=="default"){const r=Object.getOwnPropertyDescriptor(n,c);Object.defineProperty(i,c,r.get?r:{enumerable:!0,get:()=>n[c]})}}return i.default=n,Object.freeze(i)}const s=R(S),x={[t.GridContextMenuItemNames.create]:{name:"create",text:"Add",icon:"plus",svgIcon:e.plusIcon,data:{action:"AddCommand"}},[t.GridContextMenuItemNames.edit]:{name:"edit",text:"Edit",icon:"pencil",svgIcon:e.pencilIcon,data:{action:"EditCommand"}},[t.GridContextMenuItemNames.delete]:{name:"delete",text:"Delete",icon:"trash",svgIcon:e.trashIcon,data:{action:"DeleteCommand"}},[t.GridContextMenuItemNames.select]:{name:"select",text:"Select",icon:"table-body",svgIcon:e.tableBodyIcon,items:[{name:"selectRow",text:"Row",icon:"table-row-groups",svgIcon:e.tableRowGroupsIcon,data:{action:"SelectRowCommand"}},{name:"selectAllRows",text:"All rows",icon:"grid",svgIcon:e.gridIcon,data:{action:"SelectAllRowsCommand"}},{name:"clearSelection",text:"Clear selection",icon:"table-unmerge",svgIcon:e.tableUnmergeIcon,data:{action:"ClearSelectionCommand"}}]},[t.GridContextMenuItemNames.pinRow]:{name:"pinRow",text:"Pin row",icon:"pin-outline",svgIcon:e.pinOutlineIcon,items:[{name:"pinTop",text:"Pin to Top",icon:"pin-outline-top",svgIcon:e.pinOutlineTopIcon,data:{action:"PinTopCommand"}},{name:"pinBottom",text:"Pin to Bottom",icon:"pin-outline-bottom",svgIcon:e.pinOutlineBottomIcon,data:{action:"PinBottomCommand"}},{name:"unpin",text:"Unpin",icon:"unpin-outline",svgIcon:e.unpinOutlineIcon,data:{action:"UnpinCommand"}}]},[t.GridContextMenuItemNames.pinTop]:{name:"pinTop",text:"Pin to Top",icon:"pin-outline-top",svgIcon:e.pinOutlineTopIcon,data:{action:"PinTopCommand"}},[t.GridContextMenuItemNames.pinBottom]:{name:"pinBottom",text:"Pin to Bottom",icon:"pin-outline-bottom",svgIcon:e.pinOutlineBottomIcon,data:{action:"PinBottomCommand"}},[t.GridContextMenuItemNames.unpin]:{name:"unpin",text:"Unpin",icon:"unpin-outline",svgIcon:e.unpinOutlineIcon,data:{action:"UnpinCommand"}},[t.GridContextMenuItemNames.copySelection]:{name:"copySelection",text:"Copy selection",icon:"page-header-section",svgIcon:e.pageHeaderSectionIcon,data:{action:"CopySelectionCommand"},options:"withHeaders"},[t.GridContextMenuItemNames.copySelectionNoHeaders]:{name:"copySelectionNoHeaders",text:"Copy selection (No Headers)",icon:"file-txt",svgIcon:e.fileTxtIcon,data:{action:"CopySelectionCommand"}},[t.GridContextMenuItemNames.paste]:{name:"paste",text:"Paste (use CTRL/⌘ + V)",icon:"clipboard",svgIcon:e.clipboardIcon,data:{action:"PasteCommand"}},[t.GridContextMenuItemNames.reorderRow]:{name:"reorderRow",text:"Reorder row",icon:"caret-alt-expand",svgIcon:e.caretAltExpandIcon,items:[{name:"reorderRowUp",text:"Up",icon:"caret-alt-up",svgIcon:e.caretAltUpIcon,data:{action:"ReorderRowCommand"}},{name:"reorderRowDown",text:"Down",icon:"caret-alt-down",svgIcon:e.caretAltDownIcon,data:{action:"ReorderRowCommand"}},{name:"reorderRowTop",text:"Top",icon:"caret-alt-to-top",svgIcon:e.caretAltToTopIcon,data:{action:"ReorderRowCommand"}},{name:"reorderRowBottom",text:"Bottom",icon:"caret-alt-to-bottom",svgIcon:e.caretAltToBottomIcon,data:{action:"ReorderRowCommand"}}]},[t.GridContextMenuItemNames.exportPDF]:{name:"exportPDF",text:"Export to PDF",icon:"file-pdf",svgIcon:e.filePdfIcon,data:{action:"ExportPDFCommand"}},[t.GridContextMenuItemNames.exportExcel]:{name:"exportExcel",text:"Export to Excel",icon:"file-excel",svgIcon:e.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:e.sortAscSmallIcon,data:{action:"SortCommand"}},[t.GridContextMenuItemNames.sortDesc]:{name:"sortDesc",text:"Sort Descending",icon:"sort-desc-small",svgIcon:e.sortDescSmallIcon,data:{action:"SortCommand"}}},f=n=>{const{show:i,offset:c,dataItem:r,field:d,items:m,onClose:I,onSelect:p}=n,u=v.useLocalization(),C=s.useCallback(a=>{p.call(void 0,{event:a,dataItem:r,field:d})},[p,r,d]),l=s.useCallback(a=>{const o=a;return o.text&&o.name&&(o.text=u.toLanguageString(`contextMenu.${o.name}`,o.text||"")),o.items&&Array.isArray(o.items)&&(o.items=o.items.map(w=>l(w))),o},[u]),g=s.useMemo(()=>m&&m.map(a=>{const o=typeof a=="string"?x[a]:a;return l(o)}),[m,l]);return s.createElement(M.ContextMenu,{show:i,offset:c,items:g,onClose:I,onSelect:C})};exports.GridContextMenu=f;exports.contextMenuItemsMap=x;
|