mgh-components 1.1.0 → 1.1.1
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/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("react"),t=require("@mui/material"),n=require("@mui/x-data-grid-premium"),r=require("@mui/material/useMediaQuery"),l=require("@mui/material/styles"),o=require("@emotion/styled"),i=require("@mui/material/Button"),a=require("@mui/material/Dialog"),d=require("@mui/material/DialogTitle"),s=require("@mui/material/DialogActions"),c=require("@mui/material/DialogContent"),g=require("@iconify/react"),m=require("@mui/material/Box"),u=require("dayjs"),p=require("react-dom");function h(e,t,n){const o=l.useTheme(),i=r(o.breakpoints.up(t)),a=r(o.breakpoints.down(t)),d=r(o.breakpoints.between(t,n)),s=r(o.breakpoints.only(t));return"up"===e?i:"down"===e?a:"between"===e?d:s}function f({text:n,useSettingsContext:r}){const i=l.useTheme(),a=r?.()?.themeMode??i.palette.mode??"light",d=o("div")(()=>({display:"flex",alignItems:"center",justifyContent:"center",height:"100%","& .ant-empty-img-1":{fill:"light"===a?"#aeb8c2":"#262626"},"& .ant-empty-img-2":{fill:"light"===a?"#f5f5f7":"#595959"},"& .ant-empty-img-3":{fill:"light"===a?"#dce0e6":"#434343"},"& .ant-empty-img-4":{fill:"light"===a?"#fff":"#1c1c1c"},"& .ant-empty-img-5":{fillOpacity:"light"===a?"0.8":"0.08",fill:"light"===a?"#f5f5f5":"#fff"}}));return e.createElement(d,null,e.createElement(t.Box,{component:"img",alt:"empty content",src:"/assets/icons/empty/ic_content.svg",sx:{width:50,maxWidth:160}}),e.createElement(t.Box,{sx:{mb:0}},n))}const b=()=>"undefined"!=typeof window&&void 0!==window.localStorage,x=e=>{if(!b())return null;try{const t=window.localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},w=(e,t)=>{if(b())try{window.localStorage.setItem(e,JSON.stringify(t))}catch{return}};function v({showColumnsButton:r=!0,showFilterButton:l=!0,showExportButton:o=!0,showQuickFilter:i=!0,renderOtherButtons:a,renderDateRange:d,customMenuItem:s,showCsvOption:c=!0}){return e.createElement(n.Toolbar,{style:{display:"flex",justifyContent:"space-between"}},e.createElement("div",null,r&&e.createElement(t.Tooltip,{title:"Columns"},e.createElement(n.ColumnsPanelTrigger,{render:e.createElement(n.ToolbarButton,null)},e.createElement(n.GridViewColumnIcon,{fontSize:"small"}))),l&&e.createElement(t.Tooltip,{title:"Filters"},e.createElement(n.FilterPanelTrigger,{render:(r,l)=>e.createElement(n.ToolbarButton,{...r,color:"default"},e.createElement(t.Badge,{badgeContent:l.filterCount,color:"primary",variant:"dot"},e.createElement(n.GridFilterListIcon,{fontSize:"small"})))})),o&&e.createElement(y,{customMenuItem:s,showCsvOption:c})),d,e.createElement("div",null,a,i&&e.createElement(E,null)))}const y=({csvOptions:t={allColumns:!0},excelOptions:r={allColumns:!0},printOptions:l,customMenuItem:o,showCsvOption:i=!0,...a})=>e.createElement(n.GridToolbarExportContainer,{...a},o?.map(e=>e),i&&e.createElement(n.GridCsvExportMenuItem,{options:t}),e.createElement(n.GridExcelExportMenuItem,{options:r}),e.createElement(n.GridPrintExportMenuItem,{options:l}));function E(){const r=t.styled(n.QuickFilter)({display:"grid",alignItems:"center"}),l=t.styled(n.ToolbarButton)(({theme:e,ownerState:t})=>({gridArea:"1 / 1",width:"min-content",height:"min-content",zIndex:1,opacity:t.expanded?0:1,pointerEvents:t.expanded?"none":"auto",transition:e.transitions.create(["opacity"])})),o=t.styled(t.TextField)(({theme:e,ownerState:t})=>({gridArea:"1 / 1",overflowX:"clip",width:t.expanded?260:"var(--trigger-width)",opacity:t.expanded?1:0,transition:e.transitions.create(["width","opacity"])}));return e.createElement(r,null,e.createElement(n.QuickFilterTrigger,{render:(r,o)=>e.createElement(t.Tooltip,{title:"Search",enterDelay:0},e.createElement(l,{...r,ownerState:{expanded:o.expanded},color:"default","aria-disabled":o.expanded},e.createElement(n.GridSearchIcon,{fontSize:"small"})))}),e.createElement(n.QuickFilterControl,{render:({ref:r,...l},i)=>e.createElement(o,{...l,ownerState:{expanded:i.expanded},inputRef:r,"aria-label":"Search",placeholder:"Search...",size:"small",slotProps:{input:{startAdornment:e.createElement(t.InputAdornment,{position:"start"},e.createElement(n.GridSearchIcon,{fontSize:"small"})),endAdornment:i.value?e.createElement(t.InputAdornment,{position:"end"},e.createElement(n.QuickFilterClear,{edge:"end",size:"small","aria-label":"Clear search",material:{sx:{marginRight:-.75}}},e.createElement(n.GridCloseIcon,{fontSize:"small"}))):null,...l.slotProps?.input},...l.slotProps}})}))}const C=e.forwardRef(({icon:t,width:n=20,sx:r,...l},o)=>e.createElement(g.Icon,{icon:t,style:{width:20,height:n??20,...r}})),M=l.styled(m)(({ownerState:e})=>{const t=l.useTheme(),n="light"===t.palette.mode,r="filled"===e.variant,o="outlined"===e.variant,i="soft"===e.variant,a={..."default"===e.color&&{...r&&{color:n?t.palette.common.white:t.palette.grey[800],backgroundColor:t.palette.text.primary},...o&&{backgroundColor:"transparent",color:t.palette.text.primary,border:`2px solid ${t.palette.text.primary}`},...i&&{color:t.palette.text.secondary,backgroundColor:l.alpha(t.palette.grey[500],.16)}}},d={..."default"!==e.color&&{...r&&{color:t.palette[e.color].contrastText,backgroundColor:t.palette[e.color].main},...o&&{backgroundColor:"transparent",color:t.palette[e.color].main,border:`2px solid ${t.palette[e.color].main}`},...i&&{color:t.palette[e.color][n?"dark":"light"],backgroundColor:l.alpha(t.palette[e.color].main,.16)}}};return{height:24,minWidth:24,lineHeight:0,borderRadius:6,cursor:"default",alignItems:"center",whiteSpace:"nowrap",display:"inline-flex",justifyContent:"center",textTransform:"capitalize",padding:t.spacing(0,.75),fontSize:t.typography.pxToRem(12),fontWeight:t.typography.fontWeightBold,transition:t.transitions.create("all",{duration:t.transitions.duration.shorter}),...a,...d}}),k=e.forwardRef(({children:t,color:n="default",variant:r="soft",startIcon:l,endIcon:o,sx:i,...a},d)=>{const s={width:16,height:16,"& svg, img":{width:1,height:1,objectFit:"cover"}};return e.createElement(M,{ref:d,ownerState:{color:n,variant:r},sx:{...l&&{pl:.75},...o&&{pr:.75},...i},...a},l&&e.createElement(m,{sx:{mr:.75,...s}}," ",l," "),t,o&&e.createElement(m,{sx:{ml:.75,...s}}," ",o," "))}),S="__row_group_by_columns_group__",F="__check__",I="__detail_panel_toggle__",P="__aggregation_footer__",N=new Set([F,I]),R={compact:.7,standard:1,comfortable:1.3},z=52,D=56,G=50,T=e=>N.has(e)||e===S,O=e=>null==e,A=e=>O(e)||""===e||Array.isArray(e)&&0===e.length,H=(e,t,n)=>Math.min(Math.max(e,t),n),L=(...e)=>e.filter(Boolean).join(" "),V=(()=>{let e=0;return(t="mgh")=>(e+=1,`${t}-${e}`)})(),B=()=>"undefined"!=typeof window&&void 0!==window.localStorage,$=e=>{if(!B())return null;try{const t=window.localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},U=(e,t)=>{if(B())try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}},W=(e,t)=>t?t(e):e.id,q=(e,t)=>{if(!e)return{type:"include",ids:new Set};if(Array.isArray(e))return{type:"include",ids:new Set(e)};if(e instanceof Set)return{type:"include",ids:new Set(e)};if("exclude"===e.type&&t){const n=new Set;return t.forEach(t=>{e.ids.has(t)||n.add(t)}),{type:"include",ids:n}}return{type:"include",ids:new Set(e.ids)}},j=e=>{if(O(e)||""===e)return null;if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(u.isDayjs(e))return e.isValid()?e.toDate():null;if("number"==typeof e){const t=new Date(e);return Number.isNaN(t.getTime())?null:t}if("string"==typeof e){const t=u(e);return t.isValid()?t.toDate():null}return null},_=(e,t)=>{const n=j(e);return n?u(n).format(t?"M/D/YYYY h:mm A":"M/D/YYYY"):""},K=(e,t)=>t?u(e).startOf("minute").valueOf():u(e).startOf("day").valueOf(),Q=e=>"object"==typeof e&&null!==e,X=(e,t)=>e.getOptionValue?e.getOptionValue(t):Q(t)?t.value:t,Y=(e,t)=>e.getOptionLabel?e.getOptionLabel(t):Q(t)?t.label:String(t),J=(e,t,n)=>e.valueOptions?"function"==typeof e.valueOptions?e.valueOptions({field:e.field,row:t,id:n}):e.valueOptions:[],Z=(e,t,n)=>{const r=e?e[t.field]:void 0;return t.valueGetter?t.valueGetter(r,e,t,n):r},ee=(e,t,n,r)=>{if(O(e))return"";switch(t.type){case"date":return _(e,!1);case"dateTime":return _(e,!0);case"boolean":return e?"Yes":"No";case"singleSelect":{const l=J(t,n,r).find(n=>X(t,n)===e);return void 0!==l?Y(t,l):String(e)}case"number":return"number"==typeof e?Number.isFinite(e)?String(e):"":String(e);default:if(e instanceof Date)return _(e,!0);if("object"==typeof e)try{return JSON.stringify(e)}catch{return String(e)}return String(e)}},te=(e,t,n,r,l)=>n.valueFormatter?n.valueFormatter(e,t,n,r):ee(e,n,t,l),ne=e=>O(e)?"":"string"==typeof e?e:"number"==typeof e||"boolean"==typeof e?String(e):e instanceof Date?_(e,!0):"object"==typeof e&&"props"in e?"":String(e),re="undefined"!=typeof Intl?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null,le=(e,t)=>{const n=O(e)||""===e,r=O(t)||""===t;return n&&r?0:n?-1:r?1:null},oe=(e,t)=>{const n=le(e,t);return null!==n?n:Number(e)-Number(t)},ie=(e,t)=>{const n=le(e,t);if(null!==n)return n;const r=String(e),l=String(t);return re?re.compare(r,l):r<l?-1:r>l?1:0},ae=(e,t,n,r)=>"number"==typeof e&&"number"==typeof t?oe(e,t):ie(e,t),de=(e,t)=>{const n=j(e),r=j(t),l=le(n,r);return null!==l?l:n.getTime()-r.getTime()},se=(e,t)=>{const n=le(e,t);return null!==n?n:Number(Boolean(e))-Number(Boolean(t))},ce=e=>{switch(e){case"number":return oe;case"date":case"dateTime":return de;case"boolean":return se;default:return ae}},ge=e=>O(e)?"":String(e).toLowerCase(),me=e=>!A(e.value),ue=[{value:"contains",label:"contains",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>-1!==ge(e).indexOf(t)}},{value:"doesNotContain",label:"does not contain",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>-1===ge(e).indexOf(t)}},{value:"equals",label:"equals",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>ge(e)===t}},{value:"doesNotEqual",label:"does not equal",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>ge(e)!==t}},{value:"startsWith",label:"starts with",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>0===ge(e).indexOf(t)}},{value:"endsWith",label:"ends with",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>{const n=ge(e);return n.length>=t.length&&n.lastIndexOf(t)===n.length-t.length}}},{value:"isEmpty",label:"is empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>A(e)},{value:"isNotEmpty",label:"is not empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>!A(e)},{value:"isAnyOf",label:"is any of",inputType:"multiselect",getApplyFilterFn:e=>{if(!Array.isArray(e.value)||0===e.value.length)return null;const t=new Set(e.value.map(ge));return e=>t.has(ge(e))}}],pe=(e,t,n)=>({value:e,label:t,inputType:"number",getApplyFilterFn:e=>{if(!me(e))return null;const t=Number(e.value);return Number.isNaN(t)?null:e=>{if(O(e)||""===e)return!1;const r=Number(e);return!Number.isNaN(r)&&n(r,t)}}}),he=[pe("=","=",(e,t)=>e===t),pe("!=","!=",(e,t)=>e!==t),pe(">",">",(e,t)=>e>t),pe(">=",">=",(e,t)=>e>=t),pe("<","<",(e,t)=>e<t),pe("<=","<=",(e,t)=>e<=t),{value:"isEmpty",label:"is empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>A(e)},{value:"isNotEmpty",label:"is not empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>!A(e)},{value:"isAnyOf",label:"is any of",inputType:"multiselect",getApplyFilterFn:e=>{if(!Array.isArray(e.value)||0===e.value.length)return null;const t=new Set(e.value.map(e=>Number(e)));return e=>!O(e)&&t.has(Number(e))}}],fe=(e,t,n,r)=>({value:e,label:t,inputType:n?"datetime-local":"date",getApplyFilterFn:e=>{if(!me(e))return null;const t=j(e.value);if(!t)return null;const l=K(t,n);return e=>{const t=j(e);return!!t&&r(K(t,n),l)}}}),be=e=>[fe("is","is",e,(e,t)=>e===t),fe("not","is not",e,(e,t)=>e!==t),fe("after","is after",e,(e,t)=>e>t),fe("onOrAfter","is on or after",e,(e,t)=>e>=t),fe("before","is before",e,(e,t)=>e<t),fe("onOrBefore","is on or before",e,(e,t)=>e<=t),{value:"isEmpty",label:"is empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>null===j(e)},{value:"isNotEmpty",label:"is not empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>null!==j(e)}],xe=[{value:"is",label:"is",inputType:"boolean",getApplyFilterFn:e=>{if(O(e.value)||""===e.value||"any"===e.value)return null;const t=!0===e.value||"true"===e.value;return e=>Boolean(e)===t}}],we=[{value:"is",label:"is",inputType:"select",getApplyFilterFn:e=>O(e.value)||""===e.value?null:t=>String(t)===String(e.value)},{value:"not",label:"is not",inputType:"select",getApplyFilterFn:e=>O(e.value)||""===e.value?null:t=>String(t)!==String(e.value)},{value:"isAnyOf",label:"is any of",inputType:"multiselect",getApplyFilterFn:e=>{if(!Array.isArray(e.value)||0===e.value.length)return null;const t=new Set(e.value.map(String));return e=>t.has(String(e))}}],ve=e=>e.filterOperators??(e=>{switch(e){case"number":return he;case"date":return be(!1);case"dateTime":return be(!0);case"boolean":return xe;case"singleSelect":return we;case"actions":return[];default:return ue}})(e.type),ye=e=>{const t=e.type??"string",n="number"===t,r="boolean"===t,l="actions"===t;return{...e,type:t,headerName:e.headerName??e.field,width:e.width??100,minWidth:e.minWidth??G,align:e.align??(n?"right":r||l?"center":"left"),headerAlign:e.headerAlign??e.align??(n?"right":r||l?"center":"left"),sortable:!l&&(e.sortable??!0),filterable:!l&&(e.filterable??!0),hideable:e.hideable??!0,resizable:e.resizable??!0,pinnable:e.pinnable??!0,groupable:!l&&(e.groupable??!0),aggregable:!l&&(e.aggregable??!0),editable:e.editable??!1,disableColumnMenu:e.disableColumnMenu??l,disableExport:e.disableExport??l}},Ee=e=>e.map(e=>"number"==typeof e?e:Number(e)).filter(e=>!Number.isNaN(e)&&null!==e),Ce={sum:{label:"sum",columnTypes:["number"],apply:({values:e})=>{const t=Ee(e.filter(e=>!O(e)&&""!==e));return 0===t.length?null:t.reduce((e,t)=>e+t,0)}},avg:{label:"avg",columnTypes:["number"],apply:({values:e})=>{const t=Ee(e.filter(e=>!O(e)&&""!==e));return 0===t.length?null:t.reduce((e,t)=>e+t,0)/t.length}},min:{label:"min",columnTypes:["number","date","dateTime"],apply:({values:e})=>{const t=e.filter(e=>!O(e)&&""!==e);if(0===t.length)return null;if(t.every(e=>"number"==typeof e))return Math.min(...t);const n=t.map(j);return n.every(e=>null!==e)?new Date(Math.min(...n.map(e=>e.getTime()))):t.slice().sort((e,t)=>ie(e,t))[0]}},max:{label:"max",columnTypes:["number","date","dateTime"],apply:({values:e})=>{const t=e.filter(e=>!O(e)&&""!==e);if(0===t.length)return null;if(t.every(e=>"number"==typeof e))return Math.max(...t);const n=t.map(j);if(n.every(e=>null!==e))return new Date(Math.max(...n.map(e=>e.getTime())));const r=t.slice().sort((e,t)=>ie(e,t));return r[r.length-1]}},size:{label:"size",apply:({values:e})=>e.length}},Me={noRowsLabel:"No rows",loadingLabel:"Loading…",toolbarColumns:"Columns",toolbarFilters:"Filters",toolbarExport:"Export",toolbarDensity:"Density",toolbarQuickFilterPlaceholder:"Search...",toolbarQuickFilterLabel:"Search",toolbarExportCSV:"Download as CSV",toolbarExportExcel:"Download as Excel",toolbarExportPrint:"Print",densityCompact:"Compact",densityStandard:"Standard",densityComfortable:"Comfortable",columnsPanelSearchPlaceholder:"Search",columnsPanelShowAll:"Show all",columnsPanelHideAll:"Hide all",columnsPanelReset:"Reset",filterPanelAddFilter:"Add filter",filterPanelRemoveAll:"Remove all",filterPanelDeleteIcon:"Delete",filterPanelColumns:"Columns",filterPanelOperator:"Operator",filterPanelValue:"Value",filterPanelInputPlaceholder:"Filter value",filterPanelLogicOperator:"Logic operator",filterPanelOperatorAnd:"And",filterPanelOperatorOr:"Or",columnMenuSortAsc:"Sort by ASC",columnMenuSortDesc:"Sort by DESC",columnMenuUnsort:"Unsort",columnMenuFilter:"Filter",columnMenuHideColumn:"Hide column",columnMenuManageColumns:"Manage columns",columnMenuPinLeft:"Pin to left",columnMenuPinRight:"Pin to right",columnMenuUnpin:"Unpin",columnMenuGroup:e=>`Group by ${e}`,columnMenuUngroup:e=>`Stop grouping by ${e}`,columnMenuAggregation:"Aggregation",aggregationMenuItemHeader:"Aggregation",aggregationFunctionLabelNone:"none",aggregationFunctionLabelSum:"sum",aggregationFunctionLabelAvg:"avg",aggregationFunctionLabelMin:"min",aggregationFunctionLabelMax:"max",aggregationFunctionLabelSize:"size",footerRowSelected:e=>1===e?"1 row selected":`${e.toLocaleString()} rows selected`,footerTotalRows:"Total Rows:",footerPaginationRowsPerPage:"Rows per page:",footerPaginationDisplayedRows:(e,t,n)=>`${e}–${t} of ${n.toLocaleString()}`,footerPaginationFirstPage:"First page",footerPaginationPreviousPage:"Previous page",footerPaginationNextPage:"Next page",footerPaginationLastPage:"Last page",checkboxSelectionHeaderName:"Checkbox selection",checkboxSelectionSelectAllRows:"Select all rows",checkboxSelectionUnselectAllRows:"Unselect all rows",checkboxSelectionSelectRow:"Select row",checkboxSelectionUnselectRow:"Unselect row",booleanCellTrueLabel:"yes",booleanCellFalseLabel:"no",detailPanelToggle:"Detail panel toggle",expandDetailPanel:"Expand",collapseDetailPanel:"Collapse",groupingColumnHeaderName:"Group",groupColumn:e=>`Group by ${e}`,unGroupColumn:e=>`Stop grouping by ${e}`,actionsCellMore:"more",columnHeaderSortIconLabel:"Sort",columnMenuLabel:"Menu",clearSearch:"Clear search"};let ke;const Se=(e,t)=>{if("undefined"==typeof document)return 8*e.length;if(void 0===ke){const e=document.createElement("canvas");ke=e.getContext("2d")}return ke?(ke.font=t,ke.measureText(e).width):8*e.length},Fe=(e,t)=>{if("undefined"==typeof document)return;const n=URL.createObjectURL(e),r=document.createElement("a");r.href=n,r.download=t,r.style.display="none",document.body.appendChild(r),r.click(),window.setTimeout(()=>{document.body.removeChild(r),URL.revokeObjectURL(n)},0)},Ie="mgh-grid-styles",Pe='\n.mgh-grid-card {\n --mgh-grid-font-family: inherit;\n --mgh-grid-font-size: 14px;\n --mgh-grid-radius: 16px;\n --mgh-grid-inner-radius: 4px;\n --mgh-grid-paper: #ffffff;\n --mgh-grid-bg: #ffffff;\n --mgh-grid-fg: rgba(0, 0, 0, 0.87);\n --mgh-grid-fg-secondary: rgba(0, 0, 0, 0.6);\n --mgh-grid-fg-disabled: rgba(0, 0, 0, 0.38);\n --mgh-grid-border: rgba(224, 224, 224, 1);\n --mgh-grid-header-bg: #ffffff;\n --mgh-grid-header-fg: rgba(0, 0, 0, 0.87);\n --mgh-grid-hover: rgba(0, 0, 0, 0.04);\n --mgh-grid-hover-strong: rgba(0, 0, 0, 0.08);\n --mgh-grid-selected: rgba(25, 118, 210, 0.08);\n --mgh-grid-selected-hover: rgba(25, 118, 210, 0.12);\n --mgh-grid-primary: #1976d2;\n --mgh-grid-primary-contrast: #ffffff;\n --mgh-grid-focus: #1976d2;\n --mgh-grid-shadow: 0 0 2px rgba(145, 158, 171, 0.2), 0 12px 24px -4px rgba(145, 158, 171, 0.12);\n --mgh-grid-popover-shadow: 0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12);\n --mgh-grid-overlay: rgba(255, 255, 255, 0.6);\n --mgh-grid-input-bg: transparent;\n --mgh-grid-input-border: rgba(0, 0, 0, 0.23);\n --mgh-grid-pinned-shadow: rgba(0, 0, 0, 0.12);\n --mgh-grid-group-bg: rgba(0, 0, 0, 0.02);\n --mgh-grid-footer-bg: rgba(0, 0, 0, 0.02);\n --mgh-grid-badge: #1976d2;\n --mgh-grid-scrollbar: rgba(0, 0, 0, 0.3);\n\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n background: var(--mgh-grid-paper);\n color: var(--mgh-grid-fg);\n border-radius: var(--mgh-grid-radius);\n box-shadow: var(--mgh-grid-shadow);\n font-family: var(--mgh-grid-font-family);\n font-size: var(--mgh-grid-font-size);\n line-height: 1.5;\n overflow: hidden;\n box-sizing: border-box;\n}\n.mgh-grid-card[data-mgh-theme="dark"] {\n --mgh-grid-paper: #212b36;\n --mgh-grid-bg: #212b36;\n --mgh-grid-fg: #ffffff;\n --mgh-grid-fg-secondary: rgba(255, 255, 255, 0.7);\n --mgh-grid-fg-disabled: rgba(255, 255, 255, 0.5);\n --mgh-grid-border: rgba(81, 81, 81, 1);\n --mgh-grid-header-bg: #212b36;\n --mgh-grid-header-fg: #ffffff;\n --mgh-grid-hover: rgba(255, 255, 255, 0.08);\n --mgh-grid-hover-strong: rgba(255, 255, 255, 0.16);\n --mgh-grid-selected: rgba(144, 202, 249, 0.16);\n --mgh-grid-selected-hover: rgba(144, 202, 249, 0.24);\n --mgh-grid-primary: #90caf9;\n --mgh-grid-primary-contrast: rgba(0, 0, 0, 0.87);\n --mgh-grid-focus: #90caf9;\n --mgh-grid-shadow: 0 0 2px rgba(0, 0, 0, 0.2), 0 12px 24px -4px rgba(0, 0, 0, 0.12);\n --mgh-grid-overlay: rgba(33, 43, 54, 0.6);\n --mgh-grid-input-border: rgba(255, 255, 255, 0.23);\n --mgh-grid-pinned-shadow: rgba(0, 0, 0, 0.5);\n --mgh-grid-group-bg: rgba(255, 255, 255, 0.03);\n --mgh-grid-footer-bg: rgba(255, 255, 255, 0.03);\n --mgh-grid-badge: #90caf9;\n --mgh-grid-scrollbar: rgba(255, 255, 255, 0.3);\n}\n.mgh-grid-card *, .mgh-grid-card *::before, .mgh-grid-card *::after,\n.mgh-grid-popover *, .mgh-grid-popover *::before, .mgh-grid-popover *::after { box-sizing: border-box; }\n.mgh-grid-card--plain { box-shadow: none; border-radius: 0; background: transparent; }\n\n/* ---- card header ---- */\n.mgh-grid-card-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 8px 0 0; flex-wrap: wrap; }\n.mgh-grid-card-title { padding: 24px 24px 0; margin: 0 0 16px; font-size: 1.125rem; font-weight: 700; line-height: 1.5556; }\n.mgh-grid-card-header-center { flex: 1 1 auto; display: flex; align-items: center; }\n.mgh-grid-card-header-end { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; justify-content: flex-end; }\n@media (max-width: 599.95px) { .mgh-grid-card-header-end { gap: 8px; } }\n\n/* ---- box + root ---- */\n.mgh-grid-box { display: flex; flex-direction: column; flex-grow: 1; min-height: 0; min-width: 0; }\n.mgh-grid {\n position: relative;\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n min-width: 0;\n border: 1px solid var(--mgh-grid-border);\n border-radius: var(--mgh-grid-inner-radius);\n background: var(--mgh-grid-bg);\n color: var(--mgh-grid-fg);\n outline: none;\n}\n.mgh-grid--auto-height { flex: 0 0 auto; }\n\n/* ---- toolbar ---- */\n.mgh-grid-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 45px; padding: 4px 8px; border-bottom: 1px solid var(--mgh-grid-border); flex-wrap: wrap; }\n.mgh-grid-toolbar-group { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }\n.mgh-grid-toolbar-center { display: flex; align-items: center; flex: 1 1 auto; justify-content: center; }\n\n/* ---- buttons ---- */\n.mgh-grid-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 0; margin: 0; background: transparent; color: var(--mgh-grid-fg-secondary); font: inherit; font-size: 0.8125rem; font-weight: 500; line-height: 1.75; letter-spacing: .02em; padding: 4px 8px; border-radius: 4px; cursor: pointer; user-select: none; transition: background-color .15s, color .15s; text-transform: none; white-space: nowrap; }\n.mgh-grid-btn:hover { background: var(--mgh-grid-hover); color: var(--mgh-grid-fg); }\n.mgh-grid-btn:focus-visible { outline: 2px solid var(--mgh-grid-focus); outline-offset: 1px; }\n.mgh-grid-btn:disabled { color: var(--mgh-grid-fg-disabled); cursor: default; background: transparent; }\n.mgh-grid-btn--icon { padding: 6px; border-radius: 50%; width: 32px; height: 32px; }\n.mgh-grid-btn--icon.mgh-grid-btn--small { width: 26px; height: 26px; padding: 3px; }\n.mgh-grid-btn--icon.mgh-grid-btn--small .mgh-grid-icon { width: 18px; height: 18px; }\n.mgh-grid-btn--primary { color: var(--mgh-grid-primary); }\n.mgh-grid-btn--primary:hover { background: var(--mgh-grid-selected); color: var(--mgh-grid-primary); }\n.mgh-grid-btn--contained { background: var(--mgh-grid-primary); color: var(--mgh-grid-primary-contrast); }\n.mgh-grid-btn--contained:hover { background: var(--mgh-grid-primary); color: var(--mgh-grid-primary-contrast); filter: brightness(0.92); }\n.mgh-grid-btn--active { color: var(--mgh-grid-primary); }\n\n/* ---- badge ---- */\n.mgh-grid-badge { position: relative; display: inline-flex; }\n.mgh-grid-badge-dot { position: absolute; top: 0; right: 0; min-width: 8px; height: 8px; border-radius: 4px; background: var(--mgh-grid-badge); transform: translate(50%, -50%); }\n.mgh-grid-badge-count { position: absolute; top: 0; right: 0; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--mgh-grid-badge); color: var(--mgh-grid-primary-contrast); font-size: 10px; font-weight: 600; line-height: 16px; text-align: center; transform: translate(50%, -50%); }\n\n/* ---- inputs ---- */\n.mgh-grid-input, .mgh-grid-select { font: inherit; font-size: 0.875rem; color: var(--mgh-grid-fg); background: var(--mgh-grid-input-bg); border: 1px solid var(--mgh-grid-input-border); border-radius: 6px; padding: 6px 10px; height: 36px; min-width: 0; outline: none; transition: border-color .15s, box-shadow .15s; }\n.mgh-grid-input:hover, .mgh-grid-select:hover { border-color: var(--mgh-grid-fg); }\n.mgh-grid-input:focus, .mgh-grid-select:focus { border-color: var(--mgh-grid-focus); box-shadow: 0 0 0 1px var(--mgh-grid-focus); }\n.mgh-grid-input::placeholder { color: var(--mgh-grid-fg-disabled); }\n.mgh-grid-input--small, .mgh-grid-select--small { height: 32px; padding: 4px 8px; font-size: 0.8125rem; }\n.mgh-grid-select { appearance: none; -webkit-appearance: none; padding-right: 28px; background-image: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\' fill=\'%23888\'><path d=\'M7 10l5 5 5-5z\'/></svg>"); background-repeat: no-repeat; background-position: right 6px center; background-size: 18px; cursor: pointer; }\n.mgh-grid-select option { color: initial; background: initial; }\n.mgh-grid-card[data-mgh-theme="dark"] .mgh-grid-select option, .mgh-grid-popover[data-mgh-theme="dark"] .mgh-grid-select option { color: #fff; background: #212b36; }\n.mgh-grid-select[multiple] { height: auto; min-height: 36px; background-image: none; padding-right: 10px; }\n.mgh-grid-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }\n.mgh-grid-field-label { font-size: 0.75rem; color: var(--mgh-grid-fg-secondary); }\n.mgh-grid-input-adorned { position: relative; display: flex; align-items: center; }\n.mgh-grid-input-adorned .mgh-grid-input { width: 100%; padding-left: 34px; }\n.mgh-grid-input-adorned--clearable .mgh-grid-input { padding-right: 34px; }\n.mgh-grid-input-adornment { position: absolute; left: 10px; display: inline-flex; color: var(--mgh-grid-fg-secondary); pointer-events: none; }\n.mgh-grid-input-adornment--end { left: auto; right: 4px; pointer-events: auto; }\n\n/* ---- checkbox ---- */\n.mgh-grid-checkbox { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin: 0; border: 2px solid var(--mgh-grid-fg-secondary); border-radius: 3px; background: transparent; cursor: pointer; display: inline-grid; place-content: center; position: relative; flex: 0 0 auto; transition: background-color .12s, border-color .12s; }\n.mgh-grid-checkbox:hover { border-color: var(--mgh-grid-fg); }\n.mgh-grid-checkbox:focus-visible { outline: 2px solid var(--mgh-grid-focus); outline-offset: 2px; }\n.mgh-grid-checkbox:checked, .mgh-grid-checkbox:indeterminate { background: var(--mgh-grid-primary); border-color: var(--mgh-grid-primary); }\n.mgh-grid-checkbox:checked::after { content: ""; width: 5px; height: 10px; border: solid var(--mgh-grid-primary-contrast); border-width: 0 2px 2px 0; transform: translateY(-1px) rotate(45deg); }\n.mgh-grid-checkbox:indeterminate::after { content: ""; width: 10px; height: 2px; background: var(--mgh-grid-primary-contrast); }\n.mgh-grid-checkbox:disabled { opacity: 0.4; cursor: default; }\n.mgh-grid-checkbox-label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-size: 0.875rem; padding: 6px 4px; border-radius: 4px; }\n.mgh-grid-checkbox-label:hover { background: var(--mgh-grid-hover); }\n\n/* ---- quick filter ---- */\n.mgh-grid-quick-filter { display: grid; align-items: center; }\n.mgh-grid-quick-filter-trigger { grid-area: 1 / 1; z-index: 1; transition: opacity .2s; }\n.mgh-grid-quick-filter--expanded .mgh-grid-quick-filter-trigger { opacity: 0; pointer-events: none; }\n.mgh-grid-quick-filter-control { grid-area: 1 / 1; width: 32px; opacity: 0; overflow: hidden; transition: width .2s, opacity .2s; }\n.mgh-grid-quick-filter--expanded .mgh-grid-quick-filter-control { width: 260px; opacity: 1; }\n@media (max-width: 599.95px) { .mgh-grid-quick-filter--expanded .mgh-grid-quick-filter-control { width: 180px; } }\n\n/* ---- main / scroller ---- */\n.mgh-grid-main { position: relative; display: flex; flex: 1 1 auto; min-height: 0; min-width: 0; overflow: hidden; }\n.mgh-grid--auto-height .mgh-grid-main { flex: 0 0 auto; }\n.mgh-grid-scroller { position: relative; flex: 1 1 auto; min-height: 0; min-width: 0; overflow: auto; outline: none; scrollbar-width: thin; }\n.mgh-grid--auto-height .mgh-grid-scroller { overflow-y: hidden; }\n.mgh-grid-scroller::-webkit-scrollbar { width: 10px; height: 10px; }\n.mgh-grid-scroller::-webkit-scrollbar-thumb { background: var(--mgh-grid-scrollbar); border-radius: 5px; border: 2px solid transparent; background-clip: content-box; }\n\n/* ---- column headers ---- */\n.mgh-grid-columns { position: sticky; top: 0; z-index: 3; background: var(--mgh-grid-header-bg); border-bottom: 1px solid var(--mgh-grid-border); min-width: 100%; width: max-content; }\n.mgh-grid-header-row { display: flex; min-width: 100%; }\n.mgh-grid-header-cell { position: relative; display: flex; align-items: center; flex: 0 0 auto; height: var(--mgh-grid-header-height); padding: 0 10px; font-weight: 600; font-size: 0.875rem; color: var(--mgh-grid-header-fg); background: var(--mgh-grid-header-bg); white-space: nowrap; overflow: hidden; user-select: none; outline: none; }\n.mgh-grid-header-cell--sortable { cursor: pointer; }\n.mgh-grid-header-cell:focus-visible { outline: 2px solid var(--mgh-grid-focus); outline-offset: -2px; }\n.mgh-grid-header-cell--align-center { justify-content: center; }\n.mgh-grid-header-cell--align-right { justify-content: flex-end; }\n.mgh-grid-header-cell--align-right .mgh-grid-header-title-container { flex-direction: row-reverse; }\n.mgh-grid-header-title-container { display: flex; align-items: center; gap: 2px; min-width: 0; flex: 1 1 auto; overflow: hidden; }\n.mgh-grid-header-cell--align-center .mgh-grid-header-title-container { flex: 0 1 auto; }\n.mgh-grid-header-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.mgh-grid-sort-icon { display: inline-flex; align-items: center; color: var(--mgh-grid-fg-secondary); opacity: 0; transition: opacity .15s; flex: 0 0 auto; }\n.mgh-grid-header-cell:hover .mgh-grid-sort-icon, .mgh-grid-sort-icon--active { opacity: 1; }\n.mgh-grid-sort-index { font-size: 10px; margin-left: -2px; color: var(--mgh-grid-fg-secondary); }\n.mgh-grid-header-menu-btn { position: absolute; right: 2px; opacity: 0; transition: opacity .15s; background: var(--mgh-grid-header-bg); }\n.mgh-grid-header-cell--align-right .mgh-grid-header-menu-btn { right: auto; left: 2px; }\n.mgh-grid-header-cell:hover .mgh-grid-header-menu-btn, .mgh-grid-header-menu-btn--open, .mgh-grid-header-cell:focus-within .mgh-grid-header-menu-btn { opacity: 1; }\n.mgh-grid-header-cell--menu-open { background: var(--mgh-grid-hover); }\n.mgh-grid-resize-handle { position: absolute; top: 0; right: -4px; width: 9px; height: 100%; cursor: col-resize; z-index: 2; display: flex; justify-content: center; touch-action: none; }\n.mgh-grid-resize-handle::after { content: ""; width: 1px; height: 60%; margin-top: 20%; background: var(--mgh-grid-border); transition: background .15s, width .15s; }\n.mgh-grid-resize-handle:hover::after, .mgh-grid-resize-handle--active::after { background: var(--mgh-grid-primary); width: 2px; }\n.mgh-grid-header-cell--last .mgh-grid-resize-handle { right: 0; }\n.mgh-grid-header-cell--dragging { opacity: 0.5; }\n.mgh-grid-header-cell--drop-left::before, .mgh-grid-header-cell--drop-right::before { content: ""; position: absolute; top: 4px; bottom: 4px; width: 2px; background: var(--mgh-grid-primary); z-index: 3; }\n.mgh-grid-header-cell--drop-left::before { left: 0; }\n.mgh-grid-header-cell--drop-right::before { right: 0; }\n.mgh-grid-header-filler { flex: 1 1 auto; background: var(--mgh-grid-header-bg); }\n\n/* ---- pinned cells ---- */\n.mgh-grid-cell--pinned-left, .mgh-grid-header-cell--pinned-left { position: sticky; z-index: 2; background-color: var(--mgh-grid-bg); }\n.mgh-grid-cell--pinned-right, .mgh-grid-header-cell--pinned-right { position: sticky; z-index: 2; background-color: var(--mgh-grid-bg); }\n.mgh-grid-header-cell--pinned-left, .mgh-grid-header-cell--pinned-right { z-index: 4; background-color: var(--mgh-grid-header-bg); }\n.mgh-grid-cell--pinned-left-last, .mgh-grid-header-cell--pinned-left-last { box-shadow: 2px 0 4px -2px var(--mgh-grid-pinned-shadow); }\n.mgh-grid-cell--pinned-right-first, .mgh-grid-header-cell--pinned-right-first { box-shadow: -2px 0 4px -2px var(--mgh-grid-pinned-shadow); }\n.mgh-grid--no-pinned-shadow .mgh-grid-cell--pinned-left-last, .mgh-grid--no-pinned-shadow .mgh-grid-header-cell--pinned-left-last { box-shadow: none; }\n\n/* ---- body & rows ---- */\n.mgh-grid-body { position: relative; min-width: 100%; width: max-content; }\n.mgh-grid-body--flow { display: flex; flex-direction: column; }\n.mgh-grid-row-block { min-width: 100%; }\n.mgh-grid-body--virtual .mgh-grid-row-block { position: absolute; left: 0; }\n.mgh-grid-row { display: flex; min-width: 100%; border-bottom: 1px solid var(--mgh-grid-border); background: var(--mgh-grid-bg); position: relative; }\n.mgh-grid-row--auto-height { align-items: stretch; }\n.mgh-grid-row:hover { background: var(--mgh-grid-hover); }\n.mgh-grid-row--selected { background: var(--mgh-grid-selected); }\n.mgh-grid-row--selected:hover { background: var(--mgh-grid-selected-hover); }\n.mgh-grid-row--clickable { cursor: pointer; }\n.mgh-grid-row--group { background: var(--mgh-grid-group-bg); }\n.mgh-grid-row--pinned { background: var(--mgh-grid-bg); }\n.mgh-grid-row--footer { background: var(--mgh-grid-footer-bg); font-weight: 600; }\n.mgh-grid-row:hover .mgh-grid-cell--pinned-left, .mgh-grid-row:hover .mgh-grid-cell--pinned-right { background-image: linear-gradient(var(--mgh-grid-hover), var(--mgh-grid-hover)); }\n.mgh-grid-row--selected .mgh-grid-cell--pinned-left, .mgh-grid-row--selected .mgh-grid-cell--pinned-right { background-image: linear-gradient(var(--mgh-grid-selected), var(--mgh-grid-selected)); }\n.mgh-grid-row--selected:hover .mgh-grid-cell--pinned-left, .mgh-grid-row--selected:hover .mgh-grid-cell--pinned-right { background-image: linear-gradient(var(--mgh-grid-selected-hover), var(--mgh-grid-selected-hover)); }\n.mgh-grid-row--group .mgh-grid-cell--pinned-left, .mgh-grid-row--group .mgh-grid-cell--pinned-right { background-image: linear-gradient(var(--mgh-grid-group-bg), var(--mgh-grid-group-bg)); }\n.mgh-grid-row--footer .mgh-grid-cell--pinned-left, .mgh-grid-row--footer .mgh-grid-cell--pinned-right { background-image: linear-gradient(var(--mgh-grid-footer-bg), var(--mgh-grid-footer-bg)); }\n.mgh-grid-row-filler { flex: 1 1 auto; }\n\n.mgh-grid-cell { display: flex; align-items: center; flex: 0 0 auto; padding: 0 10px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 0.875rem; outline: none; min-height: 100%; }\n.mgh-grid-cell > .mgh-grid-cell-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }\n.mgh-grid-row--auto-height .mgh-grid-cell { white-space: normal; align-items: flex-start; padding-top: 8px; padding-bottom: 8px; }\n.mgh-grid-row--auto-height .mgh-grid-cell > .mgh-grid-cell-text { white-space: normal; word-break: break-word; }\n.mgh-grid-cell--align-center { justify-content: center; }\n.mgh-grid-cell--align-right { justify-content: flex-end; }\n.mgh-grid-cell--focused { outline: 1px solid var(--mgh-grid-focus); outline-offset: -1px; }\n.mgh-grid-cell--editable { cursor: text; }\n.mgh-grid-cell--editing { padding: 0 4px; outline: 2px solid var(--mgh-grid-focus); outline-offset: -2px; background: var(--mgh-grid-bg); }\n.mgh-grid-cell--editing .mgh-grid-input, .mgh-grid-cell--editing .mgh-grid-select { width: 100%; height: calc(100% - 6px); border: 0; box-shadow: none; padding: 0 6px; background: transparent; }\n.mgh-grid-cell--checkbox, .mgh-grid-header-cell--checkbox, .mgh-grid-cell--detail-toggle, .mgh-grid-header-cell--detail-toggle { justify-content: center; padding: 0; }\n.mgh-grid-cell--boolean .mgh-grid-icon { color: var(--mgh-grid-fg-secondary); }\n.mgh-grid-cell--actions { gap: 2px; justify-content: center; }\n.mgh-grid-cell--aggregation { flex-direction: column; align-items: stretch; justify-content: center; line-height: 1.2; }\n.mgh-grid-cell--aggregation.mgh-grid-cell--align-right { align-items: flex-end; }\n.mgh-grid-cell--aggregation.mgh-grid-cell--align-center { align-items: center; }\n.mgh-grid-aggregation-label { font-size: 0.65rem; font-weight: 500; text-transform: uppercase; color: var(--mgh-grid-fg-secondary); letter-spacing: .04em; }\n.mgh-grid-group-cell { display: flex; align-items: center; gap: 4px; min-width: 0; }\n.mgh-grid-group-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }\n.mgh-grid-group-count { color: var(--mgh-grid-fg-secondary); margin-left: 2px; }\n.mgh-grid-group-toggle { flex: 0 0 auto; }\n.mgh-grid-group-toggle .mgh-grid-icon { transition: transform .15s; }\n.mgh-grid-group-toggle--expanded .mgh-grid-icon { transform: rotate(90deg); }\n.mgh-grid-detail-toggle .mgh-grid-icon { transition: transform .15s; }\n.mgh-grid-detail-toggle--expanded .mgh-grid-icon { transform: rotate(180deg); }\n\n/* ---- pinned rows ---- */\n.mgh-grid-pinned-rows { position: sticky; z-index: 2; min-width: 100%; width: max-content; background: var(--mgh-grid-bg); }\n.mgh-grid-pinned-rows--top { box-shadow: 0 2px 4px -2px var(--mgh-grid-pinned-shadow); }\n.mgh-grid-pinned-rows--bottom { bottom: 0; box-shadow: 0 -2px 4px -2px var(--mgh-grid-pinned-shadow); }\n.mgh-grid-pinned-rows--bottom .mgh-grid-row { border-bottom: 0; border-top: 1px solid var(--mgh-grid-border); }\n\n/* ---- detail panel ---- */\n.mgh-grid-detail-panel { position: sticky; left: 0; overflow: auto; border-bottom: 1px solid var(--mgh-grid-border); background: var(--mgh-grid-bg); z-index: 1; }\n\n/* ---- overlays ---- */\n.mgh-grid-overlay { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; z-index: 5; color: var(--mgh-grid-fg-secondary); font-size: 0.875rem; pointer-events: none; }\n.mgh-grid-overlay--loading { background: var(--mgh-grid-overlay); pointer-events: auto; }\n.mgh-grid-no-rows { display: flex; align-items: center; justify-content: center; gap: 8px; height: 100%; text-align: center; padding: 16px; }\n.mgh-grid-no-rows img, .mgh-grid-no-rows .mgh-grid-icon { width: 50px; height: 50px; color: var(--mgh-grid-fg-disabled); }\n.mgh-grid-spinner { width: 36px; height: 36px; border-radius: 50%; border: 3px solid var(--mgh-grid-selected); border-top-color: var(--mgh-grid-primary); animation: mgh-grid-spin .8s linear infinite; }\n@keyframes mgh-grid-spin { to { transform: rotate(360deg); } }\n\n/* ---- footer ---- */\n.mgh-grid-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 52px; padding: 0 8px 0 16px; border-top: 1px solid var(--mgh-grid-border); font-size: 0.875rem; color: var(--mgh-grid-fg-secondary); flex-wrap: wrap; }\n.mgh-grid-footer-left { display: flex; align-items: center; gap: 16px; }\n.mgh-grid-pagination { display: flex; align-items: center; gap: 8px; margin-left: auto; flex-wrap: wrap; }\n.mgh-grid-pagination-select { height: 32px; padding: 2px 24px 2px 8px; font-size: 0.875rem; border-color: transparent; }\n.mgh-grid-pagination-select:hover { border-color: transparent; background-color: var(--mgh-grid-hover); }\n.mgh-grid-pagination-actions { display: inline-flex; align-items: center; }\n\n/* ---- popover / menu / panels ---- */\n.mgh-grid-popover {\n --mgh-grid-font-family: inherit; --mgh-grid-font-size: 14px; --mgh-grid-paper: #ffffff; --mgh-grid-bg: #fff; --mgh-grid-fg: rgba(0,0,0,.87); --mgh-grid-fg-secondary: rgba(0,0,0,.6); --mgh-grid-fg-disabled: rgba(0,0,0,.38); --mgh-grid-border: rgba(224,224,224,1); --mgh-grid-hover: rgba(0,0,0,.04); --mgh-grid-selected: rgba(25,118,210,.08); --mgh-grid-primary: #1976d2; --mgh-grid-primary-contrast: #fff; --mgh-grid-focus: #1976d2; --mgh-grid-input-bg: transparent; --mgh-grid-input-border: rgba(0,0,0,.23); --mgh-grid-popover-shadow: 0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12);\n position: fixed; z-index: 1300; background: var(--mgh-grid-paper); color: var(--mgh-grid-fg); border-radius: 8px; box-shadow: var(--mgh-grid-popover-shadow); font-family: var(--mgh-grid-font-family); font-size: var(--mgh-grid-font-size); line-height: 1.5; outline: none; max-height: calc(100vh - 16px); overflow: auto; animation: mgh-grid-pop .12s ease-out;\n}\n.mgh-grid-popover[data-mgh-theme="dark"] { --mgh-grid-paper: #212b36; --mgh-grid-bg: #212b36; --mgh-grid-fg: #fff; --mgh-grid-fg-secondary: rgba(255,255,255,.7); --mgh-grid-fg-disabled: rgba(255,255,255,.5); --mgh-grid-border: rgba(81,81,81,1); --mgh-grid-hover: rgba(255,255,255,.08); --mgh-grid-selected: rgba(144,202,249,.16); --mgh-grid-primary: #90caf9; --mgh-grid-primary-contrast: rgba(0,0,0,.87); --mgh-grid-focus: #90caf9; --mgh-grid-input-border: rgba(255,255,255,.23); }\n@keyframes mgh-grid-pop { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }\n.mgh-grid-menu { list-style: none; margin: 0; padding: 6px 0; min-width: 180px; }\n.mgh-grid-menu-item { display: flex; align-items: center; gap: 12px; padding: 6px 16px; min-height: 36px; font-size: 0.875rem; cursor: pointer; white-space: nowrap; color: var(--mgh-grid-fg); background: transparent; border: 0; width: 100%; text-align: left; font-family: inherit; outline: none; }\n.mgh-grid-menu-item:hover, .mgh-grid-menu-item:focus-visible { background: var(--mgh-grid-hover); }\n.mgh-grid-menu-item--disabled { color: var(--mgh-grid-fg-disabled); cursor: default; pointer-events: none; }\n.mgh-grid-menu-item--selected { background: var(--mgh-grid-selected); }\n.mgh-grid-menu-item .mgh-grid-icon { color: var(--mgh-grid-fg-secondary); flex: 0 0 auto; }\n.mgh-grid-menu-divider { height: 1px; margin: 6px 0; background: var(--mgh-grid-border); border: 0; }\n.mgh-grid-menu-header { padding: 6px 16px 2px; font-size: 0.75rem; color: var(--mgh-grid-fg-secondary); text-transform: uppercase; letter-spacing: .04em; }\n.mgh-grid-menu-section { padding: 4px 16px 8px; display: flex; flex-direction: column; gap: 4px; }\n.mgh-grid-panel { display: flex; flex-direction: column; min-width: 300px; max-width: min(640px, calc(100vw - 16px)); }\n.mgh-grid-panel-header { padding: 12px 12px 4px; }\n.mgh-grid-panel-content { padding: 4px 12px; overflow: auto; max-height: 360px; }\n.mgh-grid-panel-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px; }\n.mgh-grid-columns-list { display: flex; flex-direction: column; }\n.mgh-grid-filter-row { display: grid; grid-template-columns: 32px minmax(120px, 1fr) minmax(120px, 1fr) minmax(140px, 1.3fr); gap: 8px; align-items: end; margin-bottom: 8px; }\n.mgh-grid-filter-row--first { grid-template-columns: 32px minmax(120px, 1fr) minmax(120px, 1fr) minmax(140px, 1.3fr); }\n.mgh-grid-filter-row--with-logic { grid-template-columns: 32px 80px minmax(120px, 1fr) minmax(120px, 1fr) minmax(140px, 1.3fr); }\n.mgh-grid-filter-row .mgh-grid-btn--icon { margin-bottom: 4px; }\n.mgh-grid-filter-empty { padding: 8px 4px; color: var(--mgh-grid-fg-secondary); font-size: 0.875rem; }\n@media (max-width: 599.95px) { .mgh-grid-filter-row, .mgh-grid-filter-row--with-logic { grid-template-columns: 1fr; } }\n\n/* ---- misc ---- */\n.mgh-grid-tooltip-anchor { display: inline-flex; }\n.mgh-grid-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; }\n@media print { .mgh-grid-toolbar, .mgh-grid-footer { display: none !important; } }\n';let Ne=!1;const Re=e.useInsertionEffect??("undefined"!=typeof window?e.useLayoutEffect:e.useEffect),ze=()=>{Re(()=>{(()=>{if(Ne||"undefined"==typeof document)return;if(document.getElementById(Ie))return void(Ne=!0);const e=document.createElement("style");e.id=Ie,e.setAttribute("data-mgh-grid","true"),e.textContent=Pe,document.head.appendChild(e),Ne=!0})()},[])},De=e.createContext(null);De.displayName="MGHGridContext";const Ge=()=>{const t=e.useContext(De);if(!t)throw new Error("MGHGrid: this component must be rendered inside an <MGHGrid /> (e.g. through a slot).");return t};function Te(t){const n=e.useRef(t);return n.current=t,n}function Oe(t,n,r){const l=void 0!==t,[o,i]=e.useState(n),a=l?t:o,d=Te(a),s=Te(l),c=Te(r);return[a,e.useCallback(e=>{const t="function"==typeof e?e(d.current):e;Object.is(t,d.current)||(d.current=t,s.current||i(t),c.current?.(t))},[])]}let Ae=0;const He=(e,t)=>{const n=((e,t)=>{const n=e.getAllColumns();let r;if(t.fields){const e=new Map;n.forEach(t=>e.set(t.field,t)),r=t.fields.map(t=>e.get(t)).filter(Boolean)}else r=t.allColumns?n:e.getVisibleColumns();return r.filter(e=>!e.disableExport&&!T(e.field)&&"actions"!==e.type)})(e,t),r=t.getRowsToExport?t.getRowsToExport({api:e}):e.getSortedRowIds(),l=[];return r.forEach(t=>{const r=e.getRow(t);r&&l.push(n.map(n=>{const l=Z(r,n,e);return{raw:l,formatted:ne(te(l,r,n,e,t)),col:n}}))}),{columns:n,headers:n.map(e=>e.headerName??e.field),rows:l}},Le=(e,t,n)=>{const r=e&&e.trim()||t;return r.toLowerCase().endsWith(`.${n}`)?r:`${r}.${n}`},Ve=()=>(("undefined"!=typeof document&&document.title?document.title.trim():"")||"export").replace(/[\\/:*?"<>|]+/g,"-"),Be=(e,t)=>{let n=e;return/^[=+\-@\t\r]/.test(n)&&(n=`'${n}`),-1!==n.indexOf('"')||-1!==n.indexOf(t)||/[\r\n]/.test(n)?`"${n.replace(/"/g,'""')}"`:n},$e=(e,t={})=>{const n=t.delimiter??",",r=t.includeHeaders??!0,l=He(e,t),o=[];return r&&o.push(l.headers.map(e=>Be(e,n)).join(n)),l.rows.forEach(e=>{o.push(e.map(e=>{const r=t.useRawValues?O(e.raw)?"":String(e.raw):e.formatted;return Be(r,n)}).join(n))}),o.join("\r\n")},Ue=String.fromCharCode(65279),We=(()=>{const e=new Uint32Array(256);for(let t=0;t<256;t+=1){let n=t;for(let e=0;e<8;e+=1)n=1&n?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})(),qe="undefined"!=typeof TextEncoder?new TextEncoder:null,je=e=>{if(qe)return qe.encode(e);const t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n},_e=e=>{const t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t);let r=0;return e.forEach(e=>{n.set(e,r),r+=e.length}),n},Ke=e=>{const t=[],n=[];let r=0;e.forEach(e=>{const l=je(e.name),o=(e=>{let t=4294967295;for(let n=0;n<e.length;n+=1)t=We[255&(t^e[n])]^t>>>8;return(4294967295^t)>>>0})(e.data),i=e.data.length,a=new Uint8Array(30+l.length),d=new DataView(a.buffer);d.setUint32(0,67324752,!0),d.setUint16(4,20,!0),d.setUint16(6,2048,!0),d.setUint16(8,0,!0),d.setUint16(10,0,!0),d.setUint16(12,33,!0),d.setUint32(14,o,!0),d.setUint32(18,i,!0),d.setUint32(22,i,!0),d.setUint16(26,l.length,!0),d.setUint16(28,0,!0),a.set(l,30);const s=new Uint8Array(46+l.length),c=new DataView(s.buffer);c.setUint32(0,33639248,!0),c.setUint16(4,20,!0),c.setUint16(6,20,!0),c.setUint16(8,2048,!0),c.setUint16(10,0,!0),c.setUint16(12,0,!0),c.setUint16(14,33,!0),c.setUint32(16,o,!0),c.setUint32(20,i,!0),c.setUint32(24,i,!0),c.setUint16(28,l.length,!0),c.setUint16(30,0,!0),c.setUint16(32,0,!0),c.setUint16(34,0,!0),c.setUint16(36,0,!0),c.setUint32(38,0,!0),c.setUint32(42,r,!0),s.set(l,46),t.push(a,e.data),n.push(s),r+=a.length+i});const l=_e(n),o=new Uint8Array(22),i=new DataView(o.buffer);return i.setUint32(0,101010256,!0),i.setUint16(4,0,!0),i.setUint16(6,0,!0),i.setUint16(8,e.length,!0),i.setUint16(10,e.length,!0),i.setUint32(12,l.length,!0),i.setUint32(16,r,!0),i.setUint16(20,0,!0),_e(t.concat([l,o]))},Qe=new RegExp("["+String.fromCharCode(0)+"-"+String.fromCharCode(8)+String.fromCharCode(11)+String.fromCharCode(12)+String.fromCharCode(14)+"-"+String.fromCharCode(31)+String.fromCharCode(65534)+String.fromCharCode(65535)+"]","g"),Xe=e=>(e=>e.replace(Qe,""))(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),Ye=e=>{let t=e+1,n="";for(;t>0;){const e=(t-1)%26;n=String.fromCharCode(65+e)+n,t=Math.floor((t-1)/26)}return n},Je='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n',Ze=(e,t,n)=>{const r=[];let l=1;const o=(e,t,n)=>`<c r="${e}" t="inlineStr"${n?` s="${n}"`:""}><is><t xml:space="preserve">${Xe(t)}</t></is></c>`;if(t){const t=e.headers.map((e,t)=>o(`${Ye(t)}${l}`,e,1)).join("");r.push(`<row r="${l}">${t}</row>`),l+=1}e.rows.forEach(e=>{const t=e.map((e,t)=>{const n=`${Ye(t)}${l}`,r=e.col.type;if(O(e.raw)||""===e.raw)return"";if("number"===r&&"number"==typeof e.raw&&Number.isFinite(e.raw))return`<c r="${n}"><v>${e.raw}</v></c>`;if("boolean"===r)return`<c r="${n}" t="b"><v>${e.raw?1:0}</v></c>`;if(("date"===r||"dateTime"===r)&&j(e.raw)){const t=j(e.raw);return`<c r="${n}" s="${"dateTime"===r?3:2}"><v>${Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds())/864e5+25569}</v></c>`}return o(n,e.formatted)}).join("");r.push(`<row r="${l}">${t}</row>`),l+=1});const i=Ye(Math.max(e.columns.length-1,0)),a=Math.max(l-1,1),d=n.map((e,t)=>`<col min="${t+1}" max="${t+1}" width="${e}" customWidth="1"/>`).join("");return Je+'<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'+`<dimension ref="A1:${i}${a}"/><sheetViews><sheetView workbookViewId="0">`+(t?'<pane ySplit="1" topLeftCell="A2" activePane="bottomLeft" state="frozen"/>':"")+'</sheetView></sheetViews><sheetFormatPr defaultRowHeight="15"/>'+(d?`<cols>${d}</cols>`:"")+`<sheetData>${r.join("")}</sheetData>`+(t&&e.rows.length>0?`<autoFilter ref="A1:${i}${a}"/>`:"")+"</worksheet>"},et=Je+'<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><numFmts count="2"><numFmt numFmtId="164" formatCode="m/d/yyyy"/><numFmt numFmtId="165" formatCode="m/d/yyyy h:mm AM/PM"/></numFmts><fonts count="2"><font><sz val="11"/><name val="Calibri"/></font><font><b/><sz val="11"/><name val="Calibri"/></font></fonts><fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="4"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1"/><xf numFmtId="164" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="165" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles></styleSheet>',tt=Je+'<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/><Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/></Types>',nt=Je+'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/></Relationships>',rt=Je+'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>',lt=e=>Je+'<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'+`<sheets><sheet name="${Xe(e)}" sheetId="1" r:id="rId1"/></sheets></workbook>`,ot=()=>{const e=(new Date).toISOString();return Je+'<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:creator>MGH Grid</dc:creator>'+`<dcterms:created xsi:type="dcterms:W3CDTF">${e}</dcterms:created>`+`<dcterms:modified xsi:type="dcterms:W3CDTF">${e}</dcterms:modified></cp:coreProperties>`},it=Je+'<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"><Application>MGH Grid</Application></Properties>',at=(e,t={})=>{const n=t.includeHeaders??!0,r=He(e,t),l=r.columns.map((e,n)=>{const l=t.columnsStyles?.[e.field]?.width;if(l)return l;let o=r.headers[n].length;for(let e=0;e<Math.min(r.rows.length,500);e+=1){const t=r.rows[e][n].formatted.length;t>o&&(o=t)}return Math.min(Math.max(o+2,8),60)}),o=(e=>{const t=(e||"Sheet1").replace(/[\[\]:*?/\\]/g," ").trim()||"Sheet1";return t.length>31?t.slice(0,31):t})(t.sheetName),i=[{name:"[Content_Types].xml",data:je(tt)},{name:"_rels/.rels",data:je(nt)},{name:"docProps/core.xml",data:je(ot())},{name:"docProps/app.xml",data:je(it)},{name:"xl/workbook.xml",data:je(lt(o))},{name:"xl/_rels/workbook.xml.rels",data:je(rt)},{name:"xl/styles.xml",data:je(et)},{name:"xl/worksheets/sheet1.xml",data:je(Ze(r,n,l))}];return Ke(i)},dt=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),st=e=>O(e)?"":e instanceof Date?String(e.getTime()):String(e),ct=(e,t,n,r,l="(empty)")=>{const o=(e,i,a,d)=>{const s=t[i],c=n.get(s);if(!c)return[];const g=new Map;e.forEach(e=>{const t=((e,t,n)=>t.groupingValueGetter?t.groupingValueGetter(e[t.field],e,t,n):Z(e,t,n))(e.row,c,r),n=st(t);let o=g.get(n);if(!o){const m=ne(te(t,e.row,c,r,e.id))||l;o={id:`auto-generated-row-${d}${s}/${n}`,depth:i,parent:a,groupingField:s,groupingKey:t,groupingLabel:m,childGroups:[],leaves:[],descendants:[]},g.set(n,o)}o.leaves.push(e)});const m=[];return g.forEach(e=>{i<t.length-1?(e.childGroups=o(e.leaves,i+1,e.id,`${d}${s}/${st(e.groupingKey)}|`),e.descendants=e.leaves,e.leaves=[]):e.descendants=e.leaves,m.push(e)}),m};return o(e,0,null,"")},gt=e=>{const t=[];return e.forEach(e=>e.descendants.forEach(e=>t.push(e))),t},mt=(e,t,n,r,l)=>{const o={};return Object.keys(t).forEach(i=>{const a=t[i],d=r[a],s=n.get(i);if(!d||!s||!1===s.aggregable)return;const c=e.map(e=>Z(e,s,l));o[i]={value:d.apply({values:c,field:i}),fn:a}}),o},ut=(t,n)=>{const r=e.forwardRef(({size:n=20,className:r,style:l,...o},i)=>e.createElement("svg",{ref:i,viewBox:"0 0 24 24",width:n,height:n,fill:"currentColor",focusable:"false","aria-hidden":"true",className:["mgh-grid-icon",r].filter(Boolean).join(" "),style:l,...o},t));return r.displayName=n,r},pt=ut(e.createElement("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumnIcon"),ht=ut(e.createElement("path",{d:"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"}),"FilterListIcon"),ft=ut(e.createElement("path",{d:"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"}),"SearchIcon"),bt=ut(e.createElement("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"CloseIcon"),xt=ut(e.createElement("path",{d:"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"}),"DownloadIcon"),wt=ut(e.createElement("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"}),"ArrowUpwardIcon"),vt=ut(e.createElement("path",{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownwardIcon"),yt=ut(e.createElement("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreVertIcon"),Et=ut(e.createElement("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"}),"CheckIcon"),Ct=ut(e.createElement("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMoreIcon"),Mt=ut(e.createElement("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"ChevronRightIcon"),kt=ut(e.createElement("path",{d:"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"ChevronLeftIcon"),St=ut(e.createElement("path",{d:"M18.41 16.59 13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPageIcon"),Ft=ut(e.createElement("path",{d:"M5.59 7.41 10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPageIcon"),It=ut(e.createElement("path",{d:"M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3z"}),"PushPinIcon"),Pt=ut(e.createElement("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"DeleteIcon"),Nt=ut(e.createElement("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"AddIcon"),Rt=ut(e.createElement("path",{d:"M3 2h18v2H3zm0 18h18v2H3zm0-6h18v2H3zm0-6h18v2H3z"}),"DensitySmallIcon"),zt=ut(e.createElement("path",{d:"M3 3h18v2H3zm0 16h18v2H3zm0-8h18v2H3z"}),"DensityMediumIcon"),Dt=ut(e.createElement("path",{d:"M3 3h18v2H3zm0 16h18v2H3z"}),"DensityLargeIcon"),Gt=ut(e.createElement("path",{d:"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"DragIndicatorIcon"),Tt=ut(e.createElement("path",{d:"M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"}),"PrintIcon"),Ot=ut(e.createElement("path",{d:"M10 10.02h5V21h-5zM17 21h3c1.1 0 2-.9 2-2v-9h-5v11zm3-18H5c-1.1 0-2 .9-2 2v3h19V5c0-1.1-.9-2-2-2zM3 19c0 1.1.9 2 2 2h3V10H3v9z"}),"TableChartIcon"),At=ut(e.createElement("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"}),"DescriptionIcon"),Ht=ut(e.createElement("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOffIcon"),Lt=ut(e.createElement("path",{d:"M18 4H6v2l6.5 6L6 18v2h12v-3h-7l5-5-5-5h7z"}),"FunctionsIcon"),Vt=ut(e.createElement("path",{d:"M6 13c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6-10C9.8 3 8 4.8 8 7s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6 10c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4z"}),"WorkspacesIcon"),Bt=ut(e.createElement(e.Fragment,null,e.createElement("path",{d:"M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 0 0-5.5-1.65l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2z",opacity:".25"}),e.createElement("path",{d:"M4 8h16v11H4z",opacity:".15"})),"EmptyBoxIcon");var $t=Object.freeze({__proto__:null,AddIcon:Nt,ArrowDownwardIcon:vt,ArrowUpwardIcon:wt,CheckIcon:Et,ChevronLeftIcon:kt,ChevronRightIcon:Mt,CloseIcon:bt,DeleteIcon:Pt,DensityLargeIcon:Dt,DensityMediumIcon:zt,DensitySmallIcon:Rt,DescriptionIcon:At,DownloadIcon:xt,DragIndicatorIcon:Gt,EmptyBoxIcon:Bt,ExpandMoreIcon:Ct,FilterListIcon:ht,FirstPageIcon:St,FunctionsIcon:Lt,LastPageIcon:Ft,MoreVertIcon:yt,PrintIcon:Tt,PushPinIcon:It,SearchIcon:ft,TableChartIcon:Ot,ViewColumnIcon:pt,VisibilityOffIcon:Ht,WorkspacesIcon:Vt});const Ut=e.forwardRef(({variant:t="text",size:n="medium",startIcon:r,endIcon:l,active:o,className:i,children:a,type:d="button",...s},c)=>e.createElement("button",{ref:c,type:d,className:L("mgh-grid-btn","primary"===t&&"mgh-grid-btn--primary","contained"===t&&"mgh-grid-btn--contained","small"===n&&"mgh-grid-btn--small",o&&"mgh-grid-btn--active",i),...s},r,a,l));Ut.displayName="MGHGridButton";const Wt=e.forwardRef(({size:t="medium",active:n,label:r,className:l,children:o,type:i="button",...a},d)=>e.createElement("button",{ref:d,type:i,title:r,"aria-label":r,className:L("mgh-grid-btn mgh-grid-btn--icon","small"===t&&"mgh-grid-btn--small",n&&"mgh-grid-btn--active",l),...a},o));Wt.displayName="MGHGridIconButton";const qt=({count:t=0,variant:n="dot",children:r})=>e.createElement("span",{className:"mgh-grid-badge"},r,t>0&&("dot"===n?e.createElement("span",{className:"mgh-grid-badge-dot"}):e.createElement("span",{className:"mgh-grid-badge-count"},t>99?"99+":t))),jt=e.forwardRef(({size:t="medium",className:n,...r},l)=>e.createElement("input",{ref:l,className:L("mgh-grid-input","small"===t&&"mgh-grid-input--small",n),...r}));jt.displayName="MGHGridTextInput";const _t=e.forwardRef(({size:t="medium",className:n,...r},l)=>e.createElement("select",{ref:l,className:L("mgh-grid-select","small"===t&&"mgh-grid-select--small",n),...r}));_t.displayName="MGHGridSelect";const Kt=({label:t,children:n,className:r,htmlFor:l})=>e.createElement("div",{className:L("mgh-grid-field",r)},t&&e.createElement("label",{className:"mgh-grid-field-label",htmlFor:l},t),n),Qt=e.forwardRef(({indeterminate:t=!1,label:n,className:r,...l},o)=>{const i=e.useRef(null),a=e.useCallback(e=>{i.current=e,"function"==typeof o?o(e):o&&(o.current=e)},[o]);return e.useEffect(()=>{i.current&&(i.current.indeterminate=t)},[t]),e.createElement("input",{ref:a,type:"checkbox",title:n,"aria-label":n,className:L("mgh-grid-checkbox",r),...l})});Qt.displayName="MGHGridCheckbox";const Xt=({className:t})=>e.createElement("div",{className:L("mgh-grid-spinner",t),role:"progressbar","aria-label":"Loading"});function Yt({open:t,anchorEl:n,onClose:r,children:l,placement:o="bottom-start",themeMode:i="light",className:a,style:d,offset:s=4,role:c="dialog",autoFocus:g=!1,ignoreOutsideClickOn:m}){const u=e.useRef(null),[h,f]=e.useState({top:0,left:0,ready:!1}),b=e.useCallback(()=>{const e=u.current;if(!e)return;const t=window.innerWidth,r=window.innerHeight,l=e.offsetWidth,i=e.offsetHeight;let a,d;if(n&&n.isConnected){const e=n.getBoundingClientRect();"right-start"===o?(a=e.top,d=e.right+s,d+l>t-8&&(d=e.left-s-l)):(a=e.bottom+s,a+i>r-8&&e.top-s-i>=8&&(a=e.top-s-i),d="bottom-end"===o?e.right-l:"bottom"===o?e.left+e.width/2-l/2:e.left)}else a=r/2-i/2,d=t/2-l/2;a=H(a,8,Math.max(8,r-i-8)),d=H(d,8,Math.max(8,t-l-8)),f(e=>e.ready&&e.top===a&&e.left===d?e:{top:a,left:d,ready:!0})},[n,o,s]);if(e.useLayoutEffect(()=>{if(!t)return void f(e=>e.ready?{...e,ready:!1}:e);b(),window.addEventListener("resize",b),window.addEventListener("scroll",b,!0);let e=null;return"undefined"!=typeof ResizeObserver&&u.current&&(e=new ResizeObserver(()=>b()),e.observe(u.current)),()=>{window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0),e?.disconnect()}},[t,b]),e.useEffect(()=>{if(!t)return;const e=e=>{const t=e.target;t&&(u.current?.contains(t)||n?.contains(t)||m?.some(e=>e.current?.contains(t))||t.closest?.(".mgh-grid-popover")||r("backdrop"))},l=e=>{"Escape"===e.key&&r("escape")};return document.addEventListener("mousedown",e,!0),document.addEventListener("touchstart",e,!0),document.addEventListener("keydown",l),()=>{document.removeEventListener("mousedown",e,!0),document.removeEventListener("touchstart",e,!0),document.removeEventListener("keydown",l)}},[t,r,n,m]),e.useEffect(()=>{if(t&&g&&u.current){(u.current.querySelector('input, select, textarea, button, [tabindex]:not([tabindex="-1"])')??u.current).focus()}},[t,g]),!t||"undefined"==typeof document)return null;const x=e=>e.stopPropagation();return p.createPortal(e.createElement("div",{ref:u,role:c,tabIndex:-1,className:L("mgh-grid-popover",a),"data-mgh-theme":i,style:{top:h.top,left:h.left,visibility:h.ready?"visible":"hidden",...d},onClick:x,onDoubleClick:x,onMouseDown:x,onKeyDown:e=>{if("Escape"===e.key)return e.stopPropagation(),void r("escape");e.stopPropagation()}},l),document.body)}const Jt=({children:t,className:n,onKeyDown:r,...l})=>{const o=e.useRef(null);return e.useEffect(()=>{const e=o.current?.querySelector('[role="menuitem"]:not([aria-disabled="true"])');e?.focus()},[]),e.createElement("ul",{ref:o,role:"menu",className:L("mgh-grid-menu",n),onKeyDown:e=>{if(r?.(e),"ArrowDown"!==e.key&&"ArrowUp"!==e.key&&"Home"!==e.key&&"End"!==e.key)return;const t=Array.from(o.current?.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')??[]);if(0===t.length)return;e.preventDefault();const n=t.indexOf(document.activeElement);let l=0;l="ArrowDown"===e.key?n<0?0:(n+1)%t.length:"ArrowUp"===e.key?n<0?t.length-1:(n-1+t.length)%t.length:"Home"===e.key?0:t.length-1,t[l].focus()},...l},t)},Zt=e.forwardRef(({icon:t,selected:n,disabled:r,className:l,children:o,onClick:i,hideMenu:a,...d},s)=>e.createElement("li",{role:"none"},e.createElement("button",{ref:s,type:"button",role:"menuitem","aria-disabled":r||void 0,disabled:r,tabIndex:-1,className:L("mgh-grid-menu-item",r&&"mgh-grid-menu-item--disabled",n&&"mgh-grid-menu-item--selected",l),onClick:e=>{r||(i?.(e),a?.())},...d},t,e.createElement("span",null,o))));Zt.displayName="MGHGridMenuItem";const en=()=>e.createElement("li",{role:"separator",className:"mgh-grid-menu-divider"}),tn=({children:t})=>e.createElement("li",{role:"presentation",className:"mgh-grid-menu-section"},t);function nn(){const{api:t,state:n,localeText:r}=Ge(),l=n.preferencePanel.open&&"columns"===n.preferencePanel.openedPanelValue;return e.createElement(Wt,{label:r.toolbarColumns,active:l,"aria-haspopup":"dialog","aria-expanded":l,onClick:e=>l?t.hidePreferences():t.showPreferences("columns",e.currentTarget)},e.createElement(pt,null))}function rn(){const{api:t,state:n,localeText:r}=Ge(),l=n.preferencePanel.open&&"filters"===n.preferencePanel.openedPanelValue;return e.createElement(Wt,{label:r.toolbarFilters,active:l,"aria-haspopup":"dialog","aria-expanded":l,onClick:e=>l?t.hidePreferences():t.showPreferences("filters",e.currentTarget)},e.createElement(qt,{count:n.filterCount,variant:"dot"},e.createElement(ht,null)))}function ln(){const{api:t,state:n,localeText:r,themeMode:l}=Ge(),[o,i]=e.useState(null),a=[{value:"compact",label:r.densityCompact,icon:e.createElement(Rt,null)},{value:"standard",label:r.densityStandard,icon:e.createElement(zt,null)},{value:"comfortable",label:r.densityComfortable,icon:e.createElement(Dt,null)}],d=a.find(e=>e.value===n.density)??a[1];return e.createElement(e.Fragment,null,e.createElement(Wt,{label:r.toolbarDensity,active:Boolean(o),"aria-haspopup":"menu",onClick:e=>i(t=>t?null:e.currentTarget)},d.icon),e.createElement(Yt,{open:Boolean(o),anchorEl:o,onClose:()=>i(null),themeMode:l,role:"menu"},e.createElement(Jt,null,a.map(r=>e.createElement(Zt,{key:r.value,icon:r.icon,selected:r.value===n.density,onClick:()=>t.setDensity(r.value),hideMenu:()=>i(null)},r.label)))))}const on=Zt;function an({csvOptions:t={allColumns:!0},excelOptions:n={allColumns:!0},printOptions:r,showCsvOption:l=!0,showExcelOption:o=!0,showPrintOption:i=!0,customMenuItem:a}){const{api:d,localeText:s,themeMode:c,rootProps:g}=Ge(),[m,u]=e.useState(null),p=()=>u(null),h=e.Children.map(a,t=>e.isValidElement(t)?e.cloneElement(t,{hideMenu:p}):t),f={title:"string"==typeof g.header?g.header:void 0,...r};return e.createElement(e.Fragment,null,e.createElement(Wt,{label:s.toolbarExport,active:Boolean(m),"aria-haspopup":"menu",onClick:e=>u(t=>t?null:e.currentTarget)},e.createElement(xt,null)),e.createElement(Yt,{open:Boolean(m),anchorEl:m,onClose:p,themeMode:c,role:"menu"},e.createElement(Jt,null,h,l&&e.createElement(Zt,{icon:e.createElement(At,null),onClick:()=>d.exportDataAsCsv(t),hideMenu:p},s.toolbarExportCSV),o&&e.createElement(Zt,{icon:e.createElement(Ot,null),onClick:()=>{d.exportDataAsExcel(n)},hideMenu:p},s.toolbarExportExcel),i&&e.createElement(Zt,{icon:e.createElement(Tt,null),onClick:()=>d.exportDataAsPrint(f),hideMenu:p},s.toolbarExportPrint))))}function dn({placeholder:t,debounceMs:n,alwaysExpanded:r=!1}){const{api:l,state:o,localeText:i,rootProps:a}=Ge(),d=(o.quickFilterValues??[]).join(" "),[s,c]=e.useState(d),[g,m]=e.useState(r||""!==d),u=e.useRef(null),p=e.useRef(null),h=n??a.quickFilterDebounceMs,f=e.useRef(d);e.useEffect(()=>{d!==f.current&&(f.current=d,c(d),""!==d&&m(!0))},[d]),e.useEffect(()=>()=>{null!==p.current&&window.clearTimeout(p.current)},[]);const b=e=>{const t=e.split(/\s+/).filter(e=>""!==e);f.current=t.join(" "),l.setQuickFilterValues(t)},x=()=>{null!==p.current&&window.clearTimeout(p.current),c(""),b(""),u.current?.focus()},w=r||g;return e.createElement("div",{className:L("mgh-grid-quick-filter",w&&"mgh-grid-quick-filter--expanded")},e.createElement(Wt,{className:"mgh-grid-quick-filter-trigger",label:i.toolbarQuickFilterLabel,"aria-disabled":w,tabIndex:w?-1:0,onClick:()=>{m(!0),window.setTimeout(()=>u.current?.focus(),0)}},e.createElement(ft,null)),e.createElement("div",{className:L("mgh-grid-quick-filter-control mgh-grid-input-adorned",s&&"mgh-grid-input-adorned--clearable")},e.createElement("span",{className:"mgh-grid-input-adornment"},e.createElement(ft,{size:18})),e.createElement(jt,{ref:u,size:"small",type:"search",value:s,tabIndex:w?0:-1,placeholder:t??i.toolbarQuickFilterPlaceholder,"aria-label":i.toolbarQuickFilterLabel,onChange:e=>{return t=e.target.value,c(t),null!==p.current&&window.clearTimeout(p.current),void(p.current=window.setTimeout(()=>b(t),h));var t},onBlur:()=>{r||""!==s.trim()||m(!1)},onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),s?x():r||(m(!1),u.current?.blur())),"Enter"===e.key&&(null!==p.current&&window.clearTimeout(p.current),b(s))}}),s&&e.createElement("span",{className:"mgh-grid-input-adornment mgh-grid-input-adornment--end"},e.createElement(Wt,{size:"small",label:i.clearSearch,onClick:x,tabIndex:-1},e.createElement(bt,null)))))}function sn({showColumnsButton:t=!0,showFilterButton:n=!0,showExportButton:r=!0,showQuickFilter:l=!0,showDensitySelector:o=!1,showCsvOption:i=!0,showExcelOption:a=!0,showPrintOption:d=!0,csvOptions:s,excelOptions:c,printOptions:g,renderOtherButtons:m,renderDateRange:u,customMenuItem:p,quickFilterPlaceholder:h,quickFilterDebounceMs:f}){const{rootProps:b}=Ge(),x=t&&!b.disableColumnSelector,w=n&&!b.disableColumnFilter,v=o&&!b.disableDensitySelector;return e.createElement("div",{className:"mgh-grid-toolbar",role:"toolbar"},e.createElement("div",{className:"mgh-grid-toolbar-group"},x&&e.createElement(nn,null),w&&e.createElement(rn,null),v&&e.createElement(ln,null),r&&e.createElement(an,{csvOptions:s,excelOptions:c,printOptions:g,showCsvOption:i,showExcelOption:a,showPrintOption:d,customMenuItem:p})),u&&e.createElement("div",{className:"mgh-grid-toolbar-center"},u),e.createElement("div",{className:"mgh-grid-toolbar-group"},m,l&&e.createElement(dn,{placeholder:h,debounceMs:f})))}function cn(){const{api:t,state:n,localeText:r,rootProps:l}=Ge(),{page:o,pageSize:i}=n.paginationModel,a=n.rowCount,d=n.pageCount,s=0===a?0:o*i+1,c=Math.min(a,(o+1)*i),g=-1===l.pageSizeOptions.indexOf(i)?l.pageSizeOptions.concat([i]).sort((e,t)=>e-t):l.pageSizeOptions;return e.createElement("div",{className:"mgh-grid-pagination",role:"navigation","aria-label":"Pagination"},e.createElement("span",null,r.footerPaginationRowsPerPage),e.createElement(_t,{className:"mgh-grid-pagination-select",value:i,"aria-label":r.footerPaginationRowsPerPage,onChange:e=>t.setPageSize(Number(e.target.value))},g.map(t=>e.createElement("option",{key:t,value:t},t))),e.createElement("span",null,r.footerPaginationDisplayedRows(s,c,a)),e.createElement("div",{className:"mgh-grid-pagination-actions"},e.createElement(Wt,{label:r.footerPaginationFirstPage,disabled:o<=0,onClick:()=>t.setPage(0)},e.createElement(St,null)),e.createElement(Wt,{label:r.footerPaginationPreviousPage,disabled:o<=0,onClick:()=>t.setPage(o-1)},e.createElement(kt,null)),e.createElement(Wt,{label:r.footerPaginationNextPage,disabled:o>=d-1,onClick:()=>t.setPage(o+1)},e.createElement(Mt,null)),e.createElement(Wt,{label:r.footerPaginationLastPage,disabled:o>=d-1,onClick:()=>t.setPage(Math.max(d-1,0))},e.createElement(Ft,null))))}function gn(){const{state:t,localeText:n,rootProps:r}=Ge(),l=t.rowSelectionModel.ids.size,o=l>0&&!r.hideFooterSelectedRowCount,i=r.pagination&&!r.hideFooterPagination,a=!i&&!r.hideFooterRowCount;return e.createElement("div",{className:"mgh-grid-footer"},e.createElement("div",{className:"mgh-grid-footer-left"},o&&e.createElement("span",null,n.footerRowSelected(l))),a&&e.createElement("span",null,n.footerTotalRows," ",t.rowCount.toLocaleString()),i&&e.createElement(cn,null))}function mn(){const{api:t,state:n,localeText:r,columns:l,visibleColumns:o}=Ge(),i=e.useMemo(()=>new Set(o.map(e=>e.field)),[o]),[a,d]=e.useState(""),s=n.columnVisibilityModel,c=l.filter(e=>!1!==e.hideable),g=a.trim().toLowerCase(),m=g?c.filter(e=>-1!==(e.headerName??e.field).toLowerCase().indexOf(g)):c,u=e=>{const n={...s};c.forEach(t=>{n[t.field]=e}),t.setColumnVisibilityModel(n)};return e.createElement("div",{className:"mgh-grid-panel",role:"group","aria-label":r.toolbarColumns},e.createElement("div",{className:"mgh-grid-panel-header"},e.createElement("div",{className:"mgh-grid-input-adorned"},e.createElement("span",{className:"mgh-grid-input-adornment"},e.createElement(ft,{size:18})),e.createElement(jt,{autoFocus:!0,size:"small",value:a,placeholder:r.columnsPanelSearchPlaceholder,"aria-label":r.columnsPanelSearchPlaceholder,onChange:e=>d(e.target.value)}))),e.createElement("div",{className:"mgh-grid-panel-content"},e.createElement("div",{className:"mgh-grid-columns-list"},m.map(n=>{const r=i.has(n.field);return e.createElement("label",{key:n.field,className:"mgh-grid-checkbox-label"},e.createElement(Qt,{checked:r,onChange:()=>t.setColumnVisibility(n.field,!r)}),e.createElement("span",null,n.headerName??n.field))}),0===m.length&&e.createElement("div",{className:"mgh-grid-filter-empty"},"No columns"))),e.createElement("div",{className:"mgh-grid-panel-footer"},e.createElement(Ut,{variant:"primary",size:"small",onClick:()=>u(!0)},r.columnsPanelShowAll),e.createElement(Ut,{variant:"primary",size:"small",onClick:()=>u(!1)},r.columnsPanelHideAll),e.createElement(Ut,{size:"small",onClick:()=>t.setColumnVisibilityModel({})},r.columnsPanelReset)))}const un=(t,n,r=250)=>{const[l,o]=e.useState(t??""),i=e.useRef(null);e.useEffect(()=>{o(t??"")},[t]);return e.useEffect(()=>()=>{null!==i.current&&window.clearTimeout(i.current)},[]),[l,e=>{o(e),null!==i.current&&window.clearTimeout(i.current),i.current=window.setTimeout(()=>n(e),r)}]};function pn({item:t,onChange:n,placeholder:r,type:l}){const[o,i]=un(t.value,n);return e.createElement(jt,{size:"small",type:l,value:o,placeholder:r,"aria-label":r,onChange:e=>i(e.target.value)})}function hn({item:t,column:n,onChange:r,placeholder:l}){const o=Array.isArray(t.value)?t.value.join(", "):t.value??"",[i,a]=un(o,e=>r(String(e).split(",").map(e=>e.trim()).filter(e=>""!==e)));if("singleSelect"===n.type){const o=J(n),i=Array.isArray(t.value)?t.value.map(String):[];return e.createElement(_t,{multiple:!0,size:"small",value:i,"aria-label":l,onChange:e=>{const t=Array.from(e.target.selectedOptions).map(e=>{const t=o.find(t=>String(X(n,t))===e.value);return void 0!==t?X(n,t):e.value});r(t)}},o.map(t=>{const r=X(n,t);return e.createElement("option",{key:String(r),value:String(r)},Y(n,t))}))}return e.createElement(jt,{size:"small",value:i,placeholder:"Comma separated values","aria-label":l,onChange:e=>a(e.target.value)})}function fn(t){const{item:n,column:r,operator:l,onChange:o,placeholder:i}=t,{api:a}=Ge(),d=l?.inputType??"text";if(l?.InputComponent){const t=l.InputComponent;return e.createElement(t,{item:n,column:r,applyValue:e=>o(e.value),api:a})}switch(d){case"none":return e.createElement("div",null);case"boolean":return e.createElement(_t,{size:"small",value:void 0===n.value||null===n.value?"":String(n.value),"aria-label":i,onChange:e=>o(""===e.target.value?void 0:e.target.value)},e.createElement("option",{value:""},"any"),e.createElement("option",{value:"true"},"yes"),e.createElement("option",{value:"false"},"no"));case"select":{const t=J(r);return e.createElement(_t,{size:"small",value:void 0===n.value||null===n.value?"":String(n.value),"aria-label":i,onChange:e=>{const n=t.find(t=>String(X(r,t))===e.target.value);o(""===e.target.value?void 0:void 0!==n?X(r,n):e.target.value)}},e.createElement("option",{value:""}),t.map(t=>{const n=X(r,t);return e.createElement("option",{key:String(n),value:String(n)},Y(r,t))}))}case"multiselect":return e.createElement(hn,{...t});case"number":return e.createElement(pn,{...t,type:"number"});case"date":return e.createElement(pn,{...t,type:"date"});case"datetime-local":return e.createElement(pn,{...t,type:"datetime-local"});default:return e.createElement(pn,{...t,type:"text"})}}const bn=e=>({id:V("filter"),field:e?.field??"",operator:e?ve(e)[0]?.value??"contains":"contains",value:void 0});function xn(){const{api:t,state:n,localeText:r,columns:l,rootProps:o}=Ge(),i=e.useMemo(()=>l.filter(e=>!1!==e.filterable),[l]),a=e.useMemo(()=>{const e=new Map;return i.forEach(t=>e.set(t.field,t)),e},[i]),d=n.filterModel.items,s=n.filterModel.logicOperator??"and",c=n.preferencePanel.targetField,g=e.useRef(!1);e.useEffect(()=>{if(!g.current)if(g.current=!0,c&&a.has(c)){d.find(e=>e.field===c)||t.upsertFilterItem(bn(a.get(c)))}else 0===d.length&&i.length>0&&t.upsertFilterItem(bn(i[0]))},[t,a,i,d,c]);const m=(e,n)=>{t.upsertFilterItem({...e,...n})},u=!o.disableMultipleColumnsFiltering||0===d.length;return e.createElement("div",{className:"mgh-grid-panel",role:"group","aria-label":r.toolbarFilters},e.createElement("div",{className:"mgh-grid-panel-content",style:{paddingTop:12}},0===d.length&&e.createElement("div",{className:"mgh-grid-filter-empty"},"No filters"),d.map((n,l)=>{const o=a.get(n.field)??i[0],c=o?ve(o):[],g=c.find(e=>e.value===n.operator)??c[0],u=d.length>1;return e.createElement("div",{key:String(n.id??l),className:u?"mgh-grid-filter-row mgh-grid-filter-row--with-logic":"mgh-grid-filter-row"},e.createElement(Wt,{size:"small",label:r.filterPanelDeleteIcon,onClick:()=>t.deleteFilterItem(n)},e.createElement(Pt,null)),u&&e.createElement(Kt,{label:1===l?r.filterPanelLogicOperator:" "},0===l?e.createElement("div",{style:{height:32}}):e.createElement(_t,{size:"small",value:s,disabled:l>1,"aria-label":r.filterPanelLogicOperator,onChange:e=>t.setFilterLogicOperator(e.target.value)},e.createElement("option",{value:"and"},r.filterPanelOperatorAnd),e.createElement("option",{value:"or"},r.filterPanelOperatorOr))),e.createElement(Kt,{label:r.filterPanelColumns},e.createElement(_t,{size:"small",value:o?.field??"","aria-label":r.filterPanelColumns,onChange:e=>{const t=a.get(e.target.value),r=t?ve(t):[],l=r.some(e=>e.value===n.operator);m(n,{field:e.target.value,operator:l?n.operator:r[0]?.value??"contains",value:void 0})}},i.map(t=>e.createElement("option",{key:t.field,value:t.field},t.headerName??t.field)))),e.createElement(Kt,{label:r.filterPanelOperator},e.createElement(_t,{size:"small",value:g?.value??"","aria-label":r.filterPanelOperator,onChange:e=>{const t=c.find(t=>t.value===e.target.value),r="multiselect"===t?.inputType,l="multiselect"===g?.inputType;m(n,{operator:e.target.value,value:r!==l?void 0:n.value})}},c.map(t=>e.createElement("option",{key:t.value,value:t.value},t.label??t.value)))),e.createElement(Kt,{label:r.filterPanelValue},o?e.createElement(fn,{item:n,column:o,operator:g,placeholder:r.filterPanelInputPlaceholder,onChange:e=>m(n,{value:e})}):e.createElement("div",null)))})),e.createElement("div",{className:"mgh-grid-panel-footer"},e.createElement(Ut,{variant:"primary",size:"small",startIcon:e.createElement(Nt,{size:18}),onClick:()=>{t.upsertFilterItem(bn(i[0]))},disabled:!u},r.filterPanelAddFilter),e.createElement(Ut,{size:"small",startIcon:e.createElement(Pt,{size:18}),disabled:0===d.length,onClick:()=>t.setFilterModel({...n.filterModel,items:[]})},r.filterPanelRemoveAll)))}function wn({column:t,anchorEl:n,open:r,onClose:l,themeMode:o,panelAnchorEl:i}){const{api:a,state:d,localeText:s,rootProps:c}=Ge(),g=t.field,m=g===S,u=d.sortModel.find(e=>e.field===g),p=a.isColumnPinned(g),h=-1!==d.rowGroupingModel.indexOf(g),f=d.aggregationModel[g],b=!1!==t.sortable&&!c.disableColumnSorting,x=!1!==t.filterable&&!c.disableColumnFilter&&!m,w=!1!==t.hideable,v=!1!==t.pinnable&&!c.disableColumnPinning,y=!1!==t.groupable&&!c.disableRowGrouping&&!m,E=Object.keys(c.aggregationFunctions).filter(e=>{const n=c.aggregationFunctions[e];return(!t.availableAggregationFunctions||-1!==t.availableAggregationFunctions.indexOf(e))&&(!n.columnTypes||!t.type||-1!==n.columnTypes.indexOf(t.type))}),C=!1!==t.aggregable&&!c.disableAggregation&&!m&&E.length>0,M=i??n,k=t.headerName??t.field;return e.createElement(Yt,{open:r,anchorEl:n,onClose:l,themeMode:o,placement:"bottom-end",role:"menu"},e.createElement(Jt,{"aria-label":s.columnMenuLabel},b&&e.createElement(e.Fragment,null,e.createElement(Zt,{icon:e.createElement(wt,null),selected:"asc"===u?.sort,onClick:()=>a.sortColumn(g,"asc"),hideMenu:l},s.columnMenuSortAsc),e.createElement(Zt,{icon:e.createElement(vt,null),selected:"desc"===u?.sort,onClick:()=>a.sortColumn(g,"desc"),hideMenu:l},s.columnMenuSortDesc),u&&e.createElement(Zt,{icon:e.createElement("span",{style:{width:20}}),onClick:()=>a.sortColumn(g,null),hideMenu:l},s.columnMenuUnsort)),x&&e.createElement(e.Fragment,null,b&&e.createElement(en,null),e.createElement(Zt,{icon:e.createElement(ht,null),onClick:()=>a.showFilterPanel(g,M),hideMenu:l},s.columnMenuFilter)),(w||!c.disableColumnSelector)&&e.createElement(e.Fragment,null,(b||x)&&e.createElement(en,null),w&&e.createElement(Zt,{icon:e.createElement(Ht,null),onClick:()=>a.setColumnVisibility(g,!1),hideMenu:l},s.columnMenuHideColumn),!c.disableColumnSelector&&e.createElement(Zt,{icon:e.createElement(pt,null),onClick:()=>a.showPreferences("columns",M),hideMenu:l},s.columnMenuManageColumns)),v&&e.createElement(e.Fragment,null,e.createElement(en,null),"left"!==p&&e.createElement(Zt,{icon:e.createElement(It,{style:{transform:"rotate(30deg)"}}),onClick:()=>a.pinColumn(g,"left"),hideMenu:l},s.columnMenuPinLeft),"right"!==p&&e.createElement(Zt,{icon:e.createElement(It,{style:{transform:"rotate(-30deg)"}}),onClick:()=>a.pinColumn(g,"right"),hideMenu:l},s.columnMenuPinRight),p&&e.createElement(Zt,{icon:e.createElement("span",{style:{width:20}}),onClick:()=>a.unpinColumn(g),hideMenu:l},s.columnMenuUnpin)),y&&e.createElement(e.Fragment,null,e.createElement(en,null),e.createElement(Zt,{icon:e.createElement(Vt,null),onClick:()=>h?a.removeRowGroupingCriteria(g):a.addRowGroupingCriteria(g),hideMenu:l},h?s.columnMenuUngroup(k):s.columnMenuGroup(k))),C&&e.createElement(e.Fragment,null,e.createElement(en,null),e.createElement(tn,null,e.createElement("label",{className:"mgh-grid-field-label",style:{display:"flex",alignItems:"center",gap:6}},e.createElement(Lt,{size:16})," ",s.columnMenuAggregation),e.createElement(_t,{size:"small",value:f??"","aria-label":s.columnMenuAggregation,onChange:e=>{const t={...d.aggregationModel};""===e.target.value?delete t[g]:t[g]=e.target.value,a.setAggregationModel(t)}},e.createElement("option",{value:""},s.aggregationFunctionLabelNone),E.map(t=>e.createElement("option",{key:t,value:t},c.aggregationFunctions[t].label??t)))))))}function vn({text:t="No rows",imageSrc:n}){return e.createElement("div",{className:"mgh-grid-no-rows",role:"status"},n?e.createElement("img",{alt:"",src:n}):e.createElement(Bt,{size:50}),e.createElement("div",null,t))}function yn({text:t}){return e.createElement(e.Fragment,null,e.createElement(Xt,null),t&&e.createElement("div",null,t))}function En({icon:t,label:n,onClick:r,showInMenu:l,disabled:o,className:i,...a}){return e.createElement(Wt,{size:"small",label:n,disabled:o,className:i,onClick:e=>{e.stopPropagation(),r?.(e)},...a},t)}function Cn({actions:t,themeMode:n,moreLabel:r}){const[l,o]=e.useState(null),i=[],a=[];return t.forEach(t=>{e.isValidElement(t)&&(t.props?.showInMenu?a.push(t):i.push(t))}),e.createElement(e.Fragment,null,i.map((t,n)=>e.createElement(e.Fragment,{key:t.key??n},t)),a.length>0&&e.createElement(e.Fragment,null,e.createElement(Wt,{size:"small",label:r,active:Boolean(l),onClick:e=>{e.stopPropagation(),o(t=>t?null:e.currentTarget)}},e.createElement(yt,null)),e.createElement(Yt,{open:Boolean(l),anchorEl:l,onClose:()=>o(null),themeMode:n,placement:"bottom-end",role:"menu"},e.createElement(Jt,null,a.map((t,n)=>{const r=t.props;return e.createElement(Zt,{key:t.key??n,icon:r.icon,disabled:r.disabled,onClick:e=>{r.onClick?.(e),o(null)}},r.label)})))))}En.displayName="MGHGridActionsCellItem";const Mn=[],kn={},Sn=new Map,Fn=["asc","desc",null],In=[10,25,50,100],Pn={items:[],quickFilterExcludeHiddenColumns:!1},Nn=ye({field:F,headerName:"",width:50,minWidth:50,maxWidth:50,sortable:!1,filterable:!1,hideable:!1,resizable:!1,pinnable:!1,groupable:!1,aggregable:!1,disableColumnMenu:!0,disableExport:!0,disableReorder:!0,align:"center",headerAlign:"center"}),Rn=ye({field:I,headerName:"",width:50,minWidth:50,maxWidth:50,sortable:!1,filterable:!1,hideable:!1,resizable:!1,pinnable:!1,groupable:!1,aggregable:!1,disableColumnMenu:!0,disableExport:!0,disableReorder:!0,align:"center",headerAlign:"center"}),zn=e=>{if(!e)return;const t={};return Object.keys(e).forEach(n=>{if(-1!==n.indexOf("&")||-1!==n.indexOf(":")||-1!==n.indexOf(" "))return;const r=e[n];null!=r&&"object"!=typeof r&&"function"!=typeof r&&(t[n]=r)}),t},Dn=(e,t)=>{const n=j(e);if(!n)return"";const r=e=>String(e).padStart(2,"0"),l=`${n.getFullYear()}-${r(n.getMonth()+1)}-${r(n.getDate())}`;return t?`${l}T${r(n.getHours())}:${r(n.getMinutes())}`:l};function Gn(t){const{rows:n,columns:r,getRowId:l,loading:o=!1,header:i,renderHeaderEndContent:a,renderHeaderCenterContent:d,disableCard:s=!1,className:c,cardClassName:g,boxClassName:m,cardStyle:u,cardSx:p,boxStyle:h,boxSx:f,style:b,sx:x,themeMode:w="light",themeVars:v,showToolbar:y=!0,toolbarProps:E,slots:C=kn,slotProps:M=kn,noRowsText:k="No data found within selected parameters.",localeText:N,rowHeight:A=z,columnHeaderHeight:V=D,getRowHeight:B,autoHeight:_=!1,disableVirtualization:K=!1,density:Q,onDensityChange:re,disableDensitySelector:le=!1,pagination:oe=!0,pageSize:ie=25,pageSizeOptions:ae=In,paginationModel:de,onPaginationModelChange:se,hideFooter:ge=!1,hideFooterPagination:me=!1,hideFooterRowCount:ue=!1,hideFooterSelectedRowCount:pe=!1,sortModel:he,onSortModelChange:fe,sortingOrder:be=Fn,disableMultipleColumnsSorting:xe=!1,disableColumnSorting:we=!1,filterModel:Ee,onFilterModelChange:ke,disableColumnFilter:Ie=!1,disableMultipleColumnsFiltering:Pe=!1,quickFilterDebounceMs:Ne=150,columnVisibilityModel:Re,onColumnVisibilityModelChange:Ge,columnVisibilityStorageKey:Te,columnOrderStorageKey:Be,columnWidthStorageKey:We,pinnedColumnsStorageKey:qe,onColumnOrderChange:je,onColumnWidthChange:_e,disableColumnMenu:Ke=!1,disableColumnSelector:Qe=!1,disableColumnResize:Xe=!1,disableColumnReorder:Ye=!1,disableColumnPinning:Je=!1,pinnedColumns:Ze,onPinnedColumnsChange:et,checkboxSelection:tt=!1,checkboxSelectionVisibleOnly:nt=!1,disableRowSelectionOnClick:rt=!0,disableMultipleRowSelection:lt=!1,rowSelectionModel:ot,onRowSelectionModelChange:it,isRowSelectable:st,keepNonExistentRowsSelected:ut=!0,getRowClassName:pt,onRowClick:ht,onRowDoubleClick:ft,onCellClick:xt,onCellDoubleClick:kt,pinnedRows:St,getDetailPanelContent:Ft,getDetailPanelHeight:It,detailPanelExpandedRowIds:Pt,onDetailPanelExpandedRowIdsChange:Nt,rowGroupingModel:Rt,onRowGroupingModelChange:zt,defaultGroupingExpansionDepth:Dt=0,groupingColDef:Gt,disableRowGrouping:Tt=!1,isGroupExpandedByDefault:Ot,aggregationModel:At,onAggregationModelChange:Ht,aggregationFunctions:Lt,disableAggregation:Vt=!1,aggregationPosition:Bt="both",processRowUpdate:$t,onProcessRowUpdateError:Ut,onCellEditStop:qt,isCellEditable:Kt,initialState:Xt,apiRef:Jt,onStateChange:Zt}=t;ze();const en=function(t){const n=e.useId;if(n)return`${t}-${n().replace(/:/g,"")}`;const r=e.useRef(null);return null===r.current&&(Ae+=1,r.current=`${t}-${Ae}`),r.current}("mgh-grid"),tn=e.useRef(null),nn=e.useRef(null),rn=e.useRef(null),ln=function(){const[,t]=e.useState(0);return e.useCallback(()=>t(e=>e+1),[])}(),on=e.useMemo(()=>({...Me,...N}),[N]),an=e.useRef({}),dn=e.useCallback(()=>({api:an.current.api}),[]),cn=e.useMemo(()=>{const e=()=>an.current,t={getRow:t=>e().rowsById.get(t)??null,getRowModels:()=>new Map(e().rowsById),getAllRowIds:()=>e().rowEntries.map(e=>e.id),getRowNode:t=>e().nodesById.get(t)??null,getSortedRows:()=>e().sortedLeaves.map(e=>e.row),getSortedRowIds:()=>e().sortedLeaves.map(e=>e.id),getVisibleRows:()=>e().pagedRows.filter(e=>"leaf"===e.type&&e.row).map(e=>({id:e.id,model:e.row})),getRowIndexRelativeToVisibleRows:t=>e().pagedRows.findIndex(e=>e.id===t),updateRows:t=>{t.forEach(t=>{const n=W(t,e().getRowId),r=e().rowsById.get(n);r&&e().setRowOverride(n,{...r,...t})})},getAllColumns:()=>e().orderedUserColumns,getVisibleColumns:()=>e().visibleUserColumns,getColumn:t=>e().getColumn(t),getColumnIndex:(t,n=!0)=>(n?e().visibleUserColumns:e().orderedUserColumns).findIndex(e=>e.field===t),getColumnVisibilityModel:()=>e().columnVisibilityModel,setColumnVisibility:(t,n)=>e().setColumnVisibilityModel({...e().columnVisibilityModel,[t]:n}),setColumnVisibilityModel:t=>e().setColumnVisibilityModel(t),setColumnWidth:(t,n)=>e().setColumnWidth(t,n),setColumnIndex:(t,n)=>e().setColumnIndex(t,n),autosizeColumns:t=>e().autosizeColumns(t),pinColumn:(t,n)=>e().pinColumn(t,n),unpinColumn:t=>e().unpinColumn(t),isColumnPinned:t=>e().isColumnPinned(t),getPinnedColumns:()=>e().pinnedColumns,setPinnedColumns:t=>e().setPinnedColumns(t),getSortModel:()=>e().sortModel,setSortModel:t=>e().setSortModel(t),sortColumn:(t,n,r)=>e().sortColumn(t,n,r),getFilterModel:()=>e().filterModel,setFilterModel:t=>e().setFilterModel(t),upsertFilterItem:t=>e().upsertFilterItems([t]),upsertFilterItems:t=>e().upsertFilterItems(t),deleteFilterItem:t=>e().deleteFilterItem(t),setFilterLogicOperator:t=>e().setFilterModel({...e().filterModel,logicOperator:t}),setQuickFilterValues:t=>e().setFilterModel({...e().filterModel,quickFilterValues:t}),showFilterPanel:(t,n)=>e().showPreferences("filters",n,t),hideFilterPanel:()=>e().hidePreferences(),showPreferences:(t,n,r)=>e().showPreferences(t,n,r),hidePreferences:()=>e().hidePreferences(),getSelectedRows:()=>{const t=new Map;return e().selectedIds.forEach(n=>{const r=e().rowsById.get(n);r&&t.set(n,r)}),t},getRowSelectionModel:()=>({type:"include",ids:e().selectedIds}),setRowSelectionModel:t=>{const n=q(t,e().rowEntries.map(e=>e.id));e().setSelectedIds(n.ids)},selectRow:(t,n=!0,r=!1)=>e().selectRows([t],n,r),selectRows:(t,n=!0,r=!1)=>e().selectRows(t,n,r),isRowSelected:t=>e().selectedIds.has(t),isRowSelectable:t=>e().isRowSelectableFn(t,e().rowsById.get(t)),setPage:t=>e().setPaginationModel({...e().paginationModel,page:Math.max(0,t)}),setPageSize:t=>e().setPaginationModel({page:0,pageSize:Math.max(1,t)}),setPaginationModel:t=>e().setPaginationModel(t),setDensity:t=>e().setDensity(t),getDataAsCsv:e=>$e(t,e),exportDataAsCsv:e=>((e,t={})=>{const n=$e(e,t),r=t.utf8WithBom?Ue:"",l=new Blob([r+n],{type:"text/csv;charset=utf-8;"});Fe(l,Le(t.fileName,Ve(),"csv"))})(t,e),exportDataAsExcel:e=>(async(e,t={})=>{const n=at(e,t),r=new Blob([n],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});Fe(r,Le(t.fileName,Ve(),"xlsx"))})(t,e),exportDataAsPrint:e=>((e,t={})=>{if("undefined"==typeof document)return;const n=t.includeHeaders??!0,r=He(e,t),l=t.title??t.fileName??document.title??"",o=n?`<thead><tr>${r.headers.map((e,t)=>`<th class="${r.columns[t].align??"left"}">${dt(e)}</th>`).join("")}</tr></thead>`:"",i=`<tbody>${r.rows.map(e=>`<tr>${e.map(e=>`<td class="${e.col.align??"left"}">${dt(e.formatted)}</td>`).join("")}</tr>`).join("")}</tbody>`,a=`<!doctype html><html><head><meta charset="utf-8" /><title>${dt(l)}</title><style>body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:12px;color:#111;margin:16px;}h1{font-size:16px;margin:0 0 12px;}table{border-collapse:collapse;width:100%;}th,td{border:1px solid #ccc;padding:4px 8px;text-align:left;vertical-align:top;}th{background:#f3f3f3;font-weight:600;}td.right,th.right{text-align:right;} td.center,th.center{text-align:center;}tr{page-break-inside:avoid;} thead{display:table-header-group;}`+(t.pageStyle??"")+"</style></head><body>"+(l?`<h1>${dt(l)}</h1>`:"")+`<table>${o}${i}</table></body></html>`,d=document.createElement("iframe");d.setAttribute("aria-hidden","true"),d.style.position="fixed",d.style.right="0",d.style.bottom="0",d.style.width="0",d.style.height="0",d.style.border="0",d.style.opacity="0",document.body.appendChild(d);const s=()=>{window.setTimeout(()=>{d.parentNode&&d.parentNode.removeChild(d)},1e3)};d.onload=()=>{const e=d.contentWindow;if(e)try{e.focus(),e.onafterprint=s,e.print()}catch{s()}else s()};const c=d.contentDocument||d.contentWindow?.document;c?(c.open(),c.write(a),c.close()):d.srcdoc=a})(t,e),toggleDetailPanel:t=>e().toggleDetailPanel(t),setExpandedDetailPanels:t=>e().setExpandedDetailPanels(new Set(t)),getExpandedDetailPanels:()=>Array.from(e().expandedDetailPanels),getRowGroupingModel:()=>e().rowGroupingModel,setRowGroupingModel:t=>e().setRowGroupingModel(t),addRowGroupingCriteria:(t,n)=>{const r=e().rowGroupingModel.filter(e=>e!==t);void 0===n?r.push(t):r.splice(H(n,0,r.length),0,t),e().setRowGroupingModel(r)},removeRowGroupingCriteria:t=>e().setRowGroupingModel(e().rowGroupingModel.filter(e=>e!==t)),setRowChildrenExpansion:(t,n)=>e().setRowChildrenExpansion(t,n),getRowGroupChildren:({groupId:t})=>{const n=e().groupsById.get(t);return n?n.descendants.map(e=>e.id):[]},getAggregationModel:()=>e().aggregationModel,setAggregationModel:t=>e().setAggregationModel(t),startCellEditMode:({id:t,field:n})=>e().startCellEditMode(t,n),stopCellEditMode:({id:t,field:n,ignoreModifications:r})=>e().stopCellEditMode(t,n,r,"api"),getCellMode:(t,n)=>{const r=e().editingCell;return r&&r.id===t&&r.field===n?"edit":"view"},setEditCellValue:({id:t,field:n,value:r})=>{const l=e().editingCell;l&&l.id===t&&l.field===n&&e().setEditValue(r)},getCellValue:(n,r)=>{const l=e().rowsById.get(n),o=e().getColumn(r);return l&&o?Z(l,o,t):void 0},getCellParams:(t,n)=>{const r=e().rowsById.get(t);return e().buildCellParams(t,n,r,e().nodesById.get(t)??{type:"leaf",id:t,depth:0,parent:null})},setCellFocus:(t,n)=>{sr.current=!0,e().setFocusedCell({id:t,field:n})},scrollToIndexes:t=>e().scrollToIndexes(t),scroll:({left:e,top:t})=>{const n=nn.current;n&&(void 0!==e&&(n.scrollLeft=e),void 0!==t&&(n.scrollTop=t))},getScrollPosition:()=>({left:nn.current?.scrollLeft??0,top:nn.current?.scrollTop??0}),get state(){return e().state},forceUpdate:()=>e().forceUpdate(),rootElementRef:tn};return t},[]);an.current.api||(an.current.api=cn);const un=e.useMemo(()=>({visibility:Te?$(Te):null,order:Be?$(Be):null,widths:We?$(We):null,pinned:qe?$(qe):null}),[Te,Be,We,qe]),[pn,hn]=Oe(he,Xt?.sorting?.sortModel??Mn,e=>fe?.(e,dn())),[fn,bn]=Oe(Ee,Xt?.filter?.filterModel??Pn,e=>ke?.(e,dn())),[En,Gn]=Oe(de,{page:Xt?.pagination?.paginationModel?.page??0,pageSize:Xt?.pagination?.paginationModel?.pageSize??ie},e=>se?.(e,dn())),[Tn,On]=Oe(Re,un.visibility??Xt?.columns?.columnVisibilityModel??kn,e=>{Te&&U(Te,e),Ge?.(e,dn())}),[An,Hn]=Oe(Q,Xt?.density??"compact",e=>re?.(e,dn())),[Ln,Vn]=Oe(Ze,un.pinned??Xt?.pinnedColumns??kn,e=>{qe&&U(qe,e),et?.(e,dn())}),[Bn,$n]=Oe(Rt,Xt?.rowGrouping?.model??Mn,e=>zt?.(e,dn())),[Un,Wn]=Oe(At,Xt?.aggregation?.model??kn,e=>Ht?.(e,dn())),qn=e.useMemo(()=>Pt?new Set(Pt):void 0,[Pt]),[jn,_n]=Oe(qn,e.useMemo(()=>new Set(Xt?.detailPanel?.expandedRowIds??[]),[]),e=>Nt?.(Array.from(e),dn())),Kn=e.useMemo(()=>void 0!==ot?q(ot).ids:void 0,[ot]),[Qn,Xn]=Oe(Kn,e.useMemo(()=>new Set,[]),e=>it?.({type:"include",ids:e},dn())),[Yn,Jn]=e.useState(()=>un.order??Xt?.columns?.orderedFields??null),[Zn,er]=e.useState(()=>{if(un.widths)return un.widths;const e=Xt?.columns?.dimensions;if(!e)return{};const t={};return Object.keys(e).forEach(n=>{e[n].width&&(t[n]=e[n].width)}),t}),[tr,nr]=e.useState(()=>new Map),[rr,lr]=e.useState(null),[or,ir]=e.useState(void 0),[ar,dr]=e.useState(null),sr=e.useRef(!1),[cr,gr]=e.useState({open:!1,anchorEl:null}),[mr,ur]=e.useState(null),[pr,hr]=e.useState(null),[fr,br]=e.useState(null),[xr,wr]=e.useState(0),vr=e.useRef(0),yr=e.useRef(null),[Er,Cr]=e.useState(()=>({rows:n,map:new Map})),Mr=Er.rows===n?Er.map:Sn,kr=e.useCallback((e,t)=>{Cr(r=>{const l=new Map(r.rows===n?r.map:[]);return l.set(e,t),{rows:n,map:l}})},[n]),{width:Sr,height:Fr}=function(t,n=!0){const[r,l]=e.useState({width:0,height:0});return e.useLayoutEffect(()=>{const e=t.current;if(!e||!n)return;const r=()=>{const t=e.clientWidth,n=e.clientHeight;l(e=>e.width===t&&e.height===n?e:{width:t,height:n})};if(r(),"undefined"==typeof ResizeObserver)return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r);const o=new ResizeObserver(r);return o.observe(e),()=>o.disconnect()},[t,n]),r}(nn),Ir=R[An]??1,Pr=Math.round(A*Ir),Nr=Math.round(V*Ir),Rr=e.useMemo(()=>{const e=[];return n.forEach(t=>{const n=W(t,l);null!=n&&e.push({id:n,row:Mr.get(n)??t})}),e},[n,l,Mr]),zr=e.useMemo(()=>{const e=new Map;return Rr.forEach(t=>e.set(t.id,t.row)),(St?.top??[]).forEach(t=>e.set(W(t,l),t)),(St?.bottom??[]).forEach(t=>e.set(W(t,l),t)),e},[Rr,St,l]),Dr=e.useMemo(()=>r.map(e=>ye(e)),[r]),Gr=e.useMemo(()=>{const e=new Map;return Dr.forEach(t=>e.set(t.field,t)),e},[Dr]),Tr=e.useMemo(()=>Tt?[]:Bn.filter(e=>Gr.has(e)),[Bn,Gr,Tt]),Or=Tr.length>0,Ar=e.useMemo(()=>{if(!Or)return null;const e=1===Tr.length?Gr.get(Tr[0]):void 0;return ye({field:S,headerName:e?e.headerName??e.field:on.groupingColumnHeaderName,width:220,minWidth:120,sortable:!0,filterable:!1,hideable:!1,groupable:!1,aggregable:!1,editable:!1,disableExport:!0,disableReorder:!0,...Gt})},[Or,Tr,Gr,on.groupingColumnHeaderName,Gt]),Hr=e.useMemo(()=>{if(!Yn||0===Yn.length)return Dr;const e=new Set,t=[];return Yn.forEach(n=>{const r=Gr.get(n);r&&!e.has(n)&&(e.add(n),t.push(r))}),Dr.forEach(n=>{e.has(n.field)||t.push(n)}),t},[Yn,Dr,Gr]),Lr=e.useCallback(e=>{const t=Tn[e];return!1!==t&&(void 0!==t||-1===Tr.indexOf(e))},[Tn,Tr]),Vr=e.useMemo(()=>Hr.filter(e=>Lr(e.field)),[Hr,Lr]),Br=e.useMemo(()=>{const e=[];tt&&e.push(Nn),Ft&&e.push(Rn);const t=Je?[]:(Ln.left??[]).filter(e=>e!==S),n=Je?[]:(Ln.right??[]).filter(e=>e!==S),r=new Map;Vr.forEach(e=>r.set(e.field,e));const l=e.slice();Ar&&l.push(Ar),t.forEach(e=>{const t=r.get(e);t&&l.push(t)});const o=[];n.forEach(e=>{const n=r.get(e);n&&-1===t.indexOf(e)&&o.push(n)});const i=Vr.filter(e=>-1===t.indexOf(e.field)&&-1===n.indexOf(e.field)),a=l.concat(i,o),d=((e,t,n)=>{const r=e.map(e=>{const t=e.minWidth??G,r=e.maxWidth??1/0,l=n[e.field];return l?H(l,t,r):e.flex&&e.flex>0?null:H(e.width??100,t,r)}),l=[];let o=0;if(r.forEach((e,t)=>{null===e?l.push(t):o+=e}),l.length>0){let n=Math.max(0,t-o),i=l.reduce((t,n)=>t+e[n].flex,0),a=l.slice(),d=!0;for(;d&&a.length>0;){d=!1;for(let t=0;t<a.length;t+=1){const l=a[t],o=e[l],s=o.minWidth??G,c=o.maxWidth??1/0,g=i>0?n*o.flex/i:0;if(g<s||g>c){const e=g<s?s:c;r[l]=e,n=Math.max(0,n-e),i-=o.flex,a=a.filter(e=>e!==l),d=!0;break}}}a.forEach(t=>{const l=e[t];r[t]=i>0?Math.floor(n*l.flex/i):l.minWidth??50})}return r})(a,Sr,Zn),s=l.length>e.length+(Ar?1:0)||o.length>0,c=[];let g=0,m=0;a.forEach((e,t)=>{const n=d[t],r=t<l.length,o=t>=l.length+i.length;c.push({col:e,width:n,pinned:r?"left":o?"right":null,offset:r?m:0,x:g,isLastLeft:r&&t===l.length-1,isFirstRight:o&&t===l.length+i.length}),r&&(m+=n),g+=n});let u=0;for(let e=c.length-1;e>=0&&"right"===c[e].pinned;e-=1)c[e].offset=u,u+=c[e].width;return{columns:c,totalWidth:g,hasPinning:s,leftCount:l.length,rightCount:o.length}},[tt,Ft,Ln,Je,Vr,Ar,Sr,Zn]),$r=e.useMemo(()=>{const e=new Map;return Br.columns.forEach(t=>e.set(t.col.field,t.col)),Ar&&e.set(S,Ar),e},[Br.columns,Ar]),Ur=e.useCallback(e=>Gr.get(e)??$r.get(e),[Gr,$r]),Wr=e.useMemo(()=>{const e=[];return fn.items.forEach(t=>{const n=Gr.get(t.field);if(!n||!1===n.filterable)return;const r=ve(n).find(e=>e.value===t.operator);if(!r)return;const l=r.getApplyFilterFn(t,n);l&&e.push({col:n,fn:l})}),e},[fn.items,Gr]),qr=e.useMemo(()=>(fn.quickFilterValues??[]).map(e=>String(e).trim()).filter(e=>""!==e),[fn.quickFilterValues]),jr=e.useMemo(()=>(fn.quickFilterExcludeHiddenColumns?Vr:Hr).filter(e=>!1!==e.filterable&&"actions"!==e.type),[fn.quickFilterExcludeHiddenColumns,Vr,Hr]),_r=e.useMemo(()=>{if(0===Wr.length&&0===qr.length)return Rr;const e="and"===(fn.logicOperator??"and"),t="and"===(fn.quickFilterLogicOperator??"and"),n=an.current.api,r=qr.map(e=>{const t=e.toLowerCase(),r=jr.map(r=>{if(r.getApplyQuickFilterFn){const t=r.getApplyQuickFilterFn(e,r,n);return t?{col:r,fn:t}:null}return{col:r,fn:(e,l)=>{if(O(e))return!1;if(-1!==ne(te(e,l,r,n)).toLowerCase().indexOf(t))return!0;return-1!==("object"==typeof e?"":String(e).toLowerCase()).indexOf(t)}}}).filter(Boolean);return e=>r.some(({col:t,fn:r})=>r(Z(e,t,n),e,t,n))});return Rr.filter(({row:l})=>{if(Wr.length>0){const t=Wr.map(({col:e,fn:t})=>t(Z(l,e,n),l,e,n));if(!(e?t.every(Boolean):t.some(Boolean)))return!1}if(r.length>0){const e=r.map(e=>e(l));return t?e.every(Boolean):e.some(Boolean)}return!0})},[Rr,Wr,qr,jr,fn.logicOperator,fn.quickFilterLogicOperator]),Kr=e.useMemo(()=>{const e=an.current.api,t=pn.filter(e=>e.sort&&e.field!==S).map(e=>{const t=Gr.get(e.field);return t&&!1!==t.sortable?{col:t,dir:"desc"===e.sort?-1:1,comparator:t.sortComparator??ce(t.type)}:null}).filter(Boolean);return 0===t.length?null:(n,r)=>{for(let l=0;l<t.length;l+=1){const{col:o,dir:i,comparator:a}=t[l],d=Z(n.row,o,e),s=Z(r.row,o,e),c=a(d,s,{id:n.id,field:o.field,value:d,row:n.row,api:e},{id:r.id,field:o.field,value:s,row:r.row,api:e});if(0!==c)return c*i}return 0}},[pn,Gr]),Qr=e.useCallback(e=>Kr?e.map((e,t)=>({entry:e,index:t})).sort((e,t)=>Kr(e.entry,t.entry)||e.index-t.index).map(e=>e.entry):e,[Kr]),Xr=e.useMemo(()=>({...Ce,...Lt}),[Lt]),Yr=!Vt&&Object.keys(Un).length>0,Jr=e.useCallback(e=>{const t=tr.get(e.id);return void 0!==t?t:Ot?Ot({type:"group",id:e.id,depth:e.depth,parent:e.parent,groupingField:e.groupingField,groupingKey:e.groupingKey,groupingLabel:e.groupingLabel,children:[],leafIds:[],isExpanded:!1}):-1===Dt||e.depth<Dt},[tr,Ot,Dt]),Zr=e.useMemo(()=>{const e=new Map,t=new Map;if(!Or){const n=Qr(_r);return{displayRows:n.map(t=>{const n={type:"leaf",id:t.id,depth:0,parent:null};return e.set(t.id,n),{id:t.id,type:"leaf",row:t.row,node:n,depth:0}}),sortedLeaves:n,nodesById:e,groupsById:t,tree:[]}}const n=an.current.api;let r=ct(_r,Tr,Gr,n);const l=pn.find(e=>e.field===S&&e.sort);r=((e,t,n)=>{const r=(e,l)=>{const o=t?t(l):null,i=o?e.map((e,t)=>({node:e,index:t})).sort((e,t)=>o(e.node,t.node)||e.index-t.index).map(e=>e.node):e;return i.forEach(e=>{if(e.childGroups.length>0){e.childGroups=r(e.childGroups,l+1);const t=[];e.childGroups.forEach(e=>e.descendants.forEach(e=>t.push(e))),e.descendants=t}else e.leaves=n(e.leaves),e.descendants=e.leaves}),i};return r(e,0)})(r,e=>{const t=Tr[e],r=Gr.get(t);if(!r)return null;const o=l??pn.find(e=>e.field===t&&e.sort);if(!o)return null;const i=r.sortComparator??ce(r.type),a="desc"===o.sort?-1:1;return(e,r)=>i(e.groupingKey,r.groupingKey,{id:e.id,field:t,value:e.groupingKey,row:e.descendants[0]?.row,api:n},{id:r.id,field:t,value:r.groupingKey,row:r.descendants[0]?.row,api:n})*a},Qr);const o=((e,t,n,r)=>{const l=[],o=(e,i)=>{e.forEach(e=>{const a=t(e),d=((e,t)=>({type:"group",id:e.id,depth:e.depth,parent:e.parent,groupingField:e.groupingField,groupingKey:e.groupingKey,groupingLabel:e.groupingLabel,children:e.childGroups.length>0?e.childGroups.map(e=>e.id):e.leaves.map(e=>e.id),leafIds:e.descendants.map(e=>e.id),isExpanded:t}))(e,a);n.set(e.id,d),r.set(e.id,e),i&&l.push({id:e.id,type:"group",row:null,node:d,depth:e.depth,group:e});const s=i&&a;e.childGroups.length>0?o(e.childGroups,s):e.leaves.forEach(t=>{const r={type:"leaf",id:t.id,depth:e.depth+1,parent:e.id};n.set(t.id,r),s&&l.push({id:t.id,type:"leaf",row:t.row,node:r,depth:e.depth+1})})})};return o(e,!0),l})(r,Jr,e,t);return{displayRows:o,sortedLeaves:gt(r),nodesById:e,groupsById:t,tree:r}},[Or,_r,Qr,Tr,Gr,pn,Jr]),{displayRows:el,sortedLeaves:tl,nodesById:nl,groupsById:rl}=Zr,ll=el.length,ol=oe?Math.max(1,Math.ceil(ll/Math.max(En.pageSize,1))):1,il=oe?H(En.page,0,ol-1):0;e.useEffect(()=>{oe&&En.page!==il&&Gn({...En,page:il})},[oe,En,il,Gn]);const al=e.useMemo(()=>oe?el.slice(il*En.pageSize,(il+1)*En.pageSize):el,[el,oe,il,En.pageSize]),dl=e.useMemo(()=>{if(!Yr||"inline"===Bt)return null;const e=tl.map(e=>e.row);return mt(e,Un,Gr,Xr,an.current.api)},[Yr,Bt,tl,Un,Gr,Xr]),sl=e.useMemo(()=>new Map,[al,Un,Xr]),cl=e=>{if(!Yr||"footer"===Bt)return;let t=sl.get(e.id);return t||(t=mt(e.descendants.map(e=>e.row),Un,Gr,Xr,an.current.api),sl.set(e.id,t)),t},gl=e.useMemo(()=>{const e=[],t=[],n=[];let r=0,l=_||K;return al.forEach(o=>{let i=Pr;if(B&&"leaf"===o.type&&o.row){const e=B({id:o.id,model:o.row,densityFactor:Ir});"auto"===e?l=!0:"number"==typeof e&&e>0&&(i=e)}let a=0;if("leaf"===o.type&&Ft&&jn.has(o.id)&&o.row){const e=It?It({id:o.id,row:o.row}):500;"auto"===e?l=!0:a=e}e.push(i),t.push(a),n.push(r),r+=i+a}),{rowHeights:e,detailHeights:t,offsets:n,total:r,hasAuto:l}},[al,Pr,B,Ir,Ft,It,jn,_,K]),ml=!gl.hasAuto,ul=e.useMemo(()=>{const e=al.length;if(!ml||0===e)return{start:0,end:e};const t=6*Pr,n=Math.max(0,xr-Nr-t),r=xr+Math.max(Fr,Pr)+t,{offsets:l}=gl;let o=0,i=e-1;for(;o<i;){const e=o+i>>1;l[e]+gl.rowHeights[e]+gl.detailHeights[e]<n?o=e+1:i=e}const a=o;let d=a;for(;d<e&&l[d]<r;)d+=1;return{start:a,end:d}},[ml,al.length,xr,Fr,Pr,Nr,gl]),pl=e.useCallback(()=>{an.current.virtual&&(vr.current||(vr.current=window.requestAnimationFrame(()=>{vr.current=0,nn.current&&wr(nn.current.scrollTop)})))},[]);e.useEffect(()=>()=>{vr.current&&window.cancelAnimationFrame(vr.current)},[]);const hl=e.useCallback((e,t)=>!!t&&(!st||st({id:e,row:t,columns:Hr,api:an.current.api})),[st,Hr]),fl=e.useMemo(()=>(nt?al.filter(e=>"leaf"===e.type&&e.row).map(e=>({id:e.id,row:e.row})):tl).filter(e=>hl(e.id,e.row)).map(e=>e.id),[nt,al,tl,hl]),bl=e.useMemo(()=>fl.reduce((e,t)=>e+(Qn.has(t)?1:0),0),[fl,Qn]),xl=fl.length>0&&bl===fl.length,wl=bl>0&&!xl,vl=e.useCallback(e=>{Xn(t=>{const n=e(t);return((e,t)=>{if(e.ids.size!==t.ids.size)return!1;let n=!0;return e.ids.forEach(e=>{t.ids.has(e)||(n=!1)}),n})({ids:t},{ids:n})?t:n})},[Xn]),yl=e.useCallback((e,t=!0,n=!1)=>{vl(r=>{const l=n?new Set:new Set(r);if(e.forEach(e=>{t?hl(e,zr.get(e))&&l.add(e):l.delete(e)}),lt&&l.size>1){const n=e[e.length-1];return new Set(t&&l.has(n)?[n]:[])}return l})},[vl,hl,zr,lt]);e.useEffect(()=>{if(ut||0===Qn.size)return;let e=!1;const t=new Set;Qn.forEach(n=>{zr.has(n)?t.add(n):e=!0}),e&&Xn(t)},[zr,ut,Qn,Xn]);const El=()=>{yl(fl,!xl)},Cl=(e,t,n=!1)=>{const r=Ur(e);if(!r||!1===r.sortable||we)return;const l=pn.find(t=>t.field===e);let o,i;if(void 0===t){const e=r.sortingOrder??be,t=e.indexOf(l?.sort??null);o=e[(t+1)%e.length]}else o=t;n&&!xe?(i=pn.filter(t=>t.field!==e),o&&(i=l?pn.map(t=>t.field===e?{field:e,sort:o}:t):i.concat([{field:e,sort:o}]))):i=o?[{field:e,sort:o}]:[],hn(i)},Ml=e=>{Be&&U(Be,e)},kl=e=>{We&&U(We,e)},Sl=(e={})=>{const t=e.includeHeaders??!0,n=Br.columns.filter(t=>!(T(t.col.field)||e.columns&&-1===e.columns.indexOf(t.col.field)));if(0===n.length)return;const r=tn.current,l=r&&"undefined"!=typeof window?window.getComputedStyle(r):null,o=l?.fontFamily||"sans-serif",i=`400 14px ${o}`,a=`600 14px ${o}`,d=tl.slice(0,500),s=an.current.api,c={...Zn};n.forEach(({col:e})=>{let n=t?Se(e.headerName??e.field,a)+64:0;d.forEach(t=>{const r=Z(t.row,e,s),l=ne(te(r,t.row,e,s,t.id)),o=Se(l,i)+24;o>n&&(n=o)}),c[e.field]=H(Math.ceil(n),e.minWidth??G,e.maxWidth??1/0)}),er(c),kl(c)},Fl=e.useCallback(()=>{gr(e=>e.open?{open:!1,anchorEl:null}:e)},[]),Il=e=>!!e.colDef.editable&&("leaf"===e.rowNode.type&&(!Kt||Kt(e))),Pl=(e,t)=>{const n=zr.get(e),r=Ur(t);if(!n||!r)return;const l=Tl(e,t,n,nl.get(e)??{type:"leaf",id:e,depth:0,parent:null});Il(l)&&(lr({id:e,field:t}),ir(l.value),dr({id:e,field:t}))},Nl=(e,t,n=!1,r="api")=>{if(!rr||rr.id!==e||rr.field!==t)return;const l=zr.get(e),o=Ur(t);if(lr(null),l&&o){if(!n){const n=an.current.api,r=o.valueParser?o.valueParser(or,l,o,n):((e,t)=>{switch(t.type){case"number":{if(""===e||O(e))return null;const t=Number(e);return Number.isNaN(t)?e:t}case"boolean":return Boolean(e);case"date":case"dateTime":return""===e||O(e)?null:j(e)??e;default:return e}})(or,o),i=Z(l,o,n);if(!Object.is(r,i)){((e,t,n)=>{$t?Promise.resolve().then(()=>$t(t,n,{rowId:e})).then(n=>kr(e,n??t)).catch(e=>{Ut?Ut(e):console.error("MGHGrid: processRowUpdate failed",e)}):kr(e,t)})(e,o.valueSetter?o.valueSetter(r,l,o,n):{...l,[t]:r},l)}}qt?.({id:e,field:t,row:l,reason:r},dn()),sr.current=!0,dr({id:e,field:t})}},Rl=e=>{_n(t=>{const n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},zl=(e,t)=>{nr(n=>{const r=new Map(n);return r.set(e,t),r})},Dl=Tr.join("|"),Gl=e.useRef(Dl);e.useEffect(()=>{Gl.current!==Dl&&(Gl.current=Dl,nr(new Map))},[Dl]);const Tl=(e,t,n,r)=>{const l=Ur(t),o=an.current.api,i=Z(n,l,o),a=te(i,n,l,o,e),d=Boolean(ar&&ar.id===e&&ar.field===t);return{id:e,field:t,value:i,formattedValue:a,row:n,rowNode:r,colDef:l,api:o,hasFocus:d,tabIndex:d?0:-1,cellMode:rr&&rr.id===e&&rr.field===t?"edit":"view",isEditable:Boolean(l.editable)&&"leaf"===r.type}},Ol=(e,t)=>({id:e,row:t,columns:Hr,api:an.current.api});e.useEffect(()=>{if(!sr.current||!ar||!tn.current)return;sr.current=!1;const e=`[data-mgh-row-id="${String(ar.id).replace(/"/g,'\\"')}"] [data-mgh-field="${ar.field.replace(/"/g,'\\"')}"]`,t=tn.current.querySelector(e);t&&document.activeElement!==t&&!t.contains(document.activeElement)&&t.focus({preventScroll:!0})},[ar,ul.start,ul.end]);const Al=e=>{const t=nn.current;if(!t)return!1;if(void 0!==e.rowIndex&&ml){const n=H(e.rowIndex,0,Math.max(al.length-1,0)),r=gl.offsets[n]??0,l=r+(gl.rowHeights[n]??Pr),o=t.scrollTop,i=t.scrollTop+t.clientHeight-Nr;r<o?t.scrollTop=r:l>i&&(t.scrollTop=l-(t.clientHeight-Nr))}else if(void 0!==e.rowIndex){const n=t.querySelector(`[data-mgh-row-index="${e.rowIndex}"]`);n?.scrollIntoView?.({block:"nearest"})}if(void 0!==e.colIndex){const n=Br.columns[H(e.colIndex,0,Br.columns.length-1)];if(n&&!n.pinned){const e=Br.columns.filter(e=>"left"===e.pinned).reduce((e,t)=>e+t.width,0),r=Br.columns.filter(e=>"right"===e.pinned).reduce((e,t)=>e+t.width,0),l=t.scrollLeft+e,o=t.scrollLeft+t.clientWidth-r;n.x<l?t.scrollLeft=n.x-e:n.x+n.width>o&&(t.scrollLeft=n.x+n.width-t.clientWidth+r)}}return!0},Hl=(e,t,n)=>{if(0===al.length||0===Br.columns.length)return;let r=ar?al.findIndex(e=>e.id===ar.id):-1,l=ar?Br.columns.findIndex(e=>e.col.field===ar.field):-1;-1===r&&(r=0),-1===l&&(l=0),r="first"===n?.row?0:"last"===n?.row?al.length-1:H(r+e,0,al.length-1),l="first"===n?.col?0:"last"===n?.col?Br.columns.length-1:H(l+t,0,Br.columns.length-1);const o={id:al[r].id,field:Br.columns[l].col.field};sr.current=!0,dr(o),Al({rowIndex:r,colIndex:l})},Ll=e=>!Ye&&!e.disableReorder&&!T(e.field),Vl=e.useRef(null),Bl=Wr.length,$l=Or?ll:_r.length,Ul=e.useMemo(()=>({sortModel:pn,filterModel:fn,paginationModel:{page:il,pageSize:En.pageSize},pageCount:ol,rowCount:$l,totalRowCount:Rr.length,columnVisibilityModel:Tn,orderedFields:Hr.map(e=>e.field),columnWidths:Zn,pinnedColumns:Ln,density:An,densityFactor:Ir,rowSelectionModel:{type:"include",ids:Qn},rowGroupingModel:Bn,aggregationModel:Un,expandedDetailPanels:jn,preferencePanel:{open:cr.open,openedPanelValue:cr.openedPanelValue,targetField:cr.targetField},filterCount:Bl,quickFilterValues:qr}),[pn,fn,il,En.pageSize,ol,$l,Rr.length,Tn,Hr,Zn,Ln,An,Ir,Qn,Bn,Un,jn,cr.open,cr.openedPanelValue,cr.targetField,Bl,qr]);an.current={api:cn,state:Ul,rowsById:zr,rowEntries:Rr,nodesById:nl,groupsById:rl,sortedLeaves:tl,pagedRows:al,getRowId:l,setRowOverride:kr,orderedUserColumns:Hr,visibleUserColumns:Vr,getColumn:Ur,columnVisibilityModel:Tn,setColumnVisibilityModel:On,setColumnWidth:(e,t)=>{const n=Ur(e);if(!n)return;const r=H(t,n.minWidth??G,n.maxWidth??1/0);er(t=>{const n={...t,[e]:r};return kl(n),n}),_e?.({colDef:n,width:r},dn())},setColumnIndex:(e,t,n=null)=>{const r=Hr.map(e=>e.field),l=r.indexOf(e);if(-1===l)return;const o=((e,t,n)=>{const r=e.slice(),[l]=r.splice(t,1);return r.splice(n,0,l),r})(r,l,H(t,0,r.length-1));Jn(o),Ml(o);const i=Gr.get(e);i&&je?.({column:i,targetIndex:t,oldIndex:l},n,dn())},columnWidths:Zn,autosizeColumns:Sl,pinColumn:(e,t)=>{if(Je)return;const n=(Ln.left??[]).filter(t=>t!==e),r=(Ln.right??[]).filter(t=>t!==e);"left"===t?n.push(e):r.unshift(e),Vn({left:n,right:r})},unpinColumn:e=>{Vn({left:(Ln.left??[]).filter(t=>t!==e),right:(Ln.right??[]).filter(t=>t!==e)})},isColumnPinned:e=>!Je&&(-1!==(Ln.left??[]).indexOf(e)?"left":-1!==(Ln.right??[]).indexOf(e)&&"right"),pinnedColumns:Ln,setPinnedColumns:Vn,sortModel:pn,setSortModel:hn,sortColumn:Cl,filterModel:fn,setFilterModel:bn,upsertFilterItems:e=>{let t=fn.items.slice();e.forEach(e=>{const n=void 0===e.id?{...e,id:`${Date.now()}-${Math.random().toString(36).slice(2,8)}`}:e,r=t.findIndex(e=>void 0!==e.id&&e.id===n.id);-1===r?t.push(n):t[r]=n}),Pe&&t.length>1&&(t=t.slice(-1)),bn({...fn,items:t})},deleteFilterItem:e=>{bn({...fn,items:fn.items.filter(t=>void 0!==e.id?t.id!==e.id:t!==e)})},showPreferences:(e,t,n)=>{ur(null),gr({open:!0,openedPanelValue:e,targetField:n,anchorEl:t??rn.current??tn.current})},hidePreferences:Fl,selectedIds:Qn,setSelectedIds:Xn,selectRows:yl,isRowSelectableFn:hl,paginationModel:{page:il,pageSize:En.pageSize},setPaginationModel:Gn,setDensity:Hn,toggleDetailPanel:Rl,expandedDetailPanels:jn,setExpandedDetailPanels:_n,rowGroupingModel:Bn,setRowGroupingModel:$n,setRowChildrenExpansion:zl,aggregationModel:Un,setAggregationModel:Wn,startCellEditMode:Pl,stopCellEditMode:Nl,editingCell:rr,setEditValue:ir,buildCellParams:Tl,setFocusedCell:dr,scrollToIndexes:Al,forceUpdate:ln,virtual:ml},Jt&&(Jt.current=cn),e.useEffect(()=>{Zt?.(Ul,{api:cn})},[Ul,Zt,cn]);const Wl=e.useMemo(()=>({header:i,pagination:oe,pageSizeOptions:ae,hideFooterPagination:me,hideFooterRowCount:ue,hideFooterSelectedRowCount:pe,disableColumnFilter:Ie,disableColumnSelector:Qe,disableDensitySelector:le,disableColumnPinning:Je,disableColumnSorting:we,disableMultipleColumnsSorting:xe,disableMultipleColumnsFiltering:Pe,disableRowGrouping:Tt,disableAggregation:Vt,checkboxSelection:tt,aggregationFunctions:Xr,quickFilterDebounceMs:Ne}),[i,oe,ae,me,ue,pe,Ie,Qe,le,Je,we,xe,Pe,Tt,Vt,tt,Xr,Ne]),ql=e.useMemo(()=>({api:cn,state:Ul,localeText:on,themeMode:w,rootProps:Wl,columns:Hr,visibleColumns:Vr}),[cn,Ul,on,w,Wl,Hr,Vr]),jl=(t,n)=>{const{col:r}=t,l=r.field;if(l===F){if("group"===n.kind&&n.group){const t=n.group.descendants.map(e=>e.id),r=t.reduce((e,t)=>e+(Qn.has(t)?1:0),0);return e.createElement(Qt,{checked:t.length>0&&r===t.length,indeterminate:r>0&&r<t.length,label:on.checkboxSelectionSelectRow,onClick:e=>e.stopPropagation(),onChange:()=>yl(t,r!==t.length,!1)})}if("leaf"!==n.kind)return null;const t=hl(n.id,n.row),r=Qn.has(n.id);return e.createElement(Qt,{checked:r,disabled:!t,label:r?on.checkboxSelectionUnselectRow:on.checkboxSelectionSelectRow,tabIndex:-1,onClick:e=>e.stopPropagation(),onChange:()=>{yr.current=n.id,yl([n.id],!r,lt)}})}if(l===I){if("leaf"!==n.kind||!n.row)return null;const t=jn.has(n.id),r=Ft?.(Ol(n.id,n.row));return null==r||!1===r?null:e.createElement(Wt,{size:"small",className:L("mgh-grid-detail-toggle",t&&"mgh-grid-detail-toggle--expanded"),label:t?on.collapseDetailPanel:on.expandDetailPanel,"aria-expanded":t,tabIndex:-1,onClick:e=>{e.stopPropagation(),Rl(n.id)}},e.createElement(Ct,null))}if(l===S){if("group"===n.kind&&n.group){const t=n.group,r=Jr(t),l=Gt?.hideDescendantCount;return e.createElement("div",{className:"mgh-grid-group-cell",style:{paddingLeft:20*n.depth}},e.createElement(Wt,{size:"small",className:L("mgh-grid-group-toggle",r&&"mgh-grid-group-toggle--expanded"),label:r?on.collapseDetailPanel:on.expandDetailPanel,"aria-expanded":r,tabIndex:-1,onClick:e=>{e.stopPropagation(),zl(t.id,!r)}},e.createElement(Mt,null)),e.createElement("span",{className:"mgh-grid-group-label",title:t.groupingLabel},t.groupingLabel),!l&&e.createElement("span",{className:"mgh-grid-group-count"},"(",t.descendants.length,")"))}return null}if("group"===n.kind||"footer"===n.kind){const t=n.aggregates?.[l];if(!t||O(t.value))return null;const o=Xr[t.fn],i=an.current.api,a=n.group?.descendants[0]?.row??an.current.sortedLeaves[0]?.row??{},d=o?.valueFormatter?o.valueFormatter(t.value):r.valueFormatter?r.valueFormatter(t.value,a,r,i):ee(t.value,r);return e.createElement(e.Fragment,null,e.createElement("span",{className:"mgh-grid-aggregation-label"},o?.label??t.fn),e.createElement("span",{className:"mgh-grid-cell-text"},ne(d)))}if(!n.row)return null;const o=Tl(n.id,l,n.row,n.node);if("edit"===o.cellMode)return(t=>{const n=t.colDef,r=e=>Nl(t.id,t.field,!1,e),l=()=>Nl(t.id,t.field,!0,"escapeKeyDown");if(n.renderEditCell)return n.renderEditCell({...t,editValue:or,onValueChange:ir,commit:()=>r("enterKeyDown"),cancel:l});const o={autoFocus:!0,onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),e.stopPropagation(),r("enterKeyDown")):"Escape"===e.key?(e.preventDefault(),e.stopPropagation(),l()):"Tab"===e.key?r("tabKeyDown"):e.stopPropagation()},onBlur:()=>r("cellFocusOut"),onClick:e=>e.stopPropagation()};switch(n.type){case"boolean":return e.createElement(Qt,{...o,checked:Boolean(or),onChange:e=>ir(e.target.checked)});case"singleSelect":{const r=J(n,t.row,t.id);return e.createElement(_t,{...o,size:"small",value:null==or?"":String(or),onChange:e=>{const t=r.find(t=>String(X(n,t))===e.target.value);ir(void 0!==t?X(n,t):e.target.value)}},e.createElement("option",{value:""}),r.map(t=>{const r=X(n,t);return e.createElement("option",{key:String(r),value:String(r)},Y(n,t))}))}case"number":return e.createElement(jt,{...o,size:"small",type:"number",value:null==or?"":or,onChange:e=>ir(e.target.value)});case"date":case"dateTime":return e.createElement(jt,{...o,size:"small",type:"date"===n.type?"date":"datetime-local",value:"string"==typeof or&&/^\d{4}-\d{2}-\d{2}/.test(or)?or:Dn(or,"dateTime"===n.type),onChange:e=>ir(e.target.value)});default:return e.createElement(jt,{...o,size:"small",type:"text",value:null==or?"":String(or),onChange:e=>ir(e.target.value)})}})(o);if(r.renderCell)return r.renderCell(o);if("actions"===r.type){const t=r.getActions?r.getActions(Ol(n.id,n.row)):[];return e.createElement(Cn,{actions:t,themeMode:w,moreLabel:on.actionsCellMore})}if("boolean"===r.type)return O(o.value)?null:o.value?e.createElement(Et,{"aria-label":on.booleanCellTrueLabel}):e.createElement(bt,{"aria-label":on.booleanCellFalseLabel});const i=o.formattedValue;if(null==i)return null;if(e.isValidElement(i))return i;const a=ne(i);return e.createElement("span",{className:"mgh-grid-cell-text",title:a.length>20?a:void 0},a)},_l=e=>({width:e.width,minWidth:e.width,maxWidth:e.width,left:"left"===e.pinned?e.offset:void 0,right:"right"===e.pinned?e.offset:void 0}),Kl=(e,t)=>L("left"===e.pinned&&`${t}--pinned-left`,"right"===e.pinned&&`${t}--pinned-right`,e.isLastLeft&&Br.hasPinning&&`${t}--pinned-left-last`,e.isFirstRight&&`${t}--pinned-right-first`),Ql=Boolean(ht||ft||!rt),Xl=(t,n)=>{const r="leaf"===t.kind&&Qn.has(t.id),l="leaf"===t.kind&&t.row&&pt?pt({...Ol(t.id,t.row),indexRelativeToCurrentPage:n.index,isFirstVisible:n.isFirst,isLastVisible:n.isLast,rowNode:t.node}):void 0;return e.createElement("div",{role:"row","aria-rowindex":n.index+2,"aria-selected":"leaf"===t.kind?r:void 0,"data-mgh-row-id":String(t.id),"data-mgh-row-index":n.index,className:L("mgh-grid-row",r&&"mgh-grid-row--selected",Ql&&"leaf"===t.kind&&"mgh-grid-row--clickable","group"===t.kind&&"mgh-grid-row--group","pinnedRow"===t.kind&&"mgh-grid-row--pinned","footer"===t.kind&&"mgh-grid-row--footer",n.isAuto&&"mgh-grid-row--auto-height",l),style:{width:Br.totalWidth,height:n.isAuto?void 0:n.height,minHeight:n.isAuto?Pr:void 0},onClick:e=>{"leaf"===t.kind&&t.row?(rt||((e,t)=>{if("group"===e.kind&&e.group){const t=e.group.descendants.map(e=>e.id),n=t.every(e=>Qn.has(e));return void yl(t,!n,!1)}if("leaf"!==e.kind)return;const n=e.id;if(!hl(n,e.row))return;const r=!lt;if(t.shiftKey&&r&&null!==yr.current){const e=al.filter(e=>"leaf"===e.type).map(e=>e.id),r=e.indexOf(yr.current),l=e.indexOf(n);if(-1!==r&&-1!==l){const[n,o]=r<l?[r,l]:[l,r];return void yl(e.slice(n,o+1),!0,!tt&&!t.ctrlKey&&!t.metaKey)}}yr.current=n;const l=Qn.has(n);tt||t.ctrlKey||t.metaKey?yl([n],!l,!1):l&&1===Qn.size?yl([n],!1,!0):yl([n],!0,!0)})(t,e),ht?.(Ol(t.id,t.row),e,dn())):"group"===t.kind&&t.group&&zl(t.group.id,!Jr(t.group))},onDoubleClick:e=>{"leaf"===t.kind&&t.row&&ft?.(Ol(t.id,t.row),e,dn())}},Br.columns.map(r=>((t,n)=>{const{col:r}=t,l=r.field,o=Boolean(ar&&ar.id===n.id&&ar.field===l),i=Boolean(rr&&rr.id===n.id&&rr.field===l),a=("group"===n.kind||"footer"===n.kind)&&Boolean(n.aggregates?.[l]),d="leaf"===n.kind&&n.row?Tl(n.id,l,n.row,n.node):null,s=!!d&&Il(d),c=d&&r.cellClassName?"function"==typeof r.cellClassName?r.cellClassName(d):r.cellClassName:void 0,g=l===F,m=l===I;return e.createElement("div",{key:l,role:"gridcell","data-mgh-field":l,"data-mgh-colindex":Br.columns.indexOf(t),tabIndex:o?0:-1,"aria-selected":"leaf"===n.kind?Qn.has(n.id):void 0,className:L("mgh-grid-cell",`mgh-grid-cell--align-${r.align??"left"}`,Kl(t,"mgh-grid-cell"),o&&!i&&"mgh-grid-cell--focused",i&&"mgh-grid-cell--editing",s&&!i&&"mgh-grid-cell--editable","boolean"===r.type&&"mgh-grid-cell--boolean","actions"===r.type&&"mgh-grid-cell--actions",g&&"mgh-grid-cell--checkbox",m&&"mgh-grid-cell--detail-toggle",a&&"mgh-grid-cell--aggregation",c),style:_l(t),onMouseDown:()=>{"leaf"!==n.kind&&"group"!==n.kind||o||dr({id:n.id,field:l})},onClick:e=>{d&&xt&&xt(d,e,dn())},onDoubleClick:e=>{d&&(kt?.(d,e,dn()),s&&!i&&(e.stopPropagation(),Pl(n.id,l)))}},jl(t,n))})(r,t,n.isAuto)),e.createElement("div",{className:"mgh-grid-row-filler"}))},Yl=e=>({id:e.id,kind:e.type,row:e.row,node:e.node,depth:e.depth,group:e.group,aggregates:"group"===e.type&&e.group?cl(e.group):void 0}),Jl=(t,n)=>{const r=[];if((t??[]).forEach((t,o)=>{const i=W(t,l),a={id:i,kind:"pinnedRow",row:t,node:{type:"pinnedRow",id:i,depth:0,parent:null,position:n},depth:0};r.push(e.createElement(e.Fragment,{key:String(i)},Xl(a,{height:Pr,index:o,isFirst:!1,isLast:!1,isAuto:!1})))}),"bottom"===n&&dl){const t={id:P,kind:"footer",row:null,node:{type:"footer",id:P,depth:0,parent:null},depth:0,aggregates:dl};r.push(e.createElement(e.Fragment,{key:P},Xl(t,{height:Pr,index:0,isFirst:!1,isLast:!1,isAuto:!1})))}return r},Zl=(t,n)=>{const{col:r}=t,l=r.field,o=pn.findIndex(e=>e.field===l&&e.sort),i=-1!==o?pn[o]:void 0,a=!1!==r.sortable&&!we&&!T(l)||l===S&&!1!==r.sortable,d=!Ke&&!r.disableColumnMenu&&!T(l)||l===S&&!Ke,s=!Xe&&!1!==r.resizable&&!T(l)||l===S&&!Xe,c=Ll(r),g=fr?.field===l,m=fr&&fr.overField===l&&fr.field!==l,u=mr?.field===l,p={field:l,colDef:r,api:cn},h=r.headerClassName?"function"==typeof r.headerClassName?r.headerClassName(p):r.headerClassName:void 0;let f;return f=l===F?lt?null:e.createElement(Qt,{checked:xl,indeterminate:wl,disabled:0===fl.length,label:xl?on.checkboxSelectionUnselectAllRows:on.checkboxSelectionSelectAllRows,onChange:El,onClick:e=>e.stopPropagation()}):l===I?null:r.renderHeader?r.renderHeader(p):e.createElement("span",{className:"mgh-grid-header-title"},r.headerName??l),e.createElement("div",{key:l,role:"columnheader","aria-colindex":n+1,"aria-sort":i?"asc"===i.sort?"ascending":"descending":a?"none":void 0,"data-mgh-field":l,title:r.description,tabIndex:-1,draggable:c,className:L("mgh-grid-header-cell",`mgh-grid-header-cell--align-${r.headerAlign??"left"}`,Kl(t,"mgh-grid-header-cell"),a&&"mgh-grid-header-cell--sortable",l===F&&"mgh-grid-header-cell--checkbox",l===I&&"mgh-grid-header-cell--detail-toggle",n===Br.columns.length-1&&"mgh-grid-header-cell--last",g&&"mgh-grid-header-cell--dragging",m&&"left"===fr?.side&&"mgh-grid-header-cell--drop-left",m&&"right"===fr?.side&&"mgh-grid-header-cell--drop-right",u&&"mgh-grid-header-cell--menu-open",h),style:_l(t),onClick:e=>{a&&!pr&&Cl(l,void 0,e.shiftKey)},onDragStart:e=>{if(c){e.dataTransfer.effectAllowed="move";try{e.dataTransfer.setData("text/plain",l)}catch{}br({field:l,overField:null,side:"left"})}},onDragOver:e=>{if(!fr||fr.field===l)return;const n=Br.columns.find(e=>e.col.field===fr.field);if(!n||n.pinned!==t.pinned||!Ll(r))return;e.preventDefault(),e.dataTransfer.dropEffect="move";const o=e.currentTarget.getBoundingClientRect(),i=e.clientX<o.left+o.width/2?"left":"right";fr.overField===l&&fr.side===i||br({...fr,overField:l,side:i})},onDragLeave:()=>{fr&&fr.overField===l&&br({...fr,overField:null})},onDrop:e=>((e,t)=>{t.preventDefault();const n=fr;if(br(null),!n||n.field===e.col.field)return;const r=Br.columns.find(e=>e.col.field===n.field);if(!r||r.pinned!==e.pinned||!Ll(e.col))return;const l=n.side;if(r.pinned){const t=r.pinned,o=(Ln[t]??[]).slice(),i=o.indexOf(n.field);let a=o.indexOf(e.col.field);if(-1===i||-1===a)return;return o.splice(i,1),a=o.indexOf(e.col.field),o.splice("right"===l?a+1:a,0,n.field),void Vn({...Ln,[t]:o})}const o=Hr.map(e=>e.field),i=o.indexOf(n.field),a=o.filter(e=>e!==n.field);let d=a.indexOf(e.col.field);"right"===l&&(d+=1),a.splice(d,0,n.field),Jn(a),Ml(a);const s=Gr.get(n.field);s&&je?.({column:s,targetIndex:d,oldIndex:i},t,dn())})(t,e),onDragEnd:()=>br(null)},e.createElement("div",{className:"mgh-grid-header-title-container"},f,a&&e.createElement("span",{className:L("mgh-grid-sort-icon",i&&"mgh-grid-sort-icon--active"),"aria-hidden":"true"},"desc"===i?.sort?e.createElement(vt,{size:18}):e.createElement(wt,{size:18}),i&&pn.filter(e=>e.sort).length>1&&e.createElement("span",{className:"mgh-grid-sort-index"},o+1))),d&&e.createElement(Wt,{size:"small",className:L("mgh-grid-header-menu-btn",u&&"mgh-grid-header-menu-btn--open"),label:on.columnMenuLabel,"aria-haspopup":"menu","aria-expanded":u,tabIndex:-1,onClick:e=>{e.stopPropagation(),ur(t=>t?.field===l?null:{field:l,anchorEl:e.currentTarget})},onMouseDown:e=>e.stopPropagation()},e.createElement(yt,null)),s&&e.createElement("div",{className:L("mgh-grid-resize-handle",pr===l&&"mgh-grid-resize-handle--active"),role:"separator","aria-orientation":"vertical",onPointerDown:e=>((e,t)=>{t.preventDefault(),t.stopPropagation(),Vl.current={field:e.col.field,startX:t.clientX,startWidth:e.width,lastWidth:e.width,min:e.col.minWidth??G,max:e.col.maxWidth??1/0},hr(e.col.field);const n=e=>{const t=Vl.current;if(!t)return;const n=H(t.startWidth+(e.clientX-t.startX),t.min,t.max);t.lastWidth=n,er(e=>e[t.field]===n?e:{...e,[t.field]:n})},r=()=>{window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",r);const e=Vl.current;if(Vl.current=null,hr(null),!e)return;const t={...an.current.columnWidths,[e.field]:e.lastWidth};er(t),kl(t);const l=an.current.getColumn(e.field);l&&e.lastWidth!==e.startWidth&&_e?.({colDef:l,width:e.lastWidth},dn())};window.addEventListener("pointermove",n),window.addEventListener("pointerup",r)})(t,e),onClick:e=>e.stopPropagation(),onDoubleClick:e=>{e.stopPropagation(),Sl({columns:[l]})},draggable:!1,onDragStart:e=>{e.preventDefault(),e.stopPropagation()}}))},eo=null===C.toolbar?null:C.toolbar??sn,to=null===C.footer?null:C.footer??gn,no=C.noRowsOverlay??vn,ro=C.loadingOverlay??yn,lo={...E,...M.toolbar},oo={text:k,...M.noRowsOverlay},io={...M.loadingOverlay},ao=!o&&0===al.length,so=mr?Ur(mr.field):void 0,co={height:"auto",flexGrow:1,...zn(p),...zn(u),...v},go={flexGrow:1,...zn(f),...zn(h)},mo={...zn(x),...zn(b),"--mgh-grid-header-height":`${Nr}px`,"--mgh-grid-row-height":`${Pr}px`},uo=Sr>0&&Sr<600,po=e.createElement("div",{ref:tn,id:en,role:"grid","aria-rowcount":$l+1,"aria-colcount":Br.columns.length,"aria-multiselectable":!(!tt||lt)||void 0,"aria-busy":o||void 0,className:L("mgh-grid",_&&"mgh-grid--auto-height",!Br.hasPinning&&"mgh-grid--no-pinned-shadow",c),style:mo,onKeyDown:e=>{if(rr)return;const t=e.target;if(t&&("INPUT"===t.tagName||"SELECT"===t.tagName||"TEXTAREA"===t.tagName||"BUTTON"===t.tagName))return;const n=Math.max(1,Math.floor(Math.max(Fr-Nr,Pr)/Pr));switch(e.key){case"ArrowDown":e.preventDefault(),Hl(1,0);break;case"ArrowUp":e.preventDefault(),Hl(-1,0);break;case"ArrowLeft":e.preventDefault(),Hl(0,-1);break;case"ArrowRight":e.preventDefault(),Hl(0,1);break;case"PageDown":e.preventDefault(),Hl(n,0);break;case"PageUp":e.preventDefault(),Hl(-n,0);break;case"Home":e.preventDefault(),Hl(0,0,e.ctrlKey||e.metaKey?{row:"first",col:"first"}:{col:"first"});break;case"End":e.preventDefault(),Hl(0,0,e.ctrlKey||e.metaKey?{row:"last",col:"last"}:{col:"last"});break;case"Enter":case"F2":if(ar){const t=nl.get(ar.id);if("group"===t?.type&&ar.field===S){const e=rl.get(ar.id);e&&zl(e.id,!Jr(e))}else e.preventDefault(),Pl(ar.id,ar.field)}break;case" ":if(ar&&(tt||!rt)){const t=al.find(e=>e.id===ar.id);t&&"leaf"===t.type&&t.row&&(e.preventDefault(),yl([t.id],!Qn.has(t.id),!1))}break;case"Escape":cr.open&&Fl(),mr&&ur(null);break;default:(e.ctrlKey||e.metaKey)&&"a"===e.key.toLowerCase()&&tt&&!lt&&(e.preventDefault(),yl(fl,!0))}}},y&&eo&&e.createElement("div",{ref:rn},e.createElement(eo,{...lo})),e.createElement("div",{className:"mgh-grid-main"},e.createElement("div",{ref:nn,className:"mgh-grid-scroller",onScroll:pl,tabIndex:-1},e.createElement("div",{className:"mgh-grid-columns",role:"rowgroup",style:{width:Br.totalWidth}},e.createElement("div",{className:"mgh-grid-header-row",role:"row","aria-rowindex":1,style:{height:Nr}},Br.columns.map((e,t)=>Zl(e,t)),e.createElement("div",{className:"mgh-grid-header-filler"}))),St?.top&&St.top.length>0&&e.createElement("div",{className:"mgh-grid-pinned-rows mgh-grid-pinned-rows--top",role:"rowgroup",style:{top:Nr,width:Br.totalWidth}},Jl(St.top,"top")),e.createElement("div",{className:L("mgh-grid-body",ml?"mgh-grid-body--virtual":"mgh-grid-body--flow"),role:"rowgroup",style:ml?{height:gl.total,width:Br.totalWidth}:{width:Br.totalWidth,minHeight:ao||o?120:void 0}},(()=>{const{start:t,end:n}=ul,r=[];for(let l=t;l<n;l+=1){const t=al[l],n=Yl(t),o=gl.detailHeights[l],i="leaf"===t.type&&Boolean(t.row)&&Boolean(Ft)&&jn.has(t.id),a=i&&t.row?Ft?.(Ol(t.id,t.row)):null,d=!!(i&&t.row&&It)&&"auto"===It({id:t.id,row:t.row}),s=!(ml||!B||"leaf"!==t.type||!t.row||"auto"!==B({id:t.id,model:t.row,densityFactor:Ir}));r.push(e.createElement("div",{key:String(t.id),className:"mgh-grid-row-block",style:ml?{top:gl.offsets[l],width:Br.totalWidth}:{width:Br.totalWidth}},Xl(n,{height:gl.rowHeights[l],index:l,isFirst:0===l,isLast:l===al.length-1,isAuto:s}),i&&null!=a&&!1!==a&&e.createElement("div",{className:"mgh-grid-detail-panel",style:{height:d?void 0:o||void 0,width:Sr||void 0},onClick:e=>e.stopPropagation()},a)))}return r})()),(St?.bottom&&St.bottom.length>0||dl)&&e.createElement("div",{className:"mgh-grid-pinned-rows mgh-grid-pinned-rows--bottom",role:"rowgroup",style:{width:Br.totalWidth}},Jl(St?.bottom,"bottom"))),o&&e.createElement("div",{className:"mgh-grid-overlay mgh-grid-overlay--loading",style:{top:Nr}},e.createElement(ro,{...io})),ao&&e.createElement("div",{className:"mgh-grid-overlay",style:{top:Nr}},e.createElement(no,{...oo}))),!ge&&to&&e.createElement(to,{...M.footer}),e.createElement(Yt,{open:cr.open,anchorEl:cr.anchorEl,onClose:Fl,themeMode:w,placement:"bottom-start",autoFocus:!0},"columns"===cr.openedPanelValue?e.createElement(mn,null):e.createElement(xn,null)),so&&mr&&e.createElement(wn,{column:so,anchorEl:mr.anchorEl,open:!0,onClose:()=>ur(null),themeMode:w,panelAnchorEl:rn.current}));return e.createElement(De.Provider,{value:ql},e.createElement("div",{className:L("mgh-grid-card",s&&"mgh-grid-card--plain",g),"data-mgh-theme":w,style:co},!s&&(void 0!==i||d||a)&&e.createElement("div",{className:"mgh-grid-card-header"},void 0!==i&&e.createElement("h3",{className:"mgh-grid-card-title"},i),d&&e.createElement("div",{className:"mgh-grid-card-header-center"},d),e.createElement("div",{className:"mgh-grid-card-header-end",style:{gap:uo?8:16}},a)),e.createElement("div",{className:L("mgh-grid-box",m),style:go},po)))}Gn.displayName="MGHGrid",exports.ConfirmDialog=function({title:t,content:n,action:r,open:l,onClose:o,...g}){return e.createElement(a,{fullWidth:!0,maxWidth:"xs",open:l,onClose:o,...g},e.createElement(d,{sx:{pb:2}},t),n&&e.createElement(c,{sx:{typography:"body2"}}," ",n," "),e.createElement(s,null,e.createElement(i,{onClick:o},"Cancel"),r))},exports.CustomGridToolbarExport=function({csvOptions:t={allColumns:!0},excelOptions:r={allColumns:!0},printOptions:l,customMenuItem:o,...i}){return e.createElement(n.GridToolbarExportContainer,{...i},o,e.createElement(n.GridCsvExportMenuItem,{options:t}),e.createElement(n.GridExcelExportMenuItem,{options:r}),e.createElement(n.GridPrintExportMenuItem,{options:l}))},exports.CustomNoRowsOverlay=f,exports.DataGridQuickFilter=E,exports.ExportingDialog=function({open:n,text:r=e.createElement(e.Fragment,null,"Your export is currently being built. Some larger exports can take a couple of minutes to complete. ",e.createElement("br",null),e.createElement("br",null),"Please do not close your browser or refresh the page.")}){return e.createElement(t.Dialog,{open:n,fullWidth:!0,sx:{p:4}},e.createElement(t.DialogContent,{sx:{p:4,textAlign:"center"}},e.createElement(t.Typography,{variant:"subtitle1",sx:{mb:3}},r),e.createElement(t.CircularProgress,null)))},exports.Iconify=C,exports.Label=k,exports.MGHDataGrid=function({header:r,rows:l,columns:o,onRowClick:i,onRowDoubleClick:a,pagination:d=!0,pageSize:s=25,slots:c={},slotProps:g={},toolbarProps:m={},initialState:u={},pageSizeOptions:p=[10,25,50,100],sx:b={},cardSx:y={flexGrow:1},boxSx:E={flexGrow:1},columnVisibilityModel:C,onColumnVisibilityModelChange:M,columnVisibilityStorageKey:k,columnOrderStorageKey:S,disableDensitySelector:F=!1,disableRowSelectionOnClick:I=!0,disableColumnFilter:P=!1,disableColumnMenu:N=!1,disableColumnSelector:R=!1,checkboxSelectionVisibleOnly:z=!1,renderHeaderEndContent:D,renderHeaderCenterContent:G,noRowsText:T="No data found within selected parameters.",checkboxSelection:O=!1,onRowSelectionModelChange:A,rowSelectionModel:H,getRowClassName:L,getDetailPanelContent:V,getDetailPanelHeight:B,loading:$=!1,isRowSelectable:U,getRowHeight:W,showToolbar:q=!0,hideFooterRowCount:j=!1,onColumnOrderChange:_,defaultGroupingExpansionDepth:K,pinnedRows:Q,keepNonExistentRowsSelected:X=!0}){const Y=h("down","sm"),J=e.useMemo(()=>{if(k)return x(k)??void 0},[k]),Z=e.useMemo(()=>{if(!S)return;return((e,t)=>{if(!e||0===e.length)return;const n=new Set(t.map(e=>e.field));return e.filter(e=>n.has(e))})(x(S),o)},[S,o]),ee=void 0!==C?C:J,te=e.useCallback((e,t)=>{k&&w(k,e),M?.(e,t)},[k,M]),ne=e.useCallback((e,t,n)=>{if(S){const e=n.api.getAllColumns().map(e=>e.field);w(S,e)}_?.(e,t,n)},[S,_]),re={density:"compact",pagination:{paginationModel:{pageSize:s}},filter:{filterModel:{items:[],quickFilterExcludeHiddenColumns:!1}},...u,columns:{...u?.columns,columnVisibilityModel:ee??u?.columns?.columnVisibilityModel,orderedFields:Z??u?.columns?.orderedFields}};return e.createElement(t.Card,{sx:{height:"auto",...y}},e.createElement(t.Box,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",pr:1}},e.createElement(t.CardHeader,{title:r,sx:{mb:2}}),G,e.createElement(t.Box,{sx:{display:"flex",gap:Y?1:2,alignItems:"center",flexWrap:"wrap",justifyContent:"flex-end"}},D)),e.createElement(t.Box,{component:"div",sx:{display:"flex",flexDirection:"column",flexGrow:1,...E}},e.createElement(n.DataGridPremium,{loading:$,onRowClick:i,onRowDoubleClick:a,rows:l,columns:o,pagination:d,disableDensitySelector:F,disableRowSelectionOnClick:I,disableColumnFilter:P,disableColumnMenu:N,disableColumnSelector:R,slots:{noRowsOverlay:f,toolbar:v,...c},slotProps:{noRowsOverlay:{text:T},toolbar:m,...g},initialState:re,pageSizeOptions:p,sx:{"& .MuiDataGrid-row:hover":{cursor:i||a?"pointer":"default"},...b},onColumnVisibilityModelChange:te,checkboxSelection:O,onRowSelectionModelChange:A,rowSelectionModel:H,isRowSelectable:U,getRowClassName:L,getDetailPanelContent:V,getDetailPanelHeight:B,checkboxSelectionVisibleOnly:z,disableRowSelectionExcludeModel:!0,showToolbar:q,hideFooterRowCount:j,getRowHeight:W,onColumnOrderChange:ne,defaultGroupingExpansionDepth:K,pinnedRows:Q,keepNonExistentRowsSelected:X})))},exports.MGHGrid=Gn,exports.MGHGridActionsCellItem=En,exports.MGHGridButton=Ut,exports.MGHGridCheckbox=Qt,exports.MGHGridColumnMenu=wn,exports.MGHGridColumnsButton=nn,exports.MGHGridColumnsPanel=mn,exports.MGHGridContext=De,exports.MGHGridDefaultToolbar=sn,exports.MGHGridDensitySelector=ln,exports.MGHGridExportMenu=an,exports.MGHGridExportMenuItem=on,exports.MGHGridFilterPanel=xn,exports.MGHGridFiltersButton=rn,exports.MGHGridFooter=gn,exports.MGHGridIconButton=Wt,exports.MGHGridIcons=$t,exports.MGHGridLoadingOverlay=yn,exports.MGHGridMenu=Jt,exports.MGHGridMenuDivider=en,exports.MGHGridMenuItem=Zt,exports.MGHGridNoRowsOverlay=vn,exports.MGHGridPagination=cn,exports.MGHGridPopover=Yt,exports.MGHGridQuickFilter=dn,exports.MGHGridSelect=_t,exports.MGHGridTextInput=jt,exports.MGHGridToolbar=v,exports.MGH_GRID_AGGREGATION_FUNCTIONS=Ce,exports.MGH_GRID_CHECKBOX_FIELD=F,exports.MGH_GRID_CSS=Pe,exports.MGH_GRID_DEFAULT_LOCALE_TEXT=Me,exports.MGH_GRID_DETAIL_PANEL_TOGGLE_FIELD=I,exports.MGH_GRID_GROUPING_COLUMN_FIELD=S,exports.MGH_GRID_STYLE_ID=Ie,exports.mghGridBooleanFilterOperators=xe,exports.mghGridBuildXlsx=at,exports.mghGridGetDataAsCsv=$e,exports.mghGridGetDateFilterOperators=be,exports.mghGridNumberFilterOperators=he,exports.mghGridSingleSelectFilterOperators=we,exports.mghGridStringFilterOperators=ue,exports.useMGHGridApiContext=()=>Ge().api,exports.useMGHGridApiRef=()=>e.useRef(null),exports.useMGHGridContext=Ge,exports.useMGHGridLocaleText=()=>Ge().localeText,exports.useMGHGridStyles=ze,exports.useResponsive=h;
|
|
1
|
+
"use strict";var e=require("react"),t=require("@mui/material"),n=require("@mui/x-data-grid-premium"),r=require("@mui/material/useMediaQuery"),l=require("@mui/material/styles"),o=require("@emotion/styled"),i=require("@mui/material/Button"),a=require("@mui/material/Dialog"),d=require("@mui/material/DialogTitle"),s=require("@mui/material/DialogActions"),c=require("@mui/material/DialogContent"),g=require("@iconify/react"),m=require("@mui/material/Box"),u=require("dayjs"),p=require("react-dom");function h(e,t,n){const o=l.useTheme(),i=r(o.breakpoints.up(t)),a=r(o.breakpoints.down(t)),d=r(o.breakpoints.between(t,n)),s=r(o.breakpoints.only(t));return"up"===e?i:"down"===e?a:"between"===e?d:s}function f({text:n,useSettingsContext:r}){const i=l.useTheme(),a=r?.()?.themeMode??i.palette.mode??"light",d=o("div")(()=>({display:"flex",alignItems:"center",justifyContent:"center",height:"100%","& .ant-empty-img-1":{fill:"light"===a?"#aeb8c2":"#262626"},"& .ant-empty-img-2":{fill:"light"===a?"#f5f5f7":"#595959"},"& .ant-empty-img-3":{fill:"light"===a?"#dce0e6":"#434343"},"& .ant-empty-img-4":{fill:"light"===a?"#fff":"#1c1c1c"},"& .ant-empty-img-5":{fillOpacity:"light"===a?"0.8":"0.08",fill:"light"===a?"#f5f5f5":"#fff"}}));return e.createElement(d,null,e.createElement(t.Box,{component:"img",alt:"empty content",src:"/assets/icons/empty/ic_content.svg",sx:{width:50,maxWidth:160}}),e.createElement(t.Box,{sx:{mb:0}},n))}const b=()=>"undefined"!=typeof window&&void 0!==window.localStorage,x=e=>{if(!b())return null;try{const t=window.localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},w=(e,t)=>{if(b())try{window.localStorage.setItem(e,JSON.stringify(t))}catch{return}};function v({showColumnsButton:r=!0,showFilterButton:l=!0,showExportButton:o=!0,showQuickFilter:i=!0,renderOtherButtons:a,renderDateRange:d,customMenuItem:s,showCsvOption:c=!0}){return e.createElement(n.Toolbar,{style:{display:"flex",justifyContent:"space-between"}},e.createElement("div",null,r&&e.createElement(t.Tooltip,{title:"Columns"},e.createElement(n.ColumnsPanelTrigger,{render:e.createElement(n.ToolbarButton,null)},e.createElement(n.GridViewColumnIcon,{fontSize:"small"}))),l&&e.createElement(t.Tooltip,{title:"Filters"},e.createElement(n.FilterPanelTrigger,{render:(r,l)=>e.createElement(n.ToolbarButton,{...r,color:"default"},e.createElement(t.Badge,{badgeContent:l.filterCount,color:"primary",variant:"dot"},e.createElement(n.GridFilterListIcon,{fontSize:"small"})))})),o&&e.createElement(y,{customMenuItem:s,showCsvOption:c})),d,e.createElement("div",null,a,i&&e.createElement(E,null)))}const y=({csvOptions:t={allColumns:!0},excelOptions:r={allColumns:!0},printOptions:l,customMenuItem:o,showCsvOption:i=!0,...a})=>e.createElement(n.GridToolbarExportContainer,{...a},o?.map(e=>e),i&&e.createElement(n.GridCsvExportMenuItem,{options:t}),e.createElement(n.GridExcelExportMenuItem,{options:r}),e.createElement(n.GridPrintExportMenuItem,{options:l}));function E(){const r=t.styled(n.QuickFilter)({display:"grid",alignItems:"center"}),l=t.styled(n.ToolbarButton)(({theme:e,ownerState:t})=>({gridArea:"1 / 1",width:"min-content",height:"min-content",zIndex:1,opacity:t.expanded?0:1,pointerEvents:t.expanded?"none":"auto",transition:e.transitions.create(["opacity"])})),o=t.styled(t.TextField)(({theme:e,ownerState:t})=>({gridArea:"1 / 1",overflowX:"clip",width:t.expanded?260:"var(--trigger-width)",opacity:t.expanded?1:0,transition:e.transitions.create(["width","opacity"])}));return e.createElement(r,null,e.createElement(n.QuickFilterTrigger,{render:(r,o)=>e.createElement(t.Tooltip,{title:"Search",enterDelay:0},e.createElement(l,{...r,ownerState:{expanded:o.expanded},color:"default","aria-disabled":o.expanded},e.createElement(n.GridSearchIcon,{fontSize:"small"})))}),e.createElement(n.QuickFilterControl,{render:({ref:r,...l},i)=>e.createElement(o,{...l,ownerState:{expanded:i.expanded},inputRef:r,"aria-label":"Search",placeholder:"Search...",size:"small",slotProps:{input:{startAdornment:e.createElement(t.InputAdornment,{position:"start"},e.createElement(n.GridSearchIcon,{fontSize:"small"})),endAdornment:i.value?e.createElement(t.InputAdornment,{position:"end"},e.createElement(n.QuickFilterClear,{edge:"end",size:"small","aria-label":"Clear search",material:{sx:{marginRight:-.75}}},e.createElement(n.GridCloseIcon,{fontSize:"small"}))):null,...l.slotProps?.input},...l.slotProps}})}))}const C=e.forwardRef(({icon:t,width:n=20,sx:r,...l},o)=>e.createElement(g.Icon,{icon:t,style:{width:20,height:n??20,...r}})),M=l.styled(m)(({ownerState:e})=>{const t=l.useTheme(),n="light"===t.palette.mode,r="filled"===e.variant,o="outlined"===e.variant,i="soft"===e.variant,a={..."default"===e.color&&{...r&&{color:n?t.palette.common.white:t.palette.grey[800],backgroundColor:t.palette.text.primary},...o&&{backgroundColor:"transparent",color:t.palette.text.primary,border:`2px solid ${t.palette.text.primary}`},...i&&{color:t.palette.text.secondary,backgroundColor:l.alpha(t.palette.grey[500],.16)}}},d={..."default"!==e.color&&{...r&&{color:t.palette[e.color].contrastText,backgroundColor:t.palette[e.color].main},...o&&{backgroundColor:"transparent",color:t.palette[e.color].main,border:`2px solid ${t.palette[e.color].main}`},...i&&{color:t.palette[e.color][n?"dark":"light"],backgroundColor:l.alpha(t.palette[e.color].main,.16)}}};return{height:24,minWidth:24,lineHeight:0,borderRadius:6,cursor:"default",alignItems:"center",whiteSpace:"nowrap",display:"inline-flex",justifyContent:"center",textTransform:"capitalize",padding:t.spacing(0,.75),fontSize:t.typography.pxToRem(12),fontWeight:t.typography.fontWeightBold,transition:t.transitions.create("all",{duration:t.transitions.duration.shorter}),...a,...d}}),k=e.forwardRef(({children:t,color:n="default",variant:r="soft",startIcon:l,endIcon:o,sx:i,...a},d)=>{const s={width:16,height:16,"& svg, img":{width:1,height:1,objectFit:"cover"}};return e.createElement(M,{ref:d,ownerState:{color:n,variant:r},sx:{...l&&{pl:.75},...o&&{pr:.75},...i},...a},l&&e.createElement(m,{sx:{mr:.75,...s}}," ",l," "),t,o&&e.createElement(m,{sx:{ml:.75,...s}}," ",o," "))}),S="__row_group_by_columns_group__",F="__check__",I="__detail_panel_toggle__",P="__aggregation_footer__",N=new Set([F,I]),R={compact:.7,standard:1,comfortable:1.3},z=52,D=56,G=50,T=e=>N.has(e)||e===S,O=e=>null==e,A=e=>O(e)||""===e||Array.isArray(e)&&0===e.length,H=(e,t,n)=>Math.min(Math.max(e,t),n),L=(...e)=>e.filter(Boolean).join(" "),V=(()=>{let e=0;return(t="mgh")=>(e+=1,`${t}-${e}`)})(),B=()=>"undefined"!=typeof window&&void 0!==window.localStorage,U=e=>{if(!B())return null;try{const t=window.localStorage.getItem(e);return t?JSON.parse(t):null}catch{return null}},$=(e,t)=>{if(B())try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}},W=(e,t)=>t?t(e):e.id,q=(e,t)=>{if(!e)return{type:"include",ids:new Set};if(Array.isArray(e))return{type:"include",ids:new Set(e)};if(e instanceof Set)return{type:"include",ids:new Set(e)};if("exclude"===e.type&&t){const n=new Set;return t.forEach(t=>{e.ids.has(t)||n.add(t)}),{type:"include",ids:n}}return{type:"include",ids:new Set(e.ids)}},j=e=>{if(O(e)||""===e)return null;if(e instanceof Date)return Number.isNaN(e.getTime())?null:e;if(u.isDayjs(e))return e.isValid()?e.toDate():null;if("number"==typeof e){const t=new Date(e);return Number.isNaN(t.getTime())?null:t}if("string"==typeof e){const t=u(e);return t.isValid()?t.toDate():null}return null},_=(e,t)=>{const n=j(e);return n?u(n).format(t?"M/D/YYYY h:mm A":"M/D/YYYY"):""},K=(e,t)=>t?u(e).startOf("minute").valueOf():u(e).startOf("day").valueOf(),Q=e=>"object"==typeof e&&null!==e,X=(e,t)=>e.getOptionValue?e.getOptionValue(t):Q(t)?t.value:t,Y=(e,t)=>e.getOptionLabel?e.getOptionLabel(t):Q(t)?t.label:String(t),J=(e,t,n)=>e.valueOptions?"function"==typeof e.valueOptions?e.valueOptions({field:e.field,row:t,id:n}):e.valueOptions:[],Z=(e,t,n)=>{const r=e?e[t.field]:void 0;return t.valueGetter?t.valueGetter(r,e,t,n):r},ee=(e,t,n,r)=>{if(O(e))return"";switch(t.type){case"date":return _(e,!1);case"dateTime":return _(e,!0);case"boolean":return e?"Yes":"No";case"singleSelect":{const l=J(t,n,r).find(n=>X(t,n)===e);return void 0!==l?Y(t,l):String(e)}case"number":return"number"==typeof e?Number.isFinite(e)?String(e):"":String(e);default:if(e instanceof Date)return _(e,!0);if("object"==typeof e)try{return JSON.stringify(e)}catch{return String(e)}return String(e)}},te=(e,t,n,r,l)=>n.valueFormatter?n.valueFormatter(e,t,n,r):ee(e,n,t,l),ne=e=>O(e)?"":"string"==typeof e?e:"number"==typeof e||"boolean"==typeof e?String(e):e instanceof Date?_(e,!0):"object"==typeof e&&"props"in e?"":String(e),re="undefined"!=typeof Intl?new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"}):null,le=(e,t)=>{const n=O(e)||""===e,r=O(t)||""===t;return n&&r?0:n?-1:r?1:null},oe=(e,t)=>{const n=le(e,t);return null!==n?n:Number(e)-Number(t)},ie=(e,t)=>{const n=le(e,t);if(null!==n)return n;const r=String(e),l=String(t);return re?re.compare(r,l):r<l?-1:r>l?1:0},ae=(e,t,n,r)=>"number"==typeof e&&"number"==typeof t?oe(e,t):ie(e,t),de=(e,t)=>{const n=j(e),r=j(t),l=le(n,r);return null!==l?l:n.getTime()-r.getTime()},se=(e,t)=>{const n=le(e,t);return null!==n?n:Number(Boolean(e))-Number(Boolean(t))},ce=e=>{switch(e){case"number":return oe;case"date":case"dateTime":return de;case"boolean":return se;default:return ae}},ge=e=>O(e)?"":String(e).toLowerCase(),me=e=>!A(e.value),ue=[{value:"contains",label:"contains",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>-1!==ge(e).indexOf(t)}},{value:"doesNotContain",label:"does not contain",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>-1===ge(e).indexOf(t)}},{value:"equals",label:"equals",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>ge(e)===t}},{value:"doesNotEqual",label:"does not equal",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>ge(e)!==t}},{value:"startsWith",label:"starts with",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>0===ge(e).indexOf(t)}},{value:"endsWith",label:"ends with",inputType:"text",getApplyFilterFn:e=>{if(!me(e))return null;const t=ge(e.value);return e=>{const n=ge(e);return n.length>=t.length&&n.lastIndexOf(t)===n.length-t.length}}},{value:"isEmpty",label:"is empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>A(e)},{value:"isNotEmpty",label:"is not empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>!A(e)},{value:"isAnyOf",label:"is any of",inputType:"multiselect",getApplyFilterFn:e=>{if(!Array.isArray(e.value)||0===e.value.length)return null;const t=new Set(e.value.map(ge));return e=>t.has(ge(e))}}],pe=(e,t,n)=>({value:e,label:t,inputType:"number",getApplyFilterFn:e=>{if(!me(e))return null;const t=Number(e.value);return Number.isNaN(t)?null:e=>{if(O(e)||""===e)return!1;const r=Number(e);return!Number.isNaN(r)&&n(r,t)}}}),he=[pe("=","=",(e,t)=>e===t),pe("!=","!=",(e,t)=>e!==t),pe(">",">",(e,t)=>e>t),pe(">=",">=",(e,t)=>e>=t),pe("<","<",(e,t)=>e<t),pe("<=","<=",(e,t)=>e<=t),{value:"isEmpty",label:"is empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>A(e)},{value:"isNotEmpty",label:"is not empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>!A(e)},{value:"isAnyOf",label:"is any of",inputType:"multiselect",getApplyFilterFn:e=>{if(!Array.isArray(e.value)||0===e.value.length)return null;const t=new Set(e.value.map(e=>Number(e)));return e=>!O(e)&&t.has(Number(e))}}],fe=(e,t,n,r)=>({value:e,label:t,inputType:n?"datetime-local":"date",getApplyFilterFn:e=>{if(!me(e))return null;const t=j(e.value);if(!t)return null;const l=K(t,n);return e=>{const t=j(e);return!!t&&r(K(t,n),l)}}}),be=e=>[fe("is","is",e,(e,t)=>e===t),fe("not","is not",e,(e,t)=>e!==t),fe("after","is after",e,(e,t)=>e>t),fe("onOrAfter","is on or after",e,(e,t)=>e>=t),fe("before","is before",e,(e,t)=>e<t),fe("onOrBefore","is on or before",e,(e,t)=>e<=t),{value:"isEmpty",label:"is empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>null===j(e)},{value:"isNotEmpty",label:"is not empty",inputType:"none",requiresFilterValue:!1,getApplyFilterFn:()=>e=>null!==j(e)}],xe=[{value:"is",label:"is",inputType:"boolean",getApplyFilterFn:e=>{if(O(e.value)||""===e.value||"any"===e.value)return null;const t=!0===e.value||"true"===e.value;return e=>Boolean(e)===t}}],we=[{value:"is",label:"is",inputType:"select",getApplyFilterFn:e=>O(e.value)||""===e.value?null:t=>String(t)===String(e.value)},{value:"not",label:"is not",inputType:"select",getApplyFilterFn:e=>O(e.value)||""===e.value?null:t=>String(t)!==String(e.value)},{value:"isAnyOf",label:"is any of",inputType:"multiselect",getApplyFilterFn:e=>{if(!Array.isArray(e.value)||0===e.value.length)return null;const t=new Set(e.value.map(String));return e=>t.has(String(e))}}],ve=e=>e.filterOperators??(e=>{switch(e){case"number":return he;case"date":return be(!1);case"dateTime":return be(!0);case"boolean":return xe;case"singleSelect":return we;case"actions":return[];default:return ue}})(e.type),ye=e=>{const t=e.type??"string",n="number"===t,r="boolean"===t,l="actions"===t;return{...e,type:t,headerName:e.headerName??e.field,width:e.width??100,minWidth:e.minWidth??G,align:e.align??(n?"right":r||l?"center":"left"),headerAlign:e.headerAlign??e.align??(n?"right":r||l?"center":"left"),sortable:!l&&(e.sortable??!0),filterable:!l&&(e.filterable??!0),hideable:e.hideable??!0,resizable:e.resizable??!0,pinnable:e.pinnable??!0,groupable:!l&&(e.groupable??!0),aggregable:!l&&(e.aggregable??!0),editable:e.editable??!1,disableColumnMenu:e.disableColumnMenu??l,disableExport:e.disableExport??l}},Ee=e=>e.map(e=>"number"==typeof e?e:Number(e)).filter(e=>!Number.isNaN(e)&&null!==e),Ce={sum:{label:"sum",columnTypes:["number"],apply:({values:e})=>{const t=Ee(e.filter(e=>!O(e)&&""!==e));return 0===t.length?null:t.reduce((e,t)=>e+t,0)}},avg:{label:"avg",columnTypes:["number"],apply:({values:e})=>{const t=Ee(e.filter(e=>!O(e)&&""!==e));return 0===t.length?null:t.reduce((e,t)=>e+t,0)/t.length}},min:{label:"min",columnTypes:["number","date","dateTime"],apply:({values:e})=>{const t=e.filter(e=>!O(e)&&""!==e);if(0===t.length)return null;if(t.every(e=>"number"==typeof e))return Math.min(...t);const n=t.map(j);return n.every(e=>null!==e)?new Date(Math.min(...n.map(e=>e.getTime()))):t.slice().sort((e,t)=>ie(e,t))[0]}},max:{label:"max",columnTypes:["number","date","dateTime"],apply:({values:e})=>{const t=e.filter(e=>!O(e)&&""!==e);if(0===t.length)return null;if(t.every(e=>"number"==typeof e))return Math.max(...t);const n=t.map(j);if(n.every(e=>null!==e))return new Date(Math.max(...n.map(e=>e.getTime())));const r=t.slice().sort((e,t)=>ie(e,t));return r[r.length-1]}},size:{label:"size",apply:({values:e})=>e.length}},Me={noRowsLabel:"No rows",loadingLabel:"Loading…",toolbarColumns:"Columns",toolbarFilters:"Filters",toolbarExport:"Export",toolbarDensity:"Density",toolbarQuickFilterPlaceholder:"Search...",toolbarQuickFilterLabel:"Search",toolbarExportCSV:"Download as CSV",toolbarExportExcel:"Download as Excel",toolbarExportPrint:"Print",densityCompact:"Compact",densityStandard:"Standard",densityComfortable:"Comfortable",columnsPanelSearchPlaceholder:"Search",columnsPanelShowAll:"Show all",columnsPanelHideAll:"Hide all",columnsPanelReset:"Reset",filterPanelAddFilter:"Add filter",filterPanelRemoveAll:"Remove all",filterPanelDeleteIcon:"Delete",filterPanelColumns:"Columns",filterPanelOperator:"Operator",filterPanelValue:"Value",filterPanelInputPlaceholder:"Filter value",filterPanelLogicOperator:"Logic operator",filterPanelOperatorAnd:"And",filterPanelOperatorOr:"Or",columnMenuSortAsc:"Sort by ASC",columnMenuSortDesc:"Sort by DESC",columnMenuUnsort:"Unsort",columnMenuFilter:"Filter",columnMenuHideColumn:"Hide column",columnMenuManageColumns:"Manage columns",columnMenuPinLeft:"Pin to left",columnMenuPinRight:"Pin to right",columnMenuUnpin:"Unpin",columnMenuGroup:e=>`Group by ${e}`,columnMenuUngroup:e=>`Stop grouping by ${e}`,columnMenuAggregation:"Aggregation",aggregationMenuItemHeader:"Aggregation",aggregationFunctionLabelNone:"none",aggregationFunctionLabelSum:"sum",aggregationFunctionLabelAvg:"avg",aggregationFunctionLabelMin:"min",aggregationFunctionLabelMax:"max",aggregationFunctionLabelSize:"size",footerRowSelected:e=>1===e?"1 row selected":`${e.toLocaleString()} rows selected`,footerTotalRows:"Total Rows:",footerPaginationRowsPerPage:"Rows per page:",footerPaginationDisplayedRows:(e,t,n)=>`${e}–${t} of ${n.toLocaleString()}`,footerPaginationFirstPage:"First page",footerPaginationPreviousPage:"Previous page",footerPaginationNextPage:"Next page",footerPaginationLastPage:"Last page",checkboxSelectionHeaderName:"Checkbox selection",checkboxSelectionSelectAllRows:"Select all rows",checkboxSelectionUnselectAllRows:"Unselect all rows",checkboxSelectionSelectRow:"Select row",checkboxSelectionUnselectRow:"Unselect row",booleanCellTrueLabel:"yes",booleanCellFalseLabel:"no",detailPanelToggle:"Detail panel toggle",expandDetailPanel:"Expand",collapseDetailPanel:"Collapse",groupingColumnHeaderName:"Group",groupColumn:e=>`Group by ${e}`,unGroupColumn:e=>`Stop grouping by ${e}`,actionsCellMore:"more",columnHeaderSortIconLabel:"Sort",columnMenuLabel:"Menu",clearSearch:"Clear search"};let ke;const Se=(e,t)=>{if("undefined"==typeof document)return 8*e.length;if(void 0===ke){const e=document.createElement("canvas");ke=e.getContext("2d")}return ke?(ke.font=t,ke.measureText(e).width):8*e.length},Fe=(e,t)=>{if("undefined"==typeof document)return;const n=URL.createObjectURL(e),r=document.createElement("a");r.href=n,r.download=t,r.style.display="none",document.body.appendChild(r),r.click(),window.setTimeout(()=>{document.body.removeChild(r),URL.revokeObjectURL(n)},0)},Ie="mgh-grid-styles",Pe='\n.mgh-grid-card {\n --mgh-grid-font-family: inherit;\n --mgh-grid-font-size: 14px;\n --mgh-grid-radius: 16px;\n --mgh-grid-inner-radius: 4px;\n --mgh-grid-paper: #ffffff;\n --mgh-grid-bg: #ffffff;\n --mgh-grid-fg: rgba(0, 0, 0, 0.87);\n --mgh-grid-fg-secondary: rgba(0, 0, 0, 0.6);\n --mgh-grid-fg-disabled: rgba(0, 0, 0, 0.38);\n --mgh-grid-border: rgba(224, 224, 224, 1);\n --mgh-grid-header-bg: #ffffff;\n --mgh-grid-header-fg: rgba(0, 0, 0, 0.87);\n --mgh-grid-hover: rgba(0, 0, 0, 0.04);\n --mgh-grid-hover-strong: rgba(0, 0, 0, 0.08);\n --mgh-grid-selected: rgba(25, 118, 210, 0.08);\n --mgh-grid-selected-hover: rgba(25, 118, 210, 0.12);\n --mgh-grid-primary: #1976d2;\n --mgh-grid-primary-contrast: #ffffff;\n --mgh-grid-focus: #1976d2;\n --mgh-grid-shadow: 0 0 2px rgba(145, 158, 171, 0.2), 0 12px 24px -4px rgba(145, 158, 171, 0.12);\n --mgh-grid-popover-shadow: 0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12);\n --mgh-grid-overlay: rgba(255, 255, 255, 0.6);\n --mgh-grid-input-bg: transparent;\n --mgh-grid-input-border: rgba(0, 0, 0, 0.23);\n --mgh-grid-pinned-shadow: rgba(0, 0, 0, 0.12);\n --mgh-grid-group-bg: rgba(0, 0, 0, 0.02);\n --mgh-grid-footer-bg: rgba(0, 0, 0, 0.02);\n --mgh-grid-badge: #1976d2;\n --mgh-grid-scrollbar: rgba(0, 0, 0, 0.3);\n\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n background: var(--mgh-grid-paper);\n color: var(--mgh-grid-fg);\n border-radius: var(--mgh-grid-radius);\n box-shadow: var(--mgh-grid-shadow);\n font-family: var(--mgh-grid-font-family);\n font-size: var(--mgh-grid-font-size);\n line-height: 1.5;\n overflow: hidden;\n box-sizing: border-box;\n}\n.mgh-grid-card[data-mgh-theme="dark"] {\n --mgh-grid-paper: #212b36;\n --mgh-grid-bg: #212b36;\n --mgh-grid-fg: #ffffff;\n --mgh-grid-fg-secondary: rgba(255, 255, 255, 0.7);\n --mgh-grid-fg-disabled: rgba(255, 255, 255, 0.5);\n --mgh-grid-border: rgba(81, 81, 81, 1);\n --mgh-grid-header-bg: #212b36;\n --mgh-grid-header-fg: #ffffff;\n --mgh-grid-hover: rgba(255, 255, 255, 0.08);\n --mgh-grid-hover-strong: rgba(255, 255, 255, 0.16);\n --mgh-grid-selected: rgba(144, 202, 249, 0.16);\n --mgh-grid-selected-hover: rgba(144, 202, 249, 0.24);\n --mgh-grid-primary: #90caf9;\n --mgh-grid-primary-contrast: rgba(0, 0, 0, 0.87);\n --mgh-grid-focus: #90caf9;\n --mgh-grid-shadow: 0 0 2px rgba(0, 0, 0, 0.2), 0 12px 24px -4px rgba(0, 0, 0, 0.12);\n --mgh-grid-overlay: rgba(33, 43, 54, 0.6);\n --mgh-grid-input-border: rgba(255, 255, 255, 0.23);\n --mgh-grid-pinned-shadow: rgba(0, 0, 0, 0.5);\n --mgh-grid-group-bg: rgba(255, 255, 255, 0.03);\n --mgh-grid-footer-bg: rgba(255, 255, 255, 0.03);\n --mgh-grid-badge: #90caf9;\n --mgh-grid-scrollbar: rgba(255, 255, 255, 0.3);\n}\n/* Only our own elements get the border-box reset. A blanket descendant reset would leak into\n consumer content rendered through slots (e.g. MUI TextField inputs rely on content-box). */\n[class*="mgh-grid"], [class*="mgh-grid"]::before, [class*="mgh-grid"]::after { box-sizing: border-box; }\n.mgh-grid-card--plain { box-shadow: none; border-radius: 0; background: transparent; }\n\n/* ---- card header ---- */\n/* Title stays on its row; only the end-content group wraps internally (like the legacy MUI card). */\n.mgh-grid-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 16px 16px 16px 0; flex-wrap: nowrap; }\n.mgh-grid-card-title { flex: 0 0 auto; padding: 8px 24px; margin: 0; font-size: 1.125rem; font-weight: 700; line-height: 1.5556; }\n.mgh-grid-card-header-center { flex: 0 1 auto; min-width: 0; display: flex; align-items: center; }\n.mgh-grid-card-header-end { flex: 1 1 auto; min-width: 0; margin-left: auto; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; justify-content: flex-end; }\n@media (max-width: 599.95px) {\n .mgh-grid-card-header { flex-wrap: wrap; }\n .mgh-grid-card-header-end { gap: 8px; }\n}\n\n/* ---- box + root ---- */\n.mgh-grid-box { display: flex; flex-direction: column; flex-grow: 1; min-height: 0; min-width: 0; }\n.mgh-grid {\n position: relative;\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n min-width: 0;\n border: 1px solid var(--mgh-grid-border);\n border-radius: var(--mgh-grid-inner-radius);\n background: var(--mgh-grid-bg);\n color: var(--mgh-grid-fg);\n outline: none;\n}\n.mgh-grid--auto-height { flex: 0 0 auto; }\n\n/* ---- toolbar ---- */\n.mgh-grid-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 45px; padding: 4px 8px; border-bottom: 1px solid var(--mgh-grid-border); flex-wrap: wrap; }\n.mgh-grid-toolbar-group { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }\n.mgh-grid-toolbar-center { display: flex; align-items: center; flex: 1 1 auto; justify-content: center; }\n\n/* ---- buttons ---- */\n.mgh-grid-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 0; margin: 0; background: transparent; color: var(--mgh-grid-fg-secondary); font: inherit; font-size: 0.8125rem; font-weight: 500; line-height: 1.75; letter-spacing: .02em; padding: 4px 8px; border-radius: 4px; cursor: pointer; user-select: none; transition: background-color .15s, color .15s; text-transform: none; white-space: nowrap; }\n.mgh-grid-btn:hover { background: var(--mgh-grid-hover); color: var(--mgh-grid-fg); }\n.mgh-grid-btn:focus-visible { outline: 2px solid var(--mgh-grid-focus); outline-offset: 1px; }\n.mgh-grid-btn:disabled { color: var(--mgh-grid-fg-disabled); cursor: default; background: transparent; }\n.mgh-grid-btn--icon { padding: 6px; border-radius: 50%; width: 32px; height: 32px; }\n.mgh-grid-btn--icon.mgh-grid-btn--small { width: 26px; height: 26px; padding: 3px; }\n.mgh-grid-btn--icon.mgh-grid-btn--small .mgh-grid-icon { width: 18px; height: 18px; }\n.mgh-grid-btn--primary { color: var(--mgh-grid-primary); }\n.mgh-grid-btn--primary:hover { background: var(--mgh-grid-selected); color: var(--mgh-grid-primary); }\n.mgh-grid-btn--contained { background: var(--mgh-grid-primary); color: var(--mgh-grid-primary-contrast); }\n.mgh-grid-btn--contained:hover { background: var(--mgh-grid-primary); color: var(--mgh-grid-primary-contrast); filter: brightness(0.92); }\n.mgh-grid-btn--active { color: var(--mgh-grid-primary); }\n\n/* ---- badge ---- */\n.mgh-grid-badge { position: relative; display: inline-flex; }\n.mgh-grid-badge-dot { position: absolute; top: 0; right: 0; min-width: 8px; height: 8px; border-radius: 4px; background: var(--mgh-grid-badge); transform: translate(50%, -50%); }\n.mgh-grid-badge-count { position: absolute; top: 0; right: 0; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--mgh-grid-badge); color: var(--mgh-grid-primary-contrast); font-size: 10px; font-weight: 600; line-height: 16px; text-align: center; transform: translate(50%, -50%); }\n\n/* ---- inputs ---- */\n.mgh-grid-input, .mgh-grid-select { font: inherit; font-size: 0.875rem; color: var(--mgh-grid-fg); background: var(--mgh-grid-input-bg); border: 1px solid var(--mgh-grid-input-border); border-radius: 6px; padding: 6px 10px; height: 36px; min-width: 0; outline: none; transition: border-color .15s, box-shadow .15s; }\n.mgh-grid-input:hover, .mgh-grid-select:hover { border-color: var(--mgh-grid-fg); }\n.mgh-grid-input:focus, .mgh-grid-select:focus { border-color: var(--mgh-grid-focus); box-shadow: 0 0 0 1px var(--mgh-grid-focus); }\n.mgh-grid-input::placeholder { color: var(--mgh-grid-fg-disabled); }\n.mgh-grid-input--small, .mgh-grid-select--small { height: 32px; padding: 4px 8px; font-size: 0.8125rem; }\n.mgh-grid-select { appearance: none; -webkit-appearance: none; padding-right: 28px; background-image: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\' fill=\'%23888\'><path d=\'M7 10l5 5 5-5z\'/></svg>"); background-repeat: no-repeat; background-position: right 6px center; background-size: 18px; cursor: pointer; }\n.mgh-grid-select option { color: initial; background: initial; }\n.mgh-grid-card[data-mgh-theme="dark"] .mgh-grid-select option, .mgh-grid-popover[data-mgh-theme="dark"] .mgh-grid-select option { color: #fff; background: #212b36; }\n.mgh-grid-select[multiple] { height: auto; min-height: 36px; background-image: none; padding-right: 10px; }\n.mgh-grid-field { display: flex; flex-direction: column; gap: 4px; min-width: 0; }\n.mgh-grid-field-label { font-size: 0.75rem; color: var(--mgh-grid-fg-secondary); }\n.mgh-grid-input-adorned { position: relative; display: flex; align-items: center; }\n.mgh-grid-input-adorned .mgh-grid-input { width: 100%; padding-left: 34px; }\n.mgh-grid-input-adorned--clearable .mgh-grid-input { padding-right: 34px; }\n.mgh-grid-input-adornment { position: absolute; left: 10px; display: inline-flex; color: var(--mgh-grid-fg-secondary); pointer-events: none; }\n.mgh-grid-input-adornment--end { left: auto; right: 4px; pointer-events: auto; }\n\n/* ---- checkbox ---- */\n.mgh-grid-checkbox { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin: 0; border: 2px solid var(--mgh-grid-fg-secondary); border-radius: 3px; background: transparent; cursor: pointer; display: inline-grid; place-content: center; position: relative; flex: 0 0 auto; transition: background-color .12s, border-color .12s; }\n.mgh-grid-checkbox:hover { border-color: var(--mgh-grid-fg); }\n.mgh-grid-checkbox:focus-visible { outline: 2px solid var(--mgh-grid-focus); outline-offset: 2px; }\n.mgh-grid-checkbox:checked, .mgh-grid-checkbox:indeterminate { background: var(--mgh-grid-primary); border-color: var(--mgh-grid-primary); }\n.mgh-grid-checkbox:checked::after { content: ""; width: 5px; height: 10px; border: solid var(--mgh-grid-primary-contrast); border-width: 0 2px 2px 0; transform: translateY(-1px) rotate(45deg); }\n.mgh-grid-checkbox:indeterminate::after { content: ""; width: 10px; height: 2px; background: var(--mgh-grid-primary-contrast); }\n.mgh-grid-checkbox:disabled { opacity: 0.4; cursor: default; }\n.mgh-grid-checkbox-label { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-size: 0.875rem; padding: 6px 4px; border-radius: 4px; }\n.mgh-grid-checkbox-label:hover { background: var(--mgh-grid-hover); }\n\n/* ---- quick filter ---- */\n.mgh-grid-quick-filter { display: grid; align-items: center; }\n.mgh-grid-quick-filter-trigger { grid-area: 1 / 1; z-index: 1; transition: opacity .2s; }\n.mgh-grid-quick-filter--expanded .mgh-grid-quick-filter-trigger { opacity: 0; pointer-events: none; }\n.mgh-grid-quick-filter-control { grid-area: 1 / 1; width: 32px; opacity: 0; overflow: hidden; transition: width .2s, opacity .2s; }\n.mgh-grid-quick-filter--expanded .mgh-grid-quick-filter-control { width: 260px; opacity: 1; }\n@media (max-width: 599.95px) { .mgh-grid-quick-filter--expanded .mgh-grid-quick-filter-control { width: 180px; } }\n\n/* ---- main / scroller ---- */\n.mgh-grid-main { position: relative; display: flex; flex: 1 1 auto; min-height: 0; min-width: 0; overflow: hidden; }\n.mgh-grid--auto-height .mgh-grid-main { flex: 0 0 auto; }\n.mgh-grid-scroller { position: relative; flex: 1 1 auto; min-height: 0; min-width: 0; overflow: auto; outline: none; scrollbar-width: thin; }\n.mgh-grid--auto-height .mgh-grid-scroller { overflow-y: hidden; }\n.mgh-grid-scroller::-webkit-scrollbar { width: 10px; height: 10px; }\n.mgh-grid-scroller::-webkit-scrollbar-thumb { background: var(--mgh-grid-scrollbar); border-radius: 5px; border: 2px solid transparent; background-clip: content-box; }\n\n/* ---- column headers ---- */\n.mgh-grid-columns { position: sticky; top: 0; z-index: 3; background: var(--mgh-grid-header-bg); border-bottom: 1px solid var(--mgh-grid-border); min-width: 100%; width: max-content; }\n.mgh-grid-header-row { display: flex; min-width: 100%; }\n.mgh-grid-header-cell { position: relative; display: flex; align-items: center; flex: 0 0 auto; height: var(--mgh-grid-header-height); padding: 0 10px; font-weight: 600; font-size: 0.875rem; color: var(--mgh-grid-header-fg); background: var(--mgh-grid-header-bg); white-space: nowrap; overflow: hidden; user-select: none; outline: none; }\n.mgh-grid-header-cell--sortable { cursor: pointer; }\n.mgh-grid-header-cell:focus-visible { outline: 2px solid var(--mgh-grid-focus); outline-offset: -2px; }\n.mgh-grid-header-cell--align-center { justify-content: center; }\n.mgh-grid-header-cell--align-right { justify-content: flex-end; }\n.mgh-grid-header-cell--align-right .mgh-grid-header-title-container { flex-direction: row-reverse; }\n.mgh-grid-header-title-container { display: flex; align-items: center; gap: 2px; min-width: 0; flex: 1 1 auto; overflow: hidden; }\n.mgh-grid-header-cell--align-center .mgh-grid-header-title-container { flex: 0 1 auto; }\n.mgh-grid-header-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.mgh-grid-sort-icon { display: inline-flex; align-items: center; color: var(--mgh-grid-fg-secondary); opacity: 0; transition: opacity .15s; flex: 0 0 auto; }\n.mgh-grid-header-cell:hover .mgh-grid-sort-icon, .mgh-grid-sort-icon--active { opacity: 1; }\n.mgh-grid-sort-index { font-size: 10px; margin-left: -2px; color: var(--mgh-grid-fg-secondary); }\n.mgh-grid-header-menu-btn { position: absolute; right: 2px; opacity: 0; transition: opacity .15s; background: var(--mgh-grid-header-bg); }\n.mgh-grid-header-cell--align-right .mgh-grid-header-menu-btn { right: auto; left: 2px; }\n.mgh-grid-header-cell:hover .mgh-grid-header-menu-btn, .mgh-grid-header-menu-btn--open, .mgh-grid-header-cell:focus-within .mgh-grid-header-menu-btn { opacity: 1; }\n.mgh-grid-header-cell--menu-open { background: var(--mgh-grid-hover); }\n.mgh-grid-resize-handle { position: absolute; top: 0; right: -4px; width: 9px; height: 100%; cursor: col-resize; z-index: 2; display: flex; justify-content: center; touch-action: none; }\n.mgh-grid-resize-handle::after { content: ""; width: 1px; height: 60%; margin-top: 20%; background: var(--mgh-grid-border); transition: background .15s, width .15s; }\n.mgh-grid-resize-handle:hover::after, .mgh-grid-resize-handle--active::after { background: var(--mgh-grid-primary); width: 2px; }\n.mgh-grid-header-cell--last .mgh-grid-resize-handle { right: 0; }\n.mgh-grid-header-cell--dragging { opacity: 0.5; }\n.mgh-grid-header-cell--drop-left::before, .mgh-grid-header-cell--drop-right::before { content: ""; position: absolute; top: 4px; bottom: 4px; width: 2px; background: var(--mgh-grid-primary); z-index: 3; }\n.mgh-grid-header-cell--drop-left::before { left: 0; }\n.mgh-grid-header-cell--drop-right::before { right: 0; }\n.mgh-grid-header-filler { flex: 1 1 auto; background: var(--mgh-grid-header-bg); }\n\n/* ---- pinned cells ---- */\n.mgh-grid-cell--pinned-left, .mgh-grid-header-cell--pinned-left { position: sticky; z-index: 2; background-color: var(--mgh-grid-bg); }\n.mgh-grid-cell--pinned-right, .mgh-grid-header-cell--pinned-right { position: sticky; z-index: 2; background-color: var(--mgh-grid-bg); }\n.mgh-grid-header-cell--pinned-left, .mgh-grid-header-cell--pinned-right { z-index: 4; background-color: var(--mgh-grid-header-bg); }\n.mgh-grid-cell--pinned-left-last, .mgh-grid-header-cell--pinned-left-last { box-shadow: 2px 0 4px -2px var(--mgh-grid-pinned-shadow); }\n.mgh-grid-cell--pinned-right-first, .mgh-grid-header-cell--pinned-right-first { box-shadow: -2px 0 4px -2px var(--mgh-grid-pinned-shadow); }\n.mgh-grid--no-pinned-shadow .mgh-grid-cell--pinned-left-last, .mgh-grid--no-pinned-shadow .mgh-grid-header-cell--pinned-left-last { box-shadow: none; }\n\n/* ---- body & rows ---- */\n.mgh-grid-body { position: relative; min-width: 100%; width: max-content; }\n.mgh-grid-body--flow { display: flex; flex-direction: column; }\n.mgh-grid-row-block { min-width: 100%; }\n.mgh-grid-body--virtual .mgh-grid-row-block { position: absolute; left: 0; }\n.mgh-grid-row { display: flex; min-width: 100%; border-bottom: 1px solid var(--mgh-grid-border); background: var(--mgh-grid-bg); position: relative; }\n.mgh-grid-row--auto-height { align-items: stretch; }\n.mgh-grid-row:hover { background: var(--mgh-grid-hover); }\n.mgh-grid-row--selected { background: var(--mgh-grid-selected); }\n.mgh-grid-row--selected:hover { background: var(--mgh-grid-selected-hover); }\n.mgh-grid-row--clickable { cursor: pointer; }\n.mgh-grid-row--group { background: var(--mgh-grid-group-bg); }\n.mgh-grid-row--pinned { background: var(--mgh-grid-bg); }\n.mgh-grid-row--footer { background: var(--mgh-grid-footer-bg); font-weight: 600; }\n.mgh-grid-row:hover .mgh-grid-cell--pinned-left, .mgh-grid-row:hover .mgh-grid-cell--pinned-right { background-image: linear-gradient(var(--mgh-grid-hover), var(--mgh-grid-hover)); }\n.mgh-grid-row--selected .mgh-grid-cell--pinned-left, .mgh-grid-row--selected .mgh-grid-cell--pinned-right { background-image: linear-gradient(var(--mgh-grid-selected), var(--mgh-grid-selected)); }\n.mgh-grid-row--selected:hover .mgh-grid-cell--pinned-left, .mgh-grid-row--selected:hover .mgh-grid-cell--pinned-right { background-image: linear-gradient(var(--mgh-grid-selected-hover), var(--mgh-grid-selected-hover)); }\n.mgh-grid-row--group .mgh-grid-cell--pinned-left, .mgh-grid-row--group .mgh-grid-cell--pinned-right { background-image: linear-gradient(var(--mgh-grid-group-bg), var(--mgh-grid-group-bg)); }\n.mgh-grid-row--footer .mgh-grid-cell--pinned-left, .mgh-grid-row--footer .mgh-grid-cell--pinned-right { background-image: linear-gradient(var(--mgh-grid-footer-bg), var(--mgh-grid-footer-bg)); }\n.mgh-grid-row-filler { flex: 1 1 auto; }\n\n.mgh-grid-cell { display: flex; align-items: center; flex: 0 0 auto; padding: 0 10px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 0.875rem; outline: none; min-height: 100%; }\n.mgh-grid-cell > .mgh-grid-cell-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }\n.mgh-grid-row--auto-height .mgh-grid-cell { white-space: normal; align-items: flex-start; padding-top: 8px; padding-bottom: 8px; }\n.mgh-grid-row--auto-height .mgh-grid-cell > .mgh-grid-cell-text { white-space: normal; word-break: break-word; }\n.mgh-grid-cell--align-center { justify-content: center; }\n.mgh-grid-cell--align-right { justify-content: flex-end; }\n.mgh-grid-cell--focused { outline: 1px solid var(--mgh-grid-focus); outline-offset: -1px; }\n.mgh-grid-cell--editable { cursor: text; }\n.mgh-grid-cell--editing { padding: 0 4px; outline: 2px solid var(--mgh-grid-focus); outline-offset: -2px; background: var(--mgh-grid-bg); }\n.mgh-grid-cell--editing .mgh-grid-input, .mgh-grid-cell--editing .mgh-grid-select { width: 100%; height: calc(100% - 6px); border: 0; box-shadow: none; padding: 0 6px; background: transparent; }\n.mgh-grid-cell--checkbox, .mgh-grid-header-cell--checkbox, .mgh-grid-cell--detail-toggle, .mgh-grid-header-cell--detail-toggle { justify-content: center; padding: 0; }\n.mgh-grid-cell--boolean .mgh-grid-icon { color: var(--mgh-grid-fg-secondary); }\n.mgh-grid-cell--actions { gap: 2px; justify-content: center; }\n.mgh-grid-cell--aggregation { flex-direction: column; align-items: stretch; justify-content: center; line-height: 1.2; }\n.mgh-grid-cell--aggregation.mgh-grid-cell--align-right { align-items: flex-end; }\n.mgh-grid-cell--aggregation.mgh-grid-cell--align-center { align-items: center; }\n.mgh-grid-aggregation-label { font-size: 0.65rem; font-weight: 500; text-transform: uppercase; color: var(--mgh-grid-fg-secondary); letter-spacing: .04em; }\n.mgh-grid-group-cell { display: flex; align-items: center; gap: 4px; min-width: 0; }\n.mgh-grid-group-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }\n.mgh-grid-group-count { color: var(--mgh-grid-fg-secondary); margin-left: 2px; }\n.mgh-grid-group-toggle { flex: 0 0 auto; }\n.mgh-grid-group-toggle .mgh-grid-icon { transition: transform .15s; }\n.mgh-grid-group-toggle--expanded .mgh-grid-icon { transform: rotate(90deg); }\n.mgh-grid-detail-toggle .mgh-grid-icon { transition: transform .15s; }\n.mgh-grid-detail-toggle--expanded .mgh-grid-icon { transform: rotate(180deg); }\n\n/* ---- pinned rows ---- */\n.mgh-grid-pinned-rows { position: sticky; z-index: 2; min-width: 100%; width: max-content; background: var(--mgh-grid-bg); }\n.mgh-grid-pinned-rows--top { box-shadow: 0 2px 4px -2px var(--mgh-grid-pinned-shadow); }\n.mgh-grid-pinned-rows--bottom { bottom: 0; box-shadow: 0 -2px 4px -2px var(--mgh-grid-pinned-shadow); }\n.mgh-grid-pinned-rows--bottom .mgh-grid-row { border-bottom: 0; border-top: 1px solid var(--mgh-grid-border); }\n\n/* ---- detail panel ---- */\n.mgh-grid-detail-panel { position: sticky; left: 0; overflow: auto; border-bottom: 1px solid var(--mgh-grid-border); background: var(--mgh-grid-bg); z-index: 1; }\n\n/* ---- overlays ---- */\n.mgh-grid-overlay { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 8px; z-index: 5; color: var(--mgh-grid-fg-secondary); font-size: 0.875rem; pointer-events: none; }\n.mgh-grid-overlay--loading { background: var(--mgh-grid-overlay); pointer-events: auto; }\n.mgh-grid-no-rows { display: flex; align-items: center; justify-content: center; gap: 8px; height: 100%; text-align: center; padding: 16px; }\n.mgh-grid-no-rows img, .mgh-grid-no-rows .mgh-grid-icon { width: 50px; height: 50px; color: var(--mgh-grid-fg-disabled); }\n.mgh-grid-spinner { width: 36px; height: 36px; border-radius: 50%; border: 3px solid var(--mgh-grid-selected); border-top-color: var(--mgh-grid-primary); animation: mgh-grid-spin .8s linear infinite; }\n@keyframes mgh-grid-spin { to { transform: rotate(360deg); } }\n\n/* ---- footer ---- */\n.mgh-grid-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 52px; padding: 0 8px 0 16px; border-top: 1px solid var(--mgh-grid-border); font-size: 0.875rem; color: var(--mgh-grid-fg-secondary); flex-wrap: wrap; }\n.mgh-grid-footer-left { display: flex; align-items: center; gap: 16px; }\n.mgh-grid-pagination { display: flex; align-items: center; gap: 8px; margin-left: auto; flex-wrap: wrap; }\n.mgh-grid-pagination-select { height: 32px; padding: 2px 24px 2px 8px; font-size: 0.875rem; border-color: transparent; }\n.mgh-grid-pagination-select:hover { border-color: transparent; background-color: var(--mgh-grid-hover); }\n.mgh-grid-pagination-actions { display: inline-flex; align-items: center; }\n\n/* ---- popover / menu / panels ---- */\n.mgh-grid-popover {\n --mgh-grid-font-family: inherit; --mgh-grid-font-size: 14px; --mgh-grid-paper: #ffffff; --mgh-grid-bg: #fff; --mgh-grid-fg: rgba(0,0,0,.87); --mgh-grid-fg-secondary: rgba(0,0,0,.6); --mgh-grid-fg-disabled: rgba(0,0,0,.38); --mgh-grid-border: rgba(224,224,224,1); --mgh-grid-hover: rgba(0,0,0,.04); --mgh-grid-selected: rgba(25,118,210,.08); --mgh-grid-primary: #1976d2; --mgh-grid-primary-contrast: #fff; --mgh-grid-focus: #1976d2; --mgh-grid-input-bg: transparent; --mgh-grid-input-border: rgba(0,0,0,.23); --mgh-grid-popover-shadow: 0 5px 5px -3px rgba(0,0,0,.2), 0 8px 10px 1px rgba(0,0,0,.14), 0 3px 14px 2px rgba(0,0,0,.12);\n position: fixed; z-index: 1300; background: var(--mgh-grid-paper); color: var(--mgh-grid-fg); border-radius: 8px; box-shadow: var(--mgh-grid-popover-shadow); font-family: var(--mgh-grid-font-family); font-size: var(--mgh-grid-font-size); line-height: 1.5; outline: none; max-height: calc(100vh - 16px); overflow: auto; animation: mgh-grid-pop .12s ease-out;\n}\n.mgh-grid-popover[data-mgh-theme="dark"] { --mgh-grid-paper: #212b36; --mgh-grid-bg: #212b36; --mgh-grid-fg: #fff; --mgh-grid-fg-secondary: rgba(255,255,255,.7); --mgh-grid-fg-disabled: rgba(255,255,255,.5); --mgh-grid-border: rgba(81,81,81,1); --mgh-grid-hover: rgba(255,255,255,.08); --mgh-grid-selected: rgba(144,202,249,.16); --mgh-grid-primary: #90caf9; --mgh-grid-primary-contrast: rgba(0,0,0,.87); --mgh-grid-focus: #90caf9; --mgh-grid-input-border: rgba(255,255,255,.23); }\n@keyframes mgh-grid-pop { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }\n.mgh-grid-menu { list-style: none; margin: 0; padding: 6px 0; min-width: 180px; }\n.mgh-grid-menu-item { display: flex; align-items: center; gap: 12px; padding: 6px 16px; min-height: 36px; font-size: 0.875rem; cursor: pointer; white-space: nowrap; color: var(--mgh-grid-fg); background: transparent; border: 0; width: 100%; text-align: left; font-family: inherit; outline: none; }\n.mgh-grid-menu-item:hover, .mgh-grid-menu-item:focus-visible { background: var(--mgh-grid-hover); }\n.mgh-grid-menu-item--disabled { color: var(--mgh-grid-fg-disabled); cursor: default; pointer-events: none; }\n.mgh-grid-menu-item--selected { background: var(--mgh-grid-selected); }\n.mgh-grid-menu-item .mgh-grid-icon { color: var(--mgh-grid-fg-secondary); flex: 0 0 auto; }\n.mgh-grid-menu-divider { height: 1px; margin: 6px 0; background: var(--mgh-grid-border); border: 0; }\n.mgh-grid-menu-header { padding: 6px 16px 2px; font-size: 0.75rem; color: var(--mgh-grid-fg-secondary); text-transform: uppercase; letter-spacing: .04em; }\n.mgh-grid-menu-section { padding: 4px 16px 8px; display: flex; flex-direction: column; gap: 4px; }\n.mgh-grid-panel { display: flex; flex-direction: column; min-width: 300px; max-width: min(640px, calc(100vw - 16px)); }\n.mgh-grid-panel-header { padding: 12px 12px 4px; }\n.mgh-grid-panel-content { padding: 4px 12px; overflow: auto; max-height: 360px; }\n.mgh-grid-panel-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px; }\n.mgh-grid-columns-list { display: flex; flex-direction: column; }\n.mgh-grid-filter-row { display: grid; grid-template-columns: 32px minmax(120px, 1fr) minmax(120px, 1fr) minmax(140px, 1.3fr); gap: 8px; align-items: end; margin-bottom: 8px; }\n.mgh-grid-filter-row--first { grid-template-columns: 32px minmax(120px, 1fr) minmax(120px, 1fr) minmax(140px, 1.3fr); }\n.mgh-grid-filter-row--with-logic { grid-template-columns: 32px 80px minmax(120px, 1fr) minmax(120px, 1fr) minmax(140px, 1.3fr); }\n.mgh-grid-filter-row .mgh-grid-btn--icon { margin-bottom: 4px; }\n.mgh-grid-filter-empty { padding: 8px 4px; color: var(--mgh-grid-fg-secondary); font-size: 0.875rem; }\n@media (max-width: 599.95px) { .mgh-grid-filter-row, .mgh-grid-filter-row--with-logic { grid-template-columns: 1fr; } }\n\n/* ---- misc ---- */\n.mgh-grid-tooltip-anchor { display: inline-flex; }\n.mgh-grid-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; }\n@media print { .mgh-grid-toolbar, .mgh-grid-footer { display: none !important; } }\n';let Ne=!1;const Re=e.useInsertionEffect??("undefined"!=typeof window?e.useLayoutEffect:e.useEffect),ze=()=>{Re(()=>{(()=>{if(Ne||"undefined"==typeof document)return;if(document.getElementById(Ie))return void(Ne=!0);const e=document.createElement("style");e.id=Ie,e.setAttribute("data-mgh-grid","true"),e.textContent=Pe,document.head.appendChild(e),Ne=!0})()},[])},De=e.createContext(null);De.displayName="MGHGridContext";const Ge=()=>{const t=e.useContext(De);if(!t)throw new Error("MGHGrid: this component must be rendered inside an <MGHGrid /> (e.g. through a slot).");return t};function Te(t){const n=e.useRef(t);return n.current=t,n}function Oe(t,n,r){const l=void 0!==t,[o,i]=e.useState(n),a=l?t:o,d=Te(a),s=Te(l),c=Te(r);return[a,e.useCallback(e=>{const t="function"==typeof e?e(d.current):e;Object.is(t,d.current)||(d.current=t,s.current||i(t),c.current?.(t))},[])]}let Ae=0;const He=(e,t)=>{const n=((e,t)=>{const n=e.getAllColumns();let r;if(t.fields){const e=new Map;n.forEach(t=>e.set(t.field,t)),r=t.fields.map(t=>e.get(t)).filter(Boolean)}else r=t.allColumns?n:e.getVisibleColumns();return r.filter(e=>!e.disableExport&&!T(e.field)&&"actions"!==e.type)})(e,t),r=t.getRowsToExport?t.getRowsToExport({api:e}):e.getSortedRowIds(),l=[];return r.forEach(t=>{const r=e.getRow(t);r&&l.push(n.map(n=>{const l=Z(r,n,e);return{raw:l,formatted:ne(te(l,r,n,e,t)),col:n}}))}),{columns:n,headers:n.map(e=>e.headerName??e.field),rows:l}},Le=(e,t,n)=>{const r=e&&e.trim()||t;return r.toLowerCase().endsWith(`.${n}`)?r:`${r}.${n}`},Ve=()=>(("undefined"!=typeof document&&document.title?document.title.trim():"")||"export").replace(/[\\/:*?"<>|]+/g,"-"),Be=(e,t)=>{let n=e;return/^[=+\-@\t\r]/.test(n)&&(n=`'${n}`),-1!==n.indexOf('"')||-1!==n.indexOf(t)||/[\r\n]/.test(n)?`"${n.replace(/"/g,'""')}"`:n},Ue=(e,t={})=>{const n=t.delimiter??",",r=t.includeHeaders??!0,l=He(e,t),o=[];return r&&o.push(l.headers.map(e=>Be(e,n)).join(n)),l.rows.forEach(e=>{o.push(e.map(e=>{const r=t.useRawValues?O(e.raw)?"":String(e.raw):e.formatted;return Be(r,n)}).join(n))}),o.join("\r\n")},$e=String.fromCharCode(65279),We=(()=>{const e=new Uint32Array(256);for(let t=0;t<256;t+=1){let n=t;for(let e=0;e<8;e+=1)n=1&n?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})(),qe="undefined"!=typeof TextEncoder?new TextEncoder:null,je=e=>{if(qe)return qe.encode(e);const t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n},_e=e=>{const t=e.reduce((e,t)=>e+t.length,0),n=new Uint8Array(t);let r=0;return e.forEach(e=>{n.set(e,r),r+=e.length}),n},Ke=e=>{const t=[],n=[];let r=0;e.forEach(e=>{const l=je(e.name),o=(e=>{let t=4294967295;for(let n=0;n<e.length;n+=1)t=We[255&(t^e[n])]^t>>>8;return(4294967295^t)>>>0})(e.data),i=e.data.length,a=new Uint8Array(30+l.length),d=new DataView(a.buffer);d.setUint32(0,67324752,!0),d.setUint16(4,20,!0),d.setUint16(6,2048,!0),d.setUint16(8,0,!0),d.setUint16(10,0,!0),d.setUint16(12,33,!0),d.setUint32(14,o,!0),d.setUint32(18,i,!0),d.setUint32(22,i,!0),d.setUint16(26,l.length,!0),d.setUint16(28,0,!0),a.set(l,30);const s=new Uint8Array(46+l.length),c=new DataView(s.buffer);c.setUint32(0,33639248,!0),c.setUint16(4,20,!0),c.setUint16(6,20,!0),c.setUint16(8,2048,!0),c.setUint16(10,0,!0),c.setUint16(12,0,!0),c.setUint16(14,33,!0),c.setUint32(16,o,!0),c.setUint32(20,i,!0),c.setUint32(24,i,!0),c.setUint16(28,l.length,!0),c.setUint16(30,0,!0),c.setUint16(32,0,!0),c.setUint16(34,0,!0),c.setUint16(36,0,!0),c.setUint32(38,0,!0),c.setUint32(42,r,!0),s.set(l,46),t.push(a,e.data),n.push(s),r+=a.length+i});const l=_e(n),o=new Uint8Array(22),i=new DataView(o.buffer);return i.setUint32(0,101010256,!0),i.setUint16(4,0,!0),i.setUint16(6,0,!0),i.setUint16(8,e.length,!0),i.setUint16(10,e.length,!0),i.setUint32(12,l.length,!0),i.setUint32(16,r,!0),i.setUint16(20,0,!0),_e(t.concat([l,o]))},Qe=new RegExp("["+String.fromCharCode(0)+"-"+String.fromCharCode(8)+String.fromCharCode(11)+String.fromCharCode(12)+String.fromCharCode(14)+"-"+String.fromCharCode(31)+String.fromCharCode(65534)+String.fromCharCode(65535)+"]","g"),Xe=e=>(e=>e.replace(Qe,""))(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),Ye=e=>{let t=e+1,n="";for(;t>0;){const e=(t-1)%26;n=String.fromCharCode(65+e)+n,t=Math.floor((t-1)/26)}return n},Je='<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n',Ze=(e,t,n)=>{const r=[];let l=1;const o=(e,t,n)=>`<c r="${e}" t="inlineStr"${n?` s="${n}"`:""}><is><t xml:space="preserve">${Xe(t)}</t></is></c>`;if(t){const t=e.headers.map((e,t)=>o(`${Ye(t)}${l}`,e,1)).join("");r.push(`<row r="${l}">${t}</row>`),l+=1}e.rows.forEach(e=>{const t=e.map((e,t)=>{const n=`${Ye(t)}${l}`,r=e.col.type;if(O(e.raw)||""===e.raw)return"";if("number"===r&&"number"==typeof e.raw&&Number.isFinite(e.raw))return`<c r="${n}"><v>${e.raw}</v></c>`;if("boolean"===r)return`<c r="${n}" t="b"><v>${e.raw?1:0}</v></c>`;if(("date"===r||"dateTime"===r)&&j(e.raw)){const t=j(e.raw);return`<c r="${n}" s="${"dateTime"===r?3:2}"><v>${Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds())/864e5+25569}</v></c>`}return o(n,e.formatted)}).join("");r.push(`<row r="${l}">${t}</row>`),l+=1});const i=Ye(Math.max(e.columns.length-1,0)),a=Math.max(l-1,1),d=n.map((e,t)=>`<col min="${t+1}" max="${t+1}" width="${e}" customWidth="1"/>`).join("");return Je+'<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'+`<dimension ref="A1:${i}${a}"/><sheetViews><sheetView workbookViewId="0">`+(t?'<pane ySplit="1" topLeftCell="A2" activePane="bottomLeft" state="frozen"/>':"")+'</sheetView></sheetViews><sheetFormatPr defaultRowHeight="15"/>'+(d?`<cols>${d}</cols>`:"")+`<sheetData>${r.join("")}</sheetData>`+(t&&e.rows.length>0?`<autoFilter ref="A1:${i}${a}"/>`:"")+"</worksheet>"},et=Je+'<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><numFmts count="2"><numFmt numFmtId="164" formatCode="m/d/yyyy"/><numFmt numFmtId="165" formatCode="m/d/yyyy h:mm AM/PM"/></numFmts><fonts count="2"><font><sz val="11"/><name val="Calibri"/></font><font><b/><sz val="11"/><name val="Calibri"/></font></fonts><fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="4"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="1" fillId="0" borderId="0" xfId="0" applyFont="1"/><xf numFmtId="164" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="165" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles></styleSheet>',tt=Je+'<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/><Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/></Types>',nt=Je+'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/></Relationships>',rt=Je+'<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>',lt=e=>Je+'<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">'+`<sheets><sheet name="${Xe(e)}" sheetId="1" r:id="rId1"/></sheets></workbook>`,ot=()=>{const e=(new Date).toISOString();return Je+'<cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:creator>MGH Grid</dc:creator>'+`<dcterms:created xsi:type="dcterms:W3CDTF">${e}</dcterms:created>`+`<dcterms:modified xsi:type="dcterms:W3CDTF">${e}</dcterms:modified></cp:coreProperties>`},it=Je+'<Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"><Application>MGH Grid</Application></Properties>',at=(e,t={})=>{const n=t.includeHeaders??!0,r=He(e,t),l=r.columns.map((e,n)=>{const l=t.columnsStyles?.[e.field]?.width;if(l)return l;let o=r.headers[n].length;for(let e=0;e<Math.min(r.rows.length,500);e+=1){const t=r.rows[e][n].formatted.length;t>o&&(o=t)}return Math.min(Math.max(o+2,8),60)}),o=(e=>{const t=(e||"Sheet1").replace(/[\[\]:*?/\\]/g," ").trim()||"Sheet1";return t.length>31?t.slice(0,31):t})(t.sheetName),i=[{name:"[Content_Types].xml",data:je(tt)},{name:"_rels/.rels",data:je(nt)},{name:"docProps/core.xml",data:je(ot())},{name:"docProps/app.xml",data:je(it)},{name:"xl/workbook.xml",data:je(lt(o))},{name:"xl/_rels/workbook.xml.rels",data:je(rt)},{name:"xl/styles.xml",data:je(et)},{name:"xl/worksheets/sheet1.xml",data:je(Ze(r,n,l))}];return Ke(i)},dt=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),st=e=>O(e)?"":e instanceof Date?String(e.getTime()):String(e),ct=(e,t,n,r,l="(empty)")=>{const o=(e,i,a,d)=>{const s=t[i],c=n.get(s);if(!c)return[];const g=new Map;e.forEach(e=>{const t=((e,t,n)=>t.groupingValueGetter?t.groupingValueGetter(e[t.field],e,t,n):Z(e,t,n))(e.row,c,r),n=st(t);let o=g.get(n);if(!o){const m=ne(te(t,e.row,c,r,e.id))||l;o={id:`auto-generated-row-${d}${s}/${n}`,depth:i,parent:a,groupingField:s,groupingKey:t,groupingLabel:m,childGroups:[],leaves:[],descendants:[]},g.set(n,o)}o.leaves.push(e)});const m=[];return g.forEach(e=>{i<t.length-1?(e.childGroups=o(e.leaves,i+1,e.id,`${d}${s}/${st(e.groupingKey)}|`),e.descendants=e.leaves,e.leaves=[]):e.descendants=e.leaves,m.push(e)}),m};return o(e,0,null,"")},gt=e=>{const t=[];return e.forEach(e=>e.descendants.forEach(e=>t.push(e))),t},mt=(e,t,n,r,l)=>{const o={};return Object.keys(t).forEach(i=>{const a=t[i],d=r[a],s=n.get(i);if(!d||!s||!1===s.aggregable)return;const c=e.map(e=>Z(e,s,l));o[i]={value:d.apply({values:c,field:i}),fn:a}}),o},ut=(t,n)=>{const r=e.forwardRef(({size:n=20,className:r,style:l,...o},i)=>e.createElement("svg",{ref:i,viewBox:"0 0 24 24",width:n,height:n,fill:"currentColor",focusable:"false","aria-hidden":"true",className:["mgh-grid-icon",r].filter(Boolean).join(" "),style:l,...o},t));return r.displayName=n,r},pt=ut(e.createElement("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumnIcon"),ht=ut(e.createElement("path",{d:"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"}),"FilterListIcon"),ft=ut(e.createElement("path",{d:"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"}),"SearchIcon"),bt=ut(e.createElement("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"CloseIcon"),xt=ut(e.createElement("path",{d:"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"}),"DownloadIcon"),wt=ut(e.createElement("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"}),"ArrowUpwardIcon"),vt=ut(e.createElement("path",{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownwardIcon"),yt=ut(e.createElement("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreVertIcon"),Et=ut(e.createElement("path",{d:"M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"}),"CheckIcon"),Ct=ut(e.createElement("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMoreIcon"),Mt=ut(e.createElement("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"ChevronRightIcon"),kt=ut(e.createElement("path",{d:"M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"ChevronLeftIcon"),St=ut(e.createElement("path",{d:"M18.41 16.59 13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPageIcon"),Ft=ut(e.createElement("path",{d:"M5.59 7.41 10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPageIcon"),It=ut(e.createElement("path",{d:"M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3z"}),"PushPinIcon"),Pt=ut(e.createElement("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"DeleteIcon"),Nt=ut(e.createElement("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"AddIcon"),Rt=ut(e.createElement("path",{d:"M3 2h18v2H3zm0 18h18v2H3zm0-6h18v2H3zm0-6h18v2H3z"}),"DensitySmallIcon"),zt=ut(e.createElement("path",{d:"M3 3h18v2H3zm0 16h18v2H3zm0-8h18v2H3z"}),"DensityMediumIcon"),Dt=ut(e.createElement("path",{d:"M3 3h18v2H3zm0 16h18v2H3z"}),"DensityLargeIcon"),Gt=ut(e.createElement("path",{d:"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"DragIndicatorIcon"),Tt=ut(e.createElement("path",{d:"M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"}),"PrintIcon"),Ot=ut(e.createElement("path",{d:"M10 10.02h5V21h-5zM17 21h3c1.1 0 2-.9 2-2v-9h-5v11zm3-18H5c-1.1 0-2 .9-2 2v3h19V5c0-1.1-.9-2-2-2zM3 19c0 1.1.9 2 2 2h3V10H3v9z"}),"TableChartIcon"),At=ut(e.createElement("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"}),"DescriptionIcon"),Ht=ut(e.createElement("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOffIcon"),Lt=ut(e.createElement("path",{d:"M18 4H6v2l6.5 6L6 18v2h12v-3h-7l5-5-5-5h7z"}),"FunctionsIcon"),Vt=ut(e.createElement("path",{d:"M6 13c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6-10C9.8 3 8 4.8 8 7s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm6 10c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4z"}),"WorkspacesIcon"),Bt=ut(e.createElement(e.Fragment,null,e.createElement("path",{d:"M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 0 0-5.5-1.65l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2z",opacity:".25"}),e.createElement("path",{d:"M4 8h16v11H4z",opacity:".15"})),"EmptyBoxIcon");var Ut=Object.freeze({__proto__:null,AddIcon:Nt,ArrowDownwardIcon:vt,ArrowUpwardIcon:wt,CheckIcon:Et,ChevronLeftIcon:kt,ChevronRightIcon:Mt,CloseIcon:bt,DeleteIcon:Pt,DensityLargeIcon:Dt,DensityMediumIcon:zt,DensitySmallIcon:Rt,DescriptionIcon:At,DownloadIcon:xt,DragIndicatorIcon:Gt,EmptyBoxIcon:Bt,ExpandMoreIcon:Ct,FilterListIcon:ht,FirstPageIcon:St,FunctionsIcon:Lt,LastPageIcon:Ft,MoreVertIcon:yt,PrintIcon:Tt,PushPinIcon:It,SearchIcon:ft,TableChartIcon:Ot,ViewColumnIcon:pt,VisibilityOffIcon:Ht,WorkspacesIcon:Vt});const $t=e.forwardRef(({variant:t="text",size:n="medium",startIcon:r,endIcon:l,active:o,className:i,children:a,type:d="button",...s},c)=>e.createElement("button",{ref:c,type:d,className:L("mgh-grid-btn","primary"===t&&"mgh-grid-btn--primary","contained"===t&&"mgh-grid-btn--contained","small"===n&&"mgh-grid-btn--small",o&&"mgh-grid-btn--active",i),...s},r,a,l));$t.displayName="MGHGridButton";const Wt=e.forwardRef(({size:t="medium",active:n,label:r,className:l,children:o,type:i="button",...a},d)=>e.createElement("button",{ref:d,type:i,title:r,"aria-label":r,className:L("mgh-grid-btn mgh-grid-btn--icon","small"===t&&"mgh-grid-btn--small",n&&"mgh-grid-btn--active",l),...a},o));Wt.displayName="MGHGridIconButton";const qt=({count:t=0,variant:n="dot",children:r})=>e.createElement("span",{className:"mgh-grid-badge"},r,t>0&&("dot"===n?e.createElement("span",{className:"mgh-grid-badge-dot"}):e.createElement("span",{className:"mgh-grid-badge-count"},t>99?"99+":t))),jt=e.forwardRef(({size:t="medium",className:n,...r},l)=>e.createElement("input",{ref:l,className:L("mgh-grid-input","small"===t&&"mgh-grid-input--small",n),...r}));jt.displayName="MGHGridTextInput";const _t=e.forwardRef(({size:t="medium",className:n,...r},l)=>e.createElement("select",{ref:l,className:L("mgh-grid-select","small"===t&&"mgh-grid-select--small",n),...r}));_t.displayName="MGHGridSelect";const Kt=({label:t,children:n,className:r,htmlFor:l})=>e.createElement("div",{className:L("mgh-grid-field",r)},t&&e.createElement("label",{className:"mgh-grid-field-label",htmlFor:l},t),n),Qt=e.forwardRef(({indeterminate:t=!1,label:n,className:r,...l},o)=>{const i=e.useRef(null),a=e.useCallback(e=>{i.current=e,"function"==typeof o?o(e):o&&(o.current=e)},[o]);return e.useEffect(()=>{i.current&&(i.current.indeterminate=t)},[t]),e.createElement("input",{ref:a,type:"checkbox",title:n,"aria-label":n,className:L("mgh-grid-checkbox",r),...l})});Qt.displayName="MGHGridCheckbox";const Xt=({className:t})=>e.createElement("div",{className:L("mgh-grid-spinner",t),role:"progressbar","aria-label":"Loading"});function Yt({open:t,anchorEl:n,onClose:r,children:l,placement:o="bottom-start",themeMode:i="light",className:a,style:d,offset:s=4,role:c="dialog",autoFocus:g=!1,ignoreOutsideClickOn:m}){const u=e.useRef(null),[h,f]=e.useState({top:0,left:0,ready:!1}),b=e.useCallback(()=>{const e=u.current;if(!e)return;const t=window.innerWidth,r=window.innerHeight,l=e.offsetWidth,i=e.offsetHeight;let a,d;if(n&&n.isConnected){const e=n.getBoundingClientRect();"right-start"===o?(a=e.top,d=e.right+s,d+l>t-8&&(d=e.left-s-l)):(a=e.bottom+s,a+i>r-8&&e.top-s-i>=8&&(a=e.top-s-i),d="bottom-end"===o?e.right-l:"bottom"===o?e.left+e.width/2-l/2:e.left)}else a=r/2-i/2,d=t/2-l/2;a=H(a,8,Math.max(8,r-i-8)),d=H(d,8,Math.max(8,t-l-8)),f(e=>e.ready&&e.top===a&&e.left===d?e:{top:a,left:d,ready:!0})},[n,o,s]);if(e.useLayoutEffect(()=>{if(!t)return void f(e=>e.ready?{...e,ready:!1}:e);b(),window.addEventListener("resize",b),window.addEventListener("scroll",b,!0);let e=null;return"undefined"!=typeof ResizeObserver&&u.current&&(e=new ResizeObserver(()=>b()),e.observe(u.current)),()=>{window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0),e?.disconnect()}},[t,b]),e.useEffect(()=>{if(!t)return;const e=e=>{const t=e.target;t&&(u.current?.contains(t)||n?.contains(t)||m?.some(e=>e.current?.contains(t))||t.closest?.(".mgh-grid-popover")||r("backdrop"))},l=e=>{"Escape"===e.key&&r("escape")};return document.addEventListener("mousedown",e,!0),document.addEventListener("touchstart",e,!0),document.addEventListener("keydown",l),()=>{document.removeEventListener("mousedown",e,!0),document.removeEventListener("touchstart",e,!0),document.removeEventListener("keydown",l)}},[t,r,n,m]),e.useEffect(()=>{if(t&&g&&u.current){(u.current.querySelector('input, select, textarea, button, [tabindex]:not([tabindex="-1"])')??u.current).focus()}},[t,g]),!t||"undefined"==typeof document)return null;const x=e=>e.stopPropagation();return p.createPortal(e.createElement("div",{ref:u,role:c,tabIndex:-1,className:L("mgh-grid-popover",a),"data-mgh-theme":i,style:{top:h.top,left:h.left,visibility:h.ready?"visible":"hidden",...d},onClick:x,onDoubleClick:x,onMouseDown:x,onKeyDown:e=>{if("Escape"===e.key)return e.stopPropagation(),void r("escape");e.stopPropagation()}},l),document.body)}const Jt=({children:t,className:n,onKeyDown:r,...l})=>{const o=e.useRef(null);return e.useEffect(()=>{const e=o.current?.querySelector('[role="menuitem"]:not([aria-disabled="true"])');e?.focus()},[]),e.createElement("ul",{ref:o,role:"menu",className:L("mgh-grid-menu",n),onKeyDown:e=>{if(r?.(e),"ArrowDown"!==e.key&&"ArrowUp"!==e.key&&"Home"!==e.key&&"End"!==e.key)return;const t=Array.from(o.current?.querySelectorAll('[role="menuitem"]:not([aria-disabled="true"])')??[]);if(0===t.length)return;e.preventDefault();const n=t.indexOf(document.activeElement);let l=0;l="ArrowDown"===e.key?n<0?0:(n+1)%t.length:"ArrowUp"===e.key?n<0?t.length-1:(n-1+t.length)%t.length:"Home"===e.key?0:t.length-1,t[l].focus()},...l},t)},Zt=e.forwardRef(({icon:t,selected:n,disabled:r,className:l,children:o,onClick:i,hideMenu:a,...d},s)=>e.createElement("li",{role:"none"},e.createElement("button",{ref:s,type:"button",role:"menuitem","aria-disabled":r||void 0,disabled:r,tabIndex:-1,className:L("mgh-grid-menu-item",r&&"mgh-grid-menu-item--disabled",n&&"mgh-grid-menu-item--selected",l),onClick:e=>{r||(i?.(e),a?.())},...d},t,e.createElement("span",null,o))));Zt.displayName="MGHGridMenuItem";const en=()=>e.createElement("li",{role:"separator",className:"mgh-grid-menu-divider"}),tn=({children:t})=>e.createElement("li",{role:"presentation",className:"mgh-grid-menu-section"},t);function nn(){const{api:t,state:n,localeText:r}=Ge(),l=n.preferencePanel.open&&"columns"===n.preferencePanel.openedPanelValue;return e.createElement(Wt,{label:r.toolbarColumns,active:l,"aria-haspopup":"dialog","aria-expanded":l,onClick:e=>l?t.hidePreferences():t.showPreferences("columns",e.currentTarget)},e.createElement(pt,null))}function rn(){const{api:t,state:n,localeText:r}=Ge(),l=n.preferencePanel.open&&"filters"===n.preferencePanel.openedPanelValue;return e.createElement(Wt,{label:r.toolbarFilters,active:l,"aria-haspopup":"dialog","aria-expanded":l,onClick:e=>l?t.hidePreferences():t.showPreferences("filters",e.currentTarget)},e.createElement(qt,{count:n.filterCount,variant:"dot"},e.createElement(ht,null)))}function ln(){const{api:t,state:n,localeText:r,themeMode:l}=Ge(),[o,i]=e.useState(null),a=[{value:"compact",label:r.densityCompact,icon:e.createElement(Rt,null)},{value:"standard",label:r.densityStandard,icon:e.createElement(zt,null)},{value:"comfortable",label:r.densityComfortable,icon:e.createElement(Dt,null)}],d=a.find(e=>e.value===n.density)??a[1];return e.createElement(e.Fragment,null,e.createElement(Wt,{label:r.toolbarDensity,active:Boolean(o),"aria-haspopup":"menu",onClick:e=>i(t=>t?null:e.currentTarget)},d.icon),e.createElement(Yt,{open:Boolean(o),anchorEl:o,onClose:()=>i(null),themeMode:l,role:"menu"},e.createElement(Jt,null,a.map(r=>e.createElement(Zt,{key:r.value,icon:r.icon,selected:r.value===n.density,onClick:()=>t.setDensity(r.value),hideMenu:()=>i(null)},r.label)))))}const on=Zt;function an({csvOptions:t={allColumns:!0},excelOptions:n={allColumns:!0},printOptions:r,showCsvOption:l=!0,showExcelOption:o=!0,showPrintOption:i=!0,customMenuItem:a}){const{api:d,localeText:s,themeMode:c,rootProps:g}=Ge(),[m,u]=e.useState(null),p=()=>u(null),h=e.Children.map(a,t=>e.isValidElement(t)?e.cloneElement(t,{hideMenu:p}):t),f={title:"string"==typeof g.header?g.header:void 0,...r};return e.createElement(e.Fragment,null,e.createElement(Wt,{label:s.toolbarExport,active:Boolean(m),"aria-haspopup":"menu",onClick:e=>u(t=>t?null:e.currentTarget)},e.createElement(xt,null)),e.createElement(Yt,{open:Boolean(m),anchorEl:m,onClose:p,themeMode:c,role:"menu"},e.createElement(Jt,null,h,l&&e.createElement(Zt,{icon:e.createElement(At,null),onClick:()=>d.exportDataAsCsv(t),hideMenu:p},s.toolbarExportCSV),o&&e.createElement(Zt,{icon:e.createElement(Ot,null),onClick:()=>{d.exportDataAsExcel(n)},hideMenu:p},s.toolbarExportExcel),i&&e.createElement(Zt,{icon:e.createElement(Tt,null),onClick:()=>d.exportDataAsPrint(f),hideMenu:p},s.toolbarExportPrint))))}function dn({placeholder:t,debounceMs:n,alwaysExpanded:r=!1}){const{api:l,state:o,localeText:i,rootProps:a}=Ge(),d=(o.quickFilterValues??[]).join(" "),[s,c]=e.useState(d),[g,m]=e.useState(r||""!==d),u=e.useRef(null),p=e.useRef(null),h=n??a.quickFilterDebounceMs,f=e.useRef(d);e.useEffect(()=>{d!==f.current&&(f.current=d,c(d),""!==d&&m(!0))},[d]),e.useEffect(()=>()=>{null!==p.current&&window.clearTimeout(p.current)},[]);const b=e=>{const t=e.split(/\s+/).filter(e=>""!==e);f.current=t.join(" "),l.setQuickFilterValues(t)},x=()=>{null!==p.current&&window.clearTimeout(p.current),c(""),b(""),u.current?.focus()},w=r||g;return e.createElement("div",{className:L("mgh-grid-quick-filter",w&&"mgh-grid-quick-filter--expanded")},e.createElement(Wt,{className:"mgh-grid-quick-filter-trigger",label:i.toolbarQuickFilterLabel,"aria-disabled":w,tabIndex:w?-1:0,onClick:()=>{m(!0),window.setTimeout(()=>u.current?.focus(),0)}},e.createElement(ft,null)),e.createElement("div",{className:L("mgh-grid-quick-filter-control mgh-grid-input-adorned",s&&"mgh-grid-input-adorned--clearable")},e.createElement("span",{className:"mgh-grid-input-adornment"},e.createElement(ft,{size:18})),e.createElement(jt,{ref:u,size:"small",type:"search",value:s,tabIndex:w?0:-1,placeholder:t??i.toolbarQuickFilterPlaceholder,"aria-label":i.toolbarQuickFilterLabel,onChange:e=>{return t=e.target.value,c(t),null!==p.current&&window.clearTimeout(p.current),void(p.current=window.setTimeout(()=>b(t),h));var t},onBlur:()=>{r||""!==s.trim()||m(!1)},onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),s?x():r||(m(!1),u.current?.blur())),"Enter"===e.key&&(null!==p.current&&window.clearTimeout(p.current),b(s))}}),s&&e.createElement("span",{className:"mgh-grid-input-adornment mgh-grid-input-adornment--end"},e.createElement(Wt,{size:"small",label:i.clearSearch,onClick:x,tabIndex:-1},e.createElement(bt,null)))))}function sn({showColumnsButton:t=!0,showFilterButton:n=!0,showExportButton:r=!0,showQuickFilter:l=!0,showDensitySelector:o=!1,showCsvOption:i=!0,showExcelOption:a=!0,showPrintOption:d=!0,csvOptions:s,excelOptions:c,printOptions:g,renderOtherButtons:m,renderDateRange:u,customMenuItem:p,quickFilterPlaceholder:h,quickFilterDebounceMs:f}){const{rootProps:b}=Ge(),x=t&&!b.disableColumnSelector,w=n&&!b.disableColumnFilter,v=o&&!b.disableDensitySelector;return e.createElement("div",{className:"mgh-grid-toolbar",role:"toolbar"},e.createElement("div",{className:"mgh-grid-toolbar-group"},x&&e.createElement(nn,null),w&&e.createElement(rn,null),v&&e.createElement(ln,null),r&&e.createElement(an,{csvOptions:s,excelOptions:c,printOptions:g,showCsvOption:i,showExcelOption:a,showPrintOption:d,customMenuItem:p})),u&&e.createElement("div",{className:"mgh-grid-toolbar-center"},u),e.createElement("div",{className:"mgh-grid-toolbar-group"},m,l&&e.createElement(dn,{placeholder:h,debounceMs:f})))}function cn(){const{api:t,state:n,localeText:r,rootProps:l}=Ge(),{page:o,pageSize:i}=n.paginationModel,a=n.rowCount,d=n.pageCount,s=0===a?0:o*i+1,c=Math.min(a,(o+1)*i),g=-1===l.pageSizeOptions.indexOf(i)?l.pageSizeOptions.concat([i]).sort((e,t)=>e-t):l.pageSizeOptions;return e.createElement("div",{className:"mgh-grid-pagination",role:"navigation","aria-label":"Pagination"},e.createElement("span",null,r.footerPaginationRowsPerPage),e.createElement(_t,{className:"mgh-grid-pagination-select",value:i,"aria-label":r.footerPaginationRowsPerPage,onChange:e=>t.setPageSize(Number(e.target.value))},g.map(t=>e.createElement("option",{key:t,value:t},t))),e.createElement("span",null,r.footerPaginationDisplayedRows(s,c,a)),e.createElement("div",{className:"mgh-grid-pagination-actions"},e.createElement(Wt,{label:r.footerPaginationFirstPage,disabled:o<=0,onClick:()=>t.setPage(0)},e.createElement(St,null)),e.createElement(Wt,{label:r.footerPaginationPreviousPage,disabled:o<=0,onClick:()=>t.setPage(o-1)},e.createElement(kt,null)),e.createElement(Wt,{label:r.footerPaginationNextPage,disabled:o>=d-1,onClick:()=>t.setPage(o+1)},e.createElement(Mt,null)),e.createElement(Wt,{label:r.footerPaginationLastPage,disabled:o>=d-1,onClick:()=>t.setPage(Math.max(d-1,0))},e.createElement(Ft,null))))}function gn(){const{state:t,localeText:n,rootProps:r}=Ge(),l=t.rowSelectionModel.ids.size,o=l>0&&!r.hideFooterSelectedRowCount,i=r.pagination&&!r.hideFooterPagination,a=!i&&!r.hideFooterRowCount;return e.createElement("div",{className:"mgh-grid-footer"},e.createElement("div",{className:"mgh-grid-footer-left"},o&&e.createElement("span",null,n.footerRowSelected(l))),a&&e.createElement("span",null,n.footerTotalRows," ",t.rowCount.toLocaleString()),i&&e.createElement(cn,null))}function mn(){const{api:t,state:n,localeText:r,columns:l,visibleColumns:o}=Ge(),i=e.useMemo(()=>new Set(o.map(e=>e.field)),[o]),[a,d]=e.useState(""),s=n.columnVisibilityModel,c=l.filter(e=>!1!==e.hideable),g=a.trim().toLowerCase(),m=g?c.filter(e=>-1!==(e.headerName??e.field).toLowerCase().indexOf(g)):c,u=e=>{const n={...s};c.forEach(t=>{n[t.field]=e}),t.setColumnVisibilityModel(n)};return e.createElement("div",{className:"mgh-grid-panel",role:"group","aria-label":r.toolbarColumns},e.createElement("div",{className:"mgh-grid-panel-header"},e.createElement("div",{className:"mgh-grid-input-adorned"},e.createElement("span",{className:"mgh-grid-input-adornment"},e.createElement(ft,{size:18})),e.createElement(jt,{autoFocus:!0,size:"small",value:a,placeholder:r.columnsPanelSearchPlaceholder,"aria-label":r.columnsPanelSearchPlaceholder,onChange:e=>d(e.target.value)}))),e.createElement("div",{className:"mgh-grid-panel-content"},e.createElement("div",{className:"mgh-grid-columns-list"},m.map(n=>{const r=i.has(n.field);return e.createElement("label",{key:n.field,className:"mgh-grid-checkbox-label"},e.createElement(Qt,{checked:r,onChange:()=>t.setColumnVisibility(n.field,!r)}),e.createElement("span",null,n.headerName??n.field))}),0===m.length&&e.createElement("div",{className:"mgh-grid-filter-empty"},"No columns"))),e.createElement("div",{className:"mgh-grid-panel-footer"},e.createElement($t,{variant:"primary",size:"small",onClick:()=>u(!0)},r.columnsPanelShowAll),e.createElement($t,{variant:"primary",size:"small",onClick:()=>u(!1)},r.columnsPanelHideAll),e.createElement($t,{size:"small",onClick:()=>t.setColumnVisibilityModel({})},r.columnsPanelReset)))}const un=(t,n,r=250)=>{const[l,o]=e.useState(t??""),i=e.useRef(null);e.useEffect(()=>{o(t??"")},[t]);return e.useEffect(()=>()=>{null!==i.current&&window.clearTimeout(i.current)},[]),[l,e=>{o(e),null!==i.current&&window.clearTimeout(i.current),i.current=window.setTimeout(()=>n(e),r)}]};function pn({item:t,onChange:n,placeholder:r,type:l}){const[o,i]=un(t.value,n);return e.createElement(jt,{size:"small",type:l,value:o,placeholder:r,"aria-label":r,onChange:e=>i(e.target.value)})}function hn({item:t,column:n,onChange:r,placeholder:l}){const o=Array.isArray(t.value)?t.value.join(", "):t.value??"",[i,a]=un(o,e=>r(String(e).split(",").map(e=>e.trim()).filter(e=>""!==e)));if("singleSelect"===n.type){const o=J(n),i=Array.isArray(t.value)?t.value.map(String):[];return e.createElement(_t,{multiple:!0,size:"small",value:i,"aria-label":l,onChange:e=>{const t=Array.from(e.target.selectedOptions).map(e=>{const t=o.find(t=>String(X(n,t))===e.value);return void 0!==t?X(n,t):e.value});r(t)}},o.map(t=>{const r=X(n,t);return e.createElement("option",{key:String(r),value:String(r)},Y(n,t))}))}return e.createElement(jt,{size:"small",value:i,placeholder:"Comma separated values","aria-label":l,onChange:e=>a(e.target.value)})}function fn(t){const{item:n,column:r,operator:l,onChange:o,placeholder:i}=t,{api:a}=Ge(),d=l?.inputType??"text";if(l?.InputComponent){const t=l.InputComponent;return e.createElement(t,{item:n,column:r,applyValue:e=>o(e.value),api:a})}switch(d){case"none":return e.createElement("div",null);case"boolean":return e.createElement(_t,{size:"small",value:void 0===n.value||null===n.value?"":String(n.value),"aria-label":i,onChange:e=>o(""===e.target.value?void 0:e.target.value)},e.createElement("option",{value:""},"any"),e.createElement("option",{value:"true"},"yes"),e.createElement("option",{value:"false"},"no"));case"select":{const t=J(r);return e.createElement(_t,{size:"small",value:void 0===n.value||null===n.value?"":String(n.value),"aria-label":i,onChange:e=>{const n=t.find(t=>String(X(r,t))===e.target.value);o(""===e.target.value?void 0:void 0!==n?X(r,n):e.target.value)}},e.createElement("option",{value:""}),t.map(t=>{const n=X(r,t);return e.createElement("option",{key:String(n),value:String(n)},Y(r,t))}))}case"multiselect":return e.createElement(hn,{...t});case"number":return e.createElement(pn,{...t,type:"number"});case"date":return e.createElement(pn,{...t,type:"date"});case"datetime-local":return e.createElement(pn,{...t,type:"datetime-local"});default:return e.createElement(pn,{...t,type:"text"})}}const bn=e=>({id:V("filter"),field:e?.field??"",operator:e?ve(e)[0]?.value??"contains":"contains",value:void 0});function xn(){const{api:t,state:n,localeText:r,columns:l,rootProps:o}=Ge(),i=e.useMemo(()=>l.filter(e=>!1!==e.filterable),[l]),a=e.useMemo(()=>{const e=new Map;return i.forEach(t=>e.set(t.field,t)),e},[i]),d=n.filterModel.items,s=n.filterModel.logicOperator??"and",c=n.preferencePanel.targetField,g=e.useRef(!1);e.useEffect(()=>{if(!g.current)if(g.current=!0,c&&a.has(c)){d.find(e=>e.field===c)||t.upsertFilterItem(bn(a.get(c)))}else 0===d.length&&i.length>0&&t.upsertFilterItem(bn(i[0]))},[t,a,i,d,c]);const m=(e,n)=>{t.upsertFilterItem({...e,...n})},u=!o.disableMultipleColumnsFiltering||0===d.length;return e.createElement("div",{className:"mgh-grid-panel",role:"group","aria-label":r.toolbarFilters},e.createElement("div",{className:"mgh-grid-panel-content",style:{paddingTop:12}},0===d.length&&e.createElement("div",{className:"mgh-grid-filter-empty"},"No filters"),d.map((n,l)=>{const o=a.get(n.field)??i[0],c=o?ve(o):[],g=c.find(e=>e.value===n.operator)??c[0],u=d.length>1;return e.createElement("div",{key:String(n.id??l),className:u?"mgh-grid-filter-row mgh-grid-filter-row--with-logic":"mgh-grid-filter-row"},e.createElement(Wt,{size:"small",label:r.filterPanelDeleteIcon,onClick:()=>t.deleteFilterItem(n)},e.createElement(Pt,null)),u&&e.createElement(Kt,{label:1===l?r.filterPanelLogicOperator:" "},0===l?e.createElement("div",{style:{height:32}}):e.createElement(_t,{size:"small",value:s,disabled:l>1,"aria-label":r.filterPanelLogicOperator,onChange:e=>t.setFilterLogicOperator(e.target.value)},e.createElement("option",{value:"and"},r.filterPanelOperatorAnd),e.createElement("option",{value:"or"},r.filterPanelOperatorOr))),e.createElement(Kt,{label:r.filterPanelColumns},e.createElement(_t,{size:"small",value:o?.field??"","aria-label":r.filterPanelColumns,onChange:e=>{const t=a.get(e.target.value),r=t?ve(t):[],l=r.some(e=>e.value===n.operator);m(n,{field:e.target.value,operator:l?n.operator:r[0]?.value??"contains",value:void 0})}},i.map(t=>e.createElement("option",{key:t.field,value:t.field},t.headerName??t.field)))),e.createElement(Kt,{label:r.filterPanelOperator},e.createElement(_t,{size:"small",value:g?.value??"","aria-label":r.filterPanelOperator,onChange:e=>{const t=c.find(t=>t.value===e.target.value),r="multiselect"===t?.inputType,l="multiselect"===g?.inputType;m(n,{operator:e.target.value,value:r!==l?void 0:n.value})}},c.map(t=>e.createElement("option",{key:t.value,value:t.value},t.label??t.value)))),e.createElement(Kt,{label:r.filterPanelValue},o?e.createElement(fn,{item:n,column:o,operator:g,placeholder:r.filterPanelInputPlaceholder,onChange:e=>m(n,{value:e})}):e.createElement("div",null)))})),e.createElement("div",{className:"mgh-grid-panel-footer"},e.createElement($t,{variant:"primary",size:"small",startIcon:e.createElement(Nt,{size:18}),onClick:()=>{t.upsertFilterItem(bn(i[0]))},disabled:!u},r.filterPanelAddFilter),e.createElement($t,{size:"small",startIcon:e.createElement(Pt,{size:18}),disabled:0===d.length,onClick:()=>t.setFilterModel({...n.filterModel,items:[]})},r.filterPanelRemoveAll)))}function wn({column:t,anchorEl:n,open:r,onClose:l,themeMode:o,panelAnchorEl:i}){const{api:a,state:d,localeText:s,rootProps:c}=Ge(),g=t.field,m=g===S,u=d.sortModel.find(e=>e.field===g),p=a.isColumnPinned(g),h=-1!==d.rowGroupingModel.indexOf(g),f=d.aggregationModel[g],b=!1!==t.sortable&&!c.disableColumnSorting,x=!1!==t.filterable&&!c.disableColumnFilter&&!m,w=!1!==t.hideable,v=!1!==t.pinnable&&!c.disableColumnPinning,y=!1!==t.groupable&&!c.disableRowGrouping&&!m,E=Object.keys(c.aggregationFunctions).filter(e=>{const n=c.aggregationFunctions[e];return(!t.availableAggregationFunctions||-1!==t.availableAggregationFunctions.indexOf(e))&&(!n.columnTypes||!t.type||-1!==n.columnTypes.indexOf(t.type))}),C=!1!==t.aggregable&&!c.disableAggregation&&!m&&E.length>0,M=i??n,k=t.headerName??t.field;return e.createElement(Yt,{open:r,anchorEl:n,onClose:l,themeMode:o,placement:"bottom-end",role:"menu"},e.createElement(Jt,{"aria-label":s.columnMenuLabel},b&&e.createElement(e.Fragment,null,e.createElement(Zt,{icon:e.createElement(wt,null),selected:"asc"===u?.sort,onClick:()=>a.sortColumn(g,"asc"),hideMenu:l},s.columnMenuSortAsc),e.createElement(Zt,{icon:e.createElement(vt,null),selected:"desc"===u?.sort,onClick:()=>a.sortColumn(g,"desc"),hideMenu:l},s.columnMenuSortDesc),u&&e.createElement(Zt,{icon:e.createElement("span",{style:{width:20}}),onClick:()=>a.sortColumn(g,null),hideMenu:l},s.columnMenuUnsort)),x&&e.createElement(e.Fragment,null,b&&e.createElement(en,null),e.createElement(Zt,{icon:e.createElement(ht,null),onClick:()=>a.showFilterPanel(g,M),hideMenu:l},s.columnMenuFilter)),(w||!c.disableColumnSelector)&&e.createElement(e.Fragment,null,(b||x)&&e.createElement(en,null),w&&e.createElement(Zt,{icon:e.createElement(Ht,null),onClick:()=>a.setColumnVisibility(g,!1),hideMenu:l},s.columnMenuHideColumn),!c.disableColumnSelector&&e.createElement(Zt,{icon:e.createElement(pt,null),onClick:()=>a.showPreferences("columns",M),hideMenu:l},s.columnMenuManageColumns)),v&&e.createElement(e.Fragment,null,e.createElement(en,null),"left"!==p&&e.createElement(Zt,{icon:e.createElement(It,{style:{transform:"rotate(30deg)"}}),onClick:()=>a.pinColumn(g,"left"),hideMenu:l},s.columnMenuPinLeft),"right"!==p&&e.createElement(Zt,{icon:e.createElement(It,{style:{transform:"rotate(-30deg)"}}),onClick:()=>a.pinColumn(g,"right"),hideMenu:l},s.columnMenuPinRight),p&&e.createElement(Zt,{icon:e.createElement("span",{style:{width:20}}),onClick:()=>a.unpinColumn(g),hideMenu:l},s.columnMenuUnpin)),y&&e.createElement(e.Fragment,null,e.createElement(en,null),e.createElement(Zt,{icon:e.createElement(Vt,null),onClick:()=>h?a.removeRowGroupingCriteria(g):a.addRowGroupingCriteria(g),hideMenu:l},h?s.columnMenuUngroup(k):s.columnMenuGroup(k))),C&&e.createElement(e.Fragment,null,e.createElement(en,null),e.createElement(tn,null,e.createElement("label",{className:"mgh-grid-field-label",style:{display:"flex",alignItems:"center",gap:6}},e.createElement(Lt,{size:16})," ",s.columnMenuAggregation),e.createElement(_t,{size:"small",value:f??"","aria-label":s.columnMenuAggregation,onChange:e=>{const t={...d.aggregationModel};""===e.target.value?delete t[g]:t[g]=e.target.value,a.setAggregationModel(t)}},e.createElement("option",{value:""},s.aggregationFunctionLabelNone),E.map(t=>e.createElement("option",{key:t,value:t},c.aggregationFunctions[t].label??t)))))))}function vn({text:t="No rows",imageSrc:n}){return e.createElement("div",{className:"mgh-grid-no-rows",role:"status"},n?e.createElement("img",{alt:"",src:n}):e.createElement(Bt,{size:50}),e.createElement("div",null,t))}function yn({text:t}){return e.createElement(e.Fragment,null,e.createElement(Xt,null),t&&e.createElement("div",null,t))}function En({icon:t,label:n,onClick:r,showInMenu:l,disabled:o,className:i,...a}){return e.createElement(Wt,{size:"small",label:n,disabled:o,className:i,onClick:e=>{e.stopPropagation(),r?.(e)},...a},t)}function Cn({actions:t,themeMode:n,moreLabel:r}){const[l,o]=e.useState(null),i=[],a=[];return t.forEach(t=>{e.isValidElement(t)&&(t.props?.showInMenu?a.push(t):i.push(t))}),e.createElement(e.Fragment,null,i.map((t,n)=>e.createElement(e.Fragment,{key:t.key??n},t)),a.length>0&&e.createElement(e.Fragment,null,e.createElement(Wt,{size:"small",label:r,active:Boolean(l),onClick:e=>{e.stopPropagation(),o(t=>t?null:e.currentTarget)}},e.createElement(yt,null)),e.createElement(Yt,{open:Boolean(l),anchorEl:l,onClose:()=>o(null),themeMode:n,placement:"bottom-end",role:"menu"},e.createElement(Jt,null,a.map((t,n)=>{const r=t.props;return e.createElement(Zt,{key:t.key??n,icon:r.icon,disabled:r.disabled,onClick:e=>{r.onClick?.(e),o(null)}},r.label)})))))}En.displayName="MGHGridActionsCellItem";const Mn=[],kn={},Sn=new Map,Fn=["asc","desc",null],In=[10,25,50,100],Pn={items:[],quickFilterExcludeHiddenColumns:!1},Nn=ye({field:F,headerName:"",width:50,minWidth:50,maxWidth:50,sortable:!1,filterable:!1,hideable:!1,resizable:!1,pinnable:!1,groupable:!1,aggregable:!1,disableColumnMenu:!0,disableExport:!0,disableReorder:!0,align:"center",headerAlign:"center"}),Rn=ye({field:I,headerName:"",width:50,minWidth:50,maxWidth:50,sortable:!1,filterable:!1,hideable:!1,resizable:!1,pinnable:!1,groupable:!1,aggregable:!1,disableColumnMenu:!0,disableExport:!0,disableReorder:!0,align:"center",headerAlign:"center"}),zn=e=>{if(!e)return;const t={};return Object.keys(e).forEach(n=>{if(-1!==n.indexOf("&")||-1!==n.indexOf(":")||-1!==n.indexOf(" "))return;const r=e[n];null!=r&&"object"!=typeof r&&"function"!=typeof r&&(t[n]=r)}),t},Dn=(e,t)=>{const n=j(e);if(!n)return"";const r=e=>String(e).padStart(2,"0"),l=`${n.getFullYear()}-${r(n.getMonth()+1)}-${r(n.getDate())}`;return t?`${l}T${r(n.getHours())}:${r(n.getMinutes())}`:l};function Gn(t){const{rows:n,columns:r,getRowId:l,loading:o=!1,header:i,renderHeaderEndContent:a,renderHeaderCenterContent:d,disableCard:s=!1,className:c,cardClassName:g,boxClassName:m,cardStyle:u,cardSx:p,boxStyle:h,boxSx:f,style:b,sx:x,themeMode:w="light",themeVars:v,showToolbar:y=!0,toolbarProps:E,slots:C=kn,slotProps:M=kn,noRowsText:k="No data found within selected parameters.",localeText:N,rowHeight:A=z,columnHeaderHeight:V=D,getRowHeight:B,autoHeight:_=!1,disableVirtualization:K=!1,density:Q,onDensityChange:re,disableDensitySelector:le=!1,pagination:oe=!0,pageSize:ie=25,pageSizeOptions:ae=In,paginationModel:de,onPaginationModelChange:se,hideFooter:ge=!1,hideFooterPagination:me=!1,hideFooterRowCount:ue=!1,hideFooterSelectedRowCount:pe=!1,sortModel:he,onSortModelChange:fe,sortingOrder:be=Fn,disableMultipleColumnsSorting:xe=!1,disableColumnSorting:we=!1,filterModel:Ee,onFilterModelChange:ke,disableColumnFilter:Ie=!1,disableMultipleColumnsFiltering:Pe=!1,quickFilterDebounceMs:Ne=150,columnVisibilityModel:Re,onColumnVisibilityModelChange:Ge,columnVisibilityStorageKey:Te,columnOrderStorageKey:Be,columnWidthStorageKey:We,pinnedColumnsStorageKey:qe,onColumnOrderChange:je,onColumnWidthChange:_e,disableColumnMenu:Ke=!1,disableColumnSelector:Qe=!1,disableColumnResize:Xe=!1,disableColumnReorder:Ye=!1,disableColumnPinning:Je=!1,pinnedColumns:Ze,onPinnedColumnsChange:et,checkboxSelection:tt=!1,checkboxSelectionVisibleOnly:nt=!1,disableRowSelectionOnClick:rt=!0,disableMultipleRowSelection:lt=!1,rowSelectionModel:ot,onRowSelectionModelChange:it,isRowSelectable:st,keepNonExistentRowsSelected:ut=!0,getRowClassName:pt,onRowClick:ht,onRowDoubleClick:ft,onCellClick:xt,onCellDoubleClick:kt,pinnedRows:St,getDetailPanelContent:Ft,getDetailPanelHeight:It,detailPanelExpandedRowIds:Pt,onDetailPanelExpandedRowIdsChange:Nt,rowGroupingModel:Rt,onRowGroupingModelChange:zt,defaultGroupingExpansionDepth:Dt=0,groupingColDef:Gt,disableRowGrouping:Tt=!1,isGroupExpandedByDefault:Ot,aggregationModel:At,onAggregationModelChange:Ht,aggregationFunctions:Lt,disableAggregation:Vt=!1,aggregationPosition:Bt="both",processRowUpdate:Ut,onProcessRowUpdateError:$t,onCellEditStop:qt,isCellEditable:Kt,initialState:Xt,apiRef:Jt,onStateChange:Zt}=t;ze();const en=function(t){const n=e.useId;if(n)return`${t}-${n().replace(/:/g,"")}`;const r=e.useRef(null);return null===r.current&&(Ae+=1,r.current=`${t}-${Ae}`),r.current}("mgh-grid"),tn=e.useRef(null),nn=e.useRef(null),rn=e.useRef(null),ln=function(){const[,t]=e.useState(0);return e.useCallback(()=>t(e=>e+1),[])}(),on=e.useMemo(()=>({...Me,...N}),[N]),an=e.useRef({}),dn=e.useCallback(()=>({api:an.current.api}),[]),cn=e.useMemo(()=>{const e=()=>an.current,t={getRow:t=>e().rowsById.get(t)??null,getRowModels:()=>new Map(e().rowsById),getAllRowIds:()=>e().rowEntries.map(e=>e.id),getRowNode:t=>e().nodesById.get(t)??null,getSortedRows:()=>e().sortedLeaves.map(e=>e.row),getSortedRowIds:()=>e().sortedLeaves.map(e=>e.id),getVisibleRows:()=>e().pagedRows.filter(e=>"leaf"===e.type&&e.row).map(e=>({id:e.id,model:e.row})),getRowIndexRelativeToVisibleRows:t=>e().pagedRows.findIndex(e=>e.id===t),updateRows:t=>{t.forEach(t=>{const n=W(t,e().getRowId),r=e().rowsById.get(n);r&&e().setRowOverride(n,{...r,...t})})},getAllColumns:()=>e().orderedUserColumns,getVisibleColumns:()=>e().visibleUserColumns,getColumn:t=>e().getColumn(t),getColumnIndex:(t,n=!0)=>(n?e().visibleUserColumns:e().orderedUserColumns).findIndex(e=>e.field===t),getColumnVisibilityModel:()=>e().columnVisibilityModel,setColumnVisibility:(t,n)=>e().setColumnVisibilityModel({...e().columnVisibilityModel,[t]:n}),setColumnVisibilityModel:t=>e().setColumnVisibilityModel(t),setColumnWidth:(t,n)=>e().setColumnWidth(t,n),setColumnIndex:(t,n)=>e().setColumnIndex(t,n),autosizeColumns:t=>e().autosizeColumns(t),pinColumn:(t,n)=>e().pinColumn(t,n),unpinColumn:t=>e().unpinColumn(t),isColumnPinned:t=>e().isColumnPinned(t),getPinnedColumns:()=>e().pinnedColumns,setPinnedColumns:t=>e().setPinnedColumns(t),getSortModel:()=>e().sortModel,setSortModel:t=>e().setSortModel(t),sortColumn:(t,n,r)=>e().sortColumn(t,n,r),getFilterModel:()=>e().filterModel,setFilterModel:t=>e().setFilterModel(t),upsertFilterItem:t=>e().upsertFilterItems([t]),upsertFilterItems:t=>e().upsertFilterItems(t),deleteFilterItem:t=>e().deleteFilterItem(t),setFilterLogicOperator:t=>e().setFilterModel({...e().filterModel,logicOperator:t}),setQuickFilterValues:t=>e().setFilterModel({...e().filterModel,quickFilterValues:t}),showFilterPanel:(t,n)=>e().showPreferences("filters",n,t),hideFilterPanel:()=>e().hidePreferences(),showPreferences:(t,n,r)=>e().showPreferences(t,n,r),hidePreferences:()=>e().hidePreferences(),getSelectedRows:()=>{const t=new Map;return e().selectedIds.forEach(n=>{const r=e().rowsById.get(n);r&&t.set(n,r)}),t},getRowSelectionModel:()=>({type:"include",ids:e().selectedIds}),setRowSelectionModel:t=>{const n=q(t,e().rowEntries.map(e=>e.id));e().setSelectedIds(n.ids)},selectRow:(t,n=!0,r=!1)=>e().selectRows([t],n,r),selectRows:(t,n=!0,r=!1)=>e().selectRows(t,n,r),isRowSelected:t=>e().selectedIds.has(t),isRowSelectable:t=>e().isRowSelectableFn(t,e().rowsById.get(t)),setPage:t=>e().setPaginationModel({...e().paginationModel,page:Math.max(0,t)}),setPageSize:t=>e().setPaginationModel({page:0,pageSize:Math.max(1,t)}),setPaginationModel:t=>e().setPaginationModel(t),setDensity:t=>e().setDensity(t),getDataAsCsv:e=>Ue(t,e),exportDataAsCsv:e=>((e,t={})=>{const n=Ue(e,t),r=t.utf8WithBom?$e:"",l=new Blob([r+n],{type:"text/csv;charset=utf-8;"});Fe(l,Le(t.fileName,Ve(),"csv"))})(t,e),exportDataAsExcel:e=>(async(e,t={})=>{const n=at(e,t),r=new Blob([n],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});Fe(r,Le(t.fileName,Ve(),"xlsx"))})(t,e),exportDataAsPrint:e=>((e,t={})=>{if("undefined"==typeof document)return;const n=t.includeHeaders??!0,r=He(e,t),l=t.title??t.fileName??document.title??"",o=n?`<thead><tr>${r.headers.map((e,t)=>`<th class="${r.columns[t].align??"left"}">${dt(e)}</th>`).join("")}</tr></thead>`:"",i=`<tbody>${r.rows.map(e=>`<tr>${e.map(e=>`<td class="${e.col.align??"left"}">${dt(e.formatted)}</td>`).join("")}</tr>`).join("")}</tbody>`,a=`<!doctype html><html><head><meta charset="utf-8" /><title>${dt(l)}</title><style>body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:12px;color:#111;margin:16px;}h1{font-size:16px;margin:0 0 12px;}table{border-collapse:collapse;width:100%;}th,td{border:1px solid #ccc;padding:4px 8px;text-align:left;vertical-align:top;}th{background:#f3f3f3;font-weight:600;}td.right,th.right{text-align:right;} td.center,th.center{text-align:center;}tr{page-break-inside:avoid;} thead{display:table-header-group;}`+(t.pageStyle??"")+"</style></head><body>"+(l?`<h1>${dt(l)}</h1>`:"")+`<table>${o}${i}</table></body></html>`,d=document.createElement("iframe");d.setAttribute("aria-hidden","true"),d.style.position="fixed",d.style.right="0",d.style.bottom="0",d.style.width="0",d.style.height="0",d.style.border="0",d.style.opacity="0",document.body.appendChild(d);const s=()=>{window.setTimeout(()=>{d.parentNode&&d.parentNode.removeChild(d)},1e3)};d.onload=()=>{const e=d.contentWindow;if(e)try{e.focus(),e.onafterprint=s,e.print()}catch{s()}else s()};const c=d.contentDocument||d.contentWindow?.document;c?(c.open(),c.write(a),c.close()):d.srcdoc=a})(t,e),toggleDetailPanel:t=>e().toggleDetailPanel(t),setExpandedDetailPanels:t=>e().setExpandedDetailPanels(new Set(t)),getExpandedDetailPanels:()=>Array.from(e().expandedDetailPanels),getRowGroupingModel:()=>e().rowGroupingModel,setRowGroupingModel:t=>e().setRowGroupingModel(t),addRowGroupingCriteria:(t,n)=>{const r=e().rowGroupingModel.filter(e=>e!==t);void 0===n?r.push(t):r.splice(H(n,0,r.length),0,t),e().setRowGroupingModel(r)},removeRowGroupingCriteria:t=>e().setRowGroupingModel(e().rowGroupingModel.filter(e=>e!==t)),setRowChildrenExpansion:(t,n)=>e().setRowChildrenExpansion(t,n),getRowGroupChildren:({groupId:t})=>{const n=e().groupsById.get(t);return n?n.descendants.map(e=>e.id):[]},getAggregationModel:()=>e().aggregationModel,setAggregationModel:t=>e().setAggregationModel(t),startCellEditMode:({id:t,field:n})=>e().startCellEditMode(t,n),stopCellEditMode:({id:t,field:n,ignoreModifications:r})=>e().stopCellEditMode(t,n,r,"api"),getCellMode:(t,n)=>{const r=e().editingCell;return r&&r.id===t&&r.field===n?"edit":"view"},setEditCellValue:({id:t,field:n,value:r})=>{const l=e().editingCell;l&&l.id===t&&l.field===n&&e().setEditValue(r)},getCellValue:(n,r)=>{const l=e().rowsById.get(n),o=e().getColumn(r);return l&&o?Z(l,o,t):void 0},getCellParams:(t,n)=>{const r=e().rowsById.get(t);return e().buildCellParams(t,n,r,e().nodesById.get(t)??{type:"leaf",id:t,depth:0,parent:null})},setCellFocus:(t,n)=>{sr.current=!0,e().setFocusedCell({id:t,field:n})},scrollToIndexes:t=>e().scrollToIndexes(t),scroll:({left:e,top:t})=>{const n=nn.current;n&&(void 0!==e&&(n.scrollLeft=e),void 0!==t&&(n.scrollTop=t))},getScrollPosition:()=>({left:nn.current?.scrollLeft??0,top:nn.current?.scrollTop??0}),get state(){return e().state},forceUpdate:()=>e().forceUpdate(),rootElementRef:tn};return t},[]);an.current.api||(an.current.api=cn);const un=e.useMemo(()=>({visibility:Te?U(Te):null,order:Be?U(Be):null,widths:We?U(We):null,pinned:qe?U(qe):null}),[Te,Be,We,qe]),[pn,hn]=Oe(he,Xt?.sorting?.sortModel??Mn,e=>fe?.(e,dn())),[fn,bn]=Oe(Ee,Xt?.filter?.filterModel??Pn,e=>ke?.(e,dn())),[En,Gn]=Oe(de,{page:Xt?.pagination?.paginationModel?.page??0,pageSize:Xt?.pagination?.paginationModel?.pageSize??ie},e=>se?.(e,dn())),[Tn,On]=Oe(Re,un.visibility??Xt?.columns?.columnVisibilityModel??kn,e=>{Te&&$(Te,e),Ge?.(e,dn())}),[An,Hn]=Oe(Q,Xt?.density??"compact",e=>re?.(e,dn())),[Ln,Vn]=Oe(Ze,un.pinned??Xt?.pinnedColumns??kn,e=>{qe&&$(qe,e),et?.(e,dn())}),[Bn,Un]=Oe(Rt,Xt?.rowGrouping?.model??Mn,e=>zt?.(e,dn())),[$n,Wn]=Oe(At,Xt?.aggregation?.model??kn,e=>Ht?.(e,dn())),qn=e.useMemo(()=>Pt?new Set(Pt):void 0,[Pt]),[jn,_n]=Oe(qn,e.useMemo(()=>new Set(Xt?.detailPanel?.expandedRowIds??[]),[]),e=>Nt?.(Array.from(e),dn())),Kn=e.useMemo(()=>void 0!==ot?q(ot).ids:void 0,[ot]),[Qn,Xn]=Oe(Kn,e.useMemo(()=>new Set,[]),e=>it?.({type:"include",ids:e},dn())),[Yn,Jn]=e.useState(()=>un.order??Xt?.columns?.orderedFields??null),[Zn,er]=e.useState(()=>{if(un.widths)return un.widths;const e=Xt?.columns?.dimensions;if(!e)return{};const t={};return Object.keys(e).forEach(n=>{e[n].width&&(t[n]=e[n].width)}),t}),[tr,nr]=e.useState(()=>new Map),[rr,lr]=e.useState(null),[or,ir]=e.useState(void 0),[ar,dr]=e.useState(null),sr=e.useRef(!1),[cr,gr]=e.useState({open:!1,anchorEl:null}),[mr,ur]=e.useState(null),[pr,hr]=e.useState(null),[fr,br]=e.useState(null),[xr,wr]=e.useState(0),vr=e.useRef(0),yr=e.useRef(null),[Er,Cr]=e.useState(()=>({rows:n,map:new Map})),Mr=Er.rows===n?Er.map:Sn,kr=e.useCallback((e,t)=>{Cr(r=>{const l=new Map(r.rows===n?r.map:[]);return l.set(e,t),{rows:n,map:l}})},[n]),{width:Sr,height:Fr}=function(t,n=!0){const[r,l]=e.useState({width:0,height:0});return e.useLayoutEffect(()=>{const e=t.current;if(!e||!n)return;const r=()=>{const t=e.clientWidth,n=e.clientHeight;l(e=>e.width===t&&e.height===n?e:{width:t,height:n})};if(r(),"undefined"==typeof ResizeObserver)return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r);const o=new ResizeObserver(r);return o.observe(e),()=>o.disconnect()},[t,n]),r}(nn),Ir=R[An]??1,Pr=Math.round(A*Ir),Nr=Math.round(V*Ir),Rr=e.useMemo(()=>{const e=[];return n.forEach(t=>{const n=W(t,l);null!=n&&e.push({id:n,row:Mr.get(n)??t})}),e},[n,l,Mr]),zr=e.useMemo(()=>{const e=new Map;return Rr.forEach(t=>e.set(t.id,t.row)),(St?.top??[]).forEach(t=>e.set(W(t,l),t)),(St?.bottom??[]).forEach(t=>e.set(W(t,l),t)),e},[Rr,St,l]),Dr=e.useMemo(()=>r.map(e=>ye(e)),[r]),Gr=e.useMemo(()=>{const e=new Map;return Dr.forEach(t=>e.set(t.field,t)),e},[Dr]),Tr=e.useMemo(()=>Tt?[]:Bn.filter(e=>Gr.has(e)),[Bn,Gr,Tt]),Or=Tr.length>0,Ar=e.useMemo(()=>{if(!Or)return null;const e=1===Tr.length?Gr.get(Tr[0]):void 0;return ye({field:S,headerName:e?e.headerName??e.field:on.groupingColumnHeaderName,width:220,minWidth:120,sortable:!0,filterable:!1,hideable:!1,groupable:!1,aggregable:!1,editable:!1,disableExport:!0,disableReorder:!0,...Gt})},[Or,Tr,Gr,on.groupingColumnHeaderName,Gt]),Hr=e.useMemo(()=>{if(!Yn||0===Yn.length)return Dr;const e=new Set,t=[];return Yn.forEach(n=>{const r=Gr.get(n);r&&!e.has(n)&&(e.add(n),t.push(r))}),Dr.forEach(n=>{e.has(n.field)||t.push(n)}),t},[Yn,Dr,Gr]),Lr=e.useCallback(e=>{const t=Tn[e];return!1!==t&&(void 0!==t||-1===Tr.indexOf(e))},[Tn,Tr]),Vr=e.useMemo(()=>Hr.filter(e=>Lr(e.field)),[Hr,Lr]),Br=e.useMemo(()=>{const e=[];tt&&e.push(Nn),Ft&&e.push(Rn);const t=Je?[]:(Ln.left??[]).filter(e=>e!==S),n=Je?[]:(Ln.right??[]).filter(e=>e!==S),r=new Map;Vr.forEach(e=>r.set(e.field,e));const l=e.slice();Ar&&l.push(Ar),t.forEach(e=>{const t=r.get(e);t&&l.push(t)});const o=[];n.forEach(e=>{const n=r.get(e);n&&-1===t.indexOf(e)&&o.push(n)});const i=Vr.filter(e=>-1===t.indexOf(e.field)&&-1===n.indexOf(e.field)),a=l.concat(i,o),d=((e,t,n)=>{const r=e.map(e=>{const t=e.minWidth??G,r=e.maxWidth??1/0,l=n[e.field];return l?H(l,t,r):e.flex&&e.flex>0?null:H(e.width??100,t,r)}),l=[];let o=0;if(r.forEach((e,t)=>{null===e?l.push(t):o+=e}),l.length>0){let n=Math.max(0,t-o),i=l.reduce((t,n)=>t+e[n].flex,0),a=l.slice(),d=!0;for(;d&&a.length>0;){d=!1;for(let t=0;t<a.length;t+=1){const l=a[t],o=e[l],s=o.minWidth??G,c=o.maxWidth??1/0,g=i>0?n*o.flex/i:0;if(g<s||g>c){const e=g<s?s:c;r[l]=e,n=Math.max(0,n-e),i-=o.flex,a=a.filter(e=>e!==l),d=!0;break}}}a.forEach(t=>{const l=e[t];r[t]=i>0?Math.floor(n*l.flex/i):l.minWidth??50})}return r})(a,Sr,Zn),s=l.length>e.length+(Ar?1:0)||o.length>0,c=[];let g=0,m=0;a.forEach((e,t)=>{const n=d[t],r=t<l.length,o=t>=l.length+i.length;c.push({col:e,width:n,pinned:r?"left":o?"right":null,offset:r?m:0,x:g,isLastLeft:r&&t===l.length-1,isFirstRight:o&&t===l.length+i.length}),r&&(m+=n),g+=n});let u=0;for(let e=c.length-1;e>=0&&"right"===c[e].pinned;e-=1)c[e].offset=u,u+=c[e].width;return{columns:c,totalWidth:g,hasPinning:s,leftCount:l.length,rightCount:o.length}},[tt,Ft,Ln,Je,Vr,Ar,Sr,Zn]),Ur=e.useMemo(()=>{const e=new Map;return Br.columns.forEach(t=>e.set(t.col.field,t.col)),Ar&&e.set(S,Ar),e},[Br.columns,Ar]),$r=e.useCallback(e=>Gr.get(e)??Ur.get(e),[Gr,Ur]),Wr=e.useMemo(()=>{const e=[];return fn.items.forEach(t=>{const n=Gr.get(t.field);if(!n||!1===n.filterable)return;const r=ve(n).find(e=>e.value===t.operator);if(!r)return;const l=r.getApplyFilterFn(t,n);l&&e.push({col:n,fn:l})}),e},[fn.items,Gr]),qr=e.useMemo(()=>(fn.quickFilterValues??[]).map(e=>String(e).trim()).filter(e=>""!==e),[fn.quickFilterValues]),jr=e.useMemo(()=>(fn.quickFilterExcludeHiddenColumns?Vr:Hr).filter(e=>!1!==e.filterable&&"actions"!==e.type),[fn.quickFilterExcludeHiddenColumns,Vr,Hr]),_r=e.useMemo(()=>{if(0===Wr.length&&0===qr.length)return Rr;const e="and"===(fn.logicOperator??"and"),t="and"===(fn.quickFilterLogicOperator??"and"),n=an.current.api,r=qr.map(e=>{const t=e.toLowerCase(),r=jr.map(r=>{if(r.getApplyQuickFilterFn){const t=r.getApplyQuickFilterFn(e,r,n);return t?{col:r,fn:t}:null}return{col:r,fn:(e,l)=>{if(O(e))return!1;if(-1!==ne(te(e,l,r,n)).toLowerCase().indexOf(t))return!0;return-1!==("object"==typeof e?"":String(e).toLowerCase()).indexOf(t)}}}).filter(Boolean);return e=>r.some(({col:t,fn:r})=>r(Z(e,t,n),e,t,n))});return Rr.filter(({row:l})=>{if(Wr.length>0){const t=Wr.map(({col:e,fn:t})=>t(Z(l,e,n),l,e,n));if(!(e?t.every(Boolean):t.some(Boolean)))return!1}if(r.length>0){const e=r.map(e=>e(l));return t?e.every(Boolean):e.some(Boolean)}return!0})},[Rr,Wr,qr,jr,fn.logicOperator,fn.quickFilterLogicOperator]),Kr=e.useMemo(()=>{const e=an.current.api,t=pn.filter(e=>e.sort&&e.field!==S).map(e=>{const t=Gr.get(e.field);return t&&!1!==t.sortable?{col:t,dir:"desc"===e.sort?-1:1,comparator:t.sortComparator??ce(t.type)}:null}).filter(Boolean);return 0===t.length?null:(n,r)=>{for(let l=0;l<t.length;l+=1){const{col:o,dir:i,comparator:a}=t[l],d=Z(n.row,o,e),s=Z(r.row,o,e),c=a(d,s,{id:n.id,field:o.field,value:d,row:n.row,api:e},{id:r.id,field:o.field,value:s,row:r.row,api:e});if(0!==c)return c*i}return 0}},[pn,Gr]),Qr=e.useCallback(e=>Kr?e.map((e,t)=>({entry:e,index:t})).sort((e,t)=>Kr(e.entry,t.entry)||e.index-t.index).map(e=>e.entry):e,[Kr]),Xr=e.useMemo(()=>({...Ce,...Lt}),[Lt]),Yr=!Vt&&Object.keys($n).length>0,Jr=e.useCallback(e=>{const t=tr.get(e.id);return void 0!==t?t:Ot?Ot({type:"group",id:e.id,depth:e.depth,parent:e.parent,groupingField:e.groupingField,groupingKey:e.groupingKey,groupingLabel:e.groupingLabel,children:[],leafIds:[],isExpanded:!1}):-1===Dt||e.depth<Dt},[tr,Ot,Dt]),Zr=e.useMemo(()=>{const e=new Map,t=new Map;if(!Or){const n=Qr(_r);return{displayRows:n.map(t=>{const n={type:"leaf",id:t.id,depth:0,parent:null};return e.set(t.id,n),{id:t.id,type:"leaf",row:t.row,node:n,depth:0}}),sortedLeaves:n,nodesById:e,groupsById:t,tree:[]}}const n=an.current.api;let r=ct(_r,Tr,Gr,n);const l=pn.find(e=>e.field===S&&e.sort);r=((e,t,n)=>{const r=(e,l)=>{const o=t?t(l):null,i=o?e.map((e,t)=>({node:e,index:t})).sort((e,t)=>o(e.node,t.node)||e.index-t.index).map(e=>e.node):e;return i.forEach(e=>{if(e.childGroups.length>0){e.childGroups=r(e.childGroups,l+1);const t=[];e.childGroups.forEach(e=>e.descendants.forEach(e=>t.push(e))),e.descendants=t}else e.leaves=n(e.leaves),e.descendants=e.leaves}),i};return r(e,0)})(r,e=>{const t=Tr[e],r=Gr.get(t);if(!r)return null;const o=l??pn.find(e=>e.field===t&&e.sort);if(!o)return null;const i=r.sortComparator??ce(r.type),a="desc"===o.sort?-1:1;return(e,r)=>i(e.groupingKey,r.groupingKey,{id:e.id,field:t,value:e.groupingKey,row:e.descendants[0]?.row,api:n},{id:r.id,field:t,value:r.groupingKey,row:r.descendants[0]?.row,api:n})*a},Qr);const o=((e,t,n,r)=>{const l=[],o=(e,i)=>{e.forEach(e=>{const a=t(e),d=((e,t)=>({type:"group",id:e.id,depth:e.depth,parent:e.parent,groupingField:e.groupingField,groupingKey:e.groupingKey,groupingLabel:e.groupingLabel,children:e.childGroups.length>0?e.childGroups.map(e=>e.id):e.leaves.map(e=>e.id),leafIds:e.descendants.map(e=>e.id),isExpanded:t}))(e,a);n.set(e.id,d),r.set(e.id,e),i&&l.push({id:e.id,type:"group",row:null,node:d,depth:e.depth,group:e});const s=i&&a;e.childGroups.length>0?o(e.childGroups,s):e.leaves.forEach(t=>{const r={type:"leaf",id:t.id,depth:e.depth+1,parent:e.id};n.set(t.id,r),s&&l.push({id:t.id,type:"leaf",row:t.row,node:r,depth:e.depth+1})})})};return o(e,!0),l})(r,Jr,e,t);return{displayRows:o,sortedLeaves:gt(r),nodesById:e,groupsById:t,tree:r}},[Or,_r,Qr,Tr,Gr,pn,Jr]),{displayRows:el,sortedLeaves:tl,nodesById:nl,groupsById:rl}=Zr,ll=el.length,ol=oe?Math.max(1,Math.ceil(ll/Math.max(En.pageSize,1))):1,il=oe?H(En.page,0,ol-1):0;e.useEffect(()=>{oe&&En.page!==il&&Gn({...En,page:il})},[oe,En,il,Gn]);const al=e.useMemo(()=>oe?el.slice(il*En.pageSize,(il+1)*En.pageSize):el,[el,oe,il,En.pageSize]),dl=e.useMemo(()=>{if(!Yr||"inline"===Bt)return null;const e=tl.map(e=>e.row);return mt(e,$n,Gr,Xr,an.current.api)},[Yr,Bt,tl,$n,Gr,Xr]),sl=e.useMemo(()=>new Map,[al,$n,Xr]),cl=e=>{if(!Yr||"footer"===Bt)return;let t=sl.get(e.id);return t||(t=mt(e.descendants.map(e=>e.row),$n,Gr,Xr,an.current.api),sl.set(e.id,t)),t},gl=e.useMemo(()=>{const e=[],t=[],n=[];let r=0,l=_||K;return al.forEach(o=>{let i=Pr;if(B&&"leaf"===o.type&&o.row){const e=B({id:o.id,model:o.row,densityFactor:Ir});"auto"===e?l=!0:"number"==typeof e&&e>0&&(i=e)}let a=0;if("leaf"===o.type&&Ft&&jn.has(o.id)&&o.row){const e=It?It({id:o.id,row:o.row}):500;"auto"===e?l=!0:a=e}e.push(i),t.push(a),n.push(r),r+=i+a}),{rowHeights:e,detailHeights:t,offsets:n,total:r,hasAuto:l}},[al,Pr,B,Ir,Ft,It,jn,_,K]),ml=!gl.hasAuto,ul=e.useMemo(()=>{const e=al.length;if(!ml||0===e)return{start:0,end:e};const t=6*Pr,n=Math.max(0,xr-Nr-t),r=xr+Math.max(Fr,Pr)+t,{offsets:l}=gl;let o=0,i=e-1;for(;o<i;){const e=o+i>>1;l[e]+gl.rowHeights[e]+gl.detailHeights[e]<n?o=e+1:i=e}const a=o;let d=a;for(;d<e&&l[d]<r;)d+=1;return{start:a,end:d}},[ml,al.length,xr,Fr,Pr,Nr,gl]),pl=e.useCallback(()=>{an.current.virtual&&(vr.current||(vr.current=window.requestAnimationFrame(()=>{vr.current=0,nn.current&&wr(nn.current.scrollTop)})))},[]);e.useEffect(()=>()=>{vr.current&&window.cancelAnimationFrame(vr.current)},[]);const hl=e.useCallback((e,t)=>!!t&&(!st||st({id:e,row:t,columns:Hr,api:an.current.api})),[st,Hr]),fl=e.useMemo(()=>(nt?al.filter(e=>"leaf"===e.type&&e.row).map(e=>({id:e.id,row:e.row})):tl).filter(e=>hl(e.id,e.row)).map(e=>e.id),[nt,al,tl,hl]),bl=e.useMemo(()=>fl.reduce((e,t)=>e+(Qn.has(t)?1:0),0),[fl,Qn]),xl=fl.length>0&&bl===fl.length,wl=bl>0&&!xl,vl=e.useCallback(e=>{Xn(t=>{const n=e(t);return((e,t)=>{if(e.ids.size!==t.ids.size)return!1;let n=!0;return e.ids.forEach(e=>{t.ids.has(e)||(n=!1)}),n})({ids:t},{ids:n})?t:n})},[Xn]),yl=e.useCallback((e,t=!0,n=!1)=>{vl(r=>{const l=n?new Set:new Set(r);if(e.forEach(e=>{t?hl(e,zr.get(e))&&l.add(e):l.delete(e)}),lt&&l.size>1){const n=e[e.length-1];return new Set(t&&l.has(n)?[n]:[])}return l})},[vl,hl,zr,lt]);e.useEffect(()=>{if(ut||0===Qn.size)return;let e=!1;const t=new Set;Qn.forEach(n=>{zr.has(n)?t.add(n):e=!0}),e&&Xn(t)},[zr,ut,Qn,Xn]);const El=()=>{yl(fl,!xl)},Cl=(e,t,n=!1)=>{const r=$r(e);if(!r||!1===r.sortable||we)return;const l=pn.find(t=>t.field===e);let o,i;if(void 0===t){const e=r.sortingOrder??be,t=e.indexOf(l?.sort??null);o=e[(t+1)%e.length]}else o=t;n&&!xe?(i=pn.filter(t=>t.field!==e),o&&(i=l?pn.map(t=>t.field===e?{field:e,sort:o}:t):i.concat([{field:e,sort:o}]))):i=o?[{field:e,sort:o}]:[],hn(i)},Ml=e=>{Be&&$(Be,e)},kl=e=>{We&&$(We,e)},Sl=(e={})=>{const t=e.includeHeaders??!0,n=Br.columns.filter(t=>!(T(t.col.field)||e.columns&&-1===e.columns.indexOf(t.col.field)));if(0===n.length)return;const r=tn.current,l=r&&"undefined"!=typeof window?window.getComputedStyle(r):null,o=l?.fontFamily||"sans-serif",i=`400 14px ${o}`,a=`600 14px ${o}`,d=tl.slice(0,500),s=an.current.api,c={...Zn};n.forEach(({col:e})=>{let n=t?Se(e.headerName??e.field,a)+64:0;d.forEach(t=>{const r=Z(t.row,e,s),l=ne(te(r,t.row,e,s,t.id)),o=Se(l,i)+24;o>n&&(n=o)}),c[e.field]=H(Math.ceil(n),e.minWidth??G,e.maxWidth??1/0)}),er(c),kl(c)},Fl=e.useCallback(()=>{gr(e=>e.open?{open:!1,anchorEl:null}:e)},[]),Il=e=>!!e.colDef.editable&&("leaf"===e.rowNode.type&&(!Kt||Kt(e))),Pl=(e,t)=>{const n=zr.get(e),r=$r(t);if(!n||!r)return;const l=Tl(e,t,n,nl.get(e)??{type:"leaf",id:e,depth:0,parent:null});Il(l)&&(lr({id:e,field:t}),ir(l.value),dr({id:e,field:t}))},Nl=(e,t,n=!1,r="api")=>{if(!rr||rr.id!==e||rr.field!==t)return;const l=zr.get(e),o=$r(t);if(lr(null),l&&o){if(!n){const n=an.current.api,r=o.valueParser?o.valueParser(or,l,o,n):((e,t)=>{switch(t.type){case"number":{if(""===e||O(e))return null;const t=Number(e);return Number.isNaN(t)?e:t}case"boolean":return Boolean(e);case"date":case"dateTime":return""===e||O(e)?null:j(e)??e;default:return e}})(or,o),i=Z(l,o,n);if(!Object.is(r,i)){((e,t,n)=>{Ut?Promise.resolve().then(()=>Ut(t,n,{rowId:e})).then(n=>kr(e,n??t)).catch(e=>{$t?$t(e):console.error("MGHGrid: processRowUpdate failed",e)}):kr(e,t)})(e,o.valueSetter?o.valueSetter(r,l,o,n):{...l,[t]:r},l)}}qt?.({id:e,field:t,row:l,reason:r},dn()),sr.current=!0,dr({id:e,field:t})}},Rl=e=>{_n(t=>{const n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},zl=(e,t)=>{nr(n=>{const r=new Map(n);return r.set(e,t),r})},Dl=Tr.join("|"),Gl=e.useRef(Dl);e.useEffect(()=>{Gl.current!==Dl&&(Gl.current=Dl,nr(new Map))},[Dl]);const Tl=(e,t,n,r)=>{const l=$r(t),o=an.current.api,i=Z(n,l,o),a=te(i,n,l,o,e),d=Boolean(ar&&ar.id===e&&ar.field===t);return{id:e,field:t,value:i,formattedValue:a,row:n,rowNode:r,colDef:l,api:o,hasFocus:d,tabIndex:d?0:-1,cellMode:rr&&rr.id===e&&rr.field===t?"edit":"view",isEditable:Boolean(l.editable)&&"leaf"===r.type}},Ol=(e,t)=>({id:e,row:t,columns:Hr,api:an.current.api});e.useEffect(()=>{if(!sr.current||!ar||!tn.current)return;sr.current=!1;const e=`[data-mgh-row-id="${String(ar.id).replace(/"/g,'\\"')}"] [data-mgh-field="${ar.field.replace(/"/g,'\\"')}"]`,t=tn.current.querySelector(e);t&&document.activeElement!==t&&!t.contains(document.activeElement)&&t.focus({preventScroll:!0})},[ar,ul.start,ul.end]);const Al=e=>{const t=nn.current;if(!t)return!1;if(void 0!==e.rowIndex&&ml){const n=H(e.rowIndex,0,Math.max(al.length-1,0)),r=gl.offsets[n]??0,l=r+(gl.rowHeights[n]??Pr),o=t.scrollTop,i=t.scrollTop+t.clientHeight-Nr;r<o?t.scrollTop=r:l>i&&(t.scrollTop=l-(t.clientHeight-Nr))}else if(void 0!==e.rowIndex){const n=t.querySelector(`[data-mgh-row-index="${e.rowIndex}"]`);n?.scrollIntoView?.({block:"nearest"})}if(void 0!==e.colIndex){const n=Br.columns[H(e.colIndex,0,Br.columns.length-1)];if(n&&!n.pinned){const e=Br.columns.filter(e=>"left"===e.pinned).reduce((e,t)=>e+t.width,0),r=Br.columns.filter(e=>"right"===e.pinned).reduce((e,t)=>e+t.width,0),l=t.scrollLeft+e,o=t.scrollLeft+t.clientWidth-r;n.x<l?t.scrollLeft=n.x-e:n.x+n.width>o&&(t.scrollLeft=n.x+n.width-t.clientWidth+r)}}return!0},Hl=(e,t,n)=>{if(0===al.length||0===Br.columns.length)return;let r=ar?al.findIndex(e=>e.id===ar.id):-1,l=ar?Br.columns.findIndex(e=>e.col.field===ar.field):-1;-1===r&&(r=0),-1===l&&(l=0),r="first"===n?.row?0:"last"===n?.row?al.length-1:H(r+e,0,al.length-1),l="first"===n?.col?0:"last"===n?.col?Br.columns.length-1:H(l+t,0,Br.columns.length-1);const o={id:al[r].id,field:Br.columns[l].col.field};sr.current=!0,dr(o),Al({rowIndex:r,colIndex:l})},Ll=e=>!Ye&&!e.disableReorder&&!T(e.field),Vl=e.useRef(null),Bl=Wr.length,Ul=Or?ll:_r.length,$l=e.useMemo(()=>({sortModel:pn,filterModel:fn,paginationModel:{page:il,pageSize:En.pageSize},pageCount:ol,rowCount:Ul,totalRowCount:Rr.length,columnVisibilityModel:Tn,orderedFields:Hr.map(e=>e.field),columnWidths:Zn,pinnedColumns:Ln,density:An,densityFactor:Ir,rowSelectionModel:{type:"include",ids:Qn},rowGroupingModel:Bn,aggregationModel:$n,expandedDetailPanels:jn,preferencePanel:{open:cr.open,openedPanelValue:cr.openedPanelValue,targetField:cr.targetField},filterCount:Bl,quickFilterValues:qr}),[pn,fn,il,En.pageSize,ol,Ul,Rr.length,Tn,Hr,Zn,Ln,An,Ir,Qn,Bn,$n,jn,cr.open,cr.openedPanelValue,cr.targetField,Bl,qr]);an.current={api:cn,state:$l,rowsById:zr,rowEntries:Rr,nodesById:nl,groupsById:rl,sortedLeaves:tl,pagedRows:al,getRowId:l,setRowOverride:kr,orderedUserColumns:Hr,visibleUserColumns:Vr,getColumn:$r,columnVisibilityModel:Tn,setColumnVisibilityModel:On,setColumnWidth:(e,t)=>{const n=$r(e);if(!n)return;const r=H(t,n.minWidth??G,n.maxWidth??1/0);er(t=>{const n={...t,[e]:r};return kl(n),n}),_e?.({colDef:n,width:r},dn())},setColumnIndex:(e,t,n=null)=>{const r=Hr.map(e=>e.field),l=r.indexOf(e);if(-1===l)return;const o=((e,t,n)=>{const r=e.slice(),[l]=r.splice(t,1);return r.splice(n,0,l),r})(r,l,H(t,0,r.length-1));Jn(o),Ml(o);const i=Gr.get(e);i&&je?.({column:i,targetIndex:t,oldIndex:l},n,dn())},columnWidths:Zn,autosizeColumns:Sl,pinColumn:(e,t)=>{if(Je)return;const n=(Ln.left??[]).filter(t=>t!==e),r=(Ln.right??[]).filter(t=>t!==e);"left"===t?n.push(e):r.unshift(e),Vn({left:n,right:r})},unpinColumn:e=>{Vn({left:(Ln.left??[]).filter(t=>t!==e),right:(Ln.right??[]).filter(t=>t!==e)})},isColumnPinned:e=>!Je&&(-1!==(Ln.left??[]).indexOf(e)?"left":-1!==(Ln.right??[]).indexOf(e)&&"right"),pinnedColumns:Ln,setPinnedColumns:Vn,sortModel:pn,setSortModel:hn,sortColumn:Cl,filterModel:fn,setFilterModel:bn,upsertFilterItems:e=>{let t=fn.items.slice();e.forEach(e=>{const n=void 0===e.id?{...e,id:`${Date.now()}-${Math.random().toString(36).slice(2,8)}`}:e,r=t.findIndex(e=>void 0!==e.id&&e.id===n.id);-1===r?t.push(n):t[r]=n}),Pe&&t.length>1&&(t=t.slice(-1)),bn({...fn,items:t})},deleteFilterItem:e=>{bn({...fn,items:fn.items.filter(t=>void 0!==e.id?t.id!==e.id:t!==e)})},showPreferences:(e,t,n)=>{ur(null),gr({open:!0,openedPanelValue:e,targetField:n,anchorEl:t??rn.current??tn.current})},hidePreferences:Fl,selectedIds:Qn,setSelectedIds:Xn,selectRows:yl,isRowSelectableFn:hl,paginationModel:{page:il,pageSize:En.pageSize},setPaginationModel:Gn,setDensity:Hn,toggleDetailPanel:Rl,expandedDetailPanels:jn,setExpandedDetailPanels:_n,rowGroupingModel:Bn,setRowGroupingModel:Un,setRowChildrenExpansion:zl,aggregationModel:$n,setAggregationModel:Wn,startCellEditMode:Pl,stopCellEditMode:Nl,editingCell:rr,setEditValue:ir,buildCellParams:Tl,setFocusedCell:dr,scrollToIndexes:Al,forceUpdate:ln,virtual:ml},Jt&&(Jt.current=cn),e.useEffect(()=>{Zt?.($l,{api:cn})},[$l,Zt,cn]);const Wl=e.useMemo(()=>({header:i,pagination:oe,pageSizeOptions:ae,hideFooterPagination:me,hideFooterRowCount:ue,hideFooterSelectedRowCount:pe,disableColumnFilter:Ie,disableColumnSelector:Qe,disableDensitySelector:le,disableColumnPinning:Je,disableColumnSorting:we,disableMultipleColumnsSorting:xe,disableMultipleColumnsFiltering:Pe,disableRowGrouping:Tt,disableAggregation:Vt,checkboxSelection:tt,aggregationFunctions:Xr,quickFilterDebounceMs:Ne}),[i,oe,ae,me,ue,pe,Ie,Qe,le,Je,we,xe,Pe,Tt,Vt,tt,Xr,Ne]),ql=e.useMemo(()=>({api:cn,state:$l,localeText:on,themeMode:w,rootProps:Wl,columns:Hr,visibleColumns:Vr}),[cn,$l,on,w,Wl,Hr,Vr]),jl=(t,n)=>{const{col:r}=t,l=r.field;if(l===F){if("group"===n.kind&&n.group){const t=n.group.descendants.map(e=>e.id),r=t.reduce((e,t)=>e+(Qn.has(t)?1:0),0);return e.createElement(Qt,{checked:t.length>0&&r===t.length,indeterminate:r>0&&r<t.length,label:on.checkboxSelectionSelectRow,onClick:e=>e.stopPropagation(),onChange:()=>yl(t,r!==t.length,!1)})}if("leaf"!==n.kind)return null;const t=hl(n.id,n.row),r=Qn.has(n.id);return e.createElement(Qt,{checked:r,disabled:!t,label:r?on.checkboxSelectionUnselectRow:on.checkboxSelectionSelectRow,tabIndex:-1,onClick:e=>e.stopPropagation(),onChange:()=>{yr.current=n.id,yl([n.id],!r,lt)}})}if(l===I){if("leaf"!==n.kind||!n.row)return null;const t=jn.has(n.id),r=Ft?.(Ol(n.id,n.row));return null==r||!1===r?null:e.createElement(Wt,{size:"small",className:L("mgh-grid-detail-toggle",t&&"mgh-grid-detail-toggle--expanded"),label:t?on.collapseDetailPanel:on.expandDetailPanel,"aria-expanded":t,tabIndex:-1,onClick:e=>{e.stopPropagation(),Rl(n.id)}},e.createElement(Ct,null))}if(l===S){if("group"===n.kind&&n.group){const t=n.group,r=Jr(t),l=Gt?.hideDescendantCount;return e.createElement("div",{className:"mgh-grid-group-cell",style:{paddingLeft:20*n.depth}},e.createElement(Wt,{size:"small",className:L("mgh-grid-group-toggle",r&&"mgh-grid-group-toggle--expanded"),label:r?on.collapseDetailPanel:on.expandDetailPanel,"aria-expanded":r,tabIndex:-1,onClick:e=>{e.stopPropagation(),zl(t.id,!r)}},e.createElement(Mt,null)),e.createElement("span",{className:"mgh-grid-group-label",title:t.groupingLabel},t.groupingLabel),!l&&e.createElement("span",{className:"mgh-grid-group-count"},"(",t.descendants.length,")"))}return null}if("group"===n.kind||"footer"===n.kind){const t=n.aggregates?.[l];if(!t||O(t.value))return null;const o=Xr[t.fn],i=an.current.api,a=n.group?.descendants[0]?.row??an.current.sortedLeaves[0]?.row??{},d=o?.valueFormatter?o.valueFormatter(t.value):r.valueFormatter?r.valueFormatter(t.value,a,r,i):ee(t.value,r);return e.createElement(e.Fragment,null,e.createElement("span",{className:"mgh-grid-aggregation-label"},o?.label??t.fn),e.createElement("span",{className:"mgh-grid-cell-text"},ne(d)))}if(!n.row)return null;const o=Tl(n.id,l,n.row,n.node);if("edit"===o.cellMode)return(t=>{const n=t.colDef,r=e=>Nl(t.id,t.field,!1,e),l=()=>Nl(t.id,t.field,!0,"escapeKeyDown");if(n.renderEditCell)return n.renderEditCell({...t,editValue:or,onValueChange:ir,commit:()=>r("enterKeyDown"),cancel:l});const o={autoFocus:!0,onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),e.stopPropagation(),r("enterKeyDown")):"Escape"===e.key?(e.preventDefault(),e.stopPropagation(),l()):"Tab"===e.key?r("tabKeyDown"):e.stopPropagation()},onBlur:()=>r("cellFocusOut"),onClick:e=>e.stopPropagation()};switch(n.type){case"boolean":return e.createElement(Qt,{...o,checked:Boolean(or),onChange:e=>ir(e.target.checked)});case"singleSelect":{const r=J(n,t.row,t.id);return e.createElement(_t,{...o,size:"small",value:null==or?"":String(or),onChange:e=>{const t=r.find(t=>String(X(n,t))===e.target.value);ir(void 0!==t?X(n,t):e.target.value)}},e.createElement("option",{value:""}),r.map(t=>{const r=X(n,t);return e.createElement("option",{key:String(r),value:String(r)},Y(n,t))}))}case"number":return e.createElement(jt,{...o,size:"small",type:"number",value:null==or?"":or,onChange:e=>ir(e.target.value)});case"date":case"dateTime":return e.createElement(jt,{...o,size:"small",type:"date"===n.type?"date":"datetime-local",value:"string"==typeof or&&/^\d{4}-\d{2}-\d{2}/.test(or)?or:Dn(or,"dateTime"===n.type),onChange:e=>ir(e.target.value)});default:return e.createElement(jt,{...o,size:"small",type:"text",value:null==or?"":String(or),onChange:e=>ir(e.target.value)})}})(o);if(r.renderCell)return r.renderCell(o);if("actions"===r.type){const t=r.getActions?r.getActions(Ol(n.id,n.row)):[];return e.createElement(Cn,{actions:t,themeMode:w,moreLabel:on.actionsCellMore})}if("boolean"===r.type)return O(o.value)?null:o.value?e.createElement(Et,{"aria-label":on.booleanCellTrueLabel}):e.createElement(bt,{"aria-label":on.booleanCellFalseLabel});const i=o.formattedValue;if(null==i)return null;if(e.isValidElement(i))return i;const a=ne(i);return e.createElement("span",{className:"mgh-grid-cell-text",title:a.length>20?a:void 0},a)},_l=e=>({width:e.width,minWidth:e.width,maxWidth:e.width,left:"left"===e.pinned?e.offset:void 0,right:"right"===e.pinned?e.offset:void 0}),Kl=(e,t)=>L("left"===e.pinned&&`${t}--pinned-left`,"right"===e.pinned&&`${t}--pinned-right`,e.isLastLeft&&Br.hasPinning&&`${t}--pinned-left-last`,e.isFirstRight&&`${t}--pinned-right-first`),Ql=Boolean(ht||ft||!rt),Xl=(t,n)=>{const r="leaf"===t.kind&&Qn.has(t.id),l="leaf"===t.kind&&t.row&&pt?pt({...Ol(t.id,t.row),indexRelativeToCurrentPage:n.index,isFirstVisible:n.isFirst,isLastVisible:n.isLast,rowNode:t.node}):void 0;return e.createElement("div",{role:"row","aria-rowindex":n.index+2,"aria-selected":"leaf"===t.kind?r:void 0,"data-mgh-row-id":String(t.id),"data-mgh-row-index":n.index,className:L("mgh-grid-row",r&&"mgh-grid-row--selected",Ql&&"leaf"===t.kind&&"mgh-grid-row--clickable","group"===t.kind&&"mgh-grid-row--group","pinnedRow"===t.kind&&"mgh-grid-row--pinned","footer"===t.kind&&"mgh-grid-row--footer",n.isAuto&&"mgh-grid-row--auto-height",l),style:{width:Br.totalWidth,height:n.isAuto?void 0:n.height,minHeight:n.isAuto?Pr:void 0},onClick:e=>{"leaf"===t.kind&&t.row?(rt||((e,t)=>{if("group"===e.kind&&e.group){const t=e.group.descendants.map(e=>e.id),n=t.every(e=>Qn.has(e));return void yl(t,!n,!1)}if("leaf"!==e.kind)return;const n=e.id;if(!hl(n,e.row))return;const r=!lt;if(t.shiftKey&&r&&null!==yr.current){const e=al.filter(e=>"leaf"===e.type).map(e=>e.id),r=e.indexOf(yr.current),l=e.indexOf(n);if(-1!==r&&-1!==l){const[n,o]=r<l?[r,l]:[l,r];return void yl(e.slice(n,o+1),!0,!tt&&!t.ctrlKey&&!t.metaKey)}}yr.current=n;const l=Qn.has(n);tt||t.ctrlKey||t.metaKey?yl([n],!l,!1):l&&1===Qn.size?yl([n],!1,!0):yl([n],!0,!0)})(t,e),ht?.(Ol(t.id,t.row),e,dn())):"group"===t.kind&&t.group&&zl(t.group.id,!Jr(t.group))},onDoubleClick:e=>{"leaf"===t.kind&&t.row&&ft?.(Ol(t.id,t.row),e,dn())}},Br.columns.map(r=>((t,n)=>{const{col:r}=t,l=r.field,o=Boolean(ar&&ar.id===n.id&&ar.field===l),i=Boolean(rr&&rr.id===n.id&&rr.field===l),a=("group"===n.kind||"footer"===n.kind)&&Boolean(n.aggregates?.[l]),d="leaf"===n.kind&&n.row?Tl(n.id,l,n.row,n.node):null,s=!!d&&Il(d),c=d&&r.cellClassName?"function"==typeof r.cellClassName?r.cellClassName(d):r.cellClassName:void 0,g=l===F,m=l===I;return e.createElement("div",{key:l,role:"gridcell","data-mgh-field":l,"data-mgh-colindex":Br.columns.indexOf(t),tabIndex:o?0:-1,"aria-selected":"leaf"===n.kind?Qn.has(n.id):void 0,className:L("mgh-grid-cell",`mgh-grid-cell--align-${r.align??"left"}`,Kl(t,"mgh-grid-cell"),o&&!i&&"mgh-grid-cell--focused",i&&"mgh-grid-cell--editing",s&&!i&&"mgh-grid-cell--editable","boolean"===r.type&&"mgh-grid-cell--boolean","actions"===r.type&&"mgh-grid-cell--actions",g&&"mgh-grid-cell--checkbox",m&&"mgh-grid-cell--detail-toggle",a&&"mgh-grid-cell--aggregation",c),style:_l(t),onMouseDown:()=>{"leaf"!==n.kind&&"group"!==n.kind||o||dr({id:n.id,field:l})},onClick:e=>{d&&xt&&xt(d,e,dn())},onDoubleClick:e=>{d&&(kt?.(d,e,dn()),s&&!i&&(e.stopPropagation(),Pl(n.id,l)))}},jl(t,n))})(r,t,n.isAuto)),e.createElement("div",{className:"mgh-grid-row-filler"}))},Yl=e=>({id:e.id,kind:e.type,row:e.row,node:e.node,depth:e.depth,group:e.group,aggregates:"group"===e.type&&e.group?cl(e.group):void 0}),Jl=(t,n)=>{const r=[];if((t??[]).forEach((t,o)=>{const i=W(t,l),a={id:i,kind:"pinnedRow",row:t,node:{type:"pinnedRow",id:i,depth:0,parent:null,position:n},depth:0};r.push(e.createElement(e.Fragment,{key:String(i)},Xl(a,{height:Pr,index:o,isFirst:!1,isLast:!1,isAuto:!1})))}),"bottom"===n&&dl){const t={id:P,kind:"footer",row:null,node:{type:"footer",id:P,depth:0,parent:null},depth:0,aggregates:dl};r.push(e.createElement(e.Fragment,{key:P},Xl(t,{height:Pr,index:0,isFirst:!1,isLast:!1,isAuto:!1})))}return r},Zl=(t,n)=>{const{col:r}=t,l=r.field,o=pn.findIndex(e=>e.field===l&&e.sort),i=-1!==o?pn[o]:void 0,a=!1!==r.sortable&&!we&&!T(l)||l===S&&!1!==r.sortable,d=!Ke&&!r.disableColumnMenu&&!T(l)||l===S&&!Ke,s=!Xe&&!1!==r.resizable&&!T(l)||l===S&&!Xe,c=Ll(r),g=fr?.field===l,m=fr&&fr.overField===l&&fr.field!==l,u=mr?.field===l,p={field:l,colDef:r,api:cn},h=r.headerClassName?"function"==typeof r.headerClassName?r.headerClassName(p):r.headerClassName:void 0;let f;return f=l===F?lt?null:e.createElement(Qt,{checked:xl,indeterminate:wl,disabled:0===fl.length,label:xl?on.checkboxSelectionUnselectAllRows:on.checkboxSelectionSelectAllRows,onChange:El,onClick:e=>e.stopPropagation()}):l===I?null:r.renderHeader?r.renderHeader(p):e.createElement("span",{className:"mgh-grid-header-title"},r.headerName??l),e.createElement("div",{key:l,role:"columnheader","aria-colindex":n+1,"aria-sort":i?"asc"===i.sort?"ascending":"descending":a?"none":void 0,"data-mgh-field":l,title:r.description,tabIndex:-1,draggable:c,className:L("mgh-grid-header-cell",`mgh-grid-header-cell--align-${r.headerAlign??"left"}`,Kl(t,"mgh-grid-header-cell"),a&&"mgh-grid-header-cell--sortable",l===F&&"mgh-grid-header-cell--checkbox",l===I&&"mgh-grid-header-cell--detail-toggle",n===Br.columns.length-1&&"mgh-grid-header-cell--last",g&&"mgh-grid-header-cell--dragging",m&&"left"===fr?.side&&"mgh-grid-header-cell--drop-left",m&&"right"===fr?.side&&"mgh-grid-header-cell--drop-right",u&&"mgh-grid-header-cell--menu-open",h),style:_l(t),onClick:e=>{a&&!pr&&Cl(l,void 0,e.shiftKey)},onDragStart:e=>{if(c){e.dataTransfer.effectAllowed="move";try{e.dataTransfer.setData("text/plain",l)}catch{}br({field:l,overField:null,side:"left"})}},onDragOver:e=>{if(!fr||fr.field===l)return;const n=Br.columns.find(e=>e.col.field===fr.field);if(!n||n.pinned!==t.pinned||!Ll(r))return;e.preventDefault(),e.dataTransfer.dropEffect="move";const o=e.currentTarget.getBoundingClientRect(),i=e.clientX<o.left+o.width/2?"left":"right";fr.overField===l&&fr.side===i||br({...fr,overField:l,side:i})},onDragLeave:()=>{fr&&fr.overField===l&&br({...fr,overField:null})},onDrop:e=>((e,t)=>{t.preventDefault();const n=fr;if(br(null),!n||n.field===e.col.field)return;const r=Br.columns.find(e=>e.col.field===n.field);if(!r||r.pinned!==e.pinned||!Ll(e.col))return;const l=n.side;if(r.pinned){const t=r.pinned,o=(Ln[t]??[]).slice(),i=o.indexOf(n.field);let a=o.indexOf(e.col.field);if(-1===i||-1===a)return;return o.splice(i,1),a=o.indexOf(e.col.field),o.splice("right"===l?a+1:a,0,n.field),void Vn({...Ln,[t]:o})}const o=Hr.map(e=>e.field),i=o.indexOf(n.field),a=o.filter(e=>e!==n.field);let d=a.indexOf(e.col.field);"right"===l&&(d+=1),a.splice(d,0,n.field),Jn(a),Ml(a);const s=Gr.get(n.field);s&&je?.({column:s,targetIndex:d,oldIndex:i},t,dn())})(t,e),onDragEnd:()=>br(null)},e.createElement("div",{className:"mgh-grid-header-title-container"},f,a&&e.createElement("span",{className:L("mgh-grid-sort-icon",i&&"mgh-grid-sort-icon--active"),"aria-hidden":"true"},"desc"===i?.sort?e.createElement(vt,{size:18}):e.createElement(wt,{size:18}),i&&pn.filter(e=>e.sort).length>1&&e.createElement("span",{className:"mgh-grid-sort-index"},o+1))),d&&e.createElement(Wt,{size:"small",className:L("mgh-grid-header-menu-btn",u&&"mgh-grid-header-menu-btn--open"),label:on.columnMenuLabel,"aria-haspopup":"menu","aria-expanded":u,tabIndex:-1,onClick:e=>{e.stopPropagation(),ur(t=>t?.field===l?null:{field:l,anchorEl:e.currentTarget})},onMouseDown:e=>e.stopPropagation()},e.createElement(yt,null)),s&&e.createElement("div",{className:L("mgh-grid-resize-handle",pr===l&&"mgh-grid-resize-handle--active"),role:"separator","aria-orientation":"vertical",onPointerDown:e=>((e,t)=>{t.preventDefault(),t.stopPropagation(),Vl.current={field:e.col.field,startX:t.clientX,startWidth:e.width,lastWidth:e.width,min:e.col.minWidth??G,max:e.col.maxWidth??1/0},hr(e.col.field);const n=e=>{const t=Vl.current;if(!t)return;const n=H(t.startWidth+(e.clientX-t.startX),t.min,t.max);t.lastWidth=n,er(e=>e[t.field]===n?e:{...e,[t.field]:n})},r=()=>{window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",r);const e=Vl.current;if(Vl.current=null,hr(null),!e)return;const t={...an.current.columnWidths,[e.field]:e.lastWidth};er(t),kl(t);const l=an.current.getColumn(e.field);l&&e.lastWidth!==e.startWidth&&_e?.({colDef:l,width:e.lastWidth},dn())};window.addEventListener("pointermove",n),window.addEventListener("pointerup",r)})(t,e),onClick:e=>e.stopPropagation(),onDoubleClick:e=>{e.stopPropagation(),Sl({columns:[l]})},draggable:!1,onDragStart:e=>{e.preventDefault(),e.stopPropagation()}}))},eo=null===C.toolbar?null:C.toolbar??sn,to=null===C.footer?null:C.footer??gn,no=C.noRowsOverlay??vn,ro=C.loadingOverlay??yn,lo={...E,...M.toolbar},oo={text:k,...M.noRowsOverlay},io={...M.loadingOverlay},ao=!o&&0===al.length,so=mr?$r(mr.field):void 0,co={height:"auto",flexGrow:1,...zn(p),...zn(u),...v},go={flexGrow:1,...zn(f),...zn(h)},mo={...zn(x),...zn(b),"--mgh-grid-header-height":`${Nr}px`,"--mgh-grid-row-height":`${Pr}px`},uo=Sr>0&&Sr<600,po=e.createElement("div",{ref:tn,id:en,role:"grid","aria-rowcount":Ul+1,"aria-colcount":Br.columns.length,"aria-multiselectable":!(!tt||lt)||void 0,"aria-busy":o||void 0,className:L("mgh-grid",_&&"mgh-grid--auto-height",!Br.hasPinning&&"mgh-grid--no-pinned-shadow",c),style:mo,onKeyDown:e=>{if(rr)return;const t=e.target;if(t&&("INPUT"===t.tagName||"SELECT"===t.tagName||"TEXTAREA"===t.tagName||"BUTTON"===t.tagName))return;const n=Math.max(1,Math.floor(Math.max(Fr-Nr,Pr)/Pr));switch(e.key){case"ArrowDown":e.preventDefault(),Hl(1,0);break;case"ArrowUp":e.preventDefault(),Hl(-1,0);break;case"ArrowLeft":e.preventDefault(),Hl(0,-1);break;case"ArrowRight":e.preventDefault(),Hl(0,1);break;case"PageDown":e.preventDefault(),Hl(n,0);break;case"PageUp":e.preventDefault(),Hl(-n,0);break;case"Home":e.preventDefault(),Hl(0,0,e.ctrlKey||e.metaKey?{row:"first",col:"first"}:{col:"first"});break;case"End":e.preventDefault(),Hl(0,0,e.ctrlKey||e.metaKey?{row:"last",col:"last"}:{col:"last"});break;case"Enter":case"F2":if(ar){const t=nl.get(ar.id);if("group"===t?.type&&ar.field===S){const e=rl.get(ar.id);e&&zl(e.id,!Jr(e))}else e.preventDefault(),Pl(ar.id,ar.field)}break;case" ":if(ar&&(tt||!rt)){const t=al.find(e=>e.id===ar.id);t&&"leaf"===t.type&&t.row&&(e.preventDefault(),yl([t.id],!Qn.has(t.id),!1))}break;case"Escape":cr.open&&Fl(),mr&&ur(null);break;default:(e.ctrlKey||e.metaKey)&&"a"===e.key.toLowerCase()&&tt&&!lt&&(e.preventDefault(),yl(fl,!0))}}},y&&eo&&e.createElement("div",{ref:rn},e.createElement(eo,{...lo})),e.createElement("div",{className:"mgh-grid-main"},e.createElement("div",{ref:nn,className:"mgh-grid-scroller",onScroll:pl,tabIndex:-1},e.createElement("div",{className:"mgh-grid-columns",role:"rowgroup",style:{width:Br.totalWidth}},e.createElement("div",{className:"mgh-grid-header-row",role:"row","aria-rowindex":1,style:{height:Nr}},Br.columns.map((e,t)=>Zl(e,t)),e.createElement("div",{className:"mgh-grid-header-filler"}))),St?.top&&St.top.length>0&&e.createElement("div",{className:"mgh-grid-pinned-rows mgh-grid-pinned-rows--top",role:"rowgroup",style:{top:Nr,width:Br.totalWidth}},Jl(St.top,"top")),e.createElement("div",{className:L("mgh-grid-body",ml?"mgh-grid-body--virtual":"mgh-grid-body--flow"),role:"rowgroup",style:ml?{height:gl.total,width:Br.totalWidth}:{width:Br.totalWidth,minHeight:ao||o?120:void 0}},(()=>{const{start:t,end:n}=ul,r=[];for(let l=t;l<n;l+=1){const t=al[l],n=Yl(t),o=gl.detailHeights[l],i="leaf"===t.type&&Boolean(t.row)&&Boolean(Ft)&&jn.has(t.id),a=i&&t.row?Ft?.(Ol(t.id,t.row)):null,d=!!(i&&t.row&&It)&&"auto"===It({id:t.id,row:t.row}),s=!(ml||!B||"leaf"!==t.type||!t.row||"auto"!==B({id:t.id,model:t.row,densityFactor:Ir}));r.push(e.createElement("div",{key:String(t.id),className:"mgh-grid-row-block",style:ml?{top:gl.offsets[l],width:Br.totalWidth}:{width:Br.totalWidth}},Xl(n,{height:gl.rowHeights[l],index:l,isFirst:0===l,isLast:l===al.length-1,isAuto:s}),i&&null!=a&&!1!==a&&e.createElement("div",{className:"mgh-grid-detail-panel",style:{height:d?void 0:o||void 0,width:Sr||void 0},onClick:e=>e.stopPropagation()},a)))}return r})()),(St?.bottom&&St.bottom.length>0||dl)&&e.createElement("div",{className:"mgh-grid-pinned-rows mgh-grid-pinned-rows--bottom",role:"rowgroup",style:{width:Br.totalWidth}},Jl(St?.bottom,"bottom"))),o&&e.createElement("div",{className:"mgh-grid-overlay mgh-grid-overlay--loading",style:{top:Nr}},e.createElement(ro,{...io})),ao&&e.createElement("div",{className:"mgh-grid-overlay",style:{top:Nr}},e.createElement(no,{...oo}))),!ge&&to&&e.createElement(to,{...M.footer}),e.createElement(Yt,{open:cr.open,anchorEl:cr.anchorEl,onClose:Fl,themeMode:w,placement:"bottom-start",autoFocus:!0},"columns"===cr.openedPanelValue?e.createElement(mn,null):e.createElement(xn,null)),so&&mr&&e.createElement(wn,{column:so,anchorEl:mr.anchorEl,open:!0,onClose:()=>ur(null),themeMode:w,panelAnchorEl:rn.current}));return e.createElement(De.Provider,{value:ql},e.createElement("div",{className:L("mgh-grid-card",s&&"mgh-grid-card--plain",g),"data-mgh-theme":w,style:co},!s&&(void 0!==i||d||a)&&e.createElement("div",{className:"mgh-grid-card-header"},void 0!==i&&e.createElement("h3",{className:"mgh-grid-card-title"},i),d&&e.createElement("div",{className:"mgh-grid-card-header-center"},d),e.createElement("div",{className:"mgh-grid-card-header-end",style:{gap:uo?8:16}},a)),e.createElement("div",{className:L("mgh-grid-box",m),style:go},po)))}Gn.displayName="MGHGrid",exports.ConfirmDialog=function({title:t,content:n,action:r,open:l,onClose:o,...g}){return e.createElement(a,{fullWidth:!0,maxWidth:"xs",open:l,onClose:o,...g},e.createElement(d,{sx:{pb:2}},t),n&&e.createElement(c,{sx:{typography:"body2"}}," ",n," "),e.createElement(s,null,e.createElement(i,{onClick:o},"Cancel"),r))},exports.CustomGridToolbarExport=function({csvOptions:t={allColumns:!0},excelOptions:r={allColumns:!0},printOptions:l,customMenuItem:o,...i}){return e.createElement(n.GridToolbarExportContainer,{...i},o,e.createElement(n.GridCsvExportMenuItem,{options:t}),e.createElement(n.GridExcelExportMenuItem,{options:r}),e.createElement(n.GridPrintExportMenuItem,{options:l}))},exports.CustomNoRowsOverlay=f,exports.DataGridQuickFilter=E,exports.ExportingDialog=function({open:n,text:r=e.createElement(e.Fragment,null,"Your export is currently being built. Some larger exports can take a couple of minutes to complete. ",e.createElement("br",null),e.createElement("br",null),"Please do not close your browser or refresh the page.")}){return e.createElement(t.Dialog,{open:n,fullWidth:!0,sx:{p:4}},e.createElement(t.DialogContent,{sx:{p:4,textAlign:"center"}},e.createElement(t.Typography,{variant:"subtitle1",sx:{mb:3}},r),e.createElement(t.CircularProgress,null)))},exports.Iconify=C,exports.Label=k,exports.MGHDataGrid=function({header:r,rows:l,columns:o,onRowClick:i,onRowDoubleClick:a,pagination:d=!0,pageSize:s=25,slots:c={},slotProps:g={},toolbarProps:m={},initialState:u={},pageSizeOptions:p=[10,25,50,100],sx:b={},cardSx:y={flexGrow:1},boxSx:E={flexGrow:1},columnVisibilityModel:C,onColumnVisibilityModelChange:M,columnVisibilityStorageKey:k,columnOrderStorageKey:S,disableDensitySelector:F=!1,disableRowSelectionOnClick:I=!0,disableColumnFilter:P=!1,disableColumnMenu:N=!1,disableColumnSelector:R=!1,checkboxSelectionVisibleOnly:z=!1,renderHeaderEndContent:D,renderHeaderCenterContent:G,noRowsText:T="No data found within selected parameters.",checkboxSelection:O=!1,onRowSelectionModelChange:A,rowSelectionModel:H,getRowClassName:L,getDetailPanelContent:V,getDetailPanelHeight:B,loading:U=!1,isRowSelectable:$,getRowHeight:W,showToolbar:q=!0,hideFooterRowCount:j=!1,onColumnOrderChange:_,defaultGroupingExpansionDepth:K,pinnedRows:Q,keepNonExistentRowsSelected:X=!0}){const Y=h("down","sm"),J=e.useMemo(()=>{if(k)return x(k)??void 0},[k]),Z=e.useMemo(()=>{if(!S)return;return((e,t)=>{if(!e||0===e.length)return;const n=new Set(t.map(e=>e.field));return e.filter(e=>n.has(e))})(x(S),o)},[S,o]),ee=void 0!==C?C:J,te=e.useCallback((e,t)=>{k&&w(k,e),M?.(e,t)},[k,M]),ne=e.useCallback((e,t,n)=>{if(S){const e=n.api.getAllColumns().map(e=>e.field);w(S,e)}_?.(e,t,n)},[S,_]),re={density:"compact",pagination:{paginationModel:{pageSize:s}},filter:{filterModel:{items:[],quickFilterExcludeHiddenColumns:!1}},...u,columns:{...u?.columns,columnVisibilityModel:ee??u?.columns?.columnVisibilityModel,orderedFields:Z??u?.columns?.orderedFields}};return e.createElement(t.Card,{sx:{height:"auto",...y}},e.createElement(t.Box,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",pr:1}},e.createElement(t.CardHeader,{title:r,sx:{mb:2}}),G,e.createElement(t.Box,{sx:{display:"flex",gap:Y?1:2,alignItems:"center",flexWrap:"wrap",justifyContent:"flex-end"}},D)),e.createElement(t.Box,{component:"div",sx:{display:"flex",flexDirection:"column",flexGrow:1,...E}},e.createElement(n.DataGridPremium,{loading:U,onRowClick:i,onRowDoubleClick:a,rows:l,columns:o,pagination:d,disableDensitySelector:F,disableRowSelectionOnClick:I,disableColumnFilter:P,disableColumnMenu:N,disableColumnSelector:R,slots:{noRowsOverlay:f,toolbar:v,...c},slotProps:{noRowsOverlay:{text:T},toolbar:m,...g},initialState:re,pageSizeOptions:p,sx:{"& .MuiDataGrid-row:hover":{cursor:i||a?"pointer":"default"},...b},onColumnVisibilityModelChange:te,checkboxSelection:O,onRowSelectionModelChange:A,rowSelectionModel:H,isRowSelectable:$,getRowClassName:L,getDetailPanelContent:V,getDetailPanelHeight:B,checkboxSelectionVisibleOnly:z,disableRowSelectionExcludeModel:!0,showToolbar:q,hideFooterRowCount:j,getRowHeight:W,onColumnOrderChange:ne,defaultGroupingExpansionDepth:K,pinnedRows:Q,keepNonExistentRowsSelected:X})))},exports.MGHGrid=Gn,exports.MGHGridActionsCellItem=En,exports.MGHGridButton=$t,exports.MGHGridCheckbox=Qt,exports.MGHGridColumnMenu=wn,exports.MGHGridColumnsButton=nn,exports.MGHGridColumnsPanel=mn,exports.MGHGridContext=De,exports.MGHGridDefaultToolbar=sn,exports.MGHGridDensitySelector=ln,exports.MGHGridExportMenu=an,exports.MGHGridExportMenuItem=on,exports.MGHGridFilterPanel=xn,exports.MGHGridFiltersButton=rn,exports.MGHGridFooter=gn,exports.MGHGridIconButton=Wt,exports.MGHGridIcons=Ut,exports.MGHGridLoadingOverlay=yn,exports.MGHGridMenu=Jt,exports.MGHGridMenuDivider=en,exports.MGHGridMenuItem=Zt,exports.MGHGridNoRowsOverlay=vn,exports.MGHGridPagination=cn,exports.MGHGridPopover=Yt,exports.MGHGridQuickFilter=dn,exports.MGHGridSelect=_t,exports.MGHGridTextInput=jt,exports.MGHGridToolbar=v,exports.MGH_GRID_AGGREGATION_FUNCTIONS=Ce,exports.MGH_GRID_CHECKBOX_FIELD=F,exports.MGH_GRID_CSS=Pe,exports.MGH_GRID_DEFAULT_LOCALE_TEXT=Me,exports.MGH_GRID_DETAIL_PANEL_TOGGLE_FIELD=I,exports.MGH_GRID_GROUPING_COLUMN_FIELD=S,exports.MGH_GRID_STYLE_ID=Ie,exports.mghGridBooleanFilterOperators=xe,exports.mghGridBuildXlsx=at,exports.mghGridGetDataAsCsv=Ue,exports.mghGridGetDateFilterOperators=be,exports.mghGridNumberFilterOperators=he,exports.mghGridSingleSelectFilterOperators=we,exports.mghGridStringFilterOperators=ue,exports.useMGHGridApiContext=()=>Ge().api,exports.useMGHGridApiRef=()=>e.useRef(null),exports.useMGHGridContext=Ge,exports.useMGHGridLocaleText=()=>Ge().localeText,exports.useMGHGridStyles=ze,exports.useResponsive=h;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|