@progress/kendo-react-grid 9.3.1-develop.1 → 9.4.0-develop.1

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 (148) hide show
  1. package/Grid.js +1 -1
  2. package/Grid.mjs +80 -1042
  3. package/GridClientContextReader.js +8 -0
  4. package/GridClientContextReader.mjs +30 -0
  5. package/GridClientWrapper.js +8 -0
  6. package/GridClientWrapper.mjs +759 -0
  7. package/GridComponent.js +8 -0
  8. package/GridComponent.mjs +584 -0
  9. package/GridState.js +8 -0
  10. package/GridState.mjs +93 -0
  11. package/GridWatermarkOverlay.js +8 -0
  12. package/GridWatermarkOverlay.mjs +15 -0
  13. package/StatusBar.js +1 -1
  14. package/StatusBar.mjs +24 -24
  15. package/cells/GridCell.js +1 -1
  16. package/cells/GridCell.mjs +23 -33
  17. package/cells/GridDetailCell.js +1 -1
  18. package/cells/GridDetailCell.mjs +11 -18
  19. package/cells/GridDetailHierarchyCell.js +1 -1
  20. package/cells/GridDetailHierarchyCell.mjs +5 -5
  21. package/cells/GridEditCell.js +1 -1
  22. package/cells/GridEditCell.mjs +22 -130
  23. package/cells/GridGroupCell.js +1 -1
  24. package/cells/GridGroupCell.mjs +60 -95
  25. package/cells/GridHierarchyCell.js +1 -1
  26. package/cells/GridHierarchyCell.mjs +22 -61
  27. package/cells/GridRowReorderCell.js +8 -0
  28. package/cells/GridRowReorderCell.mjs +42 -0
  29. package/cells/GridSelectionCell.js +1 -1
  30. package/cells/GridSelectionCell.mjs +17 -35
  31. package/cells/client/DetailCellContainer.js +8 -0
  32. package/cells/client/DetailCellContainer.mjs +26 -0
  33. package/cells/client/GridCellContainer.js +8 -0
  34. package/cells/client/GridCellContainer.mjs +68 -0
  35. package/cells/client/GridEditCellContainer.js +8 -0
  36. package/cells/client/GridEditCellContainer.mjs +60 -0
  37. package/cells/client/GridEditCellEditor.js +8 -0
  38. package/cells/client/GridEditCellEditor.mjs +81 -0
  39. package/cells/client/GridGroupCellContainer.js +8 -0
  40. package/cells/client/GridGroupCellContainer.mjs +87 -0
  41. package/cells/client/GridGroupCellToggle.js +8 -0
  42. package/cells/client/GridGroupCellToggle.mjs +52 -0
  43. package/cells/client/GridHierarchyCellContainer.js +8 -0
  44. package/cells/client/GridHierarchyCellContainer.mjs +63 -0
  45. package/cells/client/GridHierarchyCellToggle.js +8 -0
  46. package/cells/client/GridHierarchyCellToggle.mjs +43 -0
  47. package/cells/client/GridRowReorderContainer.js +8 -0
  48. package/cells/client/GridRowReorderContainer.mjs +24 -0
  49. package/cells/client/GridSelectionCellContainer.js +8 -0
  50. package/cells/client/GridSelectionCellContainer.mjs +60 -0
  51. package/cells/client/GridSelectionCellInput.js +8 -0
  52. package/cells/client/GridSelectionCellInput.mjs +43 -0
  53. package/columnMenu/GridColumnMenuSort.js +1 -1
  54. package/columnMenu/GridColumnMenuSort.mjs +23 -34
  55. package/components/GridContainerElementContainer.js +8 -0
  56. package/components/GridContainerElementContainer.mjs +21 -0
  57. package/components/GridCustomCellClientContainer.js +8 -0
  58. package/components/GridCustomCellClientContainer.mjs +28 -0
  59. package/components/GridDragClue.js +8 -0
  60. package/components/GridDragClue.mjs +18 -0
  61. package/components/GridDraggableRowsContainer.js +8 -0
  62. package/components/GridDraggableRowsContainer.mjs +127 -0
  63. package/components/GridDropClue.js +8 -0
  64. package/components/GridDropClue.mjs +18 -0
  65. package/components/GridElementContainer.js +8 -0
  66. package/components/GridElementContainer.mjs +22 -0
  67. package/components/PagerContainer.js +8 -0
  68. package/components/PagerContainer.mjs +23 -0
  69. package/components/VirtualScrollHeightContainer.js +8 -0
  70. package/components/VirtualScrollHeightContainer.mjs +17 -0
  71. package/components/colGroup/GridColGroup.js +8 -0
  72. package/components/colGroup/GridColGroup.mjs +25 -0
  73. package/components/icons/reorder-row-svg.js +8 -0
  74. package/components/icons/reorder-row-svg.mjs +14 -0
  75. package/{GridNoRecords.js → components/noRecords/GridNoRecords.js} +1 -1
  76. package/{GridNoRecords.mjs → components/noRecords/GridNoRecords.mjs} +1 -1
  77. package/components/noRecords/GridNoRecordsContainer.js +8 -0
  78. package/components/noRecords/GridNoRecordsContainer.mjs +30 -0
  79. package/components/table/GridTable.js +8 -0
  80. package/components/table/GridTable.mjs +28 -0
  81. package/components/table/GridTableBody.js +8 -0
  82. package/components/table/GridTableBody.mjs +21 -0
  83. package/components/table/GridTableScrollable.js +8 -0
  84. package/components/table/GridTableScrollable.mjs +37 -0
  85. package/components/utils.js +8 -0
  86. package/components/utils.mjs +26 -0
  87. package/contextMenu/GridContextMenu.js +8 -0
  88. package/contextMenu/GridContextMenu.mjs +191 -0
  89. package/contextMenu/enums.js +8 -0
  90. package/contextMenu/enums.mjs +13 -0
  91. package/dist/cdn/js/kendo-react-grid.js +1 -1
  92. package/footer/Footer.js +1 -1
  93. package/footer/Footer.mjs +22 -21
  94. package/footer/FooterCell.js +8 -0
  95. package/footer/FooterCell.mjs +43 -0
  96. package/footer/FooterRow.js +1 -1
  97. package/footer/FooterRow.mjs +10 -39
  98. package/footer/client/FooterCellContainer.js +8 -0
  99. package/footer/client/FooterCellContainer.mjs +26 -0
  100. package/header/FilterRow.js +1 -1
  101. package/header/FilterRow.mjs +58 -54
  102. package/header/GridHeaderCell.js +1 -1
  103. package/header/GridHeaderCell.mjs +11 -11
  104. package/header/GridHeaderSelectionCell.js +1 -1
  105. package/header/GridHeaderSelectionCell.mjs +10 -9
  106. package/header/GroupPanel.js +1 -1
  107. package/header/GroupPanel.mjs +36 -32
  108. package/header/Header.js +1 -1
  109. package/header/Header.mjs +35 -33
  110. package/header/HeaderRow.js +1 -1
  111. package/header/HeaderRow.mjs +97 -125
  112. package/header/client/GridFilterCellContainer.js +8 -0
  113. package/header/client/GridFilterCellContainer.mjs +38 -0
  114. package/header/client/GridFilterCellElementContainer.js +8 -0
  115. package/header/client/GridFilterCellElementContainer.mjs +21 -0
  116. package/header/client/GridHeaderCellContainer.js +8 -0
  117. package/header/client/GridHeaderCellContainer.mjs +54 -0
  118. package/header/client/GridHeaderCellElementContainer.js +8 -0
  119. package/header/client/GridHeaderCellElementContainer.mjs +28 -0
  120. package/header/client/GridHeaderRowContainer.js +8 -0
  121. package/header/client/GridHeaderRowContainer.mjs +35 -0
  122. package/header/client/GridHeaderRowReorderCell.js +8 -0
  123. package/header/client/GridHeaderRowReorderCell.mjs +13 -0
  124. package/header/client/HeaderCellResizer.js +8 -0
  125. package/header/client/HeaderCellResizer.mjs +25 -0
  126. package/header/client/HeaderRowDraggable.js +8 -0
  127. package/header/client/HeaderRowDraggable.mjs +30 -0
  128. package/index.d.mts +543 -24
  129. package/index.d.ts +543 -24
  130. package/index.js +1 -1
  131. package/index.mjs +58 -52
  132. package/interfaces/GridSortSettings.js +1 -1
  133. package/interfaces/GridSortSettings.mjs +18 -2
  134. package/messages/index.js +1 -1
  135. package/messages/index.mjs +76 -82
  136. package/messages/messagesMap.js +8 -0
  137. package/messages/messagesMap.mjs +19 -0
  138. package/package-metadata.js +1 -1
  139. package/package-metadata.mjs +2 -2
  140. package/package.json +12 -11
  141. package/rows/GridRow.js +1 -1
  142. package/rows/GridRow.mjs +42 -20
  143. package/utils/_clientModule.js +8 -0
  144. package/utils/_clientModule.mjs +13 -0
  145. package/utils/_serverModule.js +8 -0
  146. package/utils/_serverModule.mjs +13 -0
  147. package/utils/index.js +1 -1
  148. package/utils/index.mjs +213 -101
@@ -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 client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("react"),r=require("@progress/kendo-react-common"),m=require("@progress/kendo-react-intl"),p=require("./GridState.js");function g(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const c=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,c.get?c:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const o=g(b),y=e=>{const{children:t}=e,n=r.useId(),c=e.id||n,s=r.useUnstyled(),u=m.useLocalization(),[,a]=o.useReducer(R=>!R,!0),i=o.useRef([]),l=o.useRef(0),[d,,f]=p.useGridState();return o.cloneElement(t,{...t==null?void 0:t.props,...d,...f,id:c,unstyled:s,localization:u,columnsRef:i,scrollLeftRef:l,forceUpdate:a,isClient:!0})};exports.GridClientContextReader=y;
@@ -0,0 +1,30 @@
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 client";
9
+ import * as t from "react";
10
+ import { useId as m, useUnstyled as R } from "@progress/kendo-react-common";
11
+ import { useLocalization as p } from "@progress/kendo-react-intl";
12
+ import { useGridState as C } from "./GridState.mjs";
13
+ const G = (o) => {
14
+ const { children: e } = o, s = m(), c = o.id || s, n = R(), r = p(), [, i] = t.useReducer((f) => !f, !0), l = t.useRef([]), u = t.useRef(0), [a, , d] = C();
15
+ return t.cloneElement(e, {
16
+ ...e == null ? void 0 : e.props,
17
+ ...a,
18
+ ...d,
19
+ id: c,
20
+ unstyled: n,
21
+ localization: r,
22
+ columnsRef: l,
23
+ scrollLeftRef: u,
24
+ forceUpdate: i,
25
+ isClient: !0
26
+ });
27
+ };
28
+ export {
29
+ G as GridClientContextReader
30
+ };
@@ -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 client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ct=require("react"),h=require("@progress/kendo-react-common"),l=require("@progress/kendo-react-data-tools"),Et=require("./drag/ColumnResize.js"),vt=require("./drag/CommonDragLogic.js"),yt=require("./constants/index.js"),S=require("./utils/index.js"),ve=require("./VirtualScrollFixed.js"),xt=require("./VirtualScroll.js"),wt=require("./contextMenu/GridContextMenu.js"),ye=require("./contextMenu/enums.js"),xe=require("./interfaces/GridSortSettings.js");function St(t){const C=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const m in t)if(m!=="default"){const A=Object.getOwnPropertyDescriptor(t,m);Object.defineProperty(C,m,A.get?A:{enumerable:!0,get:()=>t[m]})}}return C.default=t,Object.freeze(C)}const o=St(Ct),we=o.createContext(void 0),kt=t=>{const C=t.gridProps.isClient,[m,A]=o.useState({}),Se=e=>{e.event.preventDefault(),A({...m,show:!0,offset:{left:e.event.pageX,top:e.event.pageY},dataItem:e.dataItem,field:e.field})},ge=()=>{A({})},P=o.useMemo(()=>t.columnsRef.current.find(e=>e.field===m.field),[t.columnsRef,m]),fe=o.useMemo(()=>{const e=t.gridProps.sortable&&(P==null?void 0:P.sortable);return S.getDefaultHeadContextMenuItems({sortable:!!e,selectable:l.getSelectionOptions(t.gridProps.selectable).enabled,clipboard:!!t.gridProps.clipboard})},[P,t.gridProps.sortable,t.gridProps.selectable,t.gridProps.clipboard]),me=o.useMemo(()=>{const e=t.gridProps.sortable&&(P==null?void 0:P.sortable);return S.getDefaultBodyContextMenuItems({sortable:!!e,selectable:l.getSelectionOptions(t.gridProps.selectable).enabled,clipboard:!!t.gridProps.clipboard})},[P,t.gridProps.sortable,t.gridProps.selectable,t.gridProps.clipboard]),ke=o.useMemo(()=>{const e=(P==null?void 0:P.contextMenu)||t.gridProps.contextMenu,r=typeof e=="function"?e(m):e;if(r&&m.offset){const n=m.dataItem?ye.GridContextMenuAnchorPart.body:ye.GridContextMenuAnchorPart.head,a=r[n];return a===!1?void 0:a===!0||a===void 0?m.dataItem?me:fe:a}},[t.gridProps.contextMenu,m,me,fe,P]),De=e=>{var d;const r=e.event.item,n={target:E.current,syntheticEvent:e.event.syntheticEvent,nativeEvent:e.event.nativeEvent,menuItem:r,...e};t.gridProps.onContextMenuItemClick&&u(t.gridProps.onContextMenuItemClick,n);const a=Q(),i={selectedField:t.gridProps.selectedField||"",componentId:t.id,dataItems:a,dataItem:e.dataItem,startRowIndex:-1,endRowIndex:-1,startColIndex:-1,endColIndex:-1,ctrlKey:!1,altKey:!1,metaKey:!1,shiftKey:!1,isDrag:!1,...l.getSelectionOptions(t.gridProps.selectable),...n};switch((d=r.data)==null?void 0:d.action){case"SortCommand":if(P){const s=r.name?r.name.toLowerCase().includes("asc")?"asc":r.name.toLowerCase().includes("desc")?"desc":void 0:void 0;Pe(e.event.syntheticEvent,P,s)}break;case"SelectRowCommand":_e(i);break;case"SelectAllRowsCommand":We(i);break;case"ClearSelectionCommand":je(i);break}ge()},N=()=>{const e=g.current.filter(r=>r.declarationIndex>=0&&r.parentIndex===-1);return S.sanitizeColumns(e)},Me=(e,r,n)=>{if(t.gridProps.onContextMenu&&C){const a={target:E.current,syntheticEvent:e,nativeEvent:e.nativeEvent,dataItem:r,field:n};u(t.gridProps.onContextMenu,a)}t.gridProps.contextMenu&&Se({event:e,dataItem:r,field:n})},Ke=e=>{if(e.target!==e.currentTarget)return;clearTimeout(de.current),c.current&&(c.current.table=w.current);const r=e.currentTarget.scrollLeft,n=e.currentTarget.scrollTop,a=t.gridProps.scrollable==="virtual";t.gridProps.columnVirtualization&&(!a||n===ce.current)&&(de.current=window.setTimeout(()=>{ee()},0)),t.gridProps.scrollLeftRef&&(t.gridProps.scrollLeftRef.current=r),O.current&&O.current.setScrollLeft(r),H.current&&H.current.setScrollLeft(r),c.current&&n!==ce.current&&c.current.scrollHandler(e),t.gridProps.onScroll&&C&&u(t.gridProps.onScroll,{...b(e)}),ce.current=n},Te=e=>{var d,s,I,R;l.tableKeyboardNavigation.onKeyDown(e,{navigatable:t.gridProps.navigatable||!1,contextStateRef:x,navigationStateRef:D,onNavigationAction:Ge,columns:N()}),l.tableKeyboardNavigation.onGetSnapshotBeforeUpdate({document:v(),contextStateRef:x,navigationStateRef:D});const{mode:r,cell:n,enabled:a}=l.getSelectionOptions(t.gridProps.selectable),i={dataItems:U(),mode:r,cell:n,componentId:t.id,selectedField:t.gridProps.selectedField,...b(e)};if(t.gridProps.onKeyDown&&C&&u(t.gridProps.onKeyDown,i),!t.gridProps.selectedField&&a&&t.gridProps.dataItemKey){const f=l.getSelectedStateFromKeyDown({event:i,selectedState:(d=t.gridProps.select)!=null?d:{},dataItemKey:t.gridProps.dataItemKey});if(f===t.gridProps.select)return;const T=e.target,bt=l.closestTagName(T,"TD"),It=l.closestTagName(T,"TR"),ue=l.getColumnIndex(bt),F=l.getRowIndex(It);if(ue!==void 0&&F!==void 0){const Rt=Array.isArray(t.gridProps.data)?(s=t.gridProps.data)==null?void 0:s[F]:(R=(I=t.gridProps.data)==null?void 0:I.data)==null?void 0:R[F];t.gridProps.onSelectionChange&&u(t.gridProps.onSelectionChange,{...i,select:f,dataItem:Rt,startRowIndex:F,startColIndex:ue,endRowIndex:F,endColIndex:ue,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey,isDrag:!1})}}},Ae=e=>{l.tableKeyboardNavigation.onFocus(e,{navigatable:!!t.gridProps.navigatable,contextStateRef:x})},Ge=e=>{if(e.action==="moveToNextPage"&&$e(e.event),e.action==="moveToPrevPage"&&Xe(e.event),e.focusElement&&e.action==="reorderToRight"){const r=parseInt(e.focusElement.ariaColIndex,10)-1;r<g.current.length-1&&J(r,r+1,e.event)}if(e.focusElement&&e.action==="reorderToLeft"){const r=parseInt(e.focusElement.ariaColIndex,10)-1;r>0&&J(r,r-1,e.event)}if(t.gridProps.onNavigationAction&&C){const r={focusElement:e.focusElement,...b(e.event)};u(t.gridProps.onNavigationAction,r)}},He=(e,r)=>{t.gridProps.onRowClick&&e.target.nodeName==="TD"&&u(t.gridProps.onRowClick,{dataItem:r,...b(e)})},Oe=(e,r)=>{t.gridProps.onRowDoubleClick&&e.target.nodeName==="TD"&&u(t.gridProps.onRowDoubleClick,{dataItem:r,...b(e)})},Fe=(e,r,n)=>{if(Pt&&ht==="incell"&&t.gridProps.dataItemKey){const a=l.editReducer(t.gridProps.edit,{type:l.EDIT_ACTION.ENTER_FIELD_EDIT,payload:{id:r[t.gridProps.dataItemKey],field:n}});t.gridProps.onEditChange&&u(t.gridProps.onEditChange,{edit:a,...b(e)})}},Ne=(e,r)=>{var a;if(l.getDetailExpandableOptions(t.detailExpandable).enabled){const i=l.detailExpandReducer((a=t.gridProps.detailExpand)!=null?a:{},e);t.gridProps.onDetailExpandChange&&u(t.gridProps.onDetailExpandChange,{...b(r),detailExpand:i})}},Le=(e,r)=>{var a;const n=l.getGroupExpandableOptions(typeof t.gridProps.groupable=="object"&&t.gridProps.groupable.enabled!==!1?t.gridProps.groupable.expandable:t.gridProps.groupable);if(n.enabled){const i=l.groupExpandReducer((a=t.gridProps.groupExpand)!=null?a:[],e,n);t.gridProps.onGroupExpandChange&&u(t.gridProps.onGroupExpandChange,{...b(r),groupExpand:i})}},Pe=(e,r,n)=>{const{allowUnsort:a,mode:i}=xe.normalize(t.gridProps.sortable||!1,r.sortable||!1),d=(t.gridProps.sort||[]).filter(R=>R.field===r.field)[0],s=n||xe.firstLevelSortSeqMap[a][d&&d.dir||""],I=i==="single"?[]:(t.gridProps.sort||[]).filter(R=>R.field!==r.field);s!==""&&r.field&&I.push({field:r.field,dir:s}),he(I,e)},ze=e=>{var r;if(e.field===t.gridProps.expandField||e._expand||t.gridProps.group&&e.field===void 0){if(t.gridProps.onExpandChange){const n=t.gridProps.dataItemKey?l.detailExpandReducer((r=t.gridProps.detailExpand)!=null?r:{},{type:l.DETAIL_EXPAND_ACTION.SET,id:e.dataItem[t.gridProps.dataItemKey],payload:e.value}):t.gridProps.detailExpand;u(t.gridProps.onExpandChange,{...b(e.syntheticEvent),expand:n,dataItem:e.dataItem,dataIndex:e.dataIndex,value:e.value})}return}t.gridProps.onItemChange&&u(t.gridProps.onItemChange,{...b(e.syntheticEvent),dataItem:e.dataItem,dataIndex:e.dataIndex,field:e.field,value:e.value})},qe=e=>{var r;if(t.gridProps.onSelectionChange){const{event:n,dataItem:a,dataIndex:i,columnIndex:d}=e,{mode:s,cell:I}=l.getSelectionOptions(t.gridProps.selectable),R={...b(n.syntheticEvent),dataItem:a,startColIndex:d,endColIndex:d,startRowIndex:i,endRowIndex:i,dataItems:U(),altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,mode:s,cell:I,isDrag:!1,componentId:t.id,selectedField:t.gridProps.selectedField||""};u(t.gridProps.onSelectionChange,{...R,select:t.gridProps.dataItemKey?l.getSelectedState({event:R,selectedState:(r=t.gridProps.select)!=null?r:{},dataItemKey:t.gridProps.dataItemKey}):{}})}},Ue=e=>{var r,n,a;t.gridProps.onHeaderSelectionChange&&u(t.gridProps.onHeaderSelectionChange,{select:e.syntheticEvent.target.checked?(Array.isArray(t.gridProps.data)?t.gridProps.data:(n=(r=t.gridProps.data)==null?void 0:r.data)!=null?n:[]).reduce((i,d)=>(t.gridProps.dataItemKey&&(i[h.getter(t.gridProps.dataItemKey)(d)]=!0),i),{}):{},field:e.field,nativeEvent:e.syntheticEvent&&e.syntheticEvent.nativeEvent,syntheticEvent:e.syntheticEvent,target:E.current,dataItems:U(),selectedField:(a=t.gridProps.selectedField)!=null?a:""})},L=(e,r)=>{t.gridProps.onSelectionChange&&C&&u(t.gridProps.onSelectionChange,{...e,select:r})},Ve=e=>{var r;if(t.gridProps.onSelectionChange){const n=Q()[e.startRowIndex],a=Q()[e.endRowIndex],i={syntheticEvent:void 0,target:E.current,selectedField:t.gridProps.selectedField||"",componentId:t.id,dataItems:U(),dataItem:null,startDataItem:n,endDataItem:a,...e},d=l.getSelectedState({event:i,selectedState:(r=t.gridProps.select)!=null?r:{},dataItemKey:t.gridProps.dataItemKey});L(i,d)}},We=e=>{if(t.gridProps.onSelectionChange){const r=e.dataItems[0],n=e.dataItems[e.dataItems.length-1],a={},i={...e,startDataItem:r,endDataItem:n,startRowIndex:0,endRowIndex:e.dataItems.length-1,startColIndex:0,endColIndex:g.current.length-1};e.dataItems.forEach(d=>{const I=h.getter(t.gridProps.dataItemKey)(d);a[I]=e.cell?[...Array(g.current.length).keys()]:!0}),L(i,a)}},_e=e=>{if(t.gridProps.onSelectionChange){const n=h.getter(t.gridProps.dataItemKey)(e.dataItem),a=0,i=g.current.length-1,d=e.dataItems.findIndex(T=>T[t.gridProps.dataItemKey]===e.dataItem[t.gridProps.dataItemKey]),R={...e,startDataItem:d,endDataItem:d,startRowIndex:d,endRowIndex:d,startColIndex:a,endColIndex:i},f=e.mode==="multiple"?t.gridProps.select||{}:{};f[n]===!0||Array.isArray(f[n])&&f[n].length===g.current.length?delete f[n]:f[n]=e.cell?[...Array(g.current.length).keys()]:!0,L(R,f)}},je=e=>{t.gridProps.onSelectionChange&&L(e)},z=(e,r,n,a,i)=>{const d=t.gridProps.onDataStateChange;if(e){const s={...b(a),...r,targetEvent:i};u(e,s)}else d&&u(d,{...b(a),targetEvent:i||{},dataState:{...nt(),...n}})},q=(e,r,n)=>{z(t.gridProps.onPageChange,{page:e},{skip:e.skip,take:e.take},r,n)},Be=()=>{let e=t.gridProps.total||0;return Array.isArray(t.gridProps.data)?e=e||t.gridProps.data.length:t.gridProps.data&&(e=e||t.gridProps.data.total),e},$e=e=>{const r=t.gridProps.take||0,n=(t.gridProps.skip||0)+r,a=Be();n<a&&q({skip:n,take:r},e)},Xe=e=>{const r=t.gridProps.take||0,n=(t.gridProps.skip||0)-r;n>=0&&q({skip:n,take:r},e)},Je=e=>{q({skip:e.skip,take:e.take},e.syntheticEvent,e.targetEvent)},he=(e,r)=>{z(t.gridProps.onSortChange,{sort:e},{sort:e,...t.gridProps.scrollable==="virtual"?{skip:0}:{}},r)},Ye=(e,r)=>{z(t.gridProps.onFilterChange,{filter:e},{filter:e||void 0,skip:0},r)},X=(e,r)=>{const n=r.nativeEvent?r:{nativeEvent:r.nativeEvent||r.originalEvent};e.length===0&&t.gridProps.navigatable&&(ae.current=!0),z(t.gridProps.onGroupChange,{group:e},{group:e,skip:0},n)},J=(e,r,n)=>{const a=g.current[e],i=a.depth,d=f=>{do f++;while(f<g.current.length&&g.current[f].depth>i);return f},s=g.current.splice(e,d(e)-e);g.current.splice(e<r?d(r-s.length):r,0,...s),g.current.filter(f=>f.declarationIndex>=0).forEach((f,T)=>f.orderIndex=T);const I=g.current[e].locked&&g.current[r].locked;l.updateLeft(t.columnsMapRef,g.current,I||B.current),l.updateRight(t.columnsMapRef,g.current,I||B.current),ne.current&&(B.current=!1,ne.current=!1);const R=N();if(ee(),t.gridProps.onColumnReorder){const f={target:E.current,columns:R,columnId:a.id,nativeEvent:n};u(t.gridProps.onColumnReorder,f)}},Qe=(e,r,n)=>{const a=typeof t.gridProps.rowReorderable=="object"?t.gridProps.rowReorderable.enabled:t.gridProps.rowReorderable;if(n==="forbidden"||!a||!$.current)return;const{slicedData:i,dataRef:d}=t,s=(i||d)[r];t.gridProps.onRowReorder&&u(t.gridProps.onRowReorder,{draggedDataItems:[$.current],droppedDataItem:s==null?void 0:s.dataItem,dropPosition:n,nativeEvent:e.originalEvent,dragEvent:e,target:E.current}),$.current=null},Ze=(e,r,n)=>{if(t.gridProps.group===void 0)return;const a=t.gridProps.group.slice();a.splice(r,0,...a.splice(e,1)),X(a,n)},be=(e,r,n)=>{const a=g.current[e].field;if(!a)return;const i=(t.gridProps.group||[]).slice();i.splice(r,0,{field:a}),X(i,n)},pe=(e,r)=>{const n=k.current.getCurrentGroupsLength;be(e,n,r)},Y=()=>{let e=0;if(!y.current.colGroupMain)return;const r=y.current.colGroupMain.children;for(let n=0;n<r.length;n++){const a=r[n].width;if(!a)return;e+=parseFloat(a.toString())}e=Math.round(e),O.current&&O.current.setWidth(e),H.current&&H.current.setWidth(e),w.current&&(w.current.style.width=e+"px")},et=(e,r)=>{if(t.gridProps.onClipboard&&C){if(!tt()||!e)return;u(t.gridProps.onClipboard,{type:e,nativeEvent:r,columns:g.current,dataItemKey:t.gridProps.dataItemKey||"",...typeof t.gridProps.clipboard!="boolean"?t.gridProps.clipboard:{}})}},tt=()=>{var i,d,s;if(!h.canUseDOM)return!1;const e=h.getActiveElement(v()),r=e?e.matches(".k-table-td")?e:(i=v())==null?void 0:i.body:(d=v())==null?void 0:d.body,n=r.closest(".k-grid-container"),a=r&&((s=K.current)==null?void 0:s.contains(r));return!!(r&&a&&n)},rt=(e,r,n,a,i,d)=>{Y(),B.current=!0,ne.current=!0,t.gridProps.onColumnResize&&C&&u(t.gridProps.onColumnResize,{columns:N(),nativeEvent:a,targetColumnId:d,index:e,newWidth:r,oldWidth:n,end:i,target:E.current})},nt=()=>({filter:t.gridProps.filter,sort:t.gridProps.sort,skip:t.gridProps.skip,take:t.gridProps.take!==void 0?t.gridProps.take:t.gridProps.pageSize,group:t.gridProps.group}),b=e=>({nativeEvent:e&&e.nativeEvent,syntheticEvent:e,target:E.current}),at=e=>({...e,nativeEvent:void 0,syntheticEvent:void 0,target:void 0,targetEvent:void 0,focusElement:void 0}),u=(e,r)=>{if(e.name==="proxy"){e.call(void 0,at(r));return}e.call(void 0,r)},ot=()=>{var e,r,n;if(G.current&&((e=G.current)==null?void 0:e.getElementsByClassName("k-grid-edit-row").length)>0){ie.current=!1,(r=document.activeElement)!=null&&r.closest(".k-grid-edit-row")?oe.current=document.activeElement:oe.current=void 0;const a=Array.from((n=G.current)==null?void 0:n.getElementsByClassName("k-grid-edit-row"));a.length>se.current.length?j.current=a.filter(i=>!se.current.includes(i))[0]:a.length===1&&(j.current=a[0],ie.current=!0),se.current=a}},U=()=>t.dataRef.filter(e=>e.rowType==="data").map(e=>e.dataItem),Q=()=>(t.slicedData||t.dataRef).filter(e=>e.rowType==="data").map(e=>e.dataItem),Z=()=>(re.current||(re.current=h.getScrollbarWidth()||void 0),re.current),v=()=>{var e;if(h.canUseDOM)return((e=V())==null?void 0:e.ownerDocument)||document},V=()=>K.current,p=o.useCallback(e=>{var a;if(!c.current||!((a=c.current)!=null&&a.container)||t.gridProps.scrollable==="none")return;M.current&&M.current.disconnect();const{rowIndex:r}=e,n=V();if(t.gridProps.scrollable==="virtual")c.current.askedSkip=r,c.current.container.scroll(0,Math.round(c.current.askedSkip/c.current.total*c.current.container.scrollHeight));else if(n){const i=r<1?n.querySelector("tbody > tr:nth-child(1)"):n.querySelector(`tbody > tr:nth-child(${r+1})`);i&&_.current&&(_.current.scrollTop=i.offsetTop)}},[t.gridProps.scrollable]),Ie=e=>JSON.stringify(e.map(r=>({id:r.id,field:r.field,title:r.title,children:r.children}))),it=()=>Ie(mt)===Ie(g.current),ct=()=>{it()||ee()},dt=()=>{const{data:e,total:r}=t.gridProps;return Array.isArray(e)?e.length===r:e?r===e.total:!1},lt=(e,r)=>{if(c.current){if(c.current.fixedScroll=t.gridProps.fixedScroll||!1,c.current.PageChange=q,c.current.realSkip=t.gridProps.skip||0,c.current.pageSize=(t.gridProps.take!==void 0?t.gridProps.take:t.gridProps.pageSize)||0,c.current.scrollableVirtual=t.gridProps.scrollable==="virtual",c.current.total=e,c.current.propsSkip=(t.gridProps.skip||0)+(t.gridProps.scrollable==="virtual"?c.current.topCacheCount+(c.current.attendedSkip-(t.gridProps.skip||0)):0),t.gridProps.rowHeight!==void 0&&t.gridProps.rowHeight>0&&!r){const n=t.gridProps.rowHeight*e;c.current.containerHeight=S.firefox?Math.min(S.firefoxMaxHeight,n):n}else c.current.containerHeight=1533915;if(c.current.containerRef=_,c.current.tableBodyRef=G,c.current.table=w.current,c.current instanceof ve.VirtualScrollFixed){const{rowHeight:n=0,detail:a,expandField:i}=t.gridProps;let{detailRowHeight:d=0}=t.gridProps;d=a&&i?d:n,dt()?(c.current.total=t.dataRef.length,c.current.rowHeightService=new h.RowHeightService(t.dataRef.length,n,d,t.dataRef)):c.current.rowHeightService=new h.RowHeightService(e,n,d);const s=c.current.rowHeightService.totalHeight();c.current.containerHeight=S.firefox?Math.min(S.firefoxMaxHeight,s):s}}},Re=o.useCallback(e=>{const r={rowIndex:le.current};e.forEach(n=>{n.isIntersecting||p(r)})},[p]),ee=()=>{t.gridProps.forceUpdate&&t.gridProps.forceUpdate()},st=e=>e.left!==void 0?Ce!=="rtl"?{left:e.left,right:e.right}:{left:e.right,right:e.left}:{},E=o.useRef(null),g=t.columnsRef,c=o.useRef(),y=o.useRef(),k=o.useRef(),x=o.useRef(),D=o.useRef(),W=o.useRef(),M=o.useRef(null),G=o.useRef(null),ut=o.useRef(null),_=o.useRef(null),w=o.useRef(null),te=o.useRef(null),K=o.useRef(null),H=o.useRef(null),O=o.useRef(null),re=o.useRef(),ne=o.useRef(!1),ae=o.useRef(!1),j=o.useRef(),oe=o.useRef(),ie=o.useRef(!1),B=o.useRef(!0),ce=o.useRef(0),de=o.useRef(),le=o.useRef(),se=o.useRef([]),$=o.useRef(null),gt=o.useRef(null),ft=o.useRef(null),Ce=h.useDir(K),mt=o.useMemo(()=>o.Children.toArray(t.gridProps.children),[t.gridProps.children]),{enabled:Pt,mode:ht}=l.getEditableOptions(t.gridProps.editable);o.useMemo(()=>{l.tableKeyboardNavigation.onConstructor({navigatable:!!t.gridProps.navigatable,contextStateRef:x,navigationStateRef:D,idPrefix:t.id})},[]),o.useMemo(()=>{var n;(n=c.current)==null||n.reset();const e=t.gridProps.groupable===!0||typeof t.gridProps.groupable=="object"&&t.gridProps.groupable.enabled!==!1,r=t.isFixedVirtualScroll?ve.VirtualScrollFixed:xt.VirtualScroll;c.current=new r(e||t.gridProps.rowHeight===void 0||t.gridProps.rowHeight===0)},[t.gridProps.scrollable,t.gridProps.total,t.gridProps.filter,t.gridProps.group,t.gridProps.groupable,t.gridProps.sort,t.gridProps.rowHeight]),o.useEffect(()=>(t.gridProps.clipboard&&(W.current=new l.ClipboardService(et),W.current.addEventListeners(v())),()=>{W.current&&W.current.removeEventListeners(v())}),[t.gridProps.onClipboard,t.gridProps.clipboard]),o.useEffect(()=>(t.gridProps.columnVirtualization&&!window.navigator.userAgent.match(yt.SAFARI_REGEX)&&(te.current&&(te.current.style.display="block"),w.current&&(w.current.style.display="block")),Y(),h.setScrollbarWidth(Z()),l.tableKeyboardNavigation.onComponentDidMount({scope:K.current||void 0,contextStateRef:x,navigationStateRef:D}),()=>{clearTimeout(de.current)}),[]),o.useEffect(()=>{var e;Y(),h.setScrollbarWidth(Z()),(e=c.current)!=null&&e.tableTransform&&c.current.table&&(c.current.table.style.transform=c.current.tableTransform,c.current.tableTransform=""),ot(),l.tableKeyboardNavigation.onComponentDidUpdate({scope:K.current||void 0,contextStateRef:x,navigationStateRef:D,focusFirst:ae.current,newEditableRow:j.current,singleEditRow:ie.current,lastActiveElement:oe.current,navigatable:t.gridProps.navigatable}),ae.current=!1,j.current=void 0}),o.useEffect(()=>{if(h.canUseDOM){const e={rootMargin:"0px",threshold:.9};M.current=window.IntersectionObserver&&new window.IntersectionObserver(Re,e)||null}},[Re]),o.useEffect(()=>{var r;let e;return h.canUseDOM&&window.ResizeObserver&&(e=new window.ResizeObserver(ct),e.observe((r=v())==null?void 0:r.body)),()=>{e==null||e.disconnect()}},[]),o.useImperativeHandle(E,()=>({get element(){return V()},props:t.gridProps,get columns(){return N()},scrollIntoView:e=>{var a;if(!((a=c.current)!=null&&a.container)||t.gridProps.scrollable==="none")return;const{rowIndex:r}=e;le.current=r;const n=V();if(M.current&&n){M.current.disconnect();const i=n.querySelector(`[absolute-row-index="${le.current}"]`);i?M.current.observe(i):p(e)}},fitColumns:e=>{y.current.dblClickHandler(null,e)}})),o.useImperativeHandle(t.gridRef,()=>E.current),o.useMemo(()=>{y.current=new Et.ColumnResize(rt)},[t.gridProps.onColumnResize]),o.useMemo(()=>{k.current=new vt.CommonDragLogic(J,Ze,be)},[t.gridProps.onColumnReorder,t.gridProps.onGroupChange,t.gridProps.group,t.gridProps.groupable]),y.current.resizable=t.gridProps.resizable||!1,y.current.columns=g.current;const Ee=t.gridProps.groupable===!0||typeof t.gridProps.groupable=="object"&&t.gridProps.groupable.enabled!==!1;return k.current.reorderable=t.gridProps.reorderable||!1,k.current.groupable=Ee,k.current.columns=g.current,lt(t.total,Ee),o.createElement(we.Provider,{value:{isClient:C,rowReorder:Qe,activeDragRowDataItemRef:$,reorderRowDragTargetRef:gt,reorderRowDropTargetRef:ft,dir:Ce,getCellPositionStyle:st,dataItemKey:t.gridProps.dataItemKey,groupChange:X,selectionRelease:Ve,pagerPageChange:Je,onContextMenu:Me,rowClick:He,rowDblClick:Oe,cellClick:Fe,headerCellClick:Pe,itemChange:ze,sortChange:he,filterChange:Ye,onHeaderSelectionChange:Ue,columnGroupChange:pe,onKeyDown:Te,onFocus:Ae,scrollHandler:Ke,selectionChange:qe,dispatchDetailExpand:Ne,dispatchGroupExpand:Le,columnResizeRef:y,dragLogicRef:k,navigationStateRef:D,tableElementRef:w,tableBodyElementRef:G,headerElementRef:ut,containerElementRef:_,headTableElementRef:te,elementRef:K,footerRef:H,headerRef:O,getCachedScrollbarWidth:Z,vsRef:c}},o.createElement(l.TableKeyboardNavigationContext.Provider,{value:x.current},t.children),o.createElement(wt.GridContextMenu,{show:m.show,dataItem:m.dataItem,field:m.field,items:ke,offset:m.offset,onClose:ge,onSelect:De}))};exports.GridClientWrapper=kt;exports.GridContext=we;