@alaarab/ogrid-react-material 2.5.3 → 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
@@ -1,6 +1,8 @@
1
- import*as be from'react';import {useMemo,useCallback,useState,useRef,useEffect}from'react';import {Box,Tooltip,Typography,IconButton,Popover,useTheme,TextField,InputAdornment,Button,CircularProgress,FormControlLabel,Checkbox,Avatar,Table,TableHead,TableRow,TableCell,Select,MenuItem,Menu,Divider}from'@mui/material';import {createBaseFilterRenderers,useColumnHeaderFilterState,getColumnHeaderFilterStateParams,renderFilterContent,areGridRowPropsEqual,PaginationControlsBase,createOGrid,useListVirtualizer,CHECKBOX_COLUMN_WIDTH,STOP_PROPAGATION,ROW_NUMBER_COLUMN_WIDTH,useDataGridTableOrchestration,useColumnMeta,getCellRenderDescriptor,buildInlineEditorProps,buildPopoverEditorProps,resolveCellDisplayContent,resolveCellStyle,getCellInteractionProps,CellErrorBoundary,PREVENT_DEFAULT,indexToColumnLetter,ROW_NUMBER_COLUMN_ID,getHeaderFilterConfig,MarchingAntsOverlay,FormulaRefOverlay,NOOP,getColumnHeaderMenuProps,useColumnChooserState,ColumnChooserContent,BaseInlineCellEditor,partitionColumnsForVirtualization,getContextMenuHandlers,GRID_CONTEXT_MENU_ITEMS,formatShortcut,getColumnHeaderMenuItems,getStatusBarParts}from'@alaarab/ogrid-react';export{BaseColumnHeaderMenu,BaseDropIndicator,BaseEmptyState,BaseInlineCellEditor,BaseLoadingOverlay,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,COLUMN_HEADER_MENU_ITEMS,CURSOR_CELL_STYLE,CellErrorBoundary,DEFAULT_MIN_COLUMN_WIDTH,DateFilterContent,EmptyState,GRID_BORDER_RADIUS,GRID_CONTEXT_MENU_ITEMS,GRID_ROOT_STYLE,GridContextMenu,MAX_PAGE_BUTTONS,MarchingAntsOverlay,NOOP,OGridLayout,PAGE_SIZE_OPTIONS,POPOVER_ANCHOR_STYLE,PREVENT_DEFAULT,ROW_NUMBER_COLUMN_WIDTH,STOP_PROPAGATION,SideBar,StatusBar,UndoRedoStack,areGridRowPropsEqual,booleanParser,buildCsvHeader,buildCsvRows,buildHeaderRows,buildInlineEditorProps,buildPopoverEditorProps,clampSelectionToBounds,computeAggregations,computeAutoScrollSpeed,computeTabNavigation,createOGrid,currencyParser,dateParser,deriveFilterOptionsFromData,editorInputStyle,editorWrapperStyle,emailParser,escapeCsvValue,exportToCsv,findCtrlArrowTarget,flattenColumns,formatCellValueForTsv,formatSelectionAsTsv,formatShortcut,getCellInteractionProps,getCellRenderDescriptor,getCellValue,getColumnHeaderFilterStateParams,getColumnHeaderMenuItems,getContextMenuHandlers,getDataGridStatusBarConfig,getDateFilterContentProps,getFilterField,getHeaderFilterConfig,getMultiSelectFilterFields,getPaginationViewModel,getStatusBarParts,isInSelectionRange,isRowInRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,processClientSideData,rangesEqual,renderFilterContent,resolveCellDisplayContent,resolveCellStyle,richSelectDropdownStyle,richSelectNoMatchesStyle,richSelectOptionHighlightedStyle,richSelectOptionStyle,richSelectWrapperStyle,selectChevronStyle,selectDisplayStyle,selectEditorStyle,toUserLike,triggerCsvDownload,useActiveCell,useCellEditing,useCellSelection,useClipboard,useColumnChooserState,useColumnHeaderFilterState,useColumnMeta,useColumnReorder,useColumnResize,useContextMenu,useDataGridState,useDataGridTableOrchestration,useDateFilterState,useDebounce,useFillHandle,useFilterOptions,useInlineCellEditorState,useKeyboardNavigation,useLatestRef,useListVirtualizer,useMultiSelectFilterState,useOGrid,usePaginationControls,usePeopleFilterState,useRichSelectState,useRowSelection,useSelectState,useSideBarState,useTableLayout,useTextFilterState,useUndoRedo,useVirtualScroll}from'@alaarab/ogrid-react';import {createPortal}from'react-dom';import {FilterList,LastPage,ChevronRight,ChevronLeft,FirstPage,Search,Clear,ExpandLess,ExpandMore,ViewColumn}from'@mui/icons-material';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var ht=`
1
+ import*as ye from'react';import {useMemo,useCallback,useState,useRef,useEffect}from'react';import {Box,Tooltip,Typography,IconButton,Popover,useTheme,TextField,InputAdornment,Button,CircularProgress,FormControlLabel,Checkbox,Avatar,Table,TableHead,TableRow,TableCell,Select,MenuItem,Menu,Divider}from'@mui/material';import {createBaseFilterRenderers,useColumnHeaderFilterState,getColumnHeaderFilterStateParams,renderFilterContent,areGridRowPropsEqual,PaginationControlsBase,createOGrid,useListVirtualizer,CHECKBOX_COLUMN_WIDTH,STOP_PROPAGATION,ROW_NUMBER_COLUMN_WIDTH,useDataGridTableOrchestration,useColumnMeta,getCellRenderDescriptor,buildInlineEditorProps,buildPopoverEditorProps,resolveCellDisplayContent,resolveCellStyle,getCellInteractionProps,CellErrorBoundary,PREVENT_DEFAULT,indexToColumnLetter,ROW_NUMBER_COLUMN_ID,getHeaderFilterConfig,MarchingAntsOverlay,FormulaRefOverlay,NOOP,getColumnHeaderMenuProps,useColumnChooserState,ColumnChooserContent,BaseInlineCellEditor,partitionColumnsForVirtualization,getContextMenuHandlers,GRID_CONTEXT_MENU_ITEMS,formatShortcut,getColumnHeaderMenuItems,getStatusBarParts}from'@alaarab/ogrid-react';export{BaseColumnHeaderMenu,BaseDropIndicator,BaseEmptyState,BaseInlineCellEditor,BaseLoadingOverlay,CELL_PADDING,CHECKBOX_COLUMN_WIDTH,COLUMN_HEADER_MENU_ITEMS,CURSOR_CELL_STYLE,CellErrorBoundary,DEFAULT_MIN_COLUMN_WIDTH,DateFilterContent,EmptyState,GRID_BORDER_RADIUS,GRID_CONTEXT_MENU_ITEMS,GRID_ROOT_STYLE,GridContextMenu,MAX_PAGE_BUTTONS,MarchingAntsOverlay,NOOP,OGridLayout,PAGE_SIZE_OPTIONS,POPOVER_ANCHOR_STYLE,PREVENT_DEFAULT,ROW_NUMBER_COLUMN_WIDTH,STOP_PROPAGATION,SideBar,StatusBar,UndoRedoStack,areGridRowPropsEqual,booleanParser,buildCsvHeader,buildCsvRows,buildHeaderRows,buildInlineEditorProps,buildPopoverEditorProps,clampSelectionToBounds,computeAggregations,computeAutoScrollSpeed,computeTabNavigation,createOGrid,currencyParser,dateParser,deriveFilterOptionsFromData,editorInputStyle,editorWrapperStyle,emailParser,escapeCsvValue,exportToCsv,findCtrlArrowTarget,flattenColumns,formatCellValueForTsv,formatSelectionAsTsv,formatShortcut,getCellInteractionProps,getCellRenderDescriptor,getCellValue,getColumnHeaderFilterStateParams,getColumnHeaderMenuItems,getContextMenuHandlers,getDataGridStatusBarConfig,getDateFilterContentProps,getFilterField,getHeaderFilterConfig,getMultiSelectFilterFields,getPaginationViewModel,getStatusBarParts,isInSelectionRange,isRowInRange,mergeFilter,normalizeSelectionRange,numberParser,parseTsvClipboard,parseValue,processClientSideData,rangesEqual,renderFilterContent,resolveCellDisplayContent,resolveCellStyle,richSelectDropdownStyle,richSelectNoMatchesStyle,richSelectOptionHighlightedStyle,richSelectOptionStyle,richSelectWrapperStyle,selectChevronStyle,selectDisplayStyle,selectEditorStyle,toUserLike,triggerCsvDownload,useActiveCell,useCellEditing,useCellSelection,useClipboard,useColumnChooserState,useColumnHeaderFilterState,useColumnMeta,useColumnReorder,useColumnResize,useContextMenu,useDataGridState,useDataGridTableOrchestration,useDateFilterState,useDebounce,useFillHandle,useFilterOptions,useInlineCellEditorState,useKeyboardNavigation,useLatestRef,useListVirtualizer,useMultiSelectFilterState,useOGrid,usePaginationControls,usePeopleFilterState,useRichSelectState,useRowSelection,useSelectState,useSideBarState,useTableLayout,useTextFilterState,useUndoRedo,useVirtualScroll}from'@alaarab/ogrid-react';import {createPortal}from'react-dom';import {FilterList,LastPage,ChevronRight,ChevronLeft,FirstPage,Search,Clear,ExpandLess,ExpandMore,ViewColumn}from'@mui/icons-material';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var ht=`
2
2
  .ogrid-mat-row:hover > td { background-color: var(--ogrid-hover-bg); }
3
+ .ogrid-mat-row:hover > td.ogrid-mat-row-number { background-color: var(--ogrid-header-bg, #f5f5f5); }
3
4
  .ogrid-mat-row--selected > td { background-color: var(--ogrid-selection-bg, rgba(25, 118, 210, 0.08)); }
5
+ .ogrid-mat-row--selected > td.ogrid-mat-row-number { background-color: var(--ogrid-header-bg, #f5f5f5); }
4
6
 
5
7
  .ogrid-mat-td { position: relative; padding: 0; height: 1px; border-bottom: 1px solid var(--ogrid-border, rgba(224,224,224,1)); }
6
8
  .ogrid-mat-td--pinned-left { position: sticky; left: 0; z-index: var(--ogrid-z-pinned, 6); background-color: var(--ogrid-paper-bg, #fff); will-change: transform; border-right: 1px solid var(--ogrid-border, rgba(224,224,224,1)); box-shadow: 2px 0 4px -1px rgba(0,0,0,0.1); }
@@ -16,7 +18,8 @@ table:not([data-virtual-scroll]) .ogrid-mat-tbody tr { content-visibility: auto;
16
18
  .ogrid-mat-cell--editable { cursor: cell; }
17
19
 
18
20
  .ogrid-mat-cell--active { outline: 2px solid var(--ogrid-selection, #217346); outline-offset: -1px; z-index: var(--ogrid-z-active-cell, 2); position: relative; overflow: visible; contain: none; background-color: var(--ogrid-hover-bg); }
19
- .ogrid-mat-td:has(> .ogrid-mat-cell--active) { z-index: var(--ogrid-z-active-cell, 2); }
21
+ .ogrid-mat-td:has(> .ogrid-mat-cell--active),
22
+ .ogrid-mat-td:has(> .ogrid-mat-editing-cell) { z-index: var(--ogrid-z-active-cell, 2); }
20
23
  .ogrid-mat-cell--active:focus-visible { outline: 2px solid var(--ogrid-selection, #217346); outline-offset: -1px; }
21
24
  .ogrid-mat-cell--active-in-range { outline: none; background-color: var(--ogrid-bg, #fff); }
22
25
  .ogrid-mat-cell--range { background-color: var(--ogrid-bg-range, rgba(33,115,70,0.12)); }
@@ -33,4 +36,4 @@ table:not([data-virtual-scroll]) .ogrid-mat-tbody tr { content-visibility: auto;
33
36
 
34
37
  .ogrid-mat-wrapper [data-drag-range] { background-color: rgba(33,115,70,0.12); }
35
38
  .ogrid-mat-wrapper [data-drag-anchor] { background-color: var(--ogrid-paper-bg, #fff); }
36
- `,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:a=>t(a.target.value),onKeyDown:a=>{a.stopPropagation(),a.key==="Enter"&&(a.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:a,onOptionToggle:c,onSelectAll:i,onClearSelection:u,onApply:s,isLoading:d})=>{let m=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:i,children:["Select All (",o.length,")"]}),jsx(Button,{size:"small",onClick:u,children:"Clear"})]}),jsx(Box,{ref:m.containerRef,onScroll:m.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:m.totalHeight,position:"relative"},children:m.visibleItems.map(({index:f,offsetTop:v})=>{let x=o[f];return jsx(FormControlLabel,{control:jsx(Checkbox,{size:"small",checked:a.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:u,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:a,onUserSelect:c,onClearUser:i,inputRef:u})=>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:i,"aria-label":"Remove filter",children:jsx(Clear,{fontSize:"small"})})]})]}),jsx(Box,{sx:{p:1.5,pb:.5},children:jsx(TextField,{inputRef:u,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:a&&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:i,children:"Clear Filter"})})]});Ve.displayName="PeopleFilterPopover";var Ut=createBaseFilterRenderers({MultiSelectFilterPopover:Ge,TextFilterPopover:ze,PeopleFilterPopover:Ve}),fe=be.memo(e=>{let{columnName:t,filterType:r,options:o=[],isLoadingOptions:a=false,selectedUser:c}=e,i=useColumnHeaderFilterState(getColumnHeaderFilterStateParams(e)),{headerRef:u,isFilterOpen:s,setFilterOpen:d,hasActiveFilter:m,popoverPosition:f,handlers:v}=i;return jsxs(Box,{ref:u,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:m||s?"primary":"default",sx:{p:.25,position:"relative"},children:[jsx(FilterList,{sx:{fontSize:16}}),m&&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,i,o??[],a,c,Ut)]})]})});fe.displayName="ColumnHeaderFilter";function Ie(e){let{isOpen:t,anchorElement:r,onClose:o,onPinLeft:a,onPinRight:c,onUnpin:i,onSortAsc:u,onSortDesc:s,onClearSort:d,onAutosizeThis:m,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]),de=useMemo(()=>({pinLeft:a,pinRight:c,unpin:i,sortAsc:u,sortDesc:s,clearSort:d,autosizeThis:m,autosizeAll:f}),[a,c,i,u,s,d,m,f]);return jsx(Menu,{open:t&&!!C,onClose:o,anchorReference:"anchorPosition",anchorPosition:C,slotProps:{paper:{sx:{minWidth:140}}},children:H.flatMap((P,oe)=>{let j=[jsx(MenuItem,{disabled:P.disabled,onClick:()=>{de[P.id](),o();},children:P.label},P.id)];return P.divider&&oe<H.length-1&&j.push(jsx(Divider,{},`${P.id}-divider`)),j})})}function Bo(e){return jsx(BaseInlineCellEditor,{...e,renderCheckbox:(t,r,o)=>jsx(Checkbox,{checked:t,onChange:(a,c)=>r(c),onKeyDown:a=>a.key==="Escape"&&(a.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:a,canRedo:c,onClose:i}=e,u=be.useMemo(()=>getContextMenuHandlers(e),[e]),s=be.useCallback(d=>!!(d.disabledWhenNoSelection&&!o||d.id==="undo"&&!a||d.id==="redo"&&!c),[o,a,c]);return jsx(Menu,{open:true,onClose:i,anchorReference:"anchorPosition",anchorPosition:{top:r,left:t},MenuListProps:{dense:true,"aria-label":"Grid context menu"},children:GRID_CONTEXT_MENU_ITEMS.flatMap(d=>{let m=[];return d.dividerBefore&&m.push(jsx(Divider,{},`${d.id}-divider`)),m.push(jsxs(MenuItem,{onClick:u[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)),m})})}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 _o({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))"},_="var(--ogrid-header-bg, #f5f5f5)",Kr={zIndex:8,bgcolor:_,"& th":{bgcolor:_}},zo={bgcolor:_},qe={textAlign:"center",fontSize:"11px",fontWeight:500,color:"text.secondary",py:"2px",px:"4px",bgcolor:_,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:_},jr={...Ze,position:"sticky",left:0,top:0,zIndex:10,bgcolor:_,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:_,willChange:"transform",borderLeft:"1px solid",borderLeftColor:"divider",boxShadow:"-2px 0 4px -1px rgba(0,0,0,0.1)"},Je={fontWeight:600,zIndex:8,bgcolor:_},Zr={...Je,position:"sticky",left:0,zIndex:10,bgcolor:_,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:_,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:a,columnLayouts:c,renderCellContent:i,handleSingleRowClick:u,handleRowCheckboxChange:s,lastMouseShiftRef:d,hasCheckboxCol:m,hasRowNumbersCol:f,rowNumberOffset:v,rowHeight:x,leftSpacerWidth:R,rightSpacerWidth:I,globalColIndexMap:B,rowNumWidth:M}=e;return jsxs("tr",{"data-row-id":o,onClick:u,"aria-selected":a||void 0,className:`ogrid-mat-row${a?" ogrid-mat-row--selected":""}`,style:x?{height:x}:void 0,children:[m&&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:a,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:m?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:i(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=be.memo(ln,areGridRowPropsEqual);Ro();function dn(e){let{virtualScrollEnabled:t,visibleRange:r,columnRange:o,items:a,getRowId:c,selectedRowIds:i,visibleCols:u,columnLayouts:s,renderCellContent:d,handleSingleRowClick:m,handleRowCheckboxChange:f,lastMouseShiftRef:v,hasCheckboxCol:x,hasRowNumbersCol:R,rowNumberOffset:I,rowHeight:B,selectionRange:M,activeCell:C,cutRange:O,copyRange:D,isDragging:H,editingCell:de,pinnedColumns:P,rowNumWidth:oe}=e,{rowLayouts:j,globalColIndexMap:te,leftSpacerWidth:ke,rightSpacerWidth:He}=be.useMemo(()=>{if(!o)return {rowLayouts:s,globalColIndexMap:void 0,leftSpacerWidth:void 0,rightSpacerWidth:void 0};let y=partitionColumnsForVirtualization(u,o,P),A=[...y.pinnedLeft,...y.virtualizedUnpinned,...y.pinnedRight],q=new Map(s.map(X=>[X.col.columnId,X])),re=[],ce=[];for(let X of A){let pe=q.get(X.columnId);pe&&(re.push(pe),ce.push(u.indexOf(X)));}return {rowLayouts:re,globalColIndexMap:ce,leftSpacerWidth:y.leftSpacerWidth,rightSpacerWidth:y.rightSpacerWidth}},[o,u,s,P]),w=(y,A)=>{let q=c(y);return jsx(sn,{item:y,rowIndex:A,rowId:q,isSelected:i.has(q),columnLayouts:j,renderCellContent:d,handleSingleRowClick:m,handleRowCheckboxChange:f,lastMouseShiftRef:v,hasCheckboxCol:x,hasRowNumbersCol:R,rowNumberOffset:I,selectionRange:M,activeCell:C,cutRange:O,copyRange:D,isDragging:H,rowHeight:B,editingRowId:de?.rowId??null,leftSpacerWidth:ke,rightSpacerWidth:He,globalColIndexMap:te,rowNumWidth:oe},q)};return jsxs("tbody",{className:"ogrid-mat-tbody",children:[t&&r.offsetTop>0&&jsx("tr",{style:{height:r.offsetTop},"aria-hidden":true}),t?a.slice(r.startIndex,r.endIndex+1).map((y,A)=>w(y,r.startIndex+A)):a.map((y,A)=>w(y,A)),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:a,interaction:c,pinning:i,handleResizeStart:u,handleResizeDoubleClick:s,getColumnWidth:d,isReorderDragging:m,dropIndicatorX:f,handleHeaderMouseDown:v,virtualScrollEnabled:x,visibleRange:R,columnRange:I,onHorizontalScroll:B,items:M,getRowId:C,emptyState:O,suppressHorizontalScroll:D,isLoading:H,loadingMessage:de,ariaLabel:P,ariaLabelledBy:oe,columnReorder:j,density:te,rowHeight:ke,rowNumberOffset:He,headerRows:w,allowOverflowX:y,fitToContent:A,showColumnLetters:q,editCallbacks:re,interactionHandlers:ce,cellDescriptorInputRef:X,cellDescriptorCacheRef:pe,pendingEditorValueRef:no,popoverAnchorElRef:Ne,handleSingleRowClick:jo,handlePasteVoid:qo,visibleCols:ue,hasCheckboxCol:ne,hasRowNumbersCol:me,colOffset:ao,minTableWidth:lo,columnSizingOverrides:ge,measuredColumnWidths:Zo,selectedRowIds:io,handleRowCheckboxChange:Jo,handleSelectAll:Qo,allSelected:et,someSelected:ot,editingCell:tt,setPopoverAnchorEl:so,cancelPopoverEdit:co,setActiveCell:po,selectionRange:Z,hasCellSelection:rt,handleGridKeyDown:nt,handleFillHandleMouseDown:uo,handleCopy:at,handleCut:lt,cutRange:mo,copyRange:go,canUndo:it,canRedo:st,onUndo:dt,onRedo:ct,isDragging:Co,menuPosition:Fe,closeContextMenu:pt,headerFilterInput:ut,statusBarConfig:ae,showEmptyInGrid:ho,onCellError:fo,headerMenu:Ce}=t,_e=useMemo(()=>$r(te),[te]),bo=useMemo(()=>({px:_e.px,py:_e.py}),[_e]),ye=useColumnMeta({visibleCols:ue,getColumnWidth:d,columnSizingOverrides:ge,measuredColumnWidths:Zo,pinnedColumns:i.pinnedColumns,leftOffsets:i.leftOffsets,rightOffsets:i.rightOffsets,pinnedColLeftClass:"",pinnedColRightClass:""}),mt=useMemo(()=>ue.map(p=>{let g=i.pinnedColumns[p.columnId]==="left",h=i.pinnedColumns[p.columnId]==="right",N="ogrid-mat-td",l={};g?(N+=" ogrid-mat-td--pinned-left",i.leftOffsets[p.columnId]!=null&&(l.left=i.leftOffsets[p.columnId])):h&&(N+=" ogrid-mat-td--pinned-right",i.rightOffsets[p.columnId]!=null&&(l.right=i.rightOffsets[p.columnId]));let U=ye.cellStyles[p.columnId];return {col:p,tdClassName:N,tdStyle:l,minWidth:U?.minWidth??0,width:U?.width??d(p),maxWidth:U?.maxWidth??d(p)}}),[ue,ye,i.pinnedColumns,i.leftOffsets,i.rightOffsets,d]),gt=useMemo(()=>({position:"relative",flex:1,minHeight:H&&M.length===0?200:0,width:A?"fit-content":"100%",maxWidth:"100%",overflowX:D?"hidden":y?"auto":"hidden",overflowY:"auto",bgcolor:"background.paper",willChange:"scroll-position"}),[A,D,y,H,M.length]),xo=Uo[te]??Uo.normal,Ct=useCallback((p,g,h,N)=>{let l=getCellRenderDescriptor(p,g,h,N,X.current,pe.current),U=C(p),K;if(l.mode==="editing-inline")K=jsx("div",{style:Ur,children:jsx(Bo,{...buildInlineEditorProps(p,g,l,re)})});else if(l.mode==="editing-popover"&&typeof g.cellEditor=="function"){let G=buildPopoverEditorProps(p,g,l,no.current,re),k=g.cellEditor;K=jsxs(Fragment,{children:[jsx(Box,{ref:Y=>{Y&&so(Y);},sx:Qr,"aria-hidden":true}),jsx(Popover,{open:!!Ne.current,anchorEl:Ne.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(l.columnType==="boolean")G=jsx("input",{type:"checkbox",checked:!!l.displayValue,disabled:true,style:{margin:0,pointerEvents:"none"},"aria-label":l.displayValue?"True":"False"});else {let Ae=resolveCellDisplayContent(g,p,l.displayValue),Re=resolveCellStyle(g,p,l.displayValue);G=Re?jsx("span",{style:Re,children:Ae}):Ae;}let k="ogrid-mat-cell";g.type==="numeric"?k+=" ogrid-mat-cell--numeric":g.type==="boolean"&&(k+=" ogrid-mat-cell--boolean"),l.canEditAny&&(k+=" ogrid-mat-cell--editable"),l.isActive&&(k+=" ogrid-mat-cell--active"),l.isActive&&l.isInRange&&(k+=" ogrid-mat-cell--active-in-range"),l.isInRange&&!l.isActive&&(k+=" ogrid-mat-cell--range"),l.isInCutRange&&(k+=" ogrid-mat-cell--cut");let Y=getCellInteractionProps(l,g.columnId,ce);K=jsxs("div",{className:k,...Y,style:xo,children:[G,l.canEditAny&&l.isSelectionEndCell&&jsx("div",{className:"ogrid-mat-fill-handle",onPointerDown:uo,"aria-label":"Fill handle"})]});}return jsx(CellErrorBoundary,{onError:fo,children:K},`${U}-${g.columnId}`)},[re,ce,uo,so,co,C,fo,X,pe,xo,no,Ne]);return jsxs(Box,{sx:zr,children:[jsxs(Box,{ref:r,tabIndex:0,role:"region","aria-label":P??(oe?void 0:"Data grid"),"aria-labelledby":oe,onMouseDown:p=>{a.current=p.shiftKey;},onScroll:B?p=>B(p.target.scrollLeft):void 0,onKeyDown:nt,onContextMenu:PREVENT_DEFAULT,"data-density":te,"data-overflow-x":y?"true":"false",className:"ogrid-mat-wrapper",sx:gt,children:[jsx(Box,{sx:on,children:jsx("div",{style:{minWidth:y?lo: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:lo,borderCollapse:"separate",borderSpacing:0},"data-virtual-scroll":x?"":void 0,children:[jsxs(TableHead,{sx:Kr,children:[q&&jsxs(TableRow,{sx:zo,children:[ne&&jsx(TableCell,{sx:qe}),me&&jsx(TableCell,{sx:qe}),ue.map((p,g)=>{let h=ye.hdrStyles[p.columnId];return jsx(TableCell,{component:"th",sx:{...qe,minWidth:h?.minWidth,width:h?.width,maxWidth:h?.maxWidth},children:indexToColumnLetter(g)},p.columnId)})]}),w.map((p,g)=>jsxs(TableRow,{sx:zo,children:[g===w.length-1&&ne&&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"})}),g===0&&g<w.length-1&&ne&&jsx(TableCell,{rowSpan:w.length-1,sx:Vr}),g===w.length-1&&me&&(()=>{let h=ge?.[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:_,position:"sticky",left:ne?CHECKBOX_COLUMN_WIDTH:0,zIndex:4,...bo},children:["#",jsx(Box,{onPointerDown:N=>{po(null),c.setSelectionRange(null),r.current?.focus({preventScroll:true}),u(N,{columnId:ROW_NUMBER_COLUMN_ID,name:"#"});},sx:Go})]})})(),g===0&&g<w.length-1&&me&&(()=>{let h=ge?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH;return jsx(TableCell,{rowSpan:w.length-1,sx:{width:h,minWidth:h,position:"sticky",left:ne?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 l=h.columnDef,U=i.pinnedColumns[l.columnId]==="left",K=i.pinnedColumns[l.columnId]==="right",G=t.stickyHeader?U?jr:K?qr:Ze:U?Zr:K?Jr:Je,k=U&&i.leftOffsets[l.columnId]!=null?{...G,left:i.leftOffsets[l.columnId]}:K&&i.rightOffsets[l.columnId]!=null?{...G,right:i.rightOffsets[l.columnId]}:G,Y=ye.hdrStyles[l.columnId],Re=e.sortBy===l.columnId?e.sortDirection==="asc"?"ascending":"descending":void 0;return jsxs(TableCell,{component:"th",scope:"col","data-column-id":l.columnId,rowSpan:w.length>1?w.length-g:void 0,"aria-sort":Re,sx:{...k,...bo,minWidth:Y?.minWidth,width:Y?.width,maxWidth:Y?.maxWidth,...j?{cursor:m?"grabbing":"grab"}:{},"&:focus-visible":{outline:"2px solid",outlineColor:"primary.main",outlineOffset:"-2px",zIndex:11}},onPointerDown:j?$=>v(l.columnId,$):void 0,children:[jsxs(Box,{sx:tn,children:[jsx(fe,{...getHeaderFilterConfig(l,ut)}),jsx(Box,{component:"button",onClick:$=>{$.stopPropagation(),Ce.isOpen&&Ce.openForColumn===l.columnId?Ce.close():Ce.open(l.columnId,$.currentTarget);},"aria-label":"Column options",title:"Column options",sx:rn,children:"\u22EE"})]}),jsx(Box,{onPointerDown:$=>{po(null),c.setSelectionRange(null),r.current?.focus({preventScroll:true}),u($,l);},onDoubleClick:$=>s($,l),sx:Go})]},l.columnId)})]},g))]}),!ho&&jsx(dn,{virtualScrollEnabled:x,visibleRange:R,columnRange:I,items:M,getRowId:C,selectedRowIds:io,visibleCols:ue,columnLayouts:mt,renderCellContent:Ct,handleSingleRowClick:jo,handleRowCheckboxChange:Jo,lastMouseShiftRef:a,hasCheckboxCol:ne,hasRowNumbersCol:me,rowNumberOffset:He,rowHeight:ke,selectionRange:Z,activeCell:c.activeCell,cutRange:mo,copyRange:go,isDragging:Co,editingCell:tt,pinnedColumns:i.pinnedColumns,rowNumWidth:me?ge?.[ROW_NUMBER_COLUMN_ID]?.widthPx??ROW_NUMBER_COLUMN_WIDTH:void 0})]}),m&&f!=null&&jsx(_o,{dropIndicatorX:f,wrapperLeft:r.current?.getBoundingClientRect().left??0}),jsx(MarchingAntsOverlay,{containerRef:o,selectionRange:Z,copyRange:go,cutRange:mo,colOffset:ao,items:M,visibleColumns:e.visibleColumns,columnSizingOverrides:ge,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})]})})}),Fe&&createPortal(jsx(Oo,{x:Fe.x,y:Fe.y,hasSelection:rt,canUndo:it,canRedo:st,onUndo:dt??NOOP,onRedo:ct??NOOP,onCopy:at,onCut:lt,onPaste:qo,onSelectAll:t.interaction.handleSelectAllCells,onClose:pt}),document.body),jsx(Ie,{...getColumnHeaderMenuProps(Ce)})]}),ae&&jsx(Mo,{totalCount:ae.totalCount,filteredCount:ae.filteredCount,selectedCount:ae.selectedCount??io.size,selectedCellCount:Z?(Math.abs(Z.endRow-Z.startRow)+1)*(Math.abs(Z.endCol-Z.startCol)+1):void 0,aggregation:ae.aggregation,suppressRowCount:ae.suppressRowCount}),H&&jsx(Fo,{message:de})]})}var Qe=be.memo(cn);var Sn=({columnId:e,columnName:t,checked:r,disabled:o,onChange:a})=>jsx(FormControlLabel,{control:jsx(Checkbox,{size:"small",checked:r,onChange:c=>{c.stopPropagation(),a(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:a,className:c}=e,[i,u]=useState(null),s=useRef(null),{open:d,setOpen:m,handleClose:f,handleCheckboxChange:v,handleSelectAll:x,handleClearAll:R,visibleCount:I,totalCount:B}=useColumnChooserState({columns:t,visibleColumns:r,onVisibilityChange:o,onSetVisibleColumns:a});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(),u(null)):(u(D.currentTarget),m(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:i,onClose:()=>{f(),u(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]}),_n=({onClick:e,active:t,"aria-label":r,"aria-current":o,children:a})=>jsx(Button,{variant:t?"contained":"outlined",size:"small",onClick:e,"aria-label":r,"aria-current":o,sx:{minWidth:32,px:.5},children:a}),An=({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:_n,PageSizeSelect:An,OuterContainer:Wn,InfoText:zn,NavButtonsContainer:Un,PageSizeContainer:Gn,PageSizeLabel:Vn,Ellipsis:Xn},De=be.memo(e=>jsx(PaginationControlsBase,{...e,slots:Kn}));De.displayName="PaginationControls";var qn=be.forwardRef(function(t,r){let o=useTheme(),a=be.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:a,...t})}),$o=createOGrid({DataGridTable:Qe,ColumnChooser:oo,PaginationControls:De,containerComponent:qn});export{oo as ColumnChooser,fe as ColumnHeaderFilter,Ie as ColumnHeaderMenu,Qe as DataGridTable,$o as OGrid,De 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.3",
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.3"
42
+ "@alaarab/ogrid-react": "2.5.5"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@emotion/react": "^11.0.0",