@progress/kendo-react-grid 15.1.0-develop.1 → 15.1.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.
Files changed (46) hide show
  1. package/GridClientWrapper.js +1 -1
  2. package/GridClientWrapper.mjs +411 -407
  3. package/GridComponent.js +1 -1
  4. package/GridComponent.mjs +305 -290
  5. package/VirtualScroll.d.ts +4 -0
  6. package/VirtualScroll.js +1 -1
  7. package/VirtualScroll.mjs +32 -27
  8. package/cells/groupcell/useGroupCellClientTdProps.js +1 -1
  9. package/cells/groupcell/useGroupCellClientTdProps.mjs +7 -7
  10. package/cells/hierarchycell/GridHierarchyCellToggle.js +1 -1
  11. package/cells/hierarchycell/GridHierarchyCellToggle.mjs +15 -15
  12. package/columnMenu/GridColumnMenuWrapper.js +1 -1
  13. package/columnMenu/GridColumnMenuWrapper.mjs +118 -82
  14. package/components/GridEditDialog.js +1 -1
  15. package/components/GridEditDialog.mjs +19 -19
  16. package/components/VirtualScrollOverlay.d.ts +12 -0
  17. package/components/VirtualScrollOverlay.js +16 -0
  18. package/components/VirtualScrollOverlay.mjs +65 -0
  19. package/components/noRecords/GridNoRecordsContainer.js +1 -1
  20. package/components/noRecords/GridNoRecordsContainer.mjs +10 -9
  21. package/dist/cdn/js/kendo-react-grid.js +1 -1
  22. package/drag/ColumnResize.js +1 -1
  23. package/drag/ColumnResize.mjs +84 -84
  24. package/getRowContents.js +1 -1
  25. package/getRowContents.mjs +12 -12
  26. package/index.d.mts +2 -1
  27. package/index.d.ts +2 -1
  28. package/interfaces/GridProps.d.ts +2 -1
  29. package/interfaces/GridScrollableSettings.d.ts +33 -0
  30. package/interfaces/VirtualScrollInterface.d.ts +2 -0
  31. package/package-metadata.js +1 -1
  32. package/package-metadata.mjs +2 -2
  33. package/package.json +17 -17
  34. package/toolbar-tools/GridToolbarColumnsChooser.js +1 -1
  35. package/toolbar-tools/GridToolbarColumnsChooser.mjs +33 -33
  36. package/toolbar-tools/GridToolbarFilter.js +1 -1
  37. package/toolbar-tools/GridToolbarFilter.mjs +207 -194
  38. package/toolbar-tools/GridToolbarSort.js +1 -1
  39. package/toolbar-tools/GridToolbarSort.mjs +84 -101
  40. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarFilter.js +1 -1
  41. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarFilter.mjs +50 -46
  42. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarSort.d.ts +0 -1
  43. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarSort.js +1 -1
  44. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarSort.mjs +10 -19
  45. package/utils/index.js +1 -1
  46. package/utils/index.mjs +161 -161
@@ -21,14 +21,14 @@ import { Dialog as Q, DialogActionsBar as U } from "@progress/kendo-react-dialog
21
21
  import { Form as T, FormElement as F, FieldWrapper as M, Field as w } from "@progress/kendo-react-form";
22
22
  import { GridContext as X } from "../utils/GridContext.mjs";
23
23
  import { editDialogTitle as z, messages as S, editDialogSaveButtonTitle as B, editDialogCancelButtonTitle as L } from "../messages/index.mjs";
24
- const ue = (l) => {
24
+ const ue = (i) => {
25
25
  var y;
26
- const C = W(), m = q(), i = e.useContext(X), c = (a, t) => {
27
- i.onDialogEditSubmit && i.onDialogEditSubmit({ dataItem: a, syntheticEvent: t });
26
+ const C = W(), m = q(), l = e.useContext(X), c = (a, t) => {
27
+ l.onDialogEditSubmit && l.onDialogEditSubmit({ dataItem: a, syntheticEvent: t });
28
28
  }, n = (a) => {
29
- i.onDialogEditCancel && i.onDialogEditCancel({ syntheticEvent: a });
29
+ l.onDialogEditCancel && l.onDialogEditCancel({ syntheticEvent: a });
30
30
  }, k = (a) => {
31
- const { validationMessage: t, visited: Y, id: s, valid: Z, editor: R, value: E, label: u, ...f } = a, g = i.mobileMode ? "large" : "medium";
31
+ const { validationMessage: t, visited: Y, id: s, valid: Z, editor: R, value: E, label: u, ...f } = a, g = l.mobileMode ? "large" : "medium";
32
32
  switch (R) {
33
33
  case "numeric":
34
34
  return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(v, { editorId: s, className: "k-form-label" }, u, ":"), /* @__PURE__ */ e.createElement("div", { className: "k-form-field-wrap" }, /* @__PURE__ */ e.createElement(
@@ -47,7 +47,7 @@ const ue = (l) => {
47
47
  valid: !0,
48
48
  ...f,
49
49
  value: E,
50
- adaptive: i.mobileMode,
50
+ adaptive: l.mobileMode,
51
51
  size: g,
52
52
  [p]: !0
53
53
  }
@@ -84,28 +84,28 @@ const ue = (l) => {
84
84
  navigatable: !1,
85
85
  navigatableElements: [],
86
86
  expand: !0,
87
- title: i.adpativeTitle || I,
87
+ title: l.adpativeTitle || I,
88
88
  suffixActions: /* @__PURE__ */ e.createElement(r, { svgIcon: H, onClick: n, fillMode: "flat" }),
89
- animationStyles: m && i.adaptiveColumnMenuRef <= m.small ? { top: 0, width: "100%", height: "100%" } : void 0,
89
+ animationStyles: m && l.adaptiveColumnMenuRef <= m.small ? { top: 0, width: "100%", height: "100%" } : void 0,
90
90
  className: "k-adaptive-actionsheet",
91
- position: m && i.adaptiveColumnMenuRef <= m.small ? "fullscreen" : void 0
92
- }, { customEditDialog: d } = l, o = (y = l.columns) == null ? void 0 : y.filter((a) => a.editable);
91
+ position: m && l.adaptiveColumnMenuRef <= m.small ? "fullscreen" : void 0
92
+ }, { customEditDialog: d } = i, o = (y = i.columns) == null ? void 0 : y.filter((a) => a.editable);
93
93
  return /* @__PURE__ */ e.createElement(e.Fragment, null, O.createPortal(
94
94
  // eslint-disable-next-line react/jsx-no-useless-fragment
95
- /* @__PURE__ */ e.createElement(e.Fragment, null, i.mobileMode ? (
95
+ /* @__PURE__ */ e.createElement(e.Fragment, null, l.mobileMode ? (
96
96
  // eslint-disable-next-line react/jsx-no-useless-fragment
97
97
  /* @__PURE__ */ e.createElement(e.Fragment, null, d ? /* @__PURE__ */ e.createElement(
98
98
  d,
99
99
  {
100
- columns: l.columns,
101
- dataItem: l.dataItem,
100
+ columns: i.columns,
101
+ dataItem: i.dataItem,
102
102
  onSubmit: c,
103
103
  onCancel: n
104
104
  }
105
105
  ) : /* @__PURE__ */ e.createElement(
106
106
  T,
107
107
  {
108
- initialValues: l.dataItem,
108
+ initialValues: i.dataItem,
109
109
  onSubmit: c,
110
110
  id: "kendo-grid-edit-dialog",
111
111
  render: (a) => /* @__PURE__ */ e.createElement(V, { ...A }, /* @__PURE__ */ e.createElement(_, null, /* @__PURE__ */ e.createElement(F, null, o == null ? void 0 : o.map((t) => /* @__PURE__ */ e.createElement(M, { key: t.field }, /* @__PURE__ */ e.createElement(
@@ -116,7 +116,7 @@ const ue = (l) => {
116
116
  editor: t.editor,
117
117
  component: k,
118
118
  label: t.title || t.field,
119
- validator: t == null ? void 0 : t.validator
119
+ validator: t.validator
120
120
  }
121
121
  ))))), /* @__PURE__ */ e.createElement(G, null, /* @__PURE__ */ e.createElement(
122
122
  r,
@@ -146,15 +146,15 @@ const ue = (l) => {
146
146
  ) : d ? /* @__PURE__ */ e.createElement(
147
147
  d,
148
148
  {
149
- columns: l.columns,
150
- dataItem: l.dataItem,
149
+ columns: i.columns,
150
+ dataItem: i.dataItem,
151
151
  onSubmit: c,
152
152
  onCancel: n
153
153
  }
154
154
  ) : /* @__PURE__ */ e.createElement(
155
155
  T,
156
156
  {
157
- initialValues: l.dataItem,
157
+ initialValues: i.dataItem,
158
158
  onSubmit: c,
159
159
  id: "kendo-grid-edit-dialog",
160
160
  render: (a) => /* @__PURE__ */ e.createElement(
@@ -172,7 +172,7 @@ const ue = (l) => {
172
172
  editor: t.editor,
173
173
  component: k,
174
174
  label: t.title || t.field,
175
- validator: t == null ? void 0 : t.validator
175
+ validator: t.validator
176
176
  }
177
177
  )))),
178
178
  /* @__PURE__ */ e.createElement(U, { layout: "start" }, /* @__PURE__ */ e.createElement(
@@ -0,0 +1,12 @@
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 React from 'react';
9
+ /**
10
+ * @hidden
11
+ */
12
+ export declare const VirtualScrollOverlay: () => React.JSX.Element;
@@ -0,0 +1,16 @@
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 f=require("react"),g=require("../utils/GridContext.js");function p(r){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const l in r)if(l!=="default"){const t=Object.getOwnPropertyDescriptor(r,l);Object.defineProperty(o,l,t.get?t:{enumerable:!0,get:()=>r[l]})}}return o.default=r,Object.freeze(o)}const e=p(f),v=`
10
+ .k-grid-content--hide-scrollbar::-webkit-scrollbar { display: none; }
11
+
12
+ .k-grid-scrollbar-overlay::-webkit-scrollbar { width: 17px; }
13
+ .k-grid-scrollbar-overlay::-webkit-scrollbar-track { background: transparent; }
14
+ .k-grid-scrollbar-overlay::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.25); border: 4px solid transparent; background-clip: content-box; border-radius: 8px; min-height: 40px; }
15
+ .k-grid-scrollbar-overlay::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.4); border: 4px solid transparent; background-clip: content-box; border-radius: 8px; }
16
+ `,k=()=>{const r=e.useContext(g.GridContext),[o,l]=e.useState(!1),t=e.useRef(null),a=e.useCallback(()=>{l(!0),t.current!==null&&clearTimeout(t.current),t.current=setTimeout(()=>l(!1),1e3)},[]);e.useEffect(()=>(r.scrollbarShowCallbackRef&&(r.scrollbarShowCallbackRef.current=a),()=>{r.scrollbarShowCallbackRef&&(r.scrollbarShowCallbackRef.current=null),t.current!==null&&clearTimeout(t.current)}),[r.scrollbarShowCallbackRef,a]),e.useEffect(()=>{const n=()=>{r.vScrollDraggingRef&&(r.vScrollDraggingRef.current=!1)};return document.addEventListener("pointerup",n),()=>document.removeEventListener("pointerup",n)},[r.vScrollDraggingRef]);const b=()=>{r.vScrollDraggingRef&&(r.vScrollDraggingRef.current=!0)},d=n=>{var i,s,u;const c=(i=r.scrollbarContainerRef)==null?void 0:i.current;c&&((u=(s=r.vsRef)==null?void 0:s.current)==null||u.scrollToPosition(c.scrollTop,n,!0))};return e.createElement(e.Fragment,null,e.createElement("style",null,v),e.createElement("div",{ref:r.scrollbarContainerRef,onScroll:d,onMouseEnter:a,onPointerDown:b,className:"k-grid-scrollbar-overlay",style:{position:"absolute",right:0,top:0,bottom:0,width:"17px",overflowY:"scroll",overflowX:"hidden",zIndex:1,opacity:o?1:0,transition:"opacity 0.3s",scrollbarWidth:"auto",scrollbarColor:"rgba(0,0,0,0.25) transparent"}},e.createElement("div",{ref:r.scrollbarSpacerRef})))};exports.VirtualScrollOverlay=k;
@@ -0,0 +1,65 @@
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 e from "react";
10
+ import { GridContext as f } from "../utils/GridContext.mjs";
11
+ const g = `
12
+ .k-grid-content--hide-scrollbar::-webkit-scrollbar { display: none; }
13
+
14
+ .k-grid-scrollbar-overlay::-webkit-scrollbar { width: 17px; }
15
+ .k-grid-scrollbar-overlay::-webkit-scrollbar-track { background: transparent; }
16
+ .k-grid-scrollbar-overlay::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.25); border: 4px solid transparent; background-clip: content-box; border-radius: 8px; min-height: 40px; }
17
+ .k-grid-scrollbar-overlay::-webkit-scrollbar-thumb:hover { background: rgba(0,0,0,0.4); border: 4px solid transparent; background-clip: content-box; border-radius: 8px; }
18
+ `, v = () => {
19
+ const r = e.useContext(f), [b, a] = e.useState(!1), l = e.useRef(null), t = e.useCallback(() => {
20
+ a(!0), l.current !== null && clearTimeout(l.current), l.current = setTimeout(() => a(!1), 1e3);
21
+ }, []);
22
+ e.useEffect(() => (r.scrollbarShowCallbackRef && (r.scrollbarShowCallbackRef.current = t), () => {
23
+ r.scrollbarShowCallbackRef && (r.scrollbarShowCallbackRef.current = null), l.current !== null && clearTimeout(l.current);
24
+ }), [r.scrollbarShowCallbackRef, t]), e.useEffect(() => {
25
+ const o = () => {
26
+ r.vScrollDraggingRef && (r.vScrollDraggingRef.current = !1);
27
+ };
28
+ return document.addEventListener("pointerup", o), () => document.removeEventListener("pointerup", o);
29
+ }, [r.vScrollDraggingRef]);
30
+ const u = () => {
31
+ r.vScrollDraggingRef && (r.vScrollDraggingRef.current = !0);
32
+ }, d = (o) => {
33
+ var c, i, s;
34
+ const n = (c = r.scrollbarContainerRef) == null ? void 0 : c.current;
35
+ n && ((s = (i = r.vsRef) == null ? void 0 : i.current) == null || s.scrollToPosition(n.scrollTop, o, !0));
36
+ };
37
+ return /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement("style", null, g), /* @__PURE__ */ e.createElement(
38
+ "div",
39
+ {
40
+ ref: r.scrollbarContainerRef,
41
+ onScroll: d,
42
+ onMouseEnter: t,
43
+ onPointerDown: u,
44
+ className: "k-grid-scrollbar-overlay",
45
+ style: {
46
+ position: "absolute",
47
+ right: 0,
48
+ top: 0,
49
+ bottom: 0,
50
+ width: "17px",
51
+ overflowY: "scroll",
52
+ overflowX: "hidden",
53
+ zIndex: 1,
54
+ opacity: b ? 1 : 0,
55
+ transition: "opacity 0.3s",
56
+ scrollbarWidth: "auto",
57
+ scrollbarColor: "rgba(0,0,0,0.25) transparent"
58
+ }
59
+ },
60
+ /* @__PURE__ */ e.createElement("div", { ref: r.scrollbarSpacerRef })
61
+ ));
62
+ };
63
+ export {
64
+ v as VirtualScrollOverlay
65
+ };
@@ -6,4 +6,4 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),a=require("@progress/kendo-react-data-tools"),n=require("@progress/kendo-react-common"),l=require("../../utils/GridContext.js");function u(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(o,e,r.get?r:{enumerable:!0,get:()=>t[e]})}}return o.default=t,Object.freeze(o)}const c=u(d),i=t=>{const o=c.useContext(l.GridContext),e=o.headerRef.current,r=e&&e.table()&&e.table().clientWidth,s=n.uGrid;return c.createElement("div",{key:"no-records",className:n.classNames(s.noRecords({})),style:{width:r}},c.createElement("div",{className:n.classNames(s.noRecordsTemplate({})),[a.KEYBOARD_NAV_DATA_ID]:a.tableKeyboardNavigationTools.generateNavigatableId("no-records",a.tableKeyboardNavigationTools.getIdPrefix(o.navigationStateRef))},t.children))};i.displayName="KendoReactGridNoRecordsContainer";exports.GridNoRecordsContainer=i;
9
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),a=require("@progress/kendo-react-data-tools"),n=require("@progress/kendo-react-common"),l=require("../../utils/GridContext.js");function u(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(o,e,r.get?r:{enumerable:!0,get:()=>t[e]})}}return o.default=t,Object.freeze(o)}const s=u(d),i=t=>{const o=s.useContext(l.GridContext),e=o.headerRef.current,r=e&&e.table()&&e.table().clientWidth,c=n.uGrid;return s.createElement("div",{key:"no-records",className:n.classNames(c.noRecords({})),style:{width:r}},s.createElement("div",{className:n.classNames(c.noRecordsTemplate({})),style:{minHeight:"4em",height:"auto"},[a.KEYBOARD_NAV_DATA_ID]:a.tableKeyboardNavigationTools.generateNavigatableId("no-records",a.tableKeyboardNavigationTools.getIdPrefix(o.navigationStateRef))},t.children))};i.displayName="KendoReactGridNoRecordsContainer";exports.GridNoRecordsContainer=i;
@@ -7,21 +7,22 @@
7
7
  */
8
8
  "use client";
9
9
  import * as t from "react";
10
- import { KEYBOARD_NAV_DATA_ID as i, tableKeyboardNavigationTools as a } from "@progress/kendo-react-data-tools";
11
- import { classNames as n, uGrid as c } from "@progress/kendo-react-common";
10
+ import { KEYBOARD_NAV_DATA_ID as d, tableKeyboardNavigationTools as a } from "@progress/kendo-react-data-tools";
11
+ import { classNames as i, uGrid as c } from "@progress/kendo-react-common";
12
12
  import { GridContext as l } from "../../utils/GridContext.mjs";
13
- const m = (s) => {
14
- const r = t.useContext(l), e = r.headerRef.current, d = e && e.table() && e.table().clientWidth, o = c;
15
- return /* @__PURE__ */ t.createElement("div", { key: "no-records", className: n(o.noRecords({})), style: { width: d } }, /* @__PURE__ */ t.createElement(
13
+ const m = (n) => {
14
+ const o = t.useContext(l), e = o.headerRef.current, s = e && e.table() && e.table().clientWidth, r = c;
15
+ return /* @__PURE__ */ t.createElement("div", { key: "no-records", className: i(r.noRecords({})), style: { width: s } }, /* @__PURE__ */ t.createElement(
16
16
  "div",
17
17
  {
18
- className: n(o.noRecordsTemplate({})),
19
- [i]: a.generateNavigatableId(
18
+ className: i(r.noRecordsTemplate({})),
19
+ style: { minHeight: "4em", height: "auto" },
20
+ [d]: a.generateNavigatableId(
20
21
  "no-records",
21
- a.getIdPrefix(r.navigationStateRef)
22
+ a.getIdPrefix(o.navigationStateRef)
22
23
  )
23
24
  },
24
- s.children
25
+ n.children
25
26
  ));
26
27
  };
27
28
  m.displayName = "KendoReactGridNoRecordsContainer";