@alaarab/ogrid-react-material 2.5.4 → 2.5.5

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 CHANGED
@@ -36,4 +36,4 @@ table:not([data-virtual-scroll]) .ogrid-mat-tbody tr { content-visibility: auto;
36
36
 
37
37
  .ogrid-mat-wrapper [data-drag-range] { background-color: rgba(33,115,70,0.12); }
38
38
  .ogrid-mat-wrapper [data-drag-anchor] { background-color: var(--ogrid-paper-bg, #fff); }
39
- `,yo=false;function Ro(){if(yo||typeof document>"u")return;yo=true;let e=document.createElement("style");e.setAttribute("data-ogrid-mat",""),e.textContent=ht,document.head.appendChild(e);}var ze=({value:e,onValueChange:t,onApply:r,onClear:o})=>jsxs(Box,{sx:{width:260},children:[jsx(Box,{sx:{p:1.5},children:jsx(TextField,{placeholder:"Enter search term...",value:e,onChange:i=>t(i.target.value),onKeyDown:i=>{i.stopPropagation(),i.key==="Enter"&&(i.preventDefault(),r());},autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}})}),jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,p:1.5,pt:0},children:[jsx(Button,{size:"small",disabled:!e,onClick:o,children:"Clear"}),jsx(Button,{size:"small",variant:"contained",onClick:r,children:"Apply"})]})]});ze.displayName="TextFilterPopover";var Io=40,Ge=({searchText:e,onSearchChange:t,options:r,filteredOptions:o,selected:i,onOptionToggle:c,onSelectAll:l,onClearSelection:m,onApply:s,isLoading:d})=>{let g=useListVirtualizer({count:o.length,itemHeight:Io,containerHeight:240});return jsxs(Box,{sx:{width:280},children:[jsxs(Box,{sx:{p:1.5,pb:.5},children:[jsx(TextField,{placeholder:"Search...",value:e,onChange:f=>t(f.target.value),onKeyDown:f=>f.stopPropagation(),autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}}),jsxs(Typography,{variant:"caption",color:"text.secondary",sx:{mt:.5,display:"block"},children:[o.length," of ",r.length," options"]})]}),jsxs(Box,{sx:{display:"flex",justifyContent:"space-between",px:1.5,py:.5},children:[jsxs(Button,{size:"small",onClick:l,children:["Select All (",o.length,")"]}),jsx(Button,{size:"small",onClick:m,children:"Clear"})]}),jsx(Box,{ref:g.containerRef,onScroll:g.onScroll,sx:{maxHeight:240,overflowY:"auto",px:.5},children:d?jsx(Box,{sx:{display:"flex",justifyContent:"center",py:2},children:jsx(CircularProgress,{size:24})}):o.length===0?jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"No options found"}):jsx(Box,{sx:{height:g.totalHeight,position:"relative"},children:g.visibleItems.map(({index:f,offsetTop:v})=>{let x=o[f];return jsx(FormControlLabel,{control:jsx(Checkbox,{size:"small",checked:i.has(x),onChange:R=>c(x,R.target.checked)}),label:jsx(Typography,{variant:"body2",children:x}),sx:{position:"absolute",top:v,width:"100%",height:Io,boxSizing:"border-box",display:"flex",alignItems:"center",mx:0,"& .MuiFormControlLabel-label":{flex:1,minWidth:0}}},x)})})}),jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,p:1.5,pt:1,borderTop:1,borderColor:"divider"},children:[jsx(Button,{size:"small",onClick:m,children:"Clear"}),jsx(Button,{size:"small",variant:"contained",onClick:s,children:"Apply"})]})]})};Ge.displayName="MultiSelectFilterPopover";var Ve=({selectedUser:e,searchText:t,onSearchChange:r,suggestions:o,isLoading:i,onUserSelect:c,onClearUser:l,inputRef:m})=>jsxs(Box,{sx:{width:300},children:[e&&jsxs(Box,{sx:{p:1.5,pb:1,borderBottom:1,borderColor:"divider"},children:[jsx(Typography,{variant:"caption",color:"text.secondary",children:"Currently filtered by:"}),jsxs(Box,{sx:{display:"flex",alignItems:"center",gap:1,mt:.5},children:[jsx(Avatar,{src:e.photo,alt:e.displayName,sx:{width:32,height:32},children:e.displayName?.[0]}),jsxs(Box,{sx:{flex:1,minWidth:0},children:[jsx(Typography,{variant:"body2",noWrap:true,children:e.displayName}),jsx(Typography,{variant:"caption",color:"text.secondary",noWrap:true,children:e.email})]}),jsx(IconButton,{size:"small",onClick:l,"aria-label":"Remove filter",children:jsx(Clear,{fontSize:"small"})})]})]}),jsx(Box,{sx:{p:1.5,pb:.5},children:jsx(TextField,{inputRef:m,placeholder:"Search for a person...",value:t,onChange:s=>r(s.target.value),onKeyDown:s=>s.stopPropagation(),autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}})}),jsx(Box,{sx:{maxHeight:240,overflowY:"auto"},children:i&&t.trim()?jsx(Box,{sx:{display:"flex",justifyContent:"center",py:2},children:jsx(CircularProgress,{size:24})}):o.length===0&&t.trim()?jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"No results found"}):t.trim()?o.map(s=>jsxs(Box,{onClick:()=>c(s),sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:1,cursor:"pointer","&:hover":{bgcolor:"action.hover"}},children:[jsx(Avatar,{src:s.photo,alt:s.displayName,sx:{width:32,height:32},children:s.displayName?.[0]}),jsxs(Box,{sx:{flex:1,minWidth:0},children:[jsx(Typography,{variant:"body2",noWrap:true,children:s.displayName}),jsx(Typography,{variant:"caption",color:"text.secondary",noWrap:true,children:s.email})]})]},s.id||s.email||s.displayName)):jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"Type to search..."})}),e&&jsx(Box,{sx:{p:1.5,pt:1,borderTop:1,borderColor:"divider"},children:jsx(Button,{size:"small",fullWidth:true,onClick:l,children:"Clear Filter"})})]});Ve.displayName="PeopleFilterPopover";var Ut=createBaseFilterRenderers({MultiSelectFilterPopover:Ge,TextFilterPopover:ze,PeopleFilterPopover:Ve}),xe=ye.memo(e=>{let{columnName:t,filterType:r,options:o=[],isLoadingOptions:i=false,selectedUser:c}=e,l=useColumnHeaderFilterState(getColumnHeaderFilterStateParams(e)),{headerRef:m,isFilterOpen:s,setFilterOpen:d,hasActiveFilter:g,popoverPosition:f,handlers:v}=l;return jsxs(Box,{ref:m,sx:{display:"flex",alignItems:"center",width:"100%",minWidth:0},children:[jsx(Box,{sx:{flex:1,minWidth:0,overflow:"hidden"},children:jsx(Tooltip,{title:t,arrow:true,children:jsx(Typography,{variant:"body2",fontWeight:600,noWrap:true,"data-header-label":true,sx:{lineHeight:1.4},children:t})})}),jsx(Box,{sx:{display:"flex",alignItems:"center",ml:.5,flexShrink:0},children:r!=="none"&&jsxs(IconButton,{size:"small",onClick:v.handleFilterIconClick,"aria-label":`Filter ${t}`,"aria-expanded":s,"aria-haspopup":"dialog",title:`Filter ${t}`,color:g||s?"primary":"default",sx:{p:.25,position:"relative"},children:[jsx(FilterList,{sx:{fontSize:16}}),g&&jsx(Box,{sx:{position:"absolute",top:2,right:2,width:6,height:6,borderRadius:"50%",bgcolor:"primary.main"}})]})}),jsxs(Popover,{open:s&&r!=="none",onClose:()=>d(false),anchorReference:"anchorPosition",anchorPosition:f??{top:0,left:0},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},slotProps:{paper:{sx:{mt:.5,overflow:"visible"},onClick:x=>x.stopPropagation()}},children:[jsx(Box,{sx:{borderBottom:1,borderColor:"divider",px:1.5,py:1},children:jsxs(Typography,{variant:"subtitle2",children:["Filter: ",t]})}),renderFilterContent(r,l,o??[],i,c,Ut)]})]})});xe.displayName="ColumnHeaderFilter";function Pe(e){let{isOpen:t,anchorElement:r,onClose:o,onPinLeft:i,onPinRight:c,onUnpin:l,onSortAsc:m,onSortDesc:s,onClearSort:d,onAutosizeThis:g,onAutosizeAll:f,canPinLeft:v,canPinRight:x,canUnpin:R,currentSort:I,isSortable:B,isResizable:M}=e,[C,O]=useState(void 0);useEffect(()=>{if(t&&r){let P=r.getBoundingClientRect();O({top:P.bottom+4,left:P.left});}else O(void 0);},[t,r]);let D=useMemo(()=>({canPinLeft:v,canPinRight:x,canUnpin:R,currentSort:I,isSortable:B,isResizable:M}),[v,x,R,I,B,M]),H=useMemo(()=>getColumnHeaderMenuItems(D),[D]),pe=useMemo(()=>({pinLeft:i,pinRight:c,unpin:l,sortAsc:m,sortDesc:s,clearSort:d,autosizeThis:g,autosizeAll:f}),[i,c,l,m,s,d,g,f]);return jsx(Menu,{open:t&&!!C,onClose:o,anchorReference:"anchorPosition",anchorPosition:C,slotProps:{paper:{sx:{minWidth:140}}},children:H.flatMap((P,re)=>{let q=[jsx(MenuItem,{disabled:P.disabled,onClick:()=>{pe[P.id](),o();},children:P.label},P.id)];return P.divider&&re<H.length-1&&q.push(jsx(Divider,{},`${P.id}-divider`)),q})})}function Bo(e){return jsx(BaseInlineCellEditor,{...e,renderCheckbox:(t,r,o)=>jsx(Checkbox,{checked:t,onChange:(i,c)=>r(c),onKeyDown:i=>i.key==="Escape"&&(i.preventDefault(),o()),size:"small"})})}var Qt=e=>({display:"inline-flex",alignItems:"center",gap:.5,...e?{}:{mr:2,"&::after":{content:'"|"',ml:2,color:"divider"}}});function Mo(e){let t=getStatusBarParts(e);return jsx(Box,{role:"status","aria-live":"polite",sx:{mt:"auto",px:1.5,py:.75,borderTop:1,borderColor:"divider",bgcolor:"action.hover"},children:t.map((r,o)=>jsxs(Typography,{component:"span",variant:"body2",sx:Qt(o===t.length-1),children:[jsx(Typography,{component:"span",color:"text.secondary",children:r.label}),jsx(Typography,{component:"span",fontWeight:600,children:r.value.toLocaleString()})]},r.key))})}function Oo(e){let{x:t,y:r,hasSelection:o,canUndo:i,canRedo:c,onClose:l}=e,m=ye.useMemo(()=>getContextMenuHandlers(e),[e]),s=ye.useCallback(d=>!!(d.disabledWhenNoSelection&&!o||d.id==="undo"&&!i||d.id==="redo"&&!c),[o,i,c]);return jsx(Menu,{open:true,onClose:l,anchorReference:"anchorPosition",anchorPosition:{top:r,left:t},MenuListProps:{dense:true,"aria-label":"Grid context menu"},children:GRID_CONTEXT_MENU_ITEMS.flatMap(d=>{let g=[];return d.dividerBefore&&g.push(jsx(Divider,{},`${d.id}-divider`)),g.push(jsxs(MenuItem,{onClick:m[d.id],disabled:s(d),children:[jsx("span",{style:{flex:1},children:d.label}),d.shortcut&&jsx("span",{style:{marginLeft:24,color:"var(--ogrid-fg-muted, rgba(0,0,0,0.4))",fontSize:"0.8em"},children:formatShortcut(d.shortcut)})]},d.id)),g})})}var cr={py:4,px:2,textAlign:"center",borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function Ho({emptyState:e}){return jsx(Box,{sx:cr,children:e.render?e.render():jsxs(Fragment,{children:[jsx(Typography,{variant:"h6",gutterBottom:true,children:"No results found"}),jsx(Typography,{variant:"body2",color:"text.secondary",children:e.message!=null?e.message:e.hasActiveFilters?jsxs(Fragment,{children:["No items match your current filters. Try adjusting your search or"," ",jsx(Button,{variant:"text",size:"small",onClick:e.onClearAll,children:"clear all filters"})," ","to see all items."]}):"There are no items available at this time."})]})})}var mr={position:"absolute",inset:0,zIndex:2,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--ogrid-loading-bg, rgba(255,255,255,0.7))"},gr={display:"flex",flexDirection:"column",alignItems:"center",gap:1,p:2,bgcolor:"background.paper",border:1,borderColor:"divider",borderRadius:1};function Fo({message:e}){return jsx(Box,{sx:mr,children:jsxs(Box,{sx:gr,children:[jsx(CircularProgress,{size:24}),jsx(Typography,{variant:"body2",color:"text.secondary",children:e})]})})}function Ao({dropIndicatorX:e,wrapperLeft:t}){return jsx(Box,{sx:{position:"absolute",top:0,bottom:0,width:3,bgcolor:"var(--ogrid-primary, #217346)",pointerEvents:"none",zIndex:100,transition:"left 0.05s",left:e-t}})}var zr={position:"relative",flex:1,minHeight:0,display:"flex",flexDirection:"column"},Ur={width:"100%",height:"100%",display:"flex",alignItems:"center",boxSizing:"border-box",outline:"2px solid var(--ogrid-selection-color, #217346)",outlineOffset:"-1px",zIndex:2,position:"relative",background:"var(--ogrid-bg, #fff)",overflow:"visible",padding:0},Gr={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,maxWidth:CHECKBOX_COLUMN_WIDTH,textAlign:"center"},Vr={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,p:0},Xr={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,maxWidth:CHECKBOX_COLUMN_WIDTH,textAlign:"center",padding:0,position:"relative",height:"1px",borderBottom:"1px solid var(--ogrid-border, rgba(224,224,224,1))"},A="var(--ogrid-header-bg, #f5f5f5)",Kr={zIndex:8,bgcolor:A,"& th":{bgcolor:A}},zo={bgcolor:A},qe={textAlign:"center",fontSize:"11px",fontWeight:500,color:"text.secondary",py:"2px",px:"4px",bgcolor:A,borderBottom:1,borderColor:"divider",userSelect:"none",fontVariantNumeric:"tabular-nums"},Yr={textAlign:"center",fontWeight:600,borderBottom:2,borderColor:"divider",py:.75};function $r(e){switch(e){case "compact":return {px:"8px",py:"4px"};case "comfortable":return {px:"16px",py:"12px"};default:return {px:"10px",py:"6px"}}}var Uo={compact:{padding:"4px 8px"},normal:{padding:"6px 10px"},comfortable:{padding:"12px 16px"}},Ze={fontWeight:600,position:"sticky",top:0,zIndex:8,bgcolor:A},jr={...Ze,position:"sticky",left:0,top:0,zIndex:10,bgcolor:A,willChange:"transform",borderRight:"1px solid",borderRightColor:"divider",boxShadow:"2px 0 4px -1px rgba(0,0,0,0.1)"},qr={...Ze,position:"sticky",right:0,top:0,zIndex:10,bgcolor:A,willChange:"transform",borderLeft:"1px solid",borderLeftColor:"divider",boxShadow:"-2px 0 4px -1px rgba(0,0,0,0.1)"},Je={fontWeight:600,zIndex:8,bgcolor:A},Zr={...Je,position:"sticky",left:0,zIndex:10,bgcolor:A,willChange:"transform",borderRight:"1px solid",borderRightColor:"divider",boxShadow:"2px 0 4px -1px rgba(0,0,0,0.1)"},Jr={...Je,position:"sticky",right:0,zIndex:10,bgcolor:A,willChange:"transform",borderLeft:"1px solid",borderLeftColor:"divider",boxShadow:"-2px 0 4px -1px rgba(0,0,0,0.1)"},Go={position:"absolute",top:0,right:"-3px",bottom:0,width:"8px",cursor:"col-resize",userSelect:"none","&::after":{content:'""',position:"absolute",top:0,right:"3px",bottom:0,width:"2px"},"&:hover::after":{bgcolor:"primary.main"},"&:active::after":{bgcolor:"primary.dark"}},Qr={minHeight:"100%",minWidth:40},en={p:1},on={display:"flex",flexDirection:"column",minHeight:"100%"},tn={display:"flex",alignItems:"center",gap:.5},rn={background:"transparent",border:"none",cursor:"pointer",padding:"2px 4px",fontSize:"16px",lineHeight:1,color:"text.secondary",opacity:1,transition:"background-color 0.15s",borderRadius:"3px",display:"flex",alignItems:"center",justifyContent:"center",minWidth:"20px",height:"20px","&:hover":{bgcolor:"action.hover"}},nn={position:"relative",opacity:1},an={position:"relative",opacity:.6},Vo={padding:0,border:"none"};function ln(e){let{item:t,rowIndex:r,rowId:o,isSelected:i,columnLayouts:c,renderCellContent:l,handleSingleRowClick:m,handleRowCheckboxChange:s,lastMouseShiftRef:d,hasCheckboxCol:g,hasRowNumbersCol:f,rowNumberOffset:v,rowHeight:x,leftSpacerWidth:R,rightSpacerWidth:I,globalColIndexMap:B,rowNumWidth:M}=e;return jsxs("tr",{"data-row-id":o,onClick:m,"aria-selected":i||void 0,className:`ogrid-mat-row${i?" ogrid-mat-row--selected":""}`,style:x?{height:x}:void 0,children:[g&&jsx("td",{style:Xr,children:jsx("div",{"data-row-index":r,"data-col-index":0,onClick:STOP_PROPAGATION,className:"ogrid-mat-checkbox-wrapper",children:jsx(Checkbox,{checked:i,onChange:(C,O)=>s(o,O,r,d.current),size:"small","aria-label":`Select row ${r+1}`})})}),f&&(()=>{let C=M??ROW_NUMBER_COLUMN_WIDTH;return jsx("td",{className:"ogrid-mat-td ogrid-mat-row-number",style:{width:C,minWidth:C,maxWidth:C,left:g?CHECKBOX_COLUMN_WIDTH:0,borderBottom:"1px solid var(--ogrid-border, rgba(224,224,224,1))"},children:v+r+1})})(),R!=null&&R>0&&jsx("td",{style:{...Vo,width:R,minWidth:R},"aria-hidden":true}),c.map((C,O)=>{let D=B?B[O]:O;return jsx("td",{"data-column-id":C.col.columnId,className:C.tdClassName,style:{...C.tdStyle,minWidth:C.minWidth,width:C.width,maxWidth:C.maxWidth},children:l(t,C.col,r,D)},C.col.columnId)}),I!=null&&I>0&&jsx("td",{style:{...Vo,width:I,minWidth:I},"aria-hidden":true})]})}var sn=ye.memo(ln,areGridRowPropsEqual);Ro();function dn(e){let{virtualScrollEnabled:t,visibleRange:r,columnRange:o,items:i,getRowId:c,selectedRowIds:l,visibleCols:m,columnLayouts:s,renderCellContent:d,handleSingleRowClick:g,handleRowCheckboxChange:f,lastMouseShiftRef:v,hasCheckboxCol:x,hasRowNumbersCol:R,rowNumberOffset:I,rowHeight:B,selectionRange:M,activeCell:C,cutRange:O,copyRange:D,isDragging:H,editingCell:pe,pinnedColumns:P,rowNumWidth:re}=e,{rowLayouts:q,globalColIndexMap:ne,leftSpacerWidth:He,rightSpacerWidth:Ne}=ye.useMemo(()=>{if(!o)return {rowLayouts:s,globalColIndexMap:void 0,leftSpacerWidth:void 0,rightSpacerWidth:void 0};let y=partitionColumnsForVirtualization(m,o,P),_=[...y.pinnedLeft,...y.virtualizedUnpinned,...y.pinnedRight],Z=new Map(s.map(X=>[X.col.columnId,X])),J=[],ue=[];for(let X of _){let me=Z.get(X.columnId);me&&(J.push(me),ue.push(m.indexOf(X)));}return {rowLayouts:J,globalColIndexMap:ue,leftSpacerWidth:y.leftSpacerWidth,rightSpacerWidth:y.rightSpacerWidth}},[o,m,s,P]),w=(y,_)=>{let Z=c(y);return jsx(sn,{item:y,rowIndex:_,rowId:Z,isSelected:l.has(Z),columnLayouts:q,renderCellContent:d,handleSingleRowClick:g,handleRowCheckboxChange:f,lastMouseShiftRef:v,hasCheckboxCol:x,hasRowNumbersCol:R,rowNumberOffset:I,selectionRange:M,activeCell:C,cutRange:O,copyRange:D,isDragging:H,rowHeight:B,editingRowId:pe?.rowId??null,leftSpacerWidth:He,rightSpacerWidth:Ne,globalColIndexMap:ne,rowNumWidth:re},Z)};return jsxs("tbody",{className:"ogrid-mat-tbody",children:[t&&r.offsetTop>0&&jsx("tr",{style:{height:r.offsetTop},"aria-hidden":true}),t?i.slice(r.startIndex,r.endIndex+1).map((y,_)=>w(y,r.startIndex+_)):i.map((y,_)=>w(y,_)),t&&r.offsetBottom>0&&jsx("tr",{style:{height:r.offsetBottom},"aria-hidden":true})]})}function cn(e){let t=useDataGridTableOrchestration({props:e}),{wrapperRef:r,tableContainerRef:o,lastMouseShiftRef:i,interaction:c,pinning:l,handleResizeStart:m,handleResizeDoubleClick:s,getColumnWidth:d,isReorderDragging:g,dropIndicatorX:f,handleHeaderMouseDown:v,virtualScrollEnabled:x,visibleRange:R,columnRange:I,onHorizontalScroll:B,items:M,getRowId:C,emptyState:O,suppressHorizontalScroll:D,isLoading:H,loadingMessage:pe,ariaLabel:P,ariaLabelledBy:re,columnReorder:q,density:ne,rowHeight:He,rowNumberOffset:Ne,headerRows:w,allowOverflowX:y,fitToContent:_,showColumnLetters:Z,editCallbacks:J,interactionHandlers:ue,cellDescriptorInputRef:X,cellDescriptorCacheRef:me,pendingEditorValueRef:no,popoverAnchorElRef:Fe,handleSingleRowClick:jo,handlePasteVoid:qo,visibleCols:ge,hasCheckboxCol:ae,hasRowNumbersCol:Ce,colOffset:ao,minTableWidth:io,columnSizingOverrides:he,measuredColumnWidths:Zo,selectedRowIds:lo,handleRowCheckboxChange:Jo,handleSelectAll:Qo,allSelected:et,someSelected:ot,editingCell:tt,setPopoverAnchorEl:so,cancelPopoverEdit:co,setActiveCell:po,selectionRange:Q,hasCellSelection:rt,handleGridKeyDown:nt,handleFillHandleMouseDown:uo,handleCopy:at,handleCut:it,cutRange:mo,copyRange:go,canUndo:lt,canRedo:st,onUndo:dt,onRedo:ct,isDragging:Co,menuPosition:Ae,closeContextMenu:pt,headerFilterInput:ut,statusBarConfig:ie,showEmptyInGrid:ho,onCellError:fo,headerMenu:fe}=t,_e=useMemo(()=>$r(ne),[ne]),bo=useMemo(()=>({px:_e.px,py:_e.py}),[_e]),Se=useColumnMeta({visibleCols:ge,getColumnWidth:d,columnSizingOverrides:he,measuredColumnWidths:Zo,pinnedColumns:l.pinnedColumns,leftOffsets:l.leftOffsets,rightOffsets:l.rightOffsets,pinnedColLeftClass:"",pinnedColRightClass:""}),mt=useMemo(()=>ge.map(p=>{let u=l.pinnedColumns[p.columnId]==="left",h=l.pinnedColumns[p.columnId]==="right",N="ogrid-mat-td",n={};u?(N+=" ogrid-mat-td--pinned-left",l.leftOffsets[p.columnId]!=null&&(n.left=l.leftOffsets[p.columnId])):h&&(N+=" ogrid-mat-td--pinned-right",l.rightOffsets[p.columnId]!=null&&(n.right=l.rightOffsets[p.columnId]));let U=Se.cellStyles[p.columnId];return {col:p,tdClassName:N,tdStyle:n,minWidth:U?.minWidth??0,width:U?.width??d(p),maxWidth:U?.maxWidth??d(p)}}),[ge,Se,l.pinnedColumns,l.leftOffsets,l.rightOffsets,d]),gt=useMemo(()=>({position:"relative",flex:1,minHeight:H&&M.length===0?200:0,width:_?"fit-content":"100%",maxWidth:"100%",overflowX:D?"hidden":y?"auto":"hidden",overflowY:"auto",bgcolor:"background.paper",willChange:"scroll-position"}),[_,D,y,H,M.length]),xo=Uo[ne]??Uo.normal,Ct=useCallback((p,u,h,N)=>{let n=getCellRenderDescriptor(p,u,h,N,X.current,me.current),U=C(p),K;if(n.mode==="editing-inline")K=jsx("div",{className:"ogrid-mat-editing-cell",style:Ur,children:jsx(Bo,{...buildInlineEditorProps(p,u,n,J)})});else if(n.mode==="editing-popover"&&typeof u.cellEditor=="function"){let G=buildPopoverEditorProps(p,u,n,no.current,J),k=u.cellEditor;K=jsxs(Fragment,{children:[jsx(Box,{ref:Y=>{Y&&so(Y);},sx:Qr,"aria-hidden":true}),jsx(Popover,{open:!!Fe.current,anchorEl:Fe.current,onClose:co,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},children:jsx(Box,{sx:en,children:jsx(k,{...G})})})]});}else {let G;if(n.columnType==="boolean"){let $=!!n.displayValue;G=jsx("input",{type:"checkbox",checked:$,disabled:!n.canEditAny,onChange:n.canEditAny?()=>{J.commitCellEdit(p,u.columnId,$,!$,n.rowIndex,n.globalColIndex);}:void 0,onClick:le=>le.stopPropagation(),style:{margin:0,cursor:n.canEditAny?"pointer":"default"},"aria-label":$?"Checked":"Unchecked"});}else {let $=resolveCellDisplayContent(u,p,n.displayValue),le=resolveCellStyle(u,p,n.displayValue);G=le?jsx("span",{style:le,children:$}):$;}let k="ogrid-mat-cell";u.type==="numeric"?k+=" ogrid-mat-cell--numeric":u.type==="boolean"&&(k+=" ogrid-mat-cell--boolean"),n.canEditAny&&(k+=" ogrid-mat-cell--editable"),n.isActive&&(k+=" ogrid-mat-cell--active"),n.isActive&&n.isInRange&&(k+=" ogrid-mat-cell--active-in-range"),n.isInRange&&!n.isActive&&(k+=" ogrid-mat-cell--range"),n.isInCutRange&&(k+=" ogrid-mat-cell--cut");let Y=getCellInteractionProps(n,u.columnId,ue);K=jsxs("div",{className:k,...Y,style:xo,children:[G,n.canEditAny&&n.isSelectionEndCell&&jsx("div",{className:"ogrid-mat-fill-handle",onPointerDown:uo,"aria-label":"Fill handle"})]});}return jsx(CellErrorBoundary,{onError:fo,children:K},`${U}-${u.columnId}`)},[J,ue,uo,so,co,C,fo,X,me,xo,no,Fe]);return jsxs(Box,{sx:zr,children:[jsxs(Box,{ref:r,tabIndex:0,role:"region","aria-label":P??(re?void 0:"Data grid"),"aria-labelledby":re,onMouseDown:p=>{i.current=p.shiftKey;},onScroll:B?p=>B(p.target.scrollLeft):void 0,onKeyDown:nt,onContextMenu:PREVENT_DEFAULT,"data-density":ne,"data-overflow-x":y?"true":"false",className:"ogrid-mat-wrapper","data-ogrid-scroll-container":"",sx:gt,children:[jsx(Box,{sx:on,children:jsx("div",{style:{minWidth:y?io:void 0,overflowX:"clip"},children:jsxs(Box,{ref:o,sx:H&&M.length>0?an:nn,children:[jsxs(Table,{size:"small",role:"grid",sx:{minWidth:io,borderCollapse:"separate",borderSpacing:0},"data-virtual-scroll":x?"":void 0,children:[jsxs(TableHead,{sx:Kr,children:[Z&&jsxs(TableRow,{sx:zo,children:[ae&&jsx(TableCell,{sx:qe}),Ce&&jsx(TableCell,{sx:qe}),ge.map((p,u)=>{let h=Se.hdrStyles[p.columnId];return jsx(TableCell,{component:"th",sx:{...qe,minWidth:h?.minWidth,width:h?.width,maxWidth:h?.maxWidth},children:indexToColumnLetter(u)},p.columnId)})]}),w.map((p,u)=>jsxs(TableRow,{sx:zo,children:[u===w.length-1&&ae&&jsx(TableCell,{padding:"checkbox",rowSpan:w.length>1?1:void 0,sx:Gr,children:jsx(Checkbox,{checked:et,indeterminate:ot,onChange:(h,N)=>Qo(!!N),size:"small","aria-label":"Select all rows"})}),u===0&&u<w.length-1&&ae&&jsx(TableCell,{rowSpan:w.length-1,sx:Vr}),u===w.length-1&&Ce&&(()=>{let h=he?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return jsxs(TableCell,{component:"th",scope:"col",rowSpan:w.length>1?1:void 0,sx:{width:h,minWidth:h,maxWidth:h,textAlign:"center",fontWeight:600,backgroundColor:A,position:"sticky",left:ae?CHECKBOX_COLUMN_WIDTH:0,zIndex:4,...bo},children:["#",jsx(Box,{onPointerDown:N=>{po(null),c.setSelectionRange(null),r.current?.focus({preventScroll:true}),m(N,{columnId:ROW_NUMBER_COLUMN_ID,name:"#"});},sx:Go})]})})(),u===0&&u<w.length-1&&Ce&&(()=>{let h=he?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return jsx(TableCell,{rowSpan:w.length-1,sx:{width:h,minWidth:h,position:"sticky",left:ae?CHECKBOX_COLUMN_WIDTH:0,zIndex:4,backgroundColor:"background.paper"}})})(),p.map((h,N)=>{if(h.isGroup)return jsx(TableCell,{colSpan:h.colSpan,component:"th",scope:"colgroup",sx:Yr,children:h.label},N);if(!h.columnDef)return null;let n=h.columnDef,U=l.pinnedColumns[n.columnId]==="left",K=l.pinnedColumns[n.columnId]==="right",G=t.stickyHeader?U?jr:K?qr:Ze:U?Zr:K?Jr:Je,k=U&&l.leftOffsets[n.columnId]!=null?{...G,left:l.leftOffsets[n.columnId]}:K&&l.rightOffsets[n.columnId]!=null?{...G,right:l.rightOffsets[n.columnId]}:G,Y=Se.hdrStyles[n.columnId],le=e.sortBy===n.columnId?e.sortDirection==="asc"?"ascending":"descending":void 0;return jsxs(TableCell,{component:"th",scope:"col","data-column-id":n.columnId,rowSpan:w.length>1?w.length-u:void 0,"aria-sort":le,sx:{...k,...bo,minWidth:Y?.minWidth,width:Y?.width,maxWidth:Y?.maxWidth,...q?{cursor:g?"grabbing":"grab"}:{},"&:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"-2px",zIndex:11}},onPointerDown:q?j=>v(n.columnId,j):void 0,children:[jsxs(Box,{sx:tn,children:[jsx(xe,{...getHeaderFilterConfig(n,ut)}),jsx(Box,{component:"button",onClick:j=>{j.stopPropagation(),fe.isOpen&&fe.openForColumn===n.columnId?fe.close():fe.open(n.columnId,j.currentTarget);},"aria-label":"Column options",title:"Column options",sx:rn,children:"\u22EE"})]}),jsx(Box,{onPointerDown:j=>{po(null),c.setSelectionRange(null),r.current?.focus({preventScroll:true}),m(j,n);},onDoubleClick:j=>s(j,n),sx:Go})]},n.columnId)})]},u))]}),!ho&&jsx(dn,{virtualScrollEnabled:x,visibleRange:R,columnRange:I,items:M,getRowId:C,selectedRowIds:lo,visibleCols:ge,columnLayouts:mt,renderCellContent:Ct,handleSingleRowClick:jo,handleRowCheckboxChange:Jo,lastMouseShiftRef:i,hasCheckboxCol:ae,hasRowNumbersCol:Ce,rowNumberOffset:Ne,rowHeight:He,selectionRange:Q,activeCell:c.activeCell,cutRange:mo,copyRange:go,isDragging:Co,editingCell:tt,pinnedColumns:l.pinnedColumns,rowNumWidth:Ce?he?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH:void 0})]}),g&&f!=null&&jsx(Ao,{dropIndicatorX:f,wrapperLeft:r.current?.getBoundingClientRect().left??0}),jsx(MarchingAntsOverlay,{containerRef:o,selectionRange:Q,copyRange:go,cutRange:mo,colOffset:ao,items:M,visibleColumns:e.visibleColumns,columnSizingOverrides:he,columnOrder:e.columnOrder,isDragging:Co}),e.formulaReferences&&e.formulaReferences.length>0&&jsx(FormulaRefOverlay,{containerRef:o,references:e.formulaReferences,colOffset:ao}),ho&&O&&jsx(Ho,{emptyState:O})]})})}),Ae&&createPortal(jsx(Oo,{x:Ae.x,y:Ae.y,hasSelection:rt,canUndo:lt,canRedo:st,onUndo:dt??NOOP,onRedo:ct??NOOP,onCopy:at,onCut:it,onPaste:qo,onSelectAll:t.interaction.handleSelectAllCells,onClose:pt}),document.body),jsx(Pe,{...getColumnHeaderMenuProps(fe)})]}),ie&&jsx(Mo,{totalCount:ie.totalCount,filteredCount:ie.filteredCount,selectedCount:ie.selectedCount??lo.size,selectedCellCount:Q?(Math.abs(Q.endRow-Q.startRow)+1)*(Math.abs(Q.endCol-Q.startCol)+1):void 0,aggregation:ie.aggregation,suppressRowCount:ie.suppressRowCount}),H&&jsx(Fo,{message:pe})]})}var Qe=ye.memo(cn);var Sn=({columnId:e,columnName:t,checked:r,disabled:o,onChange:i})=>jsx(FormControlLabel,{control:jsx(Checkbox,{size:"small",checked:r,onChange:c=>{c.stopPropagation(),i(c.target.checked);},disabled:o}),label:jsx(Typography,{variant:"body2",children:t}),sx:{m:0}}),vn=({visibleCount:e,totalCount:t})=>jsx(Box,{sx:{px:1.5,py:1,borderBottom:1,borderColor:"divider",bgcolor:"action.hover"},children:jsxs(Typography,{variant:"subtitle2",fontWeight:600,children:["Select Columns (",e," of ",t,")"]})}),In=({children:e})=>jsx(Box,{sx:{maxHeight:320,overflowY:"auto",py:.5},children:e}),Pn=({children:e})=>jsx(Box,{sx:{px:1.5,minHeight:32,display:"flex",alignItems:"center"},children:e}),wn=({onClearAll:e,onSelectAll:t})=>jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"},children:[jsx(Button,{size:"small",onClick:e,sx:{textTransform:"none"},children:"Clear All"}),jsx(Button,{size:"small",variant:"contained",onClick:t,sx:{textTransform:"none"},children:"Select All"})]}),oo=e=>{let{columns:t,visibleColumns:r,onVisibilityChange:o,onSetVisibleColumns:i,className:c}=e,[l,m]=useState(null),s=useRef(null),{open:d,setOpen:g,handleClose:f,handleCheckboxChange:v,handleSelectAll:x,handleClearAll:R,visibleCount:I,totalCount:B}=useColumnChooserState({columns:t,visibleColumns:r,onVisibilityChange:o,onSetVisibleColumns:i});return jsxs(Box,{className:c,sx:{display:"inline-flex"},children:[jsxs(Button,{ref:s,variant:"outlined",size:"small",color:"inherit",startIcon:jsx(ViewColumn,{}),endIcon:d?jsx(ExpandLess,{}):jsx(ExpandMore,{}),onClick:D=>{d?(f(),m(null)):(m(D.currentTarget),g(true));},"aria-expanded":d,"aria-haspopup":"listbox",sx:{textTransform:"none",fontWeight:600,borderColor:d?"primary.main":"divider"},children:["Column Visibility (",I," of ",B,")"]}),jsx(Popover,{open:d,anchorEl:l,onClose:()=>{f(),m(null);},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},slotProps:{paper:{sx:{mt:.5,minWidth:220}}},children:jsx(ColumnChooserContent,{columns:t,visibleColumns:r,visibleCount:I,totalCount:B,handleSelectAll:x,handleClearAll:R,handleCheckboxChange:D=>H=>v(D)(H),CheckboxItem:Sn,Header:vn,OptionsListContainer:In,OptionItemContainer:Pn,Actions:wn})})]})};var Nn={first:jsx(FirstPage,{fontSize:"small"}),prev:jsx(ChevronLeft,{fontSize:"small"}),next:jsx(ChevronRight,{fontSize:"small"}),last:jsx(LastPage,{fontSize:"small"})},Fn=({variant:e,onClick:t,disabled:r,"aria-label":o})=>jsx(IconButton,{size:"small",onClick:t,disabled:r,"aria-label":o,children:Nn[e]}),An=({onClick:e,active:t,"aria-label":r,"aria-current":o,children:i})=>jsx(Button,{variant:t?"contained":"outlined",size:"small",onClick:e,"aria-label":r,"aria-current":o,sx:{minWidth:32,px:.5},children:i}),_n=({value:e,options:t,onChange:r,"aria-label":o})=>jsx(Select,{value:e,onChange:c=>r(Number(c.target.value)),size:"small","aria-label":o,sx:{minWidth:70},children:t.map(c=>jsx(MenuItem,{value:c,children:c},c))}),Wn=({children:e,className:t,role:r,"aria-label":o})=>jsx(Box,{className:t,role:r,"aria-label":o,sx:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:2,px:1.5,width:"100%",minWidth:0,boxSizing:"border-box"},children:e}),zn=({children:e})=>jsx(Typography,{variant:"body2",color:"text.secondary",children:e}),Un=({children:e})=>jsx(Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:e}),Gn=({children:e})=>jsx(Box,{sx:{display:"flex",alignItems:"center",gap:1},children:e}),Vn=()=>jsx(Typography,{variant:"body2",color:"text.secondary",children:"Rows"}),Xn=()=>jsx(Typography,{variant:"body2",color:"text.secondary",sx:{mx:.5},"aria-hidden":true,children:"\u2026"}),Kn={NavButton:Fn,PageButton:An,PageSizeSelect:_n,OuterContainer:Wn,InfoText:zn,NavButtonsContainer:Un,PageSizeContainer:Gn,PageSizeLabel:Vn,Ellipsis:Xn},Le=ye.memo(e=>jsx(PaginationControlsBase,{...e,slots:Kn}));Le.displayName="PaginationControls";var qn=ye.forwardRef(function(t,r){let o=useTheme(),i=ye.useMemo(()=>({display:"flex",flexDirection:"column",gap:1,"--ogrid-bg":o.palette.background.default,"--ogrid-border":o.palette.divider,"--ogrid-header-bg":o.palette.mode==="dark"?o.palette.grey[800]:o.palette.grey[100],"--ogrid-fg":o.palette.text.primary,"--ogrid-fg-secondary":o.palette.text.secondary,"--ogrid-fg-muted":o.palette.text.disabled,"--ogrid-hover-bg":o.palette.action.hover,"--ogrid-paper-bg":o.palette.background.paper,"--ogrid-primary":o.palette.primary.main,"--ogrid-selection-bg":o.palette.action.selected}),[o]);return jsx(Box,{ref:r,sx:i,...t})}),$o=createOGrid({DataGridTable:Qe,ColumnChooser:oo,PaginationControls:Le,containerComponent:qn});export{oo as ColumnChooser,xe as ColumnHeaderFilter,Pe as ColumnHeaderMenu,Qe as DataGridTable,$o as OGrid,Le as PaginationControls};
39
+ `,yo=false;function Ro(){if(yo||typeof document>"u")return;yo=true;let e=document.createElement("style");e.setAttribute("data-ogrid-mat",""),e.textContent=ht,document.head.appendChild(e);}var ze=({value:e,onValueChange:t,onApply:r,onClear:o})=>jsxs(Box,{sx:{width:260},children:[jsx(Box,{sx:{p:1.5},children:jsx(TextField,{placeholder:"Enter search term...",value:e,onChange:i=>t(i.target.value),onKeyDown:i=>{i.stopPropagation(),i.key==="Enter"&&(i.preventDefault(),r());},autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}})}),jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,p:1.5,pt:0},children:[jsx(Button,{size:"small",disabled:!e,onClick:o,children:"Clear"}),jsx(Button,{size:"small",variant:"contained",onClick:r,children:"Apply"})]})]});ze.displayName="TextFilterPopover";var Io=40,Ge=({searchText:e,onSearchChange:t,options:r,filteredOptions:o,selected:i,onOptionToggle:c,onSelectAll:l,onClearSelection:m,onApply:s,isLoading:d})=>{let g=useListVirtualizer({count:o.length,itemHeight:Io,containerHeight:240});return jsxs(Box,{sx:{width:280},children:[jsxs(Box,{sx:{p:1.5,pb:.5},children:[jsx(TextField,{placeholder:"Search...",value:e,onChange:f=>t(f.target.value),onKeyDown:f=>f.stopPropagation(),autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}}),jsxs(Typography,{variant:"caption",color:"text.secondary",sx:{mt:.5,display:"block"},children:[o.length," of ",r.length," options"]})]}),jsxs(Box,{sx:{display:"flex",justifyContent:"space-between",px:1.5,py:.5},children:[jsxs(Button,{size:"small",onClick:l,children:["Select All (",o.length,")"]}),jsx(Button,{size:"small",onClick:m,children:"Clear"})]}),jsx(Box,{ref:g.containerRef,onScroll:g.onScroll,sx:{maxHeight:240,overflowY:"auto",px:.5},children:d?jsx(Box,{sx:{display:"flex",justifyContent:"center",py:2},children:jsx(CircularProgress,{size:24})}):o.length===0?jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"No options found"}):jsx(Box,{sx:{height:g.totalHeight,position:"relative"},children:g.visibleItems.map(({index:f,offsetTop:v})=>{let x=o[f];return jsx(FormControlLabel,{control:jsx(Checkbox,{size:"small",checked:i.has(x),onChange:R=>c(x,R.target.checked)}),label:jsx(Typography,{variant:"body2",children:x}),sx:{position:"absolute",top:v,width:"100%",height:Io,boxSizing:"border-box",display:"flex",alignItems:"center",mx:0,"& .MuiFormControlLabel-label":{flex:1,minWidth:0}}},x)})})}),jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,p:1.5,pt:1,borderTop:1,borderColor:"divider"},children:[jsx(Button,{size:"small",onClick:m,children:"Clear"}),jsx(Button,{size:"small",variant:"contained",onClick:s,children:"Apply"})]})]})};Ge.displayName="MultiSelectFilterPopover";var Ve=({selectedUser:e,searchText:t,onSearchChange:r,suggestions:o,isLoading:i,onUserSelect:c,onClearUser:l,inputRef:m})=>jsxs(Box,{sx:{width:300},children:[e&&jsxs(Box,{sx:{p:1.5,pb:1,borderBottom:1,borderColor:"divider"},children:[jsx(Typography,{variant:"caption",color:"text.secondary",children:"Currently filtered by:"}),jsxs(Box,{sx:{display:"flex",alignItems:"center",gap:1,mt:.5},children:[jsx(Avatar,{src:e.photo,alt:e.displayName,sx:{width:32,height:32},children:e.displayName?.[0]}),jsxs(Box,{sx:{flex:1,minWidth:0},children:[jsx(Typography,{variant:"body2",noWrap:true,children:e.displayName}),jsx(Typography,{variant:"caption",color:"text.secondary",noWrap:true,children:e.email})]}),jsx(IconButton,{size:"small",onClick:l,"aria-label":"Remove filter",children:jsx(Clear,{fontSize:"small"})})]})]}),jsx(Box,{sx:{p:1.5,pb:.5},children:jsx(TextField,{inputRef:m,placeholder:"Search for a person...",value:t,onChange:s=>r(s.target.value),onKeyDown:s=>s.stopPropagation(),autoComplete:"off",size:"small",fullWidth:true,slotProps:{input:{startAdornment:jsx(InputAdornment,{position:"start",children:jsx(Search,{fontSize:"small"})})}}})}),jsx(Box,{sx:{maxHeight:240,overflowY:"auto"},children:i&&t.trim()?jsx(Box,{sx:{display:"flex",justifyContent:"center",py:2},children:jsx(CircularProgress,{size:24})}):o.length===0&&t.trim()?jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"No results found"}):t.trim()?o.map(s=>jsxs(Box,{onClick:()=>c(s),sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:1,cursor:"pointer","&:hover":{bgcolor:"action.hover"}},children:[jsx(Avatar,{src:s.photo,alt:s.displayName,sx:{width:32,height:32},children:s.displayName?.[0]}),jsxs(Box,{sx:{flex:1,minWidth:0},children:[jsx(Typography,{variant:"body2",noWrap:true,children:s.displayName}),jsx(Typography,{variant:"caption",color:"text.secondary",noWrap:true,children:s.email})]})]},s.id||s.email||s.displayName)):jsx(Typography,{variant:"body2",color:"text.secondary",sx:{py:2,textAlign:"center"},children:"Type to search..."})}),e&&jsx(Box,{sx:{p:1.5,pt:1,borderTop:1,borderColor:"divider"},children:jsx(Button,{size:"small",fullWidth:true,onClick:l,children:"Clear Filter"})})]});Ve.displayName="PeopleFilterPopover";var Ut=createBaseFilterRenderers({MultiSelectFilterPopover:Ge,TextFilterPopover:ze,PeopleFilterPopover:Ve}),xe=ye.memo(e=>{let{columnName:t,filterType:r,options:o=[],isLoadingOptions:i=false,selectedUser:c}=e,l=useColumnHeaderFilterState(getColumnHeaderFilterStateParams(e)),{headerRef:m,isFilterOpen:s,setFilterOpen:d,hasActiveFilter:g,popoverPosition:f,handlers:v}=l;return jsxs(Box,{ref:m,sx:{display:"flex",alignItems:"center",width:"100%",minWidth:0},children:[jsx(Box,{sx:{flex:1,minWidth:0,overflow:"hidden"},children:jsx(Tooltip,{title:t,arrow:true,children:jsx(Typography,{variant:"body2",fontWeight:600,noWrap:true,"data-header-label":true,sx:{lineHeight:1.4},children:t})})}),jsx(Box,{sx:{display:"flex",alignItems:"center",ml:.5,flexShrink:0},children:r!=="none"&&jsxs(IconButton,{size:"small",onClick:v.handleFilterIconClick,"aria-label":`Filter ${t}`,"aria-expanded":s,"aria-haspopup":"dialog",title:`Filter ${t}`,color:g||s?"primary":"default",sx:{p:.25,position:"relative"},children:[jsx(FilterList,{sx:{fontSize:16}}),g&&jsx(Box,{sx:{position:"absolute",top:2,right:2,width:6,height:6,borderRadius:"50%",bgcolor:"primary.main"}})]})}),jsxs(Popover,{open:s&&r!=="none",onClose:()=>d(false),anchorReference:"anchorPosition",anchorPosition:f??{top:0,left:0},anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},slotProps:{paper:{sx:{mt:.5,overflow:"visible"},onClick:x=>x.stopPropagation()}},children:[jsx(Box,{sx:{borderBottom:1,borderColor:"divider",px:1.5,py:1},children:jsxs(Typography,{variant:"subtitle2",children:["Filter: ",t]})}),renderFilterContent(r,l,o??[],i,c,Ut)]})]})});xe.displayName="ColumnHeaderFilter";function Pe(e){let{isOpen:t,anchorElement:r,onClose:o,onPinLeft:i,onPinRight:c,onUnpin:l,onSortAsc:m,onSortDesc:s,onClearSort:d,onAutosizeThis:g,onAutosizeAll:f,canPinLeft:v,canPinRight:x,canUnpin:R,currentSort:I,isSortable:B,isResizable:M}=e,[C,O]=useState(void 0);useEffect(()=>{if(t&&r){let P=r.getBoundingClientRect();O({top:P.bottom+4,left:P.left});}else O(void 0);},[t,r]);let D=useMemo(()=>({canPinLeft:v,canPinRight:x,canUnpin:R,currentSort:I,isSortable:B,isResizable:M}),[v,x,R,I,B,M]),H=useMemo(()=>getColumnHeaderMenuItems(D),[D]),pe=useMemo(()=>({pinLeft:i,pinRight:c,unpin:l,sortAsc:m,sortDesc:s,clearSort:d,autosizeThis:g,autosizeAll:f}),[i,c,l,m,s,d,g,f]);return jsx(Menu,{open:t&&!!C,onClose:o,anchorReference:"anchorPosition",anchorPosition:C,slotProps:{paper:{sx:{minWidth:140}}},children:H.flatMap((P,re)=>{let q=[jsx(MenuItem,{disabled:P.disabled,onClick:()=>{pe[P.id](),o();},children:P.label},P.id)];return P.divider&&re<H.length-1&&q.push(jsx(Divider,{},`${P.id}-divider`)),q})})}function Bo(e){return jsx(BaseInlineCellEditor,{...e,renderCheckbox:(t,r,o)=>jsx(Checkbox,{checked:t,onChange:(i,c)=>r(c),onKeyDown:i=>i.key==="Escape"&&(i.preventDefault(),o()),size:"small"})})}var Qt=e=>({display:"inline-flex",alignItems:"center",gap:.5,...e?{}:{mr:2,"&::after":{content:'"|"',ml:2,color:"divider"}}});function Mo(e){let t=getStatusBarParts(e);return jsx(Box,{role:"status","aria-live":"polite",sx:{mt:"auto",px:1.5,py:.75,borderTop:1,borderColor:"divider",bgcolor:"action.hover"},children:t.map((r,o)=>jsxs(Typography,{component:"span",variant:"body2",sx:Qt(o===t.length-1),children:[jsx(Typography,{component:"span",color:"text.secondary",children:r.label}),jsx(Typography,{component:"span",fontWeight:600,children:r.value.toLocaleString()})]},r.key))})}function Oo(e){let{x:t,y:r,hasSelection:o,canUndo:i,canRedo:c,onClose:l}=e,m=ye.useMemo(()=>getContextMenuHandlers(e),[e]),s=ye.useCallback(d=>!!(d.disabledWhenNoSelection&&!o||d.id==="undo"&&!i||d.id==="redo"&&!c),[o,i,c]);return jsx(Menu,{open:true,onClose:l,anchorReference:"anchorPosition",anchorPosition:{top:r,left:t},MenuListProps:{dense:true,"aria-label":"Grid context menu"},children:GRID_CONTEXT_MENU_ITEMS.flatMap(d=>{let g=[];return d.dividerBefore&&g.push(jsx(Divider,{},`${d.id}-divider`)),g.push(jsxs(MenuItem,{onClick:m[d.id],disabled:s(d),children:[jsx("span",{style:{flex:1},children:d.label}),d.shortcut&&jsx("span",{style:{marginLeft:24,color:"var(--ogrid-fg-muted, rgba(0,0,0,0.4))",fontSize:"0.8em"},children:formatShortcut(d.shortcut)})]},d.id)),g})})}var cr={py:4,px:2,textAlign:"center",borderTop:1,borderColor:"divider",bgcolor:"action.hover"};function Ho({emptyState:e}){return jsx(Box,{sx:cr,children:e.render?e.render():jsxs(Fragment,{children:[jsx(Typography,{variant:"h6",gutterBottom:true,children:"No results found"}),jsx(Typography,{variant:"body2",color:"text.secondary",children:e.message!=null?e.message:e.hasActiveFilters?jsxs(Fragment,{children:["No items match your current filters. Try adjusting your search or"," ",jsx(Button,{variant:"text",size:"small",onClick:e.onClearAll,children:"clear all filters"})," ","to see all items."]}):"There are no items available at this time."})]})})}var mr={position:"absolute",inset:0,zIndex:2,display:"flex",alignItems:"center",justifyContent:"center",background:"var(--ogrid-loading-bg, rgba(255,255,255,0.7))"},gr={display:"flex",flexDirection:"column",alignItems:"center",gap:1,p:2,bgcolor:"background.paper",border:1,borderColor:"divider",borderRadius:1};function Fo({message:e}){return jsx(Box,{sx:mr,children:jsxs(Box,{sx:gr,children:[jsx(CircularProgress,{size:24}),jsx(Typography,{variant:"body2",color:"text.secondary",children:e})]})})}function Ao({dropIndicatorX:e,wrapperLeft:t}){return jsx(Box,{sx:{position:"absolute",top:0,bottom:0,width:3,bgcolor:"var(--ogrid-primary, #217346)",pointerEvents:"none",zIndex:100,transition:"left 0.05s",left:e-t}})}var zr={position:"relative",flex:1,minHeight:0,display:"flex",flexDirection:"column"},Ur={width:"100%",height:"100%",display:"flex",alignItems:"center",boxSizing:"border-box",outline:"2px solid var(--ogrid-selection-color, #217346)",outlineOffset:"-1px",zIndex:2,position:"relative",background:"var(--ogrid-bg, #fff)",overflow:"visible",padding:0},Gr={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,maxWidth:CHECKBOX_COLUMN_WIDTH,textAlign:"center"},Vr={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,p:0},Xr={width:CHECKBOX_COLUMN_WIDTH,minWidth:CHECKBOX_COLUMN_WIDTH,maxWidth:CHECKBOX_COLUMN_WIDTH,textAlign:"center",padding:0,position:"relative",height:"1px",borderBottom:"1px solid var(--ogrid-border, rgba(224,224,224,1))"},A="var(--ogrid-header-bg, #f5f5f5)",Kr={zIndex:8,bgcolor:A,"& th":{bgcolor:A}},zo={bgcolor:A},qe={textAlign:"center",fontSize:"11px",fontWeight:500,color:"text.secondary",py:"2px",px:"4px",bgcolor:A,borderBottom:1,borderColor:"divider",userSelect:"none",fontVariantNumeric:"tabular-nums"},Yr={textAlign:"center",fontWeight:600,borderBottom:2,borderColor:"divider",py:.75};function $r(e){switch(e){case "compact":return {px:"8px",py:"4px"};case "comfortable":return {px:"16px",py:"12px"};default:return {px:"10px",py:"6px"}}}var Uo={compact:{padding:"4px 8px"},normal:{padding:"6px 10px"},comfortable:{padding:"12px 16px"}},Ze={fontWeight:600,position:"sticky",top:0,zIndex:8,bgcolor:A},jr={...Ze,position:"sticky",left:0,top:0,zIndex:10,bgcolor:A,willChange:"transform",borderRight:"1px solid",borderRightColor:"divider",boxShadow:"2px 0 4px -1px rgba(0,0,0,0.1)"},qr={...Ze,position:"sticky",right:0,top:0,zIndex:10,bgcolor:A,willChange:"transform",borderLeft:"1px solid",borderLeftColor:"divider",boxShadow:"-2px 0 4px -1px rgba(0,0,0,0.1)"},Je={fontWeight:600,zIndex:8,bgcolor:A},Zr={...Je,position:"sticky",left:0,zIndex:10,bgcolor:A,willChange:"transform",borderRight:"1px solid",borderRightColor:"divider",boxShadow:"2px 0 4px -1px rgba(0,0,0,0.1)"},Jr={...Je,position:"sticky",right:0,zIndex:10,bgcolor:A,willChange:"transform",borderLeft:"1px solid",borderLeftColor:"divider",boxShadow:"-2px 0 4px -1px rgba(0,0,0,0.1)"},Go={position:"absolute",top:0,right:"-3px",bottom:0,width:"8px",cursor:"col-resize",userSelect:"none","&::after":{content:'""',position:"absolute",top:0,right:"3px",bottom:0,width:"2px"},"&:hover::after":{bgcolor:"primary.main"},"&:active::after":{bgcolor:"primary.dark"}},Qr={minHeight:"100%",minWidth:40},en={p:1},on={display:"flex",flexDirection:"column",minHeight:"100%"},tn={display:"flex",alignItems:"center",gap:.5},rn={background:"transparent",border:"none",cursor:"pointer",padding:"2px 4px",fontSize:"16px",lineHeight:1,color:"text.secondary",opacity:1,transition:"background-color 0.15s",borderRadius:"3px",display:"flex",alignItems:"center",justifyContent:"center",minWidth:"20px",height:"20px","&:hover":{bgcolor:"action.hover"}},nn={position:"relative",opacity:1},an={position:"relative",opacity:.6},Vo={padding:0,border:"none"};function ln(e){let{item:t,rowIndex:r,rowId:o,isSelected:i,columnLayouts:c,renderCellContent:l,handleSingleRowClick:m,handleRowCheckboxChange:s,lastMouseShiftRef:d,hasCheckboxCol:g,hasRowNumbersCol:f,rowNumberOffset:v,rowHeight:x,leftSpacerWidth:R,rightSpacerWidth:I,globalColIndexMap:B,rowNumWidth:M}=e;return jsxs("tr",{"data-row-id":o,onClick:m,"aria-selected":i||void 0,className:`ogrid-mat-row${i?" ogrid-mat-row--selected":""}`,style:x?{height:x}:void 0,children:[g&&jsx("td",{style:Xr,children:jsx("div",{"data-row-index":r,"data-col-index":0,onClick:STOP_PROPAGATION,className:"ogrid-mat-checkbox-wrapper",children:jsx(Checkbox,{checked:i,onChange:(C,O)=>s(o,O,r,d.current),size:"small","aria-label":`Select row ${r+1}`})})}),f&&(()=>{let C=M??ROW_NUMBER_COLUMN_WIDTH;return jsx("td",{className:"ogrid-mat-td ogrid-mat-row-number",style:{width:C,minWidth:C,maxWidth:C,left:g?CHECKBOX_COLUMN_WIDTH:0,borderBottom:"1px solid var(--ogrid-border, rgba(224,224,224,1))"},children:v+r+1})})(),R!=null&&R>0&&jsx("td",{style:{...Vo,width:R,minWidth:R},"aria-hidden":true}),c.map((C,O)=>{let D=B?B[O]:O;return jsx("td",{"data-column-id":C.col.columnId,className:C.tdClassName,style:{...C.tdStyle,minWidth:C.minWidth,width:C.width,maxWidth:C.maxWidth},children:l(t,C.col,r,D)},C.col.columnId)}),I!=null&&I>0&&jsx("td",{style:{...Vo,width:I,minWidth:I},"aria-hidden":true})]})}var sn=ye.memo(ln,areGridRowPropsEqual);Ro();function dn(e){let{virtualScrollEnabled:t,visibleRange:r,columnRange:o,items:i,getRowId:c,selectedRowIds:l,visibleCols:m,columnLayouts:s,renderCellContent:d,handleSingleRowClick:g,handleRowCheckboxChange:f,lastMouseShiftRef:v,hasCheckboxCol:x,hasRowNumbersCol:R,rowNumberOffset:I,rowHeight:B,selectionRange:M,activeCell:C,cutRange:O,copyRange:D,isDragging:H,editingCell:pe,pinnedColumns:P,rowNumWidth:re}=e,{rowLayouts:q,globalColIndexMap:ne,leftSpacerWidth:He,rightSpacerWidth:Ne}=ye.useMemo(()=>{if(!o)return {rowLayouts:s,globalColIndexMap:void 0,leftSpacerWidth:void 0,rightSpacerWidth:void 0};let y=partitionColumnsForVirtualization(m,o,P),_=[...y.pinnedLeft,...y.virtualizedUnpinned,...y.pinnedRight],Z=new Map(s.map(X=>[X.col.columnId,X])),J=[],ue=[];for(let X of _){let me=Z.get(X.columnId);me&&(J.push(me),ue.push(m.indexOf(X)));}return {rowLayouts:J,globalColIndexMap:ue,leftSpacerWidth:y.leftSpacerWidth,rightSpacerWidth:y.rightSpacerWidth}},[o,m,s,P]),w=(y,_)=>{let Z=c(y);return jsx(sn,{item:y,rowIndex:_,rowId:Z,isSelected:l.has(Z),columnLayouts:q,renderCellContent:d,handleSingleRowClick:g,handleRowCheckboxChange:f,lastMouseShiftRef:v,hasCheckboxCol:x,hasRowNumbersCol:R,rowNumberOffset:I,selectionRange:M,activeCell:C,cutRange:O,copyRange:D,isDragging:H,rowHeight:B,editingRowId:pe?.rowId??null,leftSpacerWidth:He,rightSpacerWidth:Ne,globalColIndexMap:ne,rowNumWidth:re},Z)};return jsxs("tbody",{className:"ogrid-mat-tbody",children:[t&&r.offsetTop>0&&jsx("tr",{style:{height:r.offsetTop},"aria-hidden":true}),t?i.slice(r.startIndex,r.endIndex+1).map((y,_)=>w(y,r.startIndex+_)):i.map((y,_)=>w(y,_)),t&&r.offsetBottom>0&&jsx("tr",{style:{height:r.offsetBottom},"aria-hidden":true})]})}function cn(e){let t=useDataGridTableOrchestration({props:e}),{wrapperRef:r,tableContainerRef:o,lastMouseShiftRef:i,interaction:c,pinning:l,handleResizeStart:m,handleResizeDoubleClick:s,getColumnWidth:d,isReorderDragging:g,dropIndicatorX:f,handleHeaderMouseDown:v,virtualScrollEnabled:x,visibleRange:R,columnRange:I,onHorizontalScroll:B,items:M,getRowId:C,emptyState:O,suppressHorizontalScroll:D,isLoading:H,loadingMessage:pe,ariaLabel:P,ariaLabelledBy:re,columnReorder:q,density:ne,rowHeight:He,rowNumberOffset:Ne,headerRows:w,allowOverflowX:y,fitToContent:_,showColumnLetters:Z,editCallbacks:J,interactionHandlers:ue,cellDescriptorInputRef:X,cellDescriptorCacheRef:me,pendingEditorValueRef:no,popoverAnchorElRef:Fe,handleSingleRowClick:jo,handlePasteVoid:qo,visibleCols:ge,hasCheckboxCol:ae,hasRowNumbersCol:Ce,colOffset:ao,minTableWidth:io,columnSizingOverrides:he,measuredColumnWidths:Zo,selectedRowIds:lo,handleRowCheckboxChange:Jo,handleSelectAll:Qo,allSelected:et,someSelected:ot,editingCell:tt,setPopoverAnchorEl:so,cancelPopoverEdit:co,setActiveCell:po,selectionRange:Q,hasCellSelection:rt,handleGridKeyDown:nt,handleFillHandleMouseDown:uo,handleCopy:at,handleCut:it,cutRange:mo,copyRange:go,canUndo:lt,canRedo:st,onUndo:dt,onRedo:ct,isDragging:Co,menuPosition:Ae,closeContextMenu:pt,headerFilterInput:ut,statusBarConfig:ie,showEmptyInGrid:ho,onCellError:fo,headerMenu:fe}=t,_e=useMemo(()=>$r(ne),[ne]),bo=useMemo(()=>({px:_e.px,py:_e.py}),[_e]),Se=useColumnMeta({visibleCols:ge,getColumnWidth:d,columnSizingOverrides:he,measuredColumnWidths:Zo,pinnedColumns:l.pinnedColumns,leftOffsets:l.leftOffsets,rightOffsets:l.rightOffsets,pinnedColLeftClass:"",pinnedColRightClass:""}),mt=useMemo(()=>ge.map(p=>{let u=l.pinnedColumns[p.columnId]==="left",h=l.pinnedColumns[p.columnId]==="right",N="ogrid-mat-td",n={};u?(N+=" ogrid-mat-td--pinned-left",l.leftOffsets[p.columnId]!=null&&(n.left=l.leftOffsets[p.columnId])):h&&(N+=" ogrid-mat-td--pinned-right",l.rightOffsets[p.columnId]!=null&&(n.right=l.rightOffsets[p.columnId]));let U=Se.cellStyles[p.columnId];return {col:p,tdClassName:N,tdStyle:n,minWidth:U?.minWidth??0,width:U?.width??d(p),maxWidth:U?.maxWidth??d(p)}}),[ge,Se,l.pinnedColumns,l.leftOffsets,l.rightOffsets,d]),gt=useMemo(()=>({position:"relative",flex:1,minHeight:H&&M.length===0?200:0,width:_?"fit-content":"100%",maxWidth:"100%",overflowX:D?"hidden":y?"auto":"hidden",overflowY:"auto",bgcolor:"background.paper",willChange:"scroll-position"}),[_,D,y,H,M.length]),xo=Uo[ne]??Uo.normal,Ct=useCallback((p,u,h,N)=>{let n=getCellRenderDescriptor(p,u,h,N,X.current,me.current),U=C(p),K;if(n.mode==="editing-inline")K=jsx("div",{className:"ogrid-mat-editing-cell",style:Ur,children:jsx(Bo,{...buildInlineEditorProps(p,u,n,J)})});else if(n.mode==="editing-popover"&&typeof u.cellEditor=="function"){let G=buildPopoverEditorProps(p,u,n,no.current,J),k=u.cellEditor;K=jsxs(Fragment,{children:[jsx(Box,{ref:Y=>{Y&&so(Y);},sx:Qr,"aria-hidden":true}),jsx(Popover,{open:!!Fe.current,anchorEl:Fe.current,onClose:co,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},children:jsx(Box,{sx:en,children:jsx(k,{...G})})})]});}else {let G;if(n.columnType==="boolean"){let $=!!n.displayValue;G=jsx("input",{type:"checkbox",checked:$,disabled:!n.canEditAny,onChange:n.canEditAny?()=>{J.commitCellEdit(p,u.columnId,$,!$,n.rowIndex,n.globalColIndex);}:void 0,onClick:le=>le.stopPropagation(),style:{margin:0,cursor:n.canEditAny?"pointer":"default",outline:"none"},"aria-label":$?"Checked":"Unchecked"});}else {let $=resolveCellDisplayContent(u,p,n.displayValue),le=resolveCellStyle(u,p,n.displayValue);G=le?jsx("span",{style:le,children:$}):$;}let k="ogrid-mat-cell";u.type==="numeric"?k+=" ogrid-mat-cell--numeric":u.type==="boolean"&&(k+=" ogrid-mat-cell--boolean"),n.canEditAny&&(k+=" ogrid-mat-cell--editable"),n.isActive&&(k+=" ogrid-mat-cell--active"),n.isActive&&n.isInRange&&(k+=" ogrid-mat-cell--active-in-range"),n.isInRange&&!n.isActive&&(k+=" ogrid-mat-cell--range"),n.isInCutRange&&(k+=" ogrid-mat-cell--cut");let Y=getCellInteractionProps(n,u.columnId,ue);K=jsxs("div",{className:k,...Y,style:xo,children:[G,n.canEditAny&&n.isSelectionEndCell&&jsx("div",{className:"ogrid-mat-fill-handle",onPointerDown:uo,"aria-label":"Fill handle"})]});}return jsx(CellErrorBoundary,{onError:fo,children:K},`${U}-${u.columnId}`)},[J,ue,uo,so,co,C,fo,X,me,xo,no,Fe]);return jsxs(Box,{sx:zr,children:[jsxs(Box,{ref:r,tabIndex:0,role:"region","aria-label":P??(re?void 0:"Data grid"),"aria-labelledby":re,onMouseDown:p=>{i.current=p.shiftKey;},onScroll:B?p=>B(p.target.scrollLeft):void 0,onKeyDown:nt,onContextMenu:PREVENT_DEFAULT,"data-density":ne,"data-overflow-x":y?"true":"false",className:"ogrid-mat-wrapper","data-ogrid-scroll-container":"",sx:gt,children:[jsx(Box,{sx:on,children:jsx("div",{style:{minWidth:y?io:void 0,overflowX:"clip"},children:jsxs(Box,{ref:o,sx:H&&M.length>0?an:nn,children:[jsxs(Table,{size:"small",role:"grid",sx:{minWidth:io,borderCollapse:"separate",borderSpacing:0},"data-virtual-scroll":x?"":void 0,children:[jsxs(TableHead,{sx:Kr,children:[Z&&jsxs(TableRow,{sx:zo,children:[ae&&jsx(TableCell,{sx:qe}),Ce&&jsx(TableCell,{sx:qe}),ge.map((p,u)=>{let h=Se.hdrStyles[p.columnId];return jsx(TableCell,{component:"th",sx:{...qe,minWidth:h?.minWidth,width:h?.width,maxWidth:h?.maxWidth},children:indexToColumnLetter(u)},p.columnId)})]}),w.map((p,u)=>jsxs(TableRow,{sx:zo,children:[u===w.length-1&&ae&&jsx(TableCell,{padding:"checkbox",rowSpan:w.length>1?1:void 0,sx:Gr,children:jsx(Checkbox,{checked:et,indeterminate:ot,onChange:(h,N)=>Qo(!!N),size:"small","aria-label":"Select all rows"})}),u===0&&u<w.length-1&&ae&&jsx(TableCell,{rowSpan:w.length-1,sx:Vr}),u===w.length-1&&Ce&&(()=>{let h=he?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return jsxs(TableCell,{component:"th",scope:"col",rowSpan:w.length>1?1:void 0,sx:{width:h,minWidth:h,maxWidth:h,textAlign:"center",fontWeight:600,backgroundColor:A,position:"sticky",left:ae?CHECKBOX_COLUMN_WIDTH:0,zIndex:4,...bo},children:["#",jsx(Box,{onPointerDown:N=>{po(null),c.setSelectionRange(null),r.current?.focus({preventScroll:true}),m(N,{columnId:ROW_NUMBER_COLUMN_ID,name:"#"});},sx:Go})]})})(),u===0&&u<w.length-1&&Ce&&(()=>{let h=he?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return jsx(TableCell,{rowSpan:w.length-1,sx:{width:h,minWidth:h,position:"sticky",left:ae?CHECKBOX_COLUMN_WIDTH:0,zIndex:4,backgroundColor:"background.paper"}})})(),p.map((h,N)=>{if(h.isGroup)return jsx(TableCell,{colSpan:h.colSpan,component:"th",scope:"colgroup",sx:Yr,children:h.label},N);if(!h.columnDef)return null;let n=h.columnDef,U=l.pinnedColumns[n.columnId]==="left",K=l.pinnedColumns[n.columnId]==="right",G=t.stickyHeader?U?jr:K?qr:Ze:U?Zr:K?Jr:Je,k=U&&l.leftOffsets[n.columnId]!=null?{...G,left:l.leftOffsets[n.columnId]}:K&&l.rightOffsets[n.columnId]!=null?{...G,right:l.rightOffsets[n.columnId]}:G,Y=Se.hdrStyles[n.columnId],le=e.sortBy===n.columnId?e.sortDirection==="asc"?"ascending":"descending":void 0;return jsxs(TableCell,{component:"th",scope:"col","data-column-id":n.columnId,rowSpan:w.length>1?w.length-u:void 0,"aria-sort":le,sx:{...k,...bo,minWidth:Y?.minWidth,width:Y?.width,maxWidth:Y?.maxWidth,...q?{cursor:g?"grabbing":"grab"}:{},"&:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"-2px",zIndex:11}},onPointerDown:q?j=>v(n.columnId,j):void 0,children:[jsxs(Box,{sx:tn,children:[jsx(xe,{...getHeaderFilterConfig(n,ut)}),jsx(Box,{component:"button",onClick:j=>{j.stopPropagation(),fe.isOpen&&fe.openForColumn===n.columnId?fe.close():fe.open(n.columnId,j.currentTarget);},"aria-label":"Column options",title:"Column options",sx:rn,children:"\u22EE"})]}),jsx(Box,{onPointerDown:j=>{po(null),c.setSelectionRange(null),r.current?.focus({preventScroll:true}),m(j,n);},onDoubleClick:j=>s(j,n),sx:Go})]},n.columnId)})]},u))]}),!ho&&jsx(dn,{virtualScrollEnabled:x,visibleRange:R,columnRange:I,items:M,getRowId:C,selectedRowIds:lo,visibleCols:ge,columnLayouts:mt,renderCellContent:Ct,handleSingleRowClick:jo,handleRowCheckboxChange:Jo,lastMouseShiftRef:i,hasCheckboxCol:ae,hasRowNumbersCol:Ce,rowNumberOffset:Ne,rowHeight:He,selectionRange:Q,activeCell:c.activeCell,cutRange:mo,copyRange:go,isDragging:Co,editingCell:tt,pinnedColumns:l.pinnedColumns,rowNumWidth:Ce?he?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH:void 0})]}),g&&f!=null&&jsx(Ao,{dropIndicatorX:f,wrapperLeft:r.current?.getBoundingClientRect().left??0}),jsx(MarchingAntsOverlay,{containerRef:o,selectionRange:Q,copyRange:go,cutRange:mo,colOffset:ao,items:M,visibleColumns:e.visibleColumns,columnSizingOverrides:he,columnOrder:e.columnOrder,isDragging:Co}),e.formulaReferences&&e.formulaReferences.length>0&&jsx(FormulaRefOverlay,{containerRef:o,references:e.formulaReferences,colOffset:ao}),ho&&O&&jsx(Ho,{emptyState:O})]})})}),Ae&&createPortal(jsx(Oo,{x:Ae.x,y:Ae.y,hasSelection:rt,canUndo:lt,canRedo:st,onUndo:dt??NOOP,onRedo:ct??NOOP,onCopy:at,onCut:it,onPaste:qo,onSelectAll:t.interaction.handleSelectAllCells,onClose:pt}),document.body),jsx(Pe,{...getColumnHeaderMenuProps(fe)})]}),ie&&jsx(Mo,{totalCount:ie.totalCount,filteredCount:ie.filteredCount,selectedCount:ie.selectedCount??lo.size,selectedCellCount:Q?(Math.abs(Q.endRow-Q.startRow)+1)*(Math.abs(Q.endCol-Q.startCol)+1):void 0,aggregation:ie.aggregation,suppressRowCount:ie.suppressRowCount}),H&&jsx(Fo,{message:pe})]})}var Qe=ye.memo(cn);var Sn=({columnId:e,columnName:t,checked:r,disabled:o,onChange:i})=>jsx(FormControlLabel,{control:jsx(Checkbox,{size:"small",checked:r,onChange:c=>{c.stopPropagation(),i(c.target.checked);},disabled:o}),label:jsx(Typography,{variant:"body2",children:t}),sx:{m:0}}),vn=({visibleCount:e,totalCount:t})=>jsx(Box,{sx:{px:1.5,py:1,borderBottom:1,borderColor:"divider",bgcolor:"action.hover"},children:jsxs(Typography,{variant:"subtitle2",fontWeight:600,children:["Select Columns (",e," of ",t,")"]})}),In=({children:e})=>jsx(Box,{sx:{maxHeight:320,overflowY:"auto",py:.5},children:e}),Pn=({children:e})=>jsx(Box,{sx:{px:1.5,minHeight:32,display:"flex",alignItems:"center"},children:e}),wn=({onClearAll:e,onSelectAll:t})=>jsxs(Box,{sx:{display:"flex",justifyContent:"flex-end",gap:1,px:1.5,py:1,borderTop:1,borderColor:"divider",bgcolor:"action.hover"},children:[jsx(Button,{size:"small",onClick:e,sx:{textTransform:"none"},children:"Clear All"}),jsx(Button,{size:"small",variant:"contained",onClick:t,sx:{textTransform:"none"},children:"Select All"})]}),oo=e=>{let{columns:t,visibleColumns:r,onVisibilityChange:o,onSetVisibleColumns:i,className:c}=e,[l,m]=useState(null),s=useRef(null),{open:d,setOpen:g,handleClose:f,handleCheckboxChange:v,handleSelectAll:x,handleClearAll:R,visibleCount:I,totalCount:B}=useColumnChooserState({columns:t,visibleColumns:r,onVisibilityChange:o,onSetVisibleColumns:i});return jsxs(Box,{className:c,sx:{display:"inline-flex"},children:[jsxs(Button,{ref:s,variant:"outlined",size:"small",color:"inherit",startIcon:jsx(ViewColumn,{}),endIcon:d?jsx(ExpandLess,{}):jsx(ExpandMore,{}),onClick:D=>{d?(f(),m(null)):(m(D.currentTarget),g(true));},"aria-expanded":d,"aria-haspopup":"listbox",sx:{textTransform:"none",fontWeight:600,borderColor:d?"primary.main":"divider"},children:["Column Visibility (",I," of ",B,")"]}),jsx(Popover,{open:d,anchorEl:l,onClose:()=>{f(),m(null);},anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},slotProps:{paper:{sx:{mt:.5,minWidth:220}}},children:jsx(ColumnChooserContent,{columns:t,visibleColumns:r,visibleCount:I,totalCount:B,handleSelectAll:x,handleClearAll:R,handleCheckboxChange:D=>H=>v(D)(H),CheckboxItem:Sn,Header:vn,OptionsListContainer:In,OptionItemContainer:Pn,Actions:wn})})]})};var Nn={first:jsx(FirstPage,{fontSize:"small"}),prev:jsx(ChevronLeft,{fontSize:"small"}),next:jsx(ChevronRight,{fontSize:"small"}),last:jsx(LastPage,{fontSize:"small"})},Fn=({variant:e,onClick:t,disabled:r,"aria-label":o})=>jsx(IconButton,{size:"small",onClick:t,disabled:r,"aria-label":o,children:Nn[e]}),An=({onClick:e,active:t,"aria-label":r,"aria-current":o,children:i})=>jsx(Button,{variant:t?"contained":"outlined",size:"small",onClick:e,"aria-label":r,"aria-current":o,sx:{minWidth:32,px:.5},children:i}),_n=({value:e,options:t,onChange:r,"aria-label":o})=>jsx(Select,{value:e,onChange:c=>r(Number(c.target.value)),size:"small","aria-label":o,sx:{minWidth:70},children:t.map(c=>jsx(MenuItem,{value:c,children:c},c))}),Wn=({children:e,className:t,role:r,"aria-label":o})=>jsx(Box,{className:t,role:r,"aria-label":o,sx:{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:2,px:1.5,width:"100%",minWidth:0,boxSizing:"border-box"},children:e}),zn=({children:e})=>jsx(Typography,{variant:"body2",color:"text.secondary",children:e}),Un=({children:e})=>jsx(Box,{sx:{display:"flex",alignItems:"center",gap:.5},children:e}),Gn=({children:e})=>jsx(Box,{sx:{display:"flex",alignItems:"center",gap:1},children:e}),Vn=()=>jsx(Typography,{variant:"body2",color:"text.secondary",children:"Rows"}),Xn=()=>jsx(Typography,{variant:"body2",color:"text.secondary",sx:{mx:.5},"aria-hidden":true,children:"\u2026"}),Kn={NavButton:Fn,PageButton:An,PageSizeSelect:_n,OuterContainer:Wn,InfoText:zn,NavButtonsContainer:Un,PageSizeContainer:Gn,PageSizeLabel:Vn,Ellipsis:Xn},Le=ye.memo(e=>jsx(PaginationControlsBase,{...e,slots:Kn}));Le.displayName="PaginationControls";var qn=ye.forwardRef(function(t,r){let o=useTheme(),i=ye.useMemo(()=>({display:"flex",flexDirection:"column",gap:1,"--ogrid-bg":o.palette.background.default,"--ogrid-border":o.palette.divider,"--ogrid-header-bg":o.palette.mode==="dark"?o.palette.grey[800]:o.palette.grey[100],"--ogrid-fg":o.palette.text.primary,"--ogrid-fg-secondary":o.palette.text.secondary,"--ogrid-fg-muted":o.palette.text.disabled,"--ogrid-hover-bg":o.palette.action.hover,"--ogrid-paper-bg":o.palette.background.paper,"--ogrid-primary":o.palette.primary.main,"--ogrid-selection-bg":o.palette.action.selected}),[o]);return jsx(Box,{ref:r,sx:i,...t})}),$o=createOGrid({DataGridTable:Qe,ColumnChooser:oo,PaginationControls:Le,containerComponent:qn});export{oo as ColumnChooser,xe as ColumnHeaderFilter,Pe as ColumnHeaderMenu,Qe as DataGridTable,$o as OGrid,Le as PaginationControls};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alaarab/ogrid-react-material",
3
- "version": "2.5.4",
3
+ "version": "2.5.5",
4
4
  "description": "OGrid React Material implementation – MUI Table–based data grid with sorting, filtering, pagination, column chooser, spreadsheet selection, and CSV export.",
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-react": "2.5.4"
42
+ "@alaarab/ogrid-react": "2.5.5"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@emotion/react": "^11.0.0",