@ehfuse/mui-virtual-data-table 1.1.25 → 1.1.27

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/README.md CHANGED
@@ -104,7 +104,7 @@ function App() {
104
104
  // Optional - Styling
105
105
  striped={boolean | string} // Zebra striping (true: default gray (#f5f5f5), string: custom color, default: false)
106
106
  rowDivider={boolean} // Show row borders (default: true)
107
- rowHeight={number} // Row height in px (default: 50)
107
+ rowHeight={number} // Fixed row height in px (default: 50) — rows keep this height even when showFooter fills a taller container
108
108
  columnHeight={number} // Header height in px (default: 56, auto 2x for grouped headers)
109
109
  showPaper={boolean} // Wrap in Paper component (default: true)
110
110
  paddingX={string | number} // Horizontal padding (default: "1rem")
package/dist/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
- import{forwardRef as Xe,useCallback as Ce,useMemo as rt,useRef as ee,useEffect as me,memo as Nt,useState as nt}from"react";import{Box as ge,Table as Ot,TableBody as $t,TableCell as Re,TableContainer as Ft,TableHead as Pt,TableFooter as At,TableRow as Ve,TableSortLabel as ot,Paper as Bt,Typography as Vt}from"@mui/material";import{TableVirtuoso as Wt}from"react-virtuoso";import{jsx as tt}from"react/jsx-runtime";import{useRef as lt,useState as mt,useEffect as gt}from"react";import{Box as bt,CircularProgress as xt}from"@mui/material";var Ae=function(){return Ae=Object.assign||function(p){for(var f,k=1,L=arguments.length;k<L;k++){f=arguments[k];for(var D in f)Object.prototype.hasOwnProperty.call(f,D)&&(p[D]=f[D])}return p},Ae.apply(this,arguments)};function at(l){var p=l.visible,f=l.onComplete,k=l.fadeoutDuration,L=k===void 0?200:k,D=l.exitDelay,C=D===void 0?0:D,S=l.size,R=S===void 0?40:S,z=l.className,X=l.style,V=l.sx,K=l.indicator,E=l.background,j=E===void 0?{show:!0,color:"255, 255, 255",opacity:.9}:E,ue=lt(void 0),a=lt(null),_=mt(p),de=_[0],pe=_[1],P=j.show,Y=P===void 0?!0:P,T=j.color,I=T===void 0?"255, 255, 255":T,ne=j.opacity,oe=ne===void 0?.9:ne;if(gt(function(){var le=ue.current;if(le===!0&&p===!1&&a.current){var ae=a.current;ae.style.opacity="0",setTimeout(function(){pe(!1),f?.()},L+C)}else p===!0&&(pe(!0),a.current&&(a.current.style.opacity="1"));ue.current=p},[p,f,L,C]),!de)return null;var Se=function(){return typeof K=="string"?tt("img",{src:K,alt:"Loading",style:{width:R,height:R}}):K||tt(xt,{size:R})},ie=function(){return Y?I.startsWith("rgba")?{backgroundColor:I}:/^\d+,\s*\d+,\s*\d+$/.test(I)?{backgroundColor:"rgba(".concat(I,", ").concat(oe,")")}:oe!==1?{backgroundColor:I,"&::before":{content:'""',position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:I,opacity:oe,zIndex:-1}}:{backgroundColor:I}:{backgroundColor:"transparent"}};return tt(bt,{ref:a,className:z,style:Ae({},X),sx:Ae(Ae({position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3,opacity:p?1:0,transition:"opacity ".concat(L,"ms ease-out")},ie()),V),children:Se()})}import{Fragment as vt,jsx as st,jsxs as wt}from"react/jsx-runtime";var yt=`
1
+ import{forwardRef as _e,useCallback as De,useMemo as Ye,useRef as re,useEffect as ve,memo as $t,useState as rt}from"react";import{Box as we,Table as Nt,TableBody as Ot,TableCell as $e,TableContainer as Pt,TableHead as Ft,TableFooter as At,TableRow as Ve,TableSortLabel as nt,Paper as Bt,Typography as Vt}from"@mui/material";import{TableVirtuoso as Wt}from"react-virtuoso";import{jsx as tt}from"react/jsx-runtime";import{useRef as it,useState as mt,useEffect as gt}from"react";import{Box as bt,CircularProgress as xt}from"@mui/material";var Ae=function(){return Ae=Object.assign||function(h){for(var d,L=1,I=arguments.length;L<I;L++){d=arguments[L];for(var C in d)Object.prototype.hasOwnProperty.call(d,C)&&(h[C]=d[C])}return h},Ae.apply(this,arguments)};function lt(l){var h=l.visible,d=l.onComplete,L=l.fadeoutDuration,I=L===void 0?200:L,C=l.exitDelay,m=C===void 0?0:C,T=l.size,$=T===void 0?40:T,X=l.className,Q=l.style,j=l.sx,ee=l.indicator,N=l.background,K=N===void 0?{show:!0,color:"255, 255, 255",opacity:.9}:N,he=it(void 0),a=it(null),U=mt(h),me=U[0],ge=U[1],A=K.show,Z=A===void 0?!0:A,S=K.color,O=S===void 0?"255, 255, 255":S,oe=K.opacity,ie=oe===void 0?.9:oe;if(gt(function(){var ae=he.current;if(ae===!0&&h===!1&&a.current){var se=a.current;se.style.opacity="0",setTimeout(function(){ge(!1),d?.()},I+m)}else h===!0&&(ge(!0),a.current&&(a.current.style.opacity="1"));he.current=h},[h,d,I,m]),!me)return null;var Re=function(){return typeof ee=="string"?tt("img",{src:ee,alt:"Loading",style:{width:$,height:$}}):ee||tt(xt,{size:$})},le=function(){return Z?O.startsWith("rgba")?{backgroundColor:O}:/^\d+,\s*\d+,\s*\d+$/.test(O)?{backgroundColor:"rgba(".concat(O,", ").concat(ie,")")}:ie!==1?{backgroundColor:O,"&::before":{content:'""',position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:O,opacity:ie,zIndex:-1}}:{backgroundColor:O}:{backgroundColor:"transparent"}};return tt(bt,{ref:a,className:X,style:Ae({},Q),sx:Ae(Ae({position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e3,opacity:h?1:0,transition:"opacity ".concat(I,"ms ease-out")},le()),j),children:Re()})}import{Fragment as vt,jsx as at,jsxs as wt}from"react/jsx-runtime";var yt=`
2
2
  .vdt-css-spinner{box-sizing:border-box;border-radius:50%;border:4px solid rgba(28,64,125,0.14);border-top-color:#1c407d;animation:vdt-css-spinner-spin .75s linear infinite}
3
3
  @keyframes vdt-css-spinner-spin{to{transform:rotate(360deg)}}
4
- `;function ct({size:l=54}){return wt(vt,{children:[st("style",{children:yt}),st("span",{className:"vdt-css-spinner",role:"progressbar","aria-label":"loading",style:{display:"inline-block",width:l,height:l}})]})}import{useRef as Q,useEffect as ce,useState as q,useCallback as $,useMemo as Be,forwardRef as Mt,useImperativeHandle as Ct,useLayoutEffect as St}from"react";import{jsx as De,jsxs as dt}from"react/jsx-runtime";var Tt=["editor","textarea","input","select","textfield","form-control","contenteditable","MuiInputBase-input","MuiSelect-select","MuiOutlinedInput-input","MuiFilledInput-input","MuiInput-input","MuiFormControl-root","MuiTextField-root","MuiSelect-root","MuiOutlinedInput-root","MuiFilledInput-root","MuiInput-root","MuiAutocomplete-input","MuiDatePicker-input","MuiSlider-thumb","MuiSlider-rail","MuiSlider-track","MuiSlider-mark","MuiSlider-markLabel","MuiSlider-root","MuiSlider-colorPrimary","MuiSlider-sizeMedium","MuiIconButton-root","MuiButton-root","MuiButtonBase-root","MuiTouchRipple-root","MuiCheckbox-root","MuiRadio-root","MuiSwitch-root","PrivateSwitchBase-root","ant-input","ant-input-affix-wrapper","ant-input-group-addon","ant-input-number","ant-input-number-handler","ant-select","ant-select-selector","ant-select-selection-search","ant-select-dropdown","ant-cascader","ant-cascader-input","ant-picker","ant-picker-input","ant-time-picker","ant-calendar-picker","ant-slider","ant-slider-track","ant-slider-handle","ant-switch","ant-checkbox","ant-checkbox-wrapper","ant-radio","ant-radio-wrapper","ant-rate","ant-upload","ant-upload-drag","ant-form-item","ant-form-item-control","ant-btn","ant-dropdown","ant-dropdown-trigger","ant-menu","ant-menu-item","ant-tooltip","ant-popover","ant-modal","ant-drawer","ant-tree-select","ant-auto-complete","ant-mentions","ant-transfer","ui-input","ui-textarea","ui-select","ui-select-trigger","ui-select-content","ui-select-item","ui-button","ui-checkbox","ui-radio-group","ui-switch","ui-slider","ui-range-slider","ui-calendar","ui-date-picker","ui-combobox","ui-command","ui-command-input","ui-popover","ui-dialog","ui-sheet","ui-dropdown-menu","ui-context-menu","ui-menubar","ui-navigation-menu","ui-form","ui-form-control","ui-form-item","ui-form-field","ui-label","radix-ui","radix-select","radix-dropdown","radix-dialog","radix-popover","radix-accordion","radix-tabs","radix-slider","radix-switch","radix-checkbox","radix-radio","ql-editor","ql-container","ql-toolbar","ql-picker","ql-picker-label","ql-picker-options","ql-formats","ql-snow","ql-bubble","quill","quilleditor","monaco-editor","monaco-editor-background","view-lines","decorationsOverviewRuler","monaco-scrollable-element","CodeMirror","CodeMirror-code","CodeMirror-lines","CodeMirror-scroll","CodeMirror-sizer","cm-editor","cm-focused","cm-content","tox-editor-container","tox-editor-header","tox-edit-area","tox-tinymce","mce-content-body","ck-editor","ck-content","ck-toolbar","ck-editor__editable","ck-widget","slate-editor","slate-content","DraftEditor-root","DraftEditor-editorContainer","public-DraftEditor-content","ehfuse-editor","ehfuse-editor-wrapper","ehfuse-editor-content","ehfuse-toolbar","ehfuse-toolbar-group","ehfuse-cursor","text-editor","rich-text-editor","wysiwyg","ace_editor","ace_content"],ut=(l,p)=>{let f=l.tagName.toLowerCase(),k=["text","password","email","number","search","tel","url","checkbox","radio"];if(f==="input"){let L=l.type;return k.includes(L)}if(["textarea","select","button"].includes(f)||["svg","path","circle","rect","line","polygon","polyline"].includes(f)||l.getAttribute("contenteditable")==="true")return!0;if(p?.excludeSelectors){for(let L of p.excludeSelectors)if(l.matches(L))return!0}return kt(l,p)},kt=(l,p)=>{let f=[...Tt,...p?.excludeClasses||[]],k=l,L=0,D=5;for(;k&&L<=D;){if(f.some(C=>k.classList.contains(C)))return!0;if(k.classList.contains("MuiDialogContent-root"))break;k=k.parentElement,L++}return!1},Lt={},Dt={},Rt={},Et={},It={},Ht=Mt(({className:l="",style:p={},containerStyle:f={},contentStyle:k={},children:L,onScroll:D,thumb:C=Lt,track:S=Dt,arrows:R=Rt,dragScroll:z=Et,autoHide:X=It,showScrollbar:V=!0,detectInnerScroll:K=!1},E)=>{let j=Q({});ce(()=>{j.current={children:L,onScroll:D,showScrollbar:V,thumb:C,track:S,arrows:R,dragScroll:z,autoHide:X}});let ue=Q(null),a=Q(null),_=Q(null),de=Q(null),pe=Q(null),P=Q(null),[Y,T]=q(!1),[I,ne]=q(!1),[oe,Se]=q(!1),[ie,le]=q({y:0,scrollTop:0}),[ae,Ue]=q(0),[Ze,We]=q(0),[Ie,qe]=q(!1),[be,He]=q(!1),[Ne,w]=q({x:0,y:0,scrollTop:0,scrollLeft:0}),[m,ze]=q(null),[xe,fe]=q(null),[it,je]=q(!1),ye=Q(null),[_e,Oe]=q(!1),ve=Q(null),Te=Q(null),U=Q(null),H=Be(()=>{let t=C.color??"#606060";return{width:C.width??8,minHeight:C.minHeight??50,radius:C.radius??(C.width??8)/2,color:t,opacity:C.opacity??.6,hoverColor:C.hoverColor??t,hoverOpacity:C.hoverOpacity??1}},[C]),v=Be(()=>({width:S.width??16,color:S.color??"rgba(128, 128, 128, 0.1)",visible:S.visible??!0,alignment:S.alignment??"center",radius:S.radius??H.radius??4,margin:S.margin??4}),[S,H.radius]),A=Be(()=>{let t=R.color??"#808080";return{visible:R.visible??!1,step:R.step??50,color:t,opacity:R.opacity??.6,hoverColor:R.hoverColor??t,hoverOpacity:R.hoverOpacity??1}},[R]),we=Be(()=>({enabled:z.enabled??!0,excludeClasses:z.excludeClasses??[],excludeSelectors:z.excludeSelectors??[]}),[z]),h=Be(()=>({enabled:X.enabled??!0,delay:X.delay??1500,delayOnWheel:X.delayOnWheel??700}),[X]),M=H.width,ke=v.width,$e=H.minHeight,W=A.visible,Le=A.step,te=$(()=>{if(!a.current)return;let t=document.activeElement;t&&a.current.contains(t)&&t!==a.current||a.current.focus()},[]);Ct(E,()=>({getScrollContainer:()=>a.current,scrollTo:t=>{a.current&&a.current.scrollTo(t)},get scrollTop(){return a.current?.scrollTop||0},get scrollHeight(){return a.current?.scrollHeight||0},get clientHeight(){return a.current?.clientHeight||0}}),[]);let g=$(()=>{if(P.current){let o=P.current;if(document.contains(o)&&o.scrollHeight>o.clientHeight+2)return o;P.current=null}if(!a.current)return null;if(_.current&&_.current.scrollHeight>a.current.clientHeight+2)return P.current=a.current,a.current;if(!K)return null;let t=a.current.querySelectorAll('[data-virtuoso-scroller], [style*="overflow"], .virtuoso-scroller, [style*="overflow: auto"], [style*="overflow:auto"]');for(let o of t){let i=o;if(i!==a.current&&i.classList.contains("overlay-scrollbar-container"))continue;let s=i.parentElement,x=!1;for(;s&&s!==a.current;){if(s.classList.contains("overlay-scrollbar-container")&&s!==a.current){x=!0;break}s=s.parentElement}if(!x&&i.scrollHeight>i.clientHeight+2)return P.current=i,i}return null},[]),he=$(()=>g()!==null,[g]),F=$(()=>{ve.current&&(clearTimeout(ve.current),ve.current=null)},[]),Je=$(()=>{Te.current&&(clearTimeout(Te.current),Te.current=null)},[]),Ye=$(()=>{U.current&&(clearTimeout(U.current),U.current=null)},[]),n=$(t=>{h.enabled&&(F(),ve.current=setTimeout(()=>{T(!1),ve.current=null},t))},[F,h.enabled]),e=$(()=>{let t=g();if(!t){T(!1),qe(!1),F();return}if(qe(!0),!de.current)return;h.enabled||(T(!0),F());let o=t.clientHeight,i=t.scrollHeight,s=t.scrollTop,x=0;if(ue.current){let Ge=window.getComputedStyle(ue.current),et=parseFloat(Ge.paddingTop)||0,ht=parseFloat(Ge.paddingBottom)||0;x=et+ht}let y=W?M*2+v.margin*4:v.margin*2,N=o-y+x,O=o/i,se=Math.max(N*O,$e),Pe=i-o,J=N-se,Qe=Pe>0?s/Pe*J:0;Ue(se),We(Qe)},[g,F,W,M,$e,h.enabled]),d=$(t=>{t.preventDefault(),t.stopPropagation();let o=g();o&&(ne(!0),le({y:t.clientY,scrollTop:o.scrollTop}),F(),T(!0),te())},[g,F,te]),b=$(t=>{if(!I)return;let o=g();if(!o)return;let i=o.clientHeight,s=o.scrollHeight-i,x=t.clientY-ie.y,y=i-ae,N=x/y*s,O=Math.max(0,Math.min(s,ie.scrollTop+N));o.scrollTop=O,e()},[I,ie,ae,e,g]),u=$(()=>{ne(!1),he()&&n(h.delay)},[he,n,h.delay]),r=$(t=>{if(!de.current)return;let o=de.current.getBoundingClientRect(),i=t.clientY-o.top,s=g();if(!s)return;let x=s.clientHeight,y=s.scrollHeight,N=i/x*(y-x);s.scrollTop=Math.max(0,Math.min(y-x,N)),e(),T(!0),n(h.delay),te()},[e,n,h.delay,g,te]),B=$(t=>{if(t.preventDefault(),t.stopPropagation(),!a.current)return;let o=Math.max(0,a.current.scrollTop-Le);a.current.scrollTop=o,e(),T(!0),n(h.delay),te()},[e,n,Le,h.delay,te]),Z=$(t=>{if(t.preventDefault(),t.stopPropagation(),!a.current||!_.current)return;let o=a.current,i=_.current.scrollHeight-o.clientHeight,s=Math.min(i,o.scrollTop+Le);o.scrollTop=s,e(),T(!0),n(h.delay),te()},[e,n,Le,h.delay,te]),Fe=$(t=>{if(!we.enabled)return;let o=t.target;if(ut(o,we)||t.button!==0)return;let i=g();i&&(i.scrollHeight<=i.clientHeight||(t.preventDefault(),He(!0),w({x:t.clientX,y:t.clientY,scrollTop:i.scrollTop,scrollLeft:i.scrollLeft||0}),F()))},[we,ut,g,F]),G=$(t=>{if(!be)return;let o=g();if(!o)return;let i=Ne.x-t.clientX,s=Ne.y-t.clientY;if(Math.abs(s)<3&&Math.abs(i)<3)return;T(!0);let x=Math.max(0,Math.min(o.scrollHeight-o.clientHeight,Ne.scrollTop+s));o.scrollTop=x,e()},[be,Ne,g,e]),Me=$(()=>{He(!1),he()&&n(h.delay)},[he,n,h.delay]);ce(()=>{let t=y=>{e(),F(),T(!0);let N=_e?h.delayOnWheel:h.delay;n(N),D&&D(y)},o=()=>{Oe(!0),ye.current&&clearTimeout(ye.current),ye.current=setTimeout(()=>{Oe(!1)},300),F(),Ye(),U.current=setTimeout(()=>{T(!0),U.current=null},50)},i=[],s=g();s&&i.push(s);let x=a.current;return x&&!s&&(i.push(x),x.querySelectorAll('[data-virtuoso-scroller], [style*="overflow"], .virtuoso-scroller, [style*="overflow: auto"], [style*="overflow:auto"]').forEach(y=>{let N=y;if(N!==x&&N.classList.contains("overlay-scrollbar-container"))return;let O=N.parentElement;for(;O&&O!==x;){if(O.classList.contains("overlay-scrollbar-container")&&O!==x)return;O=O.parentElement}i.push(N)})),i.forEach(y=>{y.addEventListener("scroll",t,{passive:!0}),y.addEventListener("wheel",o,{passive:!0})}),()=>{i.forEach(y=>{y.removeEventListener("scroll",t),y.removeEventListener("wheel",o)}),ye.current&&clearTimeout(ye.current),U.current&&clearTimeout(U.current)}},[g,e,D,F,n,h,_e]),ce(()=>{let t=i=>{let s=g();if(!s)return;let{key:x}=i,{scrollTop:y,scrollHeight:N,clientHeight:O}=s,se=N-O,Pe=50,J=null;switch(x){case"ArrowUp":i.preventDefault(),J=Math.max(0,y-Pe);break;case"ArrowDown":i.preventDefault(),J=Math.min(se,y+Pe);break;case"PageUp":i.preventDefault(),J=Math.max(0,y-O);break;case"PageDown":i.preventDefault(),J=Math.min(se,y+O);break;case"Home":i.preventDefault(),J=0;break;case"End":i.preventDefault(),J=se;break;default:return}if(J!==null){let Qe=J/se,Ge=W?M*2+v.margin*4:v.margin*2,et=(O-Ge-ae)*Qe;We(et),s.scrollTop=J,F(),T(!0),n(h.delay)}},o=a.current;if(o)return o.addEventListener("keydown",t),()=>{o.removeEventListener("keydown",t)}},[g,W,M,v.margin,ae,F,n,h.delay]),ce(()=>{if(be)return document.addEventListener("mousemove",G),document.addEventListener("mouseup",Me),()=>{document.removeEventListener("mousemove",G),document.removeEventListener("mouseup",Me)}},[be,G,Me]),ce(()=>{if(I)return document.addEventListener("mousemove",b),document.addEventListener("mouseup",u),()=>{document.removeEventListener("mousemove",b),document.removeEventListener("mouseup",u)}},[I,b,u]),ce(()=>{e();let t=setTimeout(()=>{e()},100);return()=>clearTimeout(t)},[e]),St(()=>{je(!0),e(),!h.enabled&&he()&&T(!0)},[he,e,h.enabled]),ce(()=>{let t=new ResizeObserver(()=>{e()}),o=[];return a.current&&o.push(a.current),_.current&&o.push(_.current),P.current&&document.contains(P.current)&&o.push(P.current),o.forEach(i=>{t.observe(i)}),()=>t.disconnect()},[e]),ce(()=>{if(!a.current)return;let t=new MutationObserver(()=>{P.current=null,e()});return t.observe(a.current,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style"]}),()=>t.disconnect()},[e]);let re=Math.max(ke,M);return ce(()=>{let t="overlay-scrollbar-webkit-hide",o=document.getElementById(t);o&&o.remove();let i=document.createElement("style");return i.id=t,i.textContent=`
4
+ `;function st({size:l=54}){return wt(vt,{children:[at("style",{children:yt}),at("span",{className:"vdt-css-spinner",role:"progressbar","aria-label":"loading",style:{display:"inline-block",width:l,height:l}})]})}import{useRef as te,useEffect as fe,useState as G,useCallback as F,useMemo as Be,forwardRef as Mt,useImperativeHandle as Ct,useLayoutEffect as Tt}from"react";import{jsx as Ie,jsxs as ut}from"react/jsx-runtime";var St=["editor","textarea","input","select","textfield","form-control","contenteditable","MuiInputBase-input","MuiSelect-select","MuiOutlinedInput-input","MuiFilledInput-input","MuiInput-input","MuiFormControl-root","MuiTextField-root","MuiSelect-root","MuiOutlinedInput-root","MuiFilledInput-root","MuiInput-root","MuiAutocomplete-input","MuiDatePicker-input","MuiSlider-thumb","MuiSlider-rail","MuiSlider-track","MuiSlider-mark","MuiSlider-markLabel","MuiSlider-root","MuiSlider-colorPrimary","MuiSlider-sizeMedium","MuiIconButton-root","MuiButton-root","MuiButtonBase-root","MuiTouchRipple-root","MuiCheckbox-root","MuiRadio-root","MuiSwitch-root","PrivateSwitchBase-root","ant-input","ant-input-affix-wrapper","ant-input-group-addon","ant-input-number","ant-input-number-handler","ant-select","ant-select-selector","ant-select-selection-search","ant-select-dropdown","ant-cascader","ant-cascader-input","ant-picker","ant-picker-input","ant-time-picker","ant-calendar-picker","ant-slider","ant-slider-track","ant-slider-handle","ant-switch","ant-checkbox","ant-checkbox-wrapper","ant-radio","ant-radio-wrapper","ant-rate","ant-upload","ant-upload-drag","ant-form-item","ant-form-item-control","ant-btn","ant-dropdown","ant-dropdown-trigger","ant-menu","ant-menu-item","ant-tooltip","ant-popover","ant-modal","ant-drawer","ant-tree-select","ant-auto-complete","ant-mentions","ant-transfer","ui-input","ui-textarea","ui-select","ui-select-trigger","ui-select-content","ui-select-item","ui-button","ui-checkbox","ui-radio-group","ui-switch","ui-slider","ui-range-slider","ui-calendar","ui-date-picker","ui-combobox","ui-command","ui-command-input","ui-popover","ui-dialog","ui-sheet","ui-dropdown-menu","ui-context-menu","ui-menubar","ui-navigation-menu","ui-form","ui-form-control","ui-form-item","ui-form-field","ui-label","radix-ui","radix-select","radix-dropdown","radix-dialog","radix-popover","radix-accordion","radix-tabs","radix-slider","radix-switch","radix-checkbox","radix-radio","ql-editor","ql-container","ql-toolbar","ql-picker","ql-picker-label","ql-picker-options","ql-formats","ql-snow","ql-bubble","quill","quilleditor","monaco-editor","monaco-editor-background","view-lines","decorationsOverviewRuler","monaco-scrollable-element","CodeMirror","CodeMirror-code","CodeMirror-lines","CodeMirror-scroll","CodeMirror-sizer","cm-editor","cm-focused","cm-content","tox-editor-container","tox-editor-header","tox-edit-area","tox-tinymce","mce-content-body","ck-editor","ck-content","ck-toolbar","ck-editor__editable","ck-widget","slate-editor","slate-content","DraftEditor-root","DraftEditor-editorContainer","public-DraftEditor-content","ehfuse-editor","ehfuse-editor-wrapper","ehfuse-editor-content","ehfuse-toolbar","ehfuse-toolbar-group","ehfuse-cursor","text-editor","rich-text-editor","wysiwyg","ace_editor","ace_content"],ct=(l,h)=>{let d=l.tagName.toLowerCase(),L=["text","password","email","number","search","tel","url","checkbox","radio"];if(d==="input"){let I=l.type;return L.includes(I)}if(["textarea","select","button"].includes(d)||["svg","path","circle","rect","line","polygon","polyline"].includes(d)||l.getAttribute("contenteditable")==="true")return!0;if(h?.excludeSelectors){for(let I of h.excludeSelectors)if(l.matches(I))return!0}return kt(l,h)},kt=(l,h)=>{let d=[...St,...h?.excludeClasses||[]],L=l,I=0,C=5;for(;L&&I<=C;){if(d.some(m=>L.classList.contains(m)))return!0;if(L.classList.contains("MuiDialogContent-root"))break;L=L.parentElement,I++}return!1},Lt={},Dt={},Et={},Rt={},Ht={},It=Mt(({className:l="",style:h={},containerStyle:d={},contentStyle:L={},children:I,onScroll:C,thumb:m=Lt,track:T=Dt,arrows:$=Et,dragScroll:X=Rt,autoHide:Q=Ht,showScrollbar:j=!0,detectInnerScroll:ee=!1},N)=>{let K=te({});fe(()=>{K.current={children:I,onScroll:C,showScrollbar:j,thumb:m,track:T,arrows:$,dragScroll:X,autoHide:Q}});let he=te(null),a=te(null),U=te(null),me=te(null),ge=te(null),A=te(null),[Z,S]=G(!1),[O,oe]=G(!1),[ie,Re]=G(!1),[le,ae]=G({y:0,scrollTop:0}),[se,Xe]=G(0),[Ke,We]=G(0),[Ne,qe]=G(!1),[Me,Oe]=G(!1),[ce,Ue]=G({x:0,y:0,scrollTop:0,scrollLeft:0}),[ft,k]=G(null),[f,be]=G(null),[Ze,Pe]=G(!1),Ce=te(null),[Fe,ze]=G(!1),Te=te(null),xe=te(null),ue=te(null),B=Be(()=>{let r=m.color??"#606060";return{width:m.width??8,minHeight:m.minHeight??50,radius:m.radius??(m.width??8)/2,color:r,opacity:m.opacity??.6,hoverColor:m.hoverColor??r,hoverOpacity:m.hoverOpacity??1}},[m]),y=Be(()=>({width:T.width??16,color:T.color??"rgba(128, 128, 128, 0.1)",visible:T.visible??!0,alignment:T.alignment??"center",radius:T.radius??B.radius??4,margin:T.margin??4}),[T,B.radius]),V=Be(()=>{let r=$.color??"#808080";return{visible:$.visible??!1,step:$.step??50,color:r,opacity:$.opacity??.6,hoverColor:$.hoverColor??r,hoverOpacity:$.hoverOpacity??1}},[$]),Se=Be(()=>({enabled:X.enabled??!0,excludeClasses:X.excludeClasses??[],excludeSelectors:X.excludeSelectors??[]}),[X]),g=Be(()=>({enabled:Q.enabled??!0,delay:Q.delay??1500,delayOnWheel:Q.delayOnWheel??700}),[Q]),D=B.width,ke=y.width,de=B.minHeight,W=V.visible,He=V.step,J=F(()=>{if(!a.current)return;let r=document.activeElement;r&&a.current.contains(r)&&r!==a.current||a.current.focus()},[]);Ct(N,()=>({getScrollContainer:()=>a.current,scrollTo:r=>{a.current&&a.current.scrollTo(r)},get scrollTop(){return a.current?.scrollTop||0},get scrollHeight(){return a.current?.scrollHeight||0},get clientHeight(){return a.current?.clientHeight||0}}),[]);let E=F(()=>{if(A.current){let i=A.current;if(document.contains(i)&&i.scrollHeight>i.clientHeight+2)return i;A.current=null}if(!a.current)return null;if(U.current&&U.current.scrollHeight>a.current.clientHeight+2)return A.current=a.current,a.current;if(!ee)return null;let r=a.current.querySelectorAll('[data-virtuoso-scroller], [style*="overflow"], .virtuoso-scroller, [style*="overflow: auto"], [style*="overflow:auto"]');for(let i of r){let n=i;if(n!==a.current&&n.classList.contains("overlay-scrollbar-container"))continue;let s=n.parentElement,x=!1;for(;s&&s!==a.current;){if(s.classList.contains("overlay-scrollbar-container")&&s!==a.current){x=!0;break}s=s.parentElement}if(!x&&n.scrollHeight>n.clientHeight+2)return A.current=n,n}return null},[]),ye=F(()=>E()!==null,[E]),w=F(()=>{Te.current&&(clearTimeout(Te.current),Te.current=null)},[]),Je=F(()=>{xe.current&&(clearTimeout(xe.current),xe.current=null)},[]),ot=F(()=>{ue.current&&(clearTimeout(ue.current),ue.current=null)},[]),P=F(r=>{g.enabled&&(w(),Te.current=setTimeout(()=>{S(!1),Te.current=null},r))},[w,g.enabled]),M=F(()=>{let r=E();if(!r){S(!1),qe(!1),w();return}if(qe(!0),!me.current)return;g.enabled||(S(!0),w());let i=r.clientHeight,n=r.scrollHeight,s=r.scrollTop,x=0;if(he.current){let je=window.getComputedStyle(he.current),et=parseFloat(je.paddingTop)||0,ht=parseFloat(je.paddingBottom)||0;x=et+ht}let v=W?D*2+y.margin*4:y.margin*2,H=i-v+x,R=i/n,pe=Math.max(H*R,de),Le=n-i,Y=H-pe,Qe=Le>0?s/Le*Y:0;Xe(pe),We(Qe)},[E,w,W,D,de,g.enabled]),o=F(r=>{r.preventDefault(),r.stopPropagation();let i=E();i&&(oe(!0),ae({y:r.clientY,scrollTop:i.scrollTop}),w(),S(!0),J())},[E,w,J]),t=F(r=>{if(!O)return;let i=E();if(!i)return;let n=i.clientHeight,s=i.scrollHeight-n,x=r.clientY-le.y,v=n-se,H=x/v*s,R=Math.max(0,Math.min(s,le.scrollTop+H));i.scrollTop=R,M()},[O,le,se,M,E]),u=F(()=>{oe(!1),ye()&&P(g.delay)},[ye,P,g.delay]),b=F(r=>{if(!me.current)return;let i=me.current.getBoundingClientRect(),n=r.clientY-i.top,s=E();if(!s)return;let x=s.clientHeight,v=s.scrollHeight,H=n/x*(v-x);s.scrollTop=Math.max(0,Math.min(v-x,H)),M(),S(!0),P(g.delay),J()},[M,P,g.delay,E,J]),p=F(r=>{if(r.preventDefault(),r.stopPropagation(),!a.current)return;let i=Math.max(0,a.current.scrollTop-He);a.current.scrollTop=i,M(),S(!0),P(g.delay),J()},[M,P,He,g.delay,J]),e=F(r=>{if(r.preventDefault(),r.stopPropagation(),!a.current||!U.current)return;let i=a.current,n=U.current.scrollHeight-i.clientHeight,s=Math.min(n,i.scrollTop+He);i.scrollTop=s,M(),S(!0),P(g.delay),J()},[M,P,He,g.delay,J]),q=F(r=>{if(!Se.enabled)return;let i=r.target;if(ct(i,Se)||r.button!==0)return;let n=E();n&&(n.scrollHeight<=n.clientHeight||(r.preventDefault(),Oe(!0),Ue({x:r.clientX,y:r.clientY,scrollTop:n.scrollTop,scrollLeft:n.scrollLeft||0}),w()))},[Se,ct,E,w]),_=F(r=>{if(!Me)return;let i=E();if(!i)return;let n=ce.x-r.clientX,s=ce.y-r.clientY;if(Math.abs(s)<3&&Math.abs(n)<3)return;S(!0);let x=Math.max(0,Math.min(i.scrollHeight-i.clientHeight,ce.scrollTop+s));i.scrollTop=x,M()},[Me,ce,E,M]),ne=F(()=>{Oe(!1),ye()&&P(g.delay)},[ye,P,g.delay]);fe(()=>{let r=v=>{M(),w(),S(!0);let H=Fe?g.delayOnWheel:g.delay;P(H),C&&C(v)},i=()=>{ze(!0),Ce.current&&clearTimeout(Ce.current),Ce.current=setTimeout(()=>{ze(!1)},300),w(),ot(),ue.current=setTimeout(()=>{S(!0),ue.current=null},50)},n=[],s=E();s&&n.push(s);let x=a.current;return x&&!s&&(n.push(x),x.querySelectorAll('[data-virtuoso-scroller], [style*="overflow"], .virtuoso-scroller, [style*="overflow: auto"], [style*="overflow:auto"]').forEach(v=>{let H=v;if(H!==x&&H.classList.contains("overlay-scrollbar-container"))return;let R=H.parentElement;for(;R&&R!==x;){if(R.classList.contains("overlay-scrollbar-container")&&R!==x)return;R=R.parentElement}n.push(H)})),n.forEach(v=>{v.addEventListener("scroll",r,{passive:!0}),v.addEventListener("wheel",i,{passive:!0})}),()=>{n.forEach(v=>{v.removeEventListener("scroll",r),v.removeEventListener("wheel",i)}),Ce.current&&clearTimeout(Ce.current),ue.current&&clearTimeout(ue.current)}},[E,M,C,w,P,g,Fe]),fe(()=>{let r=n=>{let s=E();if(!s)return;let{key:x}=n,{scrollTop:v,scrollHeight:H,clientHeight:R}=s,pe=H-R,Le=50,Y=null;switch(x){case"ArrowUp":n.preventDefault(),Y=Math.max(0,v-Le);break;case"ArrowDown":n.preventDefault(),Y=Math.min(pe,v+Le);break;case"PageUp":n.preventDefault(),Y=Math.max(0,v-R);break;case"PageDown":n.preventDefault(),Y=Math.min(pe,v+R);break;case"Home":n.preventDefault(),Y=0;break;case"End":n.preventDefault(),Y=pe;break;default:return}if(Y!==null){let Qe=Y/pe,je=W?D*2+y.margin*4:y.margin*2,et=(R-je-se)*Qe;We(et),s.scrollTop=Y,w(),S(!0),P(g.delay)}},i=a.current;if(i)return i.addEventListener("keydown",r),()=>{i.removeEventListener("keydown",r)}},[E,W,D,y.margin,se,w,P,g.delay]),fe(()=>{if(Me)return document.addEventListener("mousemove",_),document.addEventListener("mouseup",ne),()=>{document.removeEventListener("mousemove",_),document.removeEventListener("mouseup",ne)}},[Me,_,ne]),fe(()=>{if(O)return document.addEventListener("mousemove",t),document.addEventListener("mouseup",u),()=>{document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",u)}},[O,t,u]),fe(()=>{M();let r=setTimeout(()=>{M()},100);return()=>clearTimeout(r)},[M]),Tt(()=>{Pe(!0),M(),!g.enabled&&ye()&&S(!0)},[ye,M,g.enabled]),fe(()=>{let r=new ResizeObserver(()=>{M()}),i=[];return a.current&&i.push(a.current),U.current&&i.push(U.current),A.current&&document.contains(A.current)&&i.push(A.current),i.forEach(n=>{r.observe(n)}),()=>r.disconnect()},[M]),fe(()=>{if(!a.current)return;let r=new MutationObserver(()=>{A.current=null,M()});return r.observe(a.current,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["style"]}),()=>r.disconnect()},[M]);let z=Math.max(ke,D);return fe(()=>{let r="overlay-scrollbar-webkit-hide",i=document.getElementById(r);i&&i.remove();let n=document.createElement("style");return n.id=r,n.textContent=`
5
5
  .overlay-scrollbar-container::-webkit-scrollbar {
6
6
  display: none !important;
7
7
  width: 0 !important;
@@ -21,7 +21,7 @@ import{forwardRef as Xe,useCallback as Ce,useMemo as rt,useRef as ee,useEffect a
21
21
  outline: 2px solid rgba(0, 123, 255, 0.5);
22
22
  outline-offset: -2px;
23
23
  }
24
- `,document.head.appendChild(i),()=>{let s=document.getElementById(t);s&&s.remove()}},[]),dt("div",{ref:ue,className:`overlay-scrollbar-wrapper ${l}`,style:{display:"flex",flexDirection:"column",position:"relative",minHeight:0,height:"100%",flex:"1 1 0%",...p},children:[De("div",{ref:a,className:"overlay-scrollbar-container",tabIndex:-1,onMouseDown:Fe,style:{display:"flex",width:"100%",flex:"1 1 auto",minHeight:0,overflow:"auto",scrollbarWidth:"none",msOverflowStyle:"none",outline:"none",userSelect:be?"none":"auto",...f},children:De("div",{ref:_,className:"overlay-scrollbar-content",style:{flex:"1 1 0%",minHeight:0,display:"flex",flexDirection:"column",...k},children:L})}),V&&Ie&&dt("div",{ref:de,className:"overlay-scrollbar-track",onMouseEnter:()=>{F(),Te.current=setTimeout(()=>{T(!0),Te.current=null},100)},onMouseLeave:()=>{Je(),I||n(h.delay)},style:{position:"absolute",top:0,right:0,width:`${re}px`,height:"100%",opacity:Y?1:0,transition:"opacity 0.2s ease-in-out",cursor:"pointer",zIndex:1e3,pointerEvents:"auto"},children:[v.visible&&De("div",{className:"overlay-scrollbar-track-background",onClick:t=>{t.preventDefault(),t.stopPropagation(),r(t)},style:{position:"absolute",top:W?`${H.width+v.margin*2}px`:`${v.margin}px`,right:v.alignment==="right"?"0px":`${(re-H.width)/2}px`,width:`${H.width}px`,height:W?`calc(100% - ${H.width*2+v.margin*4}px)`:`calc(100% - ${v.margin*2}px)`,backgroundColor:v.color,borderRadius:`${v.radius}px`,cursor:"pointer"}}),De("div",{ref:pe,className:"overlay-scrollbar-thumb",onMouseDown:d,onMouseEnter:()=>Se(!0),onMouseLeave:()=>Se(!1),style:{position:"absolute",top:`${(W?M+v.margin*2:v.margin)+Ze}px`,right:v.alignment==="right"?"0px":`${(re-M)/2}px`,width:`${M}px`,height:`${Math.max(ae,$e)}px`,backgroundColor:oe||I?H.hoverColor:H.color,opacity:oe||I?H.hoverOpacity:H.opacity,borderRadius:`${H.radius}px`,cursor:"pointer",transition:"background-color 0.2s ease-in-out, opacity 0.2s ease-in-out"}})]}),V&&Ie&&W&&De("div",{className:"overlay-scrollbar-up-arrow",onClick:B,onMouseEnter:()=>fe("up"),onMouseLeave:()=>fe(null),style:{position:"absolute",top:`${v.margin}px`,right:v.alignment==="right"?"0px":`${(re-M)/2}px`,width:`${M}px`,height:`${M}px`,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:`${Math.max(M*.75,8)}px`,color:xe==="up"?A.hoverColor:A.color,userSelect:"none",zIndex:1001,opacity:Y?xe==="up"?A.hoverOpacity:A.opacity:0,transition:"opacity 0.2s ease-in-out, color 0.15s ease-in-out"},children:"\u25B2"}),V&&Ie&&W&&De("div",{className:"overlay-scrollbar-down-arrow",onClick:Z,onMouseEnter:()=>fe("down"),onMouseLeave:()=>fe(null),style:{position:"absolute",bottom:`${v.margin}px`,right:v.alignment==="right"?"0px":`${(re-M)/2}px`,width:`${M}px`,height:`${M}px`,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:`${Math.max(M*.75,8)}px`,color:xe==="down"?A.hoverColor:A.color,userSelect:"none",zIndex:1001,opacity:Y?xe==="down"?A.hoverOpacity:A.opacity:0,transition:"opacity 0.2s ease-in-out, color 0.15s ease-in-out"},children:"\u25BC"})]})}),pt=Ht;import{Fragment as Ke,jsx as c,jsxs as Ee}from"react/jsx-runtime";var qt={alignment:"right",margin:0,radius:0},ft=5;function zt({data:l,loading:p=!1,columns:f,onRowClick:k,getRowId:L,selectedRowId:D,selectedRowSx:C,rowHeight:S=50,columnHeight:R=56,striped:z,rowDivider:X=!0,onSort:V,onLoadMore:K,sortBy:E,sortDirection:j,showPaper:ue=!0,paddingX:a="1rem",paddingTop:_=0,paddingBottom:de=0,rowHoverColor:pe,rowHoverOpacity:P,viewportBuffer:Y,overscan:T,scrollbars:I,emptyMessage:ne="NO DATA",LoadingComponent:oe,showFooter:Se,footerHeight:ie,footerSx:le}){let ae=Math.max(S*12,480),Ue=Math.max(S*12,480),Ze=typeof Y=="number"?Y:Y?.top??ae,We=typeof Y=="number"?Y:Y?.bottom??Ue,Ie=Math.max(S*8,420),qe=Math.max(S*10,520),be=typeof T=="number"?T:{main:T?.main??Ie,reverse:T?.reverse??qe},He=S+(X?1:0),Ne=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),[w]=nt(()=>typeof window>"u"?!1:window.localStorage.getItem("vdt-perf-debug")==="1"),m=ee({wheelEvents:0,wheelInputPx:0,wheelHandlerMs:0,wheelRafFlushes:0,wheelRafMs:0,rangeChangedCalls:0,rangeChangedMs:0,rowContentCalls:0,rowContentMs:0,rowContentMaxMs:0,cellRenderCalls:0,cellRenderMs:0,cellRenderMaxMs:0}),ze=Ce(n=>{if(!w)return;let e=m.current;if(!(e.wheelEvents>0||e.rangeChangedCalls>0||e.rowContentCalls>0||e.cellRenderCalls>0))return;let b=e.rowContentCalls>0?e.rowContentMs/e.rowContentCalls:0,u=e.cellRenderCalls>0?e.cellRenderMs/e.cellRenderCalls:0;console.log("[VDT perf]",{reason:n,wheel:{events:e.wheelEvents,inputPx:Math.round(e.wheelInputPx),handlerMs:Number(e.wheelHandlerMs.toFixed(2)),rafFlushes:e.wheelRafFlushes,rafMs:Number(e.wheelRafMs.toFixed(2))},rangeChanged:{calls:e.rangeChangedCalls,totalMs:Number(e.rangeChangedMs.toFixed(2))},rowContent:{calls:e.rowContentCalls,totalMs:Number(e.rowContentMs.toFixed(2)),avgMs:Number(b.toFixed(3)),maxMs:Number(e.rowContentMaxMs.toFixed(3))},cellRender:{calls:e.cellRenderCalls,totalMs:Number(e.cellRenderMs.toFixed(2)),avgMs:Number(u.toFixed(3)),maxMs:Number(e.cellRenderMaxMs.toFixed(3))}}),m.current={wheelEvents:0,wheelInputPx:0,wheelHandlerMs:0,wheelRafFlushes:0,wheelRafMs:0,rangeChangedCalls:0,rangeChangedMs:0,rowContentCalls:0,rowContentMs:0,rowContentMaxMs:0,cellRenderCalls:0,cellRenderMs:0,cellRenderMaxMs:0}},[w]);me(()=>{if(!w||typeof window>"u")return;console.log("[VDT perf] enabled (localStorage vdt-perf-debug=1)");let n=window.setInterval(()=>{ze("interval")},1500);return()=>{window.clearInterval(n),ze("cleanup")}},[ze,w]);let xe=rt(()=>Xe((n,e)=>{let d=ee(null),b=ee(0),u=ee(null);return me(()=>{let r=d.current;if(!r)return;let B=Z=>{let Fe=w?performance.now():0;Z.preventDefault();let G=Z.deltaY;Z.deltaMode===1?G*=40:Z.deltaMode===2&&(G*=r.clientHeight),w&&(m.current.wheelEvents+=1,m.current.wheelInputPx+=G),b.current+=G,u.current===null&&(u.current=requestAnimationFrame(()=>{let Me=w?performance.now():0,re=Math.max(r.clientHeight*.4,160),t=Math.max(-re,Math.min(re,b.current));b.current=0,u.current=null,t!==0&&(r.scrollTop+=t),w&&(m.current.wheelRafFlushes+=1,m.current.wheelRafMs+=performance.now()-Me)}),w&&(m.current.wheelHandlerMs+=performance.now()-Fe))};return r.addEventListener("wheel",B,{passive:!1}),()=>{r.removeEventListener("wheel",B),u.current!==null&&(cancelAnimationFrame(u.current),u.current=null),b.current=0}},[]),c(pt,{detectInnerScroll:!0,track:qt,...I,children:c(Ft,{component:ge,...n,ref:r=>{d.current=r,typeof e=="function"?e(r):e&&(e.current=r)},sx:{userSelect:"auto",WebkitUserSelect:"auto",position:"relative",width:"100%",height:"100%",overflow:"auto",display:"flex",flexDirection:"column",scrollbarWidth:"none",msOverflowStyle:"none",transform:"translateZ(0)",backfaceVisibility:"hidden",willChange:"scroll-position","&::-webkit-scrollbar":{display:"none"},"& .MuiTable-root":{paddingRight:a,paddingTop:_,paddingBottom:de}}})})}),[]),fe=rt(()=>{if(z===!0)return"#f5f5f5";if(typeof z=="string")return z},[z]),[it,je]=nt(p),[ye,_e]=nt(0);me(()=>{p&&je(!0)},[p]);let Oe=Ce(()=>{je(!1)},[]),ve=it,Te=p&&l.length>0,U=ee(!1),H=ee(null),v=ee(k);v.current=k;let A=ee(L);A.current=L;let we=!!k,h=ee(!1),M=ee({x:0,y:0});me(()=>{let n=e=>{let d=e.clientX-M.current.x,b=e.clientY-M.current.y;Math.sqrt(d*d+b*b)>ft&&(h.current=!0)};return document.addEventListener("mousemove",n),()=>{document.removeEventListener("mousemove",n)}},[]),me(()=>{let n=document.querySelector('[data-testid="virtuoso-scroller"]');n&&n.querySelectorAll(".MuiTableSortLabel-root").forEach(d=>{let b=new MouseEvent("mouseleave",{bubbles:!0,cancelable:!0});d.dispatchEvent(b)})},[E]);let ke=Ce(n=>{if(!V)return;V(n,E===n&&j==="asc"?"desc":"asc")},[V,E,j]),$e=Ce(n=>{let e=w?performance.now():0;if(!K){w&&(m.current.rangeChangedCalls+=1,m.current.rangeChangedMs+=performance.now()-e);return}if(p&&l.length===0){w&&(m.current.rangeChangedCalls+=1,m.current.rangeChangedMs+=performance.now()-e);return}let d=l.length>=30;if(n>=l.length-1&&d&&!U.current){U.current=!0;let u=l.length;K(u,50)}w&&(m.current.rangeChangedCalls+=1,m.current.rangeChangedMs+=performance.now()-e)},[l.length,p,K,w]);me(()=>{p||(U.current=!1)},[p]),me(()=>{l.length===0&&_e(n=>n+1)},[l.length]);let W=ee(l.length);me(()=>{let n=W.current,e=l.length;if(e>n&&n>0){W.current=e;return}H.current&&e>0&&e<=n&&H.current.scrollToIndex({index:0,align:"start",behavior:"auto"}),W.current=e},[l]);let Le=Ce(()=>{let n={},e=[];if(f.forEach(r=>{r.group?(n[r.group]||(n[r.group]=[]),n[r.group].push(r)):e.push(r)}),!(Object.keys(n).length>0))return c(Ve,{children:f.map(r=>c(Re,{align:r.align||"left",style:{width:r.width,minWidth:r.width,...r.style,fontWeight:"bold",position:"sticky",top:0,zIndex:2,padding:"16px"},children:r.sortable?c("div",{style:{display:"flex",alignItems:"center",justifyContent:r.align==="center"?"center":r.align==="right"?"flex-end":"flex-start",position:"relative",width:"100%"},children:Ee(ge,{sx:{position:"relative",cursor:"default","&:hover .MuiTableSortLabel-root":{opacity:"1 !important","& .MuiSvgIcon-root":{color:"#000",opacity:"1 !important"}}},onClick:()=>ke(String(r.id)),children:[r.text,c(ot,{active:E===r.id,direction:E===r.id?j:"desc",sx:{position:"absolute",left:"100%",top:"50%",transform:"translateY(-50%)",marginLeft:"4px",minWidth:"auto",width:"16px",height:"16px",cursor:"default",opacity:E===r.id?1:0,transition:"opacity 0.2s ease","& .MuiTableSortLabel-icon":{position:"relative",marginLeft:0,marginRight:0,opacity:1,transition:"color 0.2s ease"},"& .MuiTableSortLabel-iconDirectionAsc":{transform:"rotate(180deg)"},"& .MuiTableSortLabel-iconDirectionDesc":{transform:"rotate(0deg)"}}})]})}):r.text},String(r.id)))});let b=[...e.map(r=>c(Re,{rowSpan:2,align:r.align||"left",style:{width:r.width,minWidth:r.width,...r.style,fontWeight:"bold",position:"sticky",top:0,zIndex:2,padding:"16px"},children:r.sortable&&V?c("div",{style:{display:"flex",alignItems:"center",justifyContent:r.align==="center"?"center":r.align==="right"?"flex-end":"flex-start",position:"relative",width:"100%"},children:Ee(ge,{sx:{position:"relative",cursor:"default","&:hover .MuiTableSortLabel-root":{opacity:"1 !important","& .MuiSvgIcon-root":{color:"#000",opacity:"1 !important"}}},onClick:()=>ke(String(r.id)),children:[r.text,c(ot,{active:E===r.id,direction:E===r.id?j:"desc",sx:{position:"absolute",left:"100%",top:"50%",transform:"translateY(-50%)",marginLeft:"4px",minWidth:"auto",width:"16px",height:"16px",cursor:"default",opacity:E===r.id?1:0,transition:"opacity 0.2s ease","&:hover":{opacity:"1 !important","& .MuiSvgIcon-root":{color:"#000",opacity:"1 !important"}},"& .MuiTableSortLabel-icon":{position:"relative",marginLeft:0,marginRight:0,opacity:1,transition:"color 0.2s ease"},"& .MuiTableSortLabel-iconDirectionAsc":{transform:"rotate(180deg)"},"& .MuiTableSortLabel-iconDirectionDesc":{transform:"rotate(0deg)"}}})]})}):r.text},String(r.id))),...Object.entries(n).map(([r,B])=>c(Re,{align:"center",colSpan:B.length,style:{fontWeight:"bold",position:"sticky",top:0,zIndex:2,padding:"16px"},children:r},r))],u=[...Object.values(n).flat().map(r=>c(Re,{align:r.align||"left",style:{width:r.width,minWidth:r.width,...r.style,fontWeight:"bold",position:"sticky",top:0,zIndex:2,padding:"16px"},children:r.sortable&&V?c("div",{style:{display:"flex",alignItems:"center",justifyContent:r.align==="center"?"center":r.align==="right"?"flex-end":"flex-start",position:"relative",width:"100%"},children:Ee(ge,{sx:{position:"relative",cursor:"default","&:hover .MuiTableSortLabel-root":{opacity:"1 !important","& .MuiSvgIcon-root":{color:"#000",opacity:"1 !important"}}},onClick:()=>ke(String(r.id)),children:[r.text,c(ot,{active:E===r.id,direction:E===r.id?j:"desc",sx:{position:"absolute",left:"100%",top:"50%",transform:"translateY(-50%)",marginLeft:"4px",minWidth:"auto",width:"16px",height:"16px",cursor:"default",opacity:E===r.id?1:0,transition:"opacity 0.2s ease","&:hover":{opacity:"1 !important","& .MuiSvgIcon-root":{color:"#000",opacity:"1 !important"}},"& .MuiTableSortLabel-icon":{position:"relative",marginLeft:0,marginRight:0,opacity:1,transition:"color 0.2s ease"},"& .MuiTableSortLabel-iconDirectionAsc":{transform:"rotate(0deg)"},"& .MuiTableSortLabel-iconDirectionDesc":{transform:"rotate(180deg)"}}})]})}):r.text},String(r.id)))];return Ee(Ke,{children:[c(Ve,{children:b}),c(Ve,{children:u})]})},[f,E,j,ke,V,R]),te=Ce((n,e)=>{let d=w?performance.now():0;if(!e){if(w){m.current.rowContentCalls+=1;let u=performance.now()-d;m.current.rowContentMs+=u,m.current.rowContentMaxMs=Math.max(m.current.rowContentMaxMs,u)}return null}let b=f.map(u=>{let r=w?performance.now():0,B=u.render?u.render(e,n):String(e[u.id]||"");if(w){let Z=performance.now()-r;m.current.cellRenderCalls+=1,m.current.cellRenderMs+=Z,m.current.cellRenderMaxMs=Math.max(m.current.cellRenderMaxMs,Z)}return c(Re,{align:u.align||"left",style:{width:u.width,minWidth:u.width,...u.style,padding:"8px 16px"},children:B},String(u.id))});if(w){m.current.rowContentCalls+=1;let u=performance.now()-d;m.current.rowContentMs+=u,m.current.rowContentMaxMs=Math.max(m.current.rowContentMaxMs,u)}return c(Ke,{children:b})},[f,w]),g=Se??f.some(n=>typeof n.footer=="function"),he=Ce(()=>{if(!g)return null;let n=[];for(let e=0;e<f.length;e+=1){let d=f[e],b=d.footerColSpan&&d.footerColSpan>1?Math.min(d.footerColSpan,f.length-e):1;n.push(c(Re,{align:d.align||"left",colSpan:b>1?b:void 0,style:{...b>1?{}:{width:d.width,minWidth:d.width},...d.style,fontWeight:"bold",padding:"16px"},children:d.footer?d.footer(l):null},String(d.id))),e+=b-1}return c(Ve,{children:n})},[g,f,l]),Je=rt(()=>({Scroller:xe,Table:n=>c(Ot,{...n,sx:{borderCollapse:"separate",tableLayout:"fixed",marginRight:"16px",...g?{height:"100%"}:{}}}),TableHead:Xe((n,e)=>c(Pt,{...n,ref:e,sx:{userSelect:"none","& tr":{height:R,"& th":{padding:"16px",position:"sticky",top:0,zIndex:2,fontWeight:"bold"}}}})),TableRow:n=>{let{item:e,selected:d,"aria-selected":b,className:u,...r}=n,B=r["data-index"]??0,Z=B%2===1,Fe=e&&A.current?A.current(e,B):B,G=D!=null&&Fe===D,Me=G&&C?typeof C=="function"?C(e,B):C:void 0,re=String(u??"").split(/\s+/).filter(t=>t!=="Mui-selected"&&t!=="Mui-focusVisible").join(" ");return c(Ve,{...r,className:re||void 0,selected:G,onMouseDown:t=>{h.current=!1,M.current={x:t.clientX,y:t.clientY}},onClick:t=>{let o=t.clientX-M.current.x,i=t.clientY-M.current.y;if(Math.sqrt(o*o+i*i)>ft||h.current){t.preventDefault(),t.stopPropagation(),h.current=!1;return}e&&v.current&&v.current(e,B),h.current=!1},sx:[{userSelect:"none",height:S,backgroundColor:Z&&fe?fe:"transparent","& td":{padding:"8px 16px",borderBottom:X?"1px solid rgba(224, 224, 224, 1)":"none"},"& th":{padding:"8px 16px",borderBottom:"none"},"&:hover":we&&!G?{backgroundColor:t=>{let o=t.palette.mode==="dark",s=pe??"#000000",x=P??.06;if(!pe)return o?`rgba(255, 255, 255, ${x})`:`rgba(0, 0, 0, ${x})`;let y=s.replace("#","").trim();if(y.length!==6)return s;let N=parseInt(y.substring(0,2),16),O=parseInt(y.substring(2,4),16),se=parseInt(y.substring(4,6),16);return`rgba(${N}, ${O}, ${se}, ${x})`}}:void 0,cursor:we?"pointer":void 0},Me]})},TableBody:Xe((n,e)=>c($t,{...n,ref:e,sx:g?{height:"100%"}:void 0})),TableFoot:Xe((n,e)=>c(At,{...n,ref:e,sx:[{position:"sticky",bottom:0,zIndex:2,backgroundColor:d=>d.palette.mode==="dark"?"#1e1e1e":"#ffffff","& tr":{height:ie??S},"& td":{padding:"16px",color:"inherit",fontSize:"0.875rem",borderTop:"1px solid #000000",borderBottom:"none"}},...Array.isArray(le)?le:le?[le]:[]]}))}),[we,D,C,S,fe,X,R,pe,P,xe,ie,le,g]),Ye=Ee(ge,{sx:{position:"relative",height:"100%",width:"100%","& .MuiTableHead-root":{backgroundColor:n=>n.palette.mode==="dark"?"#1e1e1e !important":"#ffffff !important"}},children:[c(Wt,{ref:H,data:l,totalCount:K?l.length+1:l.length,defaultItemHeight:He,fixedItemHeight:He,fixedHeaderContent:Le,fixedFooterContent:g?he:void 0,itemContent:te,endReached:$e,style:{height:"100%"},increaseViewportBy:{top:Ze,bottom:We},overscan:be,followOutput:!1,components:Je},ye),l.length===0&&!p&&c(ge,{sx:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2},children:typeof ne=="string"?Ee(Ke,{children:[c(ge,{sx:{width:48,height:48,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",backgroundColor:"#f5f5f5",color:"#999"},children:"\u{1F4C4}"}),c(Vt,{variant:"body1",sx:{color:"text.secondary"},children:ne})]}):ne}),ve&&c(Ke,{children:oe?c(oe,{visible:p,onComplete:Oe}):c(at,{visible:p,onComplete:Oe,size:40,indicator:c(ct,{}),sx:{top:`${f.some(n=>n.group)?R*2:R}px`,bottom:`${g?ie??S:0}px`},background:{show:l.length===0,opacity:.8}})})]});return ue?c(Bt,{className:"grow",elevation:1,sx:{padding:0,paddingLeft:a,height:"100%",minHeight:0,flex:1,display:"flex",flexDirection:"column"},children:Ye}):c(ge,{className:"grow",style:{padding:0,paddingLeft:a,height:"100%",minHeight:0,flex:1,display:"flex",flexDirection:"column"},children:Ye})}var jt=Nt(zt);export{jt as VirtualDataTable};
24
+ `,document.head.appendChild(n),()=>{let s=document.getElementById(r);s&&s.remove()}},[]),ut("div",{ref:he,className:`overlay-scrollbar-wrapper ${l}`,style:{display:"flex",flexDirection:"column",position:"relative",minHeight:0,height:"100%",flex:"1 1 0%",...h},children:[Ie("div",{ref:a,className:"overlay-scrollbar-container",tabIndex:-1,onMouseDown:q,style:{display:"flex",width:"100%",flex:"1 1 auto",minHeight:0,overflow:"auto",scrollbarWidth:"none",msOverflowStyle:"none",outline:"none",userSelect:Me?"none":"auto",...d},children:Ie("div",{ref:U,className:"overlay-scrollbar-content",style:{flex:"1 1 0%",minHeight:0,display:"flex",flexDirection:"column",...L},children:I})}),j&&Ne&&ut("div",{ref:me,className:"overlay-scrollbar-track",onMouseEnter:()=>{w(),xe.current=setTimeout(()=>{S(!0),xe.current=null},100)},onMouseLeave:()=>{Je(),O||P(g.delay)},style:{position:"absolute",top:0,right:0,width:`${z}px`,height:"100%",opacity:Z?1:0,transition:"opacity 0.2s ease-in-out",cursor:"pointer",zIndex:1e3,pointerEvents:"auto"},children:[y.visible&&Ie("div",{className:"overlay-scrollbar-track-background",onClick:r=>{r.preventDefault(),r.stopPropagation(),b(r)},style:{position:"absolute",top:W?`${B.width+y.margin*2}px`:`${y.margin}px`,right:y.alignment==="right"?"0px":`${(z-B.width)/2}px`,width:`${B.width}px`,height:W?`calc(100% - ${B.width*2+y.margin*4}px)`:`calc(100% - ${y.margin*2}px)`,backgroundColor:y.color,borderRadius:`${y.radius}px`,cursor:"pointer"}}),Ie("div",{ref:ge,className:"overlay-scrollbar-thumb",onMouseDown:o,onMouseEnter:()=>Re(!0),onMouseLeave:()=>Re(!1),style:{position:"absolute",top:`${(W?D+y.margin*2:y.margin)+Ke}px`,right:y.alignment==="right"?"0px":`${(z-D)/2}px`,width:`${D}px`,height:`${Math.max(se,de)}px`,backgroundColor:ie||O?B.hoverColor:B.color,opacity:ie||O?B.hoverOpacity:B.opacity,borderRadius:`${B.radius}px`,cursor:"pointer",transition:"background-color 0.2s ease-in-out, opacity 0.2s ease-in-out"}})]}),j&&Ne&&W&&Ie("div",{className:"overlay-scrollbar-up-arrow",onClick:p,onMouseEnter:()=>be("up"),onMouseLeave:()=>be(null),style:{position:"absolute",top:`${y.margin}px`,right:y.alignment==="right"?"0px":`${(z-D)/2}px`,width:`${D}px`,height:`${D}px`,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:`${Math.max(D*.75,8)}px`,color:f==="up"?V.hoverColor:V.color,userSelect:"none",zIndex:1001,opacity:Z?f==="up"?V.hoverOpacity:V.opacity:0,transition:"opacity 0.2s ease-in-out, color 0.15s ease-in-out"},children:"\u25B2"}),j&&Ne&&W&&Ie("div",{className:"overlay-scrollbar-down-arrow",onClick:e,onMouseEnter:()=>be("down"),onMouseLeave:()=>be(null),style:{position:"absolute",bottom:`${y.margin}px`,right:y.alignment==="right"?"0px":`${(z-D)/2}px`,width:`${D}px`,height:`${D}px`,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:`${Math.max(D*.75,8)}px`,color:f==="down"?V.hoverColor:V.color,userSelect:"none",zIndex:1001,opacity:Z?f==="down"?V.hoverOpacity:V.opacity:0,transition:"opacity 0.2s ease-in-out, color 0.15s ease-in-out"},children:"\u25BC"})]})}),dt=It;import{Fragment as Ge,jsx as c,jsxs as Ee}from"react/jsx-runtime";var qt={alignment:"right",margin:0,radius:0},pt=5;function zt({data:l,loading:h=!1,columns:d,onRowClick:L,getRowId:I,selectedRowId:C,selectedRowSx:m,rowHeight:T=50,columnHeight:$=56,striped:X,rowDivider:Q=!0,onSort:j,onLoadMore:ee,sortBy:N,sortDirection:K,showPaper:he=!0,paddingX:a="1rem",paddingTop:U=0,paddingBottom:me=0,rowHoverColor:ge,rowHoverOpacity:A,viewportBuffer:Z,overscan:S,scrollbars:O,emptyMessage:oe="NO DATA",LoadingComponent:ie,showFooter:Re,footerHeight:le,footerSx:ae}){let se=Math.max(T*12,480),Xe=Math.max(T*12,480),Ke=typeof Z=="number"?Z:Z?.top??se,We=typeof Z=="number"?Z:Z?.bottom??Xe,Ne=Math.max(T*8,420),qe=Math.max(T*10,520),Me=typeof S=="number"?S:{main:S?.main??Ne,reverse:S?.reverse??qe},Oe=T+(Q?1:0),ce=!m||typeof m!="function",Ue=Ye(()=>!ce||C===null||C===void 0||!m?null:{[`& tbody tr[data-row-id="${String(C).replace(/["\\]/g,"\\$&")}"]`]:m},[ce,C,m]),ft=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),[k]=rt(()=>typeof window>"u"?!1:window.localStorage.getItem("vdt-perf-debug")==="1"),f=re({wheelEvents:0,wheelInputPx:0,wheelHandlerMs:0,wheelRafFlushes:0,wheelRafMs:0,rangeChangedCalls:0,rangeChangedMs:0,rowContentCalls:0,rowContentMs:0,rowContentMaxMs:0,cellRenderCalls:0,cellRenderMs:0,cellRenderMaxMs:0}),be=De(o=>{if(!k)return;let t=f.current;if(!(t.wheelEvents>0||t.rangeChangedCalls>0||t.rowContentCalls>0||t.cellRenderCalls>0))return;let b=t.rowContentCalls>0?t.rowContentMs/t.rowContentCalls:0,p=t.cellRenderCalls>0?t.cellRenderMs/t.cellRenderCalls:0;console.log("[VDT perf]",{reason:o,wheel:{events:t.wheelEvents,inputPx:Math.round(t.wheelInputPx),handlerMs:Number(t.wheelHandlerMs.toFixed(2)),rafFlushes:t.wheelRafFlushes,rafMs:Number(t.wheelRafMs.toFixed(2))},rangeChanged:{calls:t.rangeChangedCalls,totalMs:Number(t.rangeChangedMs.toFixed(2))},rowContent:{calls:t.rowContentCalls,totalMs:Number(t.rowContentMs.toFixed(2)),avgMs:Number(b.toFixed(3)),maxMs:Number(t.rowContentMaxMs.toFixed(3))},cellRender:{calls:t.cellRenderCalls,totalMs:Number(t.cellRenderMs.toFixed(2)),avgMs:Number(p.toFixed(3)),maxMs:Number(t.cellRenderMaxMs.toFixed(3))}}),f.current={wheelEvents:0,wheelInputPx:0,wheelHandlerMs:0,wheelRafFlushes:0,wheelRafMs:0,rangeChangedCalls:0,rangeChangedMs:0,rowContentCalls:0,rowContentMs:0,rowContentMaxMs:0,cellRenderCalls:0,cellRenderMs:0,cellRenderMaxMs:0}},[k]);ve(()=>{if(!k||typeof window>"u")return;console.log("[VDT perf] enabled (localStorage vdt-perf-debug=1)");let o=window.setInterval(()=>{be("interval")},1500);return()=>{window.clearInterval(o),be("cleanup")}},[be,k]);let Ze=Ye(()=>_e((o,t)=>{let u=re(null),b=re(0),p=re(null);return ve(()=>{let e=u.current;if(!e)return;let q=_=>{let ne=k?performance.now():0;_.preventDefault();let z=_.deltaY;_.deltaMode===1?z*=40:_.deltaMode===2&&(z*=e.clientHeight),k&&(f.current.wheelEvents+=1,f.current.wheelInputPx+=z),b.current+=z,p.current===null&&(p.current=requestAnimationFrame(()=>{let r=k?performance.now():0,i=Math.max(e.clientHeight*.4,160),n=Math.max(-i,Math.min(i,b.current));b.current=0,p.current=null,n!==0&&(e.scrollTop+=n),k&&(f.current.wheelRafFlushes+=1,f.current.wheelRafMs+=performance.now()-r)}),k&&(f.current.wheelHandlerMs+=performance.now()-ne))};return e.addEventListener("wheel",q,{passive:!1}),()=>{e.removeEventListener("wheel",q),p.current!==null&&(cancelAnimationFrame(p.current),p.current=null),b.current=0}},[]),c(dt,{detectInnerScroll:!0,track:qt,...O,children:c(Pt,{component:we,...o,ref:e=>{u.current=e,typeof t=="function"?t(e):t&&(t.current=e)},sx:{userSelect:"auto",WebkitUserSelect:"auto",position:"relative",width:"100%",height:"100%",overflow:"auto",display:"flex",flexDirection:"column",scrollbarWidth:"none",msOverflowStyle:"none",transform:"translateZ(0)",backfaceVisibility:"hidden",willChange:"scroll-position","&::-webkit-scrollbar":{display:"none"},"& .MuiTable-root":{paddingRight:a,paddingTop:U,paddingBottom:me}}})})}),[]),Pe=Ye(()=>{if(X===!0)return"#f5f5f5";if(typeof X=="string")return X},[X]),[Ce,Fe]=rt(h),[ze,Te]=rt(0);ve(()=>{h&&Fe(!0)},[h]);let xe=De(()=>{Fe(!1)},[]),ue=Ce,B=h&&l.length>0,y=re(!1),V=re(null),Se=re(L);Se.current=L;let g=re(I);g.current=I;let D=!!L,ke=re(!1),de=re({x:0,y:0});ve(()=>{let o=t=>{let u=t.clientX-de.current.x,b=t.clientY-de.current.y;Math.sqrt(u*u+b*b)>pt&&(ke.current=!0)};return document.addEventListener("mousemove",o),()=>{document.removeEventListener("mousemove",o)}},[]),ve(()=>{let o=document.querySelector('[data-testid="virtuoso-scroller"]');o&&o.querySelectorAll(".MuiTableSortLabel-root").forEach(u=>{let b=new MouseEvent("mouseleave",{bubbles:!0,cancelable:!0});u.dispatchEvent(b)})},[N]);let W=De(o=>{if(!j)return;j(o,N===o&&K==="asc"?"desc":"asc")},[j,N,K]),He=De(o=>{let t=k?performance.now():0;if(!ee){k&&(f.current.rangeChangedCalls+=1,f.current.rangeChangedMs+=performance.now()-t);return}if(h&&l.length===0){k&&(f.current.rangeChangedCalls+=1,f.current.rangeChangedMs+=performance.now()-t);return}let u=l.length>=30;if(o>=l.length-1&&u&&!y.current){y.current=!0;let p=l.length;ee(p,50)}k&&(f.current.rangeChangedCalls+=1,f.current.rangeChangedMs+=performance.now()-t)},[l.length,h,ee,k]);ve(()=>{h||(y.current=!1)},[h]),ve(()=>{l.length===0&&Te(o=>o+1)},[l.length]);let J=re(l.length);ve(()=>{let o=J.current,t=l.length;if(t>o&&o>0){J.current=t;return}V.current&&t>0&&t<=o&&V.current.scrollToIndex({index:0,align:"start",behavior:"auto"}),J.current=t},[l]);let E=De(()=>{let o={},t=[];if(d.forEach(e=>{e.group?(o[e.group]||(o[e.group]=[]),o[e.group].push(e)):t.push(e)}),!(Object.keys(o).length>0))return c(Ve,{children:d.map(e=>c($e,{align:e.align||"left",style:{width:e.width,minWidth:e.width,...e.style,fontWeight:"bold",position:"sticky",top:0,zIndex:2,padding:"16px"},children:e.sortable?c("div",{style:{display:"flex",alignItems:"center",justifyContent:e.align==="center"?"center":e.align==="right"?"flex-end":"flex-start",position:"relative",width:"100%"},children:Ee(we,{sx:{position:"relative",cursor:"default","&:hover .MuiTableSortLabel-root":{opacity:"1 !important","& .MuiSvgIcon-root":{color:"#000",opacity:"1 !important"}}},onClick:()=>W(String(e.id)),children:[e.text,c(nt,{active:N===e.id,direction:N===e.id?K:"desc",sx:{position:"absolute",left:"100%",top:"50%",transform:"translateY(-50%)",marginLeft:"4px",minWidth:"auto",width:"16px",height:"16px",cursor:"default",opacity:N===e.id?1:0,transition:"opacity 0.2s ease","& .MuiTableSortLabel-icon":{position:"relative",marginLeft:0,marginRight:0,opacity:1,transition:"color 0.2s ease"},"& .MuiTableSortLabel-iconDirectionAsc":{transform:"rotate(180deg)"},"& .MuiTableSortLabel-iconDirectionDesc":{transform:"rotate(0deg)"}}})]})}):e.text},String(e.id)))});let b=[...t.map(e=>c($e,{rowSpan:2,align:e.align||"left",style:{width:e.width,minWidth:e.width,...e.style,fontWeight:"bold",position:"sticky",top:0,zIndex:2,padding:"16px"},children:e.sortable&&j?c("div",{style:{display:"flex",alignItems:"center",justifyContent:e.align==="center"?"center":e.align==="right"?"flex-end":"flex-start",position:"relative",width:"100%"},children:Ee(we,{sx:{position:"relative",cursor:"default","&:hover .MuiTableSortLabel-root":{opacity:"1 !important","& .MuiSvgIcon-root":{color:"#000",opacity:"1 !important"}}},onClick:()=>W(String(e.id)),children:[e.text,c(nt,{active:N===e.id,direction:N===e.id?K:"desc",sx:{position:"absolute",left:"100%",top:"50%",transform:"translateY(-50%)",marginLeft:"4px",minWidth:"auto",width:"16px",height:"16px",cursor:"default",opacity:N===e.id?1:0,transition:"opacity 0.2s ease","&:hover":{opacity:"1 !important","& .MuiSvgIcon-root":{color:"#000",opacity:"1 !important"}},"& .MuiTableSortLabel-icon":{position:"relative",marginLeft:0,marginRight:0,opacity:1,transition:"color 0.2s ease"},"& .MuiTableSortLabel-iconDirectionAsc":{transform:"rotate(180deg)"},"& .MuiTableSortLabel-iconDirectionDesc":{transform:"rotate(0deg)"}}})]})}):e.text},String(e.id))),...Object.entries(o).map(([e,q])=>c($e,{align:"center",colSpan:q.length,style:{fontWeight:"bold",position:"sticky",top:0,zIndex:2,padding:"16px"},children:e},e))],p=[...Object.values(o).flat().map(e=>c($e,{align:e.align||"left",style:{width:e.width,minWidth:e.width,...e.style,fontWeight:"bold",position:"sticky",top:0,zIndex:2,padding:"16px"},children:e.sortable&&j?c("div",{style:{display:"flex",alignItems:"center",justifyContent:e.align==="center"?"center":e.align==="right"?"flex-end":"flex-start",position:"relative",width:"100%"},children:Ee(we,{sx:{position:"relative",cursor:"default","&:hover .MuiTableSortLabel-root":{opacity:"1 !important","& .MuiSvgIcon-root":{color:"#000",opacity:"1 !important"}}},onClick:()=>W(String(e.id)),children:[e.text,c(nt,{active:N===e.id,direction:N===e.id?K:"desc",sx:{position:"absolute",left:"100%",top:"50%",transform:"translateY(-50%)",marginLeft:"4px",minWidth:"auto",width:"16px",height:"16px",cursor:"default",opacity:N===e.id?1:0,transition:"opacity 0.2s ease","&:hover":{opacity:"1 !important","& .MuiSvgIcon-root":{color:"#000",opacity:"1 !important"}},"& .MuiTableSortLabel-icon":{position:"relative",marginLeft:0,marginRight:0,opacity:1,transition:"color 0.2s ease"},"& .MuiTableSortLabel-iconDirectionAsc":{transform:"rotate(0deg)"},"& .MuiTableSortLabel-iconDirectionDesc":{transform:"rotate(180deg)"}}})]})}):e.text},String(e.id)))];return Ee(Ge,{children:[c(Ve,{children:b}),c(Ve,{children:p})]})},[d,N,K,W,j,$]),ye=De((o,t)=>{let u=k?performance.now():0;if(!t){if(k){f.current.rowContentCalls+=1;let p=performance.now()-u;f.current.rowContentMs+=p,f.current.rowContentMaxMs=Math.max(f.current.rowContentMaxMs,p)}return null}let b=d.map(p=>{let e=k?performance.now():0,q=p.render?p.render(t,o):String(t[p.id]||"");if(k){let _=performance.now()-e;f.current.cellRenderCalls+=1,f.current.cellRenderMs+=_,f.current.cellRenderMaxMs=Math.max(f.current.cellRenderMaxMs,_)}return c($e,{align:p.align||"left",style:{width:p.width,minWidth:p.width,...p.style,padding:"8px 16px"},children:q},String(p.id))});if(k){f.current.rowContentCalls+=1;let p=performance.now()-u;f.current.rowContentMs+=p,f.current.rowContentMaxMs=Math.max(f.current.rowContentMaxMs,p)}return c(Ge,{children:b})},[d,k]),w=Re??d.some(o=>typeof o.footer=="function"),Je=De(()=>{if(!w)return null;let o=[];for(let t=0;t<d.length;t+=1){let u=d[t],b=u.footerColSpan&&u.footerColSpan>1?Math.min(u.footerColSpan,d.length-t):1;o.push(c($e,{align:u.align||"left",colSpan:b>1?b:void 0,style:{...b>1?{}:{width:u.width,minWidth:u.width},...u.style,fontWeight:"bold",padding:"16px"},children:u.footer?u.footer(l):null},String(u.id))),t+=b-1}return c(Ve,{children:o})},[w,d,l]),P=Ye(()=>({Scroller:Ze,Table:o=>c(Nt,{...o,sx:{borderCollapse:"separate",tableLayout:"fixed",marginRight:"16px",...w?{height:"100%"}:{}}}),TableHead:_e((o,t)=>c(Ft,{...o,ref:t,sx:{userSelect:"none","& tr":{height:$,"& th":{padding:"16px",position:"sticky",top:0,zIndex:2,fontWeight:"bold"}}}})),TableRow:o=>{let{item:t,selected:u,"aria-selected":b,className:p,...e}=o,q=e["data-index"]??0,_=q%2===1,ne=t&&g.current?g.current(t,q):q,z=!ce&&C!==null&&C!==void 0&&ne===C,r=z&&m?typeof m=="function"?m(t,q):m:void 0,i=String(p??"").split(/\s+/).filter(n=>n!=="Mui-selected"&&n!=="Mui-focusVisible").join(" ");return c(Ve,{...e,"data-row-id":ne!=null?String(ne):void 0,className:i||void 0,selected:z,onMouseDown:n=>{ke.current=!1,de.current={x:n.clientX,y:n.clientY}},onClick:n=>{let s=n.clientX-de.current.x,x=n.clientY-de.current.y;if(Math.sqrt(s*s+x*x)>pt||ke.current){n.preventDefault(),n.stopPropagation(),ke.current=!1;return}t&&Se.current&&Se.current(t,q),ke.current=!1},sx:[{userSelect:"none",height:T,backgroundColor:_&&Pe?Pe:"transparent","& td":{padding:"8px 16px",borderBottom:Q?"1px solid rgba(224, 224, 224, 1)":"none"},"& th":{padding:"8px 16px",borderBottom:"none"},"&:hover":D&&!z?{backgroundColor:n=>{let s=n.palette.mode==="dark",v=ge??"#000000",H=A??.06;if(!ge)return s?`rgba(255, 255, 255, ${H})`:`rgba(0, 0, 0, ${H})`;let R=v.replace("#","").trim();if(R.length!==6)return v;let pe=parseInt(R.substring(0,2),16),Le=parseInt(R.substring(2,4),16),Y=parseInt(R.substring(4,6),16);return`rgba(${pe}, ${Le}, ${Y}, ${H})`}}:void 0,cursor:D?"pointer":void 0},r]})},TableBody:_e((o,t)=>{let{children:u,...b}=o;return Ee(Ot,{...b,ref:t,sx:w?{height:"100%"}:void 0,children:[u,w&&c("tr",{"aria-hidden":!0,style:{height:"100%"},children:c("td",{colSpan:d.length,style:{padding:0,border:0}})})]})}),TableFoot:_e((o,t)=>c(At,{...o,ref:t,sx:[{"& tr":{height:le??T},"& td":{position:"sticky",bottom:0,zIndex:2,backgroundColor:u=>u.palette.mode==="dark"?"#1e1e1e":"#ffffff",padding:"16px",color:"inherit",fontSize:"0.875rem",border:"none",boxShadow:"inset 0 1px 0 0 #000000"}},...Array.isArray(ae)?ae:ae?[ae]:[]]}))}),[D,ce?null:C,m,T,Pe,Q,$,ge,A,Ze,le,ae,w,d]),M=Ee(we,{sx:{position:"relative",height:"100%",width:"100%","& .MuiTableHead-root":{backgroundColor:o=>o.palette.mode==="dark"?"#1e1e1e !important":"#ffffff !important"},...Ue??{}},children:[c(Wt,{ref:V,data:l,totalCount:ee?l.length+1:l.length,defaultItemHeight:Oe,fixedItemHeight:Oe,fixedHeaderContent:E,fixedFooterContent:w?Je:void 0,itemContent:ye,endReached:He,style:{height:"100%"},increaseViewportBy:{top:Ke,bottom:We},overscan:Me,followOutput:!1,components:P},ze),l.length===0&&!h&&c(we,{sx:{position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:2},children:typeof oe=="string"?Ee(Ge,{children:[c(we,{sx:{width:48,height:48,display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",backgroundColor:"#f5f5f5",color:"#999"},children:"\u{1F4C4}"}),c(Vt,{variant:"body1",sx:{color:"text.secondary"},children:oe})]}):oe}),ue&&c(Ge,{children:ie?c(ie,{visible:h,onComplete:xe}):c(lt,{visible:h,onComplete:xe,size:40,indicator:c(st,{}),sx:{top:`${d.some(o=>o.group)?$*2:$}px`,bottom:`${w?le??T:0}px`},background:{show:l.length===0,opacity:.8}})})]});return he?c(Bt,{className:"grow",elevation:1,sx:{padding:0,paddingLeft:a,height:"100%",minHeight:0,flex:1,display:"flex",flexDirection:"column"},children:M}):c(we,{className:"grow",style:{padding:0,paddingLeft:a,height:"100%",minHeight:0,flex:1,display:"flex",flexDirection:"column"},children:M})}var jt=$t(zt);export{jt as VirtualDataTable};
25
25
  /**
26
26
  * Virtual Data Table - A high-performance virtual data table component for React
27
27
  *