@alaarab/ogrid-react 2.5.8 → 2.5.9
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,estimateHeaderMinWidth,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,computeAggregations,getDataGridStatusBarConfig,PEOPLE_SEARCH_DEBOUNCE_MS,formatDateForDisplay,DEFAULT_DATE_FORMAT,measureColumnContentWidth,getPinStateForColumn,validateVirtualScrollConfig,computeVisibleColumnRange,buildHeaderRows,formatCellReference,CellDescriptorCache,GRID_BORDER_RADIUS,getStatusBarParts,getDateInputPlaceholder,getContextMenuHandlers,GRID_CONTEXT_MENU_ITEMS,formatShortcut,measureRange,injectGlobalStyles,getColumnHeaderMenuItems,calculateDropTarget,reorderColumnArray,computeNextSortState,mergeFilter,getMultiSelectFilterFields,deriveFilterOptionsFromData,processClientSideData,processClientSideDataAsync,resolveResponsiveConfig,applyResponsiveHiding,DEFAULT_MIN_COLUMN_WIDTH,parseValue,parseUserInputDate,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,handleBooleanCellPointerDown,indexToColumnLetter,isInSelectionRange,isRowInRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,partitionColumnsForVirtualization,processClientSideData,rangesEqual,toUserLike,triggerCsvDownload}from'@alaarab/ogrid-core';import*as we 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 k(o){let e=useRef(o);return e.current=o,e}function ti(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 Lr={},co={};function pn(o,e){let t=useRef(e);ti(t.current,e)||(t.current=e);let n=t.current,l=k(o),[u,s]=useState(Lr),[d,i]=useState(co),r=useCallback(async()=>{let p=l.current,g="fetchFilterOptions"in p&&typeof p.fetchFilterOptions=="function"?p.fetchFilterOptions.bind(p):void 0;if(!g){s(Lr),i(co);return}let a={};n.forEach(c=>{a[c]=true;}),i(a);let m={};await Promise.all(n.map(async c=>{try{m[c]=await g(c);}catch{m[c]=[];}})),s(m),i(co);},[n,l]);return useEffect(()=>{r().catch(()=>{});},[r]),{filterOptions:u,loadingOptions:d}}function kr(o,e,t){return resolveCellDisplayContent(o,e,t)}function Ar(o,e,t){return resolveCellStyle(o,e,t)}function Gr(o,e,t,n){return {...buildInlineEditorProps(o,e,t,n),column:e}}function Br(o,e,t,n,l){return {...buildPopoverEditorProps(o,e,t,n,l),column:e}}function Vr(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.setEditingCell(null),t.handleCellMouseDown(n,o.rowIndex,o.globalColIndex),t.handleLongPressStart?.(n);},onPointerUp:()=>t.handleLongPressEnd?.(),onPointerLeave:()=>t.handleLongPressEnd?.(),onPointerCancel:()=>t.handleLongPressEnd?.(),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 Ei={getFormulaValue:()=>{},hasFormula:()=>false,getFormula:()=>{},setFormula:()=>{},onCellChanged:()=>{},getPrecedents:()=>[],getDependents:()=>[],getAuditTrail:()=>null,enabled:false};function gn(o){let{formulas:e,items:t,flatColumns:n,initialFormulas:l,onFormulaRecalc:u,formulaFunctions:s,namedRanges:d,sheets:i}=o,r=k(t),p=k(n),g=k(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[T,I]of Object.entries(i))a.current.registerSheet(T,I);return ()=>{if(!(!a.current||!i))for(let T of Object.keys(i))a.current.unregisterSheet(T);}}},[i]);let m=useCallback(()=>createGridDataAccessor(r.current,p.current),[r,p]),c=useRef(false);useEffect(()=>{if(e&&a.current&&l&&!c.current){c.current=true;let T=m(),I=a.current.loadFormulas(l,T);I.updatedCells.length>0&&g.current?.(I);}},[e,l,m,g]);let f=useCallback((T,I)=>a.current?.getValue(T,I),[]),C=useCallback((T,I)=>a.current?.hasFormula(T,I)??false,[]),h=useCallback((T,I)=>a.current?.getFormula(T,I),[]),R=useCallback((T,I,v)=>{if(!a.current)return;let x=m(),b=a.current.setFormula(T,I,v,x);b.updatedCells.length>0&&g.current?.(b);},[m,g]),S=useCallback((T,I)=>{if(!a.current)return;let v=m(),x=a.current.onCellChanged(T,I,v);x.updatedCells.length>0&&g.current?.(x);},[m,g]),y=useCallback((T,I)=>a.current?.getPrecedents(T,I)??[],[]),w=useCallback((T,I)=>a.current?.getDependents(T,I)??[],[]),O=useCallback((T,I)=>a.current?.getAuditTrail(T,I)??null,[]);return e?{getFormulaValue:f,hasFormula:C,getFormula:h,setFormula:R,onCellChanged:S,getPrecedents:y,getDependents:w,getAuditTrail:O,enabled:true}:Ei}function Cn(o){let{activeCol:e,activeRow:t,activeCellRef:n,getFormula:l,getRawValue:u,setFormula:s,onCellValueChanged:d}=o,[i,r]=useState(false),[p,g]=useState(""),a=useRef(false),m=useRef(null),c=useMemo(()=>deriveFormulaBarText(e,t,l,u),[e,t,l,u]);useEffect(()=>{r(false),a.current=false;},[e,t]);let f=useCallback(()=>{g(c),r(true),a.current=true;},[c]),C=useCallback(O=>{g(O);},[]),h=useCallback(()=>{e==null||t==null||!s||(processFormulaBarCommit(p,e,t,s,d),r(false),a.current=false);},[e,t,p,s,d]),R=useCallback(()=>{r(false),a.current=false,g("");},[]),S=useCallback(O=>{if(!a.current||!p.startsWith("="))return false;let T=m.current?.selectionStart??p.length,I=insertReferenceAtCursor(p,T,O);return g(I.text),setTimeout(()=>{m.current&&(m.current.selectionStart=I.cursorPos,m.current.selectionEnd=I.cursorPos,m.current.focus());},0),true},[p]),y=i?p:c,w=useMemo(()=>extractFormulaReferences(y),[y]);return {cellRef:n,formulaText:i?p:c,isEditing:i,onInputChange:C,onCommit:h,onCancel:R,startEditing:f,referencedCells:w,isFormulaBarEditing:a,insertReference:S,inputRef:m}}function Uo({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:p=>n(p.target.value),onKeyDown:p=>handleFormulaBarKeyDown(p.key,()=>p.preventDefault(),l,u),onClick:()=>{t||s();},onDoubleClick:()=>{t||s();},"aria-label":"Formula input",spellCheck:false,autoComplete:"off"})]})}var Ni={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},Hi={background:"none",border:"none",cursor:"pointer",padding:"4px 10px",fontSize:16,lineHeight:"22px",color:"var(--ogrid-fg-secondary, #666)",flexShrink:0},rl={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"},zi={...rl,fontWeight:600,borderBottomColor:"var(--ogrid-primary, #217346)",background:"var(--ogrid-bg, #fff)"};function Lo({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:Ni,role:"tablist","aria-label":"Sheet tabs",children:[n&&jsx("button",{type:"button",style:Hi,onClick:n,title:"Add sheet","aria-label":"Add sheet",children:"+"}),o.map(u=>{let s=u.id===e,d=s?zi:rl,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 il(o){let{controlledPage:e,controlledPageSize:t,defaultPageSize:n,onPageChange:l,onPageSizeChange:u}=o,[s,d]=useState(1),[i,r]=useState(n),p=e??s,g=t??i,a=useCallback(c=>{e===void 0&&d(c),l?.(c);},[e,l]),m=useCallback(c=>{t===void 0&&r(c),u?.(c),a(1);},[t,u,a]);return {page:p,pageSize:g,setPage:a,setPageSize:m}}function cl(o){let{controlledSort:e,defaultSortField:t,defaultSortDirection:n,onSortChange:l,setPage:u}=o,[s,d]=useState({field:t,direction:n}),[i,r]=useState(0),p=e??s,g=useCallback(m=>{e===void 0&&d(m),l?.(m),u(1),r(c=>c+1);},[e,l,u]),a=useCallback((m,c)=>{g(computeNextSortState(p,m,c));},[p,g]);return {sort:p,setSort:g,handleSort:a,defaultSortField:t,defaultSortDirection:n,sortVersion:i}}function dl(o,e){let t=useRef(o);return e(o,t.current)||(t.current=o),t.current}function ji(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 Xi={},qi={fetchFilterOptions:void 0};function pl(o){let{controlledFilters:e,onFiltersChange:t,setPage:n,columns:l,displayData:u,dataSource:s}=o,[d,i]=useState({}),r=e??d,p=useCallback(y=>{e===void 0&&i(y),t?.(y),n(1);},[e,t,n]),g=useCallback((y,w)=>{p(mergeFilter(r,y,w));},[r,p]),a=dl(r,(y,w)=>ji(y,w)),m=useMemo(()=>Object.values(r).some(y=>y!==void 0),[r]),c=useMemo(()=>getMultiSelectFilterFields(l),[l]),f=s??qi,{filterOptions:C,loadingOptions:h}=pn(f,c),R=s?.fetchFilterOptions!=null,S=useMemo(()=>R?C:deriveFilterOptionsFromData(u,l),[R,u,l,C]);return {filters:r,setFilters:p,handleFilterChange:g,stableFilters:a,hasActiveFilters:m,clientFilterOptions:S,loadingFilterOptions:s?.fetchFilterOptions?h:Xi}}function fl(o){let{isServerSide:e,dataSource:t,displayData:n,columns:l,stableFilters:u,sort:s,sortVersion:d,page:i,pageSize:r,onError:p,onFirstDataRendered:g,workerSort:a}=o,m=!e,c=a===true||a==="auto"&&n.length>5e3,f=useRef(null),C=useRef(-1),h=useRef(null),R=useRef(null),S=useRef(-1);(d!==C.current||u!==h.current||l!==R.current||n.length!==S.current)&&(C.current=d,h.current=u,R.current=l,S.current=n.length,f.current=null);let w=useMemo(()=>{if(!m||c)return null;let q;if(f.current===null){let j=processClientSideData(n,l,u,s.field,s.direction),te=new Map;for(let oe=0;oe<n.length;oe++)te.set(n[oe],oe);let ne=j.map(oe=>{let ie=te.get(oe);return ie!==void 0?ie:-1}).filter(oe=>oe!==-1);f.current=ne,q=j;}else q=f.current.map(j=>n[j]).filter(j=>j!==void 0);let Y=q.length,B=(i-1)*r;return {items:q.slice(B,B+r),totalCount:Y}},[m,c,n,l,u,d,i,r]),[O,T]=useState(null),I=useRef(0),v=useRef(null),x=useRef(-1),b=useRef(null),D=useRef(null),A=useRef(-1);useEffect(()=>{if(!m||!c){T(null);return}(d!==x.current||u!==b.current||l!==D.current||n.length!==A.current)&&(x.current=d,b.current=u,D.current=l,A.current=n.length,v.current=null);let Y=++I.current;if(v.current===null)processClientSideDataAsync(n,l,u,s.field,s.direction).then(B=>{if(Y!==I.current)return;let _=new Map;for(let ie=0;ie<n.length;ie++)_.set(n[ie],ie);let j=B.map(ie=>{let Fe=_.get(ie);return Fe!==void 0?Fe:-1}).filter(ie=>ie!==-1);v.current=j;let te=B.length,ne=(i-1)*r,oe=B.slice(ne,ne+r);T({items:oe,totalCount:te});});else {let B=v.current.map(ne=>n[ne]).filter(ne=>ne!==void 0),_=B.length,j=(i-1)*r,te=B.slice(j,j+r);T({items:te,totalCount:_});}},[m,c,n,l,u,d,i,r]);let[G,$]=useState([]),[V,X]=useState(0),[L,U]=useState(true),K=useRef(0),[W,J]=useState(0),F=k(t),z=k(p);useEffect(()=>{if(!e||!F.current){e||U(false);return}let q=F.current,Y=++K.current;U(true),q.fetchPage({page:i,pageSize:r,sort:{field:s.field,direction:s.direction},filters:u}).then(B=>{Y===K.current&&($(B.items),X(B.totalCount));}).catch(B=>{Y===K.current&&(z.current?.(B),$([]),X(0));}).finally(()=>{Y===K.current&&U(false);});},[e,i,r,s.field,s.direction,u,W,F,z]);let N=w??O,P=m&&N?N.items:G,H=m&&N?N.totalCount:V,E=k(g),Z=useRef(false);return useEffect(()=>{!Z.current&&P.length>0&&(Z.current=true,E.current?.());},[P.length,E]),{displayItems:P,displayTotalCount:H,serverLoading:L,refreshData:()=>J(q=>q+1)}}var Cl=["columns","filters"];function Rn(o){let{config:e}=o,t=e!=null&&e!==false,n=useMemo(()=>{if(!t||e===true)return {panels:Cl,position:"right",defaultPanel:null};let i=e;return {panels:i.panels??Cl,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 os=25,rs={},ls={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 Sn(o,e){let{columns:t,getRowId:n,data:l,dataSource:u,page:s,pageSize:d,sort:i,filters:r,visibleColumns:p,isLoading:g,onPageChange:a,onPageSizeChange:m,onSortChange:c,onFiltersChange:f,onVisibleColumnsChange:C,columnOrder:h,onColumnOrderChange:R,onColumnResized:S,onColumnPinned:y,defaultPageSize:w=os,defaultSortBy:O,defaultSortDirection:T="asc",toolbar:I,toolbarBelow:v,emptyState:x,entityLabelPlural:b="items",className:D,layoutMode:A="fill",suppressHorizontalScroll:G,editable:$,cellSelection:V,onCellValueChanged:X,onUndo:L,onRedo:U,canUndo:K,canRedo:W,rowSelection:J="none",selectedRows:F,onSelectionChange:z,showRowNumbers:N,cellReferences:P,statusBar:H,pageSizeOptions:E,sideBar:Z,stickyHeader:q,fullScreen:Y,onFirstDataRendered:B,onError:_,columnChooser:j,columnReorder:te,responsiveColumns:ne,virtualScroll:oe,rowHeight:ie,density:Fe="normal",workerSort:qe,formulas:be,initialFormulas:et,onFormulaRecalc:$e,formulaFunctions:ft,namedRanges:Ye,sheets:gt,sheetDefs:Ge,activeSheet:Ze,onSheetChange:Je,onSheetAdd:tt,"aria-label":Te,"aria-labelledby":Be}=o,nt=k(n),Oe=useCallback(M=>nt.current(M),[nt]),ot=k(R),Qe=R!=null,ge=useMemo(()=>Qe?M=>ot.current?.(M):void 0,[Qe,ot]),Xt=k(X),qt=X!=null,$t=useMemo(()=>qt?M=>Xt.current?.(M):void 0,[qt,Xt]),Yt=k(L),Zt=L!=null,Ct=useMemo(()=>Zt?()=>Yt.current?.():void 0,[Zt,Yt]),Et=k(U),Jt=U!=null,Ft=useMemo(()=>Jt?()=>Et.current?.():void 0,[Jt,Et]),Ve=j===false?"none":j==="sidebar"?"sidebar":"toolbar",re=useMemo(()=>flattenColumns(t),[t]),Ne=u!=null,rt=useRef(false);useEffect(()=>{validateColumns(re);},[re]);let Qt=O??re[0]?.columnId??"",[en,ro]=useState([]),[lo,tn]=useState(false),ht=l??en,ao=g??lo,me=il({controlledPage:s,controlledPageSize:d,defaultPageSize:w,onPageChange:a,onPageSizeChange:m}),se=cl({controlledSort:i,defaultSortField:Qt,defaultSortDirection:T,onSortChange:c,setPage:me.setPage}),Q=pl({controlledFilters:r,onFiltersChange:f,setPage:me.setPage,columns:re,displayData:ht,dataSource:u}),Ce=fl({isServerSide:Ne,dataSource:u,displayData:ht,columns:re,stableFilters:Q.stableFilters,sort:se.sort,sortVersion:se.sortVersion,page:me.page,pageSize:me.pageSize,onError:_,onFirstDataRendered:B,workerSort:qe});useEffect(()=>{let M=Ce.displayItems;!rt.current&&M.length>0&&(rt.current=true,validateRowIds(M,Oe));},[Ce.displayItems,Oe]);let[Ot,Rt]=useState(()=>{let M=re.filter(ee=>ee.defaultVisible!==false).map(ee=>ee.columnId);return new Set(M.length>0?M:re.map(ee=>ee.columnId))}),nn=useRef(re.length);useEffect(()=>{let M=nn.current;if(nn.current=re.length,p===void 0&&M===0&&re.length>0&&Ot.size===0){let ee=re.filter(ue=>ue.defaultVisible!==false).map(ue=>ue.columnId);Rt(new Set(ee.length>0?ee:re.map(ue=>ue.columnId)));}},[re,p,Ot.size]);let De=p??Ot,Me=useCallback(M=>{p===void 0&&Rt(M),C?.(M);},[p,C]),lt=useCallback((M,ee)=>{let ue=new Set(De);ee?ue.add(M):ue.delete(M),Me(ue);},[De,Me]),[on,He]=useState(new Set),at=F??on,rn=useCallback(M=>{F===void 0&&He(new Set(M.selectedRowIds)),z?.(M);},[F,z]),[Mt,ln]=useState({}),[Ut,an]=useState(()=>{let M={};for(let ee of flattenColumns(t))ee.pinned&&(M[ee.columnId]=ee.pinned);return M}),sn=useCallback((M,ee)=>{ln(ue=>({...ue,[M]:ee})),S?.(M,ee);},[S]),un=useCallback((M,ee)=>{an(ue=>{if(ee===null){let{[M]:uo,...Ya}=ue;return Ya}return {...ue,[M]:ee}}),y?.(M,ee);},[y]),cn=k(De),St=k(se.sort),it=k(h),Lt=k(Mt),bt=k(Ut),vt=k(Q.filters),dn=k(at),Se=k(Ce.displayItems),ze=k(Oe),st=k(re);useImperativeHandle(e,()=>({setRowData:M=>{Ne||ro(M);},setLoading:tn,getColumnState:()=>({visibleColumns:Array.from(cn.current),sort:St.current,columnOrder:it.current??void 0,columnWidths:Object.keys(Lt.current).length>0?Lt.current:void 0,filters:Object.keys(vt.current).length>0?vt.current:void 0,pinnedColumns:Object.keys(bt.current).length>0?bt.current:void 0}),applyColumnState:M=>{M.visibleColumns&&Me(new Set(M.visibleColumns)),M.sort&&se.setSort(M.sort),M.columnOrder&&ge&&ge(M.columnOrder),M.columnWidths&&ln(M.columnWidths),M.filters&&Q.setFilters(M.filters),M.pinnedColumns&&an(M.pinnedColumns);},setFilterModel:Q.setFilters,getSelectedRows:()=>Array.from(dn.current),setSelectedRows:M=>{F===void 0&&He(new Set(M));},selectAll:()=>{let M=Se.current,ee=new Set(M.map(ue=>ze.current(ue)));F===void 0&&He(ee),z?.({selectedRowIds:Array.from(ee),selectedItems:M});},deselectAll:()=>{F===void 0&&He(new Set),z?.({selectedRowIds:[],selectedItems:[]});},clearFilters:()=>Q.setFilters({}),clearSort:()=>se.setSort({field:se.defaultSortField,direction:se.defaultSortDirection}),resetGridState:M=>{Q.setFilters({}),se.setSort({field:se.defaultSortField,direction:se.defaultSortDirection}),M?.keepSelection||(F===void 0&&He(new Set),z?.({selectedRowIds:[],selectedItems:[]}));},getDisplayedRows:()=>Se.current,refreshData:()=>{Ne&&Ce.refreshData();},getColumnOrder:()=>it.current??st.current.map(M=>M.columnId),setColumnOrder:M=>{ge?.(M);},scrollToRow:()=>{}}),[Ne,Me,se,Q,ge,F,z,Ce,it,Lt,st,Se,dn,vt,ze,bt,St,cn]);let Cr=useMemo(()=>{if(!H)return;if(typeof H=="object")return H;let M=Ne?Ce.displayTotalCount:l?.length??0,ee=Ce.displayTotalCount;return {totalCount:M,filteredCount:Q.hasActiveFilters?ee:void 0,selectedCount:at.size,suppressRowCount:true}},[H,Ne,l,Ce.displayTotalCount,Q.hasActiveFilters,at.size]),Ue=Rn({config:Z}),mn=useMemo(()=>re.map(M=>({columnId:M.columnId,name:M.name,required:M.required===true})),[re]),hr=useMemo(()=>re.filter(M=>M.filterable&&M.filterable.type).map(M=>({columnId:M.columnId,name:M.name,filterField:M.filterable?.filterField??M.columnId,filterType:M.filterable?.type})),[re]),Rr=useMemo(()=>Ue.isEnabled?{activePanel:Ue.activePanel,onPanelChange:Ue.setActivePanel,panels:Ue.panels,position:Ue.position,columns:mn,visibleColumns:De,onVisibilityChange:lt,onSetVisibleColumns:Me,filterableColumns:hr,filters:Q.filters,onFilterChange:Q.handleFilterChange,filterOptions:Q.clientFilterOptions}:null,[Ue.isEnabled,Ue.activePanel,Ue.setActivePanel,Ue.panels,Ue.position,mn,De,lt,Me,hr,Q.filters,Q.handleFilterChange,Q.clientFilterOptions]),[Sr,Ha]=useState(0),za=useCallback(M=>{Ha(ee=>ee+1),$e?.(M);},[$e]),le=gn({formulas:be,items:Ce.displayItems,flatColumns:re,initialFormulas:et,onFormulaRecalc:za,formulaFunctions:ft,namedRanges:Ye,sheets:gt}),br=useCallback(()=>Q.setFilters({}),[Q]),vr=Ne&&Ce.serverLoading||ao,yr=N||P||be,xr=!!(P||be),yt=!!P&&!be,Ir=!!(P||be),[io,_a]=useState(null),[Pr,so]=useState(null),wr=useCallback(M=>{if(_a(M),M){let ee=M.match(/^([A-Z]+)(\d+)$/);so(ee?{col:columnLetterToIndex(ee[1]),row:parseInt(ee[2],10)-1}:null);}else so(null);},[]),Wa=useCallback((M,ee)=>{let ue=Se.current,uo=st.current;if(!(ee<0||ee>=ue.length||M<0||M>=uo.length))return getCellValue(ue[ee],uo[M])},[Se,st]),ae=Cn({activeCol:Pr?.col??null,activeRow:Pr?.row??null,activeCellRef:io,getFormula:le.enabled?le.getFormula:void 0,getRawValue:Wa,setFormula:le.enabled?le.setFormula:void 0}),Ka=useMemo(()=>({items:Ce.displayItems,columns:t,getRowId:Oe,sortBy:se.sort.field,sortDirection:se.sort.direction,onColumnSort:se.handleSort,visibleColumns:De,columnOrder:h,onColumnOrderChange:ge,onColumnResized:sn,onColumnPinned:un,pinnedColumns:Ut,initialColumnWidths:Mt,editable:$,cellSelection:V,onCellValueChanged:$t,onUndo:Ct,onRedo:Ft,canUndo:K,canRedo:W,rowSelection:J,selectedRows:at,onSelectionChange:rn,showRowNumbers:yr,showColumnLetters:xr,showNameBox:yt,onActiveCellChange:Ir?wr:void 0,currentPage:me.page,pageSize:me.pageSize,statusBar:Cr,isLoading:vr,filters:Q.filters,onFilterChange:Q.handleFilterChange,filterOptions:Q.clientFilterOptions,loadingFilterOptions:u?.fetchFilterOptions?Q.loadingFilterOptions:rs,peopleSearch:u?.searchPeople,getUserByEmail:u?.getUserByEmail,layoutMode:A,suppressHorizontalScroll:G,stickyHeader:q??true,columnReorder:te,responsiveColumns:ne,virtualScroll:oe,rowHeight:ie,density:Fe,"aria-label":Te,"aria-labelledby":Be,emptyState:{hasActiveFilters:Q.hasActiveFilters,onClearAll:br,message:x?.message,render:x?.render},formulas:be,getFormulaValue:le.enabled?le.getFormulaValue:void 0,hasFormula:le.enabled?le.hasFormula:void 0,getFormula:le.enabled?le.getFormula:void 0,setFormula:le.enabled?le.setFormula:void 0,onFormulaCellChanged:le.enabled?le.onCellChanged:void 0,getPrecedents:le.enabled?le.getPrecedents:void 0,getDependents:le.enabled?le.getDependents:void 0,getAuditTrail:le.enabled?le.getAuditTrail:void 0,formulaVersion:Sr,formulaReferences:ae.referencedCells.length>0?ae.referencedCells:void 0,onFormulaInsertReference:ae.insertReference}),[Ce.displayItems,t,Oe,se.sort.field,se.sort.direction,se.handleSort,De,h,ge,sn,un,Ut,Mt,$,V,$t,Ct,Ft,K,W,J,at,rn,yr,xr,yt,Ir,wr,me.page,me.pageSize,Cr,vr,Q.filters,Q.handleFilterChange,Q.clientFilterOptions,u,Q.loadingFilterOptions,A,G,q,te,ne,oe,ie,Fe,Te,Be,Q.hasActiveFilters,br,x,be,le,Sr,ae.referencedCells,ae.insertReference]),ja=useMemo(()=>({page:me.page,pageSize:me.pageSize,displayTotalCount:Ce.displayTotalCount,setPage:me.setPage,setPageSize:me.setPageSize,pageSizeOptions:E,entityLabelPlural:b}),[me.page,me.pageSize,Ce.displayTotalCount,me.setPage,me.setPageSize,E,b]),Xa=useMemo(()=>({columns:mn,visibleColumns:De,onVisibilityChange:lt,onSetVisibleColumns:Me,placement:Ve}),[mn,De,lt,Me,Ve]),Tr=useMemo(()=>yt?we.createElement("div",{style:ls,"aria-label":"Active cell reference"},io??"\u2014"):null,[yt,io]),Dr=useMemo(()=>yt?we.createElement(we.Fragment,null,Tr,I):I,[yt,Tr,I]),Er=useMemo(()=>{if(be)return we.createElement(Uo,{cellRef:ae.cellRef,formulaText:ae.formulaText,isEditing:ae.isEditing,onInputChange:ae.onInputChange,onCommit:ae.onCommit,onCancel:ae.onCancel,startEditing:ae.startEditing,inputRef:ae.inputRef})},[be,ae.cellRef,ae.formulaText,ae.isEditing,ae.onInputChange,ae.onCommit,ae.onCancel,ae.startEditing,ae.inputRef]),Fr=useMemo(()=>{if(!(!Ge||Ge.length===0||!Ze||!Je))return we.createElement(Lo,{sheets:Ge,activeSheet:Ze,onSheetChange:Je,onSheetAdd:tt})},[Ge,Ze,Je,tt]),qa=useMemo(()=>({toolbar:Dr,toolbarBelow:v,className:D,emptyState:x,sideBarProps:Rr,fullScreen:Y,formulaBar:Er,sheetTabs:Fr}),[Dr,v,D,x,Rr,Y,Er,Fr]),$a=useMemo(()=>({hasActiveFilters:Q.hasActiveFilters,setFilters:Q.setFilters}),[Q.hasActiveFilters,Q.setFilters]);return {dataGridProps:Ka,pagination:ja,columnChooser:Xa,layout:qa,filters:$a}}function bn(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}"]`,p=o.current.querySelector(r);p&&document.activeElement!==p&&typeof p.focus=="function"&&p.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,p=`[data-row-index="${i}"][data-col-index="${r}"]`,g=d.querySelector(p);if(g){let a=d.querySelector("thead"),m=a?a.getBoundingClientRect().height:0,c=d.getBoundingClientRect(),f=g.getBoundingClientRect(),C=c.top+m;f.top<C?d.scrollTop-=C-f.top:f.bottom>c.bottom&&(d.scrollTop+=f.bottom-c.bottom),d.scrollWidth>d.clientWidth&&(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 vn(){let[o,e]=useState(null),[t,n]=useState(void 0);return {editingCell:o,setEditingCell:e,pendingEditorValue:t,setPendingEditorValue:n}}var ds=500;function yn(){let[o,e]=useState(null),t=useRef(null),n=useRef(null),l=useCallback(r=>{r.preventDefault?.(),e({x:r.clientX,y:r.clientY});},[]),u=useCallback(()=>{e(null);},[]),s=useCallback(()=>{t.current&&(clearTimeout(t.current),t.current=null),n.current=null;},[]),d=useCallback(r=>{if(r.pointerType!=="touch")return;s();let p={x:r.clientX,y:r.clientY};n.current=p,t.current=setTimeout(()=>{let g=n.current;g&&e(g),t.current=null,n.current=null;},ds);},[s]),i=useCallback(()=>{s();},[s]);return useEffect(()=>()=>{t.current&&clearTimeout(t.current);},[]),{contextMenuPosition:o,setContextMenuPosition:e,handleCellContextMenu:l,closeContextMenu:u,handleLongPressStart:d,handleLongPressEnd:i}}var Vo="data-drag-range",Nt="data-drag-anchor",he=40,ps=16;function xn(o){let{colOffset:e,rowCount:t,visibleColCount:n,setActiveCell:l,wrapperRef:u}=o,s=k(e),[d,i]=useState(null),r=useRef(false),[p,g]=useState(false),a=useRef(false),m=useRef(null),c=useRef(0),f=useRef(null),C=useRef(null),h=useRef(d);h.current=d;let R=useCallback(T=>{rangesEqual(h.current,T)||i(T);},[]),S=useCallback((T,I,v)=>{if(T.button!==0)return;let x=s.current;if(v<x)return;T.preventDefault();let b=v-x,D=h.current;if(T.shiftKey&&D!=null)R(normalizeSelectionRange({startRow:D.startRow,startCol:D.startCol,endRow:I,endCol:b})),l({rowIndex:I,columnIndex:v});else {m.current={row:I,col:b},a.current=false;let A={startRow:I,startCol:b,endRow:I,endCol:b};R(A),f.current=A,l({rowIndex:I,columnIndex:v}),r.current=true,O.current?.(A);}},[l,s,R]),y=useCallback(()=>{t===0||n===0||(R({startRow:0,startCol:0,endRow:t-1,endCol:n-1}),l({rowIndex:0,columnIndex:s.current}));},[t,n,l,s,R]),w=useRef(null),O=useRef(null);return useEffect(()=>{let T=new Set,I=null,v=null,x=null,b=(F,z,N,P,H,E,Z,q)=>{F.hasAttribute(Vo)||F.setAttribute(Vo,""),q&&z===q.row&&N===q.col?F.hasAttribute(Nt)||F.setAttribute(Nt,""):F.hasAttribute(Nt)&&F.removeAttribute(Nt),T.add(F);},D=F=>{F.removeAttribute(Vo),F.removeAttribute(Nt);},A=(F,z,N,P,H)=>{let E=I?.get(`${F},${N+H}`),Z=I?.get(`${z},${P+H}`);if(!E||!Z)return;let q=E.closest("td"),Y=Z.closest("td");if(!q||!Y||!x&&(x=E.closest("table")?.parentElement,!x))return;v||(v=document.createElement("div"),v.style.position="absolute",v.style.border="2px solid var(--ogrid-selection, #217346)",v.style.pointerEvents="none",v.style.zIndex="4",v.style.boxSizing="border-box",x.appendChild(v));let B=x.getBoundingClientRect(),_=q.getBoundingClientRect(),j=Y.getBoundingClientRect();v.style.top=`${Math.round(_.top-B.top)}px`,v.style.left=`${Math.round(_.left-B.left)}px`,v.style.width=`${Math.round(j.right-_.left)}px`,v.style.height=`${Math.round(j.bottom-_.top)}px`,v.style.display="block";},G=()=>{v&&(v.style.display="none");},$=()=>{v?.remove(),v=null,x=null;},V=F=>{if(!u.current||!r.current)return;let N=Math.min(F.startRow,F.endRow),P=Math.max(F.startRow,F.endRow),H=Math.min(F.startCol,F.endCol),E=Math.max(F.startCol,F.endCol),Z=m.current,q=s.current;for(let B of T){let _=parseInt(B.getAttribute("data-row-index")??"",10),j=parseInt(B.getAttribute("data-col-index")??"",10)-q;_>=N&&_<=P&&j>=H&&j<=E||(D(B),T.delete(B));}I||(I=buildCellIndex(u.current));let Y=false;for(let B=N;B<=P;B++)for(let _=H;_<=E;_++){let j=`${B},${_+q}`,te=I?.get(j);te&&!te.isConnected&&!Y&&(Y=true,I=buildCellIndex(u.current),te=I?.get(j)),te&&te.isConnected&&b(te,B,_,N,P,H,E,Z);}A(N,P,H,E,q);};O.current=V;let X=()=>{for(let F of T)D(F);T.clear(),I=null,G();},L=(F,z)=>{if(!m.current)return null;let P=document.elementFromPoint(F,z)?.closest?.("[data-row-index][data-col-index]");if(!P)return null;let H=parseInt(P.getAttribute("data-row-index")??"",10),E=parseInt(P.getAttribute("data-col-index")??"",10),Z=s.current;if(Number.isNaN(H)||Number.isNaN(E)||E<Z)return null;let q=E-Z,Y=m.current;return normalizeSelectionRange({startRow:Y.row,startCol:Y.col,endRow:H,endCol:q})},U=()=>{let F=u.current,z=w.current;if(!F||!z||!r.current){K();return}let N=F.getBoundingClientRect(),P=0,H=0;if(z.cy<N.top+he?H=-computeAutoScrollSpeed(N.top+he-z.cy):z.cy>N.bottom-he&&(H=computeAutoScrollSpeed(z.cy-(N.bottom-he))),z.cx<N.left+he?P=-computeAutoScrollSpeed(N.left+he-z.cx):z.cx>N.right-he&&(P=computeAutoScrollSpeed(z.cx-(N.right-he))),P===0&&H===0){K();return}C.current||(C.current=setInterval(()=>{let E=u.current,Z=w.current;if(!E||!Z||!r.current){K();return}let q=E.getBoundingClientRect(),Y=0,B=0;if(Z.cy<q.top+he?B=-computeAutoScrollSpeed(q.top+he-Z.cy):Z.cy>q.bottom-he&&(B=computeAutoScrollSpeed(Z.cy-(q.bottom-he))),Z.cx<q.left+he?Y=-computeAutoScrollSpeed(q.left+he-Z.cx):Z.cx>q.right-he&&(Y=computeAutoScrollSpeed(Z.cx-(q.right-he))),Y===0&&B===0){K();return}E.scrollTop+=B,E.scrollLeft+=Y;let _=L(Z.cx,Z.cy);_&&(f.current=_,V(_));},ps));},K=()=>{C.current&&(clearInterval(C.current),C.current=null);},W=F=>{!r.current||!m.current||(a.current||(a.current=true,g(true),I=buildCellIndex(u.current)),w.current={cx:F.clientX,cy:F.clientY},U(),c.current&&cancelAnimationFrame(c.current),c.current=requestAnimationFrame(()=>{c.current=0;let z=w.current;if(!z)return;let N=L(z.cx,z.cy);if(!N)return;let P=f.current;P&&P.startRow===N.startRow&&P.startCol===N.startCol&&P.endRow===N.endRow&&P.endCol===N.endCol||(f.current=N,V(N));}));},J=()=>{if(!r.current)return;K(),c.current&&(cancelAnimationFrame(c.current),c.current=0),r.current=false;let F=a.current;if(F){let z=w.current;if(z){let P=L(z.cx,z.cy);P&&(f.current=P);}let N=f.current;if(N){R(N);let P=m.current;P&&l({rowIndex:P.row,columnIndex:P.col+s.current});}}f.current=null,w.current=null,m.current=null,F&&g(false),requestAnimationFrame(()=>{X();});};return window.addEventListener("pointermove",W,true),window.addEventListener("pointerup",J,true),()=>{window.removeEventListener("pointermove",W,true),window.removeEventListener("pointerup",J,true),c.current&&cancelAnimationFrame(c.current),K(),$();}},[l,s,R,u]),{selectionRange:d,setSelectionRange:R,handleCellMouseDown:S,handleSelectAllCells:y,isDragging:p}}function In(o){let{colOffset:e,beginBatch:t,endBatch:n}=o,l=k(o.items),u=k(o.visibleCols),s=k(o.selectionRange),d=k(o.activeCell),i=k(o.editable),r=k(o.onCellValueChanged),p=k(o.formulas),g=k(o.flatColumns),a=k(o.getFormula),m=k(o.hasFormula),c=k(o.setFormula),f=useRef(null),[C,h]=useState(null),[R,S]=useState(null),y=useRef(null),w=useRef(true);useEffect(()=>()=>{w.current=false;},[]);let O=useCallback(()=>{let b=s.current,D=d.current;return b??(D!=null?{startRow:D.rowIndex,startCol:D.columnIndex-e,endRow:D.rowIndex,endCol:D.columnIndex-e}:null)},[e,s,d]),T=useCallback(()=>{let b=O();if(b==null)return;let D=normalizeSelectionRange(b),A=p.current&&g.current?{colOffset:e,flatColumns:g.current,getFormula:a.current,hasFormula:m.current}:void 0,G=formatSelectionAsTsv(l.current,u.current,D,A);y.current=G,S(D),navigator.clipboard.writeText(G).catch(()=>{});},[O,l,u,p,g,a,m,e]),I=useCallback(()=>{if(i.current===false)return;let b=O();if(b==null||r.current==null)return;let D=normalizeSelectionRange(b);f.current=D,h(D),S(null),T(),S(null);},[O,T,i,r]),v=useCallback(async()=>{if(i.current===false)return;let b=r.current;if(b==null)return;let D;try{D=await navigator.clipboard.readText();}catch{D="";}if(!w.current||(!D.trim()&&y.current!=null&&(D=y.current),!D.trim()))return;let A=O(),G=A?A.startRow:0,$=A?A.startCol:0,V=l.current,X=u.current,L=parseTsvClipboard(D),U=p.current&&g.current?{colOffset:e,flatColumns:g.current,setFormula:c.current}:void 0;t?.();let K=applyPastedValues(L,G,$,V,X,U);for(let W of K)b(W);if(f.current){let W=applyCutClear(f.current,V,X);for(let J of W)b(J);f.current=null,h(null);}n?.(),S(null);},[O,l,u,i,r,t,n,p,g,c,e]),x=useCallback(()=>{S(null),h(null),f.current=null;},[]);return {handleCopy:T,handleCut:I,handlePaste:v,cutRange:C,copyRange:R,clearClipboardRanges:x}}function Pn(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]),p=useCallback(h=>{l===void 0&&d(h),u?.({selectedRowIds:Array.from(h),selectedItems:e.filter(R=>h.has(t(R)))});},[l,u,e,t]),g=k(r),a=k(e),m=useCallback((h,R,S,y)=>{if(n==="single"){p(R?new Set([h]):new Set),i.current=S;return}let w=a.current,O;y&&i.current>=0&&i.current!==S?O=applyRangeRowSelection(i.current,S,R,w,t,g.current):(O=new Set(g.current),R?O.add(h):O.delete(h)),i.current=S,p(O);},[n,t,p,a,g]),c=useCallback(h=>{p(h?new Set(e.map(R=>t(R))):new Set);},[e,t,p]),{allSelected:f,someSelected:C}=useMemo(()=>computeRowSelectionState(r,e,t),[e,r,t]);return {selectedRowIds:r,updateSelection:p,handleRowCheckboxChange:m,handleSelectAll:c,allSelected:f,someSelected:C}}function wn(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:p,hasCheckboxCol:g,visibleColumnCount:a,getRowId:m}=l,{activeCell:c,selectionRange:f,editingCell:C,selectedRowIds:h}=u,{setActiveCell:R,setSelectionRange:S,setEditingCell:y,handleRowCheckboxChange:w,handleCopy:O,handleCut:T,handlePaste:I,setContextMenu:v,onUndo:x,onRedo:b,clearClipboardRanges:D}=s,{editable:A,onCellValueChanged:G,rowSelection:$,wrapperRef:V,onKeyDown:X,fillDown:L}=d;if(X&&(X(n),n.defaultPrevented))return;let U=i.length-1,K=a-1+p;if(i.length===0)return;if(c===null){["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Enter","Home","End","PageDown","PageUp"].includes(n.key)&&(R({rowIndex:0,columnIndex:p}),n.preventDefault());return}let{rowIndex:W,columnIndex:J}=c,F=J-p,z=n.shiftKey,N=(P,H)=>{if(P<0||P>=i.length||H<0||H>=r.length)return true;let E=getCellValue(i[P],r[H]);return E==null||E===""};switch(n.key){case "c":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),O();}break;case "x":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),T();}break;case "v":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),I();}break;case "ArrowDown":case "ArrowUp":case "ArrowRight":case "ArrowLeft":{if(C!=null)break;n.preventDefault();let{newRowIndex:P,newColumnIndex:H,newRange:E}=computeArrowNavigation({direction:n.key,rowIndex:W,columnIndex:J,dataColIndex:F,colOffset:p,maxRowIndex:U,maxColIndex:K,visibleColCount:r.length,isCtrl:n.ctrlKey||n.metaKey,isShift:z,selectionRange:f,isEmptyAt:N});S(E),R({rowIndex:P,columnIndex:H});break}case "Tab":{n.preventDefault();let{rowIndex:P,columnIndex:H}=computeTabNavigation(W,J,U,K,p,n.shiftKey),E=H-p;S({startRow:P,startCol:E,endRow:P,endCol:E}),R({rowIndex:P,columnIndex:H});break}case "Home":{n.preventDefault();let P=n.ctrlKey?0:W;S({startRow:P,startCol:0,endRow:P,endCol:0}),R({rowIndex:P,columnIndex:p});break}case "End":{n.preventDefault();let P=n.ctrlKey?U:W;S({startRow:P,startCol:a-1,endRow:P,endCol:a-1}),R({rowIndex:P,columnIndex:K});break}case "PageDown":case "PageUp":{n.preventDefault();let P=V.current,H=10,E=36;if(P){let Y=P.querySelector("tbody tr");Y&&Y.offsetHeight>0&&(E=Y.offsetHeight,H=Math.max(1,Math.floor(P.clientHeight/E)));}let Z=n.key==="PageDown"?1:-1,q=Math.max(0,Math.min(W+Z*H,U));S(z?{startRow:f?.startRow??W,startCol:f?.startCol??F,endRow:q,endCol:f?.endCol??F}:{startRow:q,startCol:F,endRow:q,endCol:F}),R({rowIndex:q,columnIndex:J}),P&&(P.scrollTop=getScrollTopForRow(q,E,P.clientHeight,"center"));break}case "Enter":case "F2":{if(n.preventDefault(),F>=0&&F<r.length){let P=r[F],H=i[W];if(H&&P){let E=P.editable===true||typeof P.editable=="function"&&P.editable(H);A!==false&&E&&G!=null&&y({rowId:m(H),columnId:P.columnId});}}break}case "Escape":n.preventDefault(),C!=null?y(null):(D?.(),R(null),S(null));break;case " ":if($!=="none"&&J===0&&g){n.preventDefault();let P=i[W];if(P){let H=m(P),E=h.has(H);w(H,!E,W,n.shiftKey);}}break;case "z":(n.ctrlKey||n.metaKey)&&C==null&&(n.shiftKey&&b?(n.preventDefault(),b()):!n.shiftKey&&x&&(n.preventDefault(),x()));break;case "y":(n.ctrlKey||n.metaKey)&&C==null&&b&&(n.preventDefault(),b());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}),R({rowIndex:0,columnIndex:p}));}break;case "d":if(n.ctrlKey||n.metaKey){if(C!=null)break;A!==false&&L&&(n.preventDefault(),L());}break;case "Delete":case "Backspace":{if(C!=null||A===false||G==null)break;let P=f??(c!=null?{startRow:c.rowIndex,startCol:c.columnIndex-p,endRow:c.rowIndex,endCol:c.columnIndex-p}:null);if(P==null)break;n.preventDefault();let H=applyCellDeletion(P,i,r);for(let E of H)G(E);break}case "F10":if(n.shiftKey)if(n.preventDefault(),c!=null&&V.current){let P=`[data-row-index="${c.rowIndex}"][data-col-index="${c.columnIndex}"]`,H=V.current.querySelector(P);if(H){let E=H.getBoundingClientRect();v({x:E.left+E.width/2,y:E.top+E.height/2});}else v({x:100,y:100});}else v({x:100,y:100});break;}},[])}}function Tn(o){let{onCellValueChanged:e,maxUndoDepth:t=100}=o,n=k(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},[]),p=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]),g=useCallback(()=>{r().beginBatch();},[r]),a=useCallback(()=>{let f=r();f.endBatch(),s(f.historyLength),i(f.redoLength);},[r]),m=useCallback(()=>{if(!n.current)return;let f=r(),C=f.undo();if(C){s(f.historyLength),i(f.redoLength);for(let h=C.length-1;h>=0;h--){let R=C[h];n.current({...R,oldValue:R.newValue,newValue:R.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 h of C)n.current(h);}},[r,n]);return {onCellValueChanged:e?p:void 0,undo:m,redo:c,canUndo:u>0,canRedo:d>0,beginBatch:g,endBatch:a,maxUndoDepth:t}}function Dn(o,e){let[t,n]=useState(o);return useEffect(()=>{let l=setTimeout(()=>{n(o);},e);return ()=>clearTimeout(l)},[o,e]),t}var Fn="data-drag-range";function On(o){let{items:e,visibleCols:t,editable:n,onCellValueChanged:l,selectionRange:u,setSelectionRange:s,setActiveCell:d,colOffset:i,wrapperRef:r,beginBatch:p,endBatch:g,formulaOptions:a}=o,m=k(l),[c,f]=useState(null),C=useRef({endRow:0,endCol:0}),h=useRef(0),R=useRef(null),S=k(i),y=k(e),w=k(t),O=k(a);useEffect(()=>{if(!c||n===false||!m.current||!r.current)return;C.current={endRow:c.startRow,endCol:c.startCol},R.current=null;let x=new Set,b=buildCellIndex(r.current),D=L=>{if(!r.current)return;let K=Math.min(L.startRow,L.endRow),W=Math.max(L.startRow,L.endRow),J=Math.min(L.startCol,L.endCol),F=Math.max(L.startCol,L.endCol),z=S.current;for(let N of x){let P=parseInt(N.getAttribute("data-row-index")??"",10),H=parseInt(N.getAttribute("data-col-index")??"",10)-z;P>=K&&P<=W&&H>=J&&H<=F||(N.removeAttribute(Fn),x.delete(N));}for(let N=K;N<=W;N++)for(let P=J;P<=F;P++){let H=`${N},${P+z}`,E=b?.get(H);E&&!E.isConnected&&(b=buildCellIndex(r.current),E=b.get(H)),E&&(E.hasAttribute(Fn)||E.setAttribute(Fn,""),x.add(E));}},A=()=>{for(let L of x)L.removeAttribute(Fn);x.clear();},G=null,$=(L,U)=>{let W=document.elementFromPoint(L,U)?.closest?.("[data-row-index][data-col-index]");if(!W||!r.current?.contains(W))return null;let J=parseInt(W.getAttribute("data-row-index")??"",10),F=parseInt(W.getAttribute("data-col-index")??"",10);if(Number.isNaN(J)||Number.isNaN(F)||F<S.current)return null;let z=F-S.current;return normalizeSelectionRange({startRow:c.startRow,startCol:c.startCol,endRow:J,endCol:z})},V=L=>{G={cx:L.clientX,cy:L.clientY},h.current&&cancelAnimationFrame(h.current),h.current=requestAnimationFrame(()=>{if(h.current=0,!G)return;let U=$(G.cx,G.cy);if(!U)return;let K=R.current;K&&K.startRow===U.startRow&&K.startCol===U.startCol&&K.endRow===U.endRow&&K.endCol===U.endCol||(R.current=U,C.current={endRow:U.endRow,endCol:U.endCol},D(U));});},X=()=>{if(h.current&&(cancelAnimationFrame(h.current),h.current=0),G){let W=$(G.cx,G.cy);W&&(R.current=W,C.current={endRow:W.endRow,endCol:W.endCol});}A();let L=C.current,U=normalizeSelectionRange({startRow:c.startRow,startCol:c.startCol,endRow:L.endRow,endCol:L.endCol});s(U),d({rowIndex:c.startRow,columnIndex:c.startCol+S.current});let K=applyFillValues(U,c.startRow,c.startCol,e,t,O.current);if(K.length>0){p?.();for(let W of K)m.current?.(W);g?.();}f(null),R.current=null;};return window.addEventListener("pointermove",V,true),window.addEventListener("pointerup",X,true),()=>{window.removeEventListener("pointermove",V,true),window.removeEventListener("pointerup",X,true),h.current&&cancelAnimationFrame(h.current);}},[c,n,e,t,s,d,p,g,S,r,m,O]);let T=useRef(u);T.current=u;let I=useCallback(x=>{x.preventDefault(),x.stopPropagation();let b=T.current;b&&f({startRow:b.startRow,startCol:b.startCol});},[]),v=useCallback(()=>{let x=T.current;if(!x||n===false||!m.current)return;let b=normalizeSelectionRange(x),D=applyFillValues(b,b.startRow,b.startCol,y.current,w.current,O.current);if(D.length>0){p?.();for(let A of D)m.current(A);g?.();}},[n,p,g,m,y,w,O]);return {fillDrag:c,setFillDrag:f,handleFillHandleMouseDown:I,fillDown:v}}function Mn(o){let{wrapperRef:e,visibleCols:t,flatColumns:n,hasCheckboxCol:l,initialColumnWidths:u,onColumnResized:s}=o,[d,i]=useState(0);useEffect(()=>{let m=e.current;if(!m)return;let c=()=>{let C=m.getBoundingClientRect(),h=window.getComputedStyle(m),R=(parseFloat(h.borderLeftWidth||"0")||0)+(parseFloat(h.borderRightWidth||"0")||0),S=Math.round(Math.max(0,C.width-R));i(y=>y===S?y:S);},f=new ResizeObserver(c);return f.observe(m),c(),()=>f.disconnect()},[e]);let[r,p]=useState(()=>{if(!u)return {};let m={};for(let[c,f]of Object.entries(u))m[c]={widthPx:f};return m}),g=useMemo(()=>{let m=l?CHECKBOX_COLUMN_WIDTH:0;return t.reduce((c,f)=>c+(f.minWidth??estimateHeaderMinWidth(f.name))+CELL_PADDING,m)},[t,l]);useEffect(()=>{let m=new Set(n.map(c=>c.columnId));p(c=>{let f=Object.fromEntries(Object.entries(c).filter(([C])=>m.has(C)));return Object.keys(f).length!==Object.keys(c).length?f:c});},[n]);let a=useMemo(()=>{let m=l?CHECKBOX_COLUMN_WIDTH:0;return t.reduce((c,f)=>{let C=r[f.columnId],h=f.minWidth??estimateHeaderMinWidth(f.name),R=C?C.widthPx:f.idealWidth??f.defaultWidth??h;return c+Math.max(h,R)+CELL_PADDING},m)},[t,r,l]);return {containerWidth:d,minTableWidth:g,desiredTableWidth:a,columnSizingOverrides:r,setColumnSizingOverrides:p,onColumnResized:s}}function Ul(o){let{columns:e,pinnedColumns:t,onColumnPinned:n}=o,[l,u]=useState(()=>{let a={};for(let m of e)m.pinned&&(a[m.columnId]=m.pinned);return a}),s=t??l,d=useCallback((a,m)=>{let c={...s,[a]:m};t||u(c),n?.(a,m);},[s,t,n]),i=useCallback(a=>{let{[a]:m,...c}=s;t||u(c),n?.(a,null);},[s,t,n]),r=useCallback(a=>s[a],[s]),p=useCallback((a,m,c,f,C)=>{let h={},R=f?C:0;for(let S of a)s[S.columnId]==="left"&&(h[S.columnId]=R,R+=m[S.columnId]??c);return h},[s]),g=useCallback((a,m,c)=>{let f={},C=0;for(let h=a.length-1;h>=0;h--){let R=a[h];s[R.columnId]==="right"&&(f[R.columnId]=C,C+=m[R.columnId]??c);}return f},[s]);return {pinnedColumns:s,pinColumn:d,unpinColumn:i,isPinned:r,computeLeftOffsets:p,computeRightOffsets:g}}function _o(o){let{pinnedColumns:e,onPinColumn:t,onUnpinColumn:n,sortBy:l,sortDirection:u,onColumnSort:s,onColumnResized:d,onAutosizeColumn:i,columns:r}=o,[p,g]=useState(false),[a,m]=useState(null),[c,f]=useState(null),C=useCallback((L,U)=>{m(L),f(U),g(true);},[]),h=useCallback(()=>{g(false),m(null),f(null);},[]),R=a?e[a]:void 0,S=R!=="left",y=R!=="right",w=!!R,O=r.find(L=>L.columnId===a),T=a===l?u:null,I=O?.sortable!==false,v=O?.resizable!==false,x=useCallback(()=>{a&&S&&(t(a,"left"),h());},[a,S,t,h]),b=useCallback(()=>{a&&y&&(t(a,"right"),h());},[a,y,t,h]),D=useCallback(()=>{a&&w&&(n(a),h());},[a,w,n,h]),A=useCallback(()=>{a&&I&&(s(a,"asc"),h());},[a,I,s,h]),G=useCallback(()=>{a&&I&&(s(a,"desc"),h());},[a,I,s,h]),$=useCallback(()=>{a&&I&&(s(a,null),h());},[a,I,s,h]),V=useCallback(()=>{let L=i??d;if(!a||!L||!v)return;let U=r.find(K=>K.columnId===a);L(a,measureColumnContentWidth(a,U?.minWidth)),h();},[a,i,d,v,r,h]),X=useCallback(()=>{let L=i??d;L&&(r.forEach(U=>{U.resizable!==false&&L(U.columnId,measureColumnContentWidth(U.columnId,U.minWidth));}),h());},[r,i,d,h]);return {isOpen:p,openForColumn:a,anchorElement:c,open:C,close:h,handlePinLeft:x,handlePinRight:b,handleUnpin:D,handleSortAsc:A,handleSortDesc:G,handleClearSort:$,handleAutosizeThis:V,handleAutosizeAll:X,canPinLeft:S,canPinRight:y,canUnpin:w,currentSort:T,isSortable:I,isResizable:v}}function Ll(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 Al(o){let{columns:e,items:t,getRowId:n,visibleColumns:l,columnOrder:u,rowSelection:s="none",showRowNumbers:d,initialColumnWidths:i,onColumnResized:r,onAutosizeColumn:p,pinnedColumns:g,onColumnPinned:a,sortBy:m,sortDirection:c,onColumnSort:f,responsiveColumns:C,wrapperRef:h}=o,R=useMemo(()=>flattenColumns(e),[e]),S=useMemo(()=>!g||Object.keys(g).length===0?R:R.map(B=>{let _=g[B.columnId];return _&&B.pinned!==_?{...B,pinned:_}:B}),[R,g]),y=useMemo(()=>resolveResponsiveConfig(C),[C]),w=useMemo(()=>{let B=l?S.filter(j=>l.has(j.columnId)):S;if(!u?.length)return B;let _=new Map;for(let j=0;j<u.length;j++)_.set(u[j],j);return [...B].sort((j,te)=>{let ne=_.get(j.columnId)??-1,oe=_.get(te.columnId)??-1;return ne===-1&&oe===-1?0:ne===-1?1:oe===-1?-1:ne-oe})},[S,l,u]),O=s==="multiple",T=!!d,I=useMemo(()=>{let B=new Map;return t.forEach((_,j)=>B.set(n(_),j)),B},[t,n]),{containerWidth:v,minTableWidth:x,desiredTableWidth:b,columnSizingOverrides:D,setColumnSizingOverrides:A}=Mn({wrapperRef:h,visibleCols:w,flatColumns:S,hasCheckboxCol:O,initialColumnWidths:i,onColumnResized:r}),G=useMemo(()=>applyResponsiveHiding(w,v,y),[w,v,y]),$=G.length,V=(O?1:0)+(T?1:0),X=$+V,L=V,U=Ul({columns:S,pinnedColumns:g,onColumnPinned:a}),K=useMemo(()=>{let B=Object.entries(D);return B.length===0?"":B.map(([_,j])=>`${_}:${Math.round(j.widthPx)}`).join(",")},[D]),[W,J]=useState({});useLayoutEffect(()=>{let B=h.current;if(!B)return;let _=B.querySelectorAll("th[data-column-id]");if(_.length===0)return;let j={};_.forEach(te=>{let ne=te.getAttribute("data-column-id");ne&&(j[ne]=te.offsetWidth);}),J(te=>{for(let ne in j)if(te[ne]!==j[ne])return j;return Object.keys(te).length!==Object.keys(j).length?j:te});},[G,K,h]);let F=useMemo(()=>{let B={};for(let _ of G){let j=D[_.columnId];B[_.columnId]=j?j.widthPx:W[_.columnId]??_.idealWidth??_.defaultWidth??_.minWidth??DEFAULT_MIN_COLUMN_WIDTH;}return B},[G,D,W]),z=useMemo(()=>U.computeLeftOffsets(G,F,DEFAULT_MIN_COLUMN_WIDTH,O,CHECKBOX_COLUMN_WIDTH),[U,G,F,O]),N=useMemo(()=>U.computeRightOffsets(G,F,DEFAULT_MIN_COLUMN_WIDTH),[U,G,F]),P=k(f),H=useCallback((B,_)=>P.current?.(B,_),[P]),E=useCallback((B,_)=>{A(j=>({...j,[B]:{widthPx:_}})),(p??r)?.(B,_);},[A,p,r]),Z=_o({pinnedColumns:U.pinnedColumns,onPinColumn:U.pinColumn,onUnpinColumn:U.unpinColumn,sortBy:m,sortDirection:c??"asc",onColumnSort:H,onColumnResized:r,onAutosizeColumn:E,columns:S}),q=useMemo(()=>({flatColumns:S,visibleCols:G,visibleColumnCount:$,totalColCount:X,colOffset:L,hasCheckboxCol:O,hasRowNumbersCol:T,rowIndexByRowId:I,containerWidth:v,minTableWidth:x,desiredTableWidth:b,columnSizingOverrides:D,setColumnSizingOverrides:A,onColumnResized:r,measuredColumnWidths:W}),[S,G,$,X,L,O,T,I,v,x,b,D,A,r,W]),Y=useMemo(()=>({pinnedColumns:U.pinnedColumns,pinColumn:U.pinColumn,unpinColumn:U.unpinColumn,isPinned:U.isPinned,leftOffsets:z,rightOffsets:N,headerMenu:Z}),[U.pinnedColumns,U.pinColumn,U.unpinColumn,U.isPinned,z,N,Z]);return {layout:q,pinning:Y,flatColumns:S,visibleCols:G,visibleColumnCount:$,totalColCount:X,colOffset:L,hasCheckboxCol:O,hasRowNumbersCol:T,columnSizingOverrides:D,setColumnSizingOverrides:A,handleAutosizeColumn:E,stableOnColumnSort:H}}function Bl(o){let{editingCell:e,setEditingCell:t,pendingEditorValue:n,setPendingEditorValue:l,onCellValueChanged:u,setActiveCell:s,setSelectionRange:d,colOffset:i,setFormula:r,onFormulaCellChanged:p,formulas:g,flatColumns:a}=o,[m,c]=useState(null),f=k(o.visibleCols),C=k(o.itemsLength),h=k(u),R=k(r),S=k(p),y=k(a),w=useCallback((I,v,x,b,D,A,G)=>{if(g&&typeof b=="string"&&b.startsWith("=")&&R.current){let V=y.current,X=V?V.findIndex(L=>L.columnId===v):-1;if(X>=0){if(R.current(X,D,b),t(null),c(null),l(void 0),D<C.current-1){let L=D+1,U=A-i;s({rowIndex:L,columnIndex:A}),d({startRow:L,startCol:U,endRow:L,endCol:U});}return}}let $=f.current.find(V=>V.columnId===v);if($){let V=parseValue(b,x,I,$);if(!V.valid){t(null),c(null),l(void 0);return}b=V.value;}if(h.current?.({item:I,columnId:v,oldValue:x,newValue:b,rowIndex:D}),g&&S.current&&y.current){let V=y.current.findIndex(X=>X.columnId===v);V>=0&&S.current(V,D);}if(t(null),c(null),l(void 0),!G?.skipAdvance&&D<C.current-1){let V=D+1,X=A-i;s({rowIndex:V,columnIndex:A}),d({startRow:V,startCol:X,endRow:V,endCol:X});}},[g,t,l,s,d,i,f,C,h,R,S,y]),O=useCallback(()=>{t(null),c(null),l(void 0);},[t,l]);return {editing:useMemo(()=>({editingCell:e,setEditingCell:t,pendingEditorValue:n,setPendingEditorValue:l,commitCellEdit:w,cancelPopoverEdit:O,popoverAnchorEl:m,setPopoverAnchorEl:c}),[e,t,n,l,w,O,m,c])}}var dt=()=>{},Us=async()=>{},Ls=(o,e,t)=>{},ks=o=>{};function Nl(o){let{items:e,visibleCols:t,colOffset:n,hasCheckboxCol:l,visibleColumnCount:u,getRowId:s,editable:d,onCellValueChangedProp:i,cellSelection:r,rowSelection:p,selectedRowIds:g,editingCell:a,setEditingCell:m,activeCell:c,setActiveCell:f,handleRowCheckboxChange:C,setContextMenuPosition:h,wrapperRef:R,onKeyDown:S,formulas:y,flatColumns:w,getFormula:O,hasFormula:T,setFormula:I,onFormulaInsertReference:v}=o,x=k(v),b=Tn({onCellValueChanged:i}),D=b.onCellValueChanged,{selectionRange:A,setSelectionRange:G,handleCellMouseDown:$,handleSelectAllCells:V,isDragging:X}=xn({colOffset:n,rowCount:e.length,visibleColCount:t.length,setActiveCell:f,wrapperRef:R}),{handleCopy:L,handleCut:U,handlePaste:K,cutRange:W,copyRange:J,clearClipboardRanges:F}=In({items:e,visibleCols:t,colOffset:n,selectionRange:A,activeCell:c,editable:d,onCellValueChanged:D,beginBatch:b.beginBatch,endBatch:b.endBatch,formulas:y,flatColumns:w,getFormula:O,hasFormula:T,setFormula:I}),z=useCallback((Y,B,_)=>{if(Y.button!==0)return;let j=x.current;if(j){let te=_-n;if(te>=0){let ne=formatCellReference(te,B+1);if(j(ne)){Y.preventDefault();return}}}R.current?.focus({preventScroll:true}),F(),$(Y,B,_);},[$,F,R,x,n]),N=useMemo(()=>{if(!(!y||!w))return {flatColumns:w,getFormula:O,hasFormula:T,setFormula:I}},[y,w,O,T,I]),{handleFillHandleMouseDown:P,fillDown:H}=On({items:e,visibleCols:t,editable:d,onCellValueChanged:D,selectionRange:A,setSelectionRange:G,setActiveCell:f,colOffset:n,wrapperRef:R,beginBatch:b.beginBatch,endBatch:b.endBatch,formulaOptions:N}),{handleGridKeyDown:E}=wn({data:{items:e,visibleCols:t,colOffset:n,hasCheckboxCol:l,visibleColumnCount:u,getRowId:s},state:{activeCell:c,selectionRange:A,editingCell:a,selectedRowIds:g},handlers:{setActiveCell:f,setSelectionRange:G,setEditingCell:m,handleRowCheckboxChange:C,handleCopy:L,handleCut:U,handlePaste:K,setContextMenu:h,onUndo:b.undo,onRedo:b.redo,clearClipboardRanges:F},features:{editable:d,onCellValueChanged:D,rowSelection:p??"none",wrapperRef:R,onKeyDown:S,fillDown:H}}),Z=A!=null||c!=null;return {interaction:useMemo(()=>({activeCell:r?c:null,setActiveCell:r?f:dt,selectionRange:r?A:null,setSelectionRange:r?G:dt,handleCellMouseDown:r?z:Ls,handleSelectAllCells:r?V:dt,hasCellSelection:r?Z:false,handleGridKeyDown:r?E:ks,handleFillHandleMouseDown:r?P:dt,handleCopy:r?L:dt,handleCut:r?U:dt,handlePaste:r?K:Us,cutRange:r?W:null,copyRange:r?J:null,clearClipboardRanges:r?F:dt,canUndo:b.canUndo,canRedo:b.canRedo,onUndo:b.undo,onRedo:b.redo,isDragging:r?X:false}),[r,c,f,A,G,z,V,Z,E,P,L,U,K,W,J,F,b.canUndo,b.canRedo,b.undo,b.redo,X]),selectionRange:A,setSelectionRange:G,cutRange:W,copyRange:J,clearClipboardRanges:F,isDragging:X,onCellValueChanged:D,canUndo:b.canUndo,canRedo:b.canRedo}}var Ko=()=>{},Gs=o=>{},Bs=o=>{};function Hl(o){let{cellSelection:e}=o,{contextMenuPosition:t,setContextMenuPosition:n,handleCellContextMenu:l,closeContextMenu:u,handleLongPressStart:s,handleLongPressEnd:d}=yn();return {contextMenu:useMemo(()=>({menuPosition:e?t:null,setMenuPosition:e?n:Ko,handleCellContextMenu:e?l:Gs,closeContextMenu:e?u:Ko,handleLongPressStart:e?s:Bs,handleLongPressEnd:e?d:Ko}),[e,t,n,l,u,s,d]),contextMenuPosition:t,setContextMenuPosition:n}}function Un(o){let{props:e,wrapperRef:t}=o,{items:n,columns:l,getRowId:u,visibleColumns:s,columnOrder:d,rowSelection:i="none",selectedRows:r,onSelectionChange:p,showRowNumbers:g,statusBar:a,emptyState:m,editable:c,cellSelection:f,onCellValueChanged:C,initialColumnWidths:h,onColumnResized:R,onAutosizeColumn:S,pinnedColumns:y,onColumnPinned:w,responsiveColumns:O,onCellError:T,onKeyDown:I}=e,v=f!==false,{editingCell:x,setEditingCell:b,pendingEditorValue:D,setPendingEditorValue:A}=vn(),{activeCell:G,setActiveCell:$}=bn(t,x),V=Al({columns:l,items:n,getRowId:u,visibleColumns:s,columnOrder:d,rowSelection:i,showRowNumbers:g,initialColumnWidths:h,onColumnResized:R,onAutosizeColumn:S,pinnedColumns:y,onColumnPinned:w,sortBy:e.sortBy,sortDirection:e.sortDirection,onColumnSort:e.onColumnSort,responsiveColumns:O,wrapperRef:t}),{visibleCols:X,visibleColumnCount:L,colOffset:U,hasCheckboxCol:K}=V,W=Pn({items:n,getRowId:u,rowSelection:i,controlledSelectedRows:r,onSelectionChange:p}),{selectedRowIds:J,updateSelection:F,handleRowCheckboxChange:z,handleSelectAll:N,allSelected:P,someSelected:H}=W,E=Hl({cellSelection:v}),{setContextMenuPosition:Z}=E,q=Nl({items:n,visibleCols:X,colOffset:U,hasCheckboxCol:K,visibleColumnCount:L,getRowId:u,editable:c,onCellValueChangedProp:C,cellSelection:v,rowSelection:i,selectedRowIds:J,editingCell:x,setEditingCell:b,activeCell:G,setActiveCell:$,handleRowCheckboxChange:z,setContextMenuPosition:Z,wrapperRef:t,onKeyDown:I,formulas:e.formulas,flatColumns:V.layout.flatColumns,getFormula:e.getFormula,hasFormula:e.hasFormula,setFormula:e.setFormula,onFormulaInsertReference:e.onFormulaInsertReference}),{selectionRange:Y,setSelectionRange:B,cutRange:_,copyRange:j,isDragging:te,onCellValueChanged:ne}=q,oe=Bl({editingCell:x,setEditingCell:b,pendingEditorValue:D,setPendingEditorValue:A,visibleCols:X,itemsLength:n.length,onCellValueChanged:ne,setActiveCell:$,setSelectionRange:B,colOffset:U,setFormula:e.setFormula,onFormulaCellChanged:e.onFormulaCellChanged,formulas:e.formulas,flatColumns:V.layout.flatColumns}),{sortBy:ie,sortDirection:Fe,filters:qe,onFilterChange:be,filterOptions:et,loadingFilterOptions:$e,peopleSearch:ft}=e,Ye=!!ft,gt=k(be),Ge=k(ft),Ze=useCallback((...ge)=>gt.current?.(...ge),[gt]),Je=useCallback((...ge)=>Ge.current?.(...ge)??Promise.resolve([]),[Ge]),tt=useMemo(()=>({sortBy:ie,sortDirection:Fe,onColumnSort:V.stableOnColumnSort,filters:qe,onFilterChange:Ze,filterOptions:et,loadingFilterOptions:$e,peopleSearch:Ye?Je:void 0}),[ie,Fe,V.stableOnColumnSort,qe,Ze,et,$e,Ye,Je]),Te=useMemo(()=>({editingCell:x,activeCell:v?G:null,selectionRange:v?Y:null,cutRange:v?_:null,copyRange:v?j:null,colOffset:U,itemsLength:n.length,getRowId:u,editable:c,onCellValueChanged:ne,isDragging:v?te:false,getFormulaValue:e.getFormulaValue,hasFormula:e.hasFormula,getFormula:e.getFormula,formulaVersion:e.formulaVersion}),[x,G,Y,_,j,U,n.length,u,c,ne,v,te,e.getFormulaValue,e.hasFormula,e.getFormula,e.formulaVersion]),Be=useMemo(()=>computeAggregations(n,X,v?Y:null),[n,X,Y,v]),nt=useMemo(()=>{let ge=getDataGridStatusBarConfig(a,n.length,J.size);return ge?{...ge,aggregation:Be??void 0}:null},[a,n.length,J.size,Be]),Oe=n.length===0&&!!m&&!e.isLoading,ot=useMemo(()=>({selectedRowIds:J,updateSelection:F,handleRowCheckboxChange:z,handleSelectAll:N,allSelected:P,someSelected:H}),[J,F,z,N,P,H]),Qe=useMemo(()=>({headerFilterInput:tt,cellDescriptorInput:Te,statusBarConfig:nt,showEmptyInGrid:Oe,onCellError:T}),[tt,Te,nt,Oe,T]);return {layout:V.layout,rowSelection:ot,editing:oe.editing,interaction:q.interaction,contextMenu:E.contextMenu,viewModels:Qe,pinning:V.pinning}}function Ln(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 _s=150,Kl=[];function An(o){let{selectedValues:e,onFilterChange:t,options:n,isFilterOpen:l}=o,u=e??Kl,s=n??Kl,[d,i]=useState(()=>new Set(u)),[r,p]=useState(""),g=Dn(r,_s);useEffect(()=>{l&&(i(new Set(u)),p(""));},[l,u]);let a=useMemo(()=>{let h=g.trim();if(!h)return s;let R=h.toLowerCase();return s.filter(S=>S.toLowerCase().includes(R))},[s,g]),m=useCallback((h,R)=>{i(S=>{let y=new Set(S);return R?y.add(h):y.delete(h),y});},[]),c=useCallback(()=>{i(h=>{let R=new Set(h);for(let S of a)R.add(S);return R});},[a]),f=useCallback(()=>i(new Set),[]),C=useCallback(()=>{t?.(Array.from(d));},[t,d]);return {tempSelected:d,setTempSelected:i,searchText:r,setSearchText:p,debouncedSearchText:g,filteredOptions:a,handleCheckboxChange:m,handleSelectAll:c,handleClearSelection:f,handleApplyMultiSelect:C}}function Gn(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([]),[p,g]=useState(false),[a,m]=useState("");useEffect(()=>(n&&(m(""),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 g(true),d.current=window.setTimeout(async()=>{try{let C=await t(a);r(C.slice(0,10));}catch{r([]);}finally{g(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:p,peopleSearchText:a,setPeopleSearchText:m,peopleInputRef:u,handleUserSelect:c,handleClearUser:f}}function Bn(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 p=l||void 0,g=s||void 0;t?.(p||g?{from:p,to:g}:void 0);},[t,l,s]),r=useCallback(()=>{u(""),d("");},[]);return {tempDateFrom:l,setTempDateFrom:u,tempDateTo:s,setTempDateTo:d,handleDateApply:i,handleDateClear:r}}var Xs=[];function Ql(o){let{filterType:e,onSort:t,selectedValues:n,onFilterChange:l,options:u,textValue:s="",onTextChange:d,selectedUser:i,onUserChange:r,peopleSearch:p,dateValue:g,onDateChange:a}=o,m=n??Xs,c=useRef(null),f=useRef(null),[C,h]=useState(false),[R,S]=useState(null),y=Ln({textValue:s,onTextChange:d,isFilterOpen:C}),w=An({selectedValues:n,onFilterChange:l,options:u,isFilterOpen:C}),O=Gn({onUserChange:r,peopleSearch:p,isFilterOpen:C,filterType:e}),T=Bn({dateValue:g,onDateChange:a,isFilterOpen:C});useEffect(()=>{C||S(null);},[C]),useEffect(()=>{if(!C)return;let E=Y=>{let B=Y.target;f.current&&!f.current.contains(B)&&c.current&&!c.current.contains(B)&&h(false);},Z=Y=>{(Y.key==="Escape"||Y.key==="Esc")&&(Y.preventDefault(),Y.stopPropagation(),h(false));},q=setTimeout(()=>document.addEventListener("mousedown",E),0);return document.addEventListener("keydown",Z,true),()=>{clearTimeout(q),document.removeEventListener("mousedown",E),document.removeEventListener("keydown",Z,true);}},[C]);let I=useCallback(E=>{E.stopPropagation(),E.preventDefault(),h(Z=>{if(!Z&&c.current){let q=c.current.getBoundingClientRect();S({top:q.bottom+4,left:q.left});}return !Z});},[]),v=useCallback(E=>{E.stopPropagation(),t?.();},[t]),{handleApplyMultiSelect:x}=w,{handleTextApply:b,handleTextClear:D}=y,{handleUserSelect:A,handleClearUser:G}=O,{handleDateApply:$}=T,V=useCallback(()=>{x(),h(false);},[x]),X=useCallback(()=>{b(),h(false);},[b]),L=useCallback(()=>{D(),d?.(""),h(false);},[D,d]),U=useCallback(E=>{A(E),h(false);},[A]),K=useCallback(()=>{G(),h(false);},[G]),W=useCallback(()=>{$(),h(false);},[$]),J=useCallback(E=>E.stopPropagation(),[]),F=useCallback(E=>E.stopPropagation(),[]),z=useCallback(E=>E.stopPropagation(),[]),N=useCallback(E=>E.stopPropagation(),[]),P=useCallback(E=>{E.key!=="Escape"&&E.key!=="Esc"&&E.stopPropagation();},[]),H=useMemo(()=>e==="multiSelect"?m.length>0:e==="text"?!!s.trim():e==="people"?!!i:e==="date"?!!(g?.from||g?.to):false,[e,m,s,i,g]);return {headerRef:c,popoverRef:f,peopleInputRef:O.peopleInputRef,isFilterOpen:C,setFilterOpen:h,tempSelected:w.tempSelected,setTempSelected:w.setTempSelected,tempTextValue:y.tempTextValue,setTempTextValue:y.setTempTextValue,searchText:w.searchText,setSearchText:w.setSearchText,debouncedSearchText:w.debouncedSearchText,filteredOptions:w.filteredOptions,peopleSuggestions:O.peopleSuggestions,isPeopleLoading:O.isPeopleLoading,peopleSearchText:O.peopleSearchText,setPeopleSearchText:O.setPeopleSearchText,tempDateFrom:T.tempDateFrom,setTempDateFrom:T.setTempDateFrom,tempDateTo:T.tempDateTo,setTempDateTo:T.setTempDateTo,hasActiveFilter:H,popoverPosition:R,handlers:{handleFilterIconClick:I,handleApplyMultiSelect:V,handleTextApply:X,handleTextClear:L,handleUserSelect:U,handleClearUser:K,handleDateApply:W,handleDateClear:T.handleDateClear,handleCheckboxChange:w.handleCheckboxChange,handleSelectAll:w.handleSelectAll,handleClearSelection:w.handleClearSelection,handlePopoverClick:J,handleInputFocus:F,handleInputMouseDown:z,handleInputClick:N,handleInputKeyDown:P,handleSortClick:v}}}function ea(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]),p=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]),g=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,m=e.length;return {open:u,setOpen:s,handleToggle:d,handleClose:i,handleCheckboxChange:r,handleSelectAll:p,handleClearAll:g,visibleCount:a,totalCount:m}}function na(o,e){if(o==="")return "";let t=parseUserInputDate(o,e);return t===null?o:t.toISOString().substring(0,10)}function Vn(o){let{value:e,editorType:t,onCommit:n,onCancel:l,dateFormat:u,dateEditorType:s}=o,d=u??DEFAULT_DATE_FORMAT,[i,r]=useState(()=>{if(e==null)return "";if(t==="date"){let a=String(e);return s==="native"?a.match(/^\d{4}-\d{2}-\d{2}/)?a.substring(0,10):a:formatDateForDisplay(a,d)??a}return String(e)}),p=useCallback(a=>{a.key==="Escape"&&(a.preventDefault(),a.stopPropagation(),l()),a.key==="Enter"&&(t==="text"||t==="date")&&(a.preventDefault(),a.stopPropagation(),n(t==="date"&&s!=="native"?na(i,d):i));},[l,n,i,t,d,s]),g=useCallback(()=>{t==="text"?n(i):t==="date"&&n(s==="native"?i:na(i,d));},[t,i,n,d,s]);return {localValue:i,setLocalValue:r,handleKeyDown:p,handleBlur:g,commit:n,cancel:l}}function Nn({columnSizingOverrides:o,setColumnSizingOverrides:e,minWidth:t=80,defaultWidth:n=120,onColumnResized:l}){let u=useRef(0),s=useRef(l);s.current=l;let d=k(o),i=useRef(null);useEffect(()=>()=>{i.current&&(i.current(),i.current=null);},[]);let r=useCallback((a,m)=>{a.preventDefault(),a.stopPropagation(),i.current&&(i.current(),i.current=null);let c=a.clientX,f=m.columnId,C=a.currentTarget.closest("th"),h=C?C.getBoundingClientRect().width:d.current[f]?.widthPx??m.idealWidth??m.defaultWidth??n,R=h,S=C?.closest("thead");if(S){let b=S.querySelectorAll("th[data-column-id]");b.length>0&&e(D=>{let A={...D};return b.forEach(G=>{let $=G.dataset.columnId;$&&!A[$]&&(A[$]={widthPx:G.getBoundingClientRect().width});}),A[f]={widthPx:h},A});}let y=document.body.style.cursor,w=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let O=()=>{e(b=>({...b,[f]:{widthPx:R}}));},T=f===ROW_NUMBER_COLUMN_ID?ROW_NUMBER_COLUMN_MIN_WIDTH:t,I=b=>{let D=b.clientX-c;R=Math.max(T,h+D),u.current||(u.current=requestAnimationFrame(()=>{u.current=0,O();}));},v=()=>{document.removeEventListener("pointermove",I),document.removeEventListener("pointerup",x),i.current=null,document.body.style.cursor=y,document.body.style.userSelect=w,u.current&&(cancelAnimationFrame(u.current),u.current=0);},x=()=>{v(),O();let b=C?.closest("[tabindex]");b?b.focus({preventScroll:true}):document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s.current&&s.current(f,R);};document.addEventListener("pointermove",I),document.addEventListener("pointerup",x),i.current=v;},[n,t,e,d]),p=useCallback((a,m)=>{a.preventDefault(),a.stopPropagation();let c=m.columnId,C=a.currentTarget.closest("th")?.closest("table")?.parentElement??void 0,h=measureColumnContentWidth(c,t,C);e(R=>({...R,[c]:{widthPx:h}})),s.current&&s.current(c,h);},[t,e]),g=useCallback(a=>o[a.columnId]?.widthPx??a.idealWidth??a.defaultWidth??n,[o,n]);return {handleResizeStart:r,handleResizeDoubleClick:p,getColumnWidth:g}}function Zo(o,e){return e?e(o):o!=null?String(o):""}function Hn(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,p]=useState(Math.max(i,0));useEffect(()=>{let f=e.findIndex(C=>String(C)===String(n));p(Math.max(f,0));},[n,e]);let g=useCallback(f=>Zo(f,t),[t]),a=useMemo(()=>{if(!s.trim())return e;let f=s.toLowerCase();return e.filter(C=>g(C).toLowerCase().includes(f))},[e,s,g]),m=useCallback(f=>{l(f);},[l]),c=useCallback(f=>{switch(f.key){case "ArrowDown":f.preventDefault(),p(C=>Math.min(C+1,a.length-1));break;case "ArrowUp":f.preventDefault(),p(C=>Math.max(C-1,0));break;case "Enter":f.preventDefault(),f.stopPropagation(),a.length>0&&r<a.length&&m(a[r]);break;case "Escape":f.preventDefault(),f.stopPropagation(),u();break}},[a,r,m,u]);return {searchText:s,setSearchText:d,filteredValues:a,highlightedIndex:r,handleKeyDown:c,selectValue:m,getDisplayText:g}}function zn(o){let{values:e,formatValue:t,initialValue:n,onCommit:l,onCancel:u}=o,s=useRef(null),d=useCallback(m=>Zo(m,t),[t]),i=e.findIndex(m=>String(m)===String(n)),[r,p]=useState(Math.max(i,0));useEffect(()=>{let m=e.findIndex(c=>String(c)===String(n));p(Math.max(m,0));},[n,e]),useEffect(()=>{let m=s.current;if(!m)return;m.children[r]?.scrollIntoView({block:"nearest"});},[r]);let g=useCallback(m=>{l(m);},[l]),a=useCallback(m=>{switch(m.key){case "ArrowDown":m.preventDefault(),p(c=>Math.min(c+1,e.length-1));break;case "ArrowUp":m.preventDefault(),p(c=>Math.max(c-1,0));break;case "Enter":m.preventDefault(),m.stopPropagation(),e.length>0&&r<e.length&&g(e[r]);break;case "Tab":m.preventDefault(),e.length>0&&r<e.length&&g(e[r]);break;case "Escape":m.preventDefault(),m.stopPropagation(),u();break}},[e,r,g,u]);return {highlightedIndex:r,handleKeyDown:a,selectValue:g,getDisplayText:d,dropdownRef:s}}var pu=8;function fu(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 _n(o){let{columns:e,columnOrder:t,onColumnOrderChange:n,enabled:l=true,pinnedColumns:u,wrapperRef:s}=o,[d,i]=useState(false),[r,p]=useState(null),g=useRef(0),a=useRef(e);a.current=e;let m=useRef(t);m.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 h=useCallback((R,S)=>{if(!l||!c.current||S.button!==0)return;let w=S.currentTarget.getBoundingClientRect();if(S.clientX>w.right-pu||a.current.findIndex(L=>L.columnId===R)===-1)return;S.preventDefault();let I=S.clientX,v=false,x=null,b=fu(f.current),D=getPinStateForColumn(R,b),A=document.body.style.userSelect,G=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="grabbing";let $=L=>{!v&&Math.abs(L.clientX-I)<5||(v||(v=true,i(true)),g.current&&cancelAnimationFrame(g.current),g.current=requestAnimationFrame(()=>{g.current=0;let U=s.current;if(!U)return;let K=m.current??a.current.map(J=>J.columnId),W=calculateDropTarget({mouseX:L.clientX,columnOrder:K,draggedColumnId:R,draggedPinState:D,tableElement:U,pinnedColumns:b});W&&(x=W.targetIndex,p(W.indicatorX));}));},V=()=>{window.removeEventListener("pointermove",$,true),window.removeEventListener("pointerup",X,true),C.current=null,document.body.style.userSelect=A,document.body.style.cursor=G,g.current&&(cancelAnimationFrame(g.current),g.current=0);},X=()=>{if(V(),v&&x!=null){let L=m.current??a.current.map(K=>K.columnId),U=reorderColumnArray(L,R,x);c.current?.(U);}i(false),p(null);};window.addEventListener("pointermove",$,true),window.addEventListener("pointerup",X,true),C.current=V;},[l,s]);return {isDragging:d,dropIndicatorX:r,handleHeaderMouseDown:h}}var Ru=100;function Wn(o){let{totalRows:e,rowHeight:t,enabled:n,overscan:l=5,threshold:u=Ru,containerRef:s,columnVirtualization:d=false,columnWidths:i,columnOverscan:r=2}=o;useEffect(()=>{validateVirtualScrollConfig({enabled:n,rowHeight:t});},[n,t]);let p=n&&e>=u,g=useCallback(()=>s.current,[s]),a=useVirtualizer({count:p?e:0,getScrollElement:g,estimateSize:()=>t,overscan:l,enabled:p}),m=useMemo(()=>({startIndex:0,endIndex:Math.max(0,e-1),offsetTop:0,offsetBottom:0}),[e]),c=useMemo(()=>{if(!p)return m;let v=a.getVirtualItems();if(v.length===0)return {startIndex:0,endIndex:-1,offsetTop:0,offsetBottom:0};let x=v[0],b=v[v.length-1],D=a.getTotalSize();return {startIndex:x.index,endIndex:b.index,offsetTop:x.start,offsetBottom:Math.max(0,D-b.end)}},[p,a,m]),f=p?a.getTotalSize():e*t,C=useRef(a);C.current=a;let h=useCallback(v=>{if(p)C.current?.scrollToIndex(v,{align:"auto"});else {let x=s.current;if(x){let b=v*t;x.scrollTo({top:b,behavior:"auto"});}}},[p,s,t]),[R,S]=useState(0),y=useRef(0),w=useCallback(v=>{y.current&&cancelAnimationFrame(y.current),y.current=requestAnimationFrame(()=>{y.current=0,S(v);});},[]);useEffect(()=>()=>{y.current&&cancelAnimationFrame(y.current);},[]);let[O,T]=useState(0);useEffect(()=>{if(!d)return;let v=s.current;if(!v||(T(v.clientWidth),typeof ResizeObserver>"u"))return;let x=new ResizeObserver(b=>{b.length>0&&T(b[0].contentRect.width);});return x.observe(v),()=>x.disconnect()},[d,s]);let I=useMemo(()=>!d||!i||i.length===0||O<=0?null:computeVisibleColumnRange(R,i,O,r),[d,i,O,R,r]);return {virtualizer:p?a:null,totalHeight:f,visibleRange:c,scrollToIndex:h,columnRange:I,onHorizontalScroll:d?w:void 0}}function sa(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,p=useMemo(()=>{if(e===0)return [];let g=Math.max(0,Math.floor(s/t)-l),a=Math.ceil(n/t),m=Math.min(e-1,g+a+l*2),c=[];for(let f=g;f<=m;f++)c.push({index:f,offsetTop:f*t});return c},[e,t,n,l,s]);return {totalHeight:r,visibleItems:p,containerRef:u,onScroll:i}}function Kn(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 da(o){let{props:e}=o,t=useRef(null),n=useRef(null),l=useRef(false),u=Un({props:e,wrapperRef:t}),{layout:s,rowSelection:d,editing:i,interaction:r,contextMenu:p,viewModels:g,pinning:a}=u,{visibleCols:m,totalColCount:c,hasCheckboxCol:f,hasRowNumbersCol:C,colOffset:h,containerWidth:R,minTableWidth:S,desiredTableWidth:y,columnSizingOverrides:w,setColumnSizingOverrides:O,measuredColumnWidths:T}=s,I=m,{selectedRowIds:v,updateSelection:x,handleRowCheckboxChange:b,handleSelectAll:D,allSelected:A,someSelected:G}=d,{editingCell:$,setEditingCell:V,pendingEditorValue:X,setPendingEditorValue:L,commitCellEdit:U,cancelPopoverEdit:K,popoverAnchorEl:W,setPopoverAnchorEl:J}=i,{setActiveCell:F,handleCellMouseDown:z,selectionRange:N,hasCellSelection:P,handleGridKeyDown:H,handleFillHandleMouseDown:E,handleCopy:Z,handleCut:q,handlePaste:Y,cutRange:B,copyRange:_,canUndo:j,canRedo:te,onUndo:ne,onRedo:oe,isDragging:ie}=r,{menuPosition:Fe,handleCellContextMenu:qe,closeContextMenu:be,handleLongPressStart:et,handleLongPressEnd:$e}=p,{headerFilterInput:ft,cellDescriptorInput:Ye,statusBarConfig:gt,showEmptyInGrid:Ge,onCellError:Ze}=g,{headerMenu:Je}=a,tt=useCallback(()=>{Y();},[Y]),{items:Te,columns:Be,getRowId:nt,emptyState:Oe,layoutMode:ot="fill",rowSelection:Qe="none",suppressHorizontalScroll:ge,stickyHeader:Xt=true,isLoading:qt=false,loadingMessage:$t="Loading\u2026","aria-label":Yt,"aria-labelledby":Zt,visibleColumns:Ct,columnOrder:Et,onColumnOrderChange:Jt,columnReorder:Ft,virtualScroll:Ve,rowHeight:re,density:Ne="normal",pinnedColumns:rt,currentPage:Qt=1,pageSize:en=25,showColumnLetters:ro=false,showNameBox:lo=false,onActiveCellChange:tn}=e,ht=C?(Qt-1)*en:0,ao=useMemo(()=>buildHeaderRows(Be,Ct),[Be,Ct]),me=!ge&&R>0&&(S>R||y>R),se=ot==="content",Q=useRef(tn);Q.current=tn,useEffect(()=>{if(!Q.current)return;let Se=r.activeCell;Se?Q.current(formatCellReference(Se.columnIndex-h,ht+Se.rowIndex+1)):Q.current(null);},[r.activeCell,ht,h]);let{handleResizeStart:Ce,handleResizeDoubleClick:Ot,getColumnWidth:Rt}=Nn({columnSizingOverrides:w,setColumnSizingOverrides:O}),{isDragging:nn,dropIndicatorX:De,handleHeaderMouseDown:Me}=_n({columns:I,columnOrder:Et,onColumnOrderChange:Jt,enabled:Ft===true,pinnedColumns:rt,wrapperRef:t}),lt=Ve?.enabled===true,on=Ve?.rowHeight??36,He=Ve?.columns===true,at=useMemo(()=>{if(!He)return;let Se=[];for(let ze of I)rt?.[ze.columnId]||Se.push(Rt(ze));return Se},[He,I,rt,Rt]),{visibleRange:rn,columnRange:Mt,onHorizontalScroll:ln}=Wn({totalRows:Te.length,rowHeight:on,enabled:lt,overscan:Ve?.overscan,threshold:Ve?.threshold,containerRef:t,columnVirtualization:He,columnWidths:at,columnOverscan:Ve?.columnOverscan}),Ut=useMemo(()=>({commitCellEdit:U,setEditingCell:V,setPendingEditorValue:L,cancelPopoverEdit:K}),[U,V,L,K]),an=useMemo(()=>({handleCellMouseDown:z,setActiveCell:F,setEditingCell:V,handleCellContextMenu:qe,handleLongPressStart:et,handleLongPressEnd:$e}),[z,F,V,qe,et,$e]),sn=k(Ye),un=k(X),cn=k(W),St=k(v),it=useRef(new CellDescriptorCache),Lt=CellDescriptorCache.computeVersion(Ye);it.current.updateVersion(Lt);let bt=useRef(Te),vt=useRef(I);(bt.current!==Te||vt.current!==I)&&(bt.current=Te,vt.current=I,it.current.clear());let dn=useCallback(Se=>{if(Qe!=="single")return;let ze=Se.currentTarget.dataset.rowId;if(!ze)return;let st=St.current;x(st.has(ze)?new Set:new Set([ze]));},[Qe,x,St]);return {wrapperRef:t,tableContainerRef:n,lastMouseShiftRef:l,layout:s,rowSel:d,editing:i,interaction:r,ctxMenu:p,viewModels:g,pinning:a,handleResizeStart:Ce,handleResizeDoubleClick:Ot,getColumnWidth:Rt,isReorderDragging:nn,dropIndicatorX:De,handleHeaderMouseDown:Me,virtualScrollEnabled:lt,virtualRowHeight:on,visibleRange:rn,columnRange:Mt,onHorizontalScroll:ln,items:Te,columns:Be,getRowId:nt,emptyState:Oe,layoutMode:ot,rowSelection:Qe,suppressHorizontalScroll:ge,stickyHeader:Xt,isLoading:qt,loadingMessage:$t,ariaLabel:Yt,ariaLabelledBy:Zt,visibleColumns:Ct,columnOrder:Et,columnReorder:Ft,density:Ne,rowHeight:re,pinnedColumns:rt,currentPage:Qt,propPageSize:en,rowNumberOffset:ht,headerRows:ao,allowOverflowX:me,fitToContent:se,showColumnLetters:ro,showNameBox:lo,editCallbacks:Ut,interactionHandlers:an,cellDescriptorInputRef:sn,cellDescriptorCacheRef:it,pendingEditorValueRef:un,popoverAnchorElRef:cn,selectedRowIdsRef:St,handleSingleRowClick:dn,handlePasteVoid:tt,visibleCols:I,totalColCount:c,hasCheckboxCol:f,hasRowNumbersCol:C,colOffset:h,containerWidth:R,minTableWidth:S,desiredTableWidth:y,columnSizingOverrides:w,setColumnSizingOverrides:O,measuredColumnWidths:T,selectedRowIds:v,updateSelection:x,handleRowCheckboxChange:b,handleSelectAll:D,allSelected:A,someSelected:G,editingCell:$,setPopoverAnchorEl:J,cancelPopoverEdit:K,setActiveCell:F,selectionRange:N,hasCellSelection:P,handleGridKeyDown:H,handleFillHandleMouseDown:E,handleCopy:Z,handleCut:q,cutRange:B,copyRange:_,canUndo:j,canRedo:te,onUndo:ne,onRedo:oe,isDragging:ie,menuPosition:Fe,handleCellContextMenu:qe,closeContextMenu:be,headerFilterInput:ft,cellDescriptorInput:Ye,statusBarConfig:gt,showEmptyInGrid:Ge,onCellError:Ze,headerMenu:Je}}function ma(o){let{visibleCols:e,getColumnWidth:t,columnSizingOverrides:n,measuredColumnWidths:l,pinnedColumns:u,leftOffsets:s,rightOffsets:d,pinnedColLeftClass:i,pinnedColRightClass:r,addStickyPosition:p=false}=o;return useMemo(()=>{let g={},a={},m={},c={};for(let f=0;f<e.length;f++){let C=e[f],h=t(C),R=!!(n[C.columnId]||C.idealWidth!=null||C.defaultWidth!=null),S=u[C.columnId]==="left",y=u[C.columnId]==="right",w=S||y,O=!!n[C.columnId],T=l[C.columnId],I=C.minWidth??estimateHeaderMinWidth(C.name),v=O||R?h:Math.max(I,T??0),x=p&&w?{position:"sticky"}:void 0;g[C.columnId]={minWidth:v,width:R?h:void 0,maxWidth:R?h:void 0,textAlign:C.type==="numeric"?"right":C.type==="boolean"?"center":void 0,...x,...S&&s[C.columnId]!=null?{left:s[C.columnId]}:void 0,...y&&d[C.columnId]!=null?{right:d[C.columnId]}:void 0},m[C.columnId]={minWidth:v,width:R?h:void 0,maxWidth:R?h:void 0,...x,...S&&s[C.columnId]!=null?{left:s[C.columnId]}:void 0,...y&&d[C.columnId]!=null?{right:d[C.columnId]}:void 0};let b=[];S&&b.push(i),y&&b.push(r);let D=b.join(" ");a[C.columnId]=D,c[C.columnId]=D;}return {cellStyles:g,cellClasses:a,hdrStyles:m,hdrClasses:c}},[e,t,n,l,u,s,d,i,r,p])}var Tu={position:"relative",flex:1,minHeight:0,display:"flex",flexDirection:"column"},Du={cursor:"cell"},Eu={width:"100%",height:"100%",minHeight:"100%",minWidth:40,display:"flex",alignItems:"center",boxSizing:"border-box",padding:"var(--ogrid-cell-padding, 6px 10px)",overflow:"hidden"},Fu=o=>{o.preventDefault();},Ou=()=>{},Mu=o=>{o.stopPropagation();};var Uu=240,nr=36,Xn={columns:"Columns",filters:"Filters"},Ca={display:"flex",flexDirection:"column",width:nr,background:"var(--ogrid-header-bg, #f5f5f5)"},Lu={...Ca,borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"},ku={...Ca,borderRight:"1px solid var(--ogrid-border, #e0e0e0)"},ha={width:nr,height:nr,border:"none",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:14,display:"flex",alignItems:"center",justifyContent:"center"},Au={...ha,background:"var(--ogrid-bg, #fff)",fontWeight:"bold"},Gu={...ha,background:"transparent",fontWeight:"normal"},Ra={width:Uu,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)"},Bu={...Ra,borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"},Vu={...Ra,borderRight:"1px solid var(--ogrid-border, #e0e0e0)"},Nu={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, #e0e0e0)",fontWeight:600},Hu={border:"none",background:"transparent",cursor:"pointer",fontSize:16,color:"var(--ogrid-fg, #242424)"},zu={flex:1,overflowY:"auto",padding:"8px 12px"},_u={display:"flex",flexDirection:"row",flexShrink:0},Wu={display:"flex",gap:8,marginBottom:8},pa={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"},Ku={display:"flex",alignItems:"center",gap:6,padding:"2px 0",cursor:"pointer"},ju={color:"var(--ogrid-muted, #999)",fontStyle:"italic"},Xu={marginBottom:12},qu={fontWeight:500,marginBottom:4,fontSize:13},$u={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},Yu={display:"flex",flexDirection:"column",gap:4},fa={display:"flex",alignItems:"center",gap:4,fontSize:12},ga={flex:1,padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:4},Zu={maxHeight:120,overflowY:"auto"},Ju={display:"flex",alignItems:"center",gap:4,padding:"1px 0",cursor:"pointer",fontSize:13};function qn(o){let{activePanel:e,onPanelChange:t,panels:n,position:l,columns:u,visibleColumns:s,onVisibilityChange:d,onSetVisibleColumns:i,filterableColumns:r,filters:p,onFilterChange:g,filterOptions:a}=o,m=e!==null,c=S=>{t(e===S?null:S);},f=l==="right"?Lu:ku,C=l==="right"?Bu:Vu,h=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":Xn[S],onClick:()=>c(S),title:Xn[S],style:e===S?Au:Gu,children:S==="columns"?"\u2261":"\u2A65"},S))}),R=m&&e?jsxs("div",{role:"tabpanel","aria-label":Xn[e],style:C,children:[jsxs("div",{style:Nu,children:[jsx("span",{children:Xn[e]}),jsx("button",{onClick:()=>t(null),style:Hu,"aria-label":"Close panel",children:"\xD7"})]}),jsxs("div",{style:zu,children:[e==="columns"&&jsx(Qu,{columns:u,visibleColumns:s,onVisibilityChange:d,onSetVisibleColumns:i}),e==="filters"&&jsx(ec,{filterableColumns:r,filters:p,onFilterChange:g,filterOptions:a})]})]}):null;return jsxs("div",{style:_u,role:"complementary","aria-label":"Side bar",children:[l==="left"&&h,l==="left"&&R,l==="right"&&R,l==="right"&&h]})}function Qu(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:Wu,children:[jsx("button",{onClick:()=>{let i=new Set(t);e.forEach(r=>i.add(r.columnId)),l(i);},disabled:u,style:pa,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:pa,children:"Clear All"})]}),e.map(i=>jsxs("label",{style:Ku,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 ec(o){let{filterableColumns:e,filters:t,onFilterChange:n,filterOptions:l}=o;return e.length===0?jsx("div",{style:ju,children:"No filterable columns"}):jsx(Fragment,{children:e.map(u=>{let s=u.filterField,d=t[s];return jsxs("div",{style:Xu,children:[jsx("div",{style:qu,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:$u}),u.filterType==="date"&&jsxs("div",{style:Yu,children:[jsxs("label",{style:fa,children:["From:",jsx("input",{type:"date",value:d?.type==="date"?d.value.from??"":"",onChange:i=>{let r=i.target.value||void 0,g=(d?.type==="date"?d.value:{}).to;n(s,r||g?{type:"date",value:{from:r,to:g}}:void 0);},"aria-label":`${u.name} from date`,style:ga})]}),jsxs("label",{style:fa,children:["To:",jsx("input",{type:"date",value:d?.type==="date"?d.value.to??"":"",onChange:i=>{let r=i.target.value||void 0,g=(d?.type==="date"?d.value:{}).from;n(s,g||r?{type:"date",value:{from:g,to:r}}:void 0);},"aria-label":`${u.name} to date`,style:ga})]})]}),u.filterType==="multiSelect"&&jsx("div",{style:Zu,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:Ju,children:[jsx("input",{type:"checkbox",checked:r,onChange:p=>{let g=d?.type==="multiSelect"?d.value:[],a=p.target.checked?[...g,i]:g.filter(m=>m!==i);n(s,a.length>0?{type:"multiSelect",value:a}:void 0);}}),jsx("span",{children:i})]},i)})})]},u.columnId)})})}var va={border:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",borderRadius:GRID_BORDER_RADIUS,overflow:"hidden",display:"flex",flexDirection:"column",flex:1,minHeight:0,background:"var(--ogrid-bg, #fff)"},lc={...va,borderRadius:0,border:"none"},ya={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"6px 12px",background:"var(--ogrid-header-bg, #f5f5f5)",gap:8,flexWrap:"wrap",minHeight:0},ac={...ya,borderBottom:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))"},ic=ya,ba={display:"flex",alignItems:"center",gap:8},sc={borderBottom:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",padding:"6px 12px",background:"var(--ogrid-header-bg, #f5f5f5)"},uc={borderTop:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",background:"var(--ogrid-header-bg, #f5f5f5)",padding:"6px 12px"},cc={width:"100%",minWidth:0,minHeight:0,flex:1,display:"flex"},dc={width:"100%",minWidth:0,minHeight:0,flex:1,display:"flex",flexDirection:"column"},mc={flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},pc={display:"flex",flexDirection:"column",height:"100%"},fc={position:"fixed",inset:0,zIndex:9999,display:"flex",flexDirection:"column",background:"var(--ogrid-bg, #fff)"},gc={background:"none",border:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",borderRadius:4,padding:"4px 6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--ogrid-fg, #242424)"},Cc=()=>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"})]}),hc=()=>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 or(o){let{containerComponent:e="div",containerProps:t={},className:n,toolbar:l,toolbarEnd:u,toolbarBelow:s,children:d,pagination:i,sideBar:r,fullScreen:p,formulaBar:g,sheetTabs:a}=o,[m,c]=useState(false),f=useCallback(()=>{c(y=>!y);},[]);useEffect(()=>{if(!m)return;let y=w=>{w.key==="Escape"&&c(false);};return document.addEventListener("keydown",y),()=>document.removeEventListener("keydown",y)},[m]);let C=r!=null,h=r?.position??"right",R=l!=null||u!=null||p;return jsx(e,{className:n,style:m?fc:pc,...t,children:jsxs("div",{style:m?lc:va,children:[R&&jsxs("div",{style:s?ic:ac,children:[jsx("div",{style:ba,children:l}),jsxs("div",{style:ba,children:[u,p?jsx("button",{type:"button",style:gc,onClick:f,title:m?"Exit fullscreen":"Fullscreen","aria-label":m?"Exit fullscreen":"Fullscreen",children:m?jsx(hc,{}):jsx(Cc,{})}):null]})]}),s&&jsx("div",{style:sc,children:s}),g,C?jsxs("div",{style:cc,children:[h==="left"&&jsx(qn,{...r}),jsx("div",{style:mc,children:d}),h!=="left"&&jsx(qn,{...r})]}):jsx("div",{style:dc,children:d}),a,i&&jsx("div",{style:uc,children:i})]})})}function Rc({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 Kt={width:"100%",height:"100%",display:"flex",alignItems:"center",paddingTop:"var(--ogrid-cell-padding-vertical, 6px)",paddingBottom:"var(--ogrid-cell-padding-vertical, 6px)",paddingLeft:"var(--ogrid-cell-padding-horizontal, 10px)",paddingRight:"var(--ogrid-cell-padding-horizontal, 10px)",boxSizing:"border-box",overflow:"hidden",minWidth:0},$n={width:"100%",padding:0,border:"none",background:"transparent",color:"inherit",font:"inherit",fontSize:"16px",outline:"none",minWidth:0},lr={width:"100%",height:"100%",display:"flex",alignItems:"center",paddingTop:"var(--ogrid-cell-padding-vertical, 6px)",paddingBottom:"var(--ogrid-cell-padding-vertical, 6px)",paddingLeft:"var(--ogrid-cell-padding-horizontal, 10px)",paddingRight:"var(--ogrid-cell-padding-horizontal, 10px)",boxSizing:"border-box",overflow:"hidden",minWidth:0,position:"relative"},Ia={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",fontSize:"var(--ogrid-cell-font-size, 13px)",fontFamily:"inherit"},Yn={padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"var(--ogrid-cell-font-size, 13px)"},ar={...Yn,background:"var(--ogrid-bg-hover, #e8f0fe)",fontSize:"var(--ogrid-cell-font-size, 13px)"},Pa={padding:"6px 8px",color:"var(--ogrid-muted, #999)",fontSize:"var(--ogrid-cell-font-size, 13px)"},yc={padding:"4px 8px",borderTop:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",fontSize:"11px",color:"var(--ogrid-muted, #999)",textAlign:"right",position:"sticky",bottom:0,background:"var(--ogrid-bg, #fff)"},wa={width:"100%",padding:"6px 8px",border:"none",borderBottom:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",background:"var(--ogrid-bg, #fff)",color:"inherit",font:"inherit",fontSize:"var(--ogrid-cell-font-size, 13px)",outline:"none",boxSizing:"border-box",position:"sticky",top:0,zIndex:1},xc={width:"100%",padding:0,border:"none",background:"transparent",color:"inherit",font:"inherit",fontSize:"var(--ogrid-cell-font-size, 13px)",cursor:"pointer",outline:"none"},ir={display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"var(--ogrid-cell-font-size, 13px)",color:"inherit"},sr={marginLeft:4,fontSize:"10px",opacity:.5};function Ic(o){let{value:e,column:t,editorType:n,onCommit:l,onCancel:u,renderCheckbox:s}=o,d=we.useRef(null),i=we.useRef(u);i.current=u;let r=t.cellEditorParams?.dateFormat??t.dateFormat??DEFAULT_DATE_FORMAT,p=t.cellEditorParams?.editorType??"text",{localValue:g,setLocalValue:a,handleKeyDown:m,handleBlur:c,commit:f,cancel:C}=Vn({value:e,editorType:n,onCommit:l,onCancel:u,dateFormat:r,dateEditorType:p}),h=t.cellEditorParams?.values??[],R=t.cellEditorParams?.formatValue,S=Hn({values:h,formatValue:R,initialValue:e,onCommit:l,onCancel:u}),y=zn({values:h,formatValue:R,initialValue:e,onCommit:l,onCancel:u}),[w,O]=we.useState(null);we.useLayoutEffect(()=>{if(n!=="select"&&n!=="richSelect")return;let v=d.current;if(!v)return;let x=v.getBoundingClientRect(),b=200,D=window.innerHeight-x.bottom,A=D<b&&x.top>D,G=getComputedStyle(v),$=G.getPropertyValue("--ogrid-cell-font-size").trim()||"13px";O({position:"fixed",...A?{bottom:window.innerHeight-x.top}:{top:x.bottom},left:x.left,width:x.width,maxHeight:b,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",fontSize:$,fontFamily:G.fontFamily??"inherit"});let V=v.closest("[data-ogrid-scroll-container]")??v.closest('[style*="overflow"]'),X=()=>i.current(),L=requestAnimationFrame(()=>{V&&V.addEventListener("scroll",X,{passive:true}),window.addEventListener("scroll",X,{passive:true});});return ()=>{cancelAnimationFrame(L),V&&V.removeEventListener("scroll",X),window.removeEventListener("scroll",X);}},[n]);let T=w??Ia;we.useEffect(()=>{if(n==="richSelect")return;let v=d.current;if(!v)return;let x=v.querySelector("input");x?(x.focus({preventScroll:true}),x.select()):v.focus({preventScroll:true});},[n]);let I=w!=null;if(n==="richSelect"){let v=jsxs("div",{style:T,role:"listbox",children:[jsx("input",{type:"text",value:S.searchText,onChange:x=>S.setSearchText(x.target.value),onKeyDown:S.handleKeyDown,placeholder:"Search...",autoFocus:true,style:wa}),S.filteredValues.map((x,b)=>jsx("div",{role:"option","aria-selected":b===S.highlightedIndex,onClick:()=>S.selectValue(x),style:b===S.highlightedIndex?ar:Yn,children:S.getDisplayText(x)},String(x))),S.filteredValues.length===0&&jsx("div",{style:Pa,children:"No matches"})]});return jsxs("div",{ref:d,style:lr,children:[jsxs("div",{style:ir,children:[jsx("span",{children:S.getDisplayText(e)}),jsx("span",{style:sr,children:"\u25BE"})]}),I?createPortal(v,document.body):v]})}if(n==="checkbox"){let v=e===true;return jsx("div",{style:{...Kt,justifyContent:"center"},children:s(v,x=>f(x),C)})}if(n==="select"){let v=jsx("div",{style:T,ref:y.dropdownRef,role:"listbox",children:h.map((x,b)=>jsx("div",{role:"option","aria-selected":b===y.highlightedIndex,onClick:()=>y.selectValue(x),style:b===y.highlightedIndex?ar:Yn,children:y.getDisplayText(x)},String(x)))});return jsxs("div",{ref:d,style:lr,onKeyDown:y.handleKeyDown,tabIndex:0,children:[jsxs("div",{style:ir,children:[jsx("span",{children:y.getDisplayText(e)}),jsx("span",{style:sr,children:"\u25BE"})]}),I?createPortal(v,document.body):v]})}if(n==="date"){let v=getDateInputPlaceholder(r);return p==="native"?jsx("div",{ref:d,style:Kt,children:jsx("input",{type:"date",value:g,onChange:x=>a(x.target.value),onBlur:c,onKeyDown:m,style:$n,autoFocus:true})}):jsx("div",{ref:d,style:Kt,children:jsx("input",{type:"text",value:g,onChange:x=>a(x.target.value),onBlur:c,onKeyDown:m,placeholder:v,style:$n,autoFocus:true})})}return jsx("div",{ref:d,style:Kt,children:jsx("input",{type:"text",value:g,onChange:v=>a(v.target.value),onBlur:c,onKeyDown:m,style:$n,autoFocus:true})})}function Pc(o){let{x:e,y:t,hasSelection:n,canUndo:l,canRedo:u,onClose:s,onCopy:d,onCut:i,onPaste:r,onSelectAll:p,onUndo:g,onRedo:a,classNames:m}=o,c=we.useRef(null),f=we.useMemo(()=>getContextMenuHandlers({onCopy:d,onCut:i,onPaste:r,onSelectAll:p,onUndo:g,onRedo:a,onClose:s}),[d,i,r,p,g,a,s]),C=we.useCallback(R=>!!(R.disabledWhenNoSelection&&!n||R.id==="undo"&&!l||R.id==="redo"&&!u),[n,l,u]);we.useEffect(()=>{let R=y=>{c.current&&!c.current.contains(y.target)&&s();},S=y=>{y.key==="Escape"&&s();};return document.addEventListener("pointerdown",R,true),document.addEventListener("keydown",S,true),()=>{document.removeEventListener("pointerdown",R,true),document.removeEventListener("keydown",S,true);}},[s]);let h=we.useMemo(()=>{let S=GRID_CONTEXT_MENU_ITEMS.length*44+16,y=window.innerWidth,w=window.innerHeight,O=e+200>y?Math.max(0,y-200-8):e,T=t+S>w?Math.max(0,w-S-8):t;return {left:O,top:T}},[e,t]);return jsx("div",{ref:c,className:m?.contextMenu,role:"menu",style:h,"aria-label":"Grid context menu",children:GRID_CONTEXT_MENU_ITEMS.map(R=>jsxs(we.Fragment,{children:[R.dividerBefore&&jsx("div",{className:m?.contextMenuDivider}),jsxs("button",{type:"button",className:m?.contextMenuItem,onClick:f[R.id],disabled:C(R),children:[jsx("span",{className:m?.contextMenuItemLabel,children:R.label}),R.shortcut&&jsx("span",{className:m?.contextMenuItemShortcut,children:formatShortcut(R.shortcut)})]})]},R.id))})}var Ec={animation:"ogrid-marching-ants 0.5s linear infinite"},Fc={shapeRendering:"crispEdges"},Oc={...Ec,shapeRendering:"crispEdges"};function Mc({containerRef:o,selectionRange:e,copyRange:t,cutRange:n,colOffset:l,items:u,visibleColumns:s,columnSizingOverrides:d,columnOrder:i,isDragging:r}){let[p,g]=useState(null),[a,m]=useState(null),c=useRef(0),f=t??n,C=useCallback(()=>{let w=o.current;if(!w){g(null),m(null);return}g(e?measureRange(w,e,l):null),m(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){g(null),m(null);return}c.current=requestAnimationFrame(C);let w=o.current,O;return w&&(O=new ResizeObserver(C),O.observe(w)),()=>{cancelAnimationFrame(c.current),O?.disconnect();}},[e,f,C,o,u,s,d,i]),!p&&!a)return null;let h=e!=null&&f!=null&&e.startRow===f.startRow&&e.startCol===f.startCol&&e.endRow===f.endRow&&e.endCol===f.endCol,R=w=>({top:Math.round(w.top),left:Math.round(w.left),width:Math.round(w.width),height:Math.round(w.height)}),S=p?R(p):null,y=a?R(a):null;return jsxs(Fragment,{children:[S&&!r&&!h&&!(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:Fc})}),y&&jsx("svg",{style:{position:"absolute",top:y.top,left:y.left,width:y.width,height:y.height,pointerEvents:"none",zIndex:5,overflow:"visible"},"aria-hidden":"true",children:jsx("rect",{x:"1",y:"1",width:Math.max(0,y.width-2),height:Math.max(0,y.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)",strokeWidth:"2",strokeDasharray:"4 4",style:Oc})})]})}var Nc={shapeRendering:"crispEdges"};function Hc(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(),p=d.getBoundingClientRect();return {top:Math.round(r.top-i.top),left:Math.round(r.left-i.left),width:Math.round(p.right-r.left),height:Math.round(p.bottom-r.top),color:FORMULA_REF_COLORS[e.colorIndex%FORMULA_REF_COLORS.length]}}function zc({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 p=Hc(d,r,t);p&&i.push(p);}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:Nc})},i))})}var _c=memo(zc);function jc(o){let{isOpen:e,anchorElement:t,onClose:n,onPinLeft:l,onPinRight:u,onUnpin:s,onSortAsc:d,onSortDesc:i,onClearSort:r,onAutosizeThis:p,onAutosizeAll:g,canPinLeft:a,canPinRight:m,canUnpin:c,currentSort:f,isSortable:C,isResizable:h,classNames:R,getPortalTarget:S}=o,[y,w]=we.useState(null),O=we.useRef(null);we.useEffect(()=>{if(!e||!t){w(null);return}let b=t.getBoundingClientRect();w({top:b.bottom+4,left:b.left});let D=G=>{let $=G.target;O.current&&O.current.contains($)||t&&!t.contains($)&&n();},A=G=>{G.key==="Escape"&&n();};return document.addEventListener("mousedown",D),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",D),document.removeEventListener("keydown",A);}},[e,t,n]);let T=we.useMemo(()=>({canPinLeft:a,canPinRight:m,canUnpin:c,currentSort:f,isSortable:C,isResizable:h}),[a,m,c,f,C,h]),I=we.useMemo(()=>getColumnHeaderMenuItems(T),[T]),v=we.useMemo(()=>({pinLeft:l,pinRight:u,unpin:s,sortAsc:d,sortDesc:i,clearSort:r,autosizeThis:p,autosizeAll:g}),[l,u,s,d,i,r,p,g]);if(!e||!y)return null;let x=t&&S?S(t):document.body;return createPortal(jsx("div",{ref:O,className:R?.content,style:{position:"fixed",top:y.top,left:y.left,zIndex:1e3},children:I.map((b,D)=>jsxs(we.Fragment,{children:[jsx("button",{className:R?.item,disabled:b.disabled,onClick:()=>{v[b.id](),n();},children:b.label}),b.divider&&D<I.length-1&&jsx("div",{className:R?.separator})]},b.id))}),x)}var Ua=we.memo(o=>{let{currentPage:e,pageSize:t,totalCount:n,onPageChange:l,onPageSizeChange:u,pageSizeOptions:s,entityLabelPlural:d,className:i,slots:r,classNames:p={}}=o,{labelPlural:g,vm:a,handlePageSizeChange:m}=Kn({currentPage:e,pageSize:t,totalCount:n,onPageSizeChange:u,pageSizeOptions:s,entityLabelPlural:d});if(!a)return null;let{pageNumbers:c,showStartEllipsis:f,showEndEllipsis:C,totalPages:h,startItem:R,endItem:S}=a,{NavButton:y,PageButton:w,PageSizeSelect:O,OuterContainer:T,InfoText:I,NavButtonsContainer:v,PageSizeContainer:x,PageSizeLabel:b,Ellipsis:D}=r,A=`Showing ${R} to ${S} of ${n.toLocaleString()} ${g}`,G=I?jsx(I,{children:A}):jsx("div",{className:p.paginationInfo,children:A}),$=D?jsx(D,{}):jsx("span",{className:p.ellipsis,"aria-hidden":true,children:"\u2026"}),V=b?jsx(b,{}):jsx("span",{className:p.pageSizeLabel,children:"Rows"}),X=jsxs("div",{className:p.pageNumbers,children:[f&&jsxs(Fragment,{children:[jsx(w,{onClick:()=>l(1),active:false,"aria-label":"Page 1",className:p.pageBtn,children:"1"}),$]}),c.map(N=>jsx(w,{onClick:()=>l(N),active:e===N,"aria-label":`Page ${N}`,"aria-current":e===N?"page":void 0,className:p.pageBtn,children:N},N)),C&&jsxs(Fragment,{children:[$,jsx(w,{onClick:()=>l(h),active:false,"aria-label":`Page ${h}`,className:p.pageBtn,children:h})]})]}),L=jsxs(Fragment,{children:[jsx(y,{variant:"first",onClick:()=>l(1),disabled:e===1,"aria-label":"First page",className:p.navBtn}),jsx(y,{variant:"prev",onClick:()=>l(e-1),disabled:e===1,"aria-label":"Previous page",className:p.navBtn}),X,jsx(y,{variant:"next",onClick:()=>l(e+1),disabled:e>=h,"aria-label":"Next page",className:p.navBtn}),jsx(y,{variant:"last",onClick:()=>l(h),disabled:e>=h,"aria-label":"Last page",className:p.navBtn})]}),U=v?jsx(v,{className:p.paginationControls,children:L}):jsx("div",{className:p.paginationControls,children:L}),K=jsxs(Fragment,{children:[V,jsx(O,{value:t,options:a.pageSizeOptions,onChange:m,"aria-label":"Rows per page",className:p.pageSizeSelect})]}),W=x?jsx(x,{className:p.pageSizeSelector,children:K}):jsx("div",{className:p.pageSizeSelector,children:K}),J=`${p.pagination??""} ${i||""}`.trim(),F="navigation",z="Pagination";return T?jsxs(T,{className:J,role:F,"aria-label":z,children:[G,U,W]}):jsxs("div",{className:J,role:F,"aria-label":z,children:[G,U,W]})});Ua.displayName="PaginationControlsBase";var La=({columns:o,visibleColumns:e,visibleCount:t,totalCount:n,handleSelectAll:l,handleClearAll:u,handleCheckboxChange:s,CheckboxItem:d,classNames:i={},Header:r,OptionsListContainer:p,OptionItemContainer:g,Actions:a})=>{let m=r?jsx(r,{visibleCount:t,totalCount:n}):jsxs("div",{className:i.header,children:["Select Columns (",t," of ",n,")"]}),c=o.map(h=>{let R=jsx(d,{columnId:h.columnId,columnName:h.name,checked:e.has(h.columnId),disabled:h.required===true,onChange:s(h.columnId)});return g?jsx(g,{columnId:h.columnId,children:R},h.columnId):jsx("div",{className:i.optionItem,children:R},h.columnId)}),f=p?jsx(p,{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:[m,f,C]})};La.displayName="ColumnChooserContent";function Yc(o){let{DataGridTable:e,ColumnChooser:t,PaginationControls:n,containerComponent:l,containerProps:u}=o,s=forwardRef(function(i,r){let{dataGridProps:p,pagination:g,columnChooser:a,layout:m}=Sn(i,r);return jsx(or,{containerComponent:l,containerProps:u,className:m.className,sideBar:m.sideBarProps,toolbar:m.toolbar,toolbarBelow:m.toolbarBelow,fullScreen:m.fullScreen,formulaBar:m.formulaBar,sheetTabs:m.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:g.page,pageSize:g.pageSize,totalCount:g.displayTotalCount,onPageChange:g.setPage,onPageSizeChange:g.setPageSize,pageSizeOptions:g.pageSizeOptions,entityLabelPlural:g.entityLabelPlural}),children:jsx(e,{...p})})});return s.displayName="OGrid",we.memo(s)}var Zc={color:"var(--ogrid-error, #d32f2f)",fontSize:"0.75rem",padding:"2px 4px"},mr=class extends we.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:Zc,children:"\u26A0 Error"}):this.props.children}};var Qc={background:"none",border:"none",color:"inherit",textDecoration:"underline",cursor:"pointer",padding:0,font:"inherit"};function ed(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:Qc,children:"clear all filters"})," ","to see all items."]}):"There are no items available at this time.")})}function nd({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 od({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 ld({dropIndicatorX:o,wrapperLeft:e,className:t}){return jsx("div",{className:t,style:{left:o-e}})}var id={padding:"8px 12px",display:"flex",flexDirection:"column",gap:6},Va={display:"flex",alignItems:"center",gap:6,fontSize:12},Na={flex:1},no=({tempDateFrom:o,setTempDateFrom:e,tempDateTo:t,setTempDateTo:n,onApply:l,onClear:u,classNames:s})=>jsxs(Fragment,{children:[jsxs("div",{style:id,children:[jsxs("label",{style:Va,children:["From:",jsx("input",{type:"date",value:o,onChange:d=>e(d.target.value),style:Na})]}),jsxs("label",{style:Va,children:["To:",jsx("input",{type:"date",value:t,onChange:d=>n(d.target.value),style:Na})]})]}),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"})]})]});no.displayName="DateFilterContent";function sd(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 ud(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 dd(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 md(o,e){return {renderMultiSelect:t=>jsx(o.MultiSelectFilterPopover,{...t}),renderText:t=>jsx(o.TextFilterPopover,{...t}),renderPeople:t=>jsx(o.PeopleFilterPopover,{...t}),renderDate:t=>jsx(no,{...t,classNames:e})}}export{jc as BaseColumnHeaderMenu,ld as BaseDropIndicator,nd as BaseEmptyState,Ic as BaseInlineCellEditor,od as BaseLoadingOverlay,Du as CURSOR_CELL_STYLE,mr as CellErrorBoundary,La as ColumnChooserContent,no as DateFilterContent,ed as EmptyState,Uo as FormulaBar,_c as FormulaRefOverlay,Tu as GRID_ROOT_STYLE,Pc as GridContextMenu,Mc as MarchingAntsOverlay,Ou as NOOP,or as OGridLayout,Eu as POPOVER_ANCHOR_STYLE,Fu as PREVENT_DEFAULT,Ua as PaginationControlsBase,Mu as STOP_PROPAGATION,Lo as SheetTabs,qn as SideBar,Rc as StatusBar,Gr as buildInlineEditorProps,Br as buildPopoverEditorProps,md as createBaseFilterRenderers,Yc as createOGrid,$n as editorInputStyle,Kt as editorWrapperStyle,Vr as getCellInteractionProps,sd as getColumnHeaderFilterStateParams,Ll as getColumnHeaderMenuProps,ud as getDateFilterContentProps,dd as renderFilterContent,kr as resolveCellDisplayContent,Ar as resolveCellStyle,Ia as richSelectDropdownStyle,yc as richSelectFooterStyle,Pa as richSelectNoMatchesStyle,ar as richSelectOptionHighlightedStyle,Yn as richSelectOptionStyle,wa as richSelectSearchInputStyle,lr as richSelectWrapperStyle,sr as selectChevronStyle,ir as selectDisplayStyle,xc as selectEditorStyle,bn as useActiveCell,vn as useCellEditing,xn as useCellSelection,In as useClipboard,ea as useColumnChooserState,Ql as useColumnHeaderFilterState,ma as useColumnMeta,_n as useColumnReorder,Nn as useColumnResize,yn as useContextMenu,Un as useDataGridState,da as useDataGridTableOrchestration,Bn as useDateFilterState,Dn as useDebounce,On as useFillHandle,pn as useFilterOptions,Cn as useFormulaBar,gn as useFormulaEngine,Vn as useInlineCellEditorState,wn as useKeyboardNavigation,k as useLatestRef,sa as useListVirtualizer,An as useMultiSelectFilterState,Sn as useOGrid,Kn as usePaginationControls,Gn as usePeopleFilterState,Hn as useRichSelectState,Pn as useRowSelection,zn as useSelectState,Rn as useSideBarState,Mn as useTableLayout,Ln as useTextFilterState,Tn as useUndoRedo,Wn 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,estimateHeaderMinWidth,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,computeAggregations,getDataGridStatusBarConfig,PEOPLE_SEARCH_DEBOUNCE_MS,formatDateForDisplay,DEFAULT_DATE_FORMAT,measureColumnContentWidth,getPinStateForColumn,validateVirtualScrollConfig,computeVisibleColumnRange,buildHeaderRows,formatCellReference,CellDescriptorCache,GRID_BORDER_RADIUS,getStatusBarParts,Z_INDEX,getDateInputPlaceholder,getContextMenuHandlers,GRID_CONTEXT_MENU_ITEMS,formatShortcut,measureRange,injectGlobalStyles,getColumnHeaderMenuItems,calculateDropTarget,reorderColumnArray,computeNextSortState,mergeFilter,getMultiSelectFilterFields,deriveFilterOptionsFromData,processClientSideData,processClientSideDataAsync,resolveResponsiveConfig,applyResponsiveHiding,DEFAULT_MIN_COLUMN_WIDTH,parseValue,parseUserInputDate,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,handleBooleanCellPointerDown,indexToColumnLetter,isInSelectionRange,isRowInRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,partitionColumnsForVirtualization,processClientSideData,rangesEqual,toUserLike,triggerCsvDownload}from'@alaarab/ogrid-core';import*as we 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 k(o){let e=useRef(o);return e.current=o,e}function ti(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 Lr={},co={};function pn(o,e){let t=useRef(e);ti(t.current,e)||(t.current=e);let n=t.current,l=k(o),[u,s]=useState(Lr),[d,i]=useState(co),r=useCallback(async()=>{let p=l.current,g="fetchFilterOptions"in p&&typeof p.fetchFilterOptions=="function"?p.fetchFilterOptions.bind(p):void 0;if(!g){s(Lr),i(co);return}let a={};n.forEach(c=>{a[c]=true;}),i(a);let m={};await Promise.all(n.map(async c=>{try{m[c]=await g(c);}catch{m[c]=[];}})),s(m),i(co);},[n,l]);return useEffect(()=>{r().catch(()=>{});},[r]),{filterOptions:u,loadingOptions:d}}function kr(o,e,t){return resolveCellDisplayContent(o,e,t)}function Ar(o,e,t){return resolveCellStyle(o,e,t)}function Gr(o,e,t,n){return {...buildInlineEditorProps(o,e,t,n),column:e}}function Br(o,e,t,n,l){return {...buildPopoverEditorProps(o,e,t,n,l),column:e}}function Vr(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.setEditingCell(null),t.handleCellMouseDown(n,o.rowIndex,o.globalColIndex),t.handleLongPressStart?.(n);},onPointerUp:()=>t.handleLongPressEnd?.(),onPointerLeave:()=>t.handleLongPressEnd?.(),onPointerCancel:()=>t.handleLongPressEnd?.(),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 Ei={getFormulaValue:()=>{},hasFormula:()=>false,getFormula:()=>{},setFormula:()=>{},onCellChanged:()=>{},getPrecedents:()=>[],getDependents:()=>[],getAuditTrail:()=>null,enabled:false};function gn(o){let{formulas:e,items:t,flatColumns:n,initialFormulas:l,onFormulaRecalc:u,formulaFunctions:s,namedRanges:d,sheets:i}=o,r=k(t),p=k(n),g=k(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[T,I]of Object.entries(i))a.current.registerSheet(T,I);return ()=>{if(!(!a.current||!i))for(let T of Object.keys(i))a.current.unregisterSheet(T);}}},[i]);let m=useCallback(()=>createGridDataAccessor(r.current,p.current),[r,p]),c=useRef(false);useEffect(()=>{if(e&&a.current&&l&&!c.current){c.current=true;let T=m(),I=a.current.loadFormulas(l,T);I.updatedCells.length>0&&g.current?.(I);}},[e,l,m,g]);let f=useCallback((T,I)=>a.current?.getValue(T,I),[]),C=useCallback((T,I)=>a.current?.hasFormula(T,I)??false,[]),h=useCallback((T,I)=>a.current?.getFormula(T,I),[]),R=useCallback((T,I,v)=>{if(!a.current)return;let x=m(),b=a.current.setFormula(T,I,v,x);b.updatedCells.length>0&&g.current?.(b);},[m,g]),S=useCallback((T,I)=>{if(!a.current)return;let v=m(),x=a.current.onCellChanged(T,I,v);x.updatedCells.length>0&&g.current?.(x);},[m,g]),y=useCallback((T,I)=>a.current?.getPrecedents(T,I)??[],[]),w=useCallback((T,I)=>a.current?.getDependents(T,I)??[],[]),O=useCallback((T,I)=>a.current?.getAuditTrail(T,I)??null,[]);return e?{getFormulaValue:f,hasFormula:C,getFormula:h,setFormula:R,onCellChanged:S,getPrecedents:y,getDependents:w,getAuditTrail:O,enabled:true}:Ei}function Cn(o){let{activeCol:e,activeRow:t,activeCellRef:n,getFormula:l,getRawValue:u,setFormula:s,onCellValueChanged:d}=o,[i,r]=useState(false),[p,g]=useState(""),a=useRef(false),m=useRef(null),c=useMemo(()=>deriveFormulaBarText(e,t,l,u),[e,t,l,u]);useEffect(()=>{r(false),a.current=false;},[e,t]);let f=useCallback(()=>{g(c),r(true),a.current=true;},[c]),C=useCallback(O=>{g(O);},[]),h=useCallback(()=>{e==null||t==null||!s||(processFormulaBarCommit(p,e,t,s,d),r(false),a.current=false);},[e,t,p,s,d]),R=useCallback(()=>{r(false),a.current=false,g("");},[]),S=useCallback(O=>{if(!a.current||!p.startsWith("="))return false;let T=m.current?.selectionStart??p.length,I=insertReferenceAtCursor(p,T,O);return g(I.text),setTimeout(()=>{m.current&&(m.current.selectionStart=I.cursorPos,m.current.selectionEnd=I.cursorPos,m.current.focus());},0),true},[p]),y=i?p:c,w=useMemo(()=>extractFormulaReferences(y),[y]);return {cellRef:n,formulaText:i?p:c,isEditing:i,onInputChange:C,onCommit:h,onCancel:R,startEditing:f,referencedCells:w,isFormulaBarEditing:a,insertReference:S,inputRef:m}}function Uo({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:p=>n(p.target.value),onKeyDown:p=>handleFormulaBarKeyDown(p.key,()=>p.preventDefault(),l,u),onClick:()=>{t||s();},onDoubleClick:()=>{t||s();},"aria-label":"Formula input",spellCheck:false,autoComplete:"off"})]})}var Ni={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},Hi={background:"none",border:"none",cursor:"pointer",padding:"4px 10px",fontSize:16,lineHeight:"22px",color:"var(--ogrid-fg-secondary, #666)",flexShrink:0},rl={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"},zi={...rl,fontWeight:600,borderBottomColor:"var(--ogrid-primary, #217346)",background:"var(--ogrid-bg, #fff)"};function Lo({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:Ni,role:"tablist","aria-label":"Sheet tabs",children:[n&&jsx("button",{type:"button",style:Hi,onClick:n,title:"Add sheet","aria-label":"Add sheet",children:"+"}),o.map(u=>{let s=u.id===e,d=s?zi:rl,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 il(o){let{controlledPage:e,controlledPageSize:t,defaultPageSize:n,onPageChange:l,onPageSizeChange:u}=o,[s,d]=useState(1),[i,r]=useState(n),p=e??s,g=t??i,a=useCallback(c=>{e===void 0&&d(c),l?.(c);},[e,l]),m=useCallback(c=>{t===void 0&&r(c),u?.(c),a(1);},[t,u,a]);return {page:p,pageSize:g,setPage:a,setPageSize:m}}function cl(o){let{controlledSort:e,defaultSortField:t,defaultSortDirection:n,onSortChange:l,setPage:u}=o,[s,d]=useState({field:t,direction:n}),[i,r]=useState(0),p=e??s,g=useCallback(m=>{e===void 0&&d(m),l?.(m),u(1),r(c=>c+1);},[e,l,u]),a=useCallback((m,c)=>{g(computeNextSortState(p,m,c));},[p,g]);return {sort:p,setSort:g,handleSort:a,defaultSortField:t,defaultSortDirection:n,sortVersion:i}}function dl(o,e){let t=useRef(o);return e(o,t.current)||(t.current=o),t.current}function ji(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 Xi={},qi={fetchFilterOptions:void 0};function pl(o){let{controlledFilters:e,onFiltersChange:t,setPage:n,columns:l,displayData:u,dataSource:s}=o,[d,i]=useState({}),r=e??d,p=useCallback(y=>{e===void 0&&i(y),t?.(y),n(1);},[e,t,n]),g=useCallback((y,w)=>{p(mergeFilter(r,y,w));},[r,p]),a=dl(r,(y,w)=>ji(y,w)),m=useMemo(()=>Object.values(r).some(y=>y!==void 0),[r]),c=useMemo(()=>getMultiSelectFilterFields(l),[l]),f=s??qi,{filterOptions:C,loadingOptions:h}=pn(f,c),R=s?.fetchFilterOptions!=null,S=useMemo(()=>R?C:deriveFilterOptionsFromData(u,l),[R,u,l,C]);return {filters:r,setFilters:p,handleFilterChange:g,stableFilters:a,hasActiveFilters:m,clientFilterOptions:S,loadingFilterOptions:s?.fetchFilterOptions?h:Xi}}function fl(o){let{isServerSide:e,dataSource:t,displayData:n,columns:l,stableFilters:u,sort:s,sortVersion:d,page:i,pageSize:r,onError:p,onFirstDataRendered:g,workerSort:a}=o,m=!e,c=a===true||a==="auto"&&n.length>5e3,f=useRef(null),C=useRef(-1),h=useRef(null),R=useRef(null),S=useRef(-1);(d!==C.current||u!==h.current||l!==R.current||n.length!==S.current)&&(C.current=d,h.current=u,R.current=l,S.current=n.length,f.current=null);let w=useMemo(()=>{if(!m||c)return null;let q;if(f.current===null){let j=processClientSideData(n,l,u,s.field,s.direction),te=new Map;for(let oe=0;oe<n.length;oe++)te.set(n[oe],oe);let ne=j.map(oe=>{let ie=te.get(oe);return ie!==void 0?ie:-1}).filter(oe=>oe!==-1);f.current=ne,q=j;}else q=f.current.map(j=>n[j]).filter(j=>j!==void 0);let Y=q.length,B=(i-1)*r;return {items:q.slice(B,B+r),totalCount:Y}},[m,c,n,l,u,d,i,r]),[O,T]=useState(null),I=useRef(0),v=useRef(null),x=useRef(-1),b=useRef(null),D=useRef(null),A=useRef(-1);useEffect(()=>{if(!m||!c){T(null);return}(d!==x.current||u!==b.current||l!==D.current||n.length!==A.current)&&(x.current=d,b.current=u,D.current=l,A.current=n.length,v.current=null);let Y=++I.current;if(v.current===null)processClientSideDataAsync(n,l,u,s.field,s.direction).then(B=>{if(Y!==I.current)return;let _=new Map;for(let ie=0;ie<n.length;ie++)_.set(n[ie],ie);let j=B.map(ie=>{let Fe=_.get(ie);return Fe!==void 0?Fe:-1}).filter(ie=>ie!==-1);v.current=j;let te=B.length,ne=(i-1)*r,oe=B.slice(ne,ne+r);T({items:oe,totalCount:te});});else {let B=v.current.map(ne=>n[ne]).filter(ne=>ne!==void 0),_=B.length,j=(i-1)*r,te=B.slice(j,j+r);T({items:te,totalCount:_});}},[m,c,n,l,u,d,i,r]);let[G,$]=useState([]),[V,X]=useState(0),[L,U]=useState(true),K=useRef(0),[W,J]=useState(0),F=k(t),z=k(p);useEffect(()=>{if(!e||!F.current){e||U(false);return}let q=F.current,Y=++K.current;U(true),q.fetchPage({page:i,pageSize:r,sort:{field:s.field,direction:s.direction},filters:u}).then(B=>{Y===K.current&&($(B.items),X(B.totalCount));}).catch(B=>{Y===K.current&&(z.current?.(B),$([]),X(0));}).finally(()=>{Y===K.current&&U(false);});},[e,i,r,s.field,s.direction,u,W,F,z]);let N=w??O,P=m&&N?N.items:G,H=m&&N?N.totalCount:V,E=k(g),Z=useRef(false);return useEffect(()=>{!Z.current&&P.length>0&&(Z.current=true,E.current?.());},[P.length,E]),{displayItems:P,displayTotalCount:H,serverLoading:L,refreshData:()=>J(q=>q+1)}}var Cl=["columns","filters"];function Rn(o){let{config:e}=o,t=e!=null&&e!==false,n=useMemo(()=>{if(!t||e===true)return {panels:Cl,position:"right",defaultPanel:null};let i=e;return {panels:i.panels??Cl,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 os=25,rs={},ls={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 Sn(o,e){let{columns:t,getRowId:n,data:l,dataSource:u,page:s,pageSize:d,sort:i,filters:r,visibleColumns:p,isLoading:g,onPageChange:a,onPageSizeChange:m,onSortChange:c,onFiltersChange:f,onVisibleColumnsChange:C,columnOrder:h,onColumnOrderChange:R,onColumnResized:S,onColumnPinned:y,defaultPageSize:w=os,defaultSortBy:O,defaultSortDirection:T="asc",toolbar:I,toolbarBelow:v,emptyState:x,entityLabelPlural:b="items",className:D,layoutMode:A="fill",suppressHorizontalScroll:G,editable:$,cellSelection:V,onCellValueChanged:X,onUndo:L,onRedo:U,canUndo:K,canRedo:W,rowSelection:J="none",selectedRows:F,onSelectionChange:z,showRowNumbers:N,cellReferences:P,statusBar:H,pageSizeOptions:E,sideBar:Z,stickyHeader:q,fullScreen:Y,onFirstDataRendered:B,onError:_,columnChooser:j,columnReorder:te,responsiveColumns:ne,virtualScroll:oe,rowHeight:ie,density:Fe="normal",workerSort:qe,formulas:be,initialFormulas:et,onFormulaRecalc:$e,formulaFunctions:ft,namedRanges:Ye,sheets:gt,sheetDefs:Ge,activeSheet:Ze,onSheetChange:Je,onSheetAdd:tt,"aria-label":Te,"aria-labelledby":Be}=o,nt=k(n),Oe=useCallback(M=>nt.current(M),[nt]),ot=k(R),Qe=R!=null,ge=useMemo(()=>Qe?M=>ot.current?.(M):void 0,[Qe,ot]),Xt=k(X),qt=X!=null,$t=useMemo(()=>qt?M=>Xt.current?.(M):void 0,[qt,Xt]),Yt=k(L),Zt=L!=null,Ct=useMemo(()=>Zt?()=>Yt.current?.():void 0,[Zt,Yt]),Et=k(U),Jt=U!=null,Ft=useMemo(()=>Jt?()=>Et.current?.():void 0,[Jt,Et]),Ve=j===false?"none":j==="sidebar"?"sidebar":"toolbar",re=useMemo(()=>flattenColumns(t),[t]),Ne=u!=null,rt=useRef(false);useEffect(()=>{validateColumns(re);},[re]);let Qt=O??re[0]?.columnId??"",[en,ro]=useState([]),[lo,tn]=useState(false),ht=l??en,ao=g??lo,me=il({controlledPage:s,controlledPageSize:d,defaultPageSize:w,onPageChange:a,onPageSizeChange:m}),se=cl({controlledSort:i,defaultSortField:Qt,defaultSortDirection:T,onSortChange:c,setPage:me.setPage}),Q=pl({controlledFilters:r,onFiltersChange:f,setPage:me.setPage,columns:re,displayData:ht,dataSource:u}),Ce=fl({isServerSide:Ne,dataSource:u,displayData:ht,columns:re,stableFilters:Q.stableFilters,sort:se.sort,sortVersion:se.sortVersion,page:me.page,pageSize:me.pageSize,onError:_,onFirstDataRendered:B,workerSort:qe});useEffect(()=>{let M=Ce.displayItems;!rt.current&&M.length>0&&(rt.current=true,validateRowIds(M,Oe));},[Ce.displayItems,Oe]);let[Ot,Rt]=useState(()=>{let M=re.filter(ee=>ee.defaultVisible!==false).map(ee=>ee.columnId);return new Set(M.length>0?M:re.map(ee=>ee.columnId))}),nn=useRef(re.length);useEffect(()=>{let M=nn.current;if(nn.current=re.length,p===void 0&&M===0&&re.length>0&&Ot.size===0){let ee=re.filter(ue=>ue.defaultVisible!==false).map(ue=>ue.columnId);Rt(new Set(ee.length>0?ee:re.map(ue=>ue.columnId)));}},[re,p,Ot.size]);let De=p??Ot,Me=useCallback(M=>{p===void 0&&Rt(M),C?.(M);},[p,C]),lt=useCallback((M,ee)=>{let ue=new Set(De);ee?ue.add(M):ue.delete(M),Me(ue);},[De,Me]),[on,He]=useState(new Set),at=F??on,rn=useCallback(M=>{F===void 0&&He(new Set(M.selectedRowIds)),z?.(M);},[F,z]),[Mt,ln]=useState({}),[Ut,an]=useState(()=>{let M={};for(let ee of flattenColumns(t))ee.pinned&&(M[ee.columnId]=ee.pinned);return M}),sn=useCallback((M,ee)=>{ln(ue=>({...ue,[M]:ee})),S?.(M,ee);},[S]),un=useCallback((M,ee)=>{an(ue=>{if(ee===null){let{[M]:uo,...Ya}=ue;return Ya}return {...ue,[M]:ee}}),y?.(M,ee);},[y]),cn=k(De),St=k(se.sort),it=k(h),Lt=k(Mt),bt=k(Ut),vt=k(Q.filters),dn=k(at),Se=k(Ce.displayItems),ze=k(Oe),st=k(re);useImperativeHandle(e,()=>({setRowData:M=>{Ne||ro(M);},setLoading:tn,getColumnState:()=>({visibleColumns:Array.from(cn.current),sort:St.current,columnOrder:it.current??void 0,columnWidths:Object.keys(Lt.current).length>0?Lt.current:void 0,filters:Object.keys(vt.current).length>0?vt.current:void 0,pinnedColumns:Object.keys(bt.current).length>0?bt.current:void 0}),applyColumnState:M=>{M.visibleColumns&&Me(new Set(M.visibleColumns)),M.sort&&se.setSort(M.sort),M.columnOrder&&ge&&ge(M.columnOrder),M.columnWidths&&ln(M.columnWidths),M.filters&&Q.setFilters(M.filters),M.pinnedColumns&&an(M.pinnedColumns);},setFilterModel:Q.setFilters,getSelectedRows:()=>Array.from(dn.current),setSelectedRows:M=>{F===void 0&&He(new Set(M));},selectAll:()=>{let M=Se.current,ee=new Set(M.map(ue=>ze.current(ue)));F===void 0&&He(ee),z?.({selectedRowIds:Array.from(ee),selectedItems:M});},deselectAll:()=>{F===void 0&&He(new Set),z?.({selectedRowIds:[],selectedItems:[]});},clearFilters:()=>Q.setFilters({}),clearSort:()=>se.setSort({field:se.defaultSortField,direction:se.defaultSortDirection}),resetGridState:M=>{Q.setFilters({}),se.setSort({field:se.defaultSortField,direction:se.defaultSortDirection}),M?.keepSelection||(F===void 0&&He(new Set),z?.({selectedRowIds:[],selectedItems:[]}));},getDisplayedRows:()=>Se.current,refreshData:()=>{Ne&&Ce.refreshData();},getColumnOrder:()=>it.current??st.current.map(M=>M.columnId),setColumnOrder:M=>{ge?.(M);},scrollToRow:()=>{}}),[Ne,Me,se,Q,ge,F,z,Ce,it,Lt,st,Se,dn,vt,ze,bt,St,cn]);let Cr=useMemo(()=>{if(!H)return;if(typeof H=="object")return H;let M=Ne?Ce.displayTotalCount:l?.length??0,ee=Ce.displayTotalCount;return {totalCount:M,filteredCount:Q.hasActiveFilters?ee:void 0,selectedCount:at.size,suppressRowCount:true}},[H,Ne,l,Ce.displayTotalCount,Q.hasActiveFilters,at.size]),Ue=Rn({config:Z}),mn=useMemo(()=>re.map(M=>({columnId:M.columnId,name:M.name,required:M.required===true})),[re]),hr=useMemo(()=>re.filter(M=>M.filterable&&M.filterable.type).map(M=>({columnId:M.columnId,name:M.name,filterField:M.filterable?.filterField??M.columnId,filterType:M.filterable?.type})),[re]),Rr=useMemo(()=>Ue.isEnabled?{activePanel:Ue.activePanel,onPanelChange:Ue.setActivePanel,panels:Ue.panels,position:Ue.position,columns:mn,visibleColumns:De,onVisibilityChange:lt,onSetVisibleColumns:Me,filterableColumns:hr,filters:Q.filters,onFilterChange:Q.handleFilterChange,filterOptions:Q.clientFilterOptions}:null,[Ue.isEnabled,Ue.activePanel,Ue.setActivePanel,Ue.panels,Ue.position,mn,De,lt,Me,hr,Q.filters,Q.handleFilterChange,Q.clientFilterOptions]),[Sr,Ha]=useState(0),za=useCallback(M=>{Ha(ee=>ee+1),$e?.(M);},[$e]),le=gn({formulas:be,items:Ce.displayItems,flatColumns:re,initialFormulas:et,onFormulaRecalc:za,formulaFunctions:ft,namedRanges:Ye,sheets:gt}),br=useCallback(()=>Q.setFilters({}),[Q]),vr=Ne&&Ce.serverLoading||ao,yr=N||P||be,xr=!!(P||be),yt=!!P&&!be,Ir=!!(P||be),[io,_a]=useState(null),[Pr,so]=useState(null),wr=useCallback(M=>{if(_a(M),M){let ee=M.match(/^([A-Z]+)(\d+)$/);so(ee?{col:columnLetterToIndex(ee[1]),row:parseInt(ee[2],10)-1}:null);}else so(null);},[]),Wa=useCallback((M,ee)=>{let ue=Se.current,uo=st.current;if(!(ee<0||ee>=ue.length||M<0||M>=uo.length))return getCellValue(ue[ee],uo[M])},[Se,st]),ae=Cn({activeCol:Pr?.col??null,activeRow:Pr?.row??null,activeCellRef:io,getFormula:le.enabled?le.getFormula:void 0,getRawValue:Wa,setFormula:le.enabled?le.setFormula:void 0}),Ka=useMemo(()=>({items:Ce.displayItems,columns:t,getRowId:Oe,sortBy:se.sort.field,sortDirection:se.sort.direction,onColumnSort:se.handleSort,visibleColumns:De,columnOrder:h,onColumnOrderChange:ge,onColumnResized:sn,onColumnPinned:un,pinnedColumns:Ut,initialColumnWidths:Mt,editable:$,cellSelection:V,onCellValueChanged:$t,onUndo:Ct,onRedo:Ft,canUndo:K,canRedo:W,rowSelection:J,selectedRows:at,onSelectionChange:rn,showRowNumbers:yr,showColumnLetters:xr,showNameBox:yt,onActiveCellChange:Ir?wr:void 0,currentPage:me.page,pageSize:me.pageSize,statusBar:Cr,isLoading:vr,filters:Q.filters,onFilterChange:Q.handleFilterChange,filterOptions:Q.clientFilterOptions,loadingFilterOptions:u?.fetchFilterOptions?Q.loadingFilterOptions:rs,peopleSearch:u?.searchPeople,getUserByEmail:u?.getUserByEmail,layoutMode:A,suppressHorizontalScroll:G,stickyHeader:q??true,columnReorder:te,responsiveColumns:ne,virtualScroll:oe,rowHeight:ie,density:Fe,"aria-label":Te,"aria-labelledby":Be,emptyState:{hasActiveFilters:Q.hasActiveFilters,onClearAll:br,message:x?.message,render:x?.render},formulas:be,getFormulaValue:le.enabled?le.getFormulaValue:void 0,hasFormula:le.enabled?le.hasFormula:void 0,getFormula:le.enabled?le.getFormula:void 0,setFormula:le.enabled?le.setFormula:void 0,onFormulaCellChanged:le.enabled?le.onCellChanged:void 0,getPrecedents:le.enabled?le.getPrecedents:void 0,getDependents:le.enabled?le.getDependents:void 0,getAuditTrail:le.enabled?le.getAuditTrail:void 0,formulaVersion:Sr,formulaReferences:ae.referencedCells.length>0?ae.referencedCells:void 0,onFormulaInsertReference:ae.insertReference}),[Ce.displayItems,t,Oe,se.sort.field,se.sort.direction,se.handleSort,De,h,ge,sn,un,Ut,Mt,$,V,$t,Ct,Ft,K,W,J,at,rn,yr,xr,yt,Ir,wr,me.page,me.pageSize,Cr,vr,Q.filters,Q.handleFilterChange,Q.clientFilterOptions,u,Q.loadingFilterOptions,A,G,q,te,ne,oe,ie,Fe,Te,Be,Q.hasActiveFilters,br,x,be,le,Sr,ae.referencedCells,ae.insertReference]),ja=useMemo(()=>({page:me.page,pageSize:me.pageSize,displayTotalCount:Ce.displayTotalCount,setPage:me.setPage,setPageSize:me.setPageSize,pageSizeOptions:E,entityLabelPlural:b}),[me.page,me.pageSize,Ce.displayTotalCount,me.setPage,me.setPageSize,E,b]),Xa=useMemo(()=>({columns:mn,visibleColumns:De,onVisibilityChange:lt,onSetVisibleColumns:Me,placement:Ve}),[mn,De,lt,Me,Ve]),Tr=useMemo(()=>yt?we.createElement("div",{style:ls,"aria-label":"Active cell reference"},io??"\u2014"):null,[yt,io]),Dr=useMemo(()=>yt?we.createElement(we.Fragment,null,Tr,I):I,[yt,Tr,I]),Er=useMemo(()=>{if(be)return we.createElement(Uo,{cellRef:ae.cellRef,formulaText:ae.formulaText,isEditing:ae.isEditing,onInputChange:ae.onInputChange,onCommit:ae.onCommit,onCancel:ae.onCancel,startEditing:ae.startEditing,inputRef:ae.inputRef})},[be,ae.cellRef,ae.formulaText,ae.isEditing,ae.onInputChange,ae.onCommit,ae.onCancel,ae.startEditing,ae.inputRef]),Fr=useMemo(()=>{if(!(!Ge||Ge.length===0||!Ze||!Je))return we.createElement(Lo,{sheets:Ge,activeSheet:Ze,onSheetChange:Je,onSheetAdd:tt})},[Ge,Ze,Je,tt]),qa=useMemo(()=>({toolbar:Dr,toolbarBelow:v,className:D,emptyState:x,sideBarProps:Rr,fullScreen:Y,formulaBar:Er,sheetTabs:Fr}),[Dr,v,D,x,Rr,Y,Er,Fr]),$a=useMemo(()=>({hasActiveFilters:Q.hasActiveFilters,setFilters:Q.setFilters}),[Q.hasActiveFilters,Q.setFilters]);return {dataGridProps:Ka,pagination:ja,columnChooser:Xa,layout:qa,filters:$a}}function bn(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}"]`,p=o.current.querySelector(r);p&&document.activeElement!==p&&typeof p.focus=="function"&&p.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,p=`[data-row-index="${i}"][data-col-index="${r}"]`,g=d.querySelector(p);if(g){let a=d.querySelector("thead"),m=a?a.getBoundingClientRect().height:0,c=d.getBoundingClientRect(),f=g.getBoundingClientRect(),C=c.top+m;f.top<C?d.scrollTop-=C-f.top:f.bottom>c.bottom&&(d.scrollTop+=f.bottom-c.bottom),d.scrollWidth>d.clientWidth&&(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 vn(){let[o,e]=useState(null),[t,n]=useState(void 0);return {editingCell:o,setEditingCell:e,pendingEditorValue:t,setPendingEditorValue:n}}var ds=500;function yn(){let[o,e]=useState(null),t=useRef(null),n=useRef(null),l=useCallback(r=>{r.preventDefault?.(),e({x:r.clientX,y:r.clientY});},[]),u=useCallback(()=>{e(null);},[]),s=useCallback(()=>{t.current&&(clearTimeout(t.current),t.current=null),n.current=null;},[]),d=useCallback(r=>{if(r.pointerType!=="touch")return;s();let p={x:r.clientX,y:r.clientY};n.current=p,t.current=setTimeout(()=>{let g=n.current;g&&e(g),t.current=null,n.current=null;},ds);},[s]),i=useCallback(()=>{s();},[s]);return useEffect(()=>()=>{t.current&&clearTimeout(t.current);},[]),{contextMenuPosition:o,setContextMenuPosition:e,handleCellContextMenu:l,closeContextMenu:u,handleLongPressStart:d,handleLongPressEnd:i}}var Vo="data-drag-range",Nt="data-drag-anchor",he=40,ps=16;function xn(o){let{colOffset:e,rowCount:t,visibleColCount:n,setActiveCell:l,wrapperRef:u}=o,s=k(e),[d,i]=useState(null),r=useRef(false),[p,g]=useState(false),a=useRef(false),m=useRef(null),c=useRef(0),f=useRef(null),C=useRef(null),h=useRef(d);h.current=d;let R=useCallback(T=>{rangesEqual(h.current,T)||i(T);},[]),S=useCallback((T,I,v)=>{if(T.button!==0)return;let x=s.current;if(v<x)return;T.preventDefault();let b=v-x,D=h.current;if(T.shiftKey&&D!=null)R(normalizeSelectionRange({startRow:D.startRow,startCol:D.startCol,endRow:I,endCol:b})),l({rowIndex:I,columnIndex:v});else {m.current={row:I,col:b},a.current=false;let A={startRow:I,startCol:b,endRow:I,endCol:b};R(A),f.current=A,l({rowIndex:I,columnIndex:v}),r.current=true,O.current?.(A);}},[l,s,R]),y=useCallback(()=>{t===0||n===0||(R({startRow:0,startCol:0,endRow:t-1,endCol:n-1}),l({rowIndex:0,columnIndex:s.current}));},[t,n,l,s,R]),w=useRef(null),O=useRef(null);return useEffect(()=>{let T=new Set,I=null,v=null,x=null,b=(F,z,N,P,H,E,Z,q)=>{F.hasAttribute(Vo)||F.setAttribute(Vo,""),q&&z===q.row&&N===q.col?F.hasAttribute(Nt)||F.setAttribute(Nt,""):F.hasAttribute(Nt)&&F.removeAttribute(Nt),T.add(F);},D=F=>{F.removeAttribute(Vo),F.removeAttribute(Nt);},A=(F,z,N,P,H)=>{let E=I?.get(`${F},${N+H}`),Z=I?.get(`${z},${P+H}`);if(!E||!Z)return;let q=E.closest("td"),Y=Z.closest("td");if(!q||!Y||!x&&(x=E.closest("table")?.parentElement,!x))return;v||(v=document.createElement("div"),v.style.position="absolute",v.style.border="2px solid var(--ogrid-selection, #217346)",v.style.pointerEvents="none",v.style.zIndex="4",v.style.boxSizing="border-box",x.appendChild(v));let B=x.getBoundingClientRect(),_=q.getBoundingClientRect(),j=Y.getBoundingClientRect();v.style.top=`${Math.round(_.top-B.top)}px`,v.style.left=`${Math.round(_.left-B.left)}px`,v.style.width=`${Math.round(j.right-_.left)}px`,v.style.height=`${Math.round(j.bottom-_.top)}px`,v.style.display="block";},G=()=>{v&&(v.style.display="none");},$=()=>{v?.remove(),v=null,x=null;},V=F=>{if(!u.current||!r.current)return;let N=Math.min(F.startRow,F.endRow),P=Math.max(F.startRow,F.endRow),H=Math.min(F.startCol,F.endCol),E=Math.max(F.startCol,F.endCol),Z=m.current,q=s.current;for(let B of T){let _=parseInt(B.getAttribute("data-row-index")??"",10),j=parseInt(B.getAttribute("data-col-index")??"",10)-q;_>=N&&_<=P&&j>=H&&j<=E||(D(B),T.delete(B));}I||(I=buildCellIndex(u.current));let Y=false;for(let B=N;B<=P;B++)for(let _=H;_<=E;_++){let j=`${B},${_+q}`,te=I?.get(j);te&&!te.isConnected&&!Y&&(Y=true,I=buildCellIndex(u.current),te=I?.get(j)),te&&te.isConnected&&b(te,B,_,N,P,H,E,Z);}A(N,P,H,E,q);};O.current=V;let X=()=>{for(let F of T)D(F);T.clear(),I=null,G();},L=(F,z)=>{if(!m.current)return null;let P=document.elementFromPoint(F,z)?.closest?.("[data-row-index][data-col-index]");if(!P)return null;let H=parseInt(P.getAttribute("data-row-index")??"",10),E=parseInt(P.getAttribute("data-col-index")??"",10),Z=s.current;if(Number.isNaN(H)||Number.isNaN(E)||E<Z)return null;let q=E-Z,Y=m.current;return normalizeSelectionRange({startRow:Y.row,startCol:Y.col,endRow:H,endCol:q})},U=()=>{let F=u.current,z=w.current;if(!F||!z||!r.current){K();return}let N=F.getBoundingClientRect(),P=0,H=0;if(z.cy<N.top+he?H=-computeAutoScrollSpeed(N.top+he-z.cy):z.cy>N.bottom-he&&(H=computeAutoScrollSpeed(z.cy-(N.bottom-he))),z.cx<N.left+he?P=-computeAutoScrollSpeed(N.left+he-z.cx):z.cx>N.right-he&&(P=computeAutoScrollSpeed(z.cx-(N.right-he))),P===0&&H===0){K();return}C.current||(C.current=setInterval(()=>{let E=u.current,Z=w.current;if(!E||!Z||!r.current){K();return}let q=E.getBoundingClientRect(),Y=0,B=0;if(Z.cy<q.top+he?B=-computeAutoScrollSpeed(q.top+he-Z.cy):Z.cy>q.bottom-he&&(B=computeAutoScrollSpeed(Z.cy-(q.bottom-he))),Z.cx<q.left+he?Y=-computeAutoScrollSpeed(q.left+he-Z.cx):Z.cx>q.right-he&&(Y=computeAutoScrollSpeed(Z.cx-(q.right-he))),Y===0&&B===0){K();return}E.scrollTop+=B,E.scrollLeft+=Y;let _=L(Z.cx,Z.cy);_&&(f.current=_,V(_));},ps));},K=()=>{C.current&&(clearInterval(C.current),C.current=null);},W=F=>{!r.current||!m.current||(a.current||(a.current=true,g(true),I=buildCellIndex(u.current)),w.current={cx:F.clientX,cy:F.clientY},U(),c.current&&cancelAnimationFrame(c.current),c.current=requestAnimationFrame(()=>{c.current=0;let z=w.current;if(!z)return;let N=L(z.cx,z.cy);if(!N)return;let P=f.current;P&&P.startRow===N.startRow&&P.startCol===N.startCol&&P.endRow===N.endRow&&P.endCol===N.endCol||(f.current=N,V(N));}));},J=()=>{if(!r.current)return;K(),c.current&&(cancelAnimationFrame(c.current),c.current=0),r.current=false;let F=a.current;if(F){let z=w.current;if(z){let P=L(z.cx,z.cy);P&&(f.current=P);}let N=f.current;if(N){R(N);let P=m.current;P&&l({rowIndex:P.row,columnIndex:P.col+s.current});}}f.current=null,w.current=null,m.current=null,F&&g(false),requestAnimationFrame(()=>{X();});};return window.addEventListener("pointermove",W,true),window.addEventListener("pointerup",J,true),()=>{window.removeEventListener("pointermove",W,true),window.removeEventListener("pointerup",J,true),c.current&&cancelAnimationFrame(c.current),K(),$();}},[l,s,R,u]),{selectionRange:d,setSelectionRange:R,handleCellMouseDown:S,handleSelectAllCells:y,isDragging:p}}function In(o){let{colOffset:e,beginBatch:t,endBatch:n}=o,l=k(o.items),u=k(o.visibleCols),s=k(o.selectionRange),d=k(o.activeCell),i=k(o.editable),r=k(o.onCellValueChanged),p=k(o.formulas),g=k(o.flatColumns),a=k(o.getFormula),m=k(o.hasFormula),c=k(o.setFormula),f=useRef(null),[C,h]=useState(null),[R,S]=useState(null),y=useRef(null),w=useRef(true);useEffect(()=>()=>{w.current=false;},[]);let O=useCallback(()=>{let b=s.current,D=d.current;return b??(D!=null?{startRow:D.rowIndex,startCol:D.columnIndex-e,endRow:D.rowIndex,endCol:D.columnIndex-e}:null)},[e,s,d]),T=useCallback(()=>{let b=O();if(b==null)return;let D=normalizeSelectionRange(b),A=p.current&&g.current?{colOffset:e,flatColumns:g.current,getFormula:a.current,hasFormula:m.current}:void 0,G=formatSelectionAsTsv(l.current,u.current,D,A);y.current=G,S(D),navigator.clipboard.writeText(G).catch(()=>{});},[O,l,u,p,g,a,m,e]),I=useCallback(()=>{if(i.current===false)return;let b=O();if(b==null||r.current==null)return;let D=normalizeSelectionRange(b);f.current=D,h(D),S(null),T(),S(null);},[O,T,i,r]),v=useCallback(async()=>{if(i.current===false)return;let b=r.current;if(b==null)return;let D;try{D=await navigator.clipboard.readText();}catch{D="";}if(!w.current||(!D.trim()&&y.current!=null&&(D=y.current),!D.trim()))return;let A=O(),G=A?A.startRow:0,$=A?A.startCol:0,V=l.current,X=u.current,L=parseTsvClipboard(D),U=p.current&&g.current?{colOffset:e,flatColumns:g.current,setFormula:c.current}:void 0;t?.();let K=applyPastedValues(L,G,$,V,X,U);for(let W of K)b(W);if(f.current){let W=applyCutClear(f.current,V,X);for(let J of W)b(J);f.current=null,h(null);}n?.(),S(null);},[O,l,u,i,r,t,n,p,g,c,e]),x=useCallback(()=>{S(null),h(null),f.current=null;},[]);return {handleCopy:T,handleCut:I,handlePaste:v,cutRange:C,copyRange:R,clearClipboardRanges:x}}function Pn(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]),p=useCallback(h=>{l===void 0&&d(h),u?.({selectedRowIds:Array.from(h),selectedItems:e.filter(R=>h.has(t(R)))});},[l,u,e,t]),g=k(r),a=k(e),m=useCallback((h,R,S,y)=>{if(n==="single"){p(R?new Set([h]):new Set),i.current=S;return}let w=a.current,O;y&&i.current>=0&&i.current!==S?O=applyRangeRowSelection(i.current,S,R,w,t,g.current):(O=new Set(g.current),R?O.add(h):O.delete(h)),i.current=S,p(O);},[n,t,p,a,g]),c=useCallback(h=>{p(h?new Set(e.map(R=>t(R))):new Set);},[e,t,p]),{allSelected:f,someSelected:C}=useMemo(()=>computeRowSelectionState(r,e,t),[e,r,t]);return {selectedRowIds:r,updateSelection:p,handleRowCheckboxChange:m,handleSelectAll:c,allSelected:f,someSelected:C}}function wn(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:p,hasCheckboxCol:g,visibleColumnCount:a,getRowId:m}=l,{activeCell:c,selectionRange:f,editingCell:C,selectedRowIds:h}=u,{setActiveCell:R,setSelectionRange:S,setEditingCell:y,handleRowCheckboxChange:w,handleCopy:O,handleCut:T,handlePaste:I,setContextMenu:v,onUndo:x,onRedo:b,clearClipboardRanges:D}=s,{editable:A,onCellValueChanged:G,rowSelection:$,wrapperRef:V,onKeyDown:X,fillDown:L}=d;if(X&&(X(n),n.defaultPrevented))return;let U=i.length-1,K=a-1+p;if(i.length===0)return;if(c===null){["ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Tab","Enter","Home","End","PageDown","PageUp"].includes(n.key)&&(R({rowIndex:0,columnIndex:p}),n.preventDefault());return}let{rowIndex:W,columnIndex:J}=c,F=J-p,z=n.shiftKey,N=(P,H)=>{if(P<0||P>=i.length||H<0||H>=r.length)return true;let E=getCellValue(i[P],r[H]);return E==null||E===""};switch(n.key){case "c":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),O();}break;case "x":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),T();}break;case "v":if(n.ctrlKey||n.metaKey){if(C!=null)break;n.preventDefault(),I();}break;case "ArrowDown":case "ArrowUp":case "ArrowRight":case "ArrowLeft":{if(C!=null)break;n.preventDefault();let{newRowIndex:P,newColumnIndex:H,newRange:E}=computeArrowNavigation({direction:n.key,rowIndex:W,columnIndex:J,dataColIndex:F,colOffset:p,maxRowIndex:U,maxColIndex:K,visibleColCount:r.length,isCtrl:n.ctrlKey||n.metaKey,isShift:z,selectionRange:f,isEmptyAt:N});S(E),R({rowIndex:P,columnIndex:H});break}case "Tab":{n.preventDefault();let{rowIndex:P,columnIndex:H}=computeTabNavigation(W,J,U,K,p,n.shiftKey),E=H-p;S({startRow:P,startCol:E,endRow:P,endCol:E}),R({rowIndex:P,columnIndex:H});break}case "Home":{n.preventDefault();let P=n.ctrlKey?0:W;S({startRow:P,startCol:0,endRow:P,endCol:0}),R({rowIndex:P,columnIndex:p});break}case "End":{n.preventDefault();let P=n.ctrlKey?U:W;S({startRow:P,startCol:a-1,endRow:P,endCol:a-1}),R({rowIndex:P,columnIndex:K});break}case "PageDown":case "PageUp":{n.preventDefault();let P=V.current,H=10,E=36;if(P){let Y=P.querySelector("tbody tr");Y&&Y.offsetHeight>0&&(E=Y.offsetHeight,H=Math.max(1,Math.floor(P.clientHeight/E)));}let Z=n.key==="PageDown"?1:-1,q=Math.max(0,Math.min(W+Z*H,U));S(z?{startRow:f?.startRow??W,startCol:f?.startCol??F,endRow:q,endCol:f?.endCol??F}:{startRow:q,startCol:F,endRow:q,endCol:F}),R({rowIndex:q,columnIndex:J}),P&&(P.scrollTop=getScrollTopForRow(q,E,P.clientHeight,"center"));break}case "Enter":case "F2":{if(n.preventDefault(),F>=0&&F<r.length){let P=r[F],H=i[W];if(H&&P){let E=P.editable===true||typeof P.editable=="function"&&P.editable(H);A!==false&&E&&G!=null&&y({rowId:m(H),columnId:P.columnId});}}break}case "Escape":n.preventDefault(),C!=null?y(null):(D?.(),R(null),S(null));break;case " ":if($!=="none"&&J===0&&g){n.preventDefault();let P=i[W];if(P){let H=m(P),E=h.has(H);w(H,!E,W,n.shiftKey);}}break;case "z":(n.ctrlKey||n.metaKey)&&C==null&&(n.shiftKey&&b?(n.preventDefault(),b()):!n.shiftKey&&x&&(n.preventDefault(),x()));break;case "y":(n.ctrlKey||n.metaKey)&&C==null&&b&&(n.preventDefault(),b());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}),R({rowIndex:0,columnIndex:p}));}break;case "d":if(n.ctrlKey||n.metaKey){if(C!=null)break;A!==false&&L&&(n.preventDefault(),L());}break;case "Delete":case "Backspace":{if(C!=null||A===false||G==null)break;let P=f??(c!=null?{startRow:c.rowIndex,startCol:c.columnIndex-p,endRow:c.rowIndex,endCol:c.columnIndex-p}:null);if(P==null)break;n.preventDefault();let H=applyCellDeletion(P,i,r);for(let E of H)G(E);break}case "F10":if(n.shiftKey)if(n.preventDefault(),c!=null&&V.current){let P=`[data-row-index="${c.rowIndex}"][data-col-index="${c.columnIndex}"]`,H=V.current.querySelector(P);if(H){let E=H.getBoundingClientRect();v({x:E.left+E.width/2,y:E.top+E.height/2});}else v({x:100,y:100});}else v({x:100,y:100});break;}},[])}}function Tn(o){let{onCellValueChanged:e,maxUndoDepth:t=100}=o,n=k(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},[]),p=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]),g=useCallback(()=>{r().beginBatch();},[r]),a=useCallback(()=>{let f=r();f.endBatch(),s(f.historyLength),i(f.redoLength);},[r]),m=useCallback(()=>{if(!n.current)return;let f=r(),C=f.undo();if(C){s(f.historyLength),i(f.redoLength);for(let h=C.length-1;h>=0;h--){let R=C[h];n.current({...R,oldValue:R.newValue,newValue:R.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 h of C)n.current(h);}},[r,n]);return {onCellValueChanged:e?p:void 0,undo:m,redo:c,canUndo:u>0,canRedo:d>0,beginBatch:g,endBatch:a,maxUndoDepth:t}}function Dn(o,e){let[t,n]=useState(o);return useEffect(()=>{let l=setTimeout(()=>{n(o);},e);return ()=>clearTimeout(l)},[o,e]),t}var Fn="data-drag-range";function On(o){let{items:e,visibleCols:t,editable:n,onCellValueChanged:l,selectionRange:u,setSelectionRange:s,setActiveCell:d,colOffset:i,wrapperRef:r,beginBatch:p,endBatch:g,formulaOptions:a}=o,m=k(l),[c,f]=useState(null),C=useRef({endRow:0,endCol:0}),h=useRef(0),R=useRef(null),S=k(i),y=k(e),w=k(t),O=k(a);useEffect(()=>{if(!c||n===false||!m.current||!r.current)return;C.current={endRow:c.startRow,endCol:c.startCol},R.current=null;let x=new Set,b=buildCellIndex(r.current),D=L=>{if(!r.current)return;let K=Math.min(L.startRow,L.endRow),W=Math.max(L.startRow,L.endRow),J=Math.min(L.startCol,L.endCol),F=Math.max(L.startCol,L.endCol),z=S.current;for(let N of x){let P=parseInt(N.getAttribute("data-row-index")??"",10),H=parseInt(N.getAttribute("data-col-index")??"",10)-z;P>=K&&P<=W&&H>=J&&H<=F||(N.removeAttribute(Fn),x.delete(N));}for(let N=K;N<=W;N++)for(let P=J;P<=F;P++){let H=`${N},${P+z}`,E=b?.get(H);E&&!E.isConnected&&(b=buildCellIndex(r.current),E=b.get(H)),E&&(E.hasAttribute(Fn)||E.setAttribute(Fn,""),x.add(E));}},A=()=>{for(let L of x)L.removeAttribute(Fn);x.clear();},G=null,$=(L,U)=>{let W=document.elementFromPoint(L,U)?.closest?.("[data-row-index][data-col-index]");if(!W||!r.current?.contains(W))return null;let J=parseInt(W.getAttribute("data-row-index")??"",10),F=parseInt(W.getAttribute("data-col-index")??"",10);if(Number.isNaN(J)||Number.isNaN(F)||F<S.current)return null;let z=F-S.current;return normalizeSelectionRange({startRow:c.startRow,startCol:c.startCol,endRow:J,endCol:z})},V=L=>{G={cx:L.clientX,cy:L.clientY},h.current&&cancelAnimationFrame(h.current),h.current=requestAnimationFrame(()=>{if(h.current=0,!G)return;let U=$(G.cx,G.cy);if(!U)return;let K=R.current;K&&K.startRow===U.startRow&&K.startCol===U.startCol&&K.endRow===U.endRow&&K.endCol===U.endCol||(R.current=U,C.current={endRow:U.endRow,endCol:U.endCol},D(U));});},X=()=>{if(h.current&&(cancelAnimationFrame(h.current),h.current=0),G){let W=$(G.cx,G.cy);W&&(R.current=W,C.current={endRow:W.endRow,endCol:W.endCol});}A();let L=C.current,U=normalizeSelectionRange({startRow:c.startRow,startCol:c.startCol,endRow:L.endRow,endCol:L.endCol});s(U),d({rowIndex:c.startRow,columnIndex:c.startCol+S.current});let K=applyFillValues(U,c.startRow,c.startCol,e,t,O.current);if(K.length>0){p?.();for(let W of K)m.current?.(W);g?.();}f(null),R.current=null;};return window.addEventListener("pointermove",V,true),window.addEventListener("pointerup",X,true),()=>{window.removeEventListener("pointermove",V,true),window.removeEventListener("pointerup",X,true),h.current&&cancelAnimationFrame(h.current);}},[c,n,e,t,s,d,p,g,S,r,m,O]);let T=useRef(u);T.current=u;let I=useCallback(x=>{x.preventDefault(),x.stopPropagation();let b=T.current;b&&f({startRow:b.startRow,startCol:b.startCol});},[]),v=useCallback(()=>{let x=T.current;if(!x||n===false||!m.current)return;let b=normalizeSelectionRange(x),D=applyFillValues(b,b.startRow,b.startCol,y.current,w.current,O.current);if(D.length>0){p?.();for(let A of D)m.current(A);g?.();}},[n,p,g,m,y,w,O]);return {fillDrag:c,setFillDrag:f,handleFillHandleMouseDown:I,fillDown:v}}function Mn(o){let{wrapperRef:e,visibleCols:t,flatColumns:n,hasCheckboxCol:l,initialColumnWidths:u,onColumnResized:s}=o,[d,i]=useState(0);useEffect(()=>{let m=e.current;if(!m)return;let c=()=>{let C=m.getBoundingClientRect(),h=window.getComputedStyle(m),R=(parseFloat(h.borderLeftWidth||"0")||0)+(parseFloat(h.borderRightWidth||"0")||0),S=Math.round(Math.max(0,C.width-R));i(y=>y===S?y:S);},f=new ResizeObserver(c);return f.observe(m),c(),()=>f.disconnect()},[e]);let[r,p]=useState(()=>{if(!u)return {};let m={};for(let[c,f]of Object.entries(u))m[c]={widthPx:f};return m}),g=useMemo(()=>{let m=l?CHECKBOX_COLUMN_WIDTH:0;return t.reduce((c,f)=>c+(f.minWidth??estimateHeaderMinWidth(f.name))+CELL_PADDING,m)},[t,l]);useEffect(()=>{let m=new Set(n.map(c=>c.columnId));p(c=>{let f=Object.fromEntries(Object.entries(c).filter(([C])=>m.has(C)));return Object.keys(f).length!==Object.keys(c).length?f:c});},[n]);let a=useMemo(()=>{let m=l?CHECKBOX_COLUMN_WIDTH:0;return t.reduce((c,f)=>{let C=r[f.columnId],h=f.minWidth??estimateHeaderMinWidth(f.name),R=C?C.widthPx:f.idealWidth??f.defaultWidth??h;return c+Math.max(h,R)+CELL_PADDING},m)},[t,r,l]);return {containerWidth:d,minTableWidth:g,desiredTableWidth:a,columnSizingOverrides:r,setColumnSizingOverrides:p,onColumnResized:s}}function Ul(o){let{columns:e,pinnedColumns:t,onColumnPinned:n}=o,[l,u]=useState(()=>{let a={};for(let m of e)m.pinned&&(a[m.columnId]=m.pinned);return a}),s=t??l,d=useCallback((a,m)=>{let c={...s,[a]:m};t||u(c),n?.(a,m);},[s,t,n]),i=useCallback(a=>{let{[a]:m,...c}=s;t||u(c),n?.(a,null);},[s,t,n]),r=useCallback(a=>s[a],[s]),p=useCallback((a,m,c,f,C)=>{let h={},R=f?C:0;for(let S of a)s[S.columnId]==="left"&&(h[S.columnId]=R,R+=m[S.columnId]??c);return h},[s]),g=useCallback((a,m,c)=>{let f={},C=0;for(let h=a.length-1;h>=0;h--){let R=a[h];s[R.columnId]==="right"&&(f[R.columnId]=C,C+=m[R.columnId]??c);}return f},[s]);return {pinnedColumns:s,pinColumn:d,unpinColumn:i,isPinned:r,computeLeftOffsets:p,computeRightOffsets:g}}function _o(o){let{pinnedColumns:e,onPinColumn:t,onUnpinColumn:n,sortBy:l,sortDirection:u,onColumnSort:s,onColumnResized:d,onAutosizeColumn:i,columns:r}=o,[p,g]=useState(false),[a,m]=useState(null),[c,f]=useState(null),C=useCallback((L,U)=>{m(L),f(U),g(true);},[]),h=useCallback(()=>{g(false),m(null),f(null);},[]),R=a?e[a]:void 0,S=R!=="left",y=R!=="right",w=!!R,O=r.find(L=>L.columnId===a),T=a===l?u:null,I=O?.sortable!==false,v=O?.resizable!==false,x=useCallback(()=>{a&&S&&(t(a,"left"),h());},[a,S,t,h]),b=useCallback(()=>{a&&y&&(t(a,"right"),h());},[a,y,t,h]),D=useCallback(()=>{a&&w&&(n(a),h());},[a,w,n,h]),A=useCallback(()=>{a&&I&&(s(a,"asc"),h());},[a,I,s,h]),G=useCallback(()=>{a&&I&&(s(a,"desc"),h());},[a,I,s,h]),$=useCallback(()=>{a&&I&&(s(a,null),h());},[a,I,s,h]),V=useCallback(()=>{let L=i??d;if(!a||!L||!v)return;let U=r.find(K=>K.columnId===a);L(a,measureColumnContentWidth(a,U?.minWidth)),h();},[a,i,d,v,r,h]),X=useCallback(()=>{let L=i??d;L&&(r.forEach(U=>{U.resizable!==false&&L(U.columnId,measureColumnContentWidth(U.columnId,U.minWidth));}),h());},[r,i,d,h]);return {isOpen:p,openForColumn:a,anchorElement:c,open:C,close:h,handlePinLeft:x,handlePinRight:b,handleUnpin:D,handleSortAsc:A,handleSortDesc:G,handleClearSort:$,handleAutosizeThis:V,handleAutosizeAll:X,canPinLeft:S,canPinRight:y,canUnpin:w,currentSort:T,isSortable:I,isResizable:v}}function Ll(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 Al(o){let{columns:e,items:t,getRowId:n,visibleColumns:l,columnOrder:u,rowSelection:s="none",showRowNumbers:d,initialColumnWidths:i,onColumnResized:r,onAutosizeColumn:p,pinnedColumns:g,onColumnPinned:a,sortBy:m,sortDirection:c,onColumnSort:f,responsiveColumns:C,wrapperRef:h}=o,R=useMemo(()=>flattenColumns(e),[e]),S=useMemo(()=>!g||Object.keys(g).length===0?R:R.map(B=>{let _=g[B.columnId];return _&&B.pinned!==_?{...B,pinned:_}:B}),[R,g]),y=useMemo(()=>resolveResponsiveConfig(C),[C]),w=useMemo(()=>{let B=l?S.filter(j=>l.has(j.columnId)):S;if(!u?.length)return B;let _=new Map;for(let j=0;j<u.length;j++)_.set(u[j],j);return [...B].sort((j,te)=>{let ne=_.get(j.columnId)??-1,oe=_.get(te.columnId)??-1;return ne===-1&&oe===-1?0:ne===-1?1:oe===-1?-1:ne-oe})},[S,l,u]),O=s==="multiple",T=!!d,I=useMemo(()=>{let B=new Map;return t.forEach((_,j)=>B.set(n(_),j)),B},[t,n]),{containerWidth:v,minTableWidth:x,desiredTableWidth:b,columnSizingOverrides:D,setColumnSizingOverrides:A}=Mn({wrapperRef:h,visibleCols:w,flatColumns:S,hasCheckboxCol:O,initialColumnWidths:i,onColumnResized:r}),G=useMemo(()=>applyResponsiveHiding(w,v,y),[w,v,y]),$=G.length,V=(O?1:0)+(T?1:0),X=$+V,L=V,U=Ul({columns:S,pinnedColumns:g,onColumnPinned:a}),K=useMemo(()=>{let B=Object.entries(D);return B.length===0?"":B.map(([_,j])=>`${_}:${Math.round(j.widthPx)}`).join(",")},[D]),[W,J]=useState({});useLayoutEffect(()=>{let B=h.current;if(!B)return;let _=B.querySelectorAll("th[data-column-id]");if(_.length===0)return;let j={};_.forEach(te=>{let ne=te.getAttribute("data-column-id");ne&&(j[ne]=te.offsetWidth);}),J(te=>{for(let ne in j)if(te[ne]!==j[ne])return j;return Object.keys(te).length!==Object.keys(j).length?j:te});},[G,K,h]);let F=useMemo(()=>{let B={};for(let _ of G){let j=D[_.columnId];B[_.columnId]=j?j.widthPx:W[_.columnId]??_.idealWidth??_.defaultWidth??_.minWidth??DEFAULT_MIN_COLUMN_WIDTH;}return B},[G,D,W]),z=useMemo(()=>U.computeLeftOffsets(G,F,DEFAULT_MIN_COLUMN_WIDTH,O,CHECKBOX_COLUMN_WIDTH),[U,G,F,O]),N=useMemo(()=>U.computeRightOffsets(G,F,DEFAULT_MIN_COLUMN_WIDTH),[U,G,F]),P=k(f),H=useCallback((B,_)=>P.current?.(B,_),[P]),E=useCallback((B,_)=>{A(j=>({...j,[B]:{widthPx:_}})),(p??r)?.(B,_);},[A,p,r]),Z=_o({pinnedColumns:U.pinnedColumns,onPinColumn:U.pinColumn,onUnpinColumn:U.unpinColumn,sortBy:m,sortDirection:c??"asc",onColumnSort:H,onColumnResized:r,onAutosizeColumn:E,columns:S}),q=useMemo(()=>({flatColumns:S,visibleCols:G,visibleColumnCount:$,totalColCount:X,colOffset:L,hasCheckboxCol:O,hasRowNumbersCol:T,rowIndexByRowId:I,containerWidth:v,minTableWidth:x,desiredTableWidth:b,columnSizingOverrides:D,setColumnSizingOverrides:A,onColumnResized:r,measuredColumnWidths:W}),[S,G,$,X,L,O,T,I,v,x,b,D,A,r,W]),Y=useMemo(()=>({pinnedColumns:U.pinnedColumns,pinColumn:U.pinColumn,unpinColumn:U.unpinColumn,isPinned:U.isPinned,leftOffsets:z,rightOffsets:N,headerMenu:Z}),[U.pinnedColumns,U.pinColumn,U.unpinColumn,U.isPinned,z,N,Z]);return {layout:q,pinning:Y,flatColumns:S,visibleCols:G,visibleColumnCount:$,totalColCount:X,colOffset:L,hasCheckboxCol:O,hasRowNumbersCol:T,columnSizingOverrides:D,setColumnSizingOverrides:A,handleAutosizeColumn:E,stableOnColumnSort:H}}function Bl(o){let{editingCell:e,setEditingCell:t,pendingEditorValue:n,setPendingEditorValue:l,onCellValueChanged:u,setActiveCell:s,setSelectionRange:d,colOffset:i,setFormula:r,onFormulaCellChanged:p,formulas:g,flatColumns:a}=o,[m,c]=useState(null),f=k(o.visibleCols),C=k(o.itemsLength),h=k(u),R=k(r),S=k(p),y=k(a),w=useCallback((I,v,x,b,D,A,G)=>{if(g&&typeof b=="string"&&b.startsWith("=")&&R.current){let V=y.current,X=V?V.findIndex(L=>L.columnId===v):-1;if(X>=0){if(R.current(X,D,b),t(null),c(null),l(void 0),D<C.current-1){let L=D+1,U=A-i;s({rowIndex:L,columnIndex:A}),d({startRow:L,startCol:U,endRow:L,endCol:U});}return}}let $=f.current.find(V=>V.columnId===v);if($){let V=parseValue(b,x,I,$);if(!V.valid){t(null),c(null),l(void 0);return}b=V.value;}if(h.current?.({item:I,columnId:v,oldValue:x,newValue:b,rowIndex:D}),g&&S.current&&y.current){let V=y.current.findIndex(X=>X.columnId===v);V>=0&&S.current(V,D);}if(t(null),c(null),l(void 0),!G?.skipAdvance&&D<C.current-1){let V=D+1,X=A-i;s({rowIndex:V,columnIndex:A}),d({startRow:V,startCol:X,endRow:V,endCol:X});}},[g,t,l,s,d,i,f,C,h,R,S,y]),O=useCallback(()=>{t(null),c(null),l(void 0);},[t,l]);return {editing:useMemo(()=>({editingCell:e,setEditingCell:t,pendingEditorValue:n,setPendingEditorValue:l,commitCellEdit:w,cancelPopoverEdit:O,popoverAnchorEl:m,setPopoverAnchorEl:c}),[e,t,n,l,w,O,m,c])}}var dt=()=>{},Us=async()=>{},Ls=(o,e,t)=>{},ks=o=>{};function Nl(o){let{items:e,visibleCols:t,colOffset:n,hasCheckboxCol:l,visibleColumnCount:u,getRowId:s,editable:d,onCellValueChangedProp:i,cellSelection:r,rowSelection:p,selectedRowIds:g,editingCell:a,setEditingCell:m,activeCell:c,setActiveCell:f,handleRowCheckboxChange:C,setContextMenuPosition:h,wrapperRef:R,onKeyDown:S,formulas:y,flatColumns:w,getFormula:O,hasFormula:T,setFormula:I,onFormulaInsertReference:v}=o,x=k(v),b=Tn({onCellValueChanged:i}),D=b.onCellValueChanged,{selectionRange:A,setSelectionRange:G,handleCellMouseDown:$,handleSelectAllCells:V,isDragging:X}=xn({colOffset:n,rowCount:e.length,visibleColCount:t.length,setActiveCell:f,wrapperRef:R}),{handleCopy:L,handleCut:U,handlePaste:K,cutRange:W,copyRange:J,clearClipboardRanges:F}=In({items:e,visibleCols:t,colOffset:n,selectionRange:A,activeCell:c,editable:d,onCellValueChanged:D,beginBatch:b.beginBatch,endBatch:b.endBatch,formulas:y,flatColumns:w,getFormula:O,hasFormula:T,setFormula:I}),z=useCallback((Y,B,_)=>{if(Y.button!==0)return;let j=x.current;if(j){let te=_-n;if(te>=0){let ne=formatCellReference(te,B+1);if(j(ne)){Y.preventDefault();return}}}R.current?.focus({preventScroll:true}),F(),$(Y,B,_);},[$,F,R,x,n]),N=useMemo(()=>{if(!(!y||!w))return {flatColumns:w,getFormula:O,hasFormula:T,setFormula:I}},[y,w,O,T,I]),{handleFillHandleMouseDown:P,fillDown:H}=On({items:e,visibleCols:t,editable:d,onCellValueChanged:D,selectionRange:A,setSelectionRange:G,setActiveCell:f,colOffset:n,wrapperRef:R,beginBatch:b.beginBatch,endBatch:b.endBatch,formulaOptions:N}),{handleGridKeyDown:E}=wn({data:{items:e,visibleCols:t,colOffset:n,hasCheckboxCol:l,visibleColumnCount:u,getRowId:s},state:{activeCell:c,selectionRange:A,editingCell:a,selectedRowIds:g},handlers:{setActiveCell:f,setSelectionRange:G,setEditingCell:m,handleRowCheckboxChange:C,handleCopy:L,handleCut:U,handlePaste:K,setContextMenu:h,onUndo:b.undo,onRedo:b.redo,clearClipboardRanges:F},features:{editable:d,onCellValueChanged:D,rowSelection:p??"none",wrapperRef:R,onKeyDown:S,fillDown:H}}),Z=A!=null||c!=null;return {interaction:useMemo(()=>({activeCell:r?c:null,setActiveCell:r?f:dt,selectionRange:r?A:null,setSelectionRange:r?G:dt,handleCellMouseDown:r?z:Ls,handleSelectAllCells:r?V:dt,hasCellSelection:r?Z:false,handleGridKeyDown:r?E:ks,handleFillHandleMouseDown:r?P:dt,handleCopy:r?L:dt,handleCut:r?U:dt,handlePaste:r?K:Us,cutRange:r?W:null,copyRange:r?J:null,clearClipboardRanges:r?F:dt,canUndo:b.canUndo,canRedo:b.canRedo,onUndo:b.undo,onRedo:b.redo,isDragging:r?X:false}),[r,c,f,A,G,z,V,Z,E,P,L,U,K,W,J,F,b.canUndo,b.canRedo,b.undo,b.redo,X]),selectionRange:A,setSelectionRange:G,cutRange:W,copyRange:J,clearClipboardRanges:F,isDragging:X,onCellValueChanged:D,canUndo:b.canUndo,canRedo:b.canRedo}}var Ko=()=>{},Gs=o=>{},Bs=o=>{};function Hl(o){let{cellSelection:e}=o,{contextMenuPosition:t,setContextMenuPosition:n,handleCellContextMenu:l,closeContextMenu:u,handleLongPressStart:s,handleLongPressEnd:d}=yn();return {contextMenu:useMemo(()=>({menuPosition:e?t:null,setMenuPosition:e?n:Ko,handleCellContextMenu:e?l:Gs,closeContextMenu:e?u:Ko,handleLongPressStart:e?s:Bs,handleLongPressEnd:e?d:Ko}),[e,t,n,l,u,s,d]),contextMenuPosition:t,setContextMenuPosition:n}}function Un(o){let{props:e,wrapperRef:t}=o,{items:n,columns:l,getRowId:u,visibleColumns:s,columnOrder:d,rowSelection:i="none",selectedRows:r,onSelectionChange:p,showRowNumbers:g,statusBar:a,emptyState:m,editable:c,cellSelection:f,onCellValueChanged:C,initialColumnWidths:h,onColumnResized:R,onAutosizeColumn:S,pinnedColumns:y,onColumnPinned:w,responsiveColumns:O,onCellError:T,onKeyDown:I}=e,v=f!==false,{editingCell:x,setEditingCell:b,pendingEditorValue:D,setPendingEditorValue:A}=vn(),{activeCell:G,setActiveCell:$}=bn(t,x),V=Al({columns:l,items:n,getRowId:u,visibleColumns:s,columnOrder:d,rowSelection:i,showRowNumbers:g,initialColumnWidths:h,onColumnResized:R,onAutosizeColumn:S,pinnedColumns:y,onColumnPinned:w,sortBy:e.sortBy,sortDirection:e.sortDirection,onColumnSort:e.onColumnSort,responsiveColumns:O,wrapperRef:t}),{visibleCols:X,visibleColumnCount:L,colOffset:U,hasCheckboxCol:K}=V,W=Pn({items:n,getRowId:u,rowSelection:i,controlledSelectedRows:r,onSelectionChange:p}),{selectedRowIds:J,updateSelection:F,handleRowCheckboxChange:z,handleSelectAll:N,allSelected:P,someSelected:H}=W,E=Hl({cellSelection:v}),{setContextMenuPosition:Z}=E,q=Nl({items:n,visibleCols:X,colOffset:U,hasCheckboxCol:K,visibleColumnCount:L,getRowId:u,editable:c,onCellValueChangedProp:C,cellSelection:v,rowSelection:i,selectedRowIds:J,editingCell:x,setEditingCell:b,activeCell:G,setActiveCell:$,handleRowCheckboxChange:z,setContextMenuPosition:Z,wrapperRef:t,onKeyDown:I,formulas:e.formulas,flatColumns:V.layout.flatColumns,getFormula:e.getFormula,hasFormula:e.hasFormula,setFormula:e.setFormula,onFormulaInsertReference:e.onFormulaInsertReference}),{selectionRange:Y,setSelectionRange:B,cutRange:_,copyRange:j,isDragging:te,onCellValueChanged:ne}=q,oe=Bl({editingCell:x,setEditingCell:b,pendingEditorValue:D,setPendingEditorValue:A,visibleCols:X,itemsLength:n.length,onCellValueChanged:ne,setActiveCell:$,setSelectionRange:B,colOffset:U,setFormula:e.setFormula,onFormulaCellChanged:e.onFormulaCellChanged,formulas:e.formulas,flatColumns:V.layout.flatColumns}),{sortBy:ie,sortDirection:Fe,filters:qe,onFilterChange:be,filterOptions:et,loadingFilterOptions:$e,peopleSearch:ft}=e,Ye=!!ft,gt=k(be),Ge=k(ft),Ze=useCallback((...ge)=>gt.current?.(...ge),[gt]),Je=useCallback((...ge)=>Ge.current?.(...ge)??Promise.resolve([]),[Ge]),tt=useMemo(()=>({sortBy:ie,sortDirection:Fe,onColumnSort:V.stableOnColumnSort,filters:qe,onFilterChange:Ze,filterOptions:et,loadingFilterOptions:$e,peopleSearch:Ye?Je:void 0}),[ie,Fe,V.stableOnColumnSort,qe,Ze,et,$e,Ye,Je]),Te=useMemo(()=>({editingCell:x,activeCell:v?G:null,selectionRange:v?Y:null,cutRange:v?_:null,copyRange:v?j:null,colOffset:U,itemsLength:n.length,getRowId:u,editable:c,onCellValueChanged:ne,isDragging:v?te:false,getFormulaValue:e.getFormulaValue,hasFormula:e.hasFormula,getFormula:e.getFormula,formulaVersion:e.formulaVersion}),[x,G,Y,_,j,U,n.length,u,c,ne,v,te,e.getFormulaValue,e.hasFormula,e.getFormula,e.formulaVersion]),Be=useMemo(()=>computeAggregations(n,X,v?Y:null),[n,X,Y,v]),nt=useMemo(()=>{let ge=getDataGridStatusBarConfig(a,n.length,J.size);return ge?{...ge,aggregation:Be??void 0}:null},[a,n.length,J.size,Be]),Oe=n.length===0&&!!m&&!e.isLoading,ot=useMemo(()=>({selectedRowIds:J,updateSelection:F,handleRowCheckboxChange:z,handleSelectAll:N,allSelected:P,someSelected:H}),[J,F,z,N,P,H]),Qe=useMemo(()=>({headerFilterInput:tt,cellDescriptorInput:Te,statusBarConfig:nt,showEmptyInGrid:Oe,onCellError:T}),[tt,Te,nt,Oe,T]);return {layout:V.layout,rowSelection:ot,editing:oe.editing,interaction:q.interaction,contextMenu:E.contextMenu,viewModels:Qe,pinning:V.pinning}}function Ln(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 _s=150,Kl=[];function An(o){let{selectedValues:e,onFilterChange:t,options:n,isFilterOpen:l}=o,u=e??Kl,s=n??Kl,[d,i]=useState(()=>new Set(u)),[r,p]=useState(""),g=Dn(r,_s);useEffect(()=>{l&&(i(new Set(u)),p(""));},[l,u]);let a=useMemo(()=>{let h=g.trim();if(!h)return s;let R=h.toLowerCase();return s.filter(S=>S.toLowerCase().includes(R))},[s,g]),m=useCallback((h,R)=>{i(S=>{let y=new Set(S);return R?y.add(h):y.delete(h),y});},[]),c=useCallback(()=>{i(h=>{let R=new Set(h);for(let S of a)R.add(S);return R});},[a]),f=useCallback(()=>i(new Set),[]),C=useCallback(()=>{t?.(Array.from(d));},[t,d]);return {tempSelected:d,setTempSelected:i,searchText:r,setSearchText:p,debouncedSearchText:g,filteredOptions:a,handleCheckboxChange:m,handleSelectAll:c,handleClearSelection:f,handleApplyMultiSelect:C}}function Gn(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([]),[p,g]=useState(false),[a,m]=useState("");useEffect(()=>(n&&(m(""),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 g(true),d.current=window.setTimeout(async()=>{try{let C=await t(a);r(C.slice(0,10));}catch{r([]);}finally{g(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:p,peopleSearchText:a,setPeopleSearchText:m,peopleInputRef:u,handleUserSelect:c,handleClearUser:f}}function Bn(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 p=l||void 0,g=s||void 0;t?.(p||g?{from:p,to:g}:void 0);},[t,l,s]),r=useCallback(()=>{u(""),d("");},[]);return {tempDateFrom:l,setTempDateFrom:u,tempDateTo:s,setTempDateTo:d,handleDateApply:i,handleDateClear:r}}var Xs=[];function Ql(o){let{filterType:e,onSort:t,selectedValues:n,onFilterChange:l,options:u,textValue:s="",onTextChange:d,selectedUser:i,onUserChange:r,peopleSearch:p,dateValue:g,onDateChange:a}=o,m=n??Xs,c=useRef(null),f=useRef(null),[C,h]=useState(false),[R,S]=useState(null),y=Ln({textValue:s,onTextChange:d,isFilterOpen:C}),w=An({selectedValues:n,onFilterChange:l,options:u,isFilterOpen:C}),O=Gn({onUserChange:r,peopleSearch:p,isFilterOpen:C,filterType:e}),T=Bn({dateValue:g,onDateChange:a,isFilterOpen:C});useEffect(()=>{C||S(null);},[C]),useEffect(()=>{if(!C)return;let E=Y=>{let B=Y.target;f.current&&!f.current.contains(B)&&c.current&&!c.current.contains(B)&&h(false);},Z=Y=>{(Y.key==="Escape"||Y.key==="Esc")&&(Y.preventDefault(),Y.stopPropagation(),h(false));},q=setTimeout(()=>document.addEventListener("mousedown",E),0);return document.addEventListener("keydown",Z,true),()=>{clearTimeout(q),document.removeEventListener("mousedown",E),document.removeEventListener("keydown",Z,true);}},[C]);let I=useCallback(E=>{E.stopPropagation(),E.preventDefault(),h(Z=>{if(!Z&&c.current){let q=c.current.getBoundingClientRect();S({top:q.bottom+4,left:q.left});}return !Z});},[]),v=useCallback(E=>{E.stopPropagation(),t?.();},[t]),{handleApplyMultiSelect:x}=w,{handleTextApply:b,handleTextClear:D}=y,{handleUserSelect:A,handleClearUser:G}=O,{handleDateApply:$}=T,V=useCallback(()=>{x(),h(false);},[x]),X=useCallback(()=>{b(),h(false);},[b]),L=useCallback(()=>{D(),d?.(""),h(false);},[D,d]),U=useCallback(E=>{A(E),h(false);},[A]),K=useCallback(()=>{G(),h(false);},[G]),W=useCallback(()=>{$(),h(false);},[$]),J=useCallback(E=>E.stopPropagation(),[]),F=useCallback(E=>E.stopPropagation(),[]),z=useCallback(E=>E.stopPropagation(),[]),N=useCallback(E=>E.stopPropagation(),[]),P=useCallback(E=>{E.key!=="Escape"&&E.key!=="Esc"&&E.stopPropagation();},[]),H=useMemo(()=>e==="multiSelect"?m.length>0:e==="text"?!!s.trim():e==="people"?!!i:e==="date"?!!(g?.from||g?.to):false,[e,m,s,i,g]);return {headerRef:c,popoverRef:f,peopleInputRef:O.peopleInputRef,isFilterOpen:C,setFilterOpen:h,tempSelected:w.tempSelected,setTempSelected:w.setTempSelected,tempTextValue:y.tempTextValue,setTempTextValue:y.setTempTextValue,searchText:w.searchText,setSearchText:w.setSearchText,debouncedSearchText:w.debouncedSearchText,filteredOptions:w.filteredOptions,peopleSuggestions:O.peopleSuggestions,isPeopleLoading:O.isPeopleLoading,peopleSearchText:O.peopleSearchText,setPeopleSearchText:O.setPeopleSearchText,tempDateFrom:T.tempDateFrom,setTempDateFrom:T.setTempDateFrom,tempDateTo:T.tempDateTo,setTempDateTo:T.setTempDateTo,hasActiveFilter:H,popoverPosition:R,handlers:{handleFilterIconClick:I,handleApplyMultiSelect:V,handleTextApply:X,handleTextClear:L,handleUserSelect:U,handleClearUser:K,handleDateApply:W,handleDateClear:T.handleDateClear,handleCheckboxChange:w.handleCheckboxChange,handleSelectAll:w.handleSelectAll,handleClearSelection:w.handleClearSelection,handlePopoverClick:J,handleInputFocus:F,handleInputMouseDown:z,handleInputClick:N,handleInputKeyDown:P,handleSortClick:v}}}function ea(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]),p=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]),g=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,m=e.length;return {open:u,setOpen:s,handleToggle:d,handleClose:i,handleCheckboxChange:r,handleSelectAll:p,handleClearAll:g,visibleCount:a,totalCount:m}}function na(o,e){if(o==="")return "";let t=parseUserInputDate(o,e);return t===null?o:t.toISOString().substring(0,10)}function Vn(o){let{value:e,editorType:t,onCommit:n,onCancel:l,dateFormat:u,dateEditorType:s}=o,d=u??DEFAULT_DATE_FORMAT,[i,r]=useState(()=>{if(e==null)return "";if(t==="date"){let a=String(e);return s==="native"?a.match(/^\d{4}-\d{2}-\d{2}/)?a.substring(0,10):a:formatDateForDisplay(a,d)??a}return String(e)}),p=useCallback(a=>{a.key==="Escape"&&(a.preventDefault(),a.stopPropagation(),l()),a.key==="Enter"&&(t==="text"||t==="date")&&(a.preventDefault(),a.stopPropagation(),n(t==="date"&&s!=="native"?na(i,d):i));},[l,n,i,t,d,s]),g=useCallback(()=>{t==="text"?n(i):t==="date"&&n(s==="native"?i:na(i,d));},[t,i,n,d,s]);return {localValue:i,setLocalValue:r,handleKeyDown:p,handleBlur:g,commit:n,cancel:l}}function Nn({columnSizingOverrides:o,setColumnSizingOverrides:e,minWidth:t=80,defaultWidth:n=120,onColumnResized:l}){let u=useRef(0),s=useRef(l);s.current=l;let d=k(o),i=useRef(null);useEffect(()=>()=>{i.current&&(i.current(),i.current=null);},[]);let r=useCallback((a,m)=>{a.preventDefault(),a.stopPropagation(),i.current&&(i.current(),i.current=null);let c=a.clientX,f=m.columnId,C=a.currentTarget.closest("th"),h=C?C.getBoundingClientRect().width:d.current[f]?.widthPx??m.idealWidth??m.defaultWidth??n,R=h,S=C?.closest("thead");if(S){let b=S.querySelectorAll("th[data-column-id]");b.length>0&&e(D=>{let A={...D};return b.forEach(G=>{let $=G.dataset.columnId;$&&!A[$]&&(A[$]={widthPx:G.getBoundingClientRect().width});}),A[f]={widthPx:h},A});}let y=document.body.style.cursor,w=document.body.style.userSelect;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let O=()=>{e(b=>({...b,[f]:{widthPx:R}}));},T=f===ROW_NUMBER_COLUMN_ID?ROW_NUMBER_COLUMN_MIN_WIDTH:t,I=b=>{let D=b.clientX-c;R=Math.max(T,h+D),u.current||(u.current=requestAnimationFrame(()=>{u.current=0,O();}));},v=()=>{document.removeEventListener("pointermove",I),document.removeEventListener("pointerup",x),i.current=null,document.body.style.cursor=y,document.body.style.userSelect=w,u.current&&(cancelAnimationFrame(u.current),u.current=0);},x=()=>{v(),O();let b=C?.closest("[tabindex]");b?b.focus({preventScroll:true}):document.activeElement instanceof HTMLElement&&document.activeElement.blur(),s.current&&s.current(f,R);};document.addEventListener("pointermove",I),document.addEventListener("pointerup",x),i.current=v;},[n,t,e,d]),p=useCallback((a,m)=>{a.preventDefault(),a.stopPropagation();let c=m.columnId,C=a.currentTarget.closest("th")?.closest("table")?.parentElement??void 0,h=measureColumnContentWidth(c,t,C);e(R=>({...R,[c]:{widthPx:h}})),s.current&&s.current(c,h);},[t,e]),g=useCallback(a=>o[a.columnId]?.widthPx??a.idealWidth??a.defaultWidth??n,[o,n]);return {handleResizeStart:r,handleResizeDoubleClick:p,getColumnWidth:g}}function Zo(o,e){return e?e(o):o!=null?String(o):""}function Hn(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,p]=useState(Math.max(i,0));useEffect(()=>{let f=e.findIndex(C=>String(C)===String(n));p(Math.max(f,0));},[n,e]);let g=useCallback(f=>Zo(f,t),[t]),a=useMemo(()=>{if(!s.trim())return e;let f=s.toLowerCase();return e.filter(C=>g(C).toLowerCase().includes(f))},[e,s,g]),m=useCallback(f=>{l(f);},[l]),c=useCallback(f=>{switch(f.key){case "ArrowDown":f.preventDefault(),p(C=>Math.min(C+1,a.length-1));break;case "ArrowUp":f.preventDefault(),p(C=>Math.max(C-1,0));break;case "Enter":f.preventDefault(),f.stopPropagation(),a.length>0&&r<a.length&&m(a[r]);break;case "Escape":f.preventDefault(),f.stopPropagation(),u();break}},[a,r,m,u]);return {searchText:s,setSearchText:d,filteredValues:a,highlightedIndex:r,handleKeyDown:c,selectValue:m,getDisplayText:g}}function zn(o){let{values:e,formatValue:t,initialValue:n,onCommit:l,onCancel:u}=o,s=useRef(null),d=useCallback(m=>Zo(m,t),[t]),i=e.findIndex(m=>String(m)===String(n)),[r,p]=useState(Math.max(i,0));useEffect(()=>{let m=e.findIndex(c=>String(c)===String(n));p(Math.max(m,0));},[n,e]),useEffect(()=>{let m=s.current;if(!m)return;m.children[r]?.scrollIntoView({block:"nearest"});},[r]);let g=useCallback(m=>{l(m);},[l]),a=useCallback(m=>{switch(m.key){case "ArrowDown":m.preventDefault(),p(c=>Math.min(c+1,e.length-1));break;case "ArrowUp":m.preventDefault(),p(c=>Math.max(c-1,0));break;case "Enter":m.preventDefault(),m.stopPropagation(),e.length>0&&r<e.length&&g(e[r]);break;case "Tab":m.preventDefault(),e.length>0&&r<e.length&&g(e[r]);break;case "Escape":m.preventDefault(),m.stopPropagation(),u();break}},[e,r,g,u]);return {highlightedIndex:r,handleKeyDown:a,selectValue:g,getDisplayText:d,dropdownRef:s}}var pu=8;function fu(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 _n(o){let{columns:e,columnOrder:t,onColumnOrderChange:n,enabled:l=true,pinnedColumns:u,wrapperRef:s}=o,[d,i]=useState(false),[r,p]=useState(null),g=useRef(0),a=useRef(e);a.current=e;let m=useRef(t);m.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 h=useCallback((R,S)=>{if(!l||!c.current||S.button!==0)return;let w=S.currentTarget.getBoundingClientRect();if(S.clientX>w.right-pu||a.current.findIndex(L=>L.columnId===R)===-1)return;S.preventDefault();let I=S.clientX,v=false,x=null,b=fu(f.current),D=getPinStateForColumn(R,b),A=document.body.style.userSelect,G=document.body.style.cursor;document.body.style.userSelect="none",document.body.style.cursor="grabbing";let $=L=>{!v&&Math.abs(L.clientX-I)<5||(v||(v=true,i(true)),g.current&&cancelAnimationFrame(g.current),g.current=requestAnimationFrame(()=>{g.current=0;let U=s.current;if(!U)return;let K=m.current??a.current.map(J=>J.columnId),W=calculateDropTarget({mouseX:L.clientX,columnOrder:K,draggedColumnId:R,draggedPinState:D,tableElement:U,pinnedColumns:b});W&&(x=W.targetIndex,p(W.indicatorX));}));},V=()=>{window.removeEventListener("pointermove",$,true),window.removeEventListener("pointerup",X,true),C.current=null,document.body.style.userSelect=A,document.body.style.cursor=G,g.current&&(cancelAnimationFrame(g.current),g.current=0);},X=()=>{if(V(),v&&x!=null){let L=m.current??a.current.map(K=>K.columnId),U=reorderColumnArray(L,R,x);c.current?.(U);}i(false),p(null);};window.addEventListener("pointermove",$,true),window.addEventListener("pointerup",X,true),C.current=V;},[l,s]);return {isDragging:d,dropIndicatorX:r,handleHeaderMouseDown:h}}var Ru=100;function Wn(o){let{totalRows:e,rowHeight:t,enabled:n,overscan:l=5,threshold:u=Ru,containerRef:s,columnVirtualization:d=false,columnWidths:i,columnOverscan:r=2}=o;useEffect(()=>{validateVirtualScrollConfig({enabled:n,rowHeight:t});},[n,t]);let p=n&&e>=u,g=useCallback(()=>s.current,[s]),a=useVirtualizer({count:p?e:0,getScrollElement:g,estimateSize:()=>t,overscan:l,enabled:p}),m=useMemo(()=>({startIndex:0,endIndex:Math.max(0,e-1),offsetTop:0,offsetBottom:0}),[e]),c=useMemo(()=>{if(!p)return m;let v=a.getVirtualItems();if(v.length===0)return {startIndex:0,endIndex:-1,offsetTop:0,offsetBottom:0};let x=v[0],b=v[v.length-1],D=a.getTotalSize();return {startIndex:x.index,endIndex:b.index,offsetTop:x.start,offsetBottom:Math.max(0,D-b.end)}},[p,a,m]),f=p?a.getTotalSize():e*t,C=useRef(a);C.current=a;let h=useCallback(v=>{if(p)C.current?.scrollToIndex(v,{align:"auto"});else {let x=s.current;if(x){let b=v*t;x.scrollTo({top:b,behavior:"auto"});}}},[p,s,t]),[R,S]=useState(0),y=useRef(0),w=useCallback(v=>{y.current&&cancelAnimationFrame(y.current),y.current=requestAnimationFrame(()=>{y.current=0,S(v);});},[]);useEffect(()=>()=>{y.current&&cancelAnimationFrame(y.current);},[]);let[O,T]=useState(0);useEffect(()=>{if(!d)return;let v=s.current;if(!v||(T(v.clientWidth),typeof ResizeObserver>"u"))return;let x=new ResizeObserver(b=>{b.length>0&&T(b[0].contentRect.width);});return x.observe(v),()=>x.disconnect()},[d,s]);let I=useMemo(()=>!d||!i||i.length===0||O<=0?null:computeVisibleColumnRange(R,i,O,r),[d,i,O,R,r]);return {virtualizer:p?a:null,totalHeight:f,visibleRange:c,scrollToIndex:h,columnRange:I,onHorizontalScroll:d?w:void 0}}function sa(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,p=useMemo(()=>{if(e===0)return [];let g=Math.max(0,Math.floor(s/t)-l),a=Math.ceil(n/t),m=Math.min(e-1,g+a+l*2),c=[];for(let f=g;f<=m;f++)c.push({index:f,offsetTop:f*t});return c},[e,t,n,l,s]);return {totalHeight:r,visibleItems:p,containerRef:u,onScroll:i}}function Kn(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 da(o){let{props:e}=o,t=useRef(null),n=useRef(null),l=useRef(false),u=Un({props:e,wrapperRef:t}),{layout:s,rowSelection:d,editing:i,interaction:r,contextMenu:p,viewModels:g,pinning:a}=u,{visibleCols:m,totalColCount:c,hasCheckboxCol:f,hasRowNumbersCol:C,colOffset:h,containerWidth:R,minTableWidth:S,desiredTableWidth:y,columnSizingOverrides:w,setColumnSizingOverrides:O,measuredColumnWidths:T}=s,I=m,{selectedRowIds:v,updateSelection:x,handleRowCheckboxChange:b,handleSelectAll:D,allSelected:A,someSelected:G}=d,{editingCell:$,setEditingCell:V,pendingEditorValue:X,setPendingEditorValue:L,commitCellEdit:U,cancelPopoverEdit:K,popoverAnchorEl:W,setPopoverAnchorEl:J}=i,{setActiveCell:F,handleCellMouseDown:z,selectionRange:N,hasCellSelection:P,handleGridKeyDown:H,handleFillHandleMouseDown:E,handleCopy:Z,handleCut:q,handlePaste:Y,cutRange:B,copyRange:_,canUndo:j,canRedo:te,onUndo:ne,onRedo:oe,isDragging:ie}=r,{menuPosition:Fe,handleCellContextMenu:qe,closeContextMenu:be,handleLongPressStart:et,handleLongPressEnd:$e}=p,{headerFilterInput:ft,cellDescriptorInput:Ye,statusBarConfig:gt,showEmptyInGrid:Ge,onCellError:Ze}=g,{headerMenu:Je}=a,tt=useCallback(()=>{Y();},[Y]),{items:Te,columns:Be,getRowId:nt,emptyState:Oe,layoutMode:ot="fill",rowSelection:Qe="none",suppressHorizontalScroll:ge,stickyHeader:Xt=true,isLoading:qt=false,loadingMessage:$t="Loading\u2026","aria-label":Yt,"aria-labelledby":Zt,visibleColumns:Ct,columnOrder:Et,onColumnOrderChange:Jt,columnReorder:Ft,virtualScroll:Ve,rowHeight:re,density:Ne="normal",pinnedColumns:rt,currentPage:Qt=1,pageSize:en=25,showColumnLetters:ro=false,showNameBox:lo=false,onActiveCellChange:tn}=e,ht=C?(Qt-1)*en:0,ao=useMemo(()=>buildHeaderRows(Be,Ct),[Be,Ct]),me=!ge&&R>0&&(S>R||y>R),se=ot==="content",Q=useRef(tn);Q.current=tn,useEffect(()=>{if(!Q.current)return;let Se=r.activeCell;Se?Q.current(formatCellReference(Se.columnIndex-h,ht+Se.rowIndex+1)):Q.current(null);},[r.activeCell,ht,h]);let{handleResizeStart:Ce,handleResizeDoubleClick:Ot,getColumnWidth:Rt}=Nn({columnSizingOverrides:w,setColumnSizingOverrides:O}),{isDragging:nn,dropIndicatorX:De,handleHeaderMouseDown:Me}=_n({columns:I,columnOrder:Et,onColumnOrderChange:Jt,enabled:Ft===true,pinnedColumns:rt,wrapperRef:t}),lt=Ve?.enabled===true,on=Ve?.rowHeight??36,He=Ve?.columns===true,at=useMemo(()=>{if(!He)return;let Se=[];for(let ze of I)rt?.[ze.columnId]||Se.push(Rt(ze));return Se},[He,I,rt,Rt]),{visibleRange:rn,columnRange:Mt,onHorizontalScroll:ln}=Wn({totalRows:Te.length,rowHeight:on,enabled:lt,overscan:Ve?.overscan,threshold:Ve?.threshold,containerRef:t,columnVirtualization:He,columnWidths:at,columnOverscan:Ve?.columnOverscan}),Ut=useMemo(()=>({commitCellEdit:U,setEditingCell:V,setPendingEditorValue:L,cancelPopoverEdit:K}),[U,V,L,K]),an=useMemo(()=>({handleCellMouseDown:z,setActiveCell:F,setEditingCell:V,handleCellContextMenu:qe,handleLongPressStart:et,handleLongPressEnd:$e}),[z,F,V,qe,et,$e]),sn=k(Ye),un=k(X),cn=k(W),St=k(v),it=useRef(new CellDescriptorCache),Lt=CellDescriptorCache.computeVersion(Ye);it.current.updateVersion(Lt);let bt=useRef(Te),vt=useRef(I);(bt.current!==Te||vt.current!==I)&&(bt.current=Te,vt.current=I,it.current.clear());let dn=useCallback(Se=>{if(Qe!=="single")return;let ze=Se.currentTarget.dataset.rowId;if(!ze)return;let st=St.current;x(st.has(ze)?new Set:new Set([ze]));},[Qe,x,St]);return {wrapperRef:t,tableContainerRef:n,lastMouseShiftRef:l,layout:s,rowSel:d,editing:i,interaction:r,ctxMenu:p,viewModels:g,pinning:a,handleResizeStart:Ce,handleResizeDoubleClick:Ot,getColumnWidth:Rt,isReorderDragging:nn,dropIndicatorX:De,handleHeaderMouseDown:Me,virtualScrollEnabled:lt,virtualRowHeight:on,visibleRange:rn,columnRange:Mt,onHorizontalScroll:ln,items:Te,columns:Be,getRowId:nt,emptyState:Oe,layoutMode:ot,rowSelection:Qe,suppressHorizontalScroll:ge,stickyHeader:Xt,isLoading:qt,loadingMessage:$t,ariaLabel:Yt,ariaLabelledBy:Zt,visibleColumns:Ct,columnOrder:Et,columnReorder:Ft,density:Ne,rowHeight:re,pinnedColumns:rt,currentPage:Qt,propPageSize:en,rowNumberOffset:ht,headerRows:ao,allowOverflowX:me,fitToContent:se,showColumnLetters:ro,showNameBox:lo,editCallbacks:Ut,interactionHandlers:an,cellDescriptorInputRef:sn,cellDescriptorCacheRef:it,pendingEditorValueRef:un,popoverAnchorElRef:cn,selectedRowIdsRef:St,handleSingleRowClick:dn,handlePasteVoid:tt,visibleCols:I,totalColCount:c,hasCheckboxCol:f,hasRowNumbersCol:C,colOffset:h,containerWidth:R,minTableWidth:S,desiredTableWidth:y,columnSizingOverrides:w,setColumnSizingOverrides:O,measuredColumnWidths:T,selectedRowIds:v,updateSelection:x,handleRowCheckboxChange:b,handleSelectAll:D,allSelected:A,someSelected:G,editingCell:$,setPopoverAnchorEl:J,cancelPopoverEdit:K,setActiveCell:F,selectionRange:N,hasCellSelection:P,handleGridKeyDown:H,handleFillHandleMouseDown:E,handleCopy:Z,handleCut:q,cutRange:B,copyRange:_,canUndo:j,canRedo:te,onUndo:ne,onRedo:oe,isDragging:ie,menuPosition:Fe,handleCellContextMenu:qe,closeContextMenu:be,headerFilterInput:ft,cellDescriptorInput:Ye,statusBarConfig:gt,showEmptyInGrid:Ge,onCellError:Ze,headerMenu:Je}}function ma(o){let{visibleCols:e,getColumnWidth:t,columnSizingOverrides:n,measuredColumnWidths:l,pinnedColumns:u,leftOffsets:s,rightOffsets:d,pinnedColLeftClass:i,pinnedColRightClass:r,addStickyPosition:p=false}=o;return useMemo(()=>{let g={},a={},m={},c={};for(let f=0;f<e.length;f++){let C=e[f],h=t(C),R=!!(n[C.columnId]||C.idealWidth!=null||C.defaultWidth!=null),S=u[C.columnId]==="left",y=u[C.columnId]==="right",w=S||y,O=!!n[C.columnId],T=l[C.columnId],I=C.minWidth??estimateHeaderMinWidth(C.name),v=O||R?h:Math.max(I,T??0),x=p&&w?{position:"sticky"}:void 0;g[C.columnId]={minWidth:v,width:R?h:void 0,maxWidth:R?h:void 0,textAlign:C.type==="numeric"?"right":C.type==="boolean"?"center":void 0,...x,...S&&s[C.columnId]!=null?{left:s[C.columnId]}:void 0,...y&&d[C.columnId]!=null?{right:d[C.columnId]}:void 0},m[C.columnId]={minWidth:v,width:R?h:void 0,maxWidth:R?h:void 0,...x,...S&&s[C.columnId]!=null?{left:s[C.columnId]}:void 0,...y&&d[C.columnId]!=null?{right:d[C.columnId]}:void 0};let b=[];S&&b.push(i),y&&b.push(r);let D=b.join(" ");a[C.columnId]=D,c[C.columnId]=D;}return {cellStyles:g,cellClasses:a,hdrStyles:m,hdrClasses:c}},[e,t,n,l,u,s,d,i,r,p])}var Tu={position:"relative",flex:1,minHeight:0,display:"flex",flexDirection:"column"},Du={cursor:"cell"},Eu={width:"100%",height:"100%",minHeight:"100%",minWidth:40,display:"flex",alignItems:"center",boxSizing:"border-box",padding:"var(--ogrid-cell-padding, 6px 10px)",overflow:"hidden"},Fu=o=>{o.preventDefault();},Ou=()=>{},Mu=o=>{o.stopPropagation();};var Uu=240,nr=36,Xn={columns:"Columns",filters:"Filters"},Ca={display:"flex",flexDirection:"column",width:nr,background:"var(--ogrid-header-bg, #f5f5f5)"},Lu={...Ca,borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"},ku={...Ca,borderRight:"1px solid var(--ogrid-border, #e0e0e0)"},ha={width:nr,height:nr,border:"none",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:14,display:"flex",alignItems:"center",justifyContent:"center"},Au={...ha,background:"var(--ogrid-bg, #fff)",fontWeight:"bold"},Gu={...ha,background:"transparent",fontWeight:"normal"},Ra={width:Uu,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)"},Bu={...Ra,borderLeft:"1px solid var(--ogrid-border, #e0e0e0)"},Vu={...Ra,borderRight:"1px solid var(--ogrid-border, #e0e0e0)"},Nu={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"8px 12px",borderBottom:"1px solid var(--ogrid-border, #e0e0e0)",fontWeight:600},Hu={border:"none",background:"transparent",cursor:"pointer",fontSize:16,color:"var(--ogrid-fg, #242424)"},zu={flex:1,overflowY:"auto",padding:"8px 12px"},_u={display:"flex",flexDirection:"row",flexShrink:0},Wu={display:"flex",gap:8,marginBottom:8},pa={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"},Ku={display:"flex",alignItems:"center",gap:6,padding:"2px 0",cursor:"pointer"},ju={color:"var(--ogrid-muted, #999)",fontStyle:"italic"},Xu={marginBottom:12},qu={fontWeight:500,marginBottom:4,fontSize:13},$u={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},Yu={display:"flex",flexDirection:"column",gap:4},fa={display:"flex",alignItems:"center",gap:4,fontSize:12},ga={flex:1,padding:"2px 4px",background:"var(--ogrid-bg, #fff)",color:"var(--ogrid-fg, #242424)",border:"1px solid var(--ogrid-border, #e0e0e0)",borderRadius:4},Zu={maxHeight:120,overflowY:"auto"},Ju={display:"flex",alignItems:"center",gap:4,padding:"1px 0",cursor:"pointer",fontSize:13};function qn(o){let{activePanel:e,onPanelChange:t,panels:n,position:l,columns:u,visibleColumns:s,onVisibilityChange:d,onSetVisibleColumns:i,filterableColumns:r,filters:p,onFilterChange:g,filterOptions:a}=o,m=e!==null,c=S=>{t(e===S?null:S);},f=l==="right"?Lu:ku,C=l==="right"?Bu:Vu,h=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":Xn[S],onClick:()=>c(S),title:Xn[S],style:e===S?Au:Gu,children:S==="columns"?"\u2261":"\u2A65"},S))}),R=m&&e?jsxs("div",{role:"tabpanel","aria-label":Xn[e],style:C,children:[jsxs("div",{style:Nu,children:[jsx("span",{children:Xn[e]}),jsx("button",{onClick:()=>t(null),style:Hu,"aria-label":"Close panel",children:"\xD7"})]}),jsxs("div",{style:zu,children:[e==="columns"&&jsx(Qu,{columns:u,visibleColumns:s,onVisibilityChange:d,onSetVisibleColumns:i}),e==="filters"&&jsx(ec,{filterableColumns:r,filters:p,onFilterChange:g,filterOptions:a})]})]}):null;return jsxs("div",{style:_u,role:"complementary","aria-label":"Side bar",children:[l==="left"&&h,l==="left"&&R,l==="right"&&R,l==="right"&&h]})}function Qu(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:Wu,children:[jsx("button",{onClick:()=>{let i=new Set(t);e.forEach(r=>i.add(r.columnId)),l(i);},disabled:u,style:pa,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:pa,children:"Clear All"})]}),e.map(i=>jsxs("label",{style:Ku,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 ec(o){let{filterableColumns:e,filters:t,onFilterChange:n,filterOptions:l}=o;return e.length===0?jsx("div",{style:ju,children:"No filterable columns"}):jsx(Fragment,{children:e.map(u=>{let s=u.filterField,d=t[s];return jsxs("div",{style:Xu,children:[jsx("div",{style:qu,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:$u}),u.filterType==="date"&&jsxs("div",{style:Yu,children:[jsxs("label",{style:fa,children:["From:",jsx("input",{type:"date",value:d?.type==="date"?d.value.from??"":"",onChange:i=>{let r=i.target.value||void 0,g=(d?.type==="date"?d.value:{}).to;n(s,r||g?{type:"date",value:{from:r,to:g}}:void 0);},"aria-label":`${u.name} from date`,style:ga})]}),jsxs("label",{style:fa,children:["To:",jsx("input",{type:"date",value:d?.type==="date"?d.value.to??"":"",onChange:i=>{let r=i.target.value||void 0,g=(d?.type==="date"?d.value:{}).from;n(s,g||r?{type:"date",value:{from:g,to:r}}:void 0);},"aria-label":`${u.name} to date`,style:ga})]})]}),u.filterType==="multiSelect"&&jsx("div",{style:Zu,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:Ju,children:[jsx("input",{type:"checkbox",checked:r,onChange:p=>{let g=d?.type==="multiSelect"?d.value:[],a=p.target.checked?[...g,i]:g.filter(m=>m!==i);n(s,a.length>0?{type:"multiSelect",value:a}:void 0);}}),jsx("span",{children:i})]},i)})})]},u.columnId)})})}var va={border:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",borderRadius:GRID_BORDER_RADIUS,overflow:"hidden",display:"flex",flexDirection:"column",flex:1,minHeight:0,background:"var(--ogrid-bg, #fff)"},lc={...va,borderRadius:0,border:"none"},ya={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"6px 12px",background:"var(--ogrid-header-bg, #f5f5f5)",gap:8,flexWrap:"wrap",minHeight:0},ac={...ya,borderBottom:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))"},ic=ya,ba={display:"flex",alignItems:"center",gap:8},sc={borderBottom:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",padding:"6px 12px",background:"var(--ogrid-header-bg, #f5f5f5)"},uc={borderTop:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",background:"var(--ogrid-header-bg, #f5f5f5)",padding:"6px 12px"},cc={width:"100%",minWidth:0,minHeight:0,flex:1,display:"flex"},dc={width:"100%",minWidth:0,minHeight:0,flex:1,display:"flex",flexDirection:"column"},mc={flex:1,minWidth:0,minHeight:0,display:"flex",flexDirection:"column"},pc={display:"flex",flexDirection:"column",height:"100%"},fc={position:"fixed",inset:0,zIndex:9999,display:"flex",flexDirection:"column",background:"var(--ogrid-bg, #fff)"},gc={background:"none",border:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",borderRadius:4,padding:"4px 6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"var(--ogrid-fg, #242424)"},Cc=()=>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"})]}),hc=()=>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 or(o){let{containerComponent:e="div",containerProps:t={},className:n,toolbar:l,toolbarEnd:u,toolbarBelow:s,children:d,pagination:i,sideBar:r,fullScreen:p,formulaBar:g,sheetTabs:a}=o,[m,c]=useState(false),f=useCallback(()=>{c(y=>!y);},[]);useEffect(()=>{if(!m)return;let y=w=>{w.key==="Escape"&&c(false);};return document.addEventListener("keydown",y),()=>document.removeEventListener("keydown",y)},[m]);let C=r!=null,h=r?.position??"right",R=l!=null||u!=null||p;return jsx(e,{className:n,style:m?fc:pc,...t,children:jsxs("div",{style:m?lc:va,children:[R&&jsxs("div",{style:s?ic:ac,children:[jsx("div",{style:ba,children:l}),jsxs("div",{style:ba,children:[u,p?jsx("button",{type:"button",style:gc,onClick:f,title:m?"Exit fullscreen":"Fullscreen","aria-label":m?"Exit fullscreen":"Fullscreen",children:m?jsx(hc,{}):jsx(Cc,{})}):null]})]}),s&&jsx("div",{style:sc,children:s}),g,C?jsxs("div",{style:cc,children:[h==="left"&&jsx(qn,{...r}),jsx("div",{style:mc,children:d}),h!=="left"&&jsx(qn,{...r})]}):jsx("div",{style:dc,children:d}),a,i&&jsx("div",{style:uc,children:i})]})})}function Rc({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 Kt={width:"100%",height:"100%",display:"flex",alignItems:"center",paddingTop:"var(--ogrid-cell-padding-vertical, 6px)",paddingBottom:"var(--ogrid-cell-padding-vertical, 6px)",paddingLeft:"var(--ogrid-cell-padding-horizontal, 10px)",paddingRight:"var(--ogrid-cell-padding-horizontal, 10px)",boxSizing:"border-box",overflow:"hidden",minWidth:0},$n={width:"100%",padding:0,border:"none",background:"transparent",color:"inherit",font:"inherit",fontSize:"16px",outline:"none",minWidth:0},lr={width:"100%",height:"100%",display:"flex",alignItems:"center",paddingTop:"var(--ogrid-cell-padding-vertical, 6px)",paddingBottom:"var(--ogrid-cell-padding-vertical, 6px)",paddingLeft:"var(--ogrid-cell-padding-horizontal, 10px)",paddingRight:"var(--ogrid-cell-padding-horizontal, 10px)",boxSizing:"border-box",overflow:"hidden",minWidth:0,position:"relative"},Ia={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",fontSize:"var(--ogrid-cell-font-size, 13px)",fontFamily:"inherit"},Yn={padding:"6px 8px",cursor:"pointer",color:"var(--ogrid-fg, #242424)",fontSize:"var(--ogrid-cell-font-size, 13px)"},ar={...Yn,background:"var(--ogrid-bg-hover, #e8f0fe)",fontSize:"var(--ogrid-cell-font-size, 13px)"},Pa={padding:"6px 8px",color:"var(--ogrid-muted, #999)",fontSize:"var(--ogrid-cell-font-size, 13px)"},xc={padding:"4px 8px",borderTop:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",fontSize:"11px",color:"var(--ogrid-muted, #999)",textAlign:"right",position:"sticky",bottom:0,background:"var(--ogrid-bg, #fff)"},wa={width:"100%",padding:"6px 8px",border:"none",borderBottom:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",background:"var(--ogrid-bg, #fff)",color:"inherit",font:"inherit",fontSize:"var(--ogrid-cell-font-size, 13px)",outline:"none",boxSizing:"border-box",position:"sticky",top:0,zIndex:1},Ic={width:"100%",padding:0,border:"none",background:"transparent",color:"inherit",font:"inherit",fontSize:"var(--ogrid-cell-font-size, 13px)",cursor:"pointer",outline:"none"},ir={display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",cursor:"pointer",fontSize:"var(--ogrid-cell-font-size, 13px)",color:"inherit"},sr={marginLeft:4,fontSize:"10px",opacity:.5};function Pc(o){let{value:e,column:t,editorType:n,onCommit:l,onCancel:u,renderCheckbox:s}=o,d=we.useRef(null),i=we.useRef(u);i.current=u;let r=t.cellEditorParams?.dateFormat??t.dateFormat??DEFAULT_DATE_FORMAT,p=t.cellEditorParams?.editorType??"text",{localValue:g,setLocalValue:a,handleKeyDown:m,handleBlur:c,commit:f,cancel:C}=Vn({value:e,editorType:n,onCommit:l,onCancel:u,dateFormat:r,dateEditorType:p}),h=t.cellEditorParams?.values??[],R=t.cellEditorParams?.formatValue,S=Hn({values:h,formatValue:R,initialValue:e,onCommit:l,onCancel:u}),y=zn({values:h,formatValue:R,initialValue:e,onCommit:l,onCancel:u}),[w,O]=we.useState(null);we.useLayoutEffect(()=>{if(n!=="select"&&n!=="richSelect")return;let v=d.current;if(!v)return;let x=v.getBoundingClientRect(),b=200,D=window.innerHeight-x.bottom,A=D<b&&x.top>D,G=getComputedStyle(v),$=G.getPropertyValue("--ogrid-cell-font-size").trim()||"13px";O({position:"fixed",...A?{bottom:window.innerHeight-x.top}:{top:x.bottom},left:x.left,width:x.width,maxHeight:b,overflowY:"auto",background:"var(--ogrid-bg, #fff)",border:"1px solid var(--ogrid-border, rgba(0, 0, 0, 0.12))",zIndex:Z_INDEX.FULLSCREEN,boxShadow:"var(--ogrid-shadow, 0 4px 16px rgba(0,0,0,0.2))",textAlign:"left",fontSize:$,fontFamily:G.fontFamily??"inherit"});let V=v.closest("[data-ogrid-scroll-container]")??v.closest('[style*="overflow"]'),X=()=>i.current(),L=requestAnimationFrame(()=>{V&&V.addEventListener("scroll",X,{passive:true}),window.addEventListener("scroll",X,{passive:true});});return ()=>{cancelAnimationFrame(L),V&&V.removeEventListener("scroll",X),window.removeEventListener("scroll",X);}},[n]);let T=w??Ia;we.useEffect(()=>{if(n==="richSelect")return;let v=d.current;if(!v)return;let x=v.querySelector("input");x?(x.focus({preventScroll:true}),x.select()):v.focus({preventScroll:true});},[n]);let I=w!=null;if(n==="richSelect"){let v=jsxs("div",{style:T,role:"listbox",children:[jsx("input",{type:"text",value:S.searchText,onChange:x=>S.setSearchText(x.target.value),onKeyDown:S.handleKeyDown,placeholder:"Search...",autoFocus:true,style:wa}),S.filteredValues.map((x,b)=>jsx("div",{role:"option","aria-selected":b===S.highlightedIndex,onClick:()=>S.selectValue(x),style:b===S.highlightedIndex?ar:Yn,children:S.getDisplayText(x)},String(x))),S.filteredValues.length===0&&jsx("div",{style:Pa,children:"No matches"})]});return jsxs("div",{ref:d,style:lr,children:[jsxs("div",{style:ir,children:[jsx("span",{children:S.getDisplayText(e)}),jsx("span",{style:sr,children:"\u25BE"})]}),I?createPortal(v,document.body):v]})}if(n==="checkbox"){let v=e===true;return jsx("div",{style:{...Kt,justifyContent:"center"},children:s(v,x=>f(x),C)})}if(n==="select"){let v=jsx("div",{style:T,ref:y.dropdownRef,role:"listbox",children:h.map((x,b)=>jsx("div",{role:"option","aria-selected":b===y.highlightedIndex,onClick:()=>y.selectValue(x),style:b===y.highlightedIndex?ar:Yn,children:y.getDisplayText(x)},String(x)))});return jsxs("div",{ref:d,style:lr,onKeyDown:y.handleKeyDown,tabIndex:0,children:[jsxs("div",{style:ir,children:[jsx("span",{children:y.getDisplayText(e)}),jsx("span",{style:sr,children:"\u25BE"})]}),I?createPortal(v,document.body):v]})}if(n==="date"){let v=getDateInputPlaceholder(r);return p==="native"?jsx("div",{ref:d,style:Kt,children:jsx("input",{type:"date",value:g,onChange:x=>a(x.target.value),onBlur:c,onKeyDown:m,style:$n,autoFocus:true})}):jsx("div",{ref:d,style:Kt,children:jsx("input",{type:"text",value:g,onChange:x=>a(x.target.value),onBlur:c,onKeyDown:m,placeholder:v,style:$n,autoFocus:true})})}return jsx("div",{ref:d,style:Kt,children:jsx("input",{type:"text",value:g,onChange:v=>a(v.target.value),onBlur:c,onKeyDown:m,style:$n,autoFocus:true})})}function wc(o){let{x:e,y:t,hasSelection:n,canUndo:l,canRedo:u,onClose:s,onCopy:d,onCut:i,onPaste:r,onSelectAll:p,onUndo:g,onRedo:a,classNames:m}=o,c=we.useRef(null),f=we.useMemo(()=>getContextMenuHandlers({onCopy:d,onCut:i,onPaste:r,onSelectAll:p,onUndo:g,onRedo:a,onClose:s}),[d,i,r,p,g,a,s]),C=we.useCallback(R=>!!(R.disabledWhenNoSelection&&!n||R.id==="undo"&&!l||R.id==="redo"&&!u),[n,l,u]);we.useEffect(()=>{let R=y=>{c.current&&!c.current.contains(y.target)&&s();},S=y=>{y.key==="Escape"&&s();};return document.addEventListener("pointerdown",R,true),document.addEventListener("keydown",S,true),()=>{document.removeEventListener("pointerdown",R,true),document.removeEventListener("keydown",S,true);}},[s]);let h=we.useMemo(()=>{let S=GRID_CONTEXT_MENU_ITEMS.length*44+16,y=window.innerWidth,w=window.innerHeight,O=e+200>y?Math.max(0,y-200-8):e,T=t+S>w?Math.max(0,w-S-8):t;return {left:O,top:T}},[e,t]);return jsx("div",{ref:c,className:m?.contextMenu,role:"menu",style:h,"aria-label":"Grid context menu",children:GRID_CONTEXT_MENU_ITEMS.map(R=>jsxs(we.Fragment,{children:[R.dividerBefore&&jsx("div",{className:m?.contextMenuDivider}),jsxs("button",{type:"button",className:m?.contextMenuItem,onClick:f[R.id],disabled:C(R),children:[jsx("span",{className:m?.contextMenuItemLabel,children:R.label}),R.shortcut&&jsx("span",{className:m?.contextMenuItemShortcut,children:formatShortcut(R.shortcut)})]})]},R.id))})}var Fc={animation:"ogrid-marching-ants 0.5s linear infinite"},Oc={shapeRendering:"crispEdges"},Mc={...Fc,shapeRendering:"crispEdges"};function Uc({containerRef:o,selectionRange:e,copyRange:t,cutRange:n,colOffset:l,items:u,visibleColumns:s,columnSizingOverrides:d,columnOrder:i,isDragging:r}){let[p,g]=useState(null),[a,m]=useState(null),c=useRef(0),f=t??n,C=useCallback(()=>{let w=o.current;if(!w){g(null),m(null);return}g(e?measureRange(w,e,l):null),m(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){g(null),m(null);return}c.current=requestAnimationFrame(C);let w=o.current,O;return w&&(O=new ResizeObserver(C),O.observe(w)),()=>{cancelAnimationFrame(c.current),O?.disconnect();}},[e,f,C,o,u,s,d,i]),!p&&!a)return null;let h=e!=null&&f!=null&&e.startRow===f.startRow&&e.startCol===f.startCol&&e.endRow===f.endRow&&e.endCol===f.endCol,R=w=>({top:Math.round(w.top),left:Math.round(w.left),width:Math.round(w.width),height:Math.round(w.height)}),S=p?R(p):null,y=a?R(a):null;return jsxs(Fragment,{children:[S&&!r&&!h&&!(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:Oc})}),y&&jsx("svg",{style:{position:"absolute",top:y.top,left:y.left,width:y.width,height:y.height,pointerEvents:"none",zIndex:5,overflow:"visible"},"aria-hidden":"true",children:jsx("rect",{x:"1",y:"1",width:Math.max(0,y.width-2),height:Math.max(0,y.height-2),fill:"none",stroke:"var(--ogrid-selection, #217346)",strokeWidth:"2",strokeDasharray:"4 4",style:Mc})})]})}var Hc={shapeRendering:"crispEdges"};function zc(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(),p=d.getBoundingClientRect();return {top:Math.round(r.top-i.top),left:Math.round(r.left-i.left),width:Math.round(p.right-r.left),height:Math.round(p.bottom-r.top),color:FORMULA_REF_COLORS[e.colorIndex%FORMULA_REF_COLORS.length]}}function _c({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 p=zc(d,r,t);p&&i.push(p);}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:Hc})},i))})}var Wc=memo(_c);function Xc(o){let{isOpen:e,anchorElement:t,onClose:n,onPinLeft:l,onPinRight:u,onUnpin:s,onSortAsc:d,onSortDesc:i,onClearSort:r,onAutosizeThis:p,onAutosizeAll:g,canPinLeft:a,canPinRight:m,canUnpin:c,currentSort:f,isSortable:C,isResizable:h,classNames:R,getPortalTarget:S}=o,[y,w]=we.useState(null),O=we.useRef(null);we.useEffect(()=>{if(!e||!t){w(null);return}let b=t.getBoundingClientRect();w({top:b.bottom+4,left:b.left});let D=G=>{let $=G.target;O.current&&O.current.contains($)||t&&!t.contains($)&&n();},A=G=>{G.key==="Escape"&&n();};return document.addEventListener("mousedown",D),document.addEventListener("keydown",A),()=>{document.removeEventListener("mousedown",D),document.removeEventListener("keydown",A);}},[e,t,n]);let T=we.useMemo(()=>({canPinLeft:a,canPinRight:m,canUnpin:c,currentSort:f,isSortable:C,isResizable:h}),[a,m,c,f,C,h]),I=we.useMemo(()=>getColumnHeaderMenuItems(T),[T]),v=we.useMemo(()=>({pinLeft:l,pinRight:u,unpin:s,sortAsc:d,sortDesc:i,clearSort:r,autosizeThis:p,autosizeAll:g}),[l,u,s,d,i,r,p,g]);if(!e||!y)return null;let x=t&&S?S(t):document.body;return createPortal(jsx("div",{ref:O,className:R?.content,style:{position:"fixed",top:y.top,left:y.left,zIndex:1e3},children:I.map((b,D)=>jsxs(we.Fragment,{children:[jsx("button",{className:R?.item,disabled:b.disabled,onClick:()=>{v[b.id](),n();},children:b.label}),b.divider&&D<I.length-1&&jsx("div",{className:R?.separator})]},b.id))}),x)}var Ua=we.memo(o=>{let{currentPage:e,pageSize:t,totalCount:n,onPageChange:l,onPageSizeChange:u,pageSizeOptions:s,entityLabelPlural:d,className:i,slots:r,classNames:p={}}=o,{labelPlural:g,vm:a,handlePageSizeChange:m}=Kn({currentPage:e,pageSize:t,totalCount:n,onPageSizeChange:u,pageSizeOptions:s,entityLabelPlural:d});if(!a)return null;let{pageNumbers:c,showStartEllipsis:f,showEndEllipsis:C,totalPages:h,startItem:R,endItem:S}=a,{NavButton:y,PageButton:w,PageSizeSelect:O,OuterContainer:T,InfoText:I,NavButtonsContainer:v,PageSizeContainer:x,PageSizeLabel:b,Ellipsis:D}=r,A=`Showing ${R} to ${S} of ${n.toLocaleString()} ${g}`,G=I?jsx(I,{children:A}):jsx("div",{className:p.paginationInfo,children:A}),$=D?jsx(D,{}):jsx("span",{className:p.ellipsis,"aria-hidden":true,children:"\u2026"}),V=b?jsx(b,{}):jsx("span",{className:p.pageSizeLabel,children:"Rows"}),X=jsxs("div",{className:p.pageNumbers,children:[f&&jsxs(Fragment,{children:[jsx(w,{onClick:()=>l(1),active:false,"aria-label":"Page 1",className:p.pageBtn,children:"1"}),$]}),c.map(N=>jsx(w,{onClick:()=>l(N),active:e===N,"aria-label":`Page ${N}`,"aria-current":e===N?"page":void 0,className:p.pageBtn,children:N},N)),C&&jsxs(Fragment,{children:[$,jsx(w,{onClick:()=>l(h),active:false,"aria-label":`Page ${h}`,className:p.pageBtn,children:h})]})]}),L=jsxs(Fragment,{children:[jsx(y,{variant:"first",onClick:()=>l(1),disabled:e===1,"aria-label":"First page",className:p.navBtn}),jsx(y,{variant:"prev",onClick:()=>l(e-1),disabled:e===1,"aria-label":"Previous page",className:p.navBtn}),X,jsx(y,{variant:"next",onClick:()=>l(e+1),disabled:e>=h,"aria-label":"Next page",className:p.navBtn}),jsx(y,{variant:"last",onClick:()=>l(h),disabled:e>=h,"aria-label":"Last page",className:p.navBtn})]}),U=v?jsx(v,{className:p.paginationControls,children:L}):jsx("div",{className:p.paginationControls,children:L}),K=jsxs(Fragment,{children:[V,jsx(O,{value:t,options:a.pageSizeOptions,onChange:m,"aria-label":"Rows per page",className:p.pageSizeSelect})]}),W=x?jsx(x,{className:p.pageSizeSelector,children:K}):jsx("div",{className:p.pageSizeSelector,children:K}),J=`${p.pagination??""} ${i||""}`.trim(),F="navigation",z="Pagination";return T?jsxs(T,{className:J,role:F,"aria-label":z,children:[G,U,W]}):jsxs("div",{className:J,role:F,"aria-label":z,children:[G,U,W]})});Ua.displayName="PaginationControlsBase";var La=({columns:o,visibleColumns:e,visibleCount:t,totalCount:n,handleSelectAll:l,handleClearAll:u,handleCheckboxChange:s,CheckboxItem:d,classNames:i={},Header:r,OptionsListContainer:p,OptionItemContainer:g,Actions:a})=>{let m=r?jsx(r,{visibleCount:t,totalCount:n}):jsxs("div",{className:i.header,children:["Select Columns (",t," of ",n,")"]}),c=o.map(h=>{let R=jsx(d,{columnId:h.columnId,columnName:h.name,checked:e.has(h.columnId),disabled:h.required===true,onChange:s(h.columnId)});return g?jsx(g,{columnId:h.columnId,children:R},h.columnId):jsx("div",{className:i.optionItem,children:R},h.columnId)}),f=p?jsx(p,{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:[m,f,C]})};La.displayName="ColumnChooserContent";function Zc(o){let{DataGridTable:e,ColumnChooser:t,PaginationControls:n,containerComponent:l,containerProps:u}=o,s=forwardRef(function(i,r){let{dataGridProps:p,pagination:g,columnChooser:a,layout:m}=Sn(i,r);return jsx(or,{containerComponent:l,containerProps:u,className:m.className,sideBar:m.sideBarProps,toolbar:m.toolbar,toolbarBelow:m.toolbarBelow,fullScreen:m.fullScreen,formulaBar:m.formulaBar,sheetTabs:m.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:g.page,pageSize:g.pageSize,totalCount:g.displayTotalCount,onPageChange:g.setPage,onPageSizeChange:g.setPageSize,pageSizeOptions:g.pageSizeOptions,entityLabelPlural:g.entityLabelPlural}),children:jsx(e,{...p})})});return s.displayName="OGrid",we.memo(s)}var Jc={color:"var(--ogrid-error, #d32f2f)",fontSize:"0.75rem",padding:"2px 4px"},mr=class extends we.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:Jc,children:"\u26A0 Error"}):this.props.children}};var ed={background:"none",border:"none",color:"inherit",textDecoration:"underline",cursor:"pointer",padding:0,font:"inherit"};function td(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:ed,children:"clear all filters"})," ","to see all items."]}):"There are no items available at this time.")})}function od({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 rd({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 ad({dropIndicatorX:o,wrapperLeft:e,className:t}){return jsx("div",{className:t,style:{left:o-e}})}var sd={padding:"8px 12px",display:"flex",flexDirection:"column",gap:6},Va={display:"flex",alignItems:"center",gap:6,fontSize:12},Na={flex:1},no=({tempDateFrom:o,setTempDateFrom:e,tempDateTo:t,setTempDateTo:n,onApply:l,onClear:u,classNames:s})=>jsxs(Fragment,{children:[jsxs("div",{style:sd,children:[jsxs("label",{style:Va,children:["From:",jsx("input",{type:"date",value:o,onChange:d=>e(d.target.value),style:Na})]}),jsxs("label",{style:Va,children:["To:",jsx("input",{type:"date",value:t,onChange:d=>n(d.target.value),style:Na})]})]}),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"})]})]});no.displayName="DateFilterContent";function ud(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 cd(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 md(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 pd(o,e){return {renderMultiSelect:t=>jsx(o.MultiSelectFilterPopover,{...t}),renderText:t=>jsx(o.TextFilterPopover,{...t}),renderPeople:t=>jsx(o.PeopleFilterPopover,{...t}),renderDate:t=>jsx(no,{...t,classNames:e})}}export{Xc as BaseColumnHeaderMenu,ad as BaseDropIndicator,od as BaseEmptyState,Pc as BaseInlineCellEditor,rd as BaseLoadingOverlay,Du as CURSOR_CELL_STYLE,mr as CellErrorBoundary,La as ColumnChooserContent,no as DateFilterContent,td as EmptyState,Uo as FormulaBar,Wc as FormulaRefOverlay,Tu as GRID_ROOT_STYLE,wc as GridContextMenu,Uc as MarchingAntsOverlay,Ou as NOOP,or as OGridLayout,Eu as POPOVER_ANCHOR_STYLE,Fu as PREVENT_DEFAULT,Ua as PaginationControlsBase,Mu as STOP_PROPAGATION,Lo as SheetTabs,qn as SideBar,Rc as StatusBar,Gr as buildInlineEditorProps,Br as buildPopoverEditorProps,pd as createBaseFilterRenderers,Zc as createOGrid,$n as editorInputStyle,Kt as editorWrapperStyle,Vr as getCellInteractionProps,ud as getColumnHeaderFilterStateParams,Ll as getColumnHeaderMenuProps,cd as getDateFilterContentProps,md as renderFilterContent,kr as resolveCellDisplayContent,Ar as resolveCellStyle,Ia as richSelectDropdownStyle,xc as richSelectFooterStyle,Pa as richSelectNoMatchesStyle,ar as richSelectOptionHighlightedStyle,Yn as richSelectOptionStyle,wa as richSelectSearchInputStyle,lr as richSelectWrapperStyle,sr as selectChevronStyle,ir as selectDisplayStyle,Ic as selectEditorStyle,bn as useActiveCell,vn as useCellEditing,xn as useCellSelection,In as useClipboard,ea as useColumnChooserState,Ql as useColumnHeaderFilterState,ma as useColumnMeta,_n as useColumnReorder,Nn as useColumnResize,yn as useContextMenu,Un as useDataGridState,da as useDataGridTableOrchestration,Bn as useDateFilterState,Dn as useDebounce,On as useFillHandle,pn as useFilterOptions,Cn as useFormulaBar,gn as useFormulaEngine,Vn as useInlineCellEditorState,wn as useKeyboardNavigation,k as useLatestRef,sa as useListVirtualizer,An as useMultiSelectFilterState,Sn as useOGrid,Kn as usePaginationControls,Gn as usePeopleFilterState,Hn as useRichSelectState,Pn as useRowSelection,zn as useSelectState,Rn as useSideBarState,Mn as useTableLayout,Ln as useTextFilterState,Tn as useUndoRedo,Wn 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.9",
|
|
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.9",
|
|
43
43
|
"@tanstack/react-virtual": "^3.0.0"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|