@yester/virtual-table 1.1.2 → 1.1.3
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.
|
@@ -49,5 +49,5 @@ React keys must be passed directly to JSX without using spread:
|
|
|
49
49
|
Copyright (c) 2018 Jed Watson.
|
|
50
50
|
Licensed under the MIT License (MIT), see
|
|
51
51
|
http://jedwatson.github.io/classnames
|
|
52
|
-
*/(function(e){(function(){var t={}.hasOwnProperty;function r(){for(var s="",a=0;a<arguments.length;a++){var l=arguments[a];l&&(s=i(s,n(l)))}return s}function n(s){if(typeof s=="string"||typeof s=="number")return s;if(typeof s!="object")return"";if(Array.isArray(s))return r.apply(null,s);if(s.toString!==Object.prototype.toString&&!s.toString.toString().includes("[native code]"))return s.toString();var a="";for(var l in s)t.call(s,l)&&s[l]&&(a=i(a,l));return a}function i(s,a){return a?s?s+" "+a:s+a:s}e.exports?(r.default=r,e.exports=r):window.classNames=r})()})(Wt);var rn=Wt.exports;const st=sr(rn),Hn="",nn=O.forwardRef(({columns:e,width:t,onScroll:r,meta:n},i)=>{const s=O.useMemo(()=>{const a=[],l=h=>{let y=0;return h.forEach(p=>{if(p.children&&p.children.length>0){const M=l(p.children);M>y&&(y=M)}}),y+1},c=l(e),f=(h,y)=>{a[y]||(a[y]=[]),h.forEach(p=>{var d,N;let M="left";(d=p.style)!=null&&d.textAlign&&(M=p.style.textAlign);let P=n==null?void 0:n.find(D=>D.field===p.field);if(!P){const D=p.field.split("||");if(D.length>1){const X=D[D.length-1];P=n==null?void 0:n.find(A=>A.field===X)}else p.field.includes("__")&&(P=n==null?void 0:n.find(X=>p.field.startsWith(`${X.field}_`)))}(N=P==null?void 0:P.style)!=null&&N.textAlign&&(M=P.style.textAlign);const w={key:p.field||p.dataIndex||p.title||String(Math.random()),title:p.title,width:p.width,align:M,className:p.field,colSpan:1,rowSpan:1};if(p.children&&p.children.length>0){const D=X=>X.children&&X.children.length>0?X.children.reduce((A,j)=>A+D(j),0):1;w.colSpan=D(p),a[y].push(w),f(p.children,y+1)}else w.rowSpan=c-y,a[y].push(w)})};return f(e,0),a},[e,n]);return Q.jsx("div",{ref:i,className:"virtual-table-header hide-scrollbar",style:{overflow:"auto",width:t},onScroll:r,children:Q.jsxs("table",{style:{tableLayout:"fixed",width:"100%"},children:[Q.jsx("colgroup",{children:e.map((a,l)=>{const c=f=>f.children&&f.children.length>0?f.children.flatMap(c):[f.width];return c(a).map((f,h)=>Q.jsx("col",{style:{width:f,minWidth:f}},`${l}-${h}`))}).flat()}),Q.jsx("thead",{className:"virtual-table-thead",children:s.map((a,l)=>Q.jsx("tr",{className:"virtual-table-row",children:a.map((c,f)=>Q.jsx("th",{className:st("virtual-table-cell",c.className),colSpan:c.colSpan,rowSpan:c.rowSpan,title:c.title,style:{textAlign:c.align},children:c.title},f))},l))})]})})}),at=e=>{if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(r=>at(r));const t={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=at(e[r]));return t},Vt=43,on=100,Oe="-",Ht="合计";function sn(e){let t=e;for(;t;){if(t.dir)return t.dir==="rtl";t=t.parentElement}return!1}function an(e,t){const[r,n]=O.useState(t==="rtl");return O.useLayoutEffect(()=>{e&&(t||n(sn(e)))},[t,e]),r}const Ge=typeof window<"u"?O.useLayoutEffect:O.useEffect;function Bt(e){if(e!==void 0)switch(typeof e){case"number":return e;case"string":{if(e.endsWith("px"))return parseFloat(e);break}}}function ln({box:e,defaultHeight:t,defaultWidth:r,disabled:n,element:i,mode:s,style:a}){const{styleHeight:l,styleWidth:c}=O.useMemo(()=>({styleHeight:Bt(a==null?void 0:a.height),styleWidth:Bt(a==null?void 0:a.width)}),[a==null?void 0:a.height,a==null?void 0:a.width]),[f,h]=O.useState({height:t,width:r}),y=n||s==="only-height"&&l!==void 0||s==="only-width"&&c!==void 0||l!==void 0&&c!==void 0;return Ge(()=>{if(i===null||y)return;const p=new ResizeObserver(M=>{for(const P of M){const{contentRect:w,target:d}=P;i===d&&h(N=>N.height===w.height&&N.width===w.width?N:{height:w.height,width:w.width})}});return p.observe(i,{box:e}),()=>{p==null||p.unobserve(i)}},[e,y,i,l,c]),O.useMemo(()=>({height:l??f.height,width:c??f.width}),[f,l,c])}function cn(e){const t=O.useRef(()=>{throw new Error("Cannot call during render.")});return Ge(()=>{t.current=e},[e]),O.useCallback(r=>{var n;return(n=t.current)==null?void 0:n.call(t,r)},[t])}let Ie=null;function un(e=!1){if(Ie===null||e){const t=document.createElement("div"),r=t.style;r.width="50px",r.height="50px",r.overflow="scroll",r.direction="rtl";const n=document.createElement("div"),i=n.style;return i.width="100px",i.height="100px",t.appendChild(n),document.body.appendChild(t),t.scrollLeft>0?Ie="positive-descending":(t.scrollLeft=1,t.scrollLeft===0?Ie="negative":Ie="positive-ascending"),document.body.removeChild(t),Ie}return Ie}function lt({containerElement:e,direction:t,isRtl:r,scrollOffset:n}){if(t==="horizontal"&&r)switch(un()){case"negative":return-n;case"positive-descending":{if(e){const{clientWidth:i,scrollLeft:s,scrollWidth:a}=e;return a-i-s}break}}return n}function Te(e,t="Assertion error"){if(!e)throw Error(t)}function Ne(e,t){if(e===t)return!0;if(!!e!=!!t||(Te(e!==void 0),Te(t!==void 0),Object.keys(e).length!==Object.keys(t).length))return!1;for(const r in e)if(!Object.is(t[r],e[r]))return!1;return!0}function Yt({cachedBounds:e,itemCount:t,itemSize:r}){if(t===0)return 0;if(typeof r=="number")return t*r;{const n=e.get(e.size===0?0:e.size-1);Te(n!==void 0,"Unexpected bounds cache miss");const i=(n.scrollOffset+n.size)/e.size;return t*i}}function fn({align:e,cachedBounds:t,index:r,itemCount:n,itemSize:i,containerScrollOffset:s,containerSize:a}){if(r<0||r>=n)throw RangeError(`Invalid index specified: ${r}`,{cause:`Index ${r} is not within the range of 0 - ${n-1}`});const l=Yt({cachedBounds:t,itemCount:n,itemSize:i}),c=t.get(r),f=Math.max(0,Math.min(l-a,c.scrollOffset)),h=Math.max(0,c.scrollOffset-a+c.size);switch(e==="smart"&&(s>=h&&s<=f?e="auto":e="center"),e){case"start":return f;case"end":return h;case"center":return c.scrollOffset<=a/2?0:c.scrollOffset+c.size/2>=l-a/2?l-a:c.scrollOffset+c.size/2-a/2;case"auto":default:return s>=h&&s<=f?s:s<h?h:f}}function ct({cachedBounds:e,containerScrollOffset:t,containerSize:r,itemCount:n,overscanCount:i}){const s=n-1;let a=0,l=-1,c=0,f=-1,h=0;for(;h<s;){const y=e.get(h);if(y.scrollOffset+y.size>t)break;h++}for(a=h,c=Math.max(0,a-i);h<s;){const y=e.get(h);if(y.scrollOffset+y.size>=t+r)break;h++}return l=Math.min(s,h),f=Math.min(n-1,l+i),a<0&&(a=0,l=-1,c=0,f=-1),{startIndexVisible:a,stopIndexVisible:l,startIndexOverscan:c,stopIndexOverscan:f}}function dn({itemCount:e,itemProps:t,itemSize:r}){const n=new Map;return{get(i){for(Te(i<e,`Invalid index ${i}`);n.size-1<i;){const a=n.size;let l;switch(typeof r){case"function":{l=r(a,t);break}case"number":{l=r;break}}if(a===0)n.set(a,{size:l,scrollOffset:0});else{const c=n.get(a-1);Te(c!==void 0,`Unexpected bounds cache miss for index ${i}`),n.set(a,{scrollOffset:c.scrollOffset+c.size,size:l})}}const s=n.get(i);return Te(s!==void 0,`Unexpected bounds cache miss for index ${i}`),s},set(i,s){n.set(i,s)},get size(){return n.size}}}function hn({itemCount:e,itemProps:t,itemSize:r}){return O.useMemo(()=>dn({itemCount:e,itemProps:t,itemSize:r}),[e,t,r])}function pn({containerSize:e,itemSize:t}){let r;switch(typeof t){case"string":{Te(t.endsWith("%"),`Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`),Te(e!==void 0,"Container size must be defined if a percentage item size is specified"),r=e*parseInt(t)/100;break}default:{r=t;break}}return r}function Kt({containerElement:e,containerStyle:t,defaultContainerSize:r=0,direction:n,isRtl:i=!1,itemCount:s,itemProps:a,itemSize:l,onResize:c,overscanCount:f}){const{height:h=r,width:y=r}=ln({defaultHeight:n==="vertical"?r:void 0,defaultWidth:n==="horizontal"?r:void 0,element:e,mode:n==="vertical"?"only-height":"only-width",style:t}),p=O.useRef({height:0,width:0}),M=n==="vertical"?h:y,P=pn({containerSize:M,itemSize:l});O.useLayoutEffect(()=>{if(typeof c=="function"){const z=p.current;(z.height!==h||z.width!==y)&&(c({height:h,width:y},{...z}),z.height=h,z.width=y)}},[h,c,y]);const w=hn({itemCount:s,itemProps:a,itemSize:P}),d=O.useCallback(z=>w.get(z),[w]),[N,D]=O.useState(()=>ct({cachedBounds:w,containerScrollOffset:0,containerSize:M,itemCount:s,overscanCount:f})),{startIndexVisible:X,startIndexOverscan:A,stopIndexVisible:j,stopIndexOverscan:F}={startIndexVisible:Math.min(s-1,N.startIndexVisible),startIndexOverscan:Math.min(s-1,N.startIndexOverscan),stopIndexVisible:Math.min(s-1,N.stopIndexVisible),stopIndexOverscan:Math.min(s-1,N.stopIndexOverscan)},I=O.useCallback(()=>Yt({cachedBounds:w,itemCount:s,itemSize:P}),[w,s,P]),k=O.useCallback(z=>{const V=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:z});return ct({cachedBounds:w,containerScrollOffset:V,containerSize:M,itemCount:s,overscanCount:f})},[w,e,M,n,i,s,f]);Ge(()=>{const z=(n==="vertical"?e==null?void 0:e.scrollTop:e==null?void 0:e.scrollLeft)??0;D(k(z))},[e,n,k]),Ge(()=>{if(!e)return;const z=()=>{D(V=>{const{scrollLeft:K,scrollTop:J}=e,ne=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:n==="vertical"?J:K}),pe=ct({cachedBounds:w,containerScrollOffset:ne,containerSize:M,itemCount:s,overscanCount:f});return Ne(pe,V)?V:pe})};return e.addEventListener("scroll",z),()=>{e.removeEventListener("scroll",z)}},[w,e,M,n,s,f]);const Y=cn(({align:z="auto",containerScrollOffset:V,index:K})=>{let J=fn({align:z,cachedBounds:w,containerScrollOffset:V,containerSize:M,index:K,itemCount:s,itemSize:P});if(e){if(J=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:J}),typeof e.scrollTo!="function"){const ne=k(J);Ne(N,ne)||D(ne)}return J}});return{getCellBounds:d,getEstimatedSize:I,scrollToIndex:Y,startIndexOverscan:A,startIndexVisible:X,stopIndexOverscan:F,stopIndexVisible:j}}function vn(e){return O.useMemo(()=>e,Object.values(e))}function mn(e,t){const{ariaAttributes:r,style:n,...i}=e,{ariaAttributes:s,style:a,...l}=t;return Ne(r,s)&&Ne(n,a)&&Ne(i,l)}function gn({cellComponent:e,cellProps:t,children:r,className:n,columnCount:i,columnWidth:s,defaultHeight:a=0,defaultWidth:l=0,dir:c,gridRef:f,onCellsRendered:h,onResize:y,overscanCount:p=3,rowCount:M,rowHeight:P,style:w,tagName:d="div",...N}){const D=vn(t),X=O.useMemo(()=>O.memo(e,mn),[e]),[A,j]=O.useState(null),F=an(A,c),{getCellBounds:I,getEstimatedSize:k,startIndexOverscan:Y,startIndexVisible:z,scrollToIndex:V,stopIndexOverscan:K,stopIndexVisible:J}=Kt({containerElement:A,containerStyle:w,defaultContainerSize:l,direction:"horizontal",isRtl:F,itemCount:i,itemProps:D,itemSize:s,onResize:y,overscanCount:p}),{getCellBounds:ne,getEstimatedSize:pe,startIndexOverscan:be,startIndexVisible:Pe,scrollToIndex:we,stopIndexOverscan:ye,stopIndexVisible:Re}=Kt({containerElement:A,containerStyle:w,defaultContainerSize:a,direction:"vertical",itemCount:M,itemProps:D,itemSize:P,onResize:y,overscanCount:p});O.useImperativeHandle(f,()=>({get element(){return A},scrollToCell({behavior:E="auto",columnAlign:b="auto",columnIndex:v,rowAlign:x="auto",rowIndex:_}){const S=V({align:b,containerScrollOffset:(A==null?void 0:A.scrollLeft)??0,index:v}),C=we({align:x,containerScrollOffset:(A==null?void 0:A.scrollTop)??0,index:_});typeof(A==null?void 0:A.scrollTo)=="function"&&A.scrollTo({behavior:E,left:S,top:C})},scrollToColumn({align:E="auto",behavior:b="auto",index:v}){const x=V({align:E,containerScrollOffset:(A==null?void 0:A.scrollLeft)??0,index:v});typeof(A==null?void 0:A.scrollTo)=="function"&&A.scrollTo({behavior:b,left:x})},scrollToRow({align:E="auto",behavior:b="auto",index:v}){const x=we({align:E,containerScrollOffset:(A==null?void 0:A.scrollTop)??0,index:v});typeof(A==null?void 0:A.scrollTo)=="function"&&A.scrollTo({behavior:b,top:x})}}),[A,V,we]),O.useEffect(()=>{Y>=0&&K>=0&&be>=0&&ye>=0&&h&&h({columnStartIndex:z,columnStopIndex:J,rowStartIndex:Pe,rowStopIndex:Re},{columnStartIndex:Y,columnStopIndex:K,rowStartIndex:be,rowStopIndex:ye})},[h,Y,z,K,J,be,Pe,ye,Re]);const g=O.useMemo(()=>{const E=[];if(i>0&&M>0)for(let b=be;b<=ye;b++){const v=ne(b),x=[];for(let _=Y;_<=K;_++){const S=I(_);x.push(O.createElement(X,{...D,ariaAttributes:{"aria-colindex":_+1,role:"gridcell"},columnIndex:_,key:_,rowIndex:b,style:{position:"absolute",left:F?void 0:0,right:F?0:void 0,transform:`translate(${F?-S.scrollOffset:S.scrollOffset}px, ${v.scrollOffset}px)`,height:v.size,width:S.size}}))}E.push(Q.jsx("div",{role:"row","aria-rowindex":b+1,children:x},b))}return E},[X,D,i,Y,K,I,ne,F,M,be,ye]),R=Q.jsx("div",{"aria-hidden":!0,style:{height:pe(),width:k(),zIndex:-1}});return O.createElement(d,{"aria-colcount":i,"aria-rowcount":M,role:"grid",...N,className:n,dir:c,ref:j,style:{position:"relative",maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...w}},g,r,R)}const bn=e=>Q.jsxs("svg",{viewBox:"64 64 896 896",focusable:"false",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",...e,children:[Q.jsx("path",{d:"M518.5 360.3a7.95 7.95 0 00-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7H381c10.2 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246z"}),Q.jsx("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"})]}),yn=e=>Q.jsxs("svg",{viewBox:"64 64 896 896",focusable:"false",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",...e,children:[Q.jsx("path",{d:"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z"}),Q.jsx("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"})]}),En=(e,t,r)=>{var i;const n=(i=r[e])==null?void 0:i[t];return!n||n.rowspan===0||n.colspan===0},wn=(e,t,r,n,i,s)=>{var M,P;const a=(M=n[e])==null?void 0:M[t];if(!a||a.rowspan===0||a.colspan===0)return;const l={...r};let c=i[t];const f=c.field.split("||"),h=f[f.length-1],y=s==null?void 0:s.find(w=>w.field===h||w.field===c.field);y&&y.style;const p=(y==null?void 0:y.style)||(c==null?void 0:c.style);if(a.colspan>1){let w=0;for(let d=t;d<t+a.colspan;d++)w+=Number((P=i[d])==null?void 0:P.width)||100;l.width=w}return a.rowspan>1&&(l.height=a.rowspan*Vt),p!=null&&p.textAlign&&(l.textAlign=p.textAlign,p.textAlign==="right"&&(l.justifyContent="flex-end"),p.textAlign==="center"&&(l.justifyContent="center")),l.border="1px solid #f0f0f0",l.padding="8px 16px",l.display="flex",l.alignItems="center",l.backgroundColor="#fff",l},_n=({columnIndex:e,rowIndex:t,style:r,mergedData:n,columns:i,handleExpand:s,meta:a})=>{if(En(t,e,n))return null;const l=n[t][e],c=wn(t,e,r,n,i,a),f=i[e],h=f.field.split("||"),y=h[h.length-1],p=a==null?void 0:a.find(w=>w.field===y||w.field===f.field),M=O.isValidElement(l.content);let P;if(P=l.content,"formatter"in f&&f.formatter&&!M&&(P=f.formatter(P,l.data)),p!=null&&p.clickHandler&&!M&&P!==null&&P!==void 0){const w=l.data;P=Q.jsx("a",{href:"javascript:void(0)",onClick:d=>{d.preventDefault(),d.stopPropagation(),p.clickHandler(w)},className:"virtual-table-cell-link",children:P})}return Q.jsxs("div",{style:c,className:st("table-cell","virtual-table-cell",{"virtual-table-cell-last":e===i.length-1}),title:typeof P=="string"?P:void 0,children:[Q.jsx("span",{className:"expand-icon",children:l.expandable?l.expanded?Q.jsx(bn,{onClick:()=>{l.onClick&&l.onClick(l),s(l)}}):Q.jsx(yn,{onClick:()=>{l.onClick&&l.onClick(l),s(l)}}):null}),P]})},Sn=e=>{const{data:t,info:r,scroll:n,columns:i,tableWidth:s}=e,{ref:a,onScroll:l}=r,c=O.useRef(),f=O.useMemo(()=>{const j={};return Object.defineProperty(j,"scrollLeft",{get:()=>{var F,I;return((I=(F=c.current)==null?void 0:F.element)==null?void 0:I.scrollLeft)||0},set:F=>{var I;(I=c.current)!=null&&I.element&&(c.current.element.scrollLeft=F)}}),Object.defineProperty(j,"scrollTop",{get:()=>{var F,I;return((I=(F=c.current)==null?void 0:F.element)==null?void 0:I.scrollTop)||0},set:F=>{var I;(I=c.current)!=null&&I.element&&(c.current.element.scrollTop=F)}}),j},[]);O.useEffect(()=>{a&&(a.current=f)},[a,f]);const h=t,y=h.length,p=O.useCallback(j=>{let F=0;return j.forEach(I=>{I!=null&&I.children&&I.children.length>0?F+=p(I.children):F+=1}),F},[]),M=p(i),P=O.useCallback(j=>{let F=[];return j.forEach(I=>{I!=null&&I.children&&I.children.length>0?F=[...F,...P(I.children)]:F.push(I)}),F},[]),w=P(i),d=O.useCallback(j=>{const F=w[j];let I=(F==null?void 0:F.width)||100;return typeof I=="string"&&(I=parseInt(I.replace("px",""))||100),I},[w]),N=O.useCallback(j=>Vt,[]),D=O.useMemo(()=>h.map(j=>j.cells),[h]),X=O.useCallback(j=>{if(j&&typeof j.scrollLeft=="number"){l&&l(j);return}if(j&&j.target){const{scrollLeft:F,scrollTop:I}=j.target;l&&l({scrollLeft:F,scrollTop:I})}},[l]),A=(typeof(n==null?void 0:n.y)=="number"?n.y:parseInt((n==null?void 0:n.y)||"400"))||400;return Q.jsx(gn,{gridRef:c,columnCount:M,columnWidth:d,rowCount:y,rowHeight:N,style:{height:A-40,width:s},onScroll:X,className:"virtual-grid",overscanCount:20,cellComponent:_n,cellProps:{mergedData:D,columns:w,data:h,handleExpand:e.handleExpand,meta:e.meta}})},We=e=>{const t=[],r=n=>{n.children&&n.children.length>0?n.children.forEach(i=>r(i)):t.push(n)};return e.forEach(n=>r(n)),t},ge=(e,t)=>{const r=t.split(".");let n=e;for(const i of r){if(n==null)return n;n=n[i]}return n==null&&(n=Oe),n},ut=(e,t)=>"|"+t.map(n=>ge(e,n)).join("|"),Gt=(e,t)=>{if(!e)return null;try{const r=e.replace(/\{(\w+)\}/g,(n,i)=>{const s=t[i];return s!=null&&!isNaN(s)?String(s):"0"});return/^[\d\.\+\-\*\/\(\)\s]+$/.test(r)?new Function(`return ${r}`)():null}catch{return null}},qe={sum:e=>e.reduce((t,r)=>t+(Number(r)||0),0),avg:e=>{const t=e.filter(r=>!isNaN(Number(r)));return t.length>0?t.reduce((r,n)=>r+Number(n),0)/t.length:0},count:e=>e.length,min:e=>Math.min(...e.map(t=>Number(t)||1/0)),max:e=>Math.max(...e.map(t=>Number(t)||-1/0)),d_count:e=>new Set(e).size,variance:e=>{const t=e.map(i=>Number(i)).filter(i=>!isNaN(i));if(t.length===0)return 0;const r=t.reduce((i,s)=>i+s,0)/t.length;return t.map(i=>Math.pow(i-r,2)).reduce((i,s)=>i+s,0)/t.length},stddev:e=>{const t=e.map(s=>Number(s)).filter(s=>!isNaN(s));if(t.length===0)return 0;const r=t.reduce((s,a)=>s+a,0)/t.length,i=t.map(s=>Math.pow(s-r,2)).reduce((s,a)=>s+a,0)/t.length;return Math.sqrt(i)}},fe=new Map,ft=new Map,dt=new Map,qt=e=>{const{data:t,sortParams:r,fields:n}=e,{rows:i,columns:s,values:a}=n;if(!t||t.length===0||!i.length&&!s.length&&!a.length)return{list:[],dataExpandFilter:g=>g};const l=We(i),c=We(s),f=We(a).filter(g=>!g.hidden),h=l.map(g=>g.field),y=c.map(g=>g.field),p=new Map,M=new Map,P=new Map;t.forEach(g=>{const R=ut(g,h);p.has(R)||p.set(R,[]),p.get(R).push(g);const E=ut(g,y);M.has(E)||M.set(E,[]),M.get(E).push(g);const b=`${R}||${E}`;P.has(b)||P.set(b,[]),P.get(b).push(g)});const w=()=>Array.from(p.entries()).sort(([g,R],[E,b])=>{if(r&&r.length>0)for(const v of r){const{field:x,sortType:_}=v,S=_==="asc",C=ge(R[0],x),L=ge(b[0],x);if(C<L)return S?-1:1;if(C>L)return S?1:-1}for(let v=0;v<h.length;v++){const x=h[v],_=l[v],S=ge(R[0],x),C=ge(b[0],x);if(S!==C)if(_.sort&&_.sort.enabled){const L=_.sort.type==="asc";if(S<C)return L?-1:1;if(S>C)return L?1:-1}else{if(S<C)return-1;if(S>C)return 1}}return 0}),d=()=>Array.from(M.entries()).sort(([g,R],[E,b])=>{for(let v=0;v<y.length;v++){const x=y[v],_=c[v],S=ge(R[0],x),C=ge(b[0],x);if(S!==C)if(_.sort&&_.sort.enabled){const L=_.sort.type==="asc";if(S<C)return L?-1:1;if(S>C)return L?1:-1}else{if(S<C)return-1;if(S>C)return 1}}return 0}),N=()=>{const g=[],R=We(i);for(let E=1;E<=R.length;E++)g.push(R.slice(0,E));return g},D=()=>{const g=N(),R=new Set;return g.forEach((E,b)=>{const v=E[E.length-1];v.total&&v.total.enabled&&R.add(b)}),R},X=()=>{const g=N(),R=[],E=D();return E.size===0||E.forEach(b=>{let v=[];b>0&&(v=g[b-1]);const x={};t.forEach(_=>{let S="";if(b>0?S=v.map(C=>ge(_,C.field)).join("|"):S="__GLOBAL__",!x[S]){const L=g[b][b].total;x[S]={records:[],config:L}}x[S].records.push(_)}),R.push({level:b,data:x})}),R},A=d(),j=new Map,F=(g,R)=>{if(fe.has(g)){const E=fe.get(g),v=!E.get(R);E.set(R,v),ft.set("rowKey",R),ft.set("level",g),ft.set("expanded",v);const x=g-1;if(x>=0&&x<l.length&&l[x].clickExpandChildren&&v===!0){const S=g+1;if(fe.has(S)){const C=fe.get(S),L=R+"|";C.forEach((B,le)=>{le.startsWith(L)&&(C.set(le,!0),I(S,le))})}}}},I=(g,R)=>{const E=g+1;if(fe.has(E)){const b=fe.get(E),v=R+"|";b.forEach((x,_)=>{_.startsWith(v)&&(b.set(_,!0),I(E,_))})}},k=g=>{const R=X(),E=[...g];if(R.length===0)return E;for(let b=0;b<R.length;b++){const{level:v,data:x}=R[b];Object.keys(x).forEach(_=>{const{records:S,config:C}=x[_],{label:L=Ht,position:B="bottom"}=C||{},le=_.split("|");let ce=-1,T=-1;if(v===0)ce=0,T=E.length-1;else for(let ee=0;ee<E.length;ee++){const te=E[ee];h.slice(0,v).every((ke,ve)=>{var ie;return((ie=te[ve])==null?void 0:ie.content)===le[ve]})&&(ce===-1&&(ce=ee),T=ee)}if(ce!==-1){const ee=[];let te="";h.forEach((ke,ve)=>{let ie=Oe;const se=ve+1,ue=se<h.length,je=l[ve];ve<=v&&(ve===v?ie=L:ie=le[ve],te+=`|${ie}`);const Ue=fe.has(se)&&fe.get(se).get(te)||!0;(ie===Oe||ie===null||ie===void 0)&&je.emptyReplace&&(ie=je.emptyReplace),ee.push({content:ie,rowspan:1,colspan:1,data:null,rowKey:te,expandable:B==="top"&&ue&&ie!==Oe&&ie!==Ht,expanded:B==="top"?Ue:!1,level:se,onClick:B==="top"&&ue?Me=>F(Me.level,Me.rowKey):void 0})}),A.forEach(([ke,ve])=>{const ie={};f.forEach(se=>{if(se.calculateType==="expr")return;const ue=se.field,je=se.calculateType||"sum",Me=S.filter(xe=>ut(xe,y)===ke).map(xe=>ge(xe,ue));let Ve=0;qe[je]&&(Ve=qe[je](Me)),ie[se.field]=Ve}),f.forEach(se=>{if(se.calculateType==="expr"&&se.expression){const ue=Gt(se.expression,ie);ie[se.field]=ue!==null?ue:0}}),f.forEach(se=>{let ue=ie[se.field];(ue===Oe||ue===null||ue===void 0||typeof ue=="number"&&isNaN(ue))&&se.emptyReplace&&(ue=se.emptyReplace),ee.push({content:ue,rowspan:1,colspan:1,data:null})})});const de=B==="top"?ce:T+1;dt.has(te)||(E.splice(de,0,ee),dt.set(te,1),B==="top"&&v>0&&j.set(_,te))}})}return E},Y=We(i);fe.clear(),t.forEach(g=>{let R="";h.forEach((E,b)=>{const v=b+1,x=ge(g,E);R+=`|${x}`,fe.has(v)||fe.set(v,new Map);const _=l[b].collapsed;fe.get(v).set(R,!_)})});const z=w();let V=[];const K=new Map;z.forEach(([g,R])=>{const E=R[0];let b="";h.forEach((v,x)=>{const _=ge(E,v),S=x+1;b+=`|${_}`,K.has(S)||K.set(S,new Map);const C=K.get(S);C.set(b,(C.get(b)||0)+1)})}),z.forEach(([g,R])=>{const E=R[0],b=[];let v="";h.forEach((x,_)=>{var te;let S=ge(E,x);const C=_+1,L=C<h.length,B=l[_];v+=`|${S}`;let le=g;const ce=Y.find(de=>de.field===x);if((te=ce==null?void 0:ce.total)!=null&&te.enabled&&ce.total.label&&(le=`${v}|${ce.total.label}`),L){const de=v;j.has(de)||j.set(de,le)}const T=fe.has(C)&&fe.get(C).get(v)||!0,ee=C<h.length?(K.get(C).get(v)||0)>1:!1;(S===Oe||S===null||S===void 0)&&B.emptyReplace&&(S=B.emptyReplace),b.push({content:S,rowspan:1,colspan:1,data:E,expandable:L&&ee,expanded:T,level:C,rowKey:v,onClick:L&&ee?de=>F(de.level,de.rowKey):void 0})}),A.forEach(([x,_])=>{const S={};f.forEach(C=>{if(C.calculateType==="expr")return;const L=C.field,B=C.calculateType||"sum",le=`${g}||${x}`,T=(P.get(le)||[]).map(te=>ge(te,L));let ee=0;qe[B]&&(ee=qe[B](T)),S[C.field]=ee}),f.forEach(C=>{if(C.calculateType==="expr"&&C.expression){const L=Gt(C.expression,S);S[C.field]=L!==null?L:0}}),f.forEach(C=>{let L=S[C.field];(L===Oe||L===null||L===void 0||typeof L=="number"&&isNaN(L))&&C.emptyReplace&&(L=C.emptyReplace),b.push({content:L,rowspan:1,colspan:1,data:E})})}),V.push({cells:b,rowKey:v})});const J=g=>{const E=g.split("|").filter(Boolean).length;for(let b=1;b<E;b++)if(fe.has(b)){const v=fe.get(b),x=g.split("|").slice(0,b+1).join("|");if(v.has(x)&&!v.get(x)){const _=x,S=j.get(_);if(g!==S)return!1}}return!0},ne=g=>{var R,E;if(!g||g.length===0)return g;for(let b=0;b<l.length;b++){let v=g[0][b].content,x=0,_=l[b],S=(R=_.total)==null?void 0:R.enabled,C=((E=_.total)==null?void 0:E.label)||"";for(let L=1;L<g.length;L++){const B=g[L][b];B.content!==Oe&&(!S||B.content!==C)&&B.content===v?(B.rowspan=0,g[x][b].rowspan++):(v=B.content,x=L)}}return g},pe=g=>{const R=g.filter(v=>J(v.rowKey)),E=R.map(v=>v.cells.map(x=>{const _={...x};if(_.expandable&&_.level&&_.rowKey&&fe.has(_.level)){const S=fe.get(_.level);S.has(_.rowKey)&&(_.expanded=S.get(_.rowKey))}return _}));return ne(E),R.map((v,x)=>({rowKey:v.rowKey,cells:E[x]}))};dt.clear();const be=V.map(g=>g.cells),we=k(be).map((g,R)=>{let E="";return g.forEach((b,v)=>{v<h.length&&b.rowKey&&(E=b.rowKey)}),{cells:g,rowKey:E}}),Re=(()=>{const g=[];if(l.forEach(R=>{g.push({...R,width:R.width||100,fixed:"left",key:R.field})}),c.length===0)f.forEach(R=>{g.push({...R,width:R.width||100,key:R.field})});else{const R=[];A.forEach(([E,b])=>{const v=E.split("|").filter(_=>_!=="");let x=R;v.forEach((_,S)=>{var L;let C=x.find(B=>B.title===_);if(!C){const le=`${((L=c[S])==null?void 0:L.field)||"unknown"}__${_}`,ce={field:le,title:_,children:[],key:le};x.push(ce),C=ce}S===v.length-1?f.forEach(B=>{C.children||(C.children=[]),C.children.push({...B,field:`${E}||${B.field}`,title:B.title||B.field,width:B.width||100,key:`${E}||${B.field}`})}):(C.children||(C.children=[]),x=C.children)})}),g.push(...R)}return g})();return{list:we,dataExpandFilter:pe,tableColumns:Re}},Ut=e=>{const{data:t,fields:r}=e,{rows:n,columns:i,values:s}=r;if(!s||s.length===0)return{list:[],dataExpandFilter:a=>a};if(!t||t.length===0)return{list:[],dataExpandFilter:a=>a};if(n.length===0&&i.length===0){const a=s.filter(f=>!f.hidden),l=a.map(f=>({...f,width:f.width||100,key:f.field}));return{list:t.map((f,h)=>({cells:a.map(p=>({content:f[p.field]??Oe,rowspan:1,colspan:1,style:p.style,data:f})),rowKey:h.toString()})),dataExpandFilter:f=>f,tableColumns:l}}return qt(e)},Cn=O.memo(e=>{const{scroll:t,data:r,meta:n,sortParams:i,fields:s}=e,[a,l]=O.useState(0),[c,f]=O.useState([]),[h,y]=O.useState([]),p=O.useRef(null),M=O.useCallback(()=>{if(p.current){let k=p.current;if(!k||!k.list||!k.dataExpandFilter)return;f(k.dataExpandFilter(k.list))}},[]);O.useEffect(()=>{let Y=Ut({data:r,meta:n,sortParams:i,fields:s});p.current=Y,Y.tableColumns&&y(Y.tableColumns),M()},[r,n,i,s,M]);const P=O.useCallback(k=>k?typeof k=="string"?parseInt(k.replace("px",""))||0:typeof k=="number"?k:0:0,[]),{baseWidth:w,colCount:d}=O.useMemo(()=>{let k=0,Y=0;const z=V=>{V.forEach(K=>{(!("type"in K)||K.type!=="group")&&(k+=P(K.width),Y+=1),K!=null&&K.children&&K.children.length>0&&z(K.children)})};return z(h),{baseWidth:k,colCount:Y}},[h,P]),N=O.useMemo(()=>{const k=Y=>Y.map(z=>{let V=0;w<a&&d>0&&(V=Math.floor((a-w)/d));const J=(z.width?P(z.width):on)+V;return z.colSpan&&z.colSpan>1?z.width=J*z.colSpan:z.width=J,z.fixed&&(z.fixed=!1),z!=null&&z.children&&z.children.length>0&&(z.children=k(z.children)),z});return k(at(h))},[h,w,a,d,P]),D=O.useMemo(()=>{let k=0;const Y=z=>{z.forEach(V=>{(!("type"in V)||V.type!=="group")&&(k+=P(V.width)),V!=null&&V.children&&V.children.length>0&&Y(V.children)})};return Y(N),k},[N,P]),X=O.useRef(null),A=O.useRef(null),j=O.useRef(!1),F=O.useCallback(({scrollLeft:k})=>{j.current||(j.current=!0,X.current&&(X.current.scrollLeft=k),requestAnimationFrame(()=>{j.current=!1}))},[]),I=O.useCallback(k=>{if(j.current)return;j.current=!0;const Y=k.currentTarget.scrollLeft;A.current&&(A.current.scrollLeft=Y),requestAnimationFrame(()=>{j.current=!1})},[]);return Q.jsx(it,{onResize:({width:k})=>{k&&k!==a&&l(k)},children:Q.jsxs("div",{className:st("virtual-table",e.className),style:{width:"100%",...e.style},children:[Q.jsx(nn,{ref:X,columns:N,width:a,onScroll:I,meta:n}),Q.jsx("div",{className:"virtual-table-body",style:{width:"100%"},children:Q.jsx(Sn,{data:c,info:{ref:A,onScroll:F},scroll:t,columns:N,tableWidth:a,gridWidth:D,handleExpand:M,meta:n})})]})})});_e.VirtualTable=Cn,_e.dataHandler=Ut,_e.pivotDataHandler=qt,Object.defineProperty(_e,Symbol.toStringTag,{value:"Module"})});
|
|
52
|
+
*/(function(e){(function(){var t={}.hasOwnProperty;function r(){for(var s="",a=0;a<arguments.length;a++){var l=arguments[a];l&&(s=i(s,n(l)))}return s}function n(s){if(typeof s=="string"||typeof s=="number")return s;if(typeof s!="object")return"";if(Array.isArray(s))return r.apply(null,s);if(s.toString!==Object.prototype.toString&&!s.toString.toString().includes("[native code]"))return s.toString();var a="";for(var l in s)t.call(s,l)&&s[l]&&(a=i(a,l));return a}function i(s,a){return a?s?s+" "+a:s+a:s}e.exports?(r.default=r,e.exports=r):window.classNames=r})()})(Wt);var rn=Wt.exports;const st=sr(rn),Hn="",nn=O.forwardRef(({columns:e,width:t,onScroll:r,meta:n},i)=>{const s=O.useMemo(()=>{const a=[],l=h=>{let y=0;return h.forEach(p=>{if(p.children&&p.children.length>0){const M=l(p.children);M>y&&(y=M)}}),y+1},c=l(e),f=(h,y)=>{a[y]||(a[y]=[]),h.forEach(p=>{var d,N;let M="left";(d=p.style)!=null&&d.textAlign&&(M=p.style.textAlign);let P=n==null?void 0:n.find(D=>D.field===p.field);if(!P){const D=p.field.split("||");if(D.length>1){const X=D[D.length-1];P=n==null?void 0:n.find(A=>A.field===X)}else p.field.includes("__")&&(P=n==null?void 0:n.find(X=>p.field.startsWith(`${X.field}_`)))}(N=P==null?void 0:P.style)!=null&&N.textAlign&&(M=P.style.textAlign);const w={key:p.field||p.dataIndex||p.title||String(Math.random()),title:p.title,width:p.width,align:M,className:p.field,colSpan:1,rowSpan:1};if(p.children&&p.children.length>0){const D=X=>X.children&&X.children.length>0?X.children.reduce((A,j)=>A+D(j),0):1;w.colSpan=D(p),a[y].push(w),f(p.children,y+1)}else w.rowSpan=c-y,a[y].push(w)})};return f(e,0),a},[e,n]);return Q.jsx("div",{ref:i,className:"virtual-table-header hide-scrollbar",style:{overflow:"auto",width:t},onScroll:r,children:Q.jsxs("table",{style:{tableLayout:"fixed",width:"100%"},children:[Q.jsx("colgroup",{children:e.map((a,l)=>{const c=f=>f.children&&f.children.length>0?f.children.flatMap(c):[f.width];return c(a).map((f,h)=>Q.jsx("col",{style:{width:f,minWidth:f}},`${l}-${h}`))}).flat()}),Q.jsx("thead",{className:"virtual-table-thead",children:s.map((a,l)=>Q.jsx("tr",{className:"virtual-table-row",children:a.map((c,f)=>Q.jsx("th",{className:st("virtual-table-cell",c.className),colSpan:c.colSpan,rowSpan:c.rowSpan,title:c.title,style:{textAlign:c.align},children:c.title},f))},l))})]})})}),at=e=>{if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(r=>at(r));const t={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=at(e[r]));return t},Vt=43,on=100,Oe="-",Ht="合计";function sn(e){let t=e;for(;t;){if(t.dir)return t.dir==="rtl";t=t.parentElement}return!1}function an(e,t){const[r,n]=O.useState(t==="rtl");return O.useLayoutEffect(()=>{e&&(t||n(sn(e)))},[t,e]),r}const Ge=typeof window<"u"?O.useLayoutEffect:O.useEffect;function Bt(e){if(e!==void 0)switch(typeof e){case"number":return e;case"string":{if(e.endsWith("px"))return parseFloat(e);break}}}function ln({box:e,defaultHeight:t,defaultWidth:r,disabled:n,element:i,mode:s,style:a}){const{styleHeight:l,styleWidth:c}=O.useMemo(()=>({styleHeight:Bt(a==null?void 0:a.height),styleWidth:Bt(a==null?void 0:a.width)}),[a==null?void 0:a.height,a==null?void 0:a.width]),[f,h]=O.useState({height:t,width:r}),y=n||s==="only-height"&&l!==void 0||s==="only-width"&&c!==void 0||l!==void 0&&c!==void 0;return Ge(()=>{if(i===null||y)return;const p=new ResizeObserver(M=>{for(const P of M){const{contentRect:w,target:d}=P;i===d&&h(N=>N.height===w.height&&N.width===w.width?N:{height:w.height,width:w.width})}});return p.observe(i,{box:e}),()=>{p==null||p.unobserve(i)}},[e,y,i,l,c]),O.useMemo(()=>({height:l??f.height,width:c??f.width}),[f,l,c])}function cn(e){const t=O.useRef(()=>{throw new Error("Cannot call during render.")});return Ge(()=>{t.current=e},[e]),O.useCallback(r=>{var n;return(n=t.current)==null?void 0:n.call(t,r)},[t])}let Ie=null;function un(e=!1){if(Ie===null||e){const t=document.createElement("div"),r=t.style;r.width="50px",r.height="50px",r.overflow="scroll",r.direction="rtl";const n=document.createElement("div"),i=n.style;return i.width="100px",i.height="100px",t.appendChild(n),document.body.appendChild(t),t.scrollLeft>0?Ie="positive-descending":(t.scrollLeft=1,t.scrollLeft===0?Ie="negative":Ie="positive-ascending"),document.body.removeChild(t),Ie}return Ie}function lt({containerElement:e,direction:t,isRtl:r,scrollOffset:n}){if(t==="horizontal"&&r)switch(un()){case"negative":return-n;case"positive-descending":{if(e){const{clientWidth:i,scrollLeft:s,scrollWidth:a}=e;return a-i-s}break}}return n}function Te(e,t="Assertion error"){if(!e)throw Error(t)}function Ne(e,t){if(e===t)return!0;if(!!e!=!!t||(Te(e!==void 0),Te(t!==void 0),Object.keys(e).length!==Object.keys(t).length))return!1;for(const r in e)if(!Object.is(t[r],e[r]))return!1;return!0}function Yt({cachedBounds:e,itemCount:t,itemSize:r}){if(t===0)return 0;if(typeof r=="number")return t*r;{const n=e.get(e.size===0?0:e.size-1);Te(n!==void 0,"Unexpected bounds cache miss");const i=(n.scrollOffset+n.size)/e.size;return t*i}}function fn({align:e,cachedBounds:t,index:r,itemCount:n,itemSize:i,containerScrollOffset:s,containerSize:a}){if(r<0||r>=n)throw RangeError(`Invalid index specified: ${r}`,{cause:`Index ${r} is not within the range of 0 - ${n-1}`});const l=Yt({cachedBounds:t,itemCount:n,itemSize:i}),c=t.get(r),f=Math.max(0,Math.min(l-a,c.scrollOffset)),h=Math.max(0,c.scrollOffset-a+c.size);switch(e==="smart"&&(s>=h&&s<=f?e="auto":e="center"),e){case"start":return f;case"end":return h;case"center":return c.scrollOffset<=a/2?0:c.scrollOffset+c.size/2>=l-a/2?l-a:c.scrollOffset+c.size/2-a/2;case"auto":default:return s>=h&&s<=f?s:s<h?h:f}}function ct({cachedBounds:e,containerScrollOffset:t,containerSize:r,itemCount:n,overscanCount:i}){const s=n-1;let a=0,l=-1,c=0,f=-1,h=0;for(;h<s;){const y=e.get(h);if(y.scrollOffset+y.size>t)break;h++}for(a=h,c=Math.max(0,a-i);h<s;){const y=e.get(h);if(y.scrollOffset+y.size>=t+r)break;h++}return l=Math.min(s,h),f=Math.min(n-1,l+i),a<0&&(a=0,l=-1,c=0,f=-1),{startIndexVisible:a,stopIndexVisible:l,startIndexOverscan:c,stopIndexOverscan:f}}function dn({itemCount:e,itemProps:t,itemSize:r}){const n=new Map;return{get(i){for(Te(i<e,`Invalid index ${i}`);n.size-1<i;){const a=n.size;let l;switch(typeof r){case"function":{l=r(a,t);break}case"number":{l=r;break}}if(a===0)n.set(a,{size:l,scrollOffset:0});else{const c=n.get(a-1);Te(c!==void 0,`Unexpected bounds cache miss for index ${i}`),n.set(a,{scrollOffset:c.scrollOffset+c.size,size:l})}}const s=n.get(i);return Te(s!==void 0,`Unexpected bounds cache miss for index ${i}`),s},set(i,s){n.set(i,s)},get size(){return n.size}}}function hn({itemCount:e,itemProps:t,itemSize:r}){return O.useMemo(()=>dn({itemCount:e,itemProps:t,itemSize:r}),[e,t,r])}function pn({containerSize:e,itemSize:t}){let r;switch(typeof t){case"string":{Te(t.endsWith("%"),`Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`),Te(e!==void 0,"Container size must be defined if a percentage item size is specified"),r=e*parseInt(t)/100;break}default:{r=t;break}}return r}function Kt({containerElement:e,containerStyle:t,defaultContainerSize:r=0,direction:n,isRtl:i=!1,itemCount:s,itemProps:a,itemSize:l,onResize:c,overscanCount:f}){const{height:h=r,width:y=r}=ln({defaultHeight:n==="vertical"?r:void 0,defaultWidth:n==="horizontal"?r:void 0,element:e,mode:n==="vertical"?"only-height":"only-width",style:t}),p=O.useRef({height:0,width:0}),M=n==="vertical"?h:y,P=pn({containerSize:M,itemSize:l});O.useLayoutEffect(()=>{if(typeof c=="function"){const z=p.current;(z.height!==h||z.width!==y)&&(c({height:h,width:y},{...z}),z.height=h,z.width=y)}},[h,c,y]);const w=hn({itemCount:s,itemProps:a,itemSize:P}),d=O.useCallback(z=>w.get(z),[w]),[N,D]=O.useState(()=>ct({cachedBounds:w,containerScrollOffset:0,containerSize:M,itemCount:s,overscanCount:f})),{startIndexVisible:X,startIndexOverscan:A,stopIndexVisible:j,stopIndexOverscan:F}={startIndexVisible:Math.min(s-1,N.startIndexVisible),startIndexOverscan:Math.min(s-1,N.startIndexOverscan),stopIndexVisible:Math.min(s-1,N.stopIndexVisible),stopIndexOverscan:Math.min(s-1,N.stopIndexOverscan)},I=O.useCallback(()=>Yt({cachedBounds:w,itemCount:s,itemSize:P}),[w,s,P]),k=O.useCallback(z=>{const V=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:z});return ct({cachedBounds:w,containerScrollOffset:V,containerSize:M,itemCount:s,overscanCount:f})},[w,e,M,n,i,s,f]);Ge(()=>{const z=(n==="vertical"?e==null?void 0:e.scrollTop:e==null?void 0:e.scrollLeft)??0;D(k(z))},[e,n,k]),Ge(()=>{if(!e)return;const z=()=>{D(V=>{const{scrollLeft:K,scrollTop:J}=e,ne=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:n==="vertical"?J:K}),pe=ct({cachedBounds:w,containerScrollOffset:ne,containerSize:M,itemCount:s,overscanCount:f});return Ne(pe,V)?V:pe})};return e.addEventListener("scroll",z),()=>{e.removeEventListener("scroll",z)}},[w,e,M,n,s,f]);const Y=cn(({align:z="auto",containerScrollOffset:V,index:K})=>{let J=fn({align:z,cachedBounds:w,containerScrollOffset:V,containerSize:M,index:K,itemCount:s,itemSize:P});if(e){if(J=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:J}),typeof e.scrollTo!="function"){const ne=k(J);Ne(N,ne)||D(ne)}return J}});return{getCellBounds:d,getEstimatedSize:I,scrollToIndex:Y,startIndexOverscan:A,startIndexVisible:X,stopIndexOverscan:F,stopIndexVisible:j}}function vn(e){return O.useMemo(()=>e,Object.values(e))}function mn(e,t){const{ariaAttributes:r,style:n,...i}=e,{ariaAttributes:s,style:a,...l}=t;return Ne(r,s)&&Ne(n,a)&&Ne(i,l)}function gn({cellComponent:e,cellProps:t,children:r,className:n,columnCount:i,columnWidth:s,defaultHeight:a=0,defaultWidth:l=0,dir:c,gridRef:f,onCellsRendered:h,onResize:y,overscanCount:p=3,rowCount:M,rowHeight:P,style:w,tagName:d="div",...N}){const D=vn(t),X=O.useMemo(()=>O.memo(e,mn),[e]),[A,j]=O.useState(null),F=an(A,c),{getCellBounds:I,getEstimatedSize:k,startIndexOverscan:Y,startIndexVisible:z,scrollToIndex:V,stopIndexOverscan:K,stopIndexVisible:J}=Kt({containerElement:A,containerStyle:w,defaultContainerSize:l,direction:"horizontal",isRtl:F,itemCount:i,itemProps:D,itemSize:s,onResize:y,overscanCount:p}),{getCellBounds:ne,getEstimatedSize:pe,startIndexOverscan:be,startIndexVisible:Pe,scrollToIndex:we,stopIndexOverscan:ye,stopIndexVisible:Re}=Kt({containerElement:A,containerStyle:w,defaultContainerSize:a,direction:"vertical",itemCount:M,itemProps:D,itemSize:P,onResize:y,overscanCount:p});O.useImperativeHandle(f,()=>({get element(){return A},scrollToCell({behavior:E="auto",columnAlign:b="auto",columnIndex:v,rowAlign:x="auto",rowIndex:_}){const S=V({align:b,containerScrollOffset:(A==null?void 0:A.scrollLeft)??0,index:v}),C=we({align:x,containerScrollOffset:(A==null?void 0:A.scrollTop)??0,index:_});typeof(A==null?void 0:A.scrollTo)=="function"&&A.scrollTo({behavior:E,left:S,top:C})},scrollToColumn({align:E="auto",behavior:b="auto",index:v}){const x=V({align:E,containerScrollOffset:(A==null?void 0:A.scrollLeft)??0,index:v});typeof(A==null?void 0:A.scrollTo)=="function"&&A.scrollTo({behavior:b,left:x})},scrollToRow({align:E="auto",behavior:b="auto",index:v}){const x=we({align:E,containerScrollOffset:(A==null?void 0:A.scrollTop)??0,index:v});typeof(A==null?void 0:A.scrollTo)=="function"&&A.scrollTo({behavior:b,top:x})}}),[A,V,we]),O.useEffect(()=>{Y>=0&&K>=0&&be>=0&&ye>=0&&h&&h({columnStartIndex:z,columnStopIndex:J,rowStartIndex:Pe,rowStopIndex:Re},{columnStartIndex:Y,columnStopIndex:K,rowStartIndex:be,rowStopIndex:ye})},[h,Y,z,K,J,be,Pe,ye,Re]);const g=O.useMemo(()=>{const E=[];if(i>0&&M>0)for(let b=be;b<=ye;b++){const v=ne(b),x=[];for(let _=Y;_<=K;_++){const S=I(_);x.push(O.createElement(X,{...D,ariaAttributes:{"aria-colindex":_+1,role:"gridcell"},columnIndex:_,key:_,rowIndex:b,style:{position:"absolute",left:F?void 0:0,right:F?0:void 0,transform:`translate(${F?-S.scrollOffset:S.scrollOffset}px, ${v.scrollOffset}px)`,height:v.size,width:S.size}}))}E.push(Q.jsx("div",{role:"row","aria-rowindex":b+1,children:x},b))}return E},[X,D,i,Y,K,I,ne,F,M,be,ye]),R=Q.jsx("div",{"aria-hidden":!0,style:{height:pe(),width:k(),zIndex:-1}});return O.createElement(d,{"aria-colcount":i,"aria-rowcount":M,role:"grid",...N,className:n,dir:c,ref:j,style:{position:"relative",maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...w}},g,r,R)}const bn=e=>Q.jsxs("svg",{viewBox:"64 64 896 896",focusable:"false",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",...e,children:[Q.jsx("path",{d:"M518.5 360.3a7.95 7.95 0 00-12.9 0l-178 246c-3.8 5.3 0 12.7 6.5 12.7H381c10.2 0 19.9-4.9 25.9-13.2L512 460.4l105.2 145.4c6 8.3 15.6 13.2 25.9 13.2H690c6.5 0 10.3-7.4 6.5-12.7l-178-246z"}),Q.jsx("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"})]}),yn=e=>Q.jsxs("svg",{viewBox:"64 64 896 896",focusable:"false",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",...e,children:[Q.jsx("path",{d:"M690 405h-46.9c-10.2 0-19.9 4.9-25.9 13.2L512 563.6 406.8 418.2c-6-8.3-15.6-13.2-25.9-13.2H334c-6.5 0-10.3 7.4-6.5 12.7l178 246c3.2 4.4 9.7 4.4 12.9 0l178-246c3.9-5.3.1-12.7-6.4-12.7z"}),Q.jsx("path",{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"})]}),En=(e,t,r)=>{var i;const n=(i=r[e])==null?void 0:i[t];return!n||n.rowspan===0||n.colspan===0},wn=(e,t,r,n,i,s)=>{var M,P;const a=(M=n[e])==null?void 0:M[t];if(!a||a.rowspan===0||a.colspan===0)return;const l={...r};let c=i[t];const f=c.field.split("||"),h=f[f.length-1],y=s==null?void 0:s.find(w=>w.field===h||w.field===c.field);y&&y.style;const p=(y==null?void 0:y.style)||(c==null?void 0:c.style);if(a.colspan>1){let w=0;for(let d=t;d<t+a.colspan;d++)w+=Number((P=i[d])==null?void 0:P.width)||100;l.width=w}return a.rowspan>1&&(l.height=a.rowspan*Vt),p!=null&&p.textAlign&&(l.textAlign=p.textAlign,p.textAlign==="right"&&(l.justifyContent="flex-end"),p.textAlign==="center"&&(l.justifyContent="center")),l.border="1px solid #f0f0f0",l.padding="8px 16px",l.display="flex",l.alignItems="center",l.backgroundColor="#fff",l},_n=({columnIndex:e,rowIndex:t,style:r,mergedData:n,columns:i,handleExpand:s,meta:a})=>{if(En(t,e,n))return null;const l=n[t][e],c=wn(t,e,r,n,i,a),f=i[e],h=f.field.split("||"),y=h[h.length-1],p=a==null?void 0:a.find(w=>w.field===y||w.field===f.field),M=O.isValidElement(l.content);let P;if(P=l.content,"formatter"in f&&f.formatter&&!M&&(P=f.formatter(P,l.data)),p!=null&&p.clickHandler&&!M&&P!==null&&P!==void 0){const w=l.data;P=Q.jsx("a",{href:"javascript:void(0)",onClick:d=>{d.preventDefault(),d.stopPropagation(),p.clickHandler(w)},className:"virtual-table-cell-link",children:P})}return Q.jsxs("div",{style:c,className:st("table-cell","virtual-table-cell",{"virtual-table-cell-last":e===i.length-1}),title:typeof P=="string"?P:void 0,children:[Q.jsx("span",{className:"expand-icon",children:l.expandable?l.expanded?Q.jsx(bn,{onClick:()=>{l.onClick&&l.onClick(l),s(l)}}):Q.jsx(yn,{onClick:()=>{l.onClick&&l.onClick(l),s(l)}}):null}),P]})},Sn=e=>{const{data:t,info:r,scroll:n,columns:i,tableWidth:s}=e,{ref:a,onScroll:l}=r,c=O.useRef(),f=O.useMemo(()=>{const j={};return Object.defineProperty(j,"scrollLeft",{get:()=>{var F,I;return((I=(F=c.current)==null?void 0:F.element)==null?void 0:I.scrollLeft)||0},set:F=>{var I;(I=c.current)!=null&&I.element&&(c.current.element.scrollLeft=F)}}),Object.defineProperty(j,"scrollTop",{get:()=>{var F,I;return((I=(F=c.current)==null?void 0:F.element)==null?void 0:I.scrollTop)||0},set:F=>{var I;(I=c.current)!=null&&I.element&&(c.current.element.scrollTop=F)}}),j},[]);O.useEffect(()=>{a&&(a.current=f)},[a,f]);const h=t,y=h.length,p=O.useCallback(j=>{let F=0;return j.forEach(I=>{I!=null&&I.children&&I.children.length>0?F+=p(I.children):F+=1}),F},[]),M=p(i),P=O.useCallback(j=>{let F=[];return j.forEach(I=>{I!=null&&I.children&&I.children.length>0?F=[...F,...P(I.children)]:F.push(I)}),F},[]),w=P(i),d=O.useCallback(j=>{const F=w[j];let I=(F==null?void 0:F.width)||100;return typeof I=="string"&&(I=parseInt(I.replace("px",""))||100),I},[w]),N=O.useCallback(j=>Vt,[]),D=O.useMemo(()=>h.map(j=>j.cells),[h]),X=O.useCallback(j=>{if(j&&typeof j.scrollLeft=="number"){l&&l(j);return}if(j&&j.target){const{scrollLeft:F,scrollTop:I}=j.target;l&&l({scrollLeft:F,scrollTop:I})}},[l]),A=(typeof(n==null?void 0:n.y)=="number"?n.y:parseInt((n==null?void 0:n.y)||"400"))||400;return Q.jsx(gn,{gridRef:c,columnCount:M,columnWidth:d,rowCount:y,rowHeight:N,style:{height:A-40,width:s,overflowY:"auto"},onScroll:X,className:"virtual-grid",overscanCount:20,cellComponent:_n,cellProps:{mergedData:D,columns:w,data:h,handleExpand:e.handleExpand,meta:e.meta}})},We=e=>{const t=[],r=n=>{n.children&&n.children.length>0?n.children.forEach(i=>r(i)):t.push(n)};return e.forEach(n=>r(n)),t},ge=(e,t)=>{const r=t.split(".");let n=e;for(const i of r){if(n==null)return n;n=n[i]}return n==null&&(n=Oe),n},ut=(e,t)=>"|"+t.map(n=>ge(e,n)).join("|"),Gt=(e,t)=>{if(!e)return null;try{const r=e.replace(/\{(\w+)\}/g,(n,i)=>{const s=t[i];return s!=null&&!isNaN(s)?String(s):"0"});return/^[\d\.\+\-\*\/\(\)\s]+$/.test(r)?new Function(`return ${r}`)():null}catch{return null}},qe={sum:e=>e.reduce((t,r)=>t+(Number(r)||0),0),avg:e=>{const t=e.filter(r=>!isNaN(Number(r)));return t.length>0?t.reduce((r,n)=>r+Number(n),0)/t.length:0},count:e=>e.length,min:e=>Math.min(...e.map(t=>Number(t)||1/0)),max:e=>Math.max(...e.map(t=>Number(t)||-1/0)),d_count:e=>new Set(e).size,variance:e=>{const t=e.map(i=>Number(i)).filter(i=>!isNaN(i));if(t.length===0)return 0;const r=t.reduce((i,s)=>i+s,0)/t.length;return t.map(i=>Math.pow(i-r,2)).reduce((i,s)=>i+s,0)/t.length},stddev:e=>{const t=e.map(s=>Number(s)).filter(s=>!isNaN(s));if(t.length===0)return 0;const r=t.reduce((s,a)=>s+a,0)/t.length,i=t.map(s=>Math.pow(s-r,2)).reduce((s,a)=>s+a,0)/t.length;return Math.sqrt(i)}},fe=new Map,ft=new Map,dt=new Map,qt=e=>{const{data:t,sortParams:r,fields:n}=e,{rows:i,columns:s,values:a}=n;if(!t||t.length===0||!i.length&&!s.length&&!a.length)return{list:[],dataExpandFilter:g=>g};const l=We(i),c=We(s),f=We(a).filter(g=>!g.hidden),h=l.map(g=>g.field),y=c.map(g=>g.field),p=new Map,M=new Map,P=new Map;t.forEach(g=>{const R=ut(g,h);p.has(R)||p.set(R,[]),p.get(R).push(g);const E=ut(g,y);M.has(E)||M.set(E,[]),M.get(E).push(g);const b=`${R}||${E}`;P.has(b)||P.set(b,[]),P.get(b).push(g)});const w=()=>Array.from(p.entries()).sort(([g,R],[E,b])=>{if(r&&r.length>0)for(const v of r){const{field:x,sortType:_}=v,S=_==="asc",C=ge(R[0],x),L=ge(b[0],x);if(C<L)return S?-1:1;if(C>L)return S?1:-1}for(let v=0;v<h.length;v++){const x=h[v],_=l[v],S=ge(R[0],x),C=ge(b[0],x);if(S!==C)if(_.sort&&_.sort.enabled){const L=_.sort.type==="asc";if(S<C)return L?-1:1;if(S>C)return L?1:-1}else{if(S<C)return-1;if(S>C)return 1}}return 0}),d=()=>Array.from(M.entries()).sort(([g,R],[E,b])=>{for(let v=0;v<y.length;v++){const x=y[v],_=c[v],S=ge(R[0],x),C=ge(b[0],x);if(S!==C)if(_.sort&&_.sort.enabled){const L=_.sort.type==="asc";if(S<C)return L?-1:1;if(S>C)return L?1:-1}else{if(S<C)return-1;if(S>C)return 1}}return 0}),N=()=>{const g=[],R=We(i);for(let E=1;E<=R.length;E++)g.push(R.slice(0,E));return g},D=()=>{const g=N(),R=new Set;return g.forEach((E,b)=>{const v=E[E.length-1];v.total&&v.total.enabled&&R.add(b)}),R},X=()=>{const g=N(),R=[],E=D();return E.size===0||E.forEach(b=>{let v=[];b>0&&(v=g[b-1]);const x={};t.forEach(_=>{let S="";if(b>0?S=v.map(C=>ge(_,C.field)).join("|"):S="__GLOBAL__",!x[S]){const L=g[b][b].total;x[S]={records:[],config:L}}x[S].records.push(_)}),R.push({level:b,data:x})}),R},A=d(),j=new Map,F=(g,R)=>{if(fe.has(g)){const E=fe.get(g),v=!E.get(R);E.set(R,v),ft.set("rowKey",R),ft.set("level",g),ft.set("expanded",v);const x=g-1;if(x>=0&&x<l.length&&l[x].clickExpandChildren&&v===!0){const S=g+1;if(fe.has(S)){const C=fe.get(S),L=R+"|";C.forEach((B,le)=>{le.startsWith(L)&&(C.set(le,!0),I(S,le))})}}}},I=(g,R)=>{const E=g+1;if(fe.has(E)){const b=fe.get(E),v=R+"|";b.forEach((x,_)=>{_.startsWith(v)&&(b.set(_,!0),I(E,_))})}},k=g=>{const R=X(),E=[...g];if(R.length===0)return E;for(let b=0;b<R.length;b++){const{level:v,data:x}=R[b];Object.keys(x).forEach(_=>{const{records:S,config:C}=x[_],{label:L=Ht,position:B="bottom"}=C||{},le=_.split("|");let ce=-1,T=-1;if(v===0)ce=0,T=E.length-1;else for(let ee=0;ee<E.length;ee++){const te=E[ee];h.slice(0,v).every((ke,ve)=>{var ie;return((ie=te[ve])==null?void 0:ie.content)===le[ve]})&&(ce===-1&&(ce=ee),T=ee)}if(ce!==-1){const ee=[];let te="";h.forEach((ke,ve)=>{let ie=Oe;const se=ve+1,ue=se<h.length,je=l[ve];ve<=v&&(ve===v?ie=L:ie=le[ve],te+=`|${ie}`);const Ue=fe.has(se)&&fe.get(se).get(te)||!0;(ie===Oe||ie===null||ie===void 0)&&je.emptyReplace&&(ie=je.emptyReplace),ee.push({content:ie,rowspan:1,colspan:1,data:null,rowKey:te,expandable:B==="top"&&ue&&ie!==Oe&&ie!==Ht,expanded:B==="top"?Ue:!1,level:se,onClick:B==="top"&&ue?Me=>F(Me.level,Me.rowKey):void 0})}),A.forEach(([ke,ve])=>{const ie={};f.forEach(se=>{if(se.calculateType==="expr")return;const ue=se.field,je=se.calculateType||"sum",Me=S.filter(xe=>ut(xe,y)===ke).map(xe=>ge(xe,ue));let Ve=0;qe[je]&&(Ve=qe[je](Me)),ie[se.field]=Ve}),f.forEach(se=>{if(se.calculateType==="expr"&&se.expression){const ue=Gt(se.expression,ie);ie[se.field]=ue!==null?ue:0}}),f.forEach(se=>{let ue=ie[se.field];(ue===Oe||ue===null||ue===void 0||typeof ue=="number"&&isNaN(ue))&&se.emptyReplace&&(ue=se.emptyReplace),ee.push({content:ue,rowspan:1,colspan:1,data:null})})});const de=B==="top"?ce:T+1;dt.has(te)||(E.splice(de,0,ee),dt.set(te,1),B==="top"&&v>0&&j.set(_,te))}})}return E},Y=We(i);fe.clear(),t.forEach(g=>{let R="";h.forEach((E,b)=>{const v=b+1,x=ge(g,E);R+=`|${x}`,fe.has(v)||fe.set(v,new Map);const _=l[b].collapsed;fe.get(v).set(R,!_)})});const z=w();let V=[];const K=new Map;z.forEach(([g,R])=>{const E=R[0];let b="";h.forEach((v,x)=>{const _=ge(E,v),S=x+1;b+=`|${_}`,K.has(S)||K.set(S,new Map);const C=K.get(S);C.set(b,(C.get(b)||0)+1)})}),z.forEach(([g,R])=>{const E=R[0],b=[];let v="";h.forEach((x,_)=>{var te;let S=ge(E,x);const C=_+1,L=C<h.length,B=l[_];v+=`|${S}`;let le=g;const ce=Y.find(de=>de.field===x);if((te=ce==null?void 0:ce.total)!=null&&te.enabled&&ce.total.label&&(le=`${v}|${ce.total.label}`),L){const de=v;j.has(de)||j.set(de,le)}const T=fe.has(C)&&fe.get(C).get(v)||!0,ee=C<h.length?(K.get(C).get(v)||0)>1:!1;(S===Oe||S===null||S===void 0)&&B.emptyReplace&&(S=B.emptyReplace),b.push({content:S,rowspan:1,colspan:1,data:E,expandable:L&&ee,expanded:T,level:C,rowKey:v,onClick:L&&ee?de=>F(de.level,de.rowKey):void 0})}),A.forEach(([x,_])=>{const S={};f.forEach(C=>{if(C.calculateType==="expr")return;const L=C.field,B=C.calculateType||"sum",le=`${g}||${x}`,T=(P.get(le)||[]).map(te=>ge(te,L));let ee=0;qe[B]&&(ee=qe[B](T)),S[C.field]=ee}),f.forEach(C=>{if(C.calculateType==="expr"&&C.expression){const L=Gt(C.expression,S);S[C.field]=L!==null?L:0}}),f.forEach(C=>{let L=S[C.field];(L===Oe||L===null||L===void 0||typeof L=="number"&&isNaN(L))&&C.emptyReplace&&(L=C.emptyReplace),b.push({content:L,rowspan:1,colspan:1,data:E})})}),V.push({cells:b,rowKey:v})});const J=g=>{const E=g.split("|").filter(Boolean).length;for(let b=1;b<E;b++)if(fe.has(b)){const v=fe.get(b),x=g.split("|").slice(0,b+1).join("|");if(v.has(x)&&!v.get(x)){const _=x,S=j.get(_);if(g!==S)return!1}}return!0},ne=g=>{var R,E;if(!g||g.length===0)return g;for(let b=0;b<l.length;b++){let v=g[0][b].content,x=0,_=l[b],S=(R=_.total)==null?void 0:R.enabled,C=((E=_.total)==null?void 0:E.label)||"";for(let L=1;L<g.length;L++){const B=g[L][b];B.content!==Oe&&(!S||B.content!==C)&&B.content===v?(B.rowspan=0,g[x][b].rowspan++):(v=B.content,x=L)}}return g},pe=g=>{const R=g.filter(v=>J(v.rowKey)),E=R.map(v=>v.cells.map(x=>{const _={...x};if(_.expandable&&_.level&&_.rowKey&&fe.has(_.level)){const S=fe.get(_.level);S.has(_.rowKey)&&(_.expanded=S.get(_.rowKey))}return _}));return ne(E),R.map((v,x)=>({rowKey:v.rowKey,cells:E[x]}))};dt.clear();const be=V.map(g=>g.cells),we=k(be).map((g,R)=>{let E="";return g.forEach((b,v)=>{v<h.length&&b.rowKey&&(E=b.rowKey)}),{cells:g,rowKey:E}}),Re=(()=>{const g=[];if(l.forEach(R=>{g.push({...R,width:R.width||100,fixed:"left",key:R.field})}),c.length===0)f.forEach(R=>{g.push({...R,width:R.width||100,key:R.field})});else{const R=[];A.forEach(([E,b])=>{const v=E.split("|").filter(_=>_!=="");let x=R;v.forEach((_,S)=>{var L;let C=x.find(B=>B.title===_);if(!C){const le=`${((L=c[S])==null?void 0:L.field)||"unknown"}_${_}`,ce={field:le,title:_,children:[],key:le};x.push(ce),C=ce}S===v.length-1?f.forEach(B=>{C.children||(C.children=[]),C.children.push({...B,field:`${E}||${B.field}`,title:B.title||B.field,width:B.width||100,key:`${E}||${B.field}`})}):(C.children||(C.children=[]),x=C.children)})}),g.push(...R)}return g})();return{list:we,dataExpandFilter:pe,tableColumns:Re}},Ut=e=>{const{data:t,fields:r}=e,{rows:n,columns:i,values:s}=r;if(!s||s.length===0)return{list:[],dataExpandFilter:a=>a};if(!t||t.length===0)return{list:[],dataExpandFilter:a=>a};if(n.length===0&&i.length===0){const a=s.filter(f=>!f.hidden),l=a.map(f=>({...f,width:f.width||100,key:f.field}));return{list:t.map((f,h)=>({cells:a.map(p=>({content:f[p.field]??Oe,rowspan:1,colspan:1,style:p.style,data:f})),rowKey:h.toString()})),dataExpandFilter:f=>f,tableColumns:l}}return qt(e)},Cn=O.memo(e=>{const{scroll:t,data:r,meta:n,sortParams:i,fields:s}=e,[a,l]=O.useState(0),[c,f]=O.useState([]),[h,y]=O.useState([]),p=O.useRef(null),M=O.useCallback(()=>{if(p.current){let k=p.current;if(!k||!k.list||!k.dataExpandFilter)return;f(k.dataExpandFilter(k.list))}},[]);O.useEffect(()=>{let Y=Ut({data:r,meta:n,sortParams:i,fields:s});p.current=Y,Y.tableColumns&&y(Y.tableColumns),M()},[r,n,i,s,M]);const P=O.useCallback(k=>k?typeof k=="string"?parseInt(k.replace("px",""))||0:typeof k=="number"?k:0:0,[]),{baseWidth:w,colCount:d}=O.useMemo(()=>{let k=0,Y=0;const z=V=>{V.forEach(K=>{(!("type"in K)||K.type!=="group")&&(k+=P(K.width),Y+=1),K!=null&&K.children&&K.children.length>0&&z(K.children)})};return z(h),{baseWidth:k,colCount:Y}},[h,P]),N=O.useMemo(()=>{const k=Y=>Y.map(z=>{let V=0;w<a&&d>0&&(V=Math.floor((a-w)/d));const J=(z.width?P(z.width):on)+V;return z.colSpan&&z.colSpan>1?z.width=J*z.colSpan:z.width=J,z.fixed&&(z.fixed=!1),z!=null&&z.children&&z.children.length>0&&(z.children=k(z.children)),z});return k(at(h))},[h,w,a,d,P]),D=O.useMemo(()=>{let k=0;const Y=z=>{z.forEach(V=>{(!("type"in V)||V.type!=="group")&&(k+=P(V.width)),V!=null&&V.children&&V.children.length>0&&Y(V.children)})};return Y(N),k},[N,P]),X=O.useRef(null),A=O.useRef(null),j=O.useRef(!1),F=O.useCallback(({scrollLeft:k})=>{j.current||(j.current=!0,X.current&&(X.current.scrollLeft=k),requestAnimationFrame(()=>{j.current=!1}))},[]),I=O.useCallback(k=>{if(j.current)return;j.current=!0;const Y=k.currentTarget.scrollLeft;A.current&&(A.current.scrollLeft=Y),requestAnimationFrame(()=>{j.current=!1})},[]);return Q.jsx(it,{onResize:({width:k})=>{k&&k!==a&&l(k)},children:Q.jsxs("div",{className:st("virtual-table",e.className),style:{width:"100%",...e.style},children:[Q.jsx(nn,{ref:X,columns:N,width:a-8,onScroll:I,meta:n}),Q.jsx("div",{className:"virtual-table-body",style:{width:"100%"},children:Q.jsx(Sn,{data:c,info:{ref:A,onScroll:F},scroll:t,columns:N,tableWidth:a,gridWidth:D,handleExpand:M,meta:n})})]})})});_e.VirtualTable=Cn,_e.dataHandler=Ut,_e.pivotDataHandler=qt,Object.defineProperty(_e,Symbol.toStringTag,{value:"Module"})});
|
|
53
53
|
//# sourceMappingURL=virtual-table.umd.js.map
|