@progress/kendo-react-grid
Version:
React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package
10 lines (9 loc) • 26.8 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
"use client";
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Nt=require("react"),R=require("@progress/kendo-react-common"),qt=require("@progress/kendo-data-query"),c=require("@progress/kendo-react-data-tools"),Ut=require("./drag/ColumnResize.js"),jt=require("./drag/CommonDragLogic.js"),Bt=require("./constants/index.js"),z=require("./utils/index.js"),Vt=require("./VirtualScroll.js"),Wt=require("./contextMenu/GridContextMenu.js"),qe=require("./contextMenu/enums.js"),Ue=require("./sortCommon.js"),_t=require("./BasePDFExport.js"),$t=require("./utils/GridContext.js"),Xt=require("./filterCommon.js");function Jt(t){const v=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const u in t)if(u!=="default"){const x=Object.getOwnPropertyDescriptor(t,u);Object.defineProperty(v,u,x.get?x:{enumerable:!0,get:()=>t[u]})}}return v.default=t,Object.freeze(v)}const a=Jt(Nt),Qt=(t,v,u,x)=>{const W=Object.keys(v.cells).map(k=>u.findIndex(F=>F.field===k)),L=Object.keys(v.cells).length>0?W:!0;return t.reduce((k,F)=>(k[F[x!=null?x:"id"]]=L,k),{})},je=(t,v,u,x)=>v.reduce((L,k)=>({...L,...Qt(qt.filterBy(t,k),k,u,x)}),{}),Yt=t=>{const v=t.gridProps.isClient,[u,x]=a.useState({}),W=R.useAdaptiveModeContext(),L=a.useRef(null),k=e=>{e.event.preventDefault(),x({...u,show:!0,offset:{left:e.event.pageX,top:e.event.pageY},dataItem:e.dataItem,field:e.field})},F=()=>{x({})},E=a.useMemo(()=>t.columnsRef.find(e=>e.field===u.field),[t.columnsRef,u]),xe=a.useMemo(()=>{const e=t.gridProps.sortable&&(E==null?void 0:E.sortable);return z.getDefaultHeadContextMenuItems({pdf:!!t.gridProps.pdf,sortable:!!e,selectable:c.getSelectionOptions(t.gridProps.selectable).enabled,clipboard:!!t.gridProps.clipboard})},[E,t.gridProps.sortable,t.gridProps.selectable,t.gridProps.clipboard]),De=a.useMemo(()=>{const e=t.gridProps.sortable&&(E==null?void 0:E.sortable);return z.getDefaultBodyContextMenuItems({pdf:!!t.gridProps.pdf,sortable:!!e,selectable:c.getSelectionOptions(t.gridProps.selectable).enabled,clipboard:!!t.gridProps.clipboard,rowReorderable:z.isRowReorderEnabled(t.gridProps.rowReorderable)})},[E,t.gridProps.sortable,t.gridProps.selectable,t.gridProps.clipboard]),p=a.useMemo(()=>{const e=(E==null?void 0:E.contextMenu)||t.gridProps.contextMenu,n=typeof e=="function"?e(u):e;if(n&&u.offset){const o=u.dataItem?qe.GridContextMenuAnchorPart.body:qe.GridContextMenuAnchorPart.head,r=n[o],i=u.dataItem?De:xe;return r===!1?void 0:r===!0||r===void 0?i:r}},[t.gridProps.contextMenu,u,De,xe,E]),Be=e=>{var l,g,f,h,P,S,b,Q,Y;const n=e.event.item,o={target:y.current,syntheticEvent:e.event.syntheticEvent,nativeEvent:e.event.nativeEvent,menuItem:n,...e};t.gridProps.onContextMenuItemClick&&s(t.gridProps.onContextMenuItemClick,o);const r=w(),i={selectedField:"",componentId:t.id,dataItems:r,dataItem:e.dataItem,startRowIndex:-1,endRowIndex:-1,startColIndex:-1,endColIndex:-1,ctrlKey:!1,altKey:!1,metaKey:!1,shiftKey:!1,isDrag:!1,...c.getSelectionOptions(t.gridProps.selectable),...o},d=r.findIndex(Z=>Z===e.dataItem);switch((l=n.data)==null?void 0:l.action){case"SortCommand":if(E){const Z=(g=n.name)==null?void 0:g.toLowerCase().includes("asc"),zt=((f=n.name)==null?void 0:f.toLowerCase().includes("desc"))?"desc":void 0,Lt=Z?"asc":zt,Ft=n.name?Lt:void 0;ke(e.event.syntheticEvent,E,Ft)}break;case"SelectRowCommand":ct(i);break;case"SelectAllRowsCommand":dt(i);break;case"ExportPDFCommand":ue();break;case"ClearSelectionCommand":st(i);break;case"ReorderRowCommand":J.current=e.dataItem,(h=n.name)!=null&&h.toLowerCase().includes("rowup")&&d>0&&_(e.event.syntheticEvent,d-1,"before"),(P=n.name)!=null&&P.toLowerCase().includes("rowdown")&&d<r.length-1&&_(e.event.syntheticEvent,d+1,"after"),(S=n.name)!=null&&S.toLowerCase().includes("rowtop")&&_(e.event.syntheticEvent,0,"before"),(b=n.name)!=null&&b.toLowerCase().includes("rowbottom")&&_(e.event.syntheticEvent,r.length-1,"after");break;case"CopySelectionCommand":oe(c.ClipboardActionType.copy,e.event.nativeEvent,{copyHeaders:!((Q=n.name)!=null&&Q.toLowerCase().includes("noheaders"))},e.dataItem,e.field);break;case"PasteCommand":oe(c.ClipboardActionType.paste,e.event.nativeEvent,{copyHeaders:!((Y=n.name)!=null&&Y.toLowerCase().includes("noheaders"))},e.dataItem,e.field);break}F()},ee=()=>{const e=t.columnsRef.filter(n=>n.declarationIndex>=0&&n.parentIndex===-1);return z.sanitizeColumns(e)},Ve=(e,n,o)=>{if(t.gridProps.onContextMenu&&v){const r={target:y.current,syntheticEvent:e,nativeEvent:e.nativeEvent,dataItem:n,field:o};s(t.gridProps.onContextMenu,r)}t.gridProps.contextMenu&&k({event:e,dataItem:n,field:o})},We=e=>{if(e.target!==e.currentTarget)return;clearTimeout(Ee.current),I.current&&(I.current.table=O.current);const n=e.currentTarget.scrollLeft,o=e.currentTarget.scrollTop;t.gridProps.columnVirtualization&&(!D||o===Ie.current)&&(Ee.current=window.setTimeout(()=>{U()},0)),t.gridProps.scrollLeftRef&&(t.gridProps.scrollLeftRef.current=n),X.current&&X.current.setScrollLeft(n),$.current&&$.current.setScrollLeft(n),I.current&&o!==Ie.current&&I.current.scrollHandler(e),t.gridProps.onScroll&&v&&s(t.gridProps.onScroll,{...C(e)}),Ie.current=o},_e=e=>{c.tableKeyboardNavigation.onKeyDown(e,{navigatable:t.gridProps.navigatable||!1,contextStateRef:H,navigationStateRef:j,onNavigationAction:Xe,columns:ee()}),c.tableKeyboardNavigation.onGetSnapshotBeforeUpdate({document:K(),contextStateRef:H,navigationStateRef:j});const n={dataItems:w(),mode:m.mode,cell:m.cell,componentId:t.id,selectedField:"",...C(e)};t.gridProps.onKeyDown&&v&&s(t.gridProps.onKeyDown,n)},$e=e=>{c.tableKeyboardNavigation.onFocus(e,{navigatable:!!t.gridProps.navigatable,contextStateRef:H})},Xe=e=>{const{columnsRef:n}=t;if(e.action==="moveToNextPage"&&ft(e.event),e.action==="moveToPrevPage"&&mt(e.event),e.focusElement&&(e.action==="reorderToRight"||e.action==="reorderToLeft")){const o=parseInt(e.focusElement.ariaColIndex,10)-1;if(!n[o].reorderable)return;if(e.action==="reorderToRight"&&o<t.columnsRef.length-1){if(n[o+1].disableReorder)return;ne(o,o+1,e.event)}if(e.action==="reorderToLeft"&&o>0){if(n[o-1].disableReorder)return;ne(o,o-1,e.event)}}if(e.action==="select"&&ot(e.event),t.gridProps.onNavigationAction&&v){const o={focusElement:e.focusElement,...C(e.event)};s(t.gridProps.onNavigationAction,o)}},Je=(e,n)=>{t.gridProps.onRowClick&&c.closestTagName(e.target,"TD")&&s(t.gridProps.onRowClick,{dataItem:n,...C(e)})},Qe=(e,n)=>{t.gridProps.onRowDoubleClick&&c.closestTagName(e.target,"TD")&&s(t.gridProps.onRowDoubleClick,{dataItem:n,...C(e)})},Ye=e=>{t.gridProps.onItemChange&&s(t.gridProps.onItemChange,{...C(e.syntheticEvent),dataItem:e.dataItem,field:void 0,value:void 0})},Ze=e=>{t.gridProps.onItemChange&&t.gridProps.onEditChange&&s(t.gridProps.onEditChange,{edit:{},...C(e.syntheticEvent)})},pe=(e,n,o)=>{if(Ne.enabled&&Ne.mode==="incell"&&t.gridProps.dataItemKey){const r=c.editReducer(t.gridProps.edit,{type:c.EDIT_ACTION.ENTER_FIELD_EDIT,payload:{id:n[t.gridProps.dataItemKey],field:o}});t.gridProps.onEditChange&&s(t.gridProps.onEditChange,{edit:r,...C(e)})}},et=(e,n)=>{var r;if(c.getDetailExpandableOptions(t.detailExpandable).enabled){const i=c.detailExpandReducer((r=t.gridProps.detailExpand)!=null?r:{},e);t.gridProps.onDetailExpandChange&&s(t.gridProps.onDetailExpandChange,{...C(n),detailExpand:i})}},tt=(e,n)=>{var r;const o=c.getGroupExpandableOptions(typeof t.gridProps.groupable=="object"?t.gridProps.groupable.expandable!==!1:t.gridProps.groupable);if(o.enabled){const i=c.groupExpandReducer((r=t.gridProps.groupExpand)!=null?r:[],e,o);t.gridProps.onGroupExpandChange&&s(t.gridProps.onGroupExpandChange,{...C(n),groupExpand:i})}},ke=(e,n,o)=>{const{allowUnsort:r,mode:i}=Ue.normalizeSortable(t.gridProps.sortable||!1,n.sortable||!1),d=(t.gridProps.sort||[]).filter(f=>f.field===n.field)[0],l=o||Ue.firstLevelSortSeqMap[r][d&&d.dir||""],g=i==="single"?[]:(t.gridProps.sort||[]).filter(f=>f.field!==n.field);l!==""&&n.field&&g.push({field:n.field,dir:l}),Ke(g,e)},nt=e=>{t.gridProps.onItemChange&&s(t.gridProps.onItemChange,{...C(e.syntheticEvent),dataItem:e.dataItem,dataIndex:e.dataIndex,field:e.field,value:e.value})},rt=e=>{var n;if(t.gridProps.onSelectionChange&&m.enabled){const{event:o,dataItem:r,dataIndex:i,columnIndex:d}=e,l={...C(o),dataItem:r,startColIndex:d,endColIndex:d,startRowIndex:i,endRowIndex:i,dataItems:w(),altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,mode:m.mode,cell:m.cell,isDrag:!1,componentId:t.id,selectedField:""};s(t.gridProps.onSelectionChange,{...l,select:t.gridProps.dataItemKey?c.getSelectedState({event:l,selectedState:(n=t.gridProps.select)!=null?n:{},dataItemKey:t.gridProps.dataItemKey}):{}})}},ot=e=>{var f,h;if(!m.enabled||!t.gridProps.dataItemKey)return;const n={dataItems:w(),mode:m.mode,cell:m.cell,componentId:t.id,selectedField:"",...C(e)},o=c.getSelectedStateFromKeyDown({event:n,selectedState:(f=t.gridProps.select)!=null?f:{},dataItemKey:t.gridProps.dataItemKey});if(o===t.gridProps.select)return;const r=e.target,i=c.closestTagName(r,"TD"),d=c.closestTagName(r,"TR"),l=c.getColumnIndex(i),g=c.getRowIndex(d);if(l!==void 0&&g!==void 0){const P=(h=z.getDataAsArray(t.gridProps.data))==null?void 0:h[g];t.gridProps.onSelectionChange&&s(t.gridProps.onSelectionChange,{...n,select:o,dataItem:P,startRowIndex:g,startColIndex:l,startDataItem:P,endDataItem:P,endRowIndex:g,endColIndex:l,ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey,isDrag:!1})}},it=e=>{if(t.gridProps.onHeaderSelectionChange&&m.enabled){const n=w();s(t.gridProps.onHeaderSelectionChange,{select:e.syntheticEvent.target.checked?n.reduce((o,r)=>(t.gridProps.dataItemKey&&R.getter(t.gridProps.dataItemKey)(r)!==void 0&&(o[R.getter(t.gridProps.dataItemKey)(r)]=!0),o),{}):{},field:e.field,nativeEvent:e.syntheticEvent&&e.syntheticEvent.nativeEvent,syntheticEvent:e.syntheticEvent,target:y.current,dataItems:n})}},N=(e,n)=>{t.gridProps.onSelectionChange&&m.enabled&&s(t.gridProps.onSelectionChange,{...e,select:n})},at=e=>{var n;if(t.gridProps.onSelectionChange&&m.enabled){const o=w()[e.startRowIndex],r=w()[e.endRowIndex],i={syntheticEvent:void 0,target:y.current,selectedField:"",componentId:t.id,dataItems:w(),dataItem:null,startDataItem:o,endDataItem:r,...e},d=c.getSelectedState({event:i,selectedState:(n=t.gridProps.select)!=null?n:{},dataItemKey:t.gridProps.dataItemKey});N(i,d)}},dt=e=>{if(t.gridProps.onSelectionChange&&m.enabled){const n=e.dataItems[0],o=e.dataItems[e.dataItems.length-1],r={},i={...e,startDataItem:n,endDataItem:o,startRowIndex:0,endRowIndex:e.dataItems.length-1,startColIndex:0,endColIndex:t.columnsRef.length-1};e.dataItems.forEach(d=>{const g=R.getter(t.gridProps.dataItemKey)(d);r[g]=e.cell?[...Array(t.columnsRef.length).keys()]:!0}),N(i,r)}},ct=e=>{if(t.gridProps.onSelectionChange&&m.enabled){const o=R.getter(t.gridProps.dataItemKey)(e.dataItem),r=0,i=t.columnsRef.length-1,d=e.dataItems.findIndex(P=>P[t.gridProps.dataItemKey]===e.dataItem[t.gridProps.dataItemKey]),f={...e,startDataItem:d,endDataItem:d,startRowIndex:d,endRowIndex:d,startColIndex:r,endColIndex:i},h=e.mode==="multiple"?t.gridProps.select||{}:{};h[o]===!0||Array.isArray(h[o])&&h[o].length===t.columnsRef.length?delete h[o]:h[o]=e.cell?[...Array(t.columnsRef.length).keys()]:!0,N(f,h)}},lt=e=>{if(!m.enabled)return;const n=w(),o={syntheticEvent:void 0,nativeEvent:void 0,target:y.current,selectedField:"",componentId:t.id,dataItems:n,dataItem:null,startDataItem:null,endDataItem:null,ctrlKey:!1,altKey:!1,metaKey:!1,shiftKey:!1,isDrag:!1,mode:m.mode,cell:m.cell};if(!e||e.length===0){const P={...o,startRowIndex:-1,endRowIndex:-1,startColIndex:-1,endColIndex:-1};N(P,{});return}const r=je(t.gridProps.data,e,t.columnsRef,t.gridProps.dataItemKey),i={};Object.keys(r).forEach(P=>{r[P]&&(i[P]=m.cell?[...Array(t.columnsRef.length).keys()]:!0)});let d=-1,l=-1,g=n[0]||null,f=n[n.length-1]||null;if(t.gridProps.dataItemKey){const P=R.getter(t.gridProps.dataItemKey);for(let S=0;S<n.length;S++){const b=P(n[S]);b!==void 0&&r[b]&&(d===-1&&(d=S,g=n[S]),l=S,f=n[S])}}const h={...o,startRowIndex:d,endRowIndex:l,startColIndex:0,endColIndex:t.columnsRef.length-1,startDataItem:g,endDataItem:f};N(h,i)},st=e=>{t.gridProps.onSelectionChange&&m.enabled&&N(e,{})},q=(e,n,o,r,i)=>{gt();const d=t.gridProps.onDataStateChange;if(e){const l={...C(r),...n,targetEvent:i};s(e,l)}else d&&s(d,{...C(r),targetEvent:i||{},dataState:{...yt(),...o}})},te=(e,n,o)=>{var r;D&&t.gridProps.pageable&&((r=I.current)==null||r.reset()),q(t.gridProps.onPageChange,{page:e},{skip:e.skip,take:e.take},n,o)},ut=(e,n,o)=>{var r;t.gridProps.pageable||(r=t.gridProps.group)!=null&&r.length?t.gridProps.virtualSkipRef&&(t.gridProps.virtualSkipRef.current=e.skip,U()):te(e,n,o)},se=()=>{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},gt=()=>{D&&t.gridProps.virtualSkipRef&&(t.gridProps.virtualSkipRef.current=0)},ft=e=>{var i,d;const n=(d=(i=t.gridProps.take)!=null?i:t.gridProps.pageSize)!=null?d:0,o=(t.gridProps.skip||0)+n,r=se();o<r&&te({skip:o,take:n},e)},mt=e=>{var r,i;const n=(i=(r=t.gridProps.take)!=null?r:t.gridProps.pageSize)!=null?i:0,o=(t.gridProps.skip||0)-n;o>=0&&te({skip:o,take:n},e)},Pt=e=>{te({skip:e.skip,take:e.take},e.syntheticEvent,e.targetEvent)},Ke=(e,n)=>{q(t.gridProps.onSortChange,{sort:e},{sort:e,...D&&!t.gridProps.pageable?{skip:0}:{}},n)},ht=(e,n)=>{q(t.gridProps.onFilterChange,{filter:e},{filter:e,skip:0},n)},bt=e=>{if(!e||e.length===0){Me({});return}const n=je(t.gridProps.data,e,t.columnsRef,t.gridProps.dataItemKey);Me({...n})},Me=e=>{q(t.gridProps.onHighlightChange,{highlight:e},{},{})},Rt=e=>{const n=t.gridProps.searchFields||t.columnsRef.map(i=>i.field)||[],o=e.nativeEvent.target.value,r={logic:"or",filters:n.filter(i=>i!==void 0).map(i=>{var d;return typeof i=="string"?{field:i,value:o,operator:"contains"}:{value:o,operator:(d=i.operator)!=null?d:"contains",field:i.field,ignoreCase:i.ignoreCase}})};q(t.gridProps.onSearchChange,{search:r},{skip:0},e.syntheticEvent)},ue=()=>{var e;(e=L.current)==null||e.save()},vt=async e=>{var n,o;(n=t.gridProps)!=null&&n.onPdfExport&&await((o=t.gridProps)==null?void 0:o.onPdfExport(e))},ge=(e,n)=>{const o=n.nativeEvent?n:{nativeEvent:n.nativeEvent||n.originalEvent};let r={};t.isVirtualScroll&&e.length&&!t.gridProps.pageable&&(r={take:void 0}),e.length===0&&t.gridProps.navigatable&&(Re.current=!0),q(t.gridProps.onGroupChange,{group:e},{group:e,skip:0,...r},o)},fe=e=>{if(t.gridProps.onColumnsStateChange){const n={target:y.current,columnsState:e};s(t.gridProps.onColumnsStateChange,n)}},ne=(e,n,o)=>{const{columnsRef:r,columnsState:i}=t,d=r[e],l=z.getFlatColumnsState(i),g=d.depth,f=b=>{do b++;while(b<r.length&&r[b].depth>g);return b},h=r.splice(e,f(e)-e);r.splice(e<n?f(n-h.length):n,0,...h),r.filter(b=>b.declarationIndex>=0).forEach((b,Q)=>{b.orderIndex=Q;const Y=l.find(Z=>Z.id===b.id);Y&&(Y.orderIndex=Q)});const P=r[e].locked&&r[n].locked;c.updateLeft(t.columnsMapRef,r,P||ce.current),c.updateRight(t.columnsMapRef,r,P||ce.current),be.current&&(ce.current=!1,be.current=!1);const S=ee();if(U(),t.gridProps.onColumnReorder){const b={target:y.current,columns:S,columnId:d.id,nativeEvent:o};s(t.gridProps.onColumnReorder,b)}fe(i)},_=(e,n,o)=>{const r=typeof t.gridProps.rowReorderable=="object"?t.gridProps.rowReorderable.enabled:t.gridProps.rowReorderable;if(o==="forbidden"||!r||!J.current)return;const i=t.dataRef[n];t.gridProps.onRowReorder&&s(t.gridProps.onRowReorder,{draggedDataItems:[J.current],droppedDataItem:i==null?void 0:i.dataItem,dropPosition:o,nativeEvent:e.originalEvent,dragEvent:e,target:y.current}),J.current=null},Ct=(e,n,o)=>{if(t.gridProps.group===void 0)return;const r=t.gridProps.group.slice();r.splice(n,0,...r.splice(e,1)),ge(r,o)},Te=(e,n,o)=>{const r=t.columnsRef[e].field;if(!r)return;const i=(t.gridProps.group||[]).slice();i.splice(n,0,{field:r}),ge(i,o)},It=(e,n)=>{const o=T.current.getCurrentGroupsLength;Te(e,o,n)},me=()=>{let e=0;if(!M.current.colGroupMain)return;const n=M.current.colGroupMain.children;for(let o=0;o<n.length;o++){const r=n[o].width;if(!r){e=0;break}e+=parseFloat(r.toString())}e=Math.round(e),X.current&&X.current.setWidth(e),$.current&&$.current.setWidth(e),O.current&&(O.current.style.width=e?e+"px":"")},He=()=>{var e;t.gridProps.widthRef&&(t.gridProps.widthRef.current=((e=G.current)==null?void 0:e.offsetWidth)||0)},re=()=>{var e;t.gridProps.containerHeightRef&&(t.gridProps.containerHeightRef.current=((e=A.current)==null?void 0:e.offsetHeight)||0)},Et=()=>{const e=t.gridProps.minRowHeightRef;if(e&&!e.current&&!t.gridProps.rowHeight){const n=z.calcRowHeight(V.current);n&&(e.current=n,U())}},oe=a.useCallback((e,n,o,r,i)=>{var f;if(!wt()&&!o||!e)return;const d={type:e,nativeEvent:n,columns:t.columnsRef,dataItemKey:t.gridProps.dataItemKey||"",dataItem:r,field:i,...typeof t.gridProps.clipboard!="boolean"?t.gridProps.clipboard:{},...o},l=w(),g=c.populateClipboardData({event:d,data:l,selectedState:(f=t.gridProps.select)!=null?f:{},previousCopiedItems:Le.current});e!==c.ClipboardActionType.paste&&(Le.current=g.copiedItems),t.gridProps.onClipboard&&v&&s(t.gridProps.onClipboard,{...d,...g})},[t.gridProps.select,t.gridProps.dataItemKey,t.gridProps.data,t.gridProps.clipboard,t.gridProps.onClipboard]),wt=()=>{var i,d,l;if(!R.canUseDOM)return!1;const e=R.getActiveElement(K()),n=e?e.matches(".k-table-td")?e:(i=K())==null?void 0:i.body:(d=K())==null?void 0:d.body,o=n.closest(".k-grid-container"),r=n&&((l=G.current)==null?void 0:l.contains(n));return!!(n&&r&&o)},Ae=(e,n,o,r,i,d,l)=>{me(),ce.current=!0,be.current=!0,t.gridProps.onColumnResize&&v&&s(t.gridProps.onColumnResize,{columns:ee(),nativeEvent:r,targetColumnId:l,index:e,newWidth:n,oldWidth:o,end:i,target:y.current}),i&&fe(d)},yt=()=>{var e;return{filter:t.gridProps.filter,sort:t.gridProps.sort,skip:t.gridProps.skip,take:(e=t.gridProps.take)!=null?e:t.gridProps.pageSize,group:t.gridProps.group}},C=e=>({nativeEvent:e&&e.nativeEvent,syntheticEvent:e,target:y.current}),St=e=>({...e,nativeEvent:void 0,syntheticEvent:void 0,target:void 0,targetEvent:void 0,focusElement:void 0}),s=(e,n)=>{if(t.gridProps.isClient){e(n);return}e(St(n))},xt=()=>{var e,n,o;if(V.current&&((e=V.current)==null?void 0:e.getElementsByClassName("k-grid-edit-row").length)>0){Ce.current=!1,(n=document.activeElement)!=null&&n.closest(".k-grid-edit-row")?ve.current=document.activeElement:ve.current=void 0;const r=Array.from((o=V.current)==null?void 0:o.getElementsByClassName("k-grid-edit-row"));r.length>ye.current.length?de.current=r.filter(i=>!ye.current.includes(i))[0]:r.length===1&&(de.current=r[0],Ce.current=!0),ye.current=r}},w=()=>t.dataRef.filter(e=>e.rowType==="data").map(e=>e.dataItem),K=()=>{var e;if(R.canUseDOM)return((e=ie())==null?void 0:e.ownerDocument)||document},ie=()=>G.current,Pe=a.useCallback(e=>{var r,i;if(!I.current||!((r=I.current)!=null&&r.container)||t.gridProps.scrollable==="none")return;B.current&&B.current.disconnect();const{rowIndex:n}=e,o=ie();if(D){const d=((i=I.current.rowHeightService)==null?void 0:i.offset(n))||0;I.current.container.scroll(0,d)}else if(o){const d=n<1?o.querySelector("tbody > tr:nth-child(1)"):o.querySelector(`tbody > tr:nth-child(${n+1})`);d&&A.current&&(A.current.scrollTop=d.offsetTop)}},[t.gridProps.scrollable]),Oe=e=>JSON.stringify(e.map(n=>({id:n.id,field:n.field,title:n.title,children:n.children}))),Dt=()=>Oe(Ot)===Oe(t.columnsRef),kt=()=>{le.current=window.innerWidth,Dt()||U()},Kt=()=>{var d;const{virtualTotal:e,virtualPageSize:n,gridProps:o}=t,r=I.current,i=t.gridProps.rowHeight||((d=o.minRowHeightRef)==null?void 0:d.current)||0;r&&(r.fixedScroll=o.fixedScroll||!1,r.PageChange=ut,r.pageSize=n,r.scrollableVirtual=D,r.container=A.current,r.tableBody=V.current,r.scrollHeightContainer=ze.current,r.table=O.current,(!r.rowHeightService||r.total!==e)&&i&&(r.total=e,r.rowHeightService=new R.RowHeightService(e,i)))},Ge=a.useCallback(e=>{const n={rowIndex:we.current};e.forEach(o=>{o.boundingClientRect.height!==o.intersectionRect.height&&Pe(n)})},[Pe]),U=()=>{t.gridProps.forceUpdate&&t.gridProps.forceUpdate()},Mt=e=>e.left!==void 0?Se!=="rtl"?{left:e.left,right:e.right}:{left:e.right,right:e.left}:{},y=a.useRef(null),I=a.useRef(void 0),M=a.useRef(void 0),T=a.useRef(void 0),H=a.useRef(void 0),j=a.useRef(void 0),ae=a.useRef(void 0),B=a.useRef(null),V=a.useRef(null),Tt=a.useRef(null),A=a.useRef(null),O=a.useRef(null),he=a.useRef(null),G=a.useRef(null),ze=a.useRef(null),$=a.useRef(null),X=a.useRef(null),be=a.useRef(!1),Re=a.useRef(!1),de=a.useRef(void 0),ve=a.useRef(void 0),Ce=a.useRef(!1),ce=a.useRef(!0),Ie=a.useRef(0),Ee=a.useRef(void 0),we=a.useRef(void 0),ye=a.useRef([]),Le=a.useRef([]),le=a.useRef(0),J=a.useRef(null),Ht=a.useRef(null),At=a.useRef(null),Se=R.useDir(G),D=t.isVirtualScroll,Ot=a.useMemo(()=>a.Children.toArray(t.gridProps.children),[t.gridProps.children]),Fe=t.gridProps.groupable===!0||typeof t.gridProps.groupable=="object"&&t.gridProps.groupable.enabled!==!1,m=c.getSelectionOptions(t.gridProps.selectable),Ne=c.getEditableOptions(t.gridProps.editable),Gt=le.current&&W&&le.current<=W.medium&&t.gridProps.adaptive;return a.useMemo(()=>{c.tableKeyboardNavigation.onConstructor({navigatable:!!t.gridProps.navigatable,contextStateRef:H,navigationStateRef:j,idPrefix:t.id}),I.current=new Vt.VirtualScroll},[]),a.useMemo(()=>{var e;(e=I.current)==null||e.reset()},[t.gridProps.scrollable,t.gridProps.total,t.gridProps.filter,t.gridProps.group,Fe,t.gridProps.sort,t.gridProps.rowHeight]),a.useEffect(()=>(t.gridProps.clipboard&&(ae.current=new c.ClipboardService(oe),ae.current.addEventListeners(K())),()=>{ae.current&&ae.current.removeEventListeners(K())}),[t.gridProps.onClipboard,t.gridProps.clipboard,oe,K]),a.useEffect(()=>(t.gridProps.columnVirtualization&&!window.navigator.userAgent.match(Bt.SAFARI_REGEX)&&(he.current&&(he.current.style.display="block"),O.current&&(O.current.style.display="block")),He(),me(),R.setScrollbarWidth(),c.tableKeyboardNavigation.onComponentDidMount({scope:G.current||void 0,contextStateRef:H,navigationStateRef:j}),()=>{clearTimeout(Ee.current)}),[]),a.useEffect(()=>{var e;He(),me(),R.setScrollbarWidth(),D&&(re(),Et(),(e=I.current)==null||e.update()),xt(),c.tableKeyboardNavigation.onComponentDidUpdate({scope:G.current||void 0,contextStateRef:H,navigationStateRef:j,focusFirst:Re.current,newEditableRow:de.current,singleEditRow:Ce.current,lastActiveElement:ve.current,navigatable:t.gridProps.navigatable}),Re.current=!1,de.current=void 0}),a.useEffect(()=>{if(R.canUseDOM){const e={rootMargin:"0px",threshold:.9};B.current=window.IntersectionObserver&&new window.IntersectionObserver(Ge,e)||null}},[Ge]),a.useEffect(()=>{var n;let e;return R.canUseDOM&&window.ResizeObserver&&(e=new window.ResizeObserver(()=>{kt(),D&&re()}),e.observe((n=K())==null?void 0:n.body)),()=>{e==null||e.disconnect()}},[]),a.useEffect(()=>{if(!R.canUseDOM||!window.ResizeObserver||!D||!A.current)return;const e=()=>{var i,d;const o=((i=t.gridProps.containerHeightRef)==null?void 0:i.current)||0;re();const r=((d=t.gridProps.containerHeightRef)==null?void 0:d.current)||0;(o===0&&r>0||Math.abs(r-o)>10)&&U()},n=new window.ResizeObserver(e);return n.observe(A.current),()=>{n.disconnect()}},[D,re]),a.useImperativeHandle(y,()=>({get element(){return ie()},props:t.gridProps,get columns(){return ee()},scrollIntoView:e=>{var r;if(!((r=I.current)!=null&&r.container)||t.gridProps.scrollable==="none")return;const{rowIndex:n}=e;we.current=n;const o=ie();if(B.current&&o){B.current.disconnect();const i=o.querySelector(`[absolute-row-index="${we.current}"]`);i?B.current.observe(i):Pe(e)}},fitColumns:e=>{M.current.dblClickHandler(null,e)},exportAsPdf:ue,getTotal:se,getLeafDataItems:w})),a.useImperativeHandle(t.gridRef,()=>y.current),a.useMemo(()=>{M.current=new Ut.ColumnResize(Ae)},[t.gridProps.onColumnResize,t.columnsRef]),a.useMemo(()=>{T.current=new jt.CommonDragLogic(ne,Ct,Te)},[t.gridProps.onColumnReorder,t.gridProps.onGroupChange,t.gridProps.group,t.columnsRef,t.gridProps.groupable]),M.current.resizable=t.gridProps.resizable||!1,M.current.columns=t.columnsRef,M.current.columnsState=R.cloneArray(t.columnsState),T.current.reorderable=t.gridProps.reorderable||!1,T.current.groupable=Fe,T.current.columns=t.columnsRef,T.current.dir=Se,Kt(),a.createElement($t.GridContext.Provider,{value:{isClient:v,rowReorder:_,activeDragRowDataItemRef:J,reorderRowDragTargetRef:Ht,reorderRowDropTargetRef:At,dir:Se,getCellPositionStyle:Mt,dataItemKey:t.gridProps.dataItemKey,columnsState:t.columnsState,columnsRef:t.columnsRef,hiddenColumnsRef:t.hiddenColumnsRef,onColumnsStateChange:fe,groupable:t.gridProps.groupable,group:t.gridProps.group,reorderable:t.gridProps.reorderable,defaultGroup:t.gridProps.defaultGroup,groupChange:ge,selectionRelease:at,pagerPageChange:Pt,onContextMenu:Ve,rowClick:Je,rowDblClick:Qe,cellClick:pe,headerCellClick:ke,itemChange:nt,onDialogEditCancel:Ze,onDialogEditSubmit:Ye,columnReorder:ne,onResize:Ae,getTotal:se,sortable:t.gridProps.sortable,pageable:t.gridProps.pageable,pageSize:t.gridProps.pageSize,sort:t.gridProps.sort,skip:t.gridProps.skip,take:t.gridProps.take,defaultSort:t.gridProps.defaultSort,sortChange:Ke,filterable:t.gridProps.filterable,filter:t.gridProps.filter,defaultFilter:t.gridProps.defaultFilter,filterOperators:t.gridProps.filterOperators||Xt.operators,getLeafDataItems:w,filterChange:ht,applyHighlightDescriptor:bt,applySelectionDescriptor:lt,highlight:t.gridProps.highlight,select:t.gridProps.select,searchChange:Rt,exportAsPdf:ue,onHeaderSelectionChange:it,columnGroupChange:It,onKeyDown:_e,onFocus:$e,scrollHandler:We,selectionChange:rt,mobileMode:Gt,adaptiveColumnMenuRef:le.current,adpativeTitle:t.gridProps.adaptiveTitle,adaptive:t.gridProps.adaptive,dispatchDetailExpand:et,dispatchGroupExpand:tt,columnResizeRef:M,dragLogicRef:T,navigationStateRef:j,tableElementRef:O,tableBodyElementRef:V,headerElementRef:Tt,containerElementRef:A,headTableElementRef:he,elementRef:G,virtualScrollHeightContainerRef:ze,footerRef:$,headerRef:X,vsRef:I}},a.createElement(c.TableKeyboardNavigationContext.Provider,{value:H.current},t.children),a.createElement(Wt.GridContextMenu,{show:u.show&&(p==null?void 0:p.length),dataItem:u.dataItem,field:u.field,items:p,offset:u.offset,onClose:F,onSelect:Be}),t.gridProps.pdf&&a.createElement(_t.BasePDFExport,{gridProps:t.gridProps,innerGrid:t.innerGrid,pdf:typeof t.gridProps.pdf=="object"?t.gridProps.pdf:{},onPdfExport:vt,ref:e=>L.current=e}))};exports.GridClientWrapper=Yt;