@alaarab/ogrid-react 2.5.1 → 2.5.2
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/dist/esm/index.js +1 -1
- package/package.json +2 -2
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {getPaginationViewModel,resolveCellDisplayContent,resolveCellStyle,buildInlineEditorProps,buildPopoverEditorProps,createGridDataAccessor,flattenColumns,validateColumns,validateRowIds,columnLetterToIndex,getCellValue,rangesEqual,normalizeSelectionRange,formatSelectionAsTsv,parseTsvClipboard,applyPastedValues,applyCutClear,applyRangeRowSelection,computeRowSelectionState,applyCellDeletion,getScrollTopForRow,computeTabNavigation,computeArrowNavigation,UndoRedoStack,buildCellIndex,applyFillValues,DEFAULT_MIN_COLUMN_WIDTH,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,computeAggregations,getDataGridStatusBarConfig,PEOPLE_SEARCH_DEBOUNCE_MS,measureColumnContentWidth,getPinStateForColumn,validateVirtualScrollConfig,computeVisibleColumnRange,buildHeaderRows,formatCellReference,CellDescriptorCache,GRID_BORDER_RADIUS,getStatusBarParts,getContextMenuHandlers,GRID_CONTEXT_MENU_ITEMS,formatShortcut,measureRange,injectGlobalStyles,getColumnHeaderMenuItems,calculateDropTarget,reorderColumnArray,computeNextSortState,mergeFilter,getMultiSelectFilterFields,deriveFilterOptionsFromData,processClientSideData,processClientSideDataAsync,resolveResponsiveConfig,applyResponsiveHiding,parseValue,ROW_NUMBER_COLUMN_MIN_WIDTH,ROW_NUMBER_COLUMN_ID,computeAutoScrollSpeed}from'@alaarab/ogrid-core';export{CELL_PADDING,CHECKBOX_COLUMN_WIDTH,COLUMN_HEADER_MENU_ITEMS,CellDescriptorCache,DEFAULT_MIN_COLUMN_WIDTH,GRID_BORDER_RADIUS,GRID_CONTEXT_MENU_ITEMS,MAX_PAGE_BUTTONS,PAGE_SIZE_OPTIONS,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_MIN_WIDTH,ROW_NUMBER_COLUMN_WIDTH,UndoRedoStack,areGridRowPropsEqual,booleanParser,buildCsvHeader,buildCsvRows,buildHeaderRows,clampSelectionToBounds,computeAggregations,computeAutoScrollSpeed,computeTabNavigation,currencyParser,dateParser,deriveFilterOptionsFromData,emailParser,escapeCsvValue,exportToCsv,findCtrlArrowTarget,flattenColumns,formatCellReference,formatCellValueForTsv,formatSelectionAsTsv,formatShortcut,getCellRenderDescriptor,getCellValue,getColumnHeaderMenuItems,getContextMenuHandlers,getDataGridStatusBarConfig,getFilterField,getHeaderFilterConfig,getMultiSelectFilterFields,getPaginationViewModel,getStatusBarParts,indexToColumnLetter,isInSelectionRange,isRowInRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,partitionColumnsForVirtualization,processClientSideData,rangesEqual,toUserLike,triggerCsvDownload}from'@alaarab/ogrid-core';import*as Pe from'react';import {memo,useState,useRef,useCallback,useEffect,useMemo,useImperativeHandle,useLayoutEffect,forwardRef}from'react';import {FORMULA_REF_COLORS,FormulaEngine,deriveFormulaBarText,processFormulaBarCommit,insertReferenceAtCursor,extractFormulaReferences,FORMULA_BAR_STYLES,handleFormulaBarKeyDown}from'@alaarab/ogrid-core/formula';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useVirtualizer}from'@tanstack/react-virtual';import {createPortal}from'react-dom';function L(o){let e=useRef(o);return e.current=o,e}function Za(o,e){if(o.length!==e.length)return false;for(let t=0;t<o.length;t++)if(o[t]!==e[t])return false;return true}var Or={},ao={};function ln(o,e){let t=useRef(e);Za(t.current,e)||(t.current=e);let n=t.current,l=L(o),[u,s]=useState(Or),[d,i]=useState(ao),r=useCallback(async()=>{let m=l.current,R="fetchFilterOptions"in m&&typeof m.fetchFilterOptions=="function"?m.fetchFilterOptions.bind(m):void 0;if(!R){s(Or),i(ao);return}let a={};n.forEach(c=>{a[c]=true;}),i(a);let p={};await Promise.all(n.map(async c=>{try{p[c]=await R(c);}catch{p[c]=[];}})),s(p),i(ao);},[n,l]);return useEffect(()=>{r().catch(()=>{});},[r]),{filterOptions:u,loadingOptions:d}}function Mr(o,e,t){return resolveCellDisplayContent(o,e,t)}function Ur(o,e,t){return resolveCellStyle(o,e,t)}function kr(o,e,t,n){return {...buildInlineEditorProps(o,e,t,n),column:e}}function Ar(o,e,t,n,l){return {...buildPopoverEditorProps(o,e,t,n,l),column:e}}function Lr(o,e,t){return {"data-row-index":o.rowIndex,"data-col-index":o.globalColIndex,...o.isActive?{"data-active-cell":"true"}:{},...o.isInRange?{"data-in-range":"true"}:{},tabIndex:o.isActive?0:-1,onPointerDown:n=>t.handleCellMouseDown(n,o.rowIndex,o.globalColIndex),onClick:()=>t.setActiveCell({rowIndex:o.rowIndex,columnIndex:o.globalColIndex}),onContextMenu:t.handleCellContextMenu,...o.canEditAny?{role:"button",onDoubleClick:()=>t.setEditingCell({rowId:o.rowId,columnId:e})}:{}}}var xi={getFormulaValue:()=>{},hasFormula:()=>false,getFormula:()=>{},setFormula:()=>{},onCellChanged:()=>{},getPrecedents:()=>[],getDependents:()=>[],getAuditTrail:()=>null,enabled:false};function an(o){let{formulas:e,items:t,flatColumns:n,initialFormulas:l,onFormulaRecalc:u,formulaFunctions:s,namedRanges:d,sheets:i}=o,r=L(t),m=L(n),R=L(u),a=useRef(null);e&&!a.current?a.current=new FormulaEngine({customFunctions:s,namedRanges:d}):!e&&a.current&&(a.current=null),useEffect(()=>{if(!(!a.current||!i)){for(let[y,b]of Object.entries(i))a.current.registerSheet(y,b);return ()=>{if(!(!a.current||!i))for(let y of Object.keys(i))a.current.unregisterSheet(y);}}},[i]);let p=useCallback(()=>createGridDataAccessor(r.current,m.current),[r,m]),c=useRef(false);useEffect(()=>{if(e&&a.current&&l&&!c.current){c.current=true;let y=p(),b=a.current.loadFormulas(l,y);b.updatedCells.length>0&&R.current?.(b);}},[e,l,p,R]);let f=useCallback((y,b)=>a.current?.getValue(y,b),[]),C=useCallback((y,b)=>a.current?.hasFormula(y,b)??false,[]),g=useCallback((y,b)=>a.current?.getFormula(y,b),[]),h=useCallback((y,b,I)=>{if(!a.current)return;let D=p(),v=a.current.setFormula(y,b,I,D);v.updatedCells.length>0&&R.current?.(v);},[p,R]),S=useCallback((y,b)=>{if(!a.current)return;let I=p(),D=a.current.onCellChanged(y,b,I);D.updatedCells.length>0&&R.current?.(D);},[p,R]),x=useCallback((y,b)=>a.current?.getPrecedents(y,b)??[],[]),w=useCallback((y,b)=>a.current?.getDependents(y,b)??[],[]),E=useCallback((y,b)=>a.current?.getAuditTrail(y,b)??null,[]);return e?{getFormulaValue:f,hasFormula:C,getFormula:g,setFormula:h,onCellChanged:S,getPrecedents:x,getDependents:w,getAuditTrail:E,enabled:true}:xi}function sn(o){let{activeCol:e,activeRow:t,activeCellRef:n,getFormula:l,getRawValue:u,setFormula:s,onCellValueChanged:d}=o,[i,r]=useState(false),[m,R]=useState(""),a=useRef(false),p=useRef(null),c=useMemo(()=>deriveFormulaBarText(e,t,l,u),[e,t,l,u]);useEffect(()=>{r(false),a.current=false;},[e,t]);let f=useCallback(()=>{R(c),r(true),a.current=true;},[c]),C=useCallback(E=>{R(E);},[]),g=useCallback(()=>{e==null||t==null||!s||(processFormulaBarCommit(m,e,t,s,d),r(false),a.current=false);},[e,t,m,s,d]),h=useCallback(()=>{r(false),a.current=false,R("");},[]),S=useCallback(E=>{if(!a.current||!m.startsWith("="))return false;let y=p.current?.selectionStart??m.length,b=insertReferenceAtCursor(m,y,E);return R(b.text),setTimeout(()=>{p.current&&(p.current.selectionStart=b.cursorPos,p.current.selectionEnd=b.cursorPos,p.current.focus());},0),true},[m]),x=i?m:c,w=useMemo(()=>extractFormulaReferences(x),[x]);return {cellRef:n,formulaText:i?m:c,isEditing:i,onInputChange:C,onCommit:g,onCancel:h,startEditing:f,referencedCells:w,isFormulaBarEditing:a,insertReference:S,inputRef:p}}function Fo({cellRef:o,formulaText:e,isEditing:t,onInputChange:n,onCommit:l,onCancel:u,startEditing:s,inputRef:d}){let i=useRef(null),r=d??i;return useEffect(()=>{t&&r.current&&r.current.focus();},[t,r]),jsxs("div",{style:FORMULA_BAR_STYLES.bar,role:"toolbar","aria-label":"Formula bar",children:[jsx("div",{style:FORMULA_BAR_STYLES.nameBox,"aria-label":"Active cell reference",children:o??"\u2014"}),jsx("div",{style:FORMULA_BAR_STYLES.fxLabel,"aria-hidden":"true",children:"fx"}),jsx("input",{ref:r,type:"text",style:FORMULA_BAR_STYLES.input,value:e,readOnly:!t,onChange:m=>n(m.target.value),onKeyDown:m=>handleFormulaBarKeyDown(m.key,()=>m.preventDefault(),l,u),onClick:()=>{t||s();},onDoubleClick:()=>{t||s();},"aria-label":"Formula input",spellCheck:false,autoComplete:"off"})]})}var Ai={display:"flex",alignItems:"center",borderTop:"1px solid var(--ogrid-border, #e0e0e0)",background:"var(--ogrid-header-bg, #f5f5f5)",minHeight:30,overflowX:"auto",overflowY:"hidden",gap:0,fontSize:12},Li={background:"none",border:"none",cursor:"pointer",padding:"4px 10px",fontSize:16,lineHeight:"22px",color:"var(--ogrid-fg-secondary, #666)",flexShrink:0},tl={background:"none",border:"none",borderBottom:"2px solid transparent",cursor:"pointer",padding:"4px 16px",fontSize:12,lineHeight:"22px",color:"var(--ogrid-fg, #242424)",whiteSpace:"nowrap",position:"relative"},Gi={...tl,fontWeight:600,borderBottomColor:"var(--ogrid-primary, #217346)",background:"var(--ogrid-bg, #fff)"};function Oo({sheets:o,activeSheet:e,onSheetChange:t,onSheetAdd:n}){let l=useCallback(u=>{let s=u.currentTarget.dataset.sheetId;s&&t(s);},[t]);return jsxs("div",{style:Ai,role:"tablist","aria-label":"Sheet tabs",children:[n&&jsx("button",{type:"button",style:Li,onClick:n,title:"Add sheet","aria-label":"Add sheet",children:"+"}),o.map(u=>{let s=u.id===e,d=s?Gi:tl,i=u.color?{...d,borderBottomColor:u.color}:d;return jsx("button",{type:"button",role:"tab","aria-selected":s,style:i,"data-sheet-id":u.id,onClick:l,children:u.name},u.id)})]})}function rl(o){let{controlledPage:e,controlledPageSize:t,defaultPageSize:n,onPageChange:l,onPageSizeChange:u}=o,[s,d]=useState(1),[i,r]=useState(n),m=e??s,R=t??i,a=useCallback(c=>{e===void 0&&d(c),l?.(c);},[e,l]),p=useCallback(c=>{t===void 0&&r(c),u?.(c),a(1);},[t,u,a]);return {page:m,pageSize:R,setPage:a,setPageSize:p}}function al(o){let{controlledSort:e,defaultSortField:t,defaultSortDirection:n,onSortChange:l,setPage:u}=o,[s,d]=useState({field:t,direction:n}),i=e??s,r=useCallback(R=>{e===void 0&&d(R),l?.(R),u(1);},[e,l,u]),m=useCallback((R,a)=>{r(computeNextSortState(i,R,a));},[i,r]);return {sort:i,setSort:r,handleSort:m,defaultSortField:t,defaultSortDirection:n}}function il(o,e){let t=useRef(o);return e(o,t.current)||(t.current=o),t.current}function zi(o,e){let t=Object.keys(o),n=Object.keys(e);if(t.length!==n.length)return false;for(let l=0;l<n.length;l++)if(o[n[l]]!==e[n[l]])return false;return true}var _i={},Wi={fetchFilterOptions:void 0};function ul(o){let{controlledFilters:e,onFiltersChange:t,setPage:n,columns:l,displayData:u,dataSource:s}=o,[d,i]=useState({}),r=e??d,m=useCallback(x=>{e===void 0&&i(x),t?.(x),n(1);},[e,t,n]),R=useCallback((x,w)=>{m(mergeFilter(r,x,w));},[r,m]),a=il(r,(x,w)=>zi(x,w)),p=useMemo(()=>Object.values(r).some(x=>x!==void 0),[r]),c=useMemo(()=>getMultiSelectFilterFields(l),[l]),f=s??Wi,{filterOptions:C,loadingOptions:g}=ln(f,c),h=s?.fetchFilterOptions!=null,S=useMemo(()=>h?C:deriveFilterOptionsFromData(u,l),[h,u,l,C]);return {filters:r,setFilters:m,handleFilterChange:R,stableFilters:a,hasActiveFilters:p,clientFilterOptions:S,loadingFilterOptions:s?.fetchFilterOptions?g:_i}}function cl(o){let{isServerSide:e,dataSource:t,displayData:n,columns:l,stableFilters:u,sort:s,page:d,pageSize:i,onError:r,onFirstDataRendered:m,workerSort:R}=o,a=!e,p=R===true||R==="auto"&&n.length>5e3,c=useMemo(()=>{if(!a||p)return null;let k=processClientSideData(n,l,u,s.field,s.direction),O=k.length,V=(d-1)*i;return {items:k.slice(V,V+i),totalCount:O}},[a,p,n,l,u,s.field,s.direction,d,i]),[f,C]=useState(null),g=useRef(0);useEffect(()=>{if(!a||!p){C(null);return}let k=++g.current;processClientSideDataAsync(n,l,u,s.field,s.direction).then(O=>{if(k!==g.current)return;let V=O.length,H=(d-1)*i,Y=O.slice(H,H+i);C({items:Y,totalCount:V});});},[a,p,n,l,u,s.field,s.direction,d,i]);let[h,S]=useState([]),[x,w]=useState(0),[E,y]=useState(true),b=useRef(0),[I,D]=useState(0),v=L(t),P=L(r);useEffect(()=>{if(!e||!v.current){e||y(false);return}let k=v.current,O=++b.current;y(true),k.fetchPage({page:d,pageSize:i,sort:{field:s.field,direction:s.direction},filters:u}).then(V=>{O===b.current&&(S(V.items),w(V.totalCount));}).catch(V=>{O===b.current&&(P.current?.(V),S([]),w(0));}).finally(()=>{O===b.current&&y(false);});},[e,d,i,s.field,s.direction,u,I,v,P]);let A=c??f,G=a&&A?A.items:h,z=a&&A?A.totalCount:x,W=L(m),X=useRef(false);return useEffect(()=>{!X.current&&G.length>0&&(X.current=true,W.current?.());},[G.length,W]),{displayItems:G,displayTotalCount:z,serverLoading:E,refreshData:()=>D(k=>k+1)}}var ml=["columns","filters"];function cn(o){let{config:e}=o,t=e!=null&&e!==false,n=useMemo(()=>{if(!t||e===true)return {panels:ml,position:"right",defaultPanel:null};let i=e;return {panels:i.panels??ml,position:i.position??"right",defaultPanel:i.defaultPanel??null}},[t,e]),[l,u]=useState(n.defaultPanel),s=useCallback(i=>{u(r=>r===i?null:i);},[]),d=useCallback(()=>{u(null);},[]);return {isEnabled:t,activePanel:l,setActivePanel:u,panels:n.panels,position:n.position,isOpen:l!==null,toggle:s,close:d}}var Qi=25,es={},ts={fontFamily:"monospace",fontSize:"12px",fontWeight:500,padding:"2px 8px",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:3,background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",minWidth:48,textAlign:"center",lineHeight:"20px",userSelect:"none"};function dn(o,e){let{columns:t,getRowId:n,data:l,dataSource:u,page:s,pageSize:d,sort:i,filters:r,visibleColumns:m,isLoading:R,onPageChange:a,onPageSizeChange:p,onSortChange:c,onFiltersChange:f,onVisibleColumnsChange:C,columnOrder:g,onColumnOrderChange:h,onColumnResized:S,onColumnPinned:x,defaultPageSize:w=Qi,defaultSortBy:E,defaultSortDirection:y="asc",toolbar:b,toolbarBelow:I,emptyState:D,entityLabelPlural:v="items",className:P,layoutMode:A="fill",suppressHorizontalScroll:G,editable:z,cellSelection:W,onCellValueChanged:X,onUndo:k,onRedo:O,canUndo:V,canRedo:H,rowSelection:Y="none",selectedRows:M,onSelectionChange:_,showRowNumbers:N,cellReferences:T,statusBar:B,pageSizeOptions:F,sideBar:J,stickyHeader:$,fullScreen:Z,onFirstDataRendered:K,onError:j,columnChooser:q,columnReorder:te,responsiveColumns:ae,virtualScroll:De,rowHeight:Ye,density:Ze="normal",workerSort:Ke,formulas:Ce,initialFormulas:st,onFormulaRecalc:Ae,formulaFunctions:ut,namedRanges:ct,sheets:dt,sheetDefs:Le,activeSheet:je,onSheetChange:he,onSheetAdd:Ge,"aria-label":Je,"aria-labelledby":Qe}=o,Xe=L(n),Se=useCallback(U=>Xe.current(U),[Xe]),et=L(h),mt=h!=null,ge=useMemo(()=>mt?U=>et.current?.(U):void 0,[mt,et]),zt=L(X),_t=X!=null,Wt=useMemo(()=>_t?U=>zt.current?.(U):void 0,[_t,zt]),pt=L(k),wt=k!=null,Kt=useMemo(()=>wt?()=>pt.current?.():void 0,[wt,pt]),Pt=L(O),Be=O!=null,jt=useMemo(()=>Be?()=>Pt.current?.():void 0,[Be,Pt]),Xt=q===false?"none":q==="sidebar"?"sidebar":"toolbar",ne=useMemo(()=>flattenColumns(t),[t]),Ee=u!=null,Tt=useRef(false);useEffect(()=>{validateColumns(ne);},[ne]);let Jn=E??ne[0]?.columnId??"",[Qn,qt]=useState([]),[Dt,eo]=useState(false),$t=l??Qn,to=R??Dt,oe=rl({controlledPage:s,controlledPageSize:d,defaultPageSize:w,onPageChange:a,onPageSizeChange:p}),ce=al({controlledSort:i,defaultSortField:Jn,defaultSortDirection:y,onSortChange:c,setPage:oe.setPage}),ee=ul({controlledFilters:r,onFiltersChange:f,setPage:oe.setPage,columns:ne,displayData:$t,dataSource:u}),de=cl({isServerSide:Ee,dataSource:u,displayData:$t,columns:ne,stableFilters:ee.stableFilters,sort:ce.sort,page:oe.page,pageSize:oe.pageSize,onError:j,onFirstDataRendered:K,workerSort:Ke});useEffect(()=>{let U=de.displayItems;!Tt.current&&U.length>0&&(Tt.current=true,validateRowIds(U,Se));},[de.displayItems,Se]);let[Et,Yt]=useState(()=>{let U=ne.filter(Q=>Q.defaultVisible!==false).map(Q=>Q.columnId);return new Set(U.length>0?U:ne.map(Q=>Q.columnId))}),Zt=useRef(ne.length);useEffect(()=>{let U=Zt.current;if(Zt.current=ne.length,m===void 0&&U===0&&ne.length>0&&Et.size===0){let Q=ne.filter(ie=>ie.defaultVisible!==false).map(ie=>ie.columnId);Yt(new Set(Q.length>0?Q:ne.map(ie=>ie.columnId)));}},[ne,m,Et.size]);let be=m??Et,Te=useCallback(U=>{m===void 0&&Yt(U),C?.(U);},[m,C]),qe=useCallback((U,Q)=>{let ie=new Set(be);Q?ie.add(U):ie.delete(U),Te(ie);},[be,Te]),[no,tt]=useState(new Set),nt=M??no,Jt=useCallback(U=>{M===void 0&&tt(new Set(U.selectedRowIds)),_?.(U);},[M,_]),[Ft,Qt]=useState({}),[Ot,en]=useState(()=>{let U={};for(let Q of flattenColumns(t))Q.pinned&&(U[Q.columnId]=Q.pinned);return U}),tn=useCallback((U,Q)=>{Qt(ie=>({...ie,[U]:Q})),S?.(U,Q);},[S]),ft=useCallback((U,Q)=>{en(ie=>{if(Q===null){let{[U]:lo,...ja}=ie;return ja}return {...ie,[U]:Q}}),x?.(U,Q);},[x]),gt=L(be),nn=L(ce.sort),Ct=L(g),Rt=L(Ft),Mt=L(Ot),ve=L(ee.filters),Ve=L(nt),$e=L(de.displayItems),mr=L(Se),on=L(ne);useImperativeHandle(e,()=>({setRowData:U=>{Ee||qt(U);},setLoading:eo,getColumnState:()=>({visibleColumns:Array.from(gt.current),sort:nn.current,columnOrder:Ct.current??void 0,columnWidths:Object.keys(Rt.current).length>0?Rt.current:void 0,filters:Object.keys(ve.current).length>0?ve.current:void 0,pinnedColumns:Object.keys(Mt.current).length>0?Mt.current:void 0}),applyColumnState:U=>{U.visibleColumns&&Te(new Set(U.visibleColumns)),U.sort&&ce.setSort(U.sort),U.columnOrder&&ge&&ge(U.columnOrder),U.columnWidths&&Qt(U.columnWidths),U.filters&&ee.setFilters(U.filters),U.pinnedColumns&&en(U.pinnedColumns);},setFilterModel:ee.setFilters,getSelectedRows:()=>Array.from(Ve.current),setSelectedRows:U=>{M===void 0&&tt(new Set(U));},selectAll:()=>{let U=$e.current,Q=new Set(U.map(ie=>mr.current(ie)));M===void 0&&tt(Q),_?.({selectedRowIds:Array.from(Q),selectedItems:U});},deselectAll:()=>{M===void 0&&tt(new Set),_?.({selectedRowIds:[],selectedItems:[]});},clearFilters:()=>ee.setFilters({}),clearSort:()=>ce.setSort({field:ce.defaultSortField,direction:ce.defaultSortDirection}),resetGridState:U=>{ee.setFilters({}),ce.setSort({field:ce.defaultSortField,direction:ce.defaultSortDirection}),U?.keepSelection||(M===void 0&&tt(new Set),_?.({selectedRowIds:[],selectedItems:[]}));},getDisplayedRows:()=>$e.current,refreshData:()=>{Ee&&de.refreshData();},getColumnOrder:()=>Ct.current??on.current.map(U=>U.columnId),setColumnOrder:U=>{ge?.(U);},scrollToRow:()=>{}}),[Ee,Te,ce,ee,ge,M,_,de,Ct,Rt,on,$e,Ve,ve,mr,Mt,nn,gt]);let pr=useMemo(()=>{if(!B)return;if(typeof B=="object")return B;let U=Ee?de.displayTotalCount:l?.length??0,Q=de.displayTotalCount;return {totalCount:U,filteredCount:ee.hasActiveFilters?Q:void 0,selectedCount:nt.size,suppressRowCount:true}},[B,Ee,l,de.displayTotalCount,ee.hasActiveFilters,nt.size]),Fe=cn({config:J}),rn=useMemo(()=>ne.map(U=>({columnId:U.columnId,name:U.name,required:U.required===true})),[ne]),fr=useMemo(()=>ne.filter(U=>U.filterable&&U.filterable.type).map(U=>({columnId:U.columnId,name:U.name,filterField:U.filterable?.filterField??U.columnId,filterType:U.filterable?.type})),[ne]),gr=useMemo(()=>Fe.isEnabled?{activePanel:Fe.activePanel,onPanelChange:Fe.setActivePanel,panels:Fe.panels,position:Fe.position,columns:rn,visibleColumns:be,onVisibilityChange:qe,onSetVisibleColumns:Te,filterableColumns:fr,filters:ee.filters,onFilterChange:ee.handleFilterChange,filterOptions:ee.clientFilterOptions}:null,[Fe.isEnabled,Fe.activePanel,Fe.setActivePanel,Fe.panels,Fe.position,rn,be,qe,Te,fr,ee.filters,ee.handleFilterChange,ee.clientFilterOptions]),[Cr,Ga]=useState(0),Ba=useCallback(U=>{Ga(Q=>Q+1),Ae?.(U);},[Ae]),re=an({formulas:Ce,items:de.displayItems,flatColumns:ne,initialFormulas:st,onFormulaRecalc:Ba,formulaFunctions:ut,namedRanges:ct,sheets:dt}),Rr=useCallback(()=>ee.setFilters({}),[ee]),hr=Ee&&de.serverLoading||to,Sr=N||T||Ce,br=!!(T||Ce),ht=!!T&&!Ce,vr=!!(T||Ce),[oo,Va]=useState(null),[yr,ro]=useState(null),Ir=useCallback(U=>{if(Va(U),U){let Q=U.match(/^([A-Z]+)(\d+)$/);ro(Q?{col:columnLetterToIndex(Q[1]),row:parseInt(Q[2],10)-1}:null);}else ro(null);},[]),Na=useCallback((U,Q)=>{let ie=$e.current,lo=on.current;if(!(Q<0||Q>=ie.length||U<0||U>=lo.length))return getCellValue(ie[Q],lo[U])},[$e,on]),le=sn({activeCol:yr?.col??null,activeRow:yr?.row??null,activeCellRef:oo,getFormula:re.enabled?re.getFormula:void 0,getRawValue:Na,setFormula:re.enabled?re.setFormula:void 0}),Ha=useMemo(()=>({items:de.displayItems,columns:t,getRowId:Se,sortBy:ce.sort.field,sortDirection:ce.sort.direction,onColumnSort:ce.handleSort,visibleColumns:be,columnOrder:g,onColumnOrderChange:ge,onColumnResized:tn,onColumnPinned:ft,pinnedColumns:Ot,initialColumnWidths:Ft,editable:z,cellSelection:W,onCellValueChanged:Wt,onUndo:Kt,onRedo:jt,canUndo:V,canRedo:H,rowSelection:Y,selectedRows:nt,onSelectionChange:Jt,showRowNumbers:Sr,showColumnLetters:br,showNameBox:ht,onActiveCellChange:vr?Ir:void 0,currentPage:oe.page,pageSize:oe.pageSize,statusBar:pr,isLoading:hr,filters:ee.filters,onFilterChange:ee.handleFilterChange,filterOptions:ee.clientFilterOptions,loadingFilterOptions:u?.fetchFilterOptions?ee.loadingFilterOptions:es,peopleSearch:u?.searchPeople,getUserByEmail:u?.getUserByEmail,layoutMode:A,suppressHorizontalScroll:G,stickyHeader:$??true,columnReorder:te,responsiveColumns:ae,virtualScroll:De,rowHeight:Ye,density:Ze,"aria-label":Je,"aria-labelledby":Qe,emptyState:{hasActiveFilters:ee.hasActiveFilters,onClearAll:Rr,message:D?.message,render:D?.render},formulas:Ce,getFormulaValue:re.enabled?re.getFormulaValue:void 0,hasFormula:re.enabled?re.hasFormula:void 0,getFormula:re.enabled?re.getFormula:void 0,setFormula:re.enabled?re.setFormula:void 0,onFormulaCellChanged:re.enabled?re.onCellChanged:void 0,getPrecedents:re.enabled?re.getPrecedents:void 0,getDependents:re.enabled?re.getDependents:void 0,getAuditTrail:re.enabled?re.getAuditTrail:void 0,formulaVersion:Cr,formulaReferences:le.referencedCells.length>0?le.referencedCells:void 0,onFormulaInsertReference:le.insertReference}),[de.displayItems,t,Se,ce.sort.field,ce.sort.direction,ce.handleSort,be,g,ge,tn,ft,Ot,Ft,z,W,Wt,Kt,jt,V,H,Y,nt,Jt,Sr,br,ht,vr,Ir,oe.page,oe.pageSize,pr,hr,ee.filters,ee.handleFilterChange,ee.clientFilterOptions,u,ee.loadingFilterOptions,A,G,$,te,ae,De,Ye,Ze,Je,Qe,ee.hasActiveFilters,Rr,D,Ce,re,Cr,le.referencedCells,le.insertReference]),za=useMemo(()=>({page:oe.page,pageSize:oe.pageSize,displayTotalCount:de.displayTotalCount,setPage:oe.setPage,setPageSize:oe.setPageSize,pageSizeOptions:F,entityLabelPlural:v}),[oe.page,oe.pageSize,de.displayTotalCount,oe.setPage,oe.setPageSize,F,v]),_a=useMemo(()=>({columns:rn,visibleColumns:be,onVisibilityChange:qe,onSetVisibleColumns:Te,placement:Xt}),[rn,be,qe,Te,Xt]),xr=useMemo(()=>ht?Pe.createElement("div",{style:ts,"aria-label":"Active cell reference"},oo??"\u2014"):null,[ht,oo]),wr=useMemo(()=>ht?Pe.createElement(Pe.Fragment,null,xr,b):b,[ht,xr,b]),Pr=useMemo(()=>{if(Ce)return Pe.createElement(Fo,{cellRef:le.cellRef,formulaText:le.formulaText,isEditing:le.isEditing,onInputChange:le.onInputChange,onCommit:le.onCommit,onCancel:le.onCancel,startEditing:le.startEditing,inputRef:le.inputRef})},[Ce,le.cellRef,le.formulaText,le.isEditing,le.onInputChange,le.onCommit,le.onCancel,le.startEditing,le.inputRef]),Tr=useMemo(()=>{if(!(!Le||Le.length===0||!je||!he))return Pe.createElement(Oo,{sheets:Le,activeSheet:je,onSheetChange:he,onSheetAdd:Ge})},[Le,je,he,Ge]),Wa=useMemo(()=>({toolbar:wr,toolbarBelow:I,className:P,emptyState:D,sideBarProps:gr,fullScreen:Z,formulaBar:Pr,sheetTabs:Tr}),[wr,I,P,D,gr,Z,Pr,Tr]),Ka=useMemo(()=>({hasActiveFilters:ee.hasActiveFilters,setFilters:ee.setFilters}),[ee.hasActiveFilters,ee.setFilters]);return {dataGridProps:Ha,pagination:za,columnChooser:_a,layout:Wa,filters:Ka}}function mn(o,e){let[t,n]=useState(null),l=useRef(t);l.current=t;let u=useCallback(d=>{let i=l.current;i!==d&&(i&&d&&i.rowIndex===d.rowIndex&&i.columnIndex===d.columnIndex||n(d));},[]),s=useRef(0);return useLayoutEffect(()=>{if(t==null||o?.current==null||e!=null)return;let{rowIndex:d,columnIndex:i}=t,r=`[data-row-index="${d}"][data-col-index="${i}"]`,m=o.current.querySelector(r);m&&document.activeElement!==m&&typeof m.focus=="function"&&m.focus({preventScroll:true});},[t,e,o]),useEffect(()=>{t==null||o?.current==null||e!=null||(cancelAnimationFrame(s.current),s.current=requestAnimationFrame(()=>{let d=o?.current;if(!d)return;let{rowIndex:i,columnIndex:r}=t,m=`[data-row-index="${i}"][data-col-index="${r}"]`,R=d.querySelector(m);if(R){let a=d.querySelector("thead"),p=a?a.getBoundingClientRect().height:0,c=d.getBoundingClientRect(),f=R.getBoundingClientRect(),C=c.top+p;f.top<C?d.scrollTop-=C-f.top:f.bottom>c.bottom&&(d.scrollTop+=f.bottom-c.bottom),f.left<c.left?d.scrollLeft-=c.left-f.left:f.right>c.right&&(d.scrollLeft+=f.right-c.right);}}));},[t,e,o]),useEffect(()=>()=>cancelAnimationFrame(s.current),[]),{activeCell:t,setActiveCell:u}}function pn(){let[o,e]=useState(null),[t,n]=useState(void 0);return {editingCell:o,setEditingCell:e,pendingEditorValue:t,setPendingEditorValue:n}}function fn(){let[o,e]=useState(null),t=useCallback(l=>{l.preventDefault?.(),e({x:l.clientX,y:l.clientY});},[]),n=useCallback(()=>{e(null);},[]);return {contextMenuPosition:o,setContextMenuPosition:e,handleCellContextMenu:t,closeContextMenu:n}}var Go="data-drag-range",Gt="data-drag-anchor",fe=40,is=16;function gn(o){let{colOffset:e,rowCount:t,visibleColCount:n,setActiveCell:l,wrapperRef:u}=o,s=L(e),[d,i]=useState(null),r=useRef(false),[m,R]=useState(false),a=useRef(false),p=useRef(null),c=useRef(0),f=useRef(null),C=useRef(null),g=useRef(d);g.current=d;let h=useCallback(y=>{rangesEqual(g.current,y)||i(y);},[]),S=useCallback((y,b,I)=>{if(y.button!==0)return;let D=s.current;if(I<D)return;y.preventDefault();let v=I-D,P=g.current;if(y.shiftKey&&P!=null)h(normalizeSelectionRange({startRow:P.startRow,startCol:P.startCol,endRow:b,endCol:v})),l({rowIndex:b,columnIndex:I});else {p.current={row:b,col:v},a.current=false;let A={startRow:b,startCol:v,endRow:b,endCol:v};h(A),f.current=A,l({rowIndex:b,columnIndex:I}),r.current=true,setTimeout(()=>E.current?.(A),0);}},[l,s,h]),x=useCallback(()=>{t===0||n===0||(h({startRow:0,startCol:0,endRow:t-1,endCol:n-1}),l({rowIndex:0,columnIndex:s.current}));},[t,n,l,s,h]),w=useRef(null),E=useRef(null);return useEffect(()=>{let y=new Set,b=null,I=null,D=null,v=(M,_,N,T,B,F,J,$)=>{M.hasAttribute(Go)||M.setAttribute(Go,""),$&&_===$.row&&N===$.col?M.hasAttribute(Gt)||M.setAttribute(Gt,""):M.hasAttribute(Gt)&&M.removeAttribute(Gt),y.add(M);},P=M=>{M.removeAttribute(Go),M.removeAttribute(Gt);},A=(M,_,N,T,B)=>{let F=b?.get(`${M},${N+B}`),J=b?.get(`${_},${T+B}`);if(!F||!J)return;let $=F.closest("td"),Z=J.closest("td");if(!$||!Z||!D&&(D=F.closest("table")?.parentElement,!D))return;I||(I=document.createElement("div"),I.style.position="absolute",I.style.border="2px solid var(--ogrid-selection, #217346)",I.style.pointerEvents="none",I.style.zIndex="4",I.style.boxSizing="border-box",D.appendChild(I));let K=D.getBoundingClientRect(),j=$.getBoundingClientRect(),q=Z.getBoundingClientRect();I.style.top=`${Math.round(j.top-K.top)}px`,I.style.left=`${Math.round(j.left-K.left)}px`,I.style.width=`${Math.round(q.right-j.left)}px`,I.style.height=`${Math.round(q.bottom-j.top)}px`,I.style.display="block";},G=()=>{I&&(I.style.display="none");},z=()=>{I?.remove(),I=null,D=null;},W=M=>{if(!u.current||!r.current)return;let N=Math.min(M.startRow,M.endRow),T=Math.max(M.startRow,M.endRow),B=Math.min(M.startCol,M.endCol),F=Math.max(M.startCol,M.endCol),J=p.current,$=s.current;for(let K of y){let j=parseInt(K.getAttribute("data-row-index")??"",10),q=parseInt(K.getAttribute("data-col-index")??"",10)-$;j>=N&&j<=T&&q>=B&&q<=F||(P(K),y.delete(K));}b||(b=buildCellIndex(u.current));let Z=false;for(let K=N;K<=T;K++)for(let j=B;j<=F;j++){let q=`${K},${j+$}`,te=b?.get(q);te&&!te.isConnected&&!Z&&(Z=true,b=buildCellIndex(u.current),te=b?.get(q)),te&&te.isConnected&&v(te,K,j,N,T,B,F,J);}A(N,T,B,F,$);};E.current=W;let X=()=>{for(let M of y)P(M);y.clear(),b=null,G();},k=(M,_)=>{if(!p.current)return null;let T=document.elementFromPoint(M,_)?.closest?.("[data-row-index][data-col-index]");if(!T)return null;let B=parseInt(T.getAttribute("data-row-index")??"",10),F=parseInt(T.getAttribute("data-col-index")??"",10),J=s.current;if(Number.isNaN(B)||Number.isNaN(F)||F<J)return null;let $=F-J,Z=p.current;return normalizeSelectionRange({startRow:Z.row,startCol:Z.col,endRow:B,endCol:$})},O=()=>{let M=u.current,_=w.current;if(!M||!_||!r.current){V();return}let N=M.getBoundingClientRect(),T=0,B=0;if(_.cy<N.top+fe?B=-computeAutoScrollSpeed(N.top+fe-_.cy):_.cy>N.bottom-fe&&(B=computeAutoScrollSpeed(_.cy-(N.bottom-fe))),_.cx<N.left+fe?T=-computeAutoScrollSpeed(N.left+fe-_.cx):_.cx>N.right-fe&&(T=computeAutoScrollSpeed(_.cx-(N.right-fe))),T===0&&B===0){V();return}C.current||(C.current=setInterval(()=>{let F=u.current,J=w.current;if(!F||!J||!r.current){V();return}let $=F.getBoundingClientRect(),Z=0,K=0;if(J.cy<$.top+fe?K=-computeAutoScrollSpeed($.top+fe-J.cy):J.cy>$.bottom-fe&&(K=computeAutoScrollSpeed(J.cy-($.bottom-fe))),J.cx<$.left+fe?Z=-computeAutoScrollSpeed($.left+fe-J.cx):J.cx>$.right-fe&&(Z=computeAutoScrollSpeed(J.cx-($.right-fe))),Z===0&&K===0){V();return}F.scrollTop+=K,F.scrollLeft+=Z;let j=k(J.cx,J.cy);j&&(f.current=j,W(j));},is));},V=()=>{C.current&&(clearInterval(C.current),C.current=null);},H=M=>{!r.current||!p.current||(a.current||(a.current=true,R(true),b=buildCellIndex(u.current)),w.current={cx:M.clientX,cy:M.clientY},O(),c.current&&cancelAnimationFrame(c.current),c.current=requestAnimationFrame(()=>{c.current=0;let _=w.current;if(!_)return;let N=k(_.cx,_.cy);if(!N)return;let T=f.current;T&&T.startRow===N.startRow&&T.startCol===N.startCol&&T.endRow===N.endRow&&T.endCol===N.endCol||(f.current=N,W(N));}));},Y=()=>{if(!r.current)return;V(),c.current&&(cancelAnimationFrame(c.current),c.current=0),r.current=false;let M=a.current;if(M){let _=w.current;if(_){let T=k(_.cx,_.cy);T&&(f.current=T);}let N=f.current;if(N){h(N);let T=p.current;T&&l({rowIndex:T.row,columnIndex:T.col+s.current});}}X(),f.current=null,w.current=null,p.current=null,M&&R(false);};return window.addEventListener("pointermove",H,true),window.addEventListener("pointerup",Y,true),()=>{window.removeEventListener("pointermove",H,true),window.removeEventListener("pointerup",Y,true),c.current&&cancelAnimationFrame(c.current),V(),z();}},[l,s,h,u]),{selectionRange:d,setSelectionRange:h,handleCellMouseDown:S,handleSelectAllCells:x,isDragging:m}}function Cn(o){let{colOffset:e,beginBatch:t,endBatch:n}=o,l=L(o.items),u=L(o.visibleCols),s=L(o.selectionRange),d=L(o.activeCell),i=L(o.editable),r=L(o.onCellValueChanged),m=L(o.formulas),R=L(o.flatColumns),a=L(o.getFormula),p=L(o.hasFormula),c=L(o.setFormula),f=useRef(null),[C,g]=useState(null),[h,S]=useState(null),x=useRef(null),w=useRef(true);useEffect(()=>()=>{w.current=false;},[]);let E=useCallback(()=>{let v=s.current,P=d.current;return v??(P!=null?{startRow:P.rowIndex,startCol:P.columnIndex-e,endRow:P.rowIndex,endCol:P.columnIndex-e}:null)},[e,s,d]),y=useCallback(()=>{let v=E();if(v==null)return;let P=normalizeSelectionRange(v),A=m.current&&R.current?{colOffset:e,flatColumns:R.current,getFormula:a.current,hasFormula:p.current}:void 0,G=formatSelectionAsTsv(l.current,u.current,P,A);x.current=G,S(P),navigator.clipboard.writeText(G).catch(()=>{});},[E,l,u,m,R,a,p,e]),b=useCallback(()=>{if(i.current===false)return;let v=E();if(v==null||r.current==null)return;let P=normalizeSelectionRange(v);f.current=P,g(P),S(null),y(),S(null);},[E,y,i,r]),I=useCallback(async()=>{if(i.current===false)return;let v=r.current;if(v==null)return;let P;try{P=await navigator.clipboard.readText();}catch{P="";}if(!w.current||(!P.trim()&&x.current!=null&&(P=x.current),!P.trim()))return;let A=E(),G=A?A.startRow:0,z=A?A.startCol:0,W=l.current,X=u.current,k=parseTsvClipboard(P),O=m.current&&R.current?{colOffset:e,flatColumns:R.current,setFormula:c.current}:void 0;t?.();let V=applyPastedValues(k,G,z,W,X,O);for(let H of V)v(H);if(f.current){let H=applyCutClear(f.current,W,X);for(let Y of H)v(Y);f.current=null,g(null);}n?.(),S(null);},[E,l,u,i,r,t,n,m,R,c,e]),D=useCallback(()=>{S(null),g(null),f.current=null;},[]);return {handleCopy:y,handleCut:b,handlePaste:I,cutRange:C,copyRange:h,clearClipboardRanges:D}}function Rn(o){let{items:e,getRowId:t,rowSelection:n,controlledSelectedRows:l,onSelectionChange:u}=o,[s,d]=useState(new Set),i=useRef(-1),r=useMemo(()=>l!=null?l instanceof Set?l:new Set(l):s,[l,s]),m=useCallback(g=>{l===void 0&&d(g),u?.({selectedRowIds:Array.from(g),selectedItems:e.filter(h=>g.has(t(h)))});},[l,u,e,t]),R=L(r),a=L(e),p=useCallback((g,h,S,x)=>{if(n==="single"){m(h?new Set([g]):new Set),i.current=S;return}let w=a.current,E;x&&i.current>=0&&i.current!==S?E=applyRangeRowSelection(i.current,S,h,w,t,R.current):(E=new Set(R.current),h?E.add(g):E.delete(g)),i.current=S,m(E);},[n,t,m,a,R]),c=useCallback(g=>{m(g?new Set(e.map(h=>t(h))):new Set);},[e,t,m]),{allSelected:f,someSelected:C}=useMemo(()=>computeRowSelectionState(r,e,t),[e,r,t]);return {selectedRowIds:r,updateSelection:m,handleRowCheckboxChange:p,handleSelectAll:c,allSelected:f,someSelected:C}}function hn(o){let e=useRef(o);return e.current=o,{handleGridKeyDown:useCallback(n=>{let{data:l,state:u,handlers:s,features:d}=e.current,{items:i,visibleCols:r,colOffset:m,hasCheckboxCol:R,visibleColumnCount:a,getRowId:p}=l,{activeCell:c,selectionRange:f,editingCell:C,selectedRowIds:g}=u,{setActiveCell:h,setSelectionRange:S,setEditingCell:x,handleRowCheckboxChange:w,handleCopy:E,handleCut:y,handlePaste:b,setContextMenu:I,onUndo:D,onRedo:v,clearClipboardRanges:P}=s,{editable:A,onCellValueChanged:G,rowSelection:z,wrapperRef:W,onKeyDown:X,fillDown:k}=d;if(X&&(X(n),n.defaultPrevented))return;let O=i.length-1,V=a-1+m;if(i.length===0)return;if(c===null){["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Enter","Home","End","PageDown","PageUp"].includes(n.key)&&(h({rowIndex:0,columnIndex:m}),n.preventDefault());return}let{rowIndex:H,columnIndex:Y}=c,M=Y-m,_=n.shiftKey,N=(T,B)=>{if(T<0||T>=i.length||B<0||B>=r.length)return true;let F=getCellValue(i[T],r[B]);return F==null||F===""};switch(n.key){case "c":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),E();}break;case "x":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),y();}break;case "v":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),b();}break;case "ArrowDown":case "ArrowUp":case "ArrowRight":case "ArrowLeft":{if(C!=null)break;n.preventDefault();let{newRowIndex:T,newColumnIndex:B,newRange:F}=computeArrowNavigation({direction:n.key,rowIndex:H,columnIndex:Y,dataColIndex:M,colOffset:m,maxRowIndex:O,maxColIndex:V,visibleColCount:r.length,isCtrl:n.ctrlKey||n.metaKey,isShift:_,selectionRange:f,isEmptyAt:N});S(F),h({rowIndex:T,columnIndex:B});break}case "Tab":{n.preventDefault();let{rowIndex:T,columnIndex:B}=computeTabNavigation(H,Y,O,V,m,n.shiftKey),F=B-m;S({startRow:T,startCol:F,endRow:T,endCol:F}),h({rowIndex:T,columnIndex:B});break}case "Home":{n.preventDefault();let T=n.ctrlKey?0:H;S({startRow:T,startCol:0,endRow:T,endCol:0}),h({rowIndex:T,columnIndex:m});break}case "End":{n.preventDefault();let T=n.ctrlKey?O:H;S({startRow:T,startCol:a-1,endRow:T,endCol:a-1}),h({rowIndex:T,columnIndex:V});break}case "PageDown":case "PageUp":{n.preventDefault();let T=W.current,B=10,F=36;if(T){let Z=T.querySelector("tbody tr");Z&&Z.offsetHeight>0&&(F=Z.offsetHeight,B=Math.max(1,Math.floor(T.clientHeight/F)));}let J=n.key==="PageDown"?1:-1,$=Math.max(0,Math.min(H+J*B,O));S(_?{startRow:f?.startRow??H,startCol:f?.startCol??M,endRow:$,endCol:f?.endCol??M}:{startRow:$,startCol:M,endRow:$,endCol:M}),h({rowIndex:$,columnIndex:Y}),T&&(T.scrollTop=getScrollTopForRow($,F,T.clientHeight,"center"));break}case "Enter":case "F2":{if(n.preventDefault(),M>=0&&M<r.length){let T=r[M],B=i[H];if(B&&T){let F=T.editable===true||typeof T.editable=="function"&&T.editable(B);A!==false&&F&&G!=null&&x({rowId:p(B),columnId:T.columnId});}}break}case "Escape":n.preventDefault(),C!=null?x(null):(P?.(),h(null),S(null));break;case " ":if(z!=="none"&&Y===0&&R){n.preventDefault();let T=i[H];if(T){let B=p(T),F=g.has(B);w(B,!F,H,n.shiftKey);}}break;case "z":(n.ctrlKey||n.metaKey)&&C==null&&(n.shiftKey&&v?(n.preventDefault(),v()):!n.shiftKey&&D&&(n.preventDefault(),D()));break;case "y":(n.ctrlKey||n.metaKey)&&C==null&&v&&(n.preventDefault(),v());break;case "a":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),i.length>0&&a>0&&(S({startRow:0,startCol:0,endRow:i.length-1,endCol:a-1}),h({rowIndex:0,columnIndex:m}));}break;case "d":if(n.ctrlKey||n.metaKey){if(C!=null)break;A!==false&&k&&(n.preventDefault(),k());}break;case "Delete":case "Backspace":{if(C!=null||A===false||G==null)break;let T=f??(c!=null?{startRow:c.rowIndex,startCol:c.columnIndex-m,endRow:c.rowIndex,endCol:c.columnIndex-m}:null);if(T==null)break;n.preventDefault();let B=applyCellDeletion(T,i,r);for(let F of B)G(F);break}case "F10":if(n.shiftKey)if(n.preventDefault(),c!=null&&W.current){let T=`[data-row-index="${c.rowIndex}"][data-col-index="${c.columnIndex}"]`,B=W.current.querySelector(T);if(B){let F=B.getBoundingClientRect();I({x:F.left+F.width/2,y:F.top+F.height/2});}else I({x:100,y:100});}else I({x:100,y:100});break;}},[])}}function Sn(o){let{onCellValueChanged:e,maxUndoDepth:t=100}=o,n=L(e),l=useRef(null);l.current===null&&(l.current=new UndoRedoStack(t));let[u,s]=useState(0),[d,i]=useState(0),r=useCallback(()=>{let f=l.current;if(!f)throw new Error("UndoRedoStack not initialized");return f},[]),m=useCallback(f=>{if(!n.current)return;let C=r();C.record(f),C.isBatching||(s(C.historyLength),i(C.redoLength)),n.current(f);},[r,n]),R=useCallback(()=>{r().beginBatch();},[r]),a=useCallback(()=>{let f=r();f.endBatch(),s(f.historyLength),i(f.redoLength);},[r]),p=useCallback(()=>{if(!n.current)return;let f=r(),C=f.undo();if(C){s(f.historyLength),i(f.redoLength);for(let g=C.length-1;g>=0;g--){let h=C[g];n.current({...h,oldValue:h.newValue,newValue:h.oldValue});}}},[r,n]),c=useCallback(()=>{if(!n.current)return;let f=r(),C=f.redo();if(C){s(f.historyLength),i(f.redoLength);for(let g of C)n.current(g);}},[r,n]);return {onCellValueChanged:e?m:void 0,undo:p,redo:c,canUndo:u>0,canRedo:d>0,beginBatch:R,endBatch:a,maxUndoDepth:t}}function bn(o,e){let[t,n]=useState(o);return useEffect(()=>{let l=setTimeout(()=>{n(o);},e);return ()=>clearTimeout(l)},[o,e]),t}var yn="data-drag-range";function In(o){let{items:e,visibleCols:t,editable:n,onCellValueChanged:l,selectionRange:u,setSelectionRange:s,setActiveCell:d,colOffset:i,wrapperRef:r,beginBatch:m,endBatch:R,formulaOptions:a}=o,p=L(l),[c,f]=useState(null),C=useRef({endRow:0,endCol:0}),g=useRef(0),h=useRef(null),S=L(i),x=L(e),w=L(t),E=L(a);useEffect(()=>{if(!c||n===false||!p.current||!r.current)return;C.current={endRow:c.startRow,endCol:c.startCol},h.current=null;let D=new Set,v=buildCellIndex(r.current),P=k=>{if(!r.current)return;let V=Math.min(k.startRow,k.endRow),H=Math.max(k.startRow,k.endRow),Y=Math.min(k.startCol,k.endCol),M=Math.max(k.startCol,k.endCol),_=S.current;for(let N of D){let T=parseInt(N.getAttribute("data-row-index")??"",10),B=parseInt(N.getAttribute("data-col-index")??"",10)-_;T>=V&&T<=H&&B>=Y&&B<=M||(N.removeAttribute(yn),D.delete(N));}for(let N=V;N<=H;N++)for(let T=Y;T<=M;T++){let B=`${N},${T+_}`,F=v?.get(B);F&&!F.isConnected&&(v=buildCellIndex(r.current),F=v.get(B)),F&&(F.hasAttribute(yn)||F.setAttribute(yn,""),D.add(F));}},A=()=>{for(let k of D)k.removeAttribute(yn);D.clear();},G=null,z=(k,O)=>{let H=document.elementFromPoint(k,O)?.closest?.("[data-row-index][data-col-index]");if(!H||!r.current?.contains(H))return null;let Y=parseInt(H.getAttribute("data-row-index")??"",10),M=parseInt(H.getAttribute("data-col-index")??"",10);if(Number.isNaN(Y)||Number.isNaN(M)||M<S.current)return null;let _=M-S.current;return normalizeSelectionRange({startRow:c.startRow,startCol:c.startCol,endRow:Y,endCol:_})},W=k=>{G={cx:k.clientX,cy:k.clientY},g.current&&cancelAnimationFrame(g.current),g.current=requestAnimationFrame(()=>{if(g.current=0,!G)return;let O=z(G.cx,G.cy);if(!O)return;let V=h.current;V&&V.startRow===O.startRow&&V.startCol===O.startCol&&V.endRow===O.endRow&&V.endCol===O.endCol||(h.current=O,C.current={endRow:O.endRow,endCol:O.endCol},P(O));});},X=()=>{if(g.current&&(cancelAnimationFrame(g.current),g.current=0),G){let H=z(G.cx,G.cy);H&&(h.current=H,C.current={endRow:H.endRow,endCol:H.endCol});}A();let k=C.current,O=normalizeSelectionRange({startRow:c.startRow,startCol:c.startCol,endRow:k.endRow,endCol:k.endCol});s(O),d({rowIndex:c.startRow,columnIndex:c.startCol+S.current});let V=applyFillValues(O,c.startRow,c.startCol,e,t,E.current);if(V.length>0){m?.();for(let H of V)p.current?.(H);R?.();}f(null),h.current=null;};return window.addEventListener("pointermove",W,true),window.addEventListener("pointerup",X,true),()=>{window.removeEventListener("pointermove",W,true),window.removeEventListener("pointerup",X,true),g.current&&cancelAnimationFrame(g.current);}},[c,n,e,t,s,d,m,R,S,r,p,E]);let y=useRef(u);y.current=u;let b=useCallback(D=>{D.preventDefault(),D.stopPropagation();let v=y.current;v&&f({startRow:v.startRow,startCol:v.startCol});},[]),I=useCallback(()=>{let D=y.current;if(!D||n===false||!p.current)return;let v=normalizeSelectionRange(D),P=applyFillValues(v,v.startRow,v.startCol,x.current,w.current,E.current);if(P.length>0){m?.();for(let A of P)p.current(A);R?.();}},[n,m,R,p,x,w,E]);return {fillDrag:c,setFillDrag:f,handleFillHandleMouseDown:b,fillDown:I}}function xn(o){let{wrapperRef:e,visibleCols:t,flatColumns:n,hasCheckboxCol:l,initialColumnWidths:u,onColumnResized:s}=o,[d,i]=useState(0);useEffect(()=>{let p=e.current;if(!p)return;let c=()=>{let C=p.getBoundingClientRect(),g=window.getComputedStyle(p),h=(parseFloat(g.borderLeftWidth||"0")||0)+(parseFloat(g.borderRightWidth||"0")||0),S=Math.round(Math.max(0,C.width-h));i(x=>x===S?x:S);},f=new ResizeObserver(c);return f.observe(p),c(),()=>f.disconnect()},[e]);let[r,m]=useState(()=>{if(!u)return {};let p={};for(let[c,f]of Object.entries(u))p[c]={widthPx:f};return p}),R=useMemo(()=>{let p=l?CHECKBOX_COLUMN_WIDTH:0;return t.reduce((c,f)=>c+(f.minWidth??DEFAULT_MIN_COLUMN_WIDTH)+CELL_PADDING,p)},[t,l]);useEffect(()=>{let p=new Set(n.map(c=>c.columnId));m(c=>{let f=Object.fromEntries(Object.entries(c).filter(([C])=>p.has(C)));return Object.keys(f).length!==Object.keys(c).length?f:c});},[n]);let a=useMemo(()=>{let p=l?CHECKBOX_COLUMN_WIDTH:0;return t.reduce((c,f)=>{let C=r[f.columnId],g=C?C.widthPx:f.idealWidth??f.defaultWidth??f.minWidth??DEFAULT_MIN_COLUMN_WIDTH;return c+Math.max(f.minWidth??DEFAULT_MIN_COLUMN_WIDTH,g)+CELL_PADDING},p)},[t,r,l]);return {containerWidth:d,minTableWidth:R,desiredTableWidth:a,columnSizingOverrides:r,setColumnSizingOverrides:m,onColumnResized:s}}function Dl(o){let{columns:e,pinnedColumns:t,onColumnPinned:n}=o,[l,u]=useState(()=>{let a={};for(let p of e)p.pinned&&(a[p.columnId]=p.pinned);return a}),s=t??l,d=useCallback((a,p)=>{let c={...s,[a]:p};t||u(c),n?.(a,p);},[s,t,n]),i=useCallback(a=>{let{[a]:p,...c}=s;t||u(c),n?.(a,null);},[s,t,n]),r=useCallback(a=>s[a],[s]),m=useCallback((a,p,c,f,C)=>{let g={},h=f?C:0;for(let S of a)s[S.columnId]==="left"&&(g[S.columnId]=h,h+=p[S.columnId]??c);return g},[s]),R=useCallback((a,p,c)=>{let f={},C=0;for(let g=a.length-1;g>=0;g--){let h=a[g];s[h.columnId]==="right"&&(f[h.columnId]=C,C+=p[h.columnId]??c);}return f},[s]);return {pinnedColumns:s,pinColumn:d,unpinColumn:i,isPinned:r,computeLeftOffsets:m,computeRightOffsets:R}}function zo(o){let{pinnedColumns:e,onPinColumn:t,onUnpinColumn:n,sortBy:l,sortDirection:u,onColumnSort:s,onColumnResized:d,onAutosizeColumn:i,columns:r}=o,[m,R]=useState(false),[a,p]=useState(null),[c,f]=useState(null),C=useCallback((k,O)=>{p(k),f(O),R(true);},[]),g=useCallback(()=>{R(false),p(null),f(null);},[]),h=a?e[a]:void 0,S=h!=="left",x=h!=="right",w=!!h,E=r.find(k=>k.columnId===a),y=a===l?u:null,b=E?.sortable!==false,I=E?.resizable!==false,D=useCallback(()=>{a&&S&&(t(a,"left"),g());},[a,S,t,g]),v=useCallback(()=>{a&&x&&(t(a,"right"),g());},[a,x,t,g]),P=useCallback(()=>{a&&w&&(n(a),g());},[a,w,n,g]),A=useCallback(()=>{a&&b&&(s(a,"asc"),g());},[a,b,s,g]),G=useCallback(()=>{a&&b&&(s(a,"desc"),g());},[a,b,s,g]),z=useCallback(()=>{a&&b&&(s(a,null),g());},[a,b,s,g]),W=useCallback(()=>{let k=i??d;if(!a||!k||!I)return;let O=r.find(V=>V.columnId===a);k(a,measureColumnContentWidth(a,O?.minWidth)),g();},[a,i,d,I,r,g]),X=useCallback(()=>{let k=i??d;k&&(r.forEach(O=>{O.resizable!==false&&k(O.columnId,measureColumnContentWidth(O.columnId,O.minWidth));}),g());},[r,i,d,g]);return {isOpen:m,openForColumn:a,anchorElement:c,open:C,close:g,handlePinLeft:D,handlePinRight:v,handleUnpin:P,handleSortAsc:A,handleSortDesc:G,handleClearSort:z,handleAutosizeThis:W,handleAutosizeAll:X,canPinLeft:S,canPinRight:x,canUnpin:w,currentSort:y,isSortable:b,isResizable:I}}function El(o){return {isOpen:o.isOpen,anchorElement:o.anchorElement,onClose:o.close,onPinLeft:o.handlePinLeft,onPinRight:o.handlePinRight,onUnpin:o.handleUnpin,onSortAsc:o.handleSortAsc,onSortDesc:o.handleSortDesc,onClearSort:o.handleClearSort,onAutosizeThis:o.handleAutosizeThis,onAutosizeAll:o.handleAutosizeAll,canPinLeft:o.canPinLeft,canPinRight:o.canPinRight,canUnpin:o.canUnpin,currentSort:o.currentSort,isSortable:o.isSortable,isResizable:o.isResizable}}function Ol(o){let{columns:e,items:t,getRowId:n,visibleColumns:l,columnOrder:u,rowSelection:s="none",showRowNumbers:d,initialColumnWidths:i,onColumnResized:r,onAutosizeColumn:m,pinnedColumns:R,onColumnPinned:a,sortBy:p,sortDirection:c,onColumnSort:f,responsiveColumns:C,wrapperRef:g}=o,h=useMemo(()=>flattenColumns(e),[e]),S=useMemo(()=>!R||Object.keys(R).length===0?h:h.map(K=>{let j=R[K.columnId];return j&&K.pinned!==j?{...K,pinned:j}:K}),[h,R]),x=useMemo(()=>resolveResponsiveConfig(C),[C]),w=useMemo(()=>{let K=l?S.filter(q=>l.has(q.columnId)):S;if(!u?.length)return K;let j=new Map;for(let q=0;q<u.length;q++)j.set(u[q],q);return [...K].sort((q,te)=>{let ae=j.get(q.columnId)??-1,De=j.get(te.columnId)??-1;return ae===-1&&De===-1?0:ae===-1?1:De===-1?-1:ae-De})},[S,l,u]),E=s==="multiple",y=!!d,b=useMemo(()=>{let K=new Map;return t.forEach((j,q)=>K.set(n(j),q)),K},[t,n]),{containerWidth:I,minTableWidth:D,desiredTableWidth:v,columnSizingOverrides:P,setColumnSizingOverrides:A}=xn({wrapperRef:g,visibleCols:w,flatColumns:S,hasCheckboxCol:E,initialColumnWidths:i,onColumnResized:r}),G=useMemo(()=>applyResponsiveHiding(w,I,x),[w,I,x]),z=G.length,W=(E?1:0)+(y?1:0),X=z+W,k=W,O=Dl({columns:S,pinnedColumns:R,onColumnPinned:a}),V=useMemo(()=>{let K=Object.entries(P);return K.length===0?"":K.map(([j,q])=>`${j}:${Math.round(q.widthPx)}`).join(",")},[P]),[H,Y]=useState({});useLayoutEffect(()=>{let K=g.current;if(!K)return;let j=K.querySelectorAll("th[data-column-id]");if(j.length===0)return;let q={};j.forEach(te=>{let ae=te.getAttribute("data-column-id");ae&&(q[ae]=te.offsetWidth);}),Y(te=>{for(let ae in q)if(te[ae]!==q[ae])return q;return Object.keys(te).length!==Object.keys(q).length?q:te});},[G,V,g]);let M=useMemo(()=>{let K={};for(let j of G){let q=P[j.columnId];K[j.columnId]=q?q.widthPx:H[j.columnId]??j.idealWidth??j.defaultWidth??j.minWidth??DEFAULT_MIN_COLUMN_WIDTH;}return K},[G,P,H]),_=useMemo(()=>O.computeLeftOffsets(G,M,DEFAULT_MIN_COLUMN_WIDTH,E,CHECKBOX_COLUMN_WIDTH),[O,G,M,E]),N=useMemo(()=>O.computeRightOffsets(G,M,DEFAULT_MIN_COLUMN_WIDTH),[O,G,M]),T=L(f),B=useCallback((K,j)=>T.current?.(K,j),[T]),F=useCallback((K,j)=>{A(q=>({...q,[K]:{widthPx:j}})),(m??r)?.(K,j);},[A,m,r]),J=zo({pinnedColumns:O.pinnedColumns,onPinColumn:O.pinColumn,onUnpinColumn:O.unpinColumn,sortBy:p,sortDirection:c??"asc",onColumnSort:B,onColumnResized:r,onAutosizeColumn:F,columns:S}),$=useMemo(()=>({flatColumns:S,visibleCols:G,visibleColumnCount:z,totalColCount:X,colOffset:k,hasCheckboxCol:E,hasRowNumbersCol:y,rowIndexByRowId:b,containerWidth:I,minTableWidth:D,desiredTableWidth:v,columnSizingOverrides:P,setColumnSizingOverrides:A,onColumnResized:r,measuredColumnWidths:H}),[S,G,z,X,k,E,y,b,I,D,v,P,A,r,H]),Z=useMemo(()=>({pinnedColumns:O.pinnedColumns,pinColumn:O.pinColumn,unpinColumn:O.unpinColumn,isPinned:O.isPinned,leftOffsets:_,rightOffsets:N,headerMenu:J}),[O.pinnedColumns,O.pinColumn,O.unpinColumn,O.isPinned,_,N,J]);return {layout:$,pinning:Z,flatColumns:S,visibleCols:G,visibleColumnCount:z,totalColCount:X,colOffset:k,hasCheckboxCol:E,hasRowNumbersCol:y,columnSizingOverrides:P,setColumnSizingOverrides:A,handleAutosizeColumn:F,stableOnColumnSort:B}}function Ul(o){let{editingCell:e,setEditingCell:t,pendingEditorValue:n,setPendingEditorValue:l,onCellValueChanged:u,setActiveCell:s,setSelectionRange:d,colOffset:i,setFormula:r,onFormulaCellChanged:m,formulas:R,flatColumns:a}=o,[p,c]=useState(null),f=L(o.visibleCols),C=L(o.itemsLength),g=L(u),h=L(r),S=L(m),x=L(a),w=useCallback((b,I,D,v,P,A)=>{if(R&&typeof v=="string"&&v.startsWith("=")&&h.current){let z=x.current,W=z?z.findIndex(X=>X.columnId===I):-1;if(W>=0){if(h.current(W,P,v),t(null),c(null),l(void 0),P<C.current-1){let X=P+1,k=A-i;s({rowIndex:X,columnIndex:A}),d({startRow:X,startCol:k,endRow:X,endCol:k});}return}}let G=f.current.find(z=>z.columnId===I);if(G){let z=parseValue(v,D,b,G);if(!z.valid){t(null),c(null),l(void 0);return}v=z.value;}if(g.current?.({item:b,columnId:I,oldValue:D,newValue:v,rowIndex:P}),R&&S.current&&x.current){let z=x.current.findIndex(W=>W.columnId===I);z>=0&&S.current(z,P);}if(t(null),c(null),l(void 0),P<C.current-1){let z=P+1,W=A-i;s({rowIndex:z,columnIndex:A}),d({startRow:z,startCol:W,endRow:z,endCol:W});}},[R,t,l,s,d,i,f,C,g,h,S,x]),E=useCallback(()=>{t(null),c(null),l(void 0);},[t,l]);return {editing:useMemo(()=>({editingCell:e,setEditingCell:t,pendingEditorValue:n,setPendingEditorValue:l,commitCellEdit:w,cancelPopoverEdit:E,popoverAnchorEl:p,setPopoverAnchorEl:c}),[e,t,n,l,w,E,p,c])}}var lt=()=>{},Ts=async()=>{},Ds=(o,e,t)=>{},Es=o=>{};function Al(o){let{items:e,visibleCols:t,colOffset:n,hasCheckboxCol:l,visibleColumnCount:u,getRowId:s,editable:d,onCellValueChangedProp:i,cellSelection:r,rowSelection:m,selectedRowIds:R,editingCell:a,setEditingCell:p,activeCell:c,setActiveCell:f,handleRowCheckboxChange:C,setContextMenuPosition:g,wrapperRef:h,onKeyDown:S,formulas:x,flatColumns:w,getFormula:E,hasFormula:y,setFormula:b,onFormulaInsertReference:I}=o,D=L(I),v=Sn({onCellValueChanged:i}),P=v.onCellValueChanged,{selectionRange:A,setSelectionRange:G,handleCellMouseDown:z,handleSelectAllCells:W,isDragging:X}=gn({colOffset:n,rowCount:e.length,visibleColCount:t.length,setActiveCell:f,wrapperRef:h}),{handleCopy:k,handleCut:O,handlePaste:V,cutRange:H,copyRange:Y,clearClipboardRanges:M}=Cn({items:e,visibleCols:t,colOffset:n,selectionRange:A,activeCell:c,editable:d,onCellValueChanged:P,beginBatch:v.beginBatch,endBatch:v.endBatch,formulas:x,flatColumns:w,getFormula:E,hasFormula:y,setFormula:b}),_=useCallback((Z,K,j)=>{if(Z.button!==0)return;let q=D.current;if(q){let te=j-n;if(te>=0){let ae=formatCellReference(te,K+1);if(q(ae)){Z.preventDefault();return}}}h.current?.focus({preventScroll:true}),M(),z(Z,K,j);},[z,M,h,D,n]),N=useMemo(()=>{if(!(!x||!w))return {flatColumns:w,getFormula:E,hasFormula:y,setFormula:b}},[x,w,E,y,b]),{handleFillHandleMouseDown:T,fillDown:B}=In({items:e,visibleCols:t,editable:d,onCellValueChanged:P,selectionRange:A,setSelectionRange:G,setActiveCell:f,colOffset:n,wrapperRef:h,beginBatch:v.beginBatch,endBatch:v.endBatch,formulaOptions:N}),{handleGridKeyDown:F}=hn({data:{items:e,visibleCols:t,colOffset:n,hasCheckboxCol:l,visibleColumnCount:u,getRowId:s},state:{activeCell:c,selectionRange:A,editingCell:a,selectedRowIds:R},handlers:{setActiveCell:f,setSelectionRange:G,setEditingCell:p,handleRowCheckboxChange:C,handleCopy:k,handleCut:O,handlePaste:V,setContextMenu:g,onUndo:v.undo,onRedo:v.redo,clearClipboardRanges:M},features:{editable:d,onCellValueChanged:P,rowSelection:m??"none",wrapperRef:h,onKeyDown:S,fillDown:B}}),J=A!=null||c!=null;return {interaction:useMemo(()=>({activeCell:r?c:null,setActiveCell:r?f:lt,selectionRange:r?A:null,setSelectionRange:r?G:lt,handleCellMouseDown:r?_:Ds,handleSelectAllCells:r?W:lt,hasCellSelection:r?J:false,handleGridKeyDown:r?F:Es,handleFillHandleMouseDown:r?T:lt,handleCopy:r?k:lt,handleCut:r?O:lt,handlePaste:r?V:Ts,cutRange:r?H:null,copyRange:r?Y:null,clearClipboardRanges:r?M:lt,canUndo:v.canUndo,canRedo:v.canRedo,onUndo:v.undo,onRedo:v.redo,isDragging:r?X:false}),[r,c,f,A,G,_,W,J,F,T,k,O,V,H,Y,M,v.canUndo,v.canRedo,v.undo,v.redo,X]),selectionRange:A,setSelectionRange:G,cutRange:H,copyRange:Y,clearClipboardRanges:M,isDragging:X,onCellValueChanged:P,canUndo:v.canUndo,canRedo:v.canRedo}}var Ll=()=>{},Os=o=>{};function Gl(o){let{cellSelection:e}=o,{contextMenuPosition:t,setContextMenuPosition:n,handleCellContextMenu:l,closeContextMenu:u}=fn();return {contextMenu:useMemo(()=>({menuPosition:e?t:null,setMenuPosition:e?n:Ll,handleCellContextMenu:e?l:Os,closeContextMenu:e?u:Ll}),[e,t,n,l,u]),contextMenuPosition:t,setContextMenuPosition:n}}function wn(o){let{props:e,wrapperRef:t}=o,{items:n,columns:l,getRowId:u,visibleColumns:s,columnOrder:d,rowSelection:i="none",selectedRows:r,onSelectionChange:m,showRowNumbers:R,statusBar:a,emptyState:p,editable:c,cellSelection:f,onCellValueChanged:C,initialColumnWidths:g,onColumnResized:h,onAutosizeColumn:S,pinnedColumns:x,onColumnPinned:w,responsiveColumns:E,onCellError:y,onKeyDown:b}=e,I=f!==false,{editingCell:D,setEditingCell:v,pendingEditorValue:P,setPendingEditorValue:A}=pn(),{activeCell:G,setActiveCell:z}=mn(t,D),W=Ol({columns:l,items:n,getRowId:u,visibleColumns:s,columnOrder:d,rowSelection:i,showRowNumbers:R,initialColumnWidths:g,onColumnResized:h,onAutosizeColumn:S,pinnedColumns:x,onColumnPinned:w,sortBy:e.sortBy,sortDirection:e.sortDirection,onColumnSort:e.onColumnSort,responsiveColumns:E,wrapperRef:t}),{visibleCols:X,visibleColumnCount:k,colOffset:O,hasCheckboxCol:V}=W,H=Rn({items:n,getRowId:u,rowSelection:i,controlledSelectedRows:r,onSelectionChange:m}),{selectedRowIds:Y,updateSelection:M,handleRowCheckboxChange:_,handleSelectAll:N,allSelected:T,someSelected:B}=H,F=Gl({cellSelection:I}),{setContextMenuPosition:J}=F,$=Al({items:n,visibleCols:X,colOffset:O,hasCheckboxCol:V,visibleColumnCount:k,getRowId:u,editable:c,onCellValueChangedProp:C,cellSelection:I,rowSelection:i,selectedRowIds:Y,editingCell:D,setEditingCell:v,activeCell:G,setActiveCell:z,handleRowCheckboxChange:_,setContextMenuPosition:J,wrapperRef:t,onKeyDown:b,formulas:e.formulas,flatColumns:W.layout.flatColumns,getFormula:e.getFormula,hasFormula:e.hasFormula,setFormula:e.setFormula,onFormulaInsertReference:e.onFormulaInsertReference}),{selectionRange:Z,setSelectionRange:K,cutRange:j,copyRange:q,isDragging:te,onCellValueChanged:ae}=$,De=Ul({editingCell:D,setEditingCell:v,pendingEditorValue:P,setPendingEditorValue:A,visibleCols:X,itemsLength:n.length,onCellValueChanged:ae,setActiveCell:z,setSelectionRange:K,colOffset:O,setFormula:e.setFormula,onFormulaCellChanged:e.onFormulaCellChanged,formulas:e.formulas,flatColumns:W.layout.flatColumns}),{sortBy:Ye,sortDirection:Ze,filters:Ke,onFilterChange:Ce,filterOptions:st,loadingFilterOptions:Ae,peopleSearch:ut}=e,ct=!!ut,dt=L(Ce),Le=L(ut),je=useCallback((...ge)=>dt.current?.(...ge),[dt]),he=useCallback((...ge)=>Le.current?.(...ge)??Promise.resolve([]),[Le]),Ge=useMemo(()=>({sortBy:Ye,sortDirection:Ze,onColumnSort:W.stableOnColumnSort,filters:Ke,onFilterChange:je,filterOptions:st,loadingFilterOptions:Ae,peopleSearch:ct?he:void 0}),[Ye,Ze,W.stableOnColumnSort,Ke,je,st,Ae,ct,he]),Je=useMemo(()=>({editingCell:D,activeCell:I?G:null,selectionRange:I?Z:null,cutRange:I?j:null,copyRange:I?q:null,colOffset:O,itemsLength:n.length,getRowId:u,editable:c,onCellValueChanged:ae,isDragging:I?te:false,getFormulaValue:e.getFormulaValue,hasFormula:e.hasFormula,getFormula:e.getFormula,formulaVersion:e.formulaVersion}),[D,G,Z,j,q,O,n.length,u,c,ae,I,te,e.getFormulaValue,e.hasFormula,e.getFormula,e.formulaVersion]),Qe=useMemo(()=>computeAggregations(n,X,I?Z:null),[n,X,Z,I]),Xe=useMemo(()=>{let ge=getDataGridStatusBarConfig(a,n.length,Y.size);return ge?{...ge,aggregation:Qe??void 0}:null},[a,n.length,Y.size,Qe]),Se=n.length===0&&!!p&&!e.isLoading,et=useMemo(()=>({selectedRowIds:Y,updateSelection:M,handleRowCheckboxChange:_,handleSelectAll:N,allSelected:T,someSelected:B}),[Y,M,_,N,T,B]),mt=useMemo(()=>({headerFilterInput:Ge,cellDescriptorInput:Je,statusBarConfig:Xe,showEmptyInGrid:Se,onCellError:y}),[Ge,Je,Xe,Se,y]);return {layout:W.layout,rowSelection:et,editing:De.editing,interaction:$.interaction,contextMenu:F.contextMenu,viewModels:mt,pinning:W.pinning}}function Pn(o){let{textValue:e="",onTextChange:t,isFilterOpen:n}=o,[l,u]=useState(e);useEffect(()=>{n&&u(e);},[n,e]);let s=useCallback(()=>{t?.(l.trim());},[t,l]),d=useCallback(()=>u(""),[]);return {tempTextValue:l,setTempTextValue:u,handleTextApply:s,handleTextClear:d}}var Ls=150,Hl=[];function Dn(o){let{selectedValues:e,onFilterChange:t,options:n,isFilterOpen:l}=o,u=e??Hl,s=n??Hl,[d,i]=useState(()=>new Set(u)),[r,m]=useState(""),R=bn(r,Ls);useEffect(()=>{l&&(i(new Set(u)),m(""));},[l,u]);let a=useMemo(()=>{let g=R.trim();if(!g)return s;let h=g.toLowerCase();return s.filter(S=>S.toLowerCase().includes(h))},[s,R]),p=useCallback((g,h)=>{i(S=>{let x=new Set(S);return h?x.add(g):x.delete(g),x});},[]),c=useCallback(()=>{i(g=>{let h=new Set(g);for(let S of a)h.add(S);return h});},[a]),f=useCallback(()=>i(new Set),[]),C=useCallback(()=>{t?.(Array.from(d));},[t,d]);return {tempSelected:d,setTempSelected:i,searchText:r,setSearchText:m,debouncedSearchText:R,filteredOptions:a,handleCheckboxChange:p,handleSelectAll:c,handleClearSelection:f,handleApplyMultiSelect:C}}function En(o){let{onUserChange:e,peopleSearch:t,isFilterOpen:n,filterType:l}=o,u=useRef(null),s=useRef(void 0),d=useRef(void 0),[i,r]=useState([]),[m,R]=useState(false),[a,p]=useState("");useEffect(()=>(n&&(p(""),r([]),l==="people"&&(s.current=window.setTimeout(()=>u.current?.focus(),50))),()=>{s.current&&window.clearTimeout(s.current);}),[n,l]),useEffect(()=>{if(!(!t||!n||l!=="people")){if(d.current&&window.clearTimeout(d.current),!a.trim()){r([]);return}return R(true),d.current=window.setTimeout(async()=>{try{let C=await t(a);r(C.slice(0,10));}catch{r([]);}finally{R(false);}},PEOPLE_SEARCH_DEBOUNCE_MS),()=>{d.current&&window.clearTimeout(d.current);}}},[a,t,n,l]);let c=useCallback(C=>{e?.(C);},[e]),f=useCallback(()=>{e?.(void 0);},[e]);return {peopleSuggestions:i,isPeopleLoading:m,peopleSearchText:a,setPeopleSearchText:p,peopleInputRef:u,handleUserSelect:c,handleClearUser:f}}function Fn(o){let{dateValue:e,onDateChange:t,isFilterOpen:n}=o,[l,u]=useState(e?.from??""),[s,d]=useState(e?.to??"");useEffect(()=>{n&&(u(e?.from??""),d(e?.to??""));},[n,e]);let i=useCallback(()=>{let m=l||void 0,R=s||void 0;t?.(m||R?{from:m,to:R}:void 0);},[t,l,s]),r=useCallback(()=>{u(""),d("");},[]);return {tempDateFrom:l,setTempDateFrom:u,tempDateTo:s,setTempDateTo:d,handleDateApply:i,handleDateClear:r}}var Ns=[];function $l(o){let{filterType:e,onSort:t,selectedValues:n,onFilterChange:l,options:u,textValue:s="",onTextChange:d,selectedUser:i,onUserChange:r,peopleSearch:m,dateValue:R,onDateChange:a}=o,p=n??Ns,c=useRef(null),f=useRef(null),[C,g]=useState(false),[h,S]=useState(null),x=Pn({textValue:s,onTextChange:d,isFilterOpen:C}),w=Dn({selectedValues:n,onFilterChange:l,options:u,isFilterOpen:C}),E=En({onUserChange:r,peopleSearch:m,isFilterOpen:C,filterType:e}),y=Fn({dateValue:R,onDateChange:a,isFilterOpen:C});useEffect(()=>{C||S(null);},[C]),useEffect(()=>{if(!C)return;let F=Z=>{let K=Z.target;f.current&&!f.current.contains(K)&&c.current&&!c.current.contains(K)&&g(false);},J=Z=>{(Z.key==="Escape"||Z.key==="Esc")&&(Z.preventDefault(),Z.stopPropagation(),g(false));},$=setTimeout(()=>document.addEventListener("mousedown",F),0);return document.addEventListener("keydown",J,true),()=>{clearTimeout($),document.removeEventListener("mousedown",F),document.removeEventListener("keydown",J,true);}},[C]);let b=useCallback(F=>{F.stopPropagation(),F.preventDefault(),g(J=>{if(!J&&c.current){let $=c.current.getBoundingClientRect();S({top:$.bottom+4,left:$.left});}return !J});},[]),I=useCallback(F=>{F.stopPropagation(),t?.();},[t]),{handleApplyMultiSelect:D}=w,{handleTextApply:v,handleTextClear:P}=x,{handleUserSelect:A,handleClearUser:G}=E,{handleDateApply:z}=y,W=useCallback(()=>{D(),g(false);},[D]),X=useCallback(()=>{v(),g(false);},[v]),k=useCallback(()=>{P(),d?.(""),g(false);},[P,d]),O=useCallback(F=>{A(F),g(false);},[A]),V=useCallback(()=>{G(),g(false);},[G]),H=useCallback(()=>{z(),g(false);},[z]),Y=useCallback(F=>F.stopPropagation(),[]),M=useCallback(F=>F.stopPropagation(),[]),_=useCallback(F=>F.stopPropagation(),[]),N=useCallback(F=>F.stopPropagation(),[]),T=useCallback(F=>{F.key!=="Escape"&&F.key!=="Esc"&&F.stopPropagation();},[]),B=useMemo(()=>e==="multiSelect"?p.length>0:e==="text"?!!s.trim():e==="people"?!!i:e==="date"?!!(R?.from||R?.to):false,[e,p,s,i,R]);return {headerRef:c,popoverRef:f,peopleInputRef:E.peopleInputRef,isFilterOpen:C,setFilterOpen:g,tempSelected:w.tempSelected,setTempSelected:w.setTempSelected,tempTextValue:x.tempTextValue,setTempTextValue:x.setTempTextValue,searchText:w.searchText,setSearchText:w.setSearchText,debouncedSearchText:w.debouncedSearchText,filteredOptions:w.filteredOptions,peopleSuggestions:E.peopleSuggestions,isPeopleLoading:E.isPeopleLoading,peopleSearchText:E.peopleSearchText,setPeopleSearchText:E.setPeopleSearchText,tempDateFrom:y.tempDateFrom,setTempDateFrom:y.setTempDateFrom,tempDateTo:y.tempDateTo,setTempDateTo:y.setTempDateTo,hasActiveFilter:B,popoverPosition:h,handlers:{handleFilterIconClick:b,handleApplyMultiSelect:W,handleTextApply:X,handleTextClear:k,handleUserSelect:O,handleClearUser:V,handleDateApply:H,handleDateClear:y.handleDateClear,handleCheckboxChange:w.handleCheckboxChange,handleSelectAll:w.handleSelectAll,handleClearSelection:w.handleClearSelection,handlePopoverClick:Y,handleInputFocus:M,handleInputMouseDown:_,handleInputClick:N,handleInputKeyDown:T,handleSortClick:I}}}function Yl(o){let{columns:e,visibleColumns:t,onVisibilityChange:n,onSetVisibleColumns:l}=o,[u,s]=useState(false);useEffect(()=>{if(!u)return;let c=f=>{f.key==="Escape"&&(f.preventDefault(),s(false));};return document.addEventListener("keydown",c,true),()=>document.removeEventListener("keydown",c,true)},[u]);let d=useCallback(()=>{s(c=>!c);},[]),i=useCallback(()=>{s(false);},[]),r=useCallback(c=>f=>{n(c,f);},[n]),m=useCallback(()=>{l?l(new Set(e.map(c=>c.columnId))):e.forEach(c=>{t.has(c.columnId)||n(c.columnId,true);});},[e,t,n,l]),R=useCallback(()=>{if(l){let c=new Set(e.filter(f=>f.required).map(f=>f.columnId));l(c);}else e.forEach(c=>{!c.required&&t.has(c.columnId)&&n(c.columnId,false);});},[e,t,n,l]),a=t.size,p=e.length;return {open:u,setOpen:s,handleToggle:d,handleClose:i,handleCheckboxChange:r,handleSelectAll:m,handleClearAll:R,visibleCount:a,totalCount:p}}function On(o){let{value:e,editorType:t,onCommit:n,onCancel:l}=o,[u,s]=useState(()=>{if(e==null)return "";if(t==="date"){let r=String(e);return r.match(/^\d{4}-\d{2}-\d{2}/)?r.substring(0,10):r}return String(e)}),d=useCallback(r=>{r.key==="Escape"&&(r.preventDefault(),r.stopPropagation(),l()),r.key==="Enter"&&(t==="text"||t==="date")&&(r.preventDefault(),r.stopPropagation(),n(u));},[l,n,u,t]),i=useCallback(()=>{(t==="text"||t==="date")&&n(u);},[t,u,n]);return {localValue:u,setLocalValue:s,handleKeyDown:d,handleBlur:i,commit:n,cancel:l}}function Mn({columnSizingOverrides:o,setColumnSizingOverrides:e,minWidth:t=80,defaultWidth:n=120,onColumnResized:l}){let u=useRef(0),s=useRef(l);s.current=l;let d=L(o),i=useRef(null);useEffect(()=>()=>{i.current&&(i.current(),i.current=null);},[]);let r=useCallback((a,p)=>{a.preventDefault(),a.stopPropagation(),i.current&&(i.current(),i.current=null);let c=a.clientX,f=p.columnId,C=a.currentTarget.closest("th"),g=C?C.getBoundingClientRect().width:d.current[f]?.widthPx??p.idealWidth??p.defaultWidth??n,h=g,S=C?.closest("thead");if(S){let v=S.querySelectorAll("th[data-column-id]");v.length>0&&e(P=>{let A={...P};return v.forEach(G=>{let z=G.dataset.columnId;z&&!A[z]&&(A[z]={widthPx:G.getBoundingClientRect().width});}),A[f]={widthPx:g},A});}let x=document.body.style.cursor,w=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let E=()=>{e(v=>({...v,[f]:{widthPx:h}}));},y=f===ROW_NUMBER_COLUMN_ID?ROW_NUMBER_COLUMN_MIN_WIDTH:t,b=v=>{let P=v.clientX-c;h=Math.max(y,g+P),u.current||(u.current=requestAnimationFrame(()=>{u.current=0,E();}));},I=()=>{document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",D),i.current=null,document.body.style.cursor=x,document.body.style.userSelect=w,u.current&&(cancelAnimationFrame(u.current),u.current=0);},D=()=>{I(),E();let v=C?.closest("[tabindex]");v?v.focus({preventScroll:true}):document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s.current&&s.current(f,h);};document.addEventListener("pointermove",b),document.addEventListener("pointerup",D),i.current=I;},[n,t,e,d]),m=useCallback((a,p)=>{a.preventDefault(),a.stopPropagation();let c=p.columnId,C=a.currentTarget.closest("th")?.closest("table")?.parentElement??void 0,g=measureColumnContentWidth(c,t,C);e(h=>({...h,[c]:{widthPx:g}})),s.current&&s.current(c,g);},[t,e]),R=useCallback(a=>o[a.columnId]?.widthPx??a.idealWidth??a.defaultWidth??n,[o,n]);return {handleResizeStart:r,handleResizeDoubleClick:m,getColumnWidth:R}}function $o(o,e){return e?e(o):o!=null?String(o):""}function Un(o){let{values:e,formatValue:t,initialValue:n,onCommit:l,onCancel:u}=o,[s,d]=useState(""),i=e.findIndex(f=>String(f)===String(n)),[r,m]=useState(Math.max(i,0));useEffect(()=>{let f=e.findIndex(C=>String(C)===String(n));m(Math.max(f,0));},[n,e]);let R=useCallback(f=>$o(f,t),[t]),a=useMemo(()=>{if(!s.trim())return e;let f=s.toLowerCase();return e.filter(C=>R(C).toLowerCase().includes(f))},[e,s,R]),p=useCallback(f=>{l(f);},[l]),c=useCallback(f=>{switch(f.key){case "ArrowDown":f.preventDefault(),m(C=>Math.min(C+1,a.length-1));break;case "ArrowUp":f.preventDefault(),m(C=>Math.max(C-1,0));break;case "Enter":f.preventDefault(),f.stopPropagation(),a.length>0&&r<a.length&&p(a[r]);break;case "Escape":f.preventDefault(),f.stopPropagation(),u();break}},[a,r,p,u]);return {searchText:s,setSearchText:d,filteredValues:a,highlightedIndex:r,handleKeyDown:c,selectValue:p,getDisplayText:R}}function kn(o){let{values:e,formatValue:t,initialValue:n,onCommit:l,onCancel:u}=o,s=useRef(null),d=useCallback(p=>$o(p,t),[t]),i=e.findIndex(p=>String(p)===String(n)),[r,m]=useState(Math.max(i,0));useEffect(()=>{let p=e.findIndex(c=>String(c)===String(n));m(Math.max(p,0));},[n,e]),useEffect(()=>{let p=s.current;if(!p)return;p.children[r]?.scrollIntoView({block:"nearest"});},[r]);let R=useCallback(p=>{l(p);},[l]),a=useCallback(p=>{switch(p.key){case "ArrowDown":p.preventDefault(),m(c=>Math.min(c+1,e.length-1));break;case "ArrowUp":p.preventDefault(),m(c=>Math.max(c-1,0));break;case "Enter":p.preventDefault(),p.stopPropagation(),e.length>0&&r<e.length&&R(e[r]);break;case "Tab":p.preventDefault(),e.length>0&&r<e.length&&R(e[r]);break;case "Escape":p.preventDefault(),p.stopPropagation(),u();break}},[e,r,R,u]);return {highlightedIndex:r,handleKeyDown:a,selectValue:R,getDisplayText:d,dropdownRef:s}}var ou=8;function ru(o){if(!o)return;let e=[],t=[];for(let[n,l]of Object.entries(o))l==="left"?e.push(n):l==="right"&&t.push(n);if(!(e.length===0&&t.length===0))return {...e.length>0?{left:e}:{},...t.length>0?{right:t}:{}}}function An(o){let{columns:e,columnOrder:t,onColumnOrderChange:n,enabled:l=true,pinnedColumns:u,wrapperRef:s}=o,[d,i]=useState(false),[r,m]=useState(null),R=useRef(0),a=useRef(e);a.current=e;let p=useRef(t);p.current=t;let c=useRef(n);c.current=n;let f=useRef(u);f.current=u;let C=useRef(null);useEffect(()=>()=>{C.current&&(C.current(),C.current=null);},[]);let g=useCallback((h,S)=>{if(!l||!c.current||S.button!==0)return;let w=S.currentTarget.getBoundingClientRect();if(S.clientX>w.right-ou||a.current.findIndex(k=>k.columnId===h)===-1)return;S.preventDefault();let b=S.clientX,I=false,D=null,v=ru(f.current),P=getPinStateForColumn(h,v),A=document.body.style.userSelect,G=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="grabbing";let z=k=>{!I&&Math.abs(k.clientX-b)<5||(I||(I=true,i(true)),R.current&&cancelAnimationFrame(R.current),R.current=requestAnimationFrame(()=>{R.current=0;let O=s.current;if(!O)return;let V=p.current??a.current.map(Y=>Y.columnId),H=calculateDropTarget({mouseX:k.clientX,columnOrder:V,draggedColumnId:h,draggedPinState:P,tableElement:O,pinnedColumns:v});H&&(D=H.targetIndex,m(H.indicatorX));}));},W=()=>{window.removeEventListener("pointermove",z,true),window.removeEventListener("pointerup",X,true),C.current=null,document.body.style.userSelect=A,document.body.style.cursor=G,R.current&&(cancelAnimationFrame(R.current),R.current=0);},X=()=>{if(W(),I&&D!=null){let k=p.current??a.current.map(V=>V.columnId),O=reorderColumnArray(k,h,D);c.current?.(O);}i(false),m(null);};window.addEventListener("pointermove",z,true),window.addEventListener("pointerup",X,true),C.current=W;},[l,s]);return {isDragging:d,dropIndicatorX:r,handleHeaderMouseDown:g}}var su=100;function Ln(o){let{totalRows:e,rowHeight:t,enabled:n,overscan:l=5,threshold:u=su,containerRef:s,columnVirtualization:d=false,columnWidths:i,columnOverscan:r=2}=o;useEffect(()=>{validateVirtualScrollConfig({enabled:n,rowHeight:t});},[n,t]);let m=n&&e>=u,R=useCallback(()=>s.current,[s]),a=useVirtualizer({count:m?e:0,getScrollElement:R,estimateSize:()=>t,overscan:l,enabled:m}),p=useMemo(()=>({startIndex:0,endIndex:Math.max(0,e-1),offsetTop:0,offsetBottom:0}),[e]),c=useMemo(()=>{if(!m)return p;let I=a.getVirtualItems();if(I.length===0)return {startIndex:0,endIndex:-1,offsetTop:0,offsetBottom:0};let D=I[0],v=I[I.length-1],P=a.getTotalSize();return {startIndex:D.index,endIndex:v.index,offsetTop:D.start,offsetBottom:Math.max(0,P-v.end)}},[m,a,p]),f=m?a.getTotalSize():e*t,C=useRef(a);C.current=a;let g=useCallback(I=>{if(m)C.current?.scrollToIndex(I,{align:"auto"});else {let D=s.current;if(D){let v=I*t;D.scrollTo({top:v,behavior:"auto"});}}},[m,s,t]),[h,S]=useState(0),x=useRef(0),w=useCallback(I=>{x.current&&cancelAnimationFrame(x.current),x.current=requestAnimationFrame(()=>{x.current=0,S(I);});},[]);useEffect(()=>()=>{x.current&&cancelAnimationFrame(x.current);},[]);let[E,y]=useState(0);useEffect(()=>{if(!d)return;let I=s.current;if(!I||(y(I.clientWidth),typeof ResizeObserver>"u"))return;let D=new ResizeObserver(v=>{v.length>0&&y(v[0].contentRect.width);});return D.observe(I),()=>D.disconnect()},[d,s]);let b=useMemo(()=>!d||!i||i.length===0||E<=0?null:computeVisibleColumnRange(h,i,E,r),[d,i,E,h,r]);return {virtualizer:m?a:null,totalHeight:f,visibleRange:c,scrollToIndex:g,columnRange:b,onHorizontalScroll:d?w:void 0}}function oa(o){let{count:e,itemHeight:t,containerHeight:n=250,overscan:l=5}=o,u=useRef(null),[s,d]=useState(0),i=useCallback(()=>{u.current&&d(u.current.scrollTop);},[]),r=e*t,m=useMemo(()=>{if(e===0)return [];let R=Math.max(0,Math.floor(s/t)-l),a=Math.ceil(n/t),p=Math.min(e-1,R+a+l*2),c=[];for(let f=R;f<=p;f++)c.push({index:f,offsetTop:f*t});return c},[e,t,n,l,s]);return {totalHeight:r,visibleItems:m,containerRef:u,onScroll:i}}function Gn(o){let{currentPage:e,pageSize:t,totalCount:n,onPageSizeChange:l,pageSizeOptions:u,entityLabelPlural:s}=o,d=s??"items",i=useMemo(()=>getPaginationViewModel(e,t,n,u?{pageSizeOptions:u}:void 0),[e,t,n,u]);return {labelPlural:d,vm:i,handlePageSizeChange:l}}function aa(o){let{props:e}=o,t=useRef(null),n=useRef(null),l=useRef(false),u=wn({props:e,wrapperRef:t}),{layout:s,rowSelection:d,editing:i,interaction:r,contextMenu:m,viewModels:R,pinning:a}=u,{visibleCols:p,totalColCount:c,hasCheckboxCol:f,hasRowNumbersCol:C,colOffset:g,containerWidth:h,minTableWidth:S,desiredTableWidth:x,columnSizingOverrides:w,setColumnSizingOverrides:E,measuredColumnWidths:y}=s,b=p,{selectedRowIds:I,updateSelection:D,handleRowCheckboxChange:v,handleSelectAll:P,allSelected:A,someSelected:G}=d,{editingCell:z,setEditingCell:W,pendingEditorValue:X,setPendingEditorValue:k,commitCellEdit:O,cancelPopoverEdit:V,popoverAnchorEl:H,setPopoverAnchorEl:Y}=i,{setActiveCell:M,handleCellMouseDown:_,selectionRange:N,hasCellSelection:T,handleGridKeyDown:B,handleFillHandleMouseDown:F,handleCopy:J,handleCut:$,handlePaste:Z,cutRange:K,copyRange:j,canUndo:q,canRedo:te,onUndo:ae,onRedo:De,isDragging:Ye}=r,{menuPosition:Ze,handleCellContextMenu:Ke,closeContextMenu:Ce}=m,{headerFilterInput:st,cellDescriptorInput:Ae,statusBarConfig:ut,showEmptyInGrid:ct,onCellError:dt}=R,{headerMenu:Le}=a,je=useCallback(()=>{Z();},[Z]),{items:he,columns:Ge,getRowId:Je,emptyState:Qe,layoutMode:Xe="fill",rowSelection:Se="none",suppressHorizontalScroll:et,stickyHeader:mt=true,isLoading:ge=false,loadingMessage:zt="Loading\u2026","aria-label":_t,"aria-labelledby":Wt,visibleColumns:pt,columnOrder:wt,onColumnOrderChange:Kt,columnReorder:Pt,virtualScroll:Be,rowHeight:jt,density:Xt="normal",pinnedColumns:ne,currentPage:Ee=1,pageSize:Tt=25,showColumnLetters:Jn=false,showNameBox:Qn=false,onActiveCellChange:qt}=e,Dt=C?(Ee-1)*Tt:0,eo=useMemo(()=>buildHeaderRows(Ge,pt),[Ge,pt]),$t=!et&&h>0&&(S>h||x>h),to=Xe==="content",oe=useRef(qt);oe.current=qt,useEffect(()=>{if(!oe.current)return;let ve=r.activeCell;ve?oe.current(formatCellReference(ve.columnIndex-g,Dt+ve.rowIndex+1)):oe.current(null);},[r.activeCell,Dt,g]);let{handleResizeStart:ce,handleResizeDoubleClick:ee,getColumnWidth:de}=Mn({columnSizingOverrides:w,setColumnSizingOverrides:E}),{isDragging:Et,dropIndicatorX:Yt,handleHeaderMouseDown:Zt}=An({columns:b,columnOrder:wt,onColumnOrderChange:Kt,enabled:Pt===true,pinnedColumns:ne,wrapperRef:t}),be=Be?.enabled===true,Te=Be?.rowHeight??36,qe=Be?.columns===true,no=useMemo(()=>{if(!qe)return;let ve=[];for(let Ve of b)ne?.[Ve.columnId]||ve.push(de(Ve));return ve},[qe,b,ne,de]),{visibleRange:tt,columnRange:nt,onHorizontalScroll:Jt}=Ln({totalRows:he.length,rowHeight:Te,enabled:be,overscan:Be?.overscan,threshold:Be?.threshold,containerRef:t,columnVirtualization:qe,columnWidths:no,columnOverscan:Be?.columnOverscan}),Ft=useMemo(()=>({commitCellEdit:O,setEditingCell:W,setPendingEditorValue:k,cancelPopoverEdit:V}),[O,W,k,V]),Qt=useMemo(()=>({handleCellMouseDown:_,setActiveCell:M,setEditingCell:W,handleCellContextMenu:Ke}),[_,M,W,Ke]),Ot=L(Ae),en=L(X),tn=L(H),ft=L(I),gt=useRef(new CellDescriptorCache),nn=CellDescriptorCache.computeVersion(Ae);gt.current.updateVersion(nn);let Ct=useRef(he),Rt=useRef(b);(Ct.current!==he||Rt.current!==b)&&(Ct.current=he,Rt.current=b,gt.current.clear());let Mt=useCallback(ve=>{if(Se!=="single")return;let Ve=ve.currentTarget.dataset.rowId;if(!Ve)return;let $e=ft.current;D($e.has(Ve)?new Set:new Set([Ve]));},[Se,D,ft]);return {wrapperRef:t,tableContainerRef:n,lastMouseShiftRef:l,layout:s,rowSel:d,editing:i,interaction:r,ctxMenu:m,viewModels:R,pinning:a,handleResizeStart:ce,handleResizeDoubleClick:ee,getColumnWidth:de,isReorderDragging:Et,dropIndicatorX:Yt,handleHeaderMouseDown:Zt,virtualScrollEnabled:be,virtualRowHeight:Te,visibleRange:tt,columnRange:nt,onHorizontalScroll:Jt,items:he,columns:Ge,getRowId:Je,emptyState:Qe,layoutMode:Xe,rowSelection:Se,suppressHorizontalScroll:et,stickyHeader:mt,isLoading:ge,loadingMessage:zt,ariaLabel:_t,ariaLabelledBy:Wt,visibleColumns:pt,columnOrder:wt,columnReorder:Pt,density:Xt,rowHeight:jt,pinnedColumns:ne,currentPage:Ee,propPageSize:Tt,rowNumberOffset:Dt,headerRows:eo,allowOverflowX:$t,fitToContent:to,showColumnLetters:Jn,showNameBox:Qn,editCallbacks:Ft,interactionHandlers:Qt,cellDescriptorInputRef:Ot,cellDescriptorCacheRef:gt,pendingEditorValueRef:en,popoverAnchorElRef:tn,selectedRowIdsRef:ft,handleSingleRowClick:Mt,handlePasteVoid:je,visibleCols:b,totalColCount:c,hasCheckboxCol:f,hasRowNumbersCol:C,colOffset:g,containerWidth:h,minTableWidth:S,desiredTableWidth:x,columnSizingOverrides:w,setColumnSizingOverrides:E,measuredColumnWidths:y,selectedRowIds:I,updateSelection:D,handleRowCheckboxChange:v,handleSelectAll:P,allSelected:A,someSelected:G,editingCell:z,setPopoverAnchorEl:Y,cancelPopoverEdit:V,setActiveCell:M,selectionRange:N,hasCellSelection:T,handleGridKeyDown:B,handleFillHandleMouseDown:F,handleCopy:J,handleCut:$,cutRange:K,copyRange:j,canUndo:q,canRedo:te,onUndo:ae,onRedo:De,isDragging:Ye,menuPosition:Ze,handleCellContextMenu:Ke,closeContextMenu:Ce,headerFilterInput:st,cellDescriptorInput:Ae,statusBarConfig:ut,showEmptyInGrid:ct,onCellError:dt,headerMenu:Le}}function ia(o){let{visibleCols:e,getColumnWidth:t,columnSizingOverrides:n,measuredColumnWidths:l,pinnedColumns:u,leftOffsets:s,rightOffsets:d,pinnedColLeftClass:i,pinnedColRightClass:r,addStickyPosition:m=false}=o;return useMemo(()=>{let R={},a={},p={},c={};for(let f=0;f<e.length;f++){let C=e[f],g=t(C),h=!!(n[C.columnId]||C.idealWidth!=null||C.defaultWidth!=null),S=u[C.columnId]==="left",x=u[C.columnId]==="right",w=S||x,E=!!n[C.columnId],y=l[C.columnId],b=C.minWidth??DEFAULT_MIN_COLUMN_WIDTH,I=E?g:Math.max(b,y??0),D=m&&w?{position:"sticky"}:void 0;R[C.columnId]={minWidth:I,width:h?g:void 0,maxWidth:h?g:void 0,textAlign:C.type==="numeric"?"right":C.type==="boolean"?"center":void 0,...D,...S&&s[C.columnId]!=null?{left:s[C.columnId]}:void 0,...x&&d[C.columnId]!=null?{right:d[C.columnId]}:void 0},p[C.columnId]={minWidth:I,width:h?g:void 0,maxWidth:h?g:void 0,...D,...S&&s[C.columnId]!=null?{left:s[C.columnId]}:void 0,...x&&d[C.columnId]!=null?{right:d[C.columnId]}:void 0};let v=[];S&&v.push(i),x&&v.push(r);let P=v.join(" ");a[C.columnId]=P,c[C.columnId]=P;}return {cellStyles:R,cellClasses:a,hdrStyles:p,hdrClasses:c}},[e,t,n,l,u,s,d,i,r,m])}var Ru={position:"relative",flex:1,minHeight:0,display:"flex",flexDirection:"column"},hu={cursor:"cell"},Su={minHeight:"100%",minWidth:40},bu=o=>{o.preventDefault();},vu=()=>{},yu=o=>{o.stopPropagation();};var Iu=240,er=36,Vn={columns:"Columns",filters:"Filters"},da={display:"flex",flexDirection:"column",width:er,background:"var(--ogrid-header-bg, #f5f5f5)"},xu={...da,borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"},wu={...da,borderRight:"1px solid var(--ogrid-border, #e0e0e0)"},ma={width:er,height:er,border:"none",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:14,display:"flex",alignItems:"center",justifyContent:"center"},Pu={...ma,background:"var(--ogrid-bg, #fff)",fontWeight:"bold"},Tu={...ma,background:"transparent",fontWeight:"normal"},pa={width:Iu,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)"},Du={...pa,borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"},Eu={...pa,borderRight:"1px solid var(--ogrid-border, #e0e0e0)"},Fu={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, #e0e0e0)",fontWeight:600},Ou={border:"none",background:"transparent",cursor:"pointer",fontSize:16,color:"var(--ogrid-fg, #242424)"},Mu={flex:1,overflowY:"auto",padding:"8px 12px"},Uu={display:"flex",flexDirection:"row",flexShrink:0},ku={display:"flex",gap:8,marginBottom:8},sa={flex:1,cursor:"pointer",background:"var(--ogrid-bg-subtle, #f3f2f1)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:4,padding:"4px 8px"},Au={display:"flex",alignItems:"center",gap:6,padding:"2px 0",cursor:"pointer"},Lu={color:"var(--ogrid-muted, #999)",fontStyle:"italic"},Gu={marginBottom:12},Bu={fontWeight:500,marginBottom:4,fontSize:13},Vu={width:"100%",boxSizing:"border-box",padding:"4px 6px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:4},Nu={display:"flex",flexDirection:"column",gap:4},ua={display:"flex",alignItems:"center",gap:4,fontSize:12},ca={flex:1,padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:4},Hu={maxHeight:120,overflowY:"auto"},zu={display:"flex",alignItems:"center",gap:4,padding:"1px 0",cursor:"pointer",fontSize:13};function Nn(o){let{activePanel:e,onPanelChange:t,panels:n,position:l,columns:u,visibleColumns:s,onVisibilityChange:d,onSetVisibleColumns:i,filterableColumns:r,filters:m,onFilterChange:R,filterOptions:a}=o,p=e!==null,c=S=>{t(e===S?null:S);},f=l==="right"?xu:wu,C=l==="right"?Du:Eu,g=jsx("div",{style:f,role:"tablist","aria-label":"Side bar tabs",children:n.map(S=>jsx("button",{role:"tab","aria-selected":e===S,"aria-label":Vn[S],onClick:()=>c(S),title:Vn[S],style:e===S?Pu:Tu,children:S==="columns"?"\u2261":"\u2A65"},S))}),h=p&&e?jsxs("div",{role:"tabpanel","aria-label":Vn[e],style:C,children:[jsxs("div",{style:Fu,children:[jsx("span",{children:Vn[e]}),jsx("button",{onClick:()=>t(null),style:Ou,"aria-label":"Close panel",children:"\xD7"})]}),jsxs("div",{style:Mu,children:[e==="columns"&&jsx(_u,{columns:u,visibleColumns:s,onVisibilityChange:d,onSetVisibleColumns:i}),e==="filters"&&jsx(Wu,{filterableColumns:r,filters:m,onFilterChange:R,filterOptions:a})]})]}):null;return jsxs("div",{style:Uu,role:"complementary","aria-label":"Side bar",children:[l==="left"&&g,l==="left"&&h,l==="right"&&h,l==="right"&&g]})}function _u(o){let{columns:e,visibleColumns:t,onVisibilityChange:n,onSetVisibleColumns:l}=o,u=e.every(i=>t.has(i.columnId));return jsxs(Fragment,{children:[jsxs("div",{style:ku,children:[jsx("button",{onClick:()=>{let i=new Set(t);e.forEach(r=>i.add(r.columnId)),l(i);},disabled:u,style:sa,children:"Select All"}),jsx("button",{onClick:()=>{let i=new Set;e.forEach(r=>{r.required&&t.has(r.columnId)&&i.add(r.columnId);}),l(i);},style:sa,children:"Clear All"})]}),e.map(i=>jsxs("label",{style:Au,children:[jsx("input",{type:"checkbox",checked:t.has(i.columnId),onChange:r=>n(i.columnId,r.target.checked),disabled:i.required}),jsx("span",{children:i.name})]},i.columnId))]})}function Wu(o){let{filterableColumns:e,filters:t,onFilterChange:n,filterOptions:l}=o;return e.length===0?jsx("div",{style:Lu,children:"No filterable columns"}):jsx(Fragment,{children:e.map(u=>{let s=u.filterField,d=t[s];return jsxs("div",{style:Gu,children:[jsx("div",{style:Bu,children:u.name}),u.filterType==="text"&&jsx("input",{type:"text",value:d?.type==="text"?d.value:"",onChange:i=>n(s,i.target.value?{type:"text",value:i.target.value}:void 0),placeholder:`Filter ${u.name}...`,"aria-label":`Filter ${u.name}`,style:Vu}),u.filterType==="date"&&jsxs("div",{style:Nu,children:[jsxs("label",{style:ua,children:["From:",jsx("input",{type:"date",value:d?.type==="date"?d.value.from??"":"",onChange:i=>{let r=i.target.value||void 0,R=(d?.type==="date"?d.value:{}).to;n(s,r||R?{type:"date",value:{from:r,to:R}}:void 0);},"aria-label":`${u.name} from date`,style:ca})]}),jsxs("label",{style:ua,children:["To:",jsx("input",{type:"date",value:d?.type==="date"?d.value.to??"":"",onChange:i=>{let r=i.target.value||void 0,R=(d?.type==="date"?d.value:{}).from;n(s,R||r?{type:"date",value:{from:R,to:r}}:void 0);},"aria-label":`${u.name} to date`,style:ca})]})]}),u.filterType==="multiSelect"&&jsx("div",{style:Hu,role:"group","aria-label":`${u.name} options`,children:(l[s]??[]).map(i=>{let r=d?.type==="multiSelect"?d.value.includes(i):false;return jsxs("label",{style:zu,children:[jsx("input",{type:"checkbox",checked:r,onChange:m=>{let R=d?.type==="multiSelect"?d.value:[],a=m.target.checked?[...R,i]:R.filter(p=>p!==i);n(s,a.length>0?{type:"multiSelect",value:a}:void 0);}}),jsx("span",{children:i})]},i)})})]},u.columnId)})})}var Ca={border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:GRID_BORDER_RADIUS,overflow:"hidden",display:"flex",flexDirection:"column",flex:1,minHeight:0,background:"var(--ogrid-bg, #fff)"},$u={...Ca,borderRadius:0,border:"none"},Ra={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"6px 12px",background:"var(--ogrid-header-bg, #f5f5f5)",gap:8,flexWrap:"wrap",minHeight:0},Yu={...Ra,borderBottom:"1px solid var(--ogrid-border, #e0e0e0)"},Zu=Ra,ga={display:"flex",alignItems:"center",gap:8},Ju={borderBottom:"1px solid var(--ogrid-border, #e0e0e0)",padding:"6px 12px",background:"var(--ogrid-header-bg, #f5f5f5)"},Qu={borderTop:"1px solid var(--ogrid-border, #e0e0e0)",background:"var(--ogrid-header-bg, #f5f5f5)",padding:"6px 12px"},ec={width:"100%",minWidth:0,minHeight:0,flex:1,display:"flex"},tc={width:"100%",minWidth:0,minHeight:0,flex:1,display:"flex",flexDirection:"column"},nc={flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},oc={display:"flex",flexDirection:"column",height:"100%"},rc={position:"fixed",inset:0,zIndex:9999,display:"flex",flexDirection:"column",background:"var(--ogrid-bg, #fff)"},lc={background:"none",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:4,padding:"4px 6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--ogrid-fg, #242424)"},ac=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("polyline",{points:"10 2 14 2 14 6"}),jsx("polyline",{points:"6 14 2 14 2 10"}),jsx("line",{x1:"14",y1:"2",x2:"10",y2:"6"}),jsx("line",{x1:"2",y1:"14",x2:"6",y2:"10"})]}),ic=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("polyline",{points:"4 10 0 10 0 14"}),jsx("polyline",{points:"12 6 16 6 16 2"}),jsx("line",{x1:"0",y1:"10",x2:"4",y2:"6"}),jsx("line",{x1:"16",y1:"6",x2:"12",y2:"10"})]});function tr(o){let{containerComponent:e="div",containerProps:t={},className:n,toolbar:l,toolbarEnd:u,toolbarBelow:s,children:d,pagination:i,sideBar:r,fullScreen:m,formulaBar:R,sheetTabs:a}=o,[p,c]=useState(false),f=useCallback(()=>{c(x=>!x);},[]);useEffect(()=>{if(!p)return;let x=w=>{w.key==="Escape"&&c(false);};return document.addEventListener("keydown",x),()=>document.removeEventListener("keydown",x)},[p]);let C=r!=null,g=r?.position??"right",h=l!=null||u!=null||m;return jsx(e,{className:n,style:p?rc:oc,...t,children:jsxs("div",{style:p?$u:Ca,children:[h&&jsxs("div",{style:s?Zu:Yu,children:[jsx("div",{style:ga,children:l}),jsxs("div",{style:ga,children:[u,m?jsx("button",{type:"button",style:lc,onClick:f,title:p?"Exit fullscreen":"Fullscreen","aria-label":p?"Exit fullscreen":"Fullscreen",children:p?jsx(ic,{}):jsx(ac,{})}):null]})]}),s&&jsx("div",{style:Ju,children:s}),R,C?jsxs("div",{style:ec,children:[g==="left"&&jsx(Nn,{...r}),jsx("div",{style:nc,children:d}),g!=="left"&&jsx(Nn,{...r})]}):jsx("div",{style:tc,children:d}),a,i&&jsx("div",{style:Qu,children:i})]})})}function sc({classNames:o,...e}){let t=getStatusBarParts(e);return jsx("div",{className:o?.statusBar,role:"status","aria-live":"polite",children:t.map(n=>jsxs("span",{className:o?.statusBarItem,children:[jsx("span",{className:o?.statusBarLabel,children:n.label}),jsx("span",{className:o?.statusBarValue,children:n.value.toLocaleString()})]},n.key))})}var _n={width:"100%",height:"100%",display:"flex",alignItems:"center",padding:"6px 10px",boxSizing:"border-box",overflow:"hidden",minWidth:0},zn={width:"100%",padding:0,border:"none",background:"transparent",color:"inherit",font:"inherit",fontSize:"13px",outline:"none",minWidth:0},or={..._n,position:"relative"},Sa={position:"absolute",top:"100%",left:0,right:0,maxHeight:200,overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",zIndex:10,boxShadow:"var(--ogrid-shadow, 0 4px 16px rgba(0,0,0,0.2))",textAlign:"left"},Wn={padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)"},rr={...Wn,background:"var(--ogrid-bg-hover, #e8f0fe)"},ba={padding:"6px 8px",color:"var(--ogrid-muted, #999)"},cc={width:"100%",padding:0,border:"none",background:"transparent",color:"inherit",font:"inherit",fontSize:"13px",cursor:"pointer",outline:"none"},va={display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"13px",color:"inherit"},ya={marginLeft:4,fontSize:"10px",opacity:.5};function dc(o){let{value:e,column:t,editorType:n,onCommit:l,onCancel:u,renderCheckbox:s}=o,d=Pe.useRef(null),i=Pe.useRef(u);i.current=u;let{localValue:r,setLocalValue:m,handleKeyDown:R,handleBlur:a,commit:p,cancel:c}=On({value:e,editorType:n,onCommit:l,onCancel:u}),f=t.cellEditorParams?.values??[],C=t.cellEditorParams?.formatValue,g=Un({values:f,formatValue:C,initialValue:e,onCommit:l,onCancel:u}),h=kn({values:f,formatValue:C,initialValue:e,onCommit:l,onCancel:u}),[S,x]=Pe.useState(null);Pe.useLayoutEffect(()=>{if(n!=="select"&&n!=="richSelect")return;let y=d.current;if(!y)return;let b=y.getBoundingClientRect(),I=200,D=window.innerHeight-b.bottom,v=D<I&&b.top>D;x({position:"fixed",...v?{bottom:window.innerHeight-b.top}:{top:b.bottom},left:b.left,width:b.width,maxHeight:I,overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",zIndex:9999,boxShadow:"var(--ogrid-shadow, 0 4px 16px rgba(0,0,0,0.2))",textAlign:"left"});let P=y.closest(".ogrid-table-wrapper")??y.closest('[style*="overflow"]'),A=()=>i.current();return P&&P.addEventListener("scroll",A,{passive:true}),window.addEventListener("scroll",A,{passive:true}),()=>{P&&P.removeEventListener("scroll",A),window.removeEventListener("scroll",A);}},[n]);let w=S??Sa;Pe.useEffect(()=>{let y=d.current;if(!y)return;let b=y.querySelector("input");if(b)if(b.focus(),n==="date")try{b.showPicker();}catch{}else b.select();else y.focus();},[]);let E=S!=null;if(n==="richSelect"){let y=jsxs("div",{style:w,role:"listbox",children:[g.filteredValues.map((b,I)=>jsx("div",{role:"option","aria-selected":I===g.highlightedIndex,onClick:()=>g.selectValue(b),style:I===g.highlightedIndex?rr:Wn,children:g.getDisplayText(b)},String(b))),g.filteredValues.length===0&&jsx("div",{style:ba,children:"No matches"})]});return jsxs("div",{ref:d,style:or,children:[jsx("input",{type:"text",value:g.searchText,onChange:b=>g.setSearchText(b.target.value),onKeyDown:g.handleKeyDown,placeholder:"Search...",autoFocus:true,style:zn}),E?createPortal(y,document.body):y]})}if(n==="checkbox")return jsx(Fragment,{children:s(e===true,b=>p(b),c)});if(n==="select"){let y=jsx("div",{style:w,ref:h.dropdownRef,role:"listbox",children:f.map((b,I)=>jsx("div",{role:"option","aria-selected":I===h.highlightedIndex,onClick:()=>h.selectValue(b),style:I===h.highlightedIndex?rr:Wn,children:h.getDisplayText(b)},String(b)))});return jsxs("div",{ref:d,style:or,onKeyDown:h.handleKeyDown,tabIndex:0,children:[jsxs("div",{style:va,children:[jsx("span",{children:h.getDisplayText(e)}),jsx("span",{style:ya,children:"\u25BE"})]}),E?createPortal(y,document.body):y]})}return n==="date"?jsx("div",{ref:d,style:_n,children:jsx("input",{type:"date",value:r,onChange:y=>m(y.target.value),onBlur:a,onKeyDown:R,style:zn,autoFocus:true})}):jsx("div",{ref:d,style:_n,children:jsx("input",{type:"text",value:r,onChange:y=>m(y.target.value),onBlur:a,onKeyDown:R,style:zn,autoFocus:true})})}var pc=(o,e)=>({left:o,top:e});function fc(o){let{x:e,y:t,hasSelection:n,canUndo:l,canRedo:u,onClose:s,onCopy:d,onCut:i,onPaste:r,onSelectAll:m,onUndo:R,onRedo:a,classNames:p}=o,c=Pe.useRef(null),f=Pe.useMemo(()=>getContextMenuHandlers({onCopy:d,onCut:i,onPaste:r,onSelectAll:m,onUndo:R,onRedo:a,onClose:s}),[d,i,r,m,R,a,s]),C=Pe.useCallback(g=>!!(g.disabledWhenNoSelection&&!n||g.id==="undo"&&!l||g.id==="redo"&&!u),[n,l,u]);return Pe.useEffect(()=>{let g=S=>{c.current&&!c.current.contains(S.target)&&s();},h=S=>{S.key==="Escape"&&s();};return document.addEventListener("mousedown",g,true),document.addEventListener("keydown",h,true),()=>{document.removeEventListener("mousedown",g,true),document.removeEventListener("keydown",h,true);}},[s]),jsx("div",{ref:c,className:p?.contextMenu,role:"menu",style:pc(e,t),"aria-label":"Grid context menu",children:GRID_CONTEXT_MENU_ITEMS.map(g=>jsxs(Pe.Fragment,{children:[g.dividerBefore&&jsx("div",{className:p?.contextMenuDivider}),jsxs("button",{type:"button",className:p?.contextMenuItem,onClick:f[g.id],disabled:C(g),children:[jsx("span",{className:p?.contextMenuItemLabel,children:g.label}),g.shortcut&&jsx("span",{className:p?.contextMenuItemShortcut,children:formatShortcut(g.shortcut)})]})]},g.id))})}var hc={animation:"ogrid-marching-ants 0.5s linear infinite"},Sc={shapeRendering:"crispEdges"},bc={...hc,shapeRendering:"crispEdges"};function vc({containerRef:o,selectionRange:e,copyRange:t,cutRange:n,colOffset:l,items:u,visibleColumns:s,columnSizingOverrides:d,columnOrder:i,isDragging:r}){let[m,R]=useState(null),[a,p]=useState(null),c=useRef(0),f=t??n,C=useCallback(()=>{let w=o.current;if(!w){R(null),p(null);return}R(e?measureRange(w,e,l):null),p(f?measureRange(w,f,l):null);},[e,f,o,l]);if(useEffect(()=>{injectGlobalStyles("ogrid-marching-ants-keyframes","@keyframes ogrid-marching-ants{to{stroke-dashoffset:-8}}");},[]),useEffect(()=>{if(!e&&!f){R(null),p(null);return}c.current=requestAnimationFrame(C);let w=o.current,E;return w&&(E=new ResizeObserver(C),E.observe(w)),()=>{cancelAnimationFrame(c.current),E?.disconnect();}},[e,f,C,o,u,s,d,i]),!m&&!a)return null;let g=e!=null&&f!=null&&e.startRow===f.startRow&&e.startCol===f.startCol&&e.endRow===f.endRow&&e.endCol===f.endCol,h=w=>({top:Math.round(w.top),left:Math.round(w.left),width:Math.round(w.width),height:Math.round(w.height)}),S=m?h(m):null,x=a?h(a):null;return jsxs(Fragment,{children:[S&&!r&&!g&&!(e&&e.startRow===e.endRow&&e.startCol===e.endCol)&&jsx("svg",{style:{position:"absolute",top:S.top,left:S.left,width:S.width,height:S.height,pointerEvents:"none",zIndex:4,overflow:"visible"},"aria-hidden":"true",children:jsx("rect",{x:"1",y:"1",width:Math.max(0,S.width-2),height:Math.max(0,S.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)",strokeWidth:"2",style:Sc})}),x&&jsx("svg",{style:{position:"absolute",top:x.top,left:x.left,width:x.width,height:x.height,pointerEvents:"none",zIndex:5,overflow:"visible"},"aria-hidden":"true",children:jsx("rect",{x:"1",y:"1",width:Math.max(0,x.width-2),height:Math.max(0,x.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)",strokeWidth:"2",strokeDasharray:"4 4",style:bc})})]})}var Ec={shapeRendering:"crispEdges"};function Fc(o,e,t){let n=e.col+t,l=(e.endCol??e.col)+t,u=e.endRow??e.row,s=o.querySelector(`[data-row-index="${e.row}"][data-col-index="${n}"]`),d=o.querySelector(`[data-row-index="${u}"][data-col-index="${l}"]`);if(!s||!d)return null;let i=o.getBoundingClientRect(),r=s.getBoundingClientRect(),m=d.getBoundingClientRect();return {top:Math.round(r.top-i.top),left:Math.round(r.left-i.left),width:Math.round(m.right-r.left),height:Math.round(m.bottom-r.top),color:FORMULA_REF_COLORS[e.colorIndex%FORMULA_REF_COLORS.length]}}function Oc({containerRef:o,references:e,colOffset:t}){let[n,l]=useState([]),u=useRef(0),s=useCallback(()=>{let d=o.current;if(!d||e.length===0){l([]);return}let i=[];for(let r of e){let m=Fc(d,r,t);m&&i.push(m);}l(i);},[e,o,t]);return useEffect(()=>{if(e.length===0){l([]);return}return u.current=requestAnimationFrame(s),()=>cancelAnimationFrame(u.current)},[e,s]),n.length===0?null:jsx(Fragment,{children:n.map((d,i)=>jsx("svg",{style:{position:"absolute",top:d.top,left:d.left,width:d.width,height:d.height,pointerEvents:"none",zIndex:3,overflow:"visible"},"aria-hidden":"true",children:jsx("rect",{x:"1",y:"1",width:Math.max(0,d.width-2),height:Math.max(0,d.height-2),fill:"none",stroke:d.color,strokeWidth:"2",style:Ec})},i))})}var Mc=memo(Oc);function Ac(o){let{isOpen:e,anchorElement:t,onClose:n,onPinLeft:l,onPinRight:u,onUnpin:s,onSortAsc:d,onSortDesc:i,onClearSort:r,onAutosizeThis:m,onAutosizeAll:R,canPinLeft:a,canPinRight:p,canUnpin:c,currentSort:f,isSortable:C,isResizable:g,classNames:h,getPortalTarget:S}=o,[x,w]=Pe.useState(null),E=Pe.useRef(null);Pe.useEffect(()=>{if(!e||!t){w(null);return}let v=t.getBoundingClientRect();w({top:v.bottom+4,left:v.left});let P=G=>{let z=G.target;E.current&&E.current.contains(z)||t&&!t.contains(z)&&n();},A=G=>{G.key==="Escape"&&n();};return document.addEventListener("mousedown",P),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",P),document.removeEventListener("keydown",A);}},[e,t,n]);let y=Pe.useMemo(()=>({canPinLeft:a,canPinRight:p,canUnpin:c,currentSort:f,isSortable:C,isResizable:g}),[a,p,c,f,C,g]),b=Pe.useMemo(()=>getColumnHeaderMenuItems(y),[y]),I=Pe.useMemo(()=>({pinLeft:l,pinRight:u,unpin:s,sortAsc:d,sortDesc:i,clearSort:r,autosizeThis:m,autosizeAll:R}),[l,u,s,d,i,r,m,R]);if(!e||!x)return null;let D=t&&S?S(t):document.body;return createPortal(jsx("div",{ref:E,className:h?.content,style:{position:"fixed",top:x.top,left:x.left,zIndex:1e3},children:b.map((v,P)=>jsxs(Pe.Fragment,{children:[jsx("button",{className:h?.item,disabled:v.disabled,onClick:()=>{I[v.id](),n();},children:v.label}),v.divider&&P<b.length-1&&jsx("div",{className:h?.separator})]},v.id))}),D)}var Ea=Pe.memo(o=>{let{currentPage:e,pageSize:t,totalCount:n,onPageChange:l,onPageSizeChange:u,pageSizeOptions:s,entityLabelPlural:d,className:i,slots:r,classNames:m={}}=o,{labelPlural:R,vm:a,handlePageSizeChange:p}=Gn({currentPage:e,pageSize:t,totalCount:n,onPageSizeChange:u,pageSizeOptions:s,entityLabelPlural:d});if(!a)return null;let{pageNumbers:c,showStartEllipsis:f,showEndEllipsis:C,totalPages:g,startItem:h,endItem:S}=a,{NavButton:x,PageButton:w,PageSizeSelect:E,OuterContainer:y,InfoText:b,NavButtonsContainer:I,PageSizeContainer:D,PageSizeLabel:v,Ellipsis:P}=r,A=`Showing ${h} to ${S} of ${n.toLocaleString()} ${R}`,G=b?jsx(b,{children:A}):jsx("div",{className:m.paginationInfo,children:A}),z=P?jsx(P,{}):jsx("span",{className:m.ellipsis,"aria-hidden":true,children:"\u2026"}),W=v?jsx(v,{}):jsx("span",{className:m.pageSizeLabel,children:"Rows"}),X=jsxs("div",{className:m.pageNumbers,children:[f&&jsxs(Fragment,{children:[jsx(w,{onClick:()=>l(1),active:false,"aria-label":"Page 1",className:m.pageBtn,children:"1"}),z]}),c.map(N=>jsx(w,{onClick:()=>l(N),active:e===N,"aria-label":`Page ${N}`,"aria-current":e===N?"page":void 0,className:m.pageBtn,children:N},N)),C&&jsxs(Fragment,{children:[z,jsx(w,{onClick:()=>l(g),active:false,"aria-label":`Page ${g}`,className:m.pageBtn,children:g})]})]}),k=jsxs(Fragment,{children:[jsx(x,{variant:"first",onClick:()=>l(1),disabled:e===1,"aria-label":"First page",className:m.navBtn}),jsx(x,{variant:"prev",onClick:()=>l(e-1),disabled:e===1,"aria-label":"Previous page",className:m.navBtn}),X,jsx(x,{variant:"next",onClick:()=>l(e+1),disabled:e>=g,"aria-label":"Next page",className:m.navBtn}),jsx(x,{variant:"last",onClick:()=>l(g),disabled:e>=g,"aria-label":"Last page",className:m.navBtn})]}),O=I?jsx(I,{className:m.paginationControls,children:k}):jsx("div",{className:m.paginationControls,children:k}),V=jsxs(Fragment,{children:[W,jsx(E,{value:t,options:a.pageSizeOptions,onChange:p,"aria-label":"Rows per page",className:m.pageSizeSelect})]}),H=D?jsx(D,{className:m.pageSizeSelector,children:V}):jsx("div",{className:m.pageSizeSelector,children:V}),Y=`${m.pagination??""} ${i||""}`.trim(),M="navigation",_="Pagination";return y?jsxs(y,{className:Y,role:M,"aria-label":_,children:[G,O,H]}):jsxs("div",{className:Y,role:M,"aria-label":_,children:[G,O,H]})});Ea.displayName="PaginationControlsBase";var Fa=({columns:o,visibleColumns:e,visibleCount:t,totalCount:n,handleSelectAll:l,handleClearAll:u,handleCheckboxChange:s,CheckboxItem:d,classNames:i={},Header:r,OptionsListContainer:m,OptionItemContainer:R,Actions:a})=>{let p=r?jsx(r,{visibleCount:t,totalCount:n}):jsxs("div",{className:i.header,children:["Select Columns (",t," of ",n,")"]}),c=o.map(g=>{let h=jsx(d,{columnId:g.columnId,columnName:g.name,checked:e.has(g.columnId),disabled:g.required===true,onChange:s(g.columnId)});return R?jsx(R,{columnId:g.columnId,children:h},g.columnId):jsx("div",{className:i.optionItem,children:h},g.columnId)}),f=m?jsx(m,{children:c}):jsx("div",{className:i.optionsList,children:c}),C=a?jsx(a,{onClearAll:u,onSelectAll:l}):jsxs("div",{className:i.actions,children:[jsx("button",{type:"button",className:i.clearButton,onClick:u,children:"Clear All"}),jsx("button",{type:"button",className:i.selectAllButton,onClick:l,children:"Select All"})]});return jsxs(Fragment,{children:[p,f,C]})};Fa.displayName="ColumnChooserContent";function Vc(o){let{DataGridTable:e,ColumnChooser:t,PaginationControls:n,containerComponent:l,containerProps:u}=o,s=forwardRef(function(i,r){let{dataGridProps:m,pagination:R,columnChooser:a,layout:p}=dn(i,r);return jsx(tr,{containerComponent:l,containerProps:u,className:p.className,sideBar:p.sideBarProps,toolbar:p.toolbar,toolbarBelow:p.toolbarBelow,fullScreen:p.fullScreen,formulaBar:p.formulaBar,sheetTabs:p.sheetTabs,toolbarEnd:a.placement==="toolbar"?jsx(t,{columns:a.columns,visibleColumns:a.visibleColumns,onVisibilityChange:a.onVisibilityChange,onSetVisibleColumns:a.onSetVisibleColumns}):void 0,pagination:jsx(n,{currentPage:R.page,pageSize:R.pageSize,totalCount:R.displayTotalCount,onPageChange:R.setPage,onPageSizeChange:R.setPageSize,pageSizeOptions:R.pageSizeOptions,entityLabelPlural:R.entityLabelPlural}),children:jsx(e,{...m})})});return s.displayName="OGrid",Pe.memo(s)}var Nc={color:"var(--ogrid-error, #d32f2f)",fontSize:"0.75rem",padding:"2px 4px"},sr=class extends Pe.Component{constructor(e){super(e),this.state={hasError:false};}static getDerivedStateFromError(){return {hasError:true}}componentDidCatch(e,t){this.props.onError&&this.props.onError(e,t);}componentDidUpdate(e){e.children!==this.props.children&&this.state.hasError&&this.setState({hasError:false});}resetErrorBoundary(){this.setState({hasError:false});}render(){return this.state.hasError?this.props.fallback!==void 0?this.props.fallback:jsx("span",{style:Nc,children:"\u26A0 Error"}):this.props.children}};var zc={background:"none",border:"none",color:"inherit",textDecoration:"underline",cursor:"pointer",padding:0,font:"inherit"};function _c(o){let{message:e,hasActiveFilters:t,onClearAll:n,render:l}=o;return l?jsx(Fragment,{children:l()}):jsx(Fragment,{children:e??(t?jsxs(Fragment,{children:["No items match your current filters. Try adjusting your search or"," ",jsx("button",{type:"button",onClick:n,style:zc,children:"clear all filters"})," ","to see all items."]}):"There are no items available at this time.")})}function Kc({emptyState:o,classNames:e,icon:t}){return jsx("div",{className:e.emptyStateInGrid,children:jsx("div",{className:e.emptyStateInGridInner,children:o.render?o.render():jsxs(Fragment,{children:[t!=null&&jsx("span",{className:e.emptyStateInGridIcon,"aria-hidden":true,children:t}),jsx("div",{className:e.emptyStateInGridTitle,children:"No results found"}),jsx("div",{className:e.emptyStateInGridMessage,children:o.message!=null?o.message:o.hasActiveFilters?jsxs(Fragment,{children:["No items match your current filters. Try adjusting your search or"," ",jsx("button",{type:"button",className:e.emptyStateInGridLink,onClick:o.onClearAll,children:"clear all filters"})," ","to see all items."]}):"There are no items available at this time."})]})})})}function jc({message:o,classNames:e}){return jsx("div",{className:e.loadingOverlay,"aria-live":"polite",children:jsxs("div",{className:e.loadingOverlayContent,children:[jsx("div",{className:e.spinner}),jsx("span",{className:e.loadingOverlayText,children:o})]})})}function qc({dropIndicatorX:o,wrapperLeft:e,className:t}){return jsx("div",{className:t,style:{left:o-e}})}var Yc={padding:"8px 12px",display:"flex",flexDirection:"column",gap:6},Aa={display:"flex",alignItems:"center",gap:6,fontSize:12},La={flex:1},Yn=({tempDateFrom:o,setTempDateFrom:e,tempDateTo:t,setTempDateTo:n,onApply:l,onClear:u,classNames:s})=>jsxs(Fragment,{children:[jsxs("div",{style:Yc,children:[jsxs("label",{style:Aa,children:["From:",jsx("input",{type:"date",value:o,onChange:d=>e(d.target.value),style:La})]}),jsxs("label",{style:Aa,children:["To:",jsx("input",{type:"date",value:t,onChange:d=>n(d.target.value),style:La})]})]}),jsxs("div",{className:s?.popoverActions,children:[jsx("button",{className:s?.clearButton,onClick:u,disabled:!o&&!t,children:"Clear"}),jsx("button",{className:s?.applyButton,onClick:l,children:"Apply"})]})]});Yn.displayName="DateFilterContent";function Zc(o){return {filterType:o.filterType,onSort:o.onSort,selectedValues:o.selectedValues,onFilterChange:o.onFilterChange,options:o.options,isLoadingOptions:o.isLoadingOptions??false,textValue:o.textValue??"",onTextChange:o.onTextChange,selectedUser:o.selectedUser,onUserChange:o.onUserChange,peopleSearch:o.peopleSearch,dateValue:o.dateValue,onDateChange:o.onDateChange}}function Jc(o,e){return {tempDateFrom:o.tempDateFrom,setTempDateFrom:o.setTempDateFrom,tempDateTo:o.tempDateTo,setTempDateTo:o.setTempDateTo,onApply:o.handlers.handleDateApply,onClear:o.handlers.handleDateClear,classNames:e}}function ed(o,e,t,n,l,u){return o==="multiSelect"?u.renderMultiSelect({searchText:e.searchText,onSearchChange:e.setSearchText,options:t,filteredOptions:e.filteredOptions,selected:e.tempSelected,onOptionToggle:e.handlers.handleCheckboxChange,onSelectAll:e.handlers.handleSelectAll,onClearSelection:e.handlers.handleClearSelection,onApply:e.handlers.handleApplyMultiSelect,isLoading:n}):o==="text"?u.renderText({value:e.tempTextValue,onValueChange:e.setTempTextValue,onApply:e.handlers.handleTextApply,onClear:e.handlers.handleTextClear}):o==="people"?u.renderPeople({selectedUser:l,searchText:e.peopleSearchText,onSearchChange:e.setPeopleSearchText,suggestions:e.peopleSuggestions,isLoading:e.isPeopleLoading,onUserSelect:e.handlers.handleUserSelect,onClearUser:e.handlers.handleClearUser,inputRef:e.peopleInputRef}):o==="date"?u.renderDate({tempDateFrom:e.tempDateFrom,setTempDateFrom:e.setTempDateFrom,tempDateTo:e.tempDateTo,setTempDateTo:e.setTempDateTo,onApply:e.handlers.handleDateApply,onClear:e.handlers.handleDateClear}):null}function td(o,e){return {renderMultiSelect:t=>jsx(o.MultiSelectFilterPopover,{...t}),renderText:t=>jsx(o.TextFilterPopover,{...t}),renderPeople:t=>jsx(o.PeopleFilterPopover,{...t}),renderDate:t=>jsx(Yn,{...t,classNames:e})}}export{Ac as BaseColumnHeaderMenu,qc as BaseDropIndicator,Kc as BaseEmptyState,dc as BaseInlineCellEditor,jc as BaseLoadingOverlay,hu as CURSOR_CELL_STYLE,sr as CellErrorBoundary,Fa as ColumnChooserContent,Yn as DateFilterContent,_c as EmptyState,Fo as FormulaBar,Mc as FormulaRefOverlay,Ru as GRID_ROOT_STYLE,fc as GridContextMenu,vc as MarchingAntsOverlay,vu as NOOP,tr as OGridLayout,Su as POPOVER_ANCHOR_STYLE,bu as PREVENT_DEFAULT,Ea as PaginationControlsBase,yu as STOP_PROPAGATION,Oo as SheetTabs,Nn as SideBar,sc as StatusBar,kr as buildInlineEditorProps,Ar as buildPopoverEditorProps,td as createBaseFilterRenderers,Vc as createOGrid,zn as editorInputStyle,_n as editorWrapperStyle,Lr as getCellInteractionProps,Zc as getColumnHeaderFilterStateParams,El as getColumnHeaderMenuProps,Jc as getDateFilterContentProps,ed as renderFilterContent,Mr as resolveCellDisplayContent,Ur as resolveCellStyle,Sa as richSelectDropdownStyle,ba as richSelectNoMatchesStyle,rr as richSelectOptionHighlightedStyle,Wn as richSelectOptionStyle,or as richSelectWrapperStyle,ya as selectChevronStyle,va as selectDisplayStyle,cc as selectEditorStyle,mn as useActiveCell,pn as useCellEditing,gn as useCellSelection,Cn as useClipboard,Yl as useColumnChooserState,$l as useColumnHeaderFilterState,ia as useColumnMeta,An as useColumnReorder,Mn as useColumnResize,fn as useContextMenu,wn as useDataGridState,aa as useDataGridTableOrchestration,Fn as useDateFilterState,bn as useDebounce,In as useFillHandle,ln as useFilterOptions,sn as useFormulaBar,an as useFormulaEngine,On as useInlineCellEditorState,hn as useKeyboardNavigation,L as useLatestRef,oa as useListVirtualizer,Dn as useMultiSelectFilterState,dn as useOGrid,Gn as usePaginationControls,En as usePeopleFilterState,Un as useRichSelectState,Rn as useRowSelection,kn as useSelectState,cn as useSideBarState,xn as useTableLayout,Pn as useTextFilterState,Sn as useUndoRedo,Ln as useVirtualScroll};
|
|
1
|
+
import {getPaginationViewModel,resolveCellDisplayContent,resolveCellStyle,buildInlineEditorProps,buildPopoverEditorProps,createGridDataAccessor,flattenColumns,validateColumns,validateRowIds,columnLetterToIndex,getCellValue,rangesEqual,normalizeSelectionRange,formatSelectionAsTsv,parseTsvClipboard,applyPastedValues,applyCutClear,applyRangeRowSelection,computeRowSelectionState,applyCellDeletion,getScrollTopForRow,computeTabNavigation,computeArrowNavigation,UndoRedoStack,buildCellIndex,applyFillValues,DEFAULT_MIN_COLUMN_WIDTH,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,computeAggregations,getDataGridStatusBarConfig,PEOPLE_SEARCH_DEBOUNCE_MS,measureColumnContentWidth,getPinStateForColumn,validateVirtualScrollConfig,computeVisibleColumnRange,buildHeaderRows,formatCellReference,CellDescriptorCache,GRID_BORDER_RADIUS,getStatusBarParts,getContextMenuHandlers,GRID_CONTEXT_MENU_ITEMS,formatShortcut,measureRange,injectGlobalStyles,getColumnHeaderMenuItems,calculateDropTarget,reorderColumnArray,computeNextSortState,mergeFilter,getMultiSelectFilterFields,deriveFilterOptionsFromData,processClientSideData,processClientSideDataAsync,resolveResponsiveConfig,applyResponsiveHiding,parseValue,ROW_NUMBER_COLUMN_MIN_WIDTH,ROW_NUMBER_COLUMN_ID,computeAutoScrollSpeed}from'@alaarab/ogrid-core';export{CELL_PADDING,CHECKBOX_COLUMN_WIDTH,COLUMN_HEADER_MENU_ITEMS,CellDescriptorCache,DEFAULT_MIN_COLUMN_WIDTH,GRID_BORDER_RADIUS,GRID_CONTEXT_MENU_ITEMS,MAX_PAGE_BUTTONS,PAGE_SIZE_OPTIONS,ROW_NUMBER_COLUMN_ID,ROW_NUMBER_COLUMN_MIN_WIDTH,ROW_NUMBER_COLUMN_WIDTH,UndoRedoStack,areGridRowPropsEqual,booleanParser,buildCsvHeader,buildCsvRows,buildHeaderRows,clampSelectionToBounds,computeAggregations,computeAutoScrollSpeed,computeTabNavigation,currencyParser,dateParser,deriveFilterOptionsFromData,emailParser,escapeCsvValue,exportToCsv,findCtrlArrowTarget,flattenColumns,formatCellReference,formatCellValueForTsv,formatSelectionAsTsv,formatShortcut,getCellRenderDescriptor,getCellValue,getColumnHeaderMenuItems,getContextMenuHandlers,getDataGridStatusBarConfig,getFilterField,getHeaderFilterConfig,getMultiSelectFilterFields,getPaginationViewModel,getStatusBarParts,indexToColumnLetter,isInSelectionRange,isRowInRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,partitionColumnsForVirtualization,processClientSideData,rangesEqual,toUserLike,triggerCsvDownload}from'@alaarab/ogrid-core';import*as Pe from'react';import {memo,useState,useRef,useCallback,useEffect,useMemo,useImperativeHandle,useLayoutEffect,forwardRef}from'react';import {FORMULA_REF_COLORS,FormulaEngine,deriveFormulaBarText,processFormulaBarCommit,insertReferenceAtCursor,extractFormulaReferences,FORMULA_BAR_STYLES,handleFormulaBarKeyDown}from'@alaarab/ogrid-core/formula';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useVirtualizer}from'@tanstack/react-virtual';import {createPortal}from'react-dom';function L(o){let e=useRef(o);return e.current=o,e}function Za(o,e){if(o.length!==e.length)return false;for(let t=0;t<o.length;t++)if(o[t]!==e[t])return false;return true}var Or={},ao={};function ln(o,e){let t=useRef(e);Za(t.current,e)||(t.current=e);let n=t.current,l=L(o),[u,s]=useState(Or),[d,i]=useState(ao),r=useCallback(async()=>{let m=l.current,R="fetchFilterOptions"in m&&typeof m.fetchFilterOptions=="function"?m.fetchFilterOptions.bind(m):void 0;if(!R){s(Or),i(ao);return}let a={};n.forEach(c=>{a[c]=true;}),i(a);let p={};await Promise.all(n.map(async c=>{try{p[c]=await R(c);}catch{p[c]=[];}})),s(p),i(ao);},[n,l]);return useEffect(()=>{r().catch(()=>{});},[r]),{filterOptions:u,loadingOptions:d}}function Mr(o,e,t){return resolveCellDisplayContent(o,e,t)}function Ur(o,e,t){return resolveCellStyle(o,e,t)}function kr(o,e,t,n){return {...buildInlineEditorProps(o,e,t,n),column:e}}function Ar(o,e,t,n,l){return {...buildPopoverEditorProps(o,e,t,n,l),column:e}}function Lr(o,e,t){return {"data-row-index":o.rowIndex,"data-col-index":o.globalColIndex,...o.isActive?{"data-active-cell":"true"}:{},...o.isInRange?{"data-in-range":"true"}:{},tabIndex:o.isActive?0:-1,onPointerDown:n=>t.handleCellMouseDown(n,o.rowIndex,o.globalColIndex),onClick:()=>t.setActiveCell({rowIndex:o.rowIndex,columnIndex:o.globalColIndex}),onContextMenu:t.handleCellContextMenu,...o.canEditAny?{role:"button",onDoubleClick:()=>t.setEditingCell({rowId:o.rowId,columnId:e})}:{}}}var xi={getFormulaValue:()=>{},hasFormula:()=>false,getFormula:()=>{},setFormula:()=>{},onCellChanged:()=>{},getPrecedents:()=>[],getDependents:()=>[],getAuditTrail:()=>null,enabled:false};function an(o){let{formulas:e,items:t,flatColumns:n,initialFormulas:l,onFormulaRecalc:u,formulaFunctions:s,namedRanges:d,sheets:i}=o,r=L(t),m=L(n),R=L(u),a=useRef(null);e&&!a.current?a.current=new FormulaEngine({customFunctions:s,namedRanges:d}):!e&&a.current&&(a.current=null),useEffect(()=>{if(!(!a.current||!i)){for(let[y,b]of Object.entries(i))a.current.registerSheet(y,b);return ()=>{if(!(!a.current||!i))for(let y of Object.keys(i))a.current.unregisterSheet(y);}}},[i]);let p=useCallback(()=>createGridDataAccessor(r.current,m.current),[r,m]),c=useRef(false);useEffect(()=>{if(e&&a.current&&l&&!c.current){c.current=true;let y=p(),b=a.current.loadFormulas(l,y);b.updatedCells.length>0&&R.current?.(b);}},[e,l,p,R]);let f=useCallback((y,b)=>a.current?.getValue(y,b),[]),C=useCallback((y,b)=>a.current?.hasFormula(y,b)??false,[]),g=useCallback((y,b)=>a.current?.getFormula(y,b),[]),h=useCallback((y,b,I)=>{if(!a.current)return;let D=p(),v=a.current.setFormula(y,b,I,D);v.updatedCells.length>0&&R.current?.(v);},[p,R]),S=useCallback((y,b)=>{if(!a.current)return;let I=p(),D=a.current.onCellChanged(y,b,I);D.updatedCells.length>0&&R.current?.(D);},[p,R]),x=useCallback((y,b)=>a.current?.getPrecedents(y,b)??[],[]),w=useCallback((y,b)=>a.current?.getDependents(y,b)??[],[]),E=useCallback((y,b)=>a.current?.getAuditTrail(y,b)??null,[]);return e?{getFormulaValue:f,hasFormula:C,getFormula:g,setFormula:h,onCellChanged:S,getPrecedents:x,getDependents:w,getAuditTrail:E,enabled:true}:xi}function sn(o){let{activeCol:e,activeRow:t,activeCellRef:n,getFormula:l,getRawValue:u,setFormula:s,onCellValueChanged:d}=o,[i,r]=useState(false),[m,R]=useState(""),a=useRef(false),p=useRef(null),c=useMemo(()=>deriveFormulaBarText(e,t,l,u),[e,t,l,u]);useEffect(()=>{r(false),a.current=false;},[e,t]);let f=useCallback(()=>{R(c),r(true),a.current=true;},[c]),C=useCallback(E=>{R(E);},[]),g=useCallback(()=>{e==null||t==null||!s||(processFormulaBarCommit(m,e,t,s,d),r(false),a.current=false);},[e,t,m,s,d]),h=useCallback(()=>{r(false),a.current=false,R("");},[]),S=useCallback(E=>{if(!a.current||!m.startsWith("="))return false;let y=p.current?.selectionStart??m.length,b=insertReferenceAtCursor(m,y,E);return R(b.text),setTimeout(()=>{p.current&&(p.current.selectionStart=b.cursorPos,p.current.selectionEnd=b.cursorPos,p.current.focus());},0),true},[m]),x=i?m:c,w=useMemo(()=>extractFormulaReferences(x),[x]);return {cellRef:n,formulaText:i?m:c,isEditing:i,onInputChange:C,onCommit:g,onCancel:h,startEditing:f,referencedCells:w,isFormulaBarEditing:a,insertReference:S,inputRef:p}}function Fo({cellRef:o,formulaText:e,isEditing:t,onInputChange:n,onCommit:l,onCancel:u,startEditing:s,inputRef:d}){let i=useRef(null),r=d??i;return useEffect(()=>{t&&r.current&&r.current.focus();},[t,r]),jsxs("div",{style:FORMULA_BAR_STYLES.bar,role:"toolbar","aria-label":"Formula bar",children:[jsx("div",{style:FORMULA_BAR_STYLES.nameBox,"aria-label":"Active cell reference",children:o??"\u2014"}),jsx("div",{style:FORMULA_BAR_STYLES.fxLabel,"aria-hidden":"true",children:"fx"}),jsx("input",{ref:r,type:"text",style:FORMULA_BAR_STYLES.input,value:e,readOnly:!t,onChange:m=>n(m.target.value),onKeyDown:m=>handleFormulaBarKeyDown(m.key,()=>m.preventDefault(),l,u),onClick:()=>{t||s();},onDoubleClick:()=>{t||s();},"aria-label":"Formula input",spellCheck:false,autoComplete:"off"})]})}var Ai={display:"flex",alignItems:"center",borderTop:"1px solid var(--ogrid-border, #e0e0e0)",background:"var(--ogrid-header-bg, #f5f5f5)",minHeight:30,overflowX:"auto",overflowY:"hidden",gap:0,fontSize:12},Li={background:"none",border:"none",cursor:"pointer",padding:"4px 10px",fontSize:16,lineHeight:"22px",color:"var(--ogrid-fg-secondary, #666)",flexShrink:0},tl={background:"none",border:"none",borderBottom:"2px solid transparent",cursor:"pointer",padding:"4px 16px",fontSize:12,lineHeight:"22px",color:"var(--ogrid-fg, #242424)",whiteSpace:"nowrap",position:"relative"},Gi={...tl,fontWeight:600,borderBottomColor:"var(--ogrid-primary, #217346)",background:"var(--ogrid-bg, #fff)"};function Oo({sheets:o,activeSheet:e,onSheetChange:t,onSheetAdd:n}){let l=useCallback(u=>{let s=u.currentTarget.dataset.sheetId;s&&t(s);},[t]);return jsxs("div",{style:Ai,role:"tablist","aria-label":"Sheet tabs",children:[n&&jsx("button",{type:"button",style:Li,onClick:n,title:"Add sheet","aria-label":"Add sheet",children:"+"}),o.map(u=>{let s=u.id===e,d=s?Gi:tl,i=u.color?{...d,borderBottomColor:u.color}:d;return jsx("button",{type:"button",role:"tab","aria-selected":s,style:i,"data-sheet-id":u.id,onClick:l,children:u.name},u.id)})]})}function rl(o){let{controlledPage:e,controlledPageSize:t,defaultPageSize:n,onPageChange:l,onPageSizeChange:u}=o,[s,d]=useState(1),[i,r]=useState(n),m=e??s,R=t??i,a=useCallback(c=>{e===void 0&&d(c),l?.(c);},[e,l]),p=useCallback(c=>{t===void 0&&r(c),u?.(c),a(1);},[t,u,a]);return {page:m,pageSize:R,setPage:a,setPageSize:p}}function al(o){let{controlledSort:e,defaultSortField:t,defaultSortDirection:n,onSortChange:l,setPage:u}=o,[s,d]=useState({field:t,direction:n}),i=e??s,r=useCallback(R=>{e===void 0&&d(R),l?.(R),u(1);},[e,l,u]),m=useCallback((R,a)=>{r(computeNextSortState(i,R,a));},[i,r]);return {sort:i,setSort:r,handleSort:m,defaultSortField:t,defaultSortDirection:n}}function il(o,e){let t=useRef(o);return e(o,t.current)||(t.current=o),t.current}function zi(o,e){let t=Object.keys(o),n=Object.keys(e);if(t.length!==n.length)return false;for(let l=0;l<n.length;l++)if(o[n[l]]!==e[n[l]])return false;return true}var _i={},Wi={fetchFilterOptions:void 0};function ul(o){let{controlledFilters:e,onFiltersChange:t,setPage:n,columns:l,displayData:u,dataSource:s}=o,[d,i]=useState({}),r=e??d,m=useCallback(x=>{e===void 0&&i(x),t?.(x),n(1);},[e,t,n]),R=useCallback((x,w)=>{m(mergeFilter(r,x,w));},[r,m]),a=il(r,(x,w)=>zi(x,w)),p=useMemo(()=>Object.values(r).some(x=>x!==void 0),[r]),c=useMemo(()=>getMultiSelectFilterFields(l),[l]),f=s??Wi,{filterOptions:C,loadingOptions:g}=ln(f,c),h=s?.fetchFilterOptions!=null,S=useMemo(()=>h?C:deriveFilterOptionsFromData(u,l),[h,u,l,C]);return {filters:r,setFilters:m,handleFilterChange:R,stableFilters:a,hasActiveFilters:p,clientFilterOptions:S,loadingFilterOptions:s?.fetchFilterOptions?g:_i}}function cl(o){let{isServerSide:e,dataSource:t,displayData:n,columns:l,stableFilters:u,sort:s,page:d,pageSize:i,onError:r,onFirstDataRendered:m,workerSort:R}=o,a=!e,p=R===true||R==="auto"&&n.length>5e3,c=useMemo(()=>{if(!a||p)return null;let k=processClientSideData(n,l,u,s.field,s.direction),O=k.length,V=(d-1)*i;return {items:k.slice(V,V+i),totalCount:O}},[a,p,n,l,u,s.field,s.direction,d,i]),[f,C]=useState(null),g=useRef(0);useEffect(()=>{if(!a||!p){C(null);return}let k=++g.current;processClientSideDataAsync(n,l,u,s.field,s.direction).then(O=>{if(k!==g.current)return;let V=O.length,H=(d-1)*i,Y=O.slice(H,H+i);C({items:Y,totalCount:V});});},[a,p,n,l,u,s.field,s.direction,d,i]);let[h,S]=useState([]),[x,w]=useState(0),[E,y]=useState(true),b=useRef(0),[I,D]=useState(0),v=L(t),P=L(r);useEffect(()=>{if(!e||!v.current){e||y(false);return}let k=v.current,O=++b.current;y(true),k.fetchPage({page:d,pageSize:i,sort:{field:s.field,direction:s.direction},filters:u}).then(V=>{O===b.current&&(S(V.items),w(V.totalCount));}).catch(V=>{O===b.current&&(P.current?.(V),S([]),w(0));}).finally(()=>{O===b.current&&y(false);});},[e,d,i,s.field,s.direction,u,I,v,P]);let A=c??f,G=a&&A?A.items:h,z=a&&A?A.totalCount:x,W=L(m),X=useRef(false);return useEffect(()=>{!X.current&&G.length>0&&(X.current=true,W.current?.());},[G.length,W]),{displayItems:G,displayTotalCount:z,serverLoading:E,refreshData:()=>D(k=>k+1)}}var ml=["columns","filters"];function cn(o){let{config:e}=o,t=e!=null&&e!==false,n=useMemo(()=>{if(!t||e===true)return {panels:ml,position:"right",defaultPanel:null};let i=e;return {panels:i.panels??ml,position:i.position??"right",defaultPanel:i.defaultPanel??null}},[t,e]),[l,u]=useState(n.defaultPanel),s=useCallback(i=>{u(r=>r===i?null:i);},[]),d=useCallback(()=>{u(null);},[]);return {isEnabled:t,activePanel:l,setActivePanel:u,panels:n.panels,position:n.position,isOpen:l!==null,toggle:s,close:d}}var Qi=25,es={},ts={fontFamily:"monospace",fontSize:"12px",fontWeight:500,padding:"2px 8px",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:3,background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",minWidth:48,textAlign:"center",lineHeight:"20px",userSelect:"none"};function dn(o,e){let{columns:t,getRowId:n,data:l,dataSource:u,page:s,pageSize:d,sort:i,filters:r,visibleColumns:m,isLoading:R,onPageChange:a,onPageSizeChange:p,onSortChange:c,onFiltersChange:f,onVisibleColumnsChange:C,columnOrder:g,onColumnOrderChange:h,onColumnResized:S,onColumnPinned:x,defaultPageSize:w=Qi,defaultSortBy:E,defaultSortDirection:y="asc",toolbar:b,toolbarBelow:I,emptyState:D,entityLabelPlural:v="items",className:P,layoutMode:A="fill",suppressHorizontalScroll:G,editable:z,cellSelection:W,onCellValueChanged:X,onUndo:k,onRedo:O,canUndo:V,canRedo:H,rowSelection:Y="none",selectedRows:M,onSelectionChange:_,showRowNumbers:N,cellReferences:T,statusBar:B,pageSizeOptions:F,sideBar:J,stickyHeader:$,fullScreen:Z,onFirstDataRendered:K,onError:j,columnChooser:q,columnReorder:te,responsiveColumns:ae,virtualScroll:De,rowHeight:Ye,density:Ze="normal",workerSort:Ke,formulas:Ce,initialFormulas:st,onFormulaRecalc:Ae,formulaFunctions:ut,namedRanges:ct,sheets:dt,sheetDefs:Le,activeSheet:je,onSheetChange:he,onSheetAdd:Ge,"aria-label":Je,"aria-labelledby":Qe}=o,Xe=L(n),Se=useCallback(U=>Xe.current(U),[Xe]),et=L(h),mt=h!=null,ge=useMemo(()=>mt?U=>et.current?.(U):void 0,[mt,et]),zt=L(X),_t=X!=null,Wt=useMemo(()=>_t?U=>zt.current?.(U):void 0,[_t,zt]),pt=L(k),wt=k!=null,Kt=useMemo(()=>wt?()=>pt.current?.():void 0,[wt,pt]),Pt=L(O),Be=O!=null,jt=useMemo(()=>Be?()=>Pt.current?.():void 0,[Be,Pt]),Xt=q===false?"none":q==="sidebar"?"sidebar":"toolbar",ne=useMemo(()=>flattenColumns(t),[t]),Ee=u!=null,Tt=useRef(false);useEffect(()=>{validateColumns(ne);},[ne]);let Jn=E??ne[0]?.columnId??"",[Qn,qt]=useState([]),[Dt,eo]=useState(false),$t=l??Qn,to=R??Dt,oe=rl({controlledPage:s,controlledPageSize:d,defaultPageSize:w,onPageChange:a,onPageSizeChange:p}),ce=al({controlledSort:i,defaultSortField:Jn,defaultSortDirection:y,onSortChange:c,setPage:oe.setPage}),ee=ul({controlledFilters:r,onFiltersChange:f,setPage:oe.setPage,columns:ne,displayData:$t,dataSource:u}),de=cl({isServerSide:Ee,dataSource:u,displayData:$t,columns:ne,stableFilters:ee.stableFilters,sort:ce.sort,page:oe.page,pageSize:oe.pageSize,onError:j,onFirstDataRendered:K,workerSort:Ke});useEffect(()=>{let U=de.displayItems;!Tt.current&&U.length>0&&(Tt.current=true,validateRowIds(U,Se));},[de.displayItems,Se]);let[Et,Yt]=useState(()=>{let U=ne.filter(Q=>Q.defaultVisible!==false).map(Q=>Q.columnId);return new Set(U.length>0?U:ne.map(Q=>Q.columnId))}),Zt=useRef(ne.length);useEffect(()=>{let U=Zt.current;if(Zt.current=ne.length,m===void 0&&U===0&&ne.length>0&&Et.size===0){let Q=ne.filter(ie=>ie.defaultVisible!==false).map(ie=>ie.columnId);Yt(new Set(Q.length>0?Q:ne.map(ie=>ie.columnId)));}},[ne,m,Et.size]);let be=m??Et,Te=useCallback(U=>{m===void 0&&Yt(U),C?.(U);},[m,C]),qe=useCallback((U,Q)=>{let ie=new Set(be);Q?ie.add(U):ie.delete(U),Te(ie);},[be,Te]),[no,tt]=useState(new Set),nt=M??no,Jt=useCallback(U=>{M===void 0&&tt(new Set(U.selectedRowIds)),_?.(U);},[M,_]),[Ft,Qt]=useState({}),[Ot,en]=useState(()=>{let U={};for(let Q of flattenColumns(t))Q.pinned&&(U[Q.columnId]=Q.pinned);return U}),tn=useCallback((U,Q)=>{Qt(ie=>({...ie,[U]:Q})),S?.(U,Q);},[S]),ft=useCallback((U,Q)=>{en(ie=>{if(Q===null){let{[U]:lo,...ja}=ie;return ja}return {...ie,[U]:Q}}),x?.(U,Q);},[x]),gt=L(be),nn=L(ce.sort),Ct=L(g),Rt=L(Ft),Mt=L(Ot),ve=L(ee.filters),Ve=L(nt),$e=L(de.displayItems),mr=L(Se),on=L(ne);useImperativeHandle(e,()=>({setRowData:U=>{Ee||qt(U);},setLoading:eo,getColumnState:()=>({visibleColumns:Array.from(gt.current),sort:nn.current,columnOrder:Ct.current??void 0,columnWidths:Object.keys(Rt.current).length>0?Rt.current:void 0,filters:Object.keys(ve.current).length>0?ve.current:void 0,pinnedColumns:Object.keys(Mt.current).length>0?Mt.current:void 0}),applyColumnState:U=>{U.visibleColumns&&Te(new Set(U.visibleColumns)),U.sort&&ce.setSort(U.sort),U.columnOrder&&ge&&ge(U.columnOrder),U.columnWidths&&Qt(U.columnWidths),U.filters&&ee.setFilters(U.filters),U.pinnedColumns&&en(U.pinnedColumns);},setFilterModel:ee.setFilters,getSelectedRows:()=>Array.from(Ve.current),setSelectedRows:U=>{M===void 0&&tt(new Set(U));},selectAll:()=>{let U=$e.current,Q=new Set(U.map(ie=>mr.current(ie)));M===void 0&&tt(Q),_?.({selectedRowIds:Array.from(Q),selectedItems:U});},deselectAll:()=>{M===void 0&&tt(new Set),_?.({selectedRowIds:[],selectedItems:[]});},clearFilters:()=>ee.setFilters({}),clearSort:()=>ce.setSort({field:ce.defaultSortField,direction:ce.defaultSortDirection}),resetGridState:U=>{ee.setFilters({}),ce.setSort({field:ce.defaultSortField,direction:ce.defaultSortDirection}),U?.keepSelection||(M===void 0&&tt(new Set),_?.({selectedRowIds:[],selectedItems:[]}));},getDisplayedRows:()=>$e.current,refreshData:()=>{Ee&&de.refreshData();},getColumnOrder:()=>Ct.current??on.current.map(U=>U.columnId),setColumnOrder:U=>{ge?.(U);},scrollToRow:()=>{}}),[Ee,Te,ce,ee,ge,M,_,de,Ct,Rt,on,$e,Ve,ve,mr,Mt,nn,gt]);let pr=useMemo(()=>{if(!B)return;if(typeof B=="object")return B;let U=Ee?de.displayTotalCount:l?.length??0,Q=de.displayTotalCount;return {totalCount:U,filteredCount:ee.hasActiveFilters?Q:void 0,selectedCount:nt.size,suppressRowCount:true}},[B,Ee,l,de.displayTotalCount,ee.hasActiveFilters,nt.size]),Fe=cn({config:J}),rn=useMemo(()=>ne.map(U=>({columnId:U.columnId,name:U.name,required:U.required===true})),[ne]),fr=useMemo(()=>ne.filter(U=>U.filterable&&U.filterable.type).map(U=>({columnId:U.columnId,name:U.name,filterField:U.filterable?.filterField??U.columnId,filterType:U.filterable?.type})),[ne]),gr=useMemo(()=>Fe.isEnabled?{activePanel:Fe.activePanel,onPanelChange:Fe.setActivePanel,panels:Fe.panels,position:Fe.position,columns:rn,visibleColumns:be,onVisibilityChange:qe,onSetVisibleColumns:Te,filterableColumns:fr,filters:ee.filters,onFilterChange:ee.handleFilterChange,filterOptions:ee.clientFilterOptions}:null,[Fe.isEnabled,Fe.activePanel,Fe.setActivePanel,Fe.panels,Fe.position,rn,be,qe,Te,fr,ee.filters,ee.handleFilterChange,ee.clientFilterOptions]),[Cr,Ga]=useState(0),Ba=useCallback(U=>{Ga(Q=>Q+1),Ae?.(U);},[Ae]),re=an({formulas:Ce,items:de.displayItems,flatColumns:ne,initialFormulas:st,onFormulaRecalc:Ba,formulaFunctions:ut,namedRanges:ct,sheets:dt}),Rr=useCallback(()=>ee.setFilters({}),[ee]),hr=Ee&&de.serverLoading||to,Sr=N||T||Ce,br=!!(T||Ce),ht=!!T&&!Ce,vr=!!(T||Ce),[oo,Va]=useState(null),[yr,ro]=useState(null),Ir=useCallback(U=>{if(Va(U),U){let Q=U.match(/^([A-Z]+)(\d+)$/);ro(Q?{col:columnLetterToIndex(Q[1]),row:parseInt(Q[2],10)-1}:null);}else ro(null);},[]),Na=useCallback((U,Q)=>{let ie=$e.current,lo=on.current;if(!(Q<0||Q>=ie.length||U<0||U>=lo.length))return getCellValue(ie[Q],lo[U])},[$e,on]),le=sn({activeCol:yr?.col??null,activeRow:yr?.row??null,activeCellRef:oo,getFormula:re.enabled?re.getFormula:void 0,getRawValue:Na,setFormula:re.enabled?re.setFormula:void 0}),Ha=useMemo(()=>({items:de.displayItems,columns:t,getRowId:Se,sortBy:ce.sort.field,sortDirection:ce.sort.direction,onColumnSort:ce.handleSort,visibleColumns:be,columnOrder:g,onColumnOrderChange:ge,onColumnResized:tn,onColumnPinned:ft,pinnedColumns:Ot,initialColumnWidths:Ft,editable:z,cellSelection:W,onCellValueChanged:Wt,onUndo:Kt,onRedo:jt,canUndo:V,canRedo:H,rowSelection:Y,selectedRows:nt,onSelectionChange:Jt,showRowNumbers:Sr,showColumnLetters:br,showNameBox:ht,onActiveCellChange:vr?Ir:void 0,currentPage:oe.page,pageSize:oe.pageSize,statusBar:pr,isLoading:hr,filters:ee.filters,onFilterChange:ee.handleFilterChange,filterOptions:ee.clientFilterOptions,loadingFilterOptions:u?.fetchFilterOptions?ee.loadingFilterOptions:es,peopleSearch:u?.searchPeople,getUserByEmail:u?.getUserByEmail,layoutMode:A,suppressHorizontalScroll:G,stickyHeader:$??true,columnReorder:te,responsiveColumns:ae,virtualScroll:De,rowHeight:Ye,density:Ze,"aria-label":Je,"aria-labelledby":Qe,emptyState:{hasActiveFilters:ee.hasActiveFilters,onClearAll:Rr,message:D?.message,render:D?.render},formulas:Ce,getFormulaValue:re.enabled?re.getFormulaValue:void 0,hasFormula:re.enabled?re.hasFormula:void 0,getFormula:re.enabled?re.getFormula:void 0,setFormula:re.enabled?re.setFormula:void 0,onFormulaCellChanged:re.enabled?re.onCellChanged:void 0,getPrecedents:re.enabled?re.getPrecedents:void 0,getDependents:re.enabled?re.getDependents:void 0,getAuditTrail:re.enabled?re.getAuditTrail:void 0,formulaVersion:Cr,formulaReferences:le.referencedCells.length>0?le.referencedCells:void 0,onFormulaInsertReference:le.insertReference}),[de.displayItems,t,Se,ce.sort.field,ce.sort.direction,ce.handleSort,be,g,ge,tn,ft,Ot,Ft,z,W,Wt,Kt,jt,V,H,Y,nt,Jt,Sr,br,ht,vr,Ir,oe.page,oe.pageSize,pr,hr,ee.filters,ee.handleFilterChange,ee.clientFilterOptions,u,ee.loadingFilterOptions,A,G,$,te,ae,De,Ye,Ze,Je,Qe,ee.hasActiveFilters,Rr,D,Ce,re,Cr,le.referencedCells,le.insertReference]),za=useMemo(()=>({page:oe.page,pageSize:oe.pageSize,displayTotalCount:de.displayTotalCount,setPage:oe.setPage,setPageSize:oe.setPageSize,pageSizeOptions:F,entityLabelPlural:v}),[oe.page,oe.pageSize,de.displayTotalCount,oe.setPage,oe.setPageSize,F,v]),_a=useMemo(()=>({columns:rn,visibleColumns:be,onVisibilityChange:qe,onSetVisibleColumns:Te,placement:Xt}),[rn,be,qe,Te,Xt]),xr=useMemo(()=>ht?Pe.createElement("div",{style:ts,"aria-label":"Active cell reference"},oo??"\u2014"):null,[ht,oo]),wr=useMemo(()=>ht?Pe.createElement(Pe.Fragment,null,xr,b):b,[ht,xr,b]),Pr=useMemo(()=>{if(Ce)return Pe.createElement(Fo,{cellRef:le.cellRef,formulaText:le.formulaText,isEditing:le.isEditing,onInputChange:le.onInputChange,onCommit:le.onCommit,onCancel:le.onCancel,startEditing:le.startEditing,inputRef:le.inputRef})},[Ce,le.cellRef,le.formulaText,le.isEditing,le.onInputChange,le.onCommit,le.onCancel,le.startEditing,le.inputRef]),Tr=useMemo(()=>{if(!(!Le||Le.length===0||!je||!he))return Pe.createElement(Oo,{sheets:Le,activeSheet:je,onSheetChange:he,onSheetAdd:Ge})},[Le,je,he,Ge]),Wa=useMemo(()=>({toolbar:wr,toolbarBelow:I,className:P,emptyState:D,sideBarProps:gr,fullScreen:Z,formulaBar:Pr,sheetTabs:Tr}),[wr,I,P,D,gr,Z,Pr,Tr]),Ka=useMemo(()=>({hasActiveFilters:ee.hasActiveFilters,setFilters:ee.setFilters}),[ee.hasActiveFilters,ee.setFilters]);return {dataGridProps:Ha,pagination:za,columnChooser:_a,layout:Wa,filters:Ka}}function mn(o,e){let[t,n]=useState(null),l=useRef(t);l.current=t;let u=useCallback(d=>{let i=l.current;i!==d&&(i&&d&&i.rowIndex===d.rowIndex&&i.columnIndex===d.columnIndex||n(d));},[]),s=useRef(0);return useLayoutEffect(()=>{if(t==null||o?.current==null||e!=null)return;let{rowIndex:d,columnIndex:i}=t,r=`[data-row-index="${d}"][data-col-index="${i}"]`,m=o.current.querySelector(r);m&&document.activeElement!==m&&typeof m.focus=="function"&&m.focus({preventScroll:true});},[t,e,o]),useEffect(()=>{t==null||o?.current==null||e!=null||(cancelAnimationFrame(s.current),s.current=requestAnimationFrame(()=>{let d=o?.current;if(!d)return;let{rowIndex:i,columnIndex:r}=t,m=`[data-row-index="${i}"][data-col-index="${r}"]`,R=d.querySelector(m);if(R){let a=d.querySelector("thead"),p=a?a.getBoundingClientRect().height:0,c=d.getBoundingClientRect(),f=R.getBoundingClientRect(),C=c.top+p;f.top<C?d.scrollTop-=C-f.top:f.bottom>c.bottom&&(d.scrollTop+=f.bottom-c.bottom),f.left<c.left?d.scrollLeft-=c.left-f.left:f.right>c.right&&(d.scrollLeft+=f.right-c.right);}}));},[t,e,o]),useEffect(()=>()=>cancelAnimationFrame(s.current),[]),{activeCell:t,setActiveCell:u}}function pn(){let[o,e]=useState(null),[t,n]=useState(void 0);return {editingCell:o,setEditingCell:e,pendingEditorValue:t,setPendingEditorValue:n}}function fn(){let[o,e]=useState(null),t=useCallback(l=>{l.preventDefault?.(),e({x:l.clientX,y:l.clientY});},[]),n=useCallback(()=>{e(null);},[]);return {contextMenuPosition:o,setContextMenuPosition:e,handleCellContextMenu:t,closeContextMenu:n}}var Go="data-drag-range",Gt="data-drag-anchor",fe=40,is=16;function gn(o){let{colOffset:e,rowCount:t,visibleColCount:n,setActiveCell:l,wrapperRef:u}=o,s=L(e),[d,i]=useState(null),r=useRef(false),[m,R]=useState(false),a=useRef(false),p=useRef(null),c=useRef(0),f=useRef(null),C=useRef(null),g=useRef(d);g.current=d;let h=useCallback(y=>{rangesEqual(g.current,y)||i(y);},[]),S=useCallback((y,b,I)=>{if(y.button!==0)return;let D=s.current;if(I<D)return;y.preventDefault();let v=I-D,P=g.current;if(y.shiftKey&&P!=null)h(normalizeSelectionRange({startRow:P.startRow,startCol:P.startCol,endRow:b,endCol:v})),l({rowIndex:b,columnIndex:I});else {p.current={row:b,col:v},a.current=false;let A={startRow:b,startCol:v,endRow:b,endCol:v};h(A),f.current=A,l({rowIndex:b,columnIndex:I}),r.current=true,setTimeout(()=>E.current?.(A),0);}},[l,s,h]),x=useCallback(()=>{t===0||n===0||(h({startRow:0,startCol:0,endRow:t-1,endCol:n-1}),l({rowIndex:0,columnIndex:s.current}));},[t,n,l,s,h]),w=useRef(null),E=useRef(null);return useEffect(()=>{let y=new Set,b=null,I=null,D=null,v=(M,_,N,T,B,F,J,$)=>{M.hasAttribute(Go)||M.setAttribute(Go,""),$&&_===$.row&&N===$.col?M.hasAttribute(Gt)||M.setAttribute(Gt,""):M.hasAttribute(Gt)&&M.removeAttribute(Gt),y.add(M);},P=M=>{M.removeAttribute(Go),M.removeAttribute(Gt);},A=(M,_,N,T,B)=>{let F=b?.get(`${M},${N+B}`),J=b?.get(`${_},${T+B}`);if(!F||!J)return;let $=F.closest("td"),Z=J.closest("td");if(!$||!Z||!D&&(D=F.closest("table")?.parentElement,!D))return;I||(I=document.createElement("div"),I.style.position="absolute",I.style.border="2px solid var(--ogrid-selection, #217346)",I.style.pointerEvents="none",I.style.zIndex="4",I.style.boxSizing="border-box",D.appendChild(I));let K=D.getBoundingClientRect(),j=$.getBoundingClientRect(),q=Z.getBoundingClientRect();I.style.top=`${Math.round(j.top-K.top)}px`,I.style.left=`${Math.round(j.left-K.left)}px`,I.style.width=`${Math.round(q.right-j.left)}px`,I.style.height=`${Math.round(q.bottom-j.top)}px`,I.style.display="block";},G=()=>{I&&(I.style.display="none");},z=()=>{I?.remove(),I=null,D=null;},W=M=>{if(!u.current||!r.current)return;let N=Math.min(M.startRow,M.endRow),T=Math.max(M.startRow,M.endRow),B=Math.min(M.startCol,M.endCol),F=Math.max(M.startCol,M.endCol),J=p.current,$=s.current;for(let K of y){let j=parseInt(K.getAttribute("data-row-index")??"",10),q=parseInt(K.getAttribute("data-col-index")??"",10)-$;j>=N&&j<=T&&q>=B&&q<=F||(P(K),y.delete(K));}b||(b=buildCellIndex(u.current));let Z=false;for(let K=N;K<=T;K++)for(let j=B;j<=F;j++){let q=`${K},${j+$}`,te=b?.get(q);te&&!te.isConnected&&!Z&&(Z=true,b=buildCellIndex(u.current),te=b?.get(q)),te&&te.isConnected&&v(te,K,j,N,T,B,F,J);}A(N,T,B,F,$);};E.current=W;let X=()=>{for(let M of y)P(M);y.clear(),b=null,G();},k=(M,_)=>{if(!p.current)return null;let T=document.elementFromPoint(M,_)?.closest?.("[data-row-index][data-col-index]");if(!T)return null;let B=parseInt(T.getAttribute("data-row-index")??"",10),F=parseInt(T.getAttribute("data-col-index")??"",10),J=s.current;if(Number.isNaN(B)||Number.isNaN(F)||F<J)return null;let $=F-J,Z=p.current;return normalizeSelectionRange({startRow:Z.row,startCol:Z.col,endRow:B,endCol:$})},O=()=>{let M=u.current,_=w.current;if(!M||!_||!r.current){V();return}let N=M.getBoundingClientRect(),T=0,B=0;if(_.cy<N.top+fe?B=-computeAutoScrollSpeed(N.top+fe-_.cy):_.cy>N.bottom-fe&&(B=computeAutoScrollSpeed(_.cy-(N.bottom-fe))),_.cx<N.left+fe?T=-computeAutoScrollSpeed(N.left+fe-_.cx):_.cx>N.right-fe&&(T=computeAutoScrollSpeed(_.cx-(N.right-fe))),T===0&&B===0){V();return}C.current||(C.current=setInterval(()=>{let F=u.current,J=w.current;if(!F||!J||!r.current){V();return}let $=F.getBoundingClientRect(),Z=0,K=0;if(J.cy<$.top+fe?K=-computeAutoScrollSpeed($.top+fe-J.cy):J.cy>$.bottom-fe&&(K=computeAutoScrollSpeed(J.cy-($.bottom-fe))),J.cx<$.left+fe?Z=-computeAutoScrollSpeed($.left+fe-J.cx):J.cx>$.right-fe&&(Z=computeAutoScrollSpeed(J.cx-($.right-fe))),Z===0&&K===0){V();return}F.scrollTop+=K,F.scrollLeft+=Z;let j=k(J.cx,J.cy);j&&(f.current=j,W(j));},is));},V=()=>{C.current&&(clearInterval(C.current),C.current=null);},H=M=>{!r.current||!p.current||(a.current||(a.current=true,R(true),b=buildCellIndex(u.current)),w.current={cx:M.clientX,cy:M.clientY},O(),c.current&&cancelAnimationFrame(c.current),c.current=requestAnimationFrame(()=>{c.current=0;let _=w.current;if(!_)return;let N=k(_.cx,_.cy);if(!N)return;let T=f.current;T&&T.startRow===N.startRow&&T.startCol===N.startCol&&T.endRow===N.endRow&&T.endCol===N.endCol||(f.current=N,W(N));}));},Y=()=>{if(!r.current)return;V(),c.current&&(cancelAnimationFrame(c.current),c.current=0),r.current=false;let M=a.current;if(M){let _=w.current;if(_){let T=k(_.cx,_.cy);T&&(f.current=T);}let N=f.current;if(N){h(N);let T=p.current;T&&l({rowIndex:T.row,columnIndex:T.col+s.current});}}X(),f.current=null,w.current=null,p.current=null,M&&R(false);};return window.addEventListener("pointermove",H,true),window.addEventListener("pointerup",Y,true),()=>{window.removeEventListener("pointermove",H,true),window.removeEventListener("pointerup",Y,true),c.current&&cancelAnimationFrame(c.current),V(),z();}},[l,s,h,u]),{selectionRange:d,setSelectionRange:h,handleCellMouseDown:S,handleSelectAllCells:x,isDragging:m}}function Cn(o){let{colOffset:e,beginBatch:t,endBatch:n}=o,l=L(o.items),u=L(o.visibleCols),s=L(o.selectionRange),d=L(o.activeCell),i=L(o.editable),r=L(o.onCellValueChanged),m=L(o.formulas),R=L(o.flatColumns),a=L(o.getFormula),p=L(o.hasFormula),c=L(o.setFormula),f=useRef(null),[C,g]=useState(null),[h,S]=useState(null),x=useRef(null),w=useRef(true);useEffect(()=>()=>{w.current=false;},[]);let E=useCallback(()=>{let v=s.current,P=d.current;return v??(P!=null?{startRow:P.rowIndex,startCol:P.columnIndex-e,endRow:P.rowIndex,endCol:P.columnIndex-e}:null)},[e,s,d]),y=useCallback(()=>{let v=E();if(v==null)return;let P=normalizeSelectionRange(v),A=m.current&&R.current?{colOffset:e,flatColumns:R.current,getFormula:a.current,hasFormula:p.current}:void 0,G=formatSelectionAsTsv(l.current,u.current,P,A);x.current=G,S(P),navigator.clipboard.writeText(G).catch(()=>{});},[E,l,u,m,R,a,p,e]),b=useCallback(()=>{if(i.current===false)return;let v=E();if(v==null||r.current==null)return;let P=normalizeSelectionRange(v);f.current=P,g(P),S(null),y(),S(null);},[E,y,i,r]),I=useCallback(async()=>{if(i.current===false)return;let v=r.current;if(v==null)return;let P;try{P=await navigator.clipboard.readText();}catch{P="";}if(!w.current||(!P.trim()&&x.current!=null&&(P=x.current),!P.trim()))return;let A=E(),G=A?A.startRow:0,z=A?A.startCol:0,W=l.current,X=u.current,k=parseTsvClipboard(P),O=m.current&&R.current?{colOffset:e,flatColumns:R.current,setFormula:c.current}:void 0;t?.();let V=applyPastedValues(k,G,z,W,X,O);for(let H of V)v(H);if(f.current){let H=applyCutClear(f.current,W,X);for(let Y of H)v(Y);f.current=null,g(null);}n?.(),S(null);},[E,l,u,i,r,t,n,m,R,c,e]),D=useCallback(()=>{S(null),g(null),f.current=null;},[]);return {handleCopy:y,handleCut:b,handlePaste:I,cutRange:C,copyRange:h,clearClipboardRanges:D}}function Rn(o){let{items:e,getRowId:t,rowSelection:n,controlledSelectedRows:l,onSelectionChange:u}=o,[s,d]=useState(new Set),i=useRef(-1),r=useMemo(()=>l!=null?l instanceof Set?l:new Set(l):s,[l,s]),m=useCallback(g=>{l===void 0&&d(g),u?.({selectedRowIds:Array.from(g),selectedItems:e.filter(h=>g.has(t(h)))});},[l,u,e,t]),R=L(r),a=L(e),p=useCallback((g,h,S,x)=>{if(n==="single"){m(h?new Set([g]):new Set),i.current=S;return}let w=a.current,E;x&&i.current>=0&&i.current!==S?E=applyRangeRowSelection(i.current,S,h,w,t,R.current):(E=new Set(R.current),h?E.add(g):E.delete(g)),i.current=S,m(E);},[n,t,m,a,R]),c=useCallback(g=>{m(g?new Set(e.map(h=>t(h))):new Set);},[e,t,m]),{allSelected:f,someSelected:C}=useMemo(()=>computeRowSelectionState(r,e,t),[e,r,t]);return {selectedRowIds:r,updateSelection:m,handleRowCheckboxChange:p,handleSelectAll:c,allSelected:f,someSelected:C}}function hn(o){let e=useRef(o);return e.current=o,{handleGridKeyDown:useCallback(n=>{let{data:l,state:u,handlers:s,features:d}=e.current,{items:i,visibleCols:r,colOffset:m,hasCheckboxCol:R,visibleColumnCount:a,getRowId:p}=l,{activeCell:c,selectionRange:f,editingCell:C,selectedRowIds:g}=u,{setActiveCell:h,setSelectionRange:S,setEditingCell:x,handleRowCheckboxChange:w,handleCopy:E,handleCut:y,handlePaste:b,setContextMenu:I,onUndo:D,onRedo:v,clearClipboardRanges:P}=s,{editable:A,onCellValueChanged:G,rowSelection:z,wrapperRef:W,onKeyDown:X,fillDown:k}=d;if(X&&(X(n),n.defaultPrevented))return;let O=i.length-1,V=a-1+m;if(i.length===0)return;if(c===null){["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Enter","Home","End","PageDown","PageUp"].includes(n.key)&&(h({rowIndex:0,columnIndex:m}),n.preventDefault());return}let{rowIndex:H,columnIndex:Y}=c,M=Y-m,_=n.shiftKey,N=(T,B)=>{if(T<0||T>=i.length||B<0||B>=r.length)return true;let F=getCellValue(i[T],r[B]);return F==null||F===""};switch(n.key){case "c":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),E();}break;case "x":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),y();}break;case "v":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),b();}break;case "ArrowDown":case "ArrowUp":case "ArrowRight":case "ArrowLeft":{if(C!=null)break;n.preventDefault();let{newRowIndex:T,newColumnIndex:B,newRange:F}=computeArrowNavigation({direction:n.key,rowIndex:H,columnIndex:Y,dataColIndex:M,colOffset:m,maxRowIndex:O,maxColIndex:V,visibleColCount:r.length,isCtrl:n.ctrlKey||n.metaKey,isShift:_,selectionRange:f,isEmptyAt:N});S(F),h({rowIndex:T,columnIndex:B});break}case "Tab":{n.preventDefault();let{rowIndex:T,columnIndex:B}=computeTabNavigation(H,Y,O,V,m,n.shiftKey),F=B-m;S({startRow:T,startCol:F,endRow:T,endCol:F}),h({rowIndex:T,columnIndex:B});break}case "Home":{n.preventDefault();let T=n.ctrlKey?0:H;S({startRow:T,startCol:0,endRow:T,endCol:0}),h({rowIndex:T,columnIndex:m});break}case "End":{n.preventDefault();let T=n.ctrlKey?O:H;S({startRow:T,startCol:a-1,endRow:T,endCol:a-1}),h({rowIndex:T,columnIndex:V});break}case "PageDown":case "PageUp":{n.preventDefault();let T=W.current,B=10,F=36;if(T){let Z=T.querySelector("tbody tr");Z&&Z.offsetHeight>0&&(F=Z.offsetHeight,B=Math.max(1,Math.floor(T.clientHeight/F)));}let J=n.key==="PageDown"?1:-1,$=Math.max(0,Math.min(H+J*B,O));S(_?{startRow:f?.startRow??H,startCol:f?.startCol??M,endRow:$,endCol:f?.endCol??M}:{startRow:$,startCol:M,endRow:$,endCol:M}),h({rowIndex:$,columnIndex:Y}),T&&(T.scrollTop=getScrollTopForRow($,F,T.clientHeight,"center"));break}case "Enter":case "F2":{if(n.preventDefault(),M>=0&&M<r.length){let T=r[M],B=i[H];if(B&&T){let F=T.editable===true||typeof T.editable=="function"&&T.editable(B);A!==false&&F&&G!=null&&x({rowId:p(B),columnId:T.columnId});}}break}case "Escape":n.preventDefault(),C!=null?x(null):(P?.(),h(null),S(null));break;case " ":if(z!=="none"&&Y===0&&R){n.preventDefault();let T=i[H];if(T){let B=p(T),F=g.has(B);w(B,!F,H,n.shiftKey);}}break;case "z":(n.ctrlKey||n.metaKey)&&C==null&&(n.shiftKey&&v?(n.preventDefault(),v()):!n.shiftKey&&D&&(n.preventDefault(),D()));break;case "y":(n.ctrlKey||n.metaKey)&&C==null&&v&&(n.preventDefault(),v());break;case "a":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),i.length>0&&a>0&&(S({startRow:0,startCol:0,endRow:i.length-1,endCol:a-1}),h({rowIndex:0,columnIndex:m}));}break;case "d":if(n.ctrlKey||n.metaKey){if(C!=null)break;A!==false&&k&&(n.preventDefault(),k());}break;case "Delete":case "Backspace":{if(C!=null||A===false||G==null)break;let T=f??(c!=null?{startRow:c.rowIndex,startCol:c.columnIndex-m,endRow:c.rowIndex,endCol:c.columnIndex-m}:null);if(T==null)break;n.preventDefault();let B=applyCellDeletion(T,i,r);for(let F of B)G(F);break}case "F10":if(n.shiftKey)if(n.preventDefault(),c!=null&&W.current){let T=`[data-row-index="${c.rowIndex}"][data-col-index="${c.columnIndex}"]`,B=W.current.querySelector(T);if(B){let F=B.getBoundingClientRect();I({x:F.left+F.width/2,y:F.top+F.height/2});}else I({x:100,y:100});}else I({x:100,y:100});break;}},[])}}function Sn(o){let{onCellValueChanged:e,maxUndoDepth:t=100}=o,n=L(e),l=useRef(null);l.current===null&&(l.current=new UndoRedoStack(t));let[u,s]=useState(0),[d,i]=useState(0),r=useCallback(()=>{let f=l.current;if(!f)throw new Error("UndoRedoStack not initialized");return f},[]),m=useCallback(f=>{if(!n.current)return;let C=r();C.record(f),C.isBatching||(s(C.historyLength),i(C.redoLength)),n.current(f);},[r,n]),R=useCallback(()=>{r().beginBatch();},[r]),a=useCallback(()=>{let f=r();f.endBatch(),s(f.historyLength),i(f.redoLength);},[r]),p=useCallback(()=>{if(!n.current)return;let f=r(),C=f.undo();if(C){s(f.historyLength),i(f.redoLength);for(let g=C.length-1;g>=0;g--){let h=C[g];n.current({...h,oldValue:h.newValue,newValue:h.oldValue});}}},[r,n]),c=useCallback(()=>{if(!n.current)return;let f=r(),C=f.redo();if(C){s(f.historyLength),i(f.redoLength);for(let g of C)n.current(g);}},[r,n]);return {onCellValueChanged:e?m:void 0,undo:p,redo:c,canUndo:u>0,canRedo:d>0,beginBatch:R,endBatch:a,maxUndoDepth:t}}function bn(o,e){let[t,n]=useState(o);return useEffect(()=>{let l=setTimeout(()=>{n(o);},e);return ()=>clearTimeout(l)},[o,e]),t}var yn="data-drag-range";function In(o){let{items:e,visibleCols:t,editable:n,onCellValueChanged:l,selectionRange:u,setSelectionRange:s,setActiveCell:d,colOffset:i,wrapperRef:r,beginBatch:m,endBatch:R,formulaOptions:a}=o,p=L(l),[c,f]=useState(null),C=useRef({endRow:0,endCol:0}),g=useRef(0),h=useRef(null),S=L(i),x=L(e),w=L(t),E=L(a);useEffect(()=>{if(!c||n===false||!p.current||!r.current)return;C.current={endRow:c.startRow,endCol:c.startCol},h.current=null;let D=new Set,v=buildCellIndex(r.current),P=k=>{if(!r.current)return;let V=Math.min(k.startRow,k.endRow),H=Math.max(k.startRow,k.endRow),Y=Math.min(k.startCol,k.endCol),M=Math.max(k.startCol,k.endCol),_=S.current;for(let N of D){let T=parseInt(N.getAttribute("data-row-index")??"",10),B=parseInt(N.getAttribute("data-col-index")??"",10)-_;T>=V&&T<=H&&B>=Y&&B<=M||(N.removeAttribute(yn),D.delete(N));}for(let N=V;N<=H;N++)for(let T=Y;T<=M;T++){let B=`${N},${T+_}`,F=v?.get(B);F&&!F.isConnected&&(v=buildCellIndex(r.current),F=v.get(B)),F&&(F.hasAttribute(yn)||F.setAttribute(yn,""),D.add(F));}},A=()=>{for(let k of D)k.removeAttribute(yn);D.clear();},G=null,z=(k,O)=>{let H=document.elementFromPoint(k,O)?.closest?.("[data-row-index][data-col-index]");if(!H||!r.current?.contains(H))return null;let Y=parseInt(H.getAttribute("data-row-index")??"",10),M=parseInt(H.getAttribute("data-col-index")??"",10);if(Number.isNaN(Y)||Number.isNaN(M)||M<S.current)return null;let _=M-S.current;return normalizeSelectionRange({startRow:c.startRow,startCol:c.startCol,endRow:Y,endCol:_})},W=k=>{G={cx:k.clientX,cy:k.clientY},g.current&&cancelAnimationFrame(g.current),g.current=requestAnimationFrame(()=>{if(g.current=0,!G)return;let O=z(G.cx,G.cy);if(!O)return;let V=h.current;V&&V.startRow===O.startRow&&V.startCol===O.startCol&&V.endRow===O.endRow&&V.endCol===O.endCol||(h.current=O,C.current={endRow:O.endRow,endCol:O.endCol},P(O));});},X=()=>{if(g.current&&(cancelAnimationFrame(g.current),g.current=0),G){let H=z(G.cx,G.cy);H&&(h.current=H,C.current={endRow:H.endRow,endCol:H.endCol});}A();let k=C.current,O=normalizeSelectionRange({startRow:c.startRow,startCol:c.startCol,endRow:k.endRow,endCol:k.endCol});s(O),d({rowIndex:c.startRow,columnIndex:c.startCol+S.current});let V=applyFillValues(O,c.startRow,c.startCol,e,t,E.current);if(V.length>0){m?.();for(let H of V)p.current?.(H);R?.();}f(null),h.current=null;};return window.addEventListener("pointermove",W,true),window.addEventListener("pointerup",X,true),()=>{window.removeEventListener("pointermove",W,true),window.removeEventListener("pointerup",X,true),g.current&&cancelAnimationFrame(g.current);}},[c,n,e,t,s,d,m,R,S,r,p,E]);let y=useRef(u);y.current=u;let b=useCallback(D=>{D.preventDefault(),D.stopPropagation();let v=y.current;v&&f({startRow:v.startRow,startCol:v.startCol});},[]),I=useCallback(()=>{let D=y.current;if(!D||n===false||!p.current)return;let v=normalizeSelectionRange(D),P=applyFillValues(v,v.startRow,v.startCol,x.current,w.current,E.current);if(P.length>0){m?.();for(let A of P)p.current(A);R?.();}},[n,m,R,p,x,w,E]);return {fillDrag:c,setFillDrag:f,handleFillHandleMouseDown:b,fillDown:I}}function xn(o){let{wrapperRef:e,visibleCols:t,flatColumns:n,hasCheckboxCol:l,initialColumnWidths:u,onColumnResized:s}=o,[d,i]=useState(0);useEffect(()=>{let p=e.current;if(!p)return;let c=()=>{let C=p.getBoundingClientRect(),g=window.getComputedStyle(p),h=(parseFloat(g.borderLeftWidth||"0")||0)+(parseFloat(g.borderRightWidth||"0")||0),S=Math.round(Math.max(0,C.width-h));i(x=>x===S?x:S);},f=new ResizeObserver(c);return f.observe(p),c(),()=>f.disconnect()},[e]);let[r,m]=useState(()=>{if(!u)return {};let p={};for(let[c,f]of Object.entries(u))p[c]={widthPx:f};return p}),R=useMemo(()=>{let p=l?CHECKBOX_COLUMN_WIDTH:0;return t.reduce((c,f)=>c+(f.minWidth??DEFAULT_MIN_COLUMN_WIDTH)+CELL_PADDING,p)},[t,l]);useEffect(()=>{let p=new Set(n.map(c=>c.columnId));m(c=>{let f=Object.fromEntries(Object.entries(c).filter(([C])=>p.has(C)));return Object.keys(f).length!==Object.keys(c).length?f:c});},[n]);let a=useMemo(()=>{let p=l?CHECKBOX_COLUMN_WIDTH:0;return t.reduce((c,f)=>{let C=r[f.columnId],g=C?C.widthPx:f.idealWidth??f.defaultWidth??f.minWidth??DEFAULT_MIN_COLUMN_WIDTH;return c+Math.max(f.minWidth??DEFAULT_MIN_COLUMN_WIDTH,g)+CELL_PADDING},p)},[t,r,l]);return {containerWidth:d,minTableWidth:R,desiredTableWidth:a,columnSizingOverrides:r,setColumnSizingOverrides:m,onColumnResized:s}}function Dl(o){let{columns:e,pinnedColumns:t,onColumnPinned:n}=o,[l,u]=useState(()=>{let a={};for(let p of e)p.pinned&&(a[p.columnId]=p.pinned);return a}),s=t??l,d=useCallback((a,p)=>{let c={...s,[a]:p};t||u(c),n?.(a,p);},[s,t,n]),i=useCallback(a=>{let{[a]:p,...c}=s;t||u(c),n?.(a,null);},[s,t,n]),r=useCallback(a=>s[a],[s]),m=useCallback((a,p,c,f,C)=>{let g={},h=f?C:0;for(let S of a)s[S.columnId]==="left"&&(g[S.columnId]=h,h+=p[S.columnId]??c);return g},[s]),R=useCallback((a,p,c)=>{let f={},C=0;for(let g=a.length-1;g>=0;g--){let h=a[g];s[h.columnId]==="right"&&(f[h.columnId]=C,C+=p[h.columnId]??c);}return f},[s]);return {pinnedColumns:s,pinColumn:d,unpinColumn:i,isPinned:r,computeLeftOffsets:m,computeRightOffsets:R}}function zo(o){let{pinnedColumns:e,onPinColumn:t,onUnpinColumn:n,sortBy:l,sortDirection:u,onColumnSort:s,onColumnResized:d,onAutosizeColumn:i,columns:r}=o,[m,R]=useState(false),[a,p]=useState(null),[c,f]=useState(null),C=useCallback((k,O)=>{p(k),f(O),R(true);},[]),g=useCallback(()=>{R(false),p(null),f(null);},[]),h=a?e[a]:void 0,S=h!=="left",x=h!=="right",w=!!h,E=r.find(k=>k.columnId===a),y=a===l?u:null,b=E?.sortable!==false,I=E?.resizable!==false,D=useCallback(()=>{a&&S&&(t(a,"left"),g());},[a,S,t,g]),v=useCallback(()=>{a&&x&&(t(a,"right"),g());},[a,x,t,g]),P=useCallback(()=>{a&&w&&(n(a),g());},[a,w,n,g]),A=useCallback(()=>{a&&b&&(s(a,"asc"),g());},[a,b,s,g]),G=useCallback(()=>{a&&b&&(s(a,"desc"),g());},[a,b,s,g]),z=useCallback(()=>{a&&b&&(s(a,null),g());},[a,b,s,g]),W=useCallback(()=>{let k=i??d;if(!a||!k||!I)return;let O=r.find(V=>V.columnId===a);k(a,measureColumnContentWidth(a,O?.minWidth)),g();},[a,i,d,I,r,g]),X=useCallback(()=>{let k=i??d;k&&(r.forEach(O=>{O.resizable!==false&&k(O.columnId,measureColumnContentWidth(O.columnId,O.minWidth));}),g());},[r,i,d,g]);return {isOpen:m,openForColumn:a,anchorElement:c,open:C,close:g,handlePinLeft:D,handlePinRight:v,handleUnpin:P,handleSortAsc:A,handleSortDesc:G,handleClearSort:z,handleAutosizeThis:W,handleAutosizeAll:X,canPinLeft:S,canPinRight:x,canUnpin:w,currentSort:y,isSortable:b,isResizable:I}}function El(o){return {isOpen:o.isOpen,anchorElement:o.anchorElement,onClose:o.close,onPinLeft:o.handlePinLeft,onPinRight:o.handlePinRight,onUnpin:o.handleUnpin,onSortAsc:o.handleSortAsc,onSortDesc:o.handleSortDesc,onClearSort:o.handleClearSort,onAutosizeThis:o.handleAutosizeThis,onAutosizeAll:o.handleAutosizeAll,canPinLeft:o.canPinLeft,canPinRight:o.canPinRight,canUnpin:o.canUnpin,currentSort:o.currentSort,isSortable:o.isSortable,isResizable:o.isResizable}}function Ol(o){let{columns:e,items:t,getRowId:n,visibleColumns:l,columnOrder:u,rowSelection:s="none",showRowNumbers:d,initialColumnWidths:i,onColumnResized:r,onAutosizeColumn:m,pinnedColumns:R,onColumnPinned:a,sortBy:p,sortDirection:c,onColumnSort:f,responsiveColumns:C,wrapperRef:g}=o,h=useMemo(()=>flattenColumns(e),[e]),S=useMemo(()=>!R||Object.keys(R).length===0?h:h.map(K=>{let j=R[K.columnId];return j&&K.pinned!==j?{...K,pinned:j}:K}),[h,R]),x=useMemo(()=>resolveResponsiveConfig(C),[C]),w=useMemo(()=>{let K=l?S.filter(q=>l.has(q.columnId)):S;if(!u?.length)return K;let j=new Map;for(let q=0;q<u.length;q++)j.set(u[q],q);return [...K].sort((q,te)=>{let ae=j.get(q.columnId)??-1,De=j.get(te.columnId)??-1;return ae===-1&&De===-1?0:ae===-1?1:De===-1?-1:ae-De})},[S,l,u]),E=s==="multiple",y=!!d,b=useMemo(()=>{let K=new Map;return t.forEach((j,q)=>K.set(n(j),q)),K},[t,n]),{containerWidth:I,minTableWidth:D,desiredTableWidth:v,columnSizingOverrides:P,setColumnSizingOverrides:A}=xn({wrapperRef:g,visibleCols:w,flatColumns:S,hasCheckboxCol:E,initialColumnWidths:i,onColumnResized:r}),G=useMemo(()=>applyResponsiveHiding(w,I,x),[w,I,x]),z=G.length,W=(E?1:0)+(y?1:0),X=z+W,k=W,O=Dl({columns:S,pinnedColumns:R,onColumnPinned:a}),V=useMemo(()=>{let K=Object.entries(P);return K.length===0?"":K.map(([j,q])=>`${j}:${Math.round(q.widthPx)}`).join(",")},[P]),[H,Y]=useState({});useLayoutEffect(()=>{let K=g.current;if(!K)return;let j=K.querySelectorAll("th[data-column-id]");if(j.length===0)return;let q={};j.forEach(te=>{let ae=te.getAttribute("data-column-id");ae&&(q[ae]=te.offsetWidth);}),Y(te=>{for(let ae in q)if(te[ae]!==q[ae])return q;return Object.keys(te).length!==Object.keys(q).length?q:te});},[G,V,g]);let M=useMemo(()=>{let K={};for(let j of G){let q=P[j.columnId];K[j.columnId]=q?q.widthPx:H[j.columnId]??j.idealWidth??j.defaultWidth??j.minWidth??DEFAULT_MIN_COLUMN_WIDTH;}return K},[G,P,H]),_=useMemo(()=>O.computeLeftOffsets(G,M,DEFAULT_MIN_COLUMN_WIDTH,E,CHECKBOX_COLUMN_WIDTH),[O,G,M,E]),N=useMemo(()=>O.computeRightOffsets(G,M,DEFAULT_MIN_COLUMN_WIDTH),[O,G,M]),T=L(f),B=useCallback((K,j)=>T.current?.(K,j),[T]),F=useCallback((K,j)=>{A(q=>({...q,[K]:{widthPx:j}})),(m??r)?.(K,j);},[A,m,r]),J=zo({pinnedColumns:O.pinnedColumns,onPinColumn:O.pinColumn,onUnpinColumn:O.unpinColumn,sortBy:p,sortDirection:c??"asc",onColumnSort:B,onColumnResized:r,onAutosizeColumn:F,columns:S}),$=useMemo(()=>({flatColumns:S,visibleCols:G,visibleColumnCount:z,totalColCount:X,colOffset:k,hasCheckboxCol:E,hasRowNumbersCol:y,rowIndexByRowId:b,containerWidth:I,minTableWidth:D,desiredTableWidth:v,columnSizingOverrides:P,setColumnSizingOverrides:A,onColumnResized:r,measuredColumnWidths:H}),[S,G,z,X,k,E,y,b,I,D,v,P,A,r,H]),Z=useMemo(()=>({pinnedColumns:O.pinnedColumns,pinColumn:O.pinColumn,unpinColumn:O.unpinColumn,isPinned:O.isPinned,leftOffsets:_,rightOffsets:N,headerMenu:J}),[O.pinnedColumns,O.pinColumn,O.unpinColumn,O.isPinned,_,N,J]);return {layout:$,pinning:Z,flatColumns:S,visibleCols:G,visibleColumnCount:z,totalColCount:X,colOffset:k,hasCheckboxCol:E,hasRowNumbersCol:y,columnSizingOverrides:P,setColumnSizingOverrides:A,handleAutosizeColumn:F,stableOnColumnSort:B}}function Ul(o){let{editingCell:e,setEditingCell:t,pendingEditorValue:n,setPendingEditorValue:l,onCellValueChanged:u,setActiveCell:s,setSelectionRange:d,colOffset:i,setFormula:r,onFormulaCellChanged:m,formulas:R,flatColumns:a}=o,[p,c]=useState(null),f=L(o.visibleCols),C=L(o.itemsLength),g=L(u),h=L(r),S=L(m),x=L(a),w=useCallback((b,I,D,v,P,A)=>{if(R&&typeof v=="string"&&v.startsWith("=")&&h.current){let z=x.current,W=z?z.findIndex(X=>X.columnId===I):-1;if(W>=0){if(h.current(W,P,v),t(null),c(null),l(void 0),P<C.current-1){let X=P+1,k=A-i;s({rowIndex:X,columnIndex:A}),d({startRow:X,startCol:k,endRow:X,endCol:k});}return}}let G=f.current.find(z=>z.columnId===I);if(G){let z=parseValue(v,D,b,G);if(!z.valid){t(null),c(null),l(void 0);return}v=z.value;}if(g.current?.({item:b,columnId:I,oldValue:D,newValue:v,rowIndex:P}),R&&S.current&&x.current){let z=x.current.findIndex(W=>W.columnId===I);z>=0&&S.current(z,P);}if(t(null),c(null),l(void 0),P<C.current-1){let z=P+1,W=A-i;s({rowIndex:z,columnIndex:A}),d({startRow:z,startCol:W,endRow:z,endCol:W});}},[R,t,l,s,d,i,f,C,g,h,S,x]),E=useCallback(()=>{t(null),c(null),l(void 0);},[t,l]);return {editing:useMemo(()=>({editingCell:e,setEditingCell:t,pendingEditorValue:n,setPendingEditorValue:l,commitCellEdit:w,cancelPopoverEdit:E,popoverAnchorEl:p,setPopoverAnchorEl:c}),[e,t,n,l,w,E,p,c])}}var lt=()=>{},Ts=async()=>{},Ds=(o,e,t)=>{},Es=o=>{};function Al(o){let{items:e,visibleCols:t,colOffset:n,hasCheckboxCol:l,visibleColumnCount:u,getRowId:s,editable:d,onCellValueChangedProp:i,cellSelection:r,rowSelection:m,selectedRowIds:R,editingCell:a,setEditingCell:p,activeCell:c,setActiveCell:f,handleRowCheckboxChange:C,setContextMenuPosition:g,wrapperRef:h,onKeyDown:S,formulas:x,flatColumns:w,getFormula:E,hasFormula:y,setFormula:b,onFormulaInsertReference:I}=o,D=L(I),v=Sn({onCellValueChanged:i}),P=v.onCellValueChanged,{selectionRange:A,setSelectionRange:G,handleCellMouseDown:z,handleSelectAllCells:W,isDragging:X}=gn({colOffset:n,rowCount:e.length,visibleColCount:t.length,setActiveCell:f,wrapperRef:h}),{handleCopy:k,handleCut:O,handlePaste:V,cutRange:H,copyRange:Y,clearClipboardRanges:M}=Cn({items:e,visibleCols:t,colOffset:n,selectionRange:A,activeCell:c,editable:d,onCellValueChanged:P,beginBatch:v.beginBatch,endBatch:v.endBatch,formulas:x,flatColumns:w,getFormula:E,hasFormula:y,setFormula:b}),_=useCallback((Z,K,j)=>{if(Z.button!==0)return;let q=D.current;if(q){let te=j-n;if(te>=0){let ae=formatCellReference(te,K+1);if(q(ae)){Z.preventDefault();return}}}h.current?.focus({preventScroll:true}),M(),z(Z,K,j);},[z,M,h,D,n]),N=useMemo(()=>{if(!(!x||!w))return {flatColumns:w,getFormula:E,hasFormula:y,setFormula:b}},[x,w,E,y,b]),{handleFillHandleMouseDown:T,fillDown:B}=In({items:e,visibleCols:t,editable:d,onCellValueChanged:P,selectionRange:A,setSelectionRange:G,setActiveCell:f,colOffset:n,wrapperRef:h,beginBatch:v.beginBatch,endBatch:v.endBatch,formulaOptions:N}),{handleGridKeyDown:F}=hn({data:{items:e,visibleCols:t,colOffset:n,hasCheckboxCol:l,visibleColumnCount:u,getRowId:s},state:{activeCell:c,selectionRange:A,editingCell:a,selectedRowIds:R},handlers:{setActiveCell:f,setSelectionRange:G,setEditingCell:p,handleRowCheckboxChange:C,handleCopy:k,handleCut:O,handlePaste:V,setContextMenu:g,onUndo:v.undo,onRedo:v.redo,clearClipboardRanges:M},features:{editable:d,onCellValueChanged:P,rowSelection:m??"none",wrapperRef:h,onKeyDown:S,fillDown:B}}),J=A!=null||c!=null;return {interaction:useMemo(()=>({activeCell:r?c:null,setActiveCell:r?f:lt,selectionRange:r?A:null,setSelectionRange:r?G:lt,handleCellMouseDown:r?_:Ds,handleSelectAllCells:r?W:lt,hasCellSelection:r?J:false,handleGridKeyDown:r?F:Es,handleFillHandleMouseDown:r?T:lt,handleCopy:r?k:lt,handleCut:r?O:lt,handlePaste:r?V:Ts,cutRange:r?H:null,copyRange:r?Y:null,clearClipboardRanges:r?M:lt,canUndo:v.canUndo,canRedo:v.canRedo,onUndo:v.undo,onRedo:v.redo,isDragging:r?X:false}),[r,c,f,A,G,_,W,J,F,T,k,O,V,H,Y,M,v.canUndo,v.canRedo,v.undo,v.redo,X]),selectionRange:A,setSelectionRange:G,cutRange:H,copyRange:Y,clearClipboardRanges:M,isDragging:X,onCellValueChanged:P,canUndo:v.canUndo,canRedo:v.canRedo}}var Ll=()=>{},Os=o=>{};function Gl(o){let{cellSelection:e}=o,{contextMenuPosition:t,setContextMenuPosition:n,handleCellContextMenu:l,closeContextMenu:u}=fn();return {contextMenu:useMemo(()=>({menuPosition:e?t:null,setMenuPosition:e?n:Ll,handleCellContextMenu:e?l:Os,closeContextMenu:e?u:Ll}),[e,t,n,l,u]),contextMenuPosition:t,setContextMenuPosition:n}}function wn(o){let{props:e,wrapperRef:t}=o,{items:n,columns:l,getRowId:u,visibleColumns:s,columnOrder:d,rowSelection:i="none",selectedRows:r,onSelectionChange:m,showRowNumbers:R,statusBar:a,emptyState:p,editable:c,cellSelection:f,onCellValueChanged:C,initialColumnWidths:g,onColumnResized:h,onAutosizeColumn:S,pinnedColumns:x,onColumnPinned:w,responsiveColumns:E,onCellError:y,onKeyDown:b}=e,I=f!==false,{editingCell:D,setEditingCell:v,pendingEditorValue:P,setPendingEditorValue:A}=pn(),{activeCell:G,setActiveCell:z}=mn(t,D),W=Ol({columns:l,items:n,getRowId:u,visibleColumns:s,columnOrder:d,rowSelection:i,showRowNumbers:R,initialColumnWidths:g,onColumnResized:h,onAutosizeColumn:S,pinnedColumns:x,onColumnPinned:w,sortBy:e.sortBy,sortDirection:e.sortDirection,onColumnSort:e.onColumnSort,responsiveColumns:E,wrapperRef:t}),{visibleCols:X,visibleColumnCount:k,colOffset:O,hasCheckboxCol:V}=W,H=Rn({items:n,getRowId:u,rowSelection:i,controlledSelectedRows:r,onSelectionChange:m}),{selectedRowIds:Y,updateSelection:M,handleRowCheckboxChange:_,handleSelectAll:N,allSelected:T,someSelected:B}=H,F=Gl({cellSelection:I}),{setContextMenuPosition:J}=F,$=Al({items:n,visibleCols:X,colOffset:O,hasCheckboxCol:V,visibleColumnCount:k,getRowId:u,editable:c,onCellValueChangedProp:C,cellSelection:I,rowSelection:i,selectedRowIds:Y,editingCell:D,setEditingCell:v,activeCell:G,setActiveCell:z,handleRowCheckboxChange:_,setContextMenuPosition:J,wrapperRef:t,onKeyDown:b,formulas:e.formulas,flatColumns:W.layout.flatColumns,getFormula:e.getFormula,hasFormula:e.hasFormula,setFormula:e.setFormula,onFormulaInsertReference:e.onFormulaInsertReference}),{selectionRange:Z,setSelectionRange:K,cutRange:j,copyRange:q,isDragging:te,onCellValueChanged:ae}=$,De=Ul({editingCell:D,setEditingCell:v,pendingEditorValue:P,setPendingEditorValue:A,visibleCols:X,itemsLength:n.length,onCellValueChanged:ae,setActiveCell:z,setSelectionRange:K,colOffset:O,setFormula:e.setFormula,onFormulaCellChanged:e.onFormulaCellChanged,formulas:e.formulas,flatColumns:W.layout.flatColumns}),{sortBy:Ye,sortDirection:Ze,filters:Ke,onFilterChange:Ce,filterOptions:st,loadingFilterOptions:Ae,peopleSearch:ut}=e,ct=!!ut,dt=L(Ce),Le=L(ut),je=useCallback((...ge)=>dt.current?.(...ge),[dt]),he=useCallback((...ge)=>Le.current?.(...ge)??Promise.resolve([]),[Le]),Ge=useMemo(()=>({sortBy:Ye,sortDirection:Ze,onColumnSort:W.stableOnColumnSort,filters:Ke,onFilterChange:je,filterOptions:st,loadingFilterOptions:Ae,peopleSearch:ct?he:void 0}),[Ye,Ze,W.stableOnColumnSort,Ke,je,st,Ae,ct,he]),Je=useMemo(()=>({editingCell:D,activeCell:I?G:null,selectionRange:I?Z:null,cutRange:I?j:null,copyRange:I?q:null,colOffset:O,itemsLength:n.length,getRowId:u,editable:c,onCellValueChanged:ae,isDragging:I?te:false,getFormulaValue:e.getFormulaValue,hasFormula:e.hasFormula,getFormula:e.getFormula,formulaVersion:e.formulaVersion}),[D,G,Z,j,q,O,n.length,u,c,ae,I,te,e.getFormulaValue,e.hasFormula,e.getFormula,e.formulaVersion]),Qe=useMemo(()=>computeAggregations(n,X,I?Z:null),[n,X,Z,I]),Xe=useMemo(()=>{let ge=getDataGridStatusBarConfig(a,n.length,Y.size);return ge?{...ge,aggregation:Qe??void 0}:null},[a,n.length,Y.size,Qe]),Se=n.length===0&&!!p&&!e.isLoading,et=useMemo(()=>({selectedRowIds:Y,updateSelection:M,handleRowCheckboxChange:_,handleSelectAll:N,allSelected:T,someSelected:B}),[Y,M,_,N,T,B]),mt=useMemo(()=>({headerFilterInput:Ge,cellDescriptorInput:Je,statusBarConfig:Xe,showEmptyInGrid:Se,onCellError:y}),[Ge,Je,Xe,Se,y]);return {layout:W.layout,rowSelection:et,editing:De.editing,interaction:$.interaction,contextMenu:F.contextMenu,viewModels:mt,pinning:W.pinning}}function Pn(o){let{textValue:e="",onTextChange:t,isFilterOpen:n}=o,[l,u]=useState(e);useEffect(()=>{n&&u(e);},[n,e]);let s=useCallback(()=>{t?.(l.trim());},[t,l]),d=useCallback(()=>u(""),[]);return {tempTextValue:l,setTempTextValue:u,handleTextApply:s,handleTextClear:d}}var Ls=150,Hl=[];function Dn(o){let{selectedValues:e,onFilterChange:t,options:n,isFilterOpen:l}=o,u=e??Hl,s=n??Hl,[d,i]=useState(()=>new Set(u)),[r,m]=useState(""),R=bn(r,Ls);useEffect(()=>{l&&(i(new Set(u)),m(""));},[l,u]);let a=useMemo(()=>{let g=R.trim();if(!g)return s;let h=g.toLowerCase();return s.filter(S=>S.toLowerCase().includes(h))},[s,R]),p=useCallback((g,h)=>{i(S=>{let x=new Set(S);return h?x.add(g):x.delete(g),x});},[]),c=useCallback(()=>{i(g=>{let h=new Set(g);for(let S of a)h.add(S);return h});},[a]),f=useCallback(()=>i(new Set),[]),C=useCallback(()=>{t?.(Array.from(d));},[t,d]);return {tempSelected:d,setTempSelected:i,searchText:r,setSearchText:m,debouncedSearchText:R,filteredOptions:a,handleCheckboxChange:p,handleSelectAll:c,handleClearSelection:f,handleApplyMultiSelect:C}}function En(o){let{onUserChange:e,peopleSearch:t,isFilterOpen:n,filterType:l}=o,u=useRef(null),s=useRef(void 0),d=useRef(void 0),[i,r]=useState([]),[m,R]=useState(false),[a,p]=useState("");useEffect(()=>(n&&(p(""),r([]),l==="people"&&(s.current=window.setTimeout(()=>u.current?.focus(),50))),()=>{s.current&&window.clearTimeout(s.current);}),[n,l]),useEffect(()=>{if(!(!t||!n||l!=="people")){if(d.current&&window.clearTimeout(d.current),!a.trim()){r([]);return}return R(true),d.current=window.setTimeout(async()=>{try{let C=await t(a);r(C.slice(0,10));}catch{r([]);}finally{R(false);}},PEOPLE_SEARCH_DEBOUNCE_MS),()=>{d.current&&window.clearTimeout(d.current);}}},[a,t,n,l]);let c=useCallback(C=>{e?.(C);},[e]),f=useCallback(()=>{e?.(void 0);},[e]);return {peopleSuggestions:i,isPeopleLoading:m,peopleSearchText:a,setPeopleSearchText:p,peopleInputRef:u,handleUserSelect:c,handleClearUser:f}}function Fn(o){let{dateValue:e,onDateChange:t,isFilterOpen:n}=o,[l,u]=useState(e?.from??""),[s,d]=useState(e?.to??"");useEffect(()=>{n&&(u(e?.from??""),d(e?.to??""));},[n,e]);let i=useCallback(()=>{let m=l||void 0,R=s||void 0;t?.(m||R?{from:m,to:R}:void 0);},[t,l,s]),r=useCallback(()=>{u(""),d("");},[]);return {tempDateFrom:l,setTempDateFrom:u,tempDateTo:s,setTempDateTo:d,handleDateApply:i,handleDateClear:r}}var Ns=[];function $l(o){let{filterType:e,onSort:t,selectedValues:n,onFilterChange:l,options:u,textValue:s="",onTextChange:d,selectedUser:i,onUserChange:r,peopleSearch:m,dateValue:R,onDateChange:a}=o,p=n??Ns,c=useRef(null),f=useRef(null),[C,g]=useState(false),[h,S]=useState(null),x=Pn({textValue:s,onTextChange:d,isFilterOpen:C}),w=Dn({selectedValues:n,onFilterChange:l,options:u,isFilterOpen:C}),E=En({onUserChange:r,peopleSearch:m,isFilterOpen:C,filterType:e}),y=Fn({dateValue:R,onDateChange:a,isFilterOpen:C});useEffect(()=>{C||S(null);},[C]),useEffect(()=>{if(!C)return;let F=Z=>{let K=Z.target;f.current&&!f.current.contains(K)&&c.current&&!c.current.contains(K)&&g(false);},J=Z=>{(Z.key==="Escape"||Z.key==="Esc")&&(Z.preventDefault(),Z.stopPropagation(),g(false));},$=setTimeout(()=>document.addEventListener("mousedown",F),0);return document.addEventListener("keydown",J,true),()=>{clearTimeout($),document.removeEventListener("mousedown",F),document.removeEventListener("keydown",J,true);}},[C]);let b=useCallback(F=>{F.stopPropagation(),F.preventDefault(),g(J=>{if(!J&&c.current){let $=c.current.getBoundingClientRect();S({top:$.bottom+4,left:$.left});}return !J});},[]),I=useCallback(F=>{F.stopPropagation(),t?.();},[t]),{handleApplyMultiSelect:D}=w,{handleTextApply:v,handleTextClear:P}=x,{handleUserSelect:A,handleClearUser:G}=E,{handleDateApply:z}=y,W=useCallback(()=>{D(),g(false);},[D]),X=useCallback(()=>{v(),g(false);},[v]),k=useCallback(()=>{P(),d?.(""),g(false);},[P,d]),O=useCallback(F=>{A(F),g(false);},[A]),V=useCallback(()=>{G(),g(false);},[G]),H=useCallback(()=>{z(),g(false);},[z]),Y=useCallback(F=>F.stopPropagation(),[]),M=useCallback(F=>F.stopPropagation(),[]),_=useCallback(F=>F.stopPropagation(),[]),N=useCallback(F=>F.stopPropagation(),[]),T=useCallback(F=>{F.key!=="Escape"&&F.key!=="Esc"&&F.stopPropagation();},[]),B=useMemo(()=>e==="multiSelect"?p.length>0:e==="text"?!!s.trim():e==="people"?!!i:e==="date"?!!(R?.from||R?.to):false,[e,p,s,i,R]);return {headerRef:c,popoverRef:f,peopleInputRef:E.peopleInputRef,isFilterOpen:C,setFilterOpen:g,tempSelected:w.tempSelected,setTempSelected:w.setTempSelected,tempTextValue:x.tempTextValue,setTempTextValue:x.setTempTextValue,searchText:w.searchText,setSearchText:w.setSearchText,debouncedSearchText:w.debouncedSearchText,filteredOptions:w.filteredOptions,peopleSuggestions:E.peopleSuggestions,isPeopleLoading:E.isPeopleLoading,peopleSearchText:E.peopleSearchText,setPeopleSearchText:E.setPeopleSearchText,tempDateFrom:y.tempDateFrom,setTempDateFrom:y.setTempDateFrom,tempDateTo:y.tempDateTo,setTempDateTo:y.setTempDateTo,hasActiveFilter:B,popoverPosition:h,handlers:{handleFilterIconClick:b,handleApplyMultiSelect:W,handleTextApply:X,handleTextClear:k,handleUserSelect:O,handleClearUser:V,handleDateApply:H,handleDateClear:y.handleDateClear,handleCheckboxChange:w.handleCheckboxChange,handleSelectAll:w.handleSelectAll,handleClearSelection:w.handleClearSelection,handlePopoverClick:Y,handleInputFocus:M,handleInputMouseDown:_,handleInputClick:N,handleInputKeyDown:T,handleSortClick:I}}}function Yl(o){let{columns:e,visibleColumns:t,onVisibilityChange:n,onSetVisibleColumns:l}=o,[u,s]=useState(false);useEffect(()=>{if(!u)return;let c=f=>{f.key==="Escape"&&(f.preventDefault(),s(false));};return document.addEventListener("keydown",c,true),()=>document.removeEventListener("keydown",c,true)},[u]);let d=useCallback(()=>{s(c=>!c);},[]),i=useCallback(()=>{s(false);},[]),r=useCallback(c=>f=>{n(c,f);},[n]),m=useCallback(()=>{l?l(new Set(e.map(c=>c.columnId))):e.forEach(c=>{t.has(c.columnId)||n(c.columnId,true);});},[e,t,n,l]),R=useCallback(()=>{if(l){let c=new Set(e.filter(f=>f.required).map(f=>f.columnId));l(c);}else e.forEach(c=>{!c.required&&t.has(c.columnId)&&n(c.columnId,false);});},[e,t,n,l]),a=t.size,p=e.length;return {open:u,setOpen:s,handleToggle:d,handleClose:i,handleCheckboxChange:r,handleSelectAll:m,handleClearAll:R,visibleCount:a,totalCount:p}}function On(o){let{value:e,editorType:t,onCommit:n,onCancel:l}=o,[u,s]=useState(()=>{if(e==null)return "";if(t==="date"){let r=String(e);return r.match(/^\d{4}-\d{2}-\d{2}/)?r.substring(0,10):r}return String(e)}),d=useCallback(r=>{r.key==="Escape"&&(r.preventDefault(),r.stopPropagation(),l()),r.key==="Enter"&&(t==="text"||t==="date")&&(r.preventDefault(),r.stopPropagation(),n(u));},[l,n,u,t]),i=useCallback(()=>{(t==="text"||t==="date")&&n(u);},[t,u,n]);return {localValue:u,setLocalValue:s,handleKeyDown:d,handleBlur:i,commit:n,cancel:l}}function Mn({columnSizingOverrides:o,setColumnSizingOverrides:e,minWidth:t=80,defaultWidth:n=120,onColumnResized:l}){let u=useRef(0),s=useRef(l);s.current=l;let d=L(o),i=useRef(null);useEffect(()=>()=>{i.current&&(i.current(),i.current=null);},[]);let r=useCallback((a,p)=>{a.preventDefault(),a.stopPropagation(),i.current&&(i.current(),i.current=null);let c=a.clientX,f=p.columnId,C=a.currentTarget.closest("th"),g=C?C.getBoundingClientRect().width:d.current[f]?.widthPx??p.idealWidth??p.defaultWidth??n,h=g,S=C?.closest("thead");if(S){let v=S.querySelectorAll("th[data-column-id]");v.length>0&&e(P=>{let A={...P};return v.forEach(G=>{let z=G.dataset.columnId;z&&!A[z]&&(A[z]={widthPx:G.getBoundingClientRect().width});}),A[f]={widthPx:g},A});}let x=document.body.style.cursor,w=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let E=()=>{e(v=>({...v,[f]:{widthPx:h}}));},y=f===ROW_NUMBER_COLUMN_ID?ROW_NUMBER_COLUMN_MIN_WIDTH:t,b=v=>{let P=v.clientX-c;h=Math.max(y,g+P),u.current||(u.current=requestAnimationFrame(()=>{u.current=0,E();}));},I=()=>{document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",D),i.current=null,document.body.style.cursor=x,document.body.style.userSelect=w,u.current&&(cancelAnimationFrame(u.current),u.current=0);},D=()=>{I(),E();let v=C?.closest("[tabindex]");v?v.focus({preventScroll:true}):document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s.current&&s.current(f,h);};document.addEventListener("pointermove",b),document.addEventListener("pointerup",D),i.current=I;},[n,t,e,d]),m=useCallback((a,p)=>{a.preventDefault(),a.stopPropagation();let c=p.columnId,C=a.currentTarget.closest("th")?.closest("table")?.parentElement??void 0,g=measureColumnContentWidth(c,t,C);e(h=>({...h,[c]:{widthPx:g}})),s.current&&s.current(c,g);},[t,e]),R=useCallback(a=>o[a.columnId]?.widthPx??a.idealWidth??a.defaultWidth??n,[o,n]);return {handleResizeStart:r,handleResizeDoubleClick:m,getColumnWidth:R}}function $o(o,e){return e?e(o):o!=null?String(o):""}function Un(o){let{values:e,formatValue:t,initialValue:n,onCommit:l,onCancel:u}=o,[s,d]=useState(""),i=e.findIndex(f=>String(f)===String(n)),[r,m]=useState(Math.max(i,0));useEffect(()=>{let f=e.findIndex(C=>String(C)===String(n));m(Math.max(f,0));},[n,e]);let R=useCallback(f=>$o(f,t),[t]),a=useMemo(()=>{if(!s.trim())return e;let f=s.toLowerCase();return e.filter(C=>R(C).toLowerCase().includes(f))},[e,s,R]),p=useCallback(f=>{l(f);},[l]),c=useCallback(f=>{switch(f.key){case "ArrowDown":f.preventDefault(),m(C=>Math.min(C+1,a.length-1));break;case "ArrowUp":f.preventDefault(),m(C=>Math.max(C-1,0));break;case "Enter":f.preventDefault(),f.stopPropagation(),a.length>0&&r<a.length&&p(a[r]);break;case "Escape":f.preventDefault(),f.stopPropagation(),u();break}},[a,r,p,u]);return {searchText:s,setSearchText:d,filteredValues:a,highlightedIndex:r,handleKeyDown:c,selectValue:p,getDisplayText:R}}function kn(o){let{values:e,formatValue:t,initialValue:n,onCommit:l,onCancel:u}=o,s=useRef(null),d=useCallback(p=>$o(p,t),[t]),i=e.findIndex(p=>String(p)===String(n)),[r,m]=useState(Math.max(i,0));useEffect(()=>{let p=e.findIndex(c=>String(c)===String(n));m(Math.max(p,0));},[n,e]),useEffect(()=>{let p=s.current;if(!p)return;p.children[r]?.scrollIntoView({block:"nearest"});},[r]);let R=useCallback(p=>{l(p);},[l]),a=useCallback(p=>{switch(p.key){case "ArrowDown":p.preventDefault(),m(c=>Math.min(c+1,e.length-1));break;case "ArrowUp":p.preventDefault(),m(c=>Math.max(c-1,0));break;case "Enter":p.preventDefault(),p.stopPropagation(),e.length>0&&r<e.length&&R(e[r]);break;case "Tab":p.preventDefault(),e.length>0&&r<e.length&&R(e[r]);break;case "Escape":p.preventDefault(),p.stopPropagation(),u();break}},[e,r,R,u]);return {highlightedIndex:r,handleKeyDown:a,selectValue:R,getDisplayText:d,dropdownRef:s}}var ou=8;function ru(o){if(!o)return;let e=[],t=[];for(let[n,l]of Object.entries(o))l==="left"?e.push(n):l==="right"&&t.push(n);if(!(e.length===0&&t.length===0))return {...e.length>0?{left:e}:{},...t.length>0?{right:t}:{}}}function An(o){let{columns:e,columnOrder:t,onColumnOrderChange:n,enabled:l=true,pinnedColumns:u,wrapperRef:s}=o,[d,i]=useState(false),[r,m]=useState(null),R=useRef(0),a=useRef(e);a.current=e;let p=useRef(t);p.current=t;let c=useRef(n);c.current=n;let f=useRef(u);f.current=u;let C=useRef(null);useEffect(()=>()=>{C.current&&(C.current(),C.current=null);},[]);let g=useCallback((h,S)=>{if(!l||!c.current||S.button!==0)return;let w=S.currentTarget.getBoundingClientRect();if(S.clientX>w.right-ou||a.current.findIndex(k=>k.columnId===h)===-1)return;S.preventDefault();let b=S.clientX,I=false,D=null,v=ru(f.current),P=getPinStateForColumn(h,v),A=document.body.style.userSelect,G=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="grabbing";let z=k=>{!I&&Math.abs(k.clientX-b)<5||(I||(I=true,i(true)),R.current&&cancelAnimationFrame(R.current),R.current=requestAnimationFrame(()=>{R.current=0;let O=s.current;if(!O)return;let V=p.current??a.current.map(Y=>Y.columnId),H=calculateDropTarget({mouseX:k.clientX,columnOrder:V,draggedColumnId:h,draggedPinState:P,tableElement:O,pinnedColumns:v});H&&(D=H.targetIndex,m(H.indicatorX));}));},W=()=>{window.removeEventListener("pointermove",z,true),window.removeEventListener("pointerup",X,true),C.current=null,document.body.style.userSelect=A,document.body.style.cursor=G,R.current&&(cancelAnimationFrame(R.current),R.current=0);},X=()=>{if(W(),I&&D!=null){let k=p.current??a.current.map(V=>V.columnId),O=reorderColumnArray(k,h,D);c.current?.(O);}i(false),m(null);};window.addEventListener("pointermove",z,true),window.addEventListener("pointerup",X,true),C.current=W;},[l,s]);return {isDragging:d,dropIndicatorX:r,handleHeaderMouseDown:g}}var su=100;function Ln(o){let{totalRows:e,rowHeight:t,enabled:n,overscan:l=5,threshold:u=su,containerRef:s,columnVirtualization:d=false,columnWidths:i,columnOverscan:r=2}=o;useEffect(()=>{validateVirtualScrollConfig({enabled:n,rowHeight:t});},[n,t]);let m=n&&e>=u,R=useCallback(()=>s.current,[s]),a=useVirtualizer({count:m?e:0,getScrollElement:R,estimateSize:()=>t,overscan:l,enabled:m}),p=useMemo(()=>({startIndex:0,endIndex:Math.max(0,e-1),offsetTop:0,offsetBottom:0}),[e]),c=useMemo(()=>{if(!m)return p;let I=a.getVirtualItems();if(I.length===0)return {startIndex:0,endIndex:-1,offsetTop:0,offsetBottom:0};let D=I[0],v=I[I.length-1],P=a.getTotalSize();return {startIndex:D.index,endIndex:v.index,offsetTop:D.start,offsetBottom:Math.max(0,P-v.end)}},[m,a,p]),f=m?a.getTotalSize():e*t,C=useRef(a);C.current=a;let g=useCallback(I=>{if(m)C.current?.scrollToIndex(I,{align:"auto"});else {let D=s.current;if(D){let v=I*t;D.scrollTo({top:v,behavior:"auto"});}}},[m,s,t]),[h,S]=useState(0),x=useRef(0),w=useCallback(I=>{x.current&&cancelAnimationFrame(x.current),x.current=requestAnimationFrame(()=>{x.current=0,S(I);});},[]);useEffect(()=>()=>{x.current&&cancelAnimationFrame(x.current);},[]);let[E,y]=useState(0);useEffect(()=>{if(!d)return;let I=s.current;if(!I||(y(I.clientWidth),typeof ResizeObserver>"u"))return;let D=new ResizeObserver(v=>{v.length>0&&y(v[0].contentRect.width);});return D.observe(I),()=>D.disconnect()},[d,s]);let b=useMemo(()=>!d||!i||i.length===0||E<=0?null:computeVisibleColumnRange(h,i,E,r),[d,i,E,h,r]);return {virtualizer:m?a:null,totalHeight:f,visibleRange:c,scrollToIndex:g,columnRange:b,onHorizontalScroll:d?w:void 0}}function oa(o){let{count:e,itemHeight:t,containerHeight:n=250,overscan:l=5}=o,u=useRef(null),[s,d]=useState(0),i=useCallback(()=>{u.current&&d(u.current.scrollTop);},[]),r=e*t,m=useMemo(()=>{if(e===0)return [];let R=Math.max(0,Math.floor(s/t)-l),a=Math.ceil(n/t),p=Math.min(e-1,R+a+l*2),c=[];for(let f=R;f<=p;f++)c.push({index:f,offsetTop:f*t});return c},[e,t,n,l,s]);return {totalHeight:r,visibleItems:m,containerRef:u,onScroll:i}}function Gn(o){let{currentPage:e,pageSize:t,totalCount:n,onPageSizeChange:l,pageSizeOptions:u,entityLabelPlural:s}=o,d=s??"items",i=useMemo(()=>getPaginationViewModel(e,t,n,u?{pageSizeOptions:u}:void 0),[e,t,n,u]);return {labelPlural:d,vm:i,handlePageSizeChange:l}}function aa(o){let{props:e}=o,t=useRef(null),n=useRef(null),l=useRef(false),u=wn({props:e,wrapperRef:t}),{layout:s,rowSelection:d,editing:i,interaction:r,contextMenu:m,viewModels:R,pinning:a}=u,{visibleCols:p,totalColCount:c,hasCheckboxCol:f,hasRowNumbersCol:C,colOffset:g,containerWidth:h,minTableWidth:S,desiredTableWidth:x,columnSizingOverrides:w,setColumnSizingOverrides:E,measuredColumnWidths:y}=s,b=p,{selectedRowIds:I,updateSelection:D,handleRowCheckboxChange:v,handleSelectAll:P,allSelected:A,someSelected:G}=d,{editingCell:z,setEditingCell:W,pendingEditorValue:X,setPendingEditorValue:k,commitCellEdit:O,cancelPopoverEdit:V,popoverAnchorEl:H,setPopoverAnchorEl:Y}=i,{setActiveCell:M,handleCellMouseDown:_,selectionRange:N,hasCellSelection:T,handleGridKeyDown:B,handleFillHandleMouseDown:F,handleCopy:J,handleCut:$,handlePaste:Z,cutRange:K,copyRange:j,canUndo:q,canRedo:te,onUndo:ae,onRedo:De,isDragging:Ye}=r,{menuPosition:Ze,handleCellContextMenu:Ke,closeContextMenu:Ce}=m,{headerFilterInput:st,cellDescriptorInput:Ae,statusBarConfig:ut,showEmptyInGrid:ct,onCellError:dt}=R,{headerMenu:Le}=a,je=useCallback(()=>{Z();},[Z]),{items:he,columns:Ge,getRowId:Je,emptyState:Qe,layoutMode:Xe="fill",rowSelection:Se="none",suppressHorizontalScroll:et,stickyHeader:mt=true,isLoading:ge=false,loadingMessage:zt="Loading\u2026","aria-label":_t,"aria-labelledby":Wt,visibleColumns:pt,columnOrder:wt,onColumnOrderChange:Kt,columnReorder:Pt,virtualScroll:Be,rowHeight:jt,density:Xt="normal",pinnedColumns:ne,currentPage:Ee=1,pageSize:Tt=25,showColumnLetters:Jn=false,showNameBox:Qn=false,onActiveCellChange:qt}=e,Dt=C?(Ee-1)*Tt:0,eo=useMemo(()=>buildHeaderRows(Ge,pt),[Ge,pt]),$t=!et&&h>0&&(S>h||x>h),to=Xe==="content",oe=useRef(qt);oe.current=qt,useEffect(()=>{if(!oe.current)return;let ve=r.activeCell;ve?oe.current(formatCellReference(ve.columnIndex-g,Dt+ve.rowIndex+1)):oe.current(null);},[r.activeCell,Dt,g]);let{handleResizeStart:ce,handleResizeDoubleClick:ee,getColumnWidth:de}=Mn({columnSizingOverrides:w,setColumnSizingOverrides:E}),{isDragging:Et,dropIndicatorX:Yt,handleHeaderMouseDown:Zt}=An({columns:b,columnOrder:wt,onColumnOrderChange:Kt,enabled:Pt===true,pinnedColumns:ne,wrapperRef:t}),be=Be?.enabled===true,Te=Be?.rowHeight??36,qe=Be?.columns===true,no=useMemo(()=>{if(!qe)return;let ve=[];for(let Ve of b)ne?.[Ve.columnId]||ve.push(de(Ve));return ve},[qe,b,ne,de]),{visibleRange:tt,columnRange:nt,onHorizontalScroll:Jt}=Ln({totalRows:he.length,rowHeight:Te,enabled:be,overscan:Be?.overscan,threshold:Be?.threshold,containerRef:t,columnVirtualization:qe,columnWidths:no,columnOverscan:Be?.columnOverscan}),Ft=useMemo(()=>({commitCellEdit:O,setEditingCell:W,setPendingEditorValue:k,cancelPopoverEdit:V}),[O,W,k,V]),Qt=useMemo(()=>({handleCellMouseDown:_,setActiveCell:M,setEditingCell:W,handleCellContextMenu:Ke}),[_,M,W,Ke]),Ot=L(Ae),en=L(X),tn=L(H),ft=L(I),gt=useRef(new CellDescriptorCache),nn=CellDescriptorCache.computeVersion(Ae);gt.current.updateVersion(nn);let Ct=useRef(he),Rt=useRef(b);(Ct.current!==he||Rt.current!==b)&&(Ct.current=he,Rt.current=b,gt.current.clear());let Mt=useCallback(ve=>{if(Se!=="single")return;let Ve=ve.currentTarget.dataset.rowId;if(!Ve)return;let $e=ft.current;D($e.has(Ve)?new Set:new Set([Ve]));},[Se,D,ft]);return {wrapperRef:t,tableContainerRef:n,lastMouseShiftRef:l,layout:s,rowSel:d,editing:i,interaction:r,ctxMenu:m,viewModels:R,pinning:a,handleResizeStart:ce,handleResizeDoubleClick:ee,getColumnWidth:de,isReorderDragging:Et,dropIndicatorX:Yt,handleHeaderMouseDown:Zt,virtualScrollEnabled:be,virtualRowHeight:Te,visibleRange:tt,columnRange:nt,onHorizontalScroll:Jt,items:he,columns:Ge,getRowId:Je,emptyState:Qe,layoutMode:Xe,rowSelection:Se,suppressHorizontalScroll:et,stickyHeader:mt,isLoading:ge,loadingMessage:zt,ariaLabel:_t,ariaLabelledBy:Wt,visibleColumns:pt,columnOrder:wt,columnReorder:Pt,density:Xt,rowHeight:jt,pinnedColumns:ne,currentPage:Ee,propPageSize:Tt,rowNumberOffset:Dt,headerRows:eo,allowOverflowX:$t,fitToContent:to,showColumnLetters:Jn,showNameBox:Qn,editCallbacks:Ft,interactionHandlers:Qt,cellDescriptorInputRef:Ot,cellDescriptorCacheRef:gt,pendingEditorValueRef:en,popoverAnchorElRef:tn,selectedRowIdsRef:ft,handleSingleRowClick:Mt,handlePasteVoid:je,visibleCols:b,totalColCount:c,hasCheckboxCol:f,hasRowNumbersCol:C,colOffset:g,containerWidth:h,minTableWidth:S,desiredTableWidth:x,columnSizingOverrides:w,setColumnSizingOverrides:E,measuredColumnWidths:y,selectedRowIds:I,updateSelection:D,handleRowCheckboxChange:v,handleSelectAll:P,allSelected:A,someSelected:G,editingCell:z,setPopoverAnchorEl:Y,cancelPopoverEdit:V,setActiveCell:M,selectionRange:N,hasCellSelection:T,handleGridKeyDown:B,handleFillHandleMouseDown:F,handleCopy:J,handleCut:$,cutRange:K,copyRange:j,canUndo:q,canRedo:te,onUndo:ae,onRedo:De,isDragging:Ye,menuPosition:Ze,handleCellContextMenu:Ke,closeContextMenu:Ce,headerFilterInput:st,cellDescriptorInput:Ae,statusBarConfig:ut,showEmptyInGrid:ct,onCellError:dt,headerMenu:Le}}function ia(o){let{visibleCols:e,getColumnWidth:t,columnSizingOverrides:n,measuredColumnWidths:l,pinnedColumns:u,leftOffsets:s,rightOffsets:d,pinnedColLeftClass:i,pinnedColRightClass:r,addStickyPosition:m=false}=o;return useMemo(()=>{let R={},a={},p={},c={};for(let f=0;f<e.length;f++){let C=e[f],g=t(C),h=!!(n[C.columnId]||C.idealWidth!=null||C.defaultWidth!=null),S=u[C.columnId]==="left",x=u[C.columnId]==="right",w=S||x,E=!!n[C.columnId],y=l[C.columnId],b=C.minWidth??DEFAULT_MIN_COLUMN_WIDTH,I=E?g:Math.max(b,y??0),D=m&&w?{position:"sticky"}:void 0;R[C.columnId]={minWidth:I,width:h?g:void 0,maxWidth:h?g:void 0,textAlign:C.type==="numeric"?"right":C.type==="boolean"?"center":void 0,...D,...S&&s[C.columnId]!=null?{left:s[C.columnId]}:void 0,...x&&d[C.columnId]!=null?{right:d[C.columnId]}:void 0},p[C.columnId]={minWidth:I,width:h?g:void 0,maxWidth:h?g:void 0,...D,...S&&s[C.columnId]!=null?{left:s[C.columnId]}:void 0,...x&&d[C.columnId]!=null?{right:d[C.columnId]}:void 0};let v=[];S&&v.push(i),x&&v.push(r);let P=v.join(" ");a[C.columnId]=P,c[C.columnId]=P;}return {cellStyles:R,cellClasses:a,hdrStyles:p,hdrClasses:c}},[e,t,n,l,u,s,d,i,r,m])}var Ru={position:"relative",flex:1,minHeight:0,display:"flex",flexDirection:"column"},hu={cursor:"cell"},Su={minHeight:"100%",minWidth:40},bu=o=>{o.preventDefault();},vu=()=>{},yu=o=>{o.stopPropagation();};var Iu=240,er=36,Vn={columns:"Columns",filters:"Filters"},da={display:"flex",flexDirection:"column",width:er,background:"var(--ogrid-header-bg, #f5f5f5)"},xu={...da,borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"},wu={...da,borderRight:"1px solid var(--ogrid-border, #e0e0e0)"},ma={width:er,height:er,border:"none",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:14,display:"flex",alignItems:"center",justifyContent:"center"},Pu={...ma,background:"var(--ogrid-bg, #fff)",fontWeight:"bold"},Tu={...ma,background:"transparent",fontWeight:"normal"},pa={width:Iu,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)"},Du={...pa,borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"},Eu={...pa,borderRight:"1px solid var(--ogrid-border, #e0e0e0)"},Fu={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, #e0e0e0)",fontWeight:600},Ou={border:"none",background:"transparent",cursor:"pointer",fontSize:16,color:"var(--ogrid-fg, #242424)"},Mu={flex:1,overflowY:"auto",padding:"8px 12px"},Uu={display:"flex",flexDirection:"row",flexShrink:0},ku={display:"flex",gap:8,marginBottom:8},sa={flex:1,cursor:"pointer",background:"var(--ogrid-bg-subtle, #f3f2f1)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:4,padding:"4px 8px"},Au={display:"flex",alignItems:"center",gap:6,padding:"2px 0",cursor:"pointer"},Lu={color:"var(--ogrid-muted, #999)",fontStyle:"italic"},Gu={marginBottom:12},Bu={fontWeight:500,marginBottom:4,fontSize:13},Vu={width:"100%",boxSizing:"border-box",padding:"4px 6px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:4},Nu={display:"flex",flexDirection:"column",gap:4},ua={display:"flex",alignItems:"center",gap:4,fontSize:12},ca={flex:1,padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:4},Hu={maxHeight:120,overflowY:"auto"},zu={display:"flex",alignItems:"center",gap:4,padding:"1px 0",cursor:"pointer",fontSize:13};function Nn(o){let{activePanel:e,onPanelChange:t,panels:n,position:l,columns:u,visibleColumns:s,onVisibilityChange:d,onSetVisibleColumns:i,filterableColumns:r,filters:m,onFilterChange:R,filterOptions:a}=o,p=e!==null,c=S=>{t(e===S?null:S);},f=l==="right"?xu:wu,C=l==="right"?Du:Eu,g=jsx("div",{style:f,role:"tablist","aria-label":"Side bar tabs",children:n.map(S=>jsx("button",{role:"tab","aria-selected":e===S,"aria-label":Vn[S],onClick:()=>c(S),title:Vn[S],style:e===S?Pu:Tu,children:S==="columns"?"\u2261":"\u2A65"},S))}),h=p&&e?jsxs("div",{role:"tabpanel","aria-label":Vn[e],style:C,children:[jsxs("div",{style:Fu,children:[jsx("span",{children:Vn[e]}),jsx("button",{onClick:()=>t(null),style:Ou,"aria-label":"Close panel",children:"\xD7"})]}),jsxs("div",{style:Mu,children:[e==="columns"&&jsx(_u,{columns:u,visibleColumns:s,onVisibilityChange:d,onSetVisibleColumns:i}),e==="filters"&&jsx(Wu,{filterableColumns:r,filters:m,onFilterChange:R,filterOptions:a})]})]}):null;return jsxs("div",{style:Uu,role:"complementary","aria-label":"Side bar",children:[l==="left"&&g,l==="left"&&h,l==="right"&&h,l==="right"&&g]})}function _u(o){let{columns:e,visibleColumns:t,onVisibilityChange:n,onSetVisibleColumns:l}=o,u=e.every(i=>t.has(i.columnId));return jsxs(Fragment,{children:[jsxs("div",{style:ku,children:[jsx("button",{onClick:()=>{let i=new Set(t);e.forEach(r=>i.add(r.columnId)),l(i);},disabled:u,style:sa,children:"Select All"}),jsx("button",{onClick:()=>{let i=new Set;e.forEach(r=>{r.required&&t.has(r.columnId)&&i.add(r.columnId);}),l(i);},style:sa,children:"Clear All"})]}),e.map(i=>jsxs("label",{style:Au,children:[jsx("input",{type:"checkbox",checked:t.has(i.columnId),onChange:r=>n(i.columnId,r.target.checked),disabled:i.required}),jsx("span",{children:i.name})]},i.columnId))]})}function Wu(o){let{filterableColumns:e,filters:t,onFilterChange:n,filterOptions:l}=o;return e.length===0?jsx("div",{style:Lu,children:"No filterable columns"}):jsx(Fragment,{children:e.map(u=>{let s=u.filterField,d=t[s];return jsxs("div",{style:Gu,children:[jsx("div",{style:Bu,children:u.name}),u.filterType==="text"&&jsx("input",{type:"text",value:d?.type==="text"?d.value:"",onChange:i=>n(s,i.target.value?{type:"text",value:i.target.value}:void 0),placeholder:`Filter ${u.name}...`,"aria-label":`Filter ${u.name}`,style:Vu}),u.filterType==="date"&&jsxs("div",{style:Nu,children:[jsxs("label",{style:ua,children:["From:",jsx("input",{type:"date",value:d?.type==="date"?d.value.from??"":"",onChange:i=>{let r=i.target.value||void 0,R=(d?.type==="date"?d.value:{}).to;n(s,r||R?{type:"date",value:{from:r,to:R}}:void 0);},"aria-label":`${u.name} from date`,style:ca})]}),jsxs("label",{style:ua,children:["To:",jsx("input",{type:"date",value:d?.type==="date"?d.value.to??"":"",onChange:i=>{let r=i.target.value||void 0,R=(d?.type==="date"?d.value:{}).from;n(s,R||r?{type:"date",value:{from:R,to:r}}:void 0);},"aria-label":`${u.name} to date`,style:ca})]})]}),u.filterType==="multiSelect"&&jsx("div",{style:Hu,role:"group","aria-label":`${u.name} options`,children:(l[s]??[]).map(i=>{let r=d?.type==="multiSelect"?d.value.includes(i):false;return jsxs("label",{style:zu,children:[jsx("input",{type:"checkbox",checked:r,onChange:m=>{let R=d?.type==="multiSelect"?d.value:[],a=m.target.checked?[...R,i]:R.filter(p=>p!==i);n(s,a.length>0?{type:"multiSelect",value:a}:void 0);}}),jsx("span",{children:i})]},i)})})]},u.columnId)})})}var Ca={border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:GRID_BORDER_RADIUS,overflow:"hidden",display:"flex",flexDirection:"column",flex:1,minHeight:0,background:"var(--ogrid-bg, #fff)"},$u={...Ca,borderRadius:0,border:"none"},Ra={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"6px 12px",background:"var(--ogrid-header-bg, #f5f5f5)",gap:8,flexWrap:"wrap",minHeight:0},Yu={...Ra,borderBottom:"1px solid var(--ogrid-border, #e0e0e0)"},Zu=Ra,ga={display:"flex",alignItems:"center",gap:8},Ju={borderBottom:"1px solid var(--ogrid-border, #e0e0e0)",padding:"6px 12px",background:"var(--ogrid-header-bg, #f5f5f5)"},Qu={borderTop:"1px solid var(--ogrid-border, #e0e0e0)",background:"var(--ogrid-header-bg, #f5f5f5)",padding:"6px 12px"},ec={width:"100%",minWidth:0,minHeight:0,flex:1,display:"flex"},tc={width:"100%",minWidth:0,minHeight:0,flex:1,display:"flex",flexDirection:"column"},nc={flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},oc={display:"flex",flexDirection:"column",height:"100%"},rc={position:"fixed",inset:0,zIndex:9999,display:"flex",flexDirection:"column",background:"var(--ogrid-bg, #fff)"},lc={background:"none",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:4,padding:"4px 6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--ogrid-fg, #242424)"},ac=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("polyline",{points:"10 2 14 2 14 6"}),jsx("polyline",{points:"6 14 2 14 2 10"}),jsx("line",{x1:"14",y1:"2",x2:"10",y2:"6"}),jsx("line",{x1:"2",y1:"14",x2:"6",y2:"10"})]}),ic=()=>jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("polyline",{points:"4 10 0 10 0 14"}),jsx("polyline",{points:"12 6 16 6 16 2"}),jsx("line",{x1:"0",y1:"10",x2:"4",y2:"6"}),jsx("line",{x1:"16",y1:"6",x2:"12",y2:"10"})]});function tr(o){let{containerComponent:e="div",containerProps:t={},className:n,toolbar:l,toolbarEnd:u,toolbarBelow:s,children:d,pagination:i,sideBar:r,fullScreen:m,formulaBar:R,sheetTabs:a}=o,[p,c]=useState(false),f=useCallback(()=>{c(x=>!x);},[]);useEffect(()=>{if(!p)return;let x=w=>{w.key==="Escape"&&c(false);};return document.addEventListener("keydown",x),()=>document.removeEventListener("keydown",x)},[p]);let C=r!=null,g=r?.position??"right",h=l!=null||u!=null||m;return jsx(e,{className:n,style:p?rc:oc,...t,children:jsxs("div",{style:p?$u:Ca,children:[h&&jsxs("div",{style:s?Zu:Yu,children:[jsx("div",{style:ga,children:l}),jsxs("div",{style:ga,children:[u,m?jsx("button",{type:"button",style:lc,onClick:f,title:p?"Exit fullscreen":"Fullscreen","aria-label":p?"Exit fullscreen":"Fullscreen",children:p?jsx(ic,{}):jsx(ac,{})}):null]})]}),s&&jsx("div",{style:Ju,children:s}),R,C?jsxs("div",{style:ec,children:[g==="left"&&jsx(Nn,{...r}),jsx("div",{style:nc,children:d}),g!=="left"&&jsx(Nn,{...r})]}):jsx("div",{style:tc,children:d}),a,i&&jsx("div",{style:Qu,children:i})]})})}function sc({classNames:o,...e}){let t=getStatusBarParts(e);return jsx("div",{className:o?.statusBar,role:"status","aria-live":"polite",children:t.map(n=>jsxs("span",{className:o?.statusBarItem,children:[jsx("span",{className:o?.statusBarLabel,children:n.label}),jsx("span",{className:o?.statusBarValue,children:n.value.toLocaleString()})]},n.key))})}var _n={width:"100%",height:"100%",display:"flex",alignItems:"center",padding:"6px 10px",boxSizing:"border-box",overflow:"hidden",minWidth:0},zn={width:"100%",padding:0,border:"none",background:"transparent",color:"inherit",font:"inherit",fontSize:"13px",outline:"none",minWidth:0},or={..._n,position:"relative"},Sa={position:"absolute",top:"100%",left:0,right:0,maxHeight:200,overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",zIndex:10,boxShadow:"var(--ogrid-shadow, 0 4px 16px rgba(0,0,0,0.2))",textAlign:"left"},Wn={padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)"},rr={...Wn,background:"var(--ogrid-bg-hover, #e8f0fe)"},ba={padding:"6px 8px",color:"var(--ogrid-muted, #999)"},cc={width:"100%",padding:0,border:"none",background:"transparent",color:"inherit",font:"inherit",fontSize:"13px",cursor:"pointer",outline:"none"},va={display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"13px",color:"inherit"},ya={marginLeft:4,fontSize:"10px",opacity:.5};function dc(o){let{value:e,column:t,editorType:n,onCommit:l,onCancel:u,renderCheckbox:s}=o,d=Pe.useRef(null),i=Pe.useRef(u);i.current=u;let{localValue:r,setLocalValue:m,handleKeyDown:R,handleBlur:a,commit:p,cancel:c}=On({value:e,editorType:n,onCommit:l,onCancel:u}),f=t.cellEditorParams?.values??[],C=t.cellEditorParams?.formatValue,g=Un({values:f,formatValue:C,initialValue:e,onCommit:l,onCancel:u}),h=kn({values:f,formatValue:C,initialValue:e,onCommit:l,onCancel:u}),[S,x]=Pe.useState(null);Pe.useLayoutEffect(()=>{if(n!=="select"&&n!=="richSelect")return;let y=d.current;if(!y)return;let b=y.getBoundingClientRect(),I=200,D=window.innerHeight-b.bottom,v=D<I&&b.top>D;x({position:"fixed",...v?{bottom:window.innerHeight-b.top}:{top:b.bottom},left:b.left,width:b.width,maxHeight:I,overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",zIndex:9999,boxShadow:"var(--ogrid-shadow, 0 4px 16px rgba(0,0,0,0.2))",textAlign:"left"});let P=y.closest(".ogrid-table-wrapper")??y.closest('[style*="overflow"]'),A=()=>i.current(),G=requestAnimationFrame(()=>{P&&P.addEventListener("scroll",A,{passive:true}),window.addEventListener("scroll",A,{passive:true});});return ()=>{cancelAnimationFrame(G),P&&P.removeEventListener("scroll",A),window.removeEventListener("scroll",A);}},[n]);let w=S??Sa;Pe.useEffect(()=>{let y=d.current;if(!y)return;let b=y.querySelector("input");if(b)if(b.focus({preventScroll:true}),n==="date")try{b.showPicker();}catch{}else b.select();else y.focus({preventScroll:true});},[]);let E=S!=null;if(n==="richSelect"){let y=jsxs("div",{style:w,role:"listbox",children:[g.filteredValues.map((b,I)=>jsx("div",{role:"option","aria-selected":I===g.highlightedIndex,onClick:()=>g.selectValue(b),style:I===g.highlightedIndex?rr:Wn,children:g.getDisplayText(b)},String(b))),g.filteredValues.length===0&&jsx("div",{style:ba,children:"No matches"})]});return jsxs("div",{ref:d,style:or,children:[jsx("input",{type:"text",value:g.searchText,onChange:b=>g.setSearchText(b.target.value),onKeyDown:g.handleKeyDown,placeholder:"Search...",autoFocus:true,style:zn}),E?createPortal(y,document.body):y]})}if(n==="checkbox")return jsx(Fragment,{children:s(e===true,b=>p(b),c)});if(n==="select"){let y=jsx("div",{style:w,ref:h.dropdownRef,role:"listbox",children:f.map((b,I)=>jsx("div",{role:"option","aria-selected":I===h.highlightedIndex,onClick:()=>h.selectValue(b),style:I===h.highlightedIndex?rr:Wn,children:h.getDisplayText(b)},String(b)))});return jsxs("div",{ref:d,style:or,onKeyDown:h.handleKeyDown,tabIndex:0,children:[jsxs("div",{style:va,children:[jsx("span",{children:h.getDisplayText(e)}),jsx("span",{style:ya,children:"\u25BE"})]}),E?createPortal(y,document.body):y]})}return n==="date"?jsx("div",{ref:d,style:_n,children:jsx("input",{type:"date",value:r,onChange:y=>m(y.target.value),onBlur:a,onKeyDown:R,style:zn,autoFocus:true})}):jsx("div",{ref:d,style:_n,children:jsx("input",{type:"text",value:r,onChange:y=>m(y.target.value),onBlur:a,onKeyDown:R,style:zn,autoFocus:true})})}var pc=(o,e)=>({left:o,top:e});function fc(o){let{x:e,y:t,hasSelection:n,canUndo:l,canRedo:u,onClose:s,onCopy:d,onCut:i,onPaste:r,onSelectAll:m,onUndo:R,onRedo:a,classNames:p}=o,c=Pe.useRef(null),f=Pe.useMemo(()=>getContextMenuHandlers({onCopy:d,onCut:i,onPaste:r,onSelectAll:m,onUndo:R,onRedo:a,onClose:s}),[d,i,r,m,R,a,s]),C=Pe.useCallback(g=>!!(g.disabledWhenNoSelection&&!n||g.id==="undo"&&!l||g.id==="redo"&&!u),[n,l,u]);return Pe.useEffect(()=>{let g=S=>{c.current&&!c.current.contains(S.target)&&s();},h=S=>{S.key==="Escape"&&s();};return document.addEventListener("mousedown",g,true),document.addEventListener("keydown",h,true),()=>{document.removeEventListener("mousedown",g,true),document.removeEventListener("keydown",h,true);}},[s]),jsx("div",{ref:c,className:p?.contextMenu,role:"menu",style:pc(e,t),"aria-label":"Grid context menu",children:GRID_CONTEXT_MENU_ITEMS.map(g=>jsxs(Pe.Fragment,{children:[g.dividerBefore&&jsx("div",{className:p?.contextMenuDivider}),jsxs("button",{type:"button",className:p?.contextMenuItem,onClick:f[g.id],disabled:C(g),children:[jsx("span",{className:p?.contextMenuItemLabel,children:g.label}),g.shortcut&&jsx("span",{className:p?.contextMenuItemShortcut,children:formatShortcut(g.shortcut)})]})]},g.id))})}var hc={animation:"ogrid-marching-ants 0.5s linear infinite"},Sc={shapeRendering:"crispEdges"},bc={...hc,shapeRendering:"crispEdges"};function vc({containerRef:o,selectionRange:e,copyRange:t,cutRange:n,colOffset:l,items:u,visibleColumns:s,columnSizingOverrides:d,columnOrder:i,isDragging:r}){let[m,R]=useState(null),[a,p]=useState(null),c=useRef(0),f=t??n,C=useCallback(()=>{let w=o.current;if(!w){R(null),p(null);return}R(e?measureRange(w,e,l):null),p(f?measureRange(w,f,l):null);},[e,f,o,l]);if(useEffect(()=>{injectGlobalStyles("ogrid-marching-ants-keyframes","@keyframes ogrid-marching-ants{to{stroke-dashoffset:-8}}");},[]),useEffect(()=>{if(!e&&!f){R(null),p(null);return}c.current=requestAnimationFrame(C);let w=o.current,E;return w&&(E=new ResizeObserver(C),E.observe(w)),()=>{cancelAnimationFrame(c.current),E?.disconnect();}},[e,f,C,o,u,s,d,i]),!m&&!a)return null;let g=e!=null&&f!=null&&e.startRow===f.startRow&&e.startCol===f.startCol&&e.endRow===f.endRow&&e.endCol===f.endCol,h=w=>({top:Math.round(w.top),left:Math.round(w.left),width:Math.round(w.width),height:Math.round(w.height)}),S=m?h(m):null,x=a?h(a):null;return jsxs(Fragment,{children:[S&&!r&&!g&&!(e&&e.startRow===e.endRow&&e.startCol===e.endCol)&&jsx("svg",{style:{position:"absolute",top:S.top,left:S.left,width:S.width,height:S.height,pointerEvents:"none",zIndex:4,overflow:"visible"},"aria-hidden":"true",children:jsx("rect",{x:"1",y:"1",width:Math.max(0,S.width-2),height:Math.max(0,S.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)",strokeWidth:"2",style:Sc})}),x&&jsx("svg",{style:{position:"absolute",top:x.top,left:x.left,width:x.width,height:x.height,pointerEvents:"none",zIndex:5,overflow:"visible"},"aria-hidden":"true",children:jsx("rect",{x:"1",y:"1",width:Math.max(0,x.width-2),height:Math.max(0,x.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)",strokeWidth:"2",strokeDasharray:"4 4",style:bc})})]})}var Ec={shapeRendering:"crispEdges"};function Fc(o,e,t){let n=e.col+t,l=(e.endCol??e.col)+t,u=e.endRow??e.row,s=o.querySelector(`[data-row-index="${e.row}"][data-col-index="${n}"]`),d=o.querySelector(`[data-row-index="${u}"][data-col-index="${l}"]`);if(!s||!d)return null;let i=o.getBoundingClientRect(),r=s.getBoundingClientRect(),m=d.getBoundingClientRect();return {top:Math.round(r.top-i.top),left:Math.round(r.left-i.left),width:Math.round(m.right-r.left),height:Math.round(m.bottom-r.top),color:FORMULA_REF_COLORS[e.colorIndex%FORMULA_REF_COLORS.length]}}function Oc({containerRef:o,references:e,colOffset:t}){let[n,l]=useState([]),u=useRef(0),s=useCallback(()=>{let d=o.current;if(!d||e.length===0){l([]);return}let i=[];for(let r of e){let m=Fc(d,r,t);m&&i.push(m);}l(i);},[e,o,t]);return useEffect(()=>{if(e.length===0){l([]);return}return u.current=requestAnimationFrame(s),()=>cancelAnimationFrame(u.current)},[e,s]),n.length===0?null:jsx(Fragment,{children:n.map((d,i)=>jsx("svg",{style:{position:"absolute",top:d.top,left:d.left,width:d.width,height:d.height,pointerEvents:"none",zIndex:3,overflow:"visible"},"aria-hidden":"true",children:jsx("rect",{x:"1",y:"1",width:Math.max(0,d.width-2),height:Math.max(0,d.height-2),fill:"none",stroke:d.color,strokeWidth:"2",style:Ec})},i))})}var Mc=memo(Oc);function Ac(o){let{isOpen:e,anchorElement:t,onClose:n,onPinLeft:l,onPinRight:u,onUnpin:s,onSortAsc:d,onSortDesc:i,onClearSort:r,onAutosizeThis:m,onAutosizeAll:R,canPinLeft:a,canPinRight:p,canUnpin:c,currentSort:f,isSortable:C,isResizable:g,classNames:h,getPortalTarget:S}=o,[x,w]=Pe.useState(null),E=Pe.useRef(null);Pe.useEffect(()=>{if(!e||!t){w(null);return}let v=t.getBoundingClientRect();w({top:v.bottom+4,left:v.left});let P=G=>{let z=G.target;E.current&&E.current.contains(z)||t&&!t.contains(z)&&n();},A=G=>{G.key==="Escape"&&n();};return document.addEventListener("mousedown",P),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",P),document.removeEventListener("keydown",A);}},[e,t,n]);let y=Pe.useMemo(()=>({canPinLeft:a,canPinRight:p,canUnpin:c,currentSort:f,isSortable:C,isResizable:g}),[a,p,c,f,C,g]),b=Pe.useMemo(()=>getColumnHeaderMenuItems(y),[y]),I=Pe.useMemo(()=>({pinLeft:l,pinRight:u,unpin:s,sortAsc:d,sortDesc:i,clearSort:r,autosizeThis:m,autosizeAll:R}),[l,u,s,d,i,r,m,R]);if(!e||!x)return null;let D=t&&S?S(t):document.body;return createPortal(jsx("div",{ref:E,className:h?.content,style:{position:"fixed",top:x.top,left:x.left,zIndex:1e3},children:b.map((v,P)=>jsxs(Pe.Fragment,{children:[jsx("button",{className:h?.item,disabled:v.disabled,onClick:()=>{I[v.id](),n();},children:v.label}),v.divider&&P<b.length-1&&jsx("div",{className:h?.separator})]},v.id))}),D)}var Ea=Pe.memo(o=>{let{currentPage:e,pageSize:t,totalCount:n,onPageChange:l,onPageSizeChange:u,pageSizeOptions:s,entityLabelPlural:d,className:i,slots:r,classNames:m={}}=o,{labelPlural:R,vm:a,handlePageSizeChange:p}=Gn({currentPage:e,pageSize:t,totalCount:n,onPageSizeChange:u,pageSizeOptions:s,entityLabelPlural:d});if(!a)return null;let{pageNumbers:c,showStartEllipsis:f,showEndEllipsis:C,totalPages:g,startItem:h,endItem:S}=a,{NavButton:x,PageButton:w,PageSizeSelect:E,OuterContainer:y,InfoText:b,NavButtonsContainer:I,PageSizeContainer:D,PageSizeLabel:v,Ellipsis:P}=r,A=`Showing ${h} to ${S} of ${n.toLocaleString()} ${R}`,G=b?jsx(b,{children:A}):jsx("div",{className:m.paginationInfo,children:A}),z=P?jsx(P,{}):jsx("span",{className:m.ellipsis,"aria-hidden":true,children:"\u2026"}),W=v?jsx(v,{}):jsx("span",{className:m.pageSizeLabel,children:"Rows"}),X=jsxs("div",{className:m.pageNumbers,children:[f&&jsxs(Fragment,{children:[jsx(w,{onClick:()=>l(1),active:false,"aria-label":"Page 1",className:m.pageBtn,children:"1"}),z]}),c.map(N=>jsx(w,{onClick:()=>l(N),active:e===N,"aria-label":`Page ${N}`,"aria-current":e===N?"page":void 0,className:m.pageBtn,children:N},N)),C&&jsxs(Fragment,{children:[z,jsx(w,{onClick:()=>l(g),active:false,"aria-label":`Page ${g}`,className:m.pageBtn,children:g})]})]}),k=jsxs(Fragment,{children:[jsx(x,{variant:"first",onClick:()=>l(1),disabled:e===1,"aria-label":"First page",className:m.navBtn}),jsx(x,{variant:"prev",onClick:()=>l(e-1),disabled:e===1,"aria-label":"Previous page",className:m.navBtn}),X,jsx(x,{variant:"next",onClick:()=>l(e+1),disabled:e>=g,"aria-label":"Next page",className:m.navBtn}),jsx(x,{variant:"last",onClick:()=>l(g),disabled:e>=g,"aria-label":"Last page",className:m.navBtn})]}),O=I?jsx(I,{className:m.paginationControls,children:k}):jsx("div",{className:m.paginationControls,children:k}),V=jsxs(Fragment,{children:[W,jsx(E,{value:t,options:a.pageSizeOptions,onChange:p,"aria-label":"Rows per page",className:m.pageSizeSelect})]}),H=D?jsx(D,{className:m.pageSizeSelector,children:V}):jsx("div",{className:m.pageSizeSelector,children:V}),Y=`${m.pagination??""} ${i||""}`.trim(),M="navigation",_="Pagination";return y?jsxs(y,{className:Y,role:M,"aria-label":_,children:[G,O,H]}):jsxs("div",{className:Y,role:M,"aria-label":_,children:[G,O,H]})});Ea.displayName="PaginationControlsBase";var Fa=({columns:o,visibleColumns:e,visibleCount:t,totalCount:n,handleSelectAll:l,handleClearAll:u,handleCheckboxChange:s,CheckboxItem:d,classNames:i={},Header:r,OptionsListContainer:m,OptionItemContainer:R,Actions:a})=>{let p=r?jsx(r,{visibleCount:t,totalCount:n}):jsxs("div",{className:i.header,children:["Select Columns (",t," of ",n,")"]}),c=o.map(g=>{let h=jsx(d,{columnId:g.columnId,columnName:g.name,checked:e.has(g.columnId),disabled:g.required===true,onChange:s(g.columnId)});return R?jsx(R,{columnId:g.columnId,children:h},g.columnId):jsx("div",{className:i.optionItem,children:h},g.columnId)}),f=m?jsx(m,{children:c}):jsx("div",{className:i.optionsList,children:c}),C=a?jsx(a,{onClearAll:u,onSelectAll:l}):jsxs("div",{className:i.actions,children:[jsx("button",{type:"button",className:i.clearButton,onClick:u,children:"Clear All"}),jsx("button",{type:"button",className:i.selectAllButton,onClick:l,children:"Select All"})]});return jsxs(Fragment,{children:[p,f,C]})};Fa.displayName="ColumnChooserContent";function Vc(o){let{DataGridTable:e,ColumnChooser:t,PaginationControls:n,containerComponent:l,containerProps:u}=o,s=forwardRef(function(i,r){let{dataGridProps:m,pagination:R,columnChooser:a,layout:p}=dn(i,r);return jsx(tr,{containerComponent:l,containerProps:u,className:p.className,sideBar:p.sideBarProps,toolbar:p.toolbar,toolbarBelow:p.toolbarBelow,fullScreen:p.fullScreen,formulaBar:p.formulaBar,sheetTabs:p.sheetTabs,toolbarEnd:a.placement==="toolbar"?jsx(t,{columns:a.columns,visibleColumns:a.visibleColumns,onVisibilityChange:a.onVisibilityChange,onSetVisibleColumns:a.onSetVisibleColumns}):void 0,pagination:jsx(n,{currentPage:R.page,pageSize:R.pageSize,totalCount:R.displayTotalCount,onPageChange:R.setPage,onPageSizeChange:R.setPageSize,pageSizeOptions:R.pageSizeOptions,entityLabelPlural:R.entityLabelPlural}),children:jsx(e,{...m})})});return s.displayName="OGrid",Pe.memo(s)}var Nc={color:"var(--ogrid-error, #d32f2f)",fontSize:"0.75rem",padding:"2px 4px"},sr=class extends Pe.Component{constructor(e){super(e),this.state={hasError:false};}static getDerivedStateFromError(){return {hasError:true}}componentDidCatch(e,t){this.props.onError&&this.props.onError(e,t);}componentDidUpdate(e){e.children!==this.props.children&&this.state.hasError&&this.setState({hasError:false});}resetErrorBoundary(){this.setState({hasError:false});}render(){return this.state.hasError?this.props.fallback!==void 0?this.props.fallback:jsx("span",{style:Nc,children:"\u26A0 Error"}):this.props.children}};var zc={background:"none",border:"none",color:"inherit",textDecoration:"underline",cursor:"pointer",padding:0,font:"inherit"};function _c(o){let{message:e,hasActiveFilters:t,onClearAll:n,render:l}=o;return l?jsx(Fragment,{children:l()}):jsx(Fragment,{children:e??(t?jsxs(Fragment,{children:["No items match your current filters. Try adjusting your search or"," ",jsx("button",{type:"button",onClick:n,style:zc,children:"clear all filters"})," ","to see all items."]}):"There are no items available at this time.")})}function Kc({emptyState:o,classNames:e,icon:t}){return jsx("div",{className:e.emptyStateInGrid,children:jsx("div",{className:e.emptyStateInGridInner,children:o.render?o.render():jsxs(Fragment,{children:[t!=null&&jsx("span",{className:e.emptyStateInGridIcon,"aria-hidden":true,children:t}),jsx("div",{className:e.emptyStateInGridTitle,children:"No results found"}),jsx("div",{className:e.emptyStateInGridMessage,children:o.message!=null?o.message:o.hasActiveFilters?jsxs(Fragment,{children:["No items match your current filters. Try adjusting your search or"," ",jsx("button",{type:"button",className:e.emptyStateInGridLink,onClick:o.onClearAll,children:"clear all filters"})," ","to see all items."]}):"There are no items available at this time."})]})})})}function jc({message:o,classNames:e}){return jsx("div",{className:e.loadingOverlay,"aria-live":"polite",children:jsxs("div",{className:e.loadingOverlayContent,children:[jsx("div",{className:e.spinner}),jsx("span",{className:e.loadingOverlayText,children:o})]})})}function qc({dropIndicatorX:o,wrapperLeft:e,className:t}){return jsx("div",{className:t,style:{left:o-e}})}var Yc={padding:"8px 12px",display:"flex",flexDirection:"column",gap:6},Aa={display:"flex",alignItems:"center",gap:6,fontSize:12},La={flex:1},Yn=({tempDateFrom:o,setTempDateFrom:e,tempDateTo:t,setTempDateTo:n,onApply:l,onClear:u,classNames:s})=>jsxs(Fragment,{children:[jsxs("div",{style:Yc,children:[jsxs("label",{style:Aa,children:["From:",jsx("input",{type:"date",value:o,onChange:d=>e(d.target.value),style:La})]}),jsxs("label",{style:Aa,children:["To:",jsx("input",{type:"date",value:t,onChange:d=>n(d.target.value),style:La})]})]}),jsxs("div",{className:s?.popoverActions,children:[jsx("button",{className:s?.clearButton,onClick:u,disabled:!o&&!t,children:"Clear"}),jsx("button",{className:s?.applyButton,onClick:l,children:"Apply"})]})]});Yn.displayName="DateFilterContent";function Zc(o){return {filterType:o.filterType,onSort:o.onSort,selectedValues:o.selectedValues,onFilterChange:o.onFilterChange,options:o.options,isLoadingOptions:o.isLoadingOptions??false,textValue:o.textValue??"",onTextChange:o.onTextChange,selectedUser:o.selectedUser,onUserChange:o.onUserChange,peopleSearch:o.peopleSearch,dateValue:o.dateValue,onDateChange:o.onDateChange}}function Jc(o,e){return {tempDateFrom:o.tempDateFrom,setTempDateFrom:o.setTempDateFrom,tempDateTo:o.tempDateTo,setTempDateTo:o.setTempDateTo,onApply:o.handlers.handleDateApply,onClear:o.handlers.handleDateClear,classNames:e}}function ed(o,e,t,n,l,u){return o==="multiSelect"?u.renderMultiSelect({searchText:e.searchText,onSearchChange:e.setSearchText,options:t,filteredOptions:e.filteredOptions,selected:e.tempSelected,onOptionToggle:e.handlers.handleCheckboxChange,onSelectAll:e.handlers.handleSelectAll,onClearSelection:e.handlers.handleClearSelection,onApply:e.handlers.handleApplyMultiSelect,isLoading:n}):o==="text"?u.renderText({value:e.tempTextValue,onValueChange:e.setTempTextValue,onApply:e.handlers.handleTextApply,onClear:e.handlers.handleTextClear}):o==="people"?u.renderPeople({selectedUser:l,searchText:e.peopleSearchText,onSearchChange:e.setPeopleSearchText,suggestions:e.peopleSuggestions,isLoading:e.isPeopleLoading,onUserSelect:e.handlers.handleUserSelect,onClearUser:e.handlers.handleClearUser,inputRef:e.peopleInputRef}):o==="date"?u.renderDate({tempDateFrom:e.tempDateFrom,setTempDateFrom:e.setTempDateFrom,tempDateTo:e.tempDateTo,setTempDateTo:e.setTempDateTo,onApply:e.handlers.handleDateApply,onClear:e.handlers.handleDateClear}):null}function td(o,e){return {renderMultiSelect:t=>jsx(o.MultiSelectFilterPopover,{...t}),renderText:t=>jsx(o.TextFilterPopover,{...t}),renderPeople:t=>jsx(o.PeopleFilterPopover,{...t}),renderDate:t=>jsx(Yn,{...t,classNames:e})}}export{Ac as BaseColumnHeaderMenu,qc as BaseDropIndicator,Kc as BaseEmptyState,dc as BaseInlineCellEditor,jc as BaseLoadingOverlay,hu as CURSOR_CELL_STYLE,sr as CellErrorBoundary,Fa as ColumnChooserContent,Yn as DateFilterContent,_c as EmptyState,Fo as FormulaBar,Mc as FormulaRefOverlay,Ru as GRID_ROOT_STYLE,fc as GridContextMenu,vc as MarchingAntsOverlay,vu as NOOP,tr as OGridLayout,Su as POPOVER_ANCHOR_STYLE,bu as PREVENT_DEFAULT,Ea as PaginationControlsBase,yu as STOP_PROPAGATION,Oo as SheetTabs,Nn as SideBar,sc as StatusBar,kr as buildInlineEditorProps,Ar as buildPopoverEditorProps,td as createBaseFilterRenderers,Vc as createOGrid,zn as editorInputStyle,_n as editorWrapperStyle,Lr as getCellInteractionProps,Zc as getColumnHeaderFilterStateParams,El as getColumnHeaderMenuProps,Jc as getDateFilterContentProps,ed as renderFilterContent,Mr as resolveCellDisplayContent,Ur as resolveCellStyle,Sa as richSelectDropdownStyle,ba as richSelectNoMatchesStyle,rr as richSelectOptionHighlightedStyle,Wn as richSelectOptionStyle,or as richSelectWrapperStyle,ya as selectChevronStyle,va as selectDisplayStyle,cc as selectEditorStyle,mn as useActiveCell,pn as useCellEditing,gn as useCellSelection,Cn as useClipboard,Yl as useColumnChooserState,$l as useColumnHeaderFilterState,ia as useColumnMeta,An as useColumnReorder,Mn as useColumnResize,fn as useContextMenu,wn as useDataGridState,aa as useDataGridTableOrchestration,Fn as useDateFilterState,bn as useDebounce,In as useFillHandle,ln as useFilterOptions,sn as useFormulaBar,an as useFormulaEngine,On as useInlineCellEditorState,hn as useKeyboardNavigation,L as useLatestRef,oa as useListVirtualizer,Dn as useMultiSelectFilterState,dn as useOGrid,Gn as usePaginationControls,En as usePeopleFilterState,Un as useRichSelectState,Rn as useRowSelection,kn as useSelectState,cn as useSideBarState,xn as useTableLayout,Pn as useTextFilterState,Sn as useUndoRedo,Ln as useVirtualScroll};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alaarab/ogrid-react",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.2",
|
|
4
4
|
"description": "OGrid React – React hooks, headless components, and utilities for OGrid data grids.",
|
|
5
5
|
"main": "dist/esm/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"node": ">=18"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@alaarab/ogrid-core": "2.5.
|
|
42
|
+
"@alaarab/ogrid-core": "2.5.2",
|
|
43
43
|
"@tanstack/react-virtual": "^3.0.0"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|