@yester/virtual-table 1.1.4 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -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=_.forwardRef(({columns:e,width:t,onScroll:r,meta:n},i)=>{const s=_.useMemo(()=>{const a=[],l=h=>{let E=0;return h.forEach(v=>{if(v.children&&v.children.length>0){const A=l(v.children);A>E&&(E=A)}}),E+1},c=l(e),f=(h,E)=>{a[E]||(a[E]=[]),h.forEach(v=>{var d,D;let A="left";(d=v.style)!=null&&d.textAlign&&(A=v.style.textAlign);let j=n==null?void 0:n.find($=>$.field===v.field);if(!j){const $=v.field.split("||");if($.length>1){const X=$[$.length-1];j=n==null?void 0:n.find(M=>M.field===X)}else v.field.includes("__")&&(j=n==null?void 0:n.find(X=>v.field.startsWith(`${X.field}_`)))}(D=j==null?void 0:j.style)!=null&&D.textAlign&&(A=j.style.textAlign);const S={key:v.field||v.dataIndex||v.title||String(Math.random()),title:v.title,width:v.width,align:A,className:v.field,colSpan:1,rowSpan:1};if(v.children&&v.children.length>0){const $=X=>X.children&&X.children.length>0?X.children.reduce((M,N)=>M+$(N),0):1;S.colSpan=$(v),a[E].push(S),f(v.children,E+1)}else S.rowSpan=c-E,a[E].push(S)})};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,xe="-",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]=_.useState(t==="rtl");return _.useLayoutEffect(()=>{e&&(t||n(sn(e)))},[t,e]),r}const Ge=typeof window<"u"?_.useLayoutEffect:_.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}=_.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]=_.useState({height:t,width:r}),E=n||s==="only-height"&&l!==void 0||s==="only-width"&&c!==void 0||l!==void 0&&c!==void 0;return Ge(()=>{if(i===null||E)return;const v=new ResizeObserver(A=>{for(const j of A){const{contentRect:S,target:d}=j;i===d&&h(D=>D.height===S.height&&D.width===S.width?D:{height:S.height,width:S.width})}});return v.observe(i,{box:e}),()=>{v==null||v.unobserve(i)}},[e,E,i,l,c]),_.useMemo(()=>({height:l??f.height,width:c??f.width}),[f,l,c])}function cn(e){const t=_.useRef(()=>{throw new Error("Cannot call during render.")});return Ge(()=>{t.current=e},[e]),_.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 E=e.get(h);if(E.scrollOffset+E.size>t)break;h++}for(a=h,c=Math.max(0,a-i);h<s;){const E=e.get(h);if(E.scrollOffset+E.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 _.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:E=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}),v=_.useRef({height:0,width:0}),A=n==="vertical"?h:E,j=pn({containerSize:A,itemSize:l});_.useLayoutEffect(()=>{if(typeof c=="function"){const z=v.current;(z.height!==h||z.width!==E)&&(c({height:h,width:E},{...z}),z.height=h,z.width=E)}},[h,c,E]);const S=hn({itemCount:s,itemProps:a,itemSize:j}),d=_.useCallback(z=>S.get(z),[S]),[D,$]=_.useState(()=>ct({cachedBounds:S,containerScrollOffset:0,containerSize:A,itemCount:s,overscanCount:f})),{startIndexVisible:X,startIndexOverscan:M,stopIndexVisible:N,stopIndexOverscan:F}={startIndexVisible:Math.min(s-1,D.startIndexVisible),startIndexOverscan:Math.min(s-1,D.startIndexOverscan),stopIndexVisible:Math.min(s-1,D.stopIndexVisible),stopIndexOverscan:Math.min(s-1,D.stopIndexOverscan)},I=_.useCallback(()=>Yt({cachedBounds:S,itemCount:s,itemSize:j}),[S,s,j]),p=_.useCallback(z=>{const V=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:z});return ct({cachedBounds:S,containerScrollOffset:V,containerSize:A,itemCount:s,overscanCount:f})},[S,e,A,n,i,s,f]);Ge(()=>{const z=(n==="vertical"?e==null?void 0:e.scrollTop:e==null?void 0:e.scrollLeft)??0;$(p(z))},[e,n,p]),Ge(()=>{if(!e)return;const z=()=>{$(V=>{const{scrollLeft:K,scrollTop:J}=e,ne=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:n==="vertical"?J:K}),pe=ct({cachedBounds:S,containerScrollOffset:ne,containerSize:A,itemCount:s,overscanCount:f});return Ne(pe,V)?V:pe})};return e.addEventListener("scroll",z),()=>{e.removeEventListener("scroll",z)}},[S,e,A,n,s,f]);const Y=cn(({align:z="auto",containerScrollOffset:V,index:K})=>{let J=fn({align:z,cachedBounds:S,containerScrollOffset:V,containerSize:A,index:K,itemCount:s,itemSize:j});if(e){if(J=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:J}),typeof e.scrollTo!="function"){const ne=p(J);Ne(D,ne)||$(ne)}return J}});return{getCellBounds:d,getEstimatedSize:I,scrollToIndex:Y,startIndexOverscan:M,startIndexVisible:X,stopIndexOverscan:F,stopIndexVisible:N}}function vn(e){return _.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:E,overscanCount:v=3,rowCount:A,rowHeight:j,style:S,tagName:d="div",...D}){const $=vn(t),X=_.useMemo(()=>_.memo(e,mn),[e]),[M,N]=_.useState(null),F=an(M,c),{getCellBounds:I,getEstimatedSize:p,startIndexOverscan:Y,startIndexVisible:z,scrollToIndex:V,stopIndexOverscan:K,stopIndexVisible:J}=Kt({containerElement:M,containerStyle:S,defaultContainerSize:l,direction:"horizontal",isRtl:F,itemCount:i,itemProps:$,itemSize:s,onResize:E,overscanCount:v}),{getCellBounds:ne,getEstimatedSize:pe,startIndexOverscan:be,startIndexVisible:Pe,scrollToIndex:we,stopIndexOverscan:ye,stopIndexVisible:Oe}=Kt({containerElement:M,containerStyle:S,defaultContainerSize:a,direction:"vertical",itemCount:A,itemProps:$,itemSize:j,onResize:E,overscanCount:v});_.useImperativeHandle(f,()=>({get element(){return M},scrollToCell({behavior:w="auto",columnAlign:y="auto",columnIndex:m,rowAlign:T="auto",rowIndex:C}){const x=V({align:y,containerScrollOffset:(M==null?void 0:M.scrollLeft)??0,index:m}),O=we({align:T,containerScrollOffset:(M==null?void 0:M.scrollTop)??0,index:C});typeof(M==null?void 0:M.scrollTo)=="function"&&M.scrollTo({behavior:w,left:x,top:O})},scrollToColumn({align:w="auto",behavior:y="auto",index:m}){const T=V({align:w,containerScrollOffset:(M==null?void 0:M.scrollLeft)??0,index:m});typeof(M==null?void 0:M.scrollTo)=="function"&&M.scrollTo({behavior:y,left:T})},scrollToRow({align:w="auto",behavior:y="auto",index:m}){const T=we({align:w,containerScrollOffset:(M==null?void 0:M.scrollTop)??0,index:m});typeof(M==null?void 0:M.scrollTo)=="function"&&M.scrollTo({behavior:y,top:T})}}),[M,V,we]),_.useEffect(()=>{Y>=0&&K>=0&&be>=0&&ye>=0&&h&&h({columnStartIndex:z,columnStopIndex:J,rowStartIndex:Pe,rowStopIndex:Oe},{columnStartIndex:Y,columnStopIndex:K,rowStartIndex:be,rowStopIndex:ye})},[h,Y,z,K,J,be,Pe,ye,Oe]);const b=_.useMemo(()=>{const w=[];if(i>0&&A>0)for(let y=be;y<=ye;y++){const m=ne(y),T=[];for(let C=Y;C<=K;C++){const x=I(C);T.push(_.createElement(X,{...$,ariaAttributes:{"aria-colindex":C+1,role:"gridcell"},columnIndex:C,key:C,rowIndex:y,style:{position:"absolute",left:F?void 0:0,right:F?0:void 0,transform:`translate(${F?-x.scrollOffset:x.scrollOffset}px, ${m.scrollOffset}px)`,height:m.size,width:x.size}}))}w.push(Q.jsx("div",{role:"row","aria-rowindex":y+1,children:T},y))}return w},[X,$,i,Y,K,I,ne,F,A,be,ye]),R=Q.jsx("div",{"aria-hidden":!0,style:{height:pe(),width:p(),zIndex:-1}});return _.createElement(d,{"aria-colcount":i,"aria-rowcount":A,role:"grid",...D,className:n,dir:c,ref:N,style:{position:"relative",maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...S}},b,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 A,j;const a=(A=n[e])==null?void 0:A[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],E=s==null?void 0:s.find(S=>S.field===h||S.field===c.field);E&&E.style;const v=(E==null?void 0:E.style)||(c==null?void 0:c.style);if(a.colspan>1){let S=0;for(let d=t;d<t+a.colspan;d++)S+=Number((j=i[d])==null?void 0:j.width)||100;l.width=S}return a.rowspan>1&&(l.height=a.rowspan*Vt),v!=null&&v.textAlign&&(l.textAlign=v.textAlign,v.textAlign==="right"&&(l.justifyContent="flex-end"),v.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("||"),E=h[h.length-1],v=a==null?void 0:a.find(S=>S.field===E||S.field===f.field),A=_.isValidElement(l.content);let j;if(j=l.content,"formatter"in f&&f.formatter&&!A&&(j=f.formatter(j,l.data)),v!=null&&v.clickHandler&&!A&&j!==null&&j!==void 0){const S=l.data;j=Q.jsx("a",{href:"javascript:void(0)",onClick:d=>{d.preventDefault(),d.stopPropagation(),v.clickHandler(S)},className:"virtual-table-cell-link",children:j})}return Q.jsxs("div",{style:c,className:st("table-cell","virtual-table-cell",{"virtual-table-cell-last":e===i.length-1}),title:typeof j=="string"?j: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}),j]})},Sn=e=>{const{data:t,info:r,scroll:n,columns:i,tableWidth:s}=e,{ref:a,onScroll:l}=r,c=_.useRef(),f=_.useMemo(()=>{const F={};return Object.defineProperty(F,"scrollLeft",{get:()=>{var I,p;return((p=(I=c.current)==null?void 0:I.element)==null?void 0:p.scrollLeft)||0},set:I=>{var p;(p=c.current)!=null&&p.element&&(c.current.element.scrollLeft=I)}}),Object.defineProperty(F,"scrollTop",{get:()=>{var I,p;return((p=(I=c.current)==null?void 0:I.element)==null?void 0:p.scrollTop)||0},set:I=>{var p;(p=c.current)!=null&&p.element&&(c.current.element.scrollTop=I)}}),F},[]);_.useEffect(()=>{a&&(a.current=f)},[a,f]);const h=t,E=h.length,v=_.useCallback(F=>{let I=0;return F.forEach(p=>{p!=null&&p.children&&p.children.length>0?I+=v(p.children):I+=1}),I},[]),A=v(i),j=_.useCallback(F=>{let I=[];return F.forEach(p=>{p!=null&&p.children&&p.children.length>0?I=[...I,...j(p.children)]:I.push(p)}),I},[]),S=j(i),d=_.useCallback(F=>{const I=S[F];let p=(I==null?void 0:I.width)||100;return typeof p=="string"&&(p=parseInt(p.replace("px",""))||100),p},[S]),D=_.useCallback(F=>Vt,[]),$=_.useMemo(()=>h.map(F=>F.cells),[h]),X=_.useCallback(F=>{if(F&&typeof F.scrollLeft=="number"){l&&l(F);return}if(F&&F.target){const{scrollLeft:I,scrollTop:p}=F.target;l&&l({scrollLeft:I,scrollTop:p})}},[l]),M=_.useMemo(()=>{let F=1;return t&&t.length>0&&t.forEach(I=>{I.cells&&I.cells.forEach(p=>{p.rowspan>F&&(F=p.rowspan)})}),F},[t]),N=(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:A,columnWidth:d,rowCount:E,rowHeight:D,style:{height:N-40,width:s,overflowY:"auto"},onScroll:X,className:`virtual-grid row-${M}`,overscanCount:M+3,cellComponent:_n,cellProps:{mergedData:$,columns:S,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=xe),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:b=>b};const l=We(i),c=We(s),f=We(a).filter(b=>!b.hidden),h=l.map(b=>b.field),E=c.map(b=>b.field),v=new Map,A=new Map,j=new Map;t.forEach(b=>{const R=ut(b,h);v.has(R)||v.set(R,[]),v.get(R).push(b);const w=ut(b,E);A.has(w)||A.set(w,[]),A.get(w).push(b);const y=`${R}||${w}`;j.has(y)||j.set(y,[]),j.get(y).push(b)});const S=()=>Array.from(v.entries()).sort(([b,R],[w,y])=>{if(r&&r.length>0)for(const m of r){const{field:T,sortType:C}=m,x=C==="asc",O=ge(R[0],T),k=ge(y[0],T);if(O<k)return x?-1:1;if(O>k)return x?1:-1}for(let m=0;m<h.length;m++){const T=h[m],C=l[m],x=ge(R[0],T),O=ge(y[0],T);if(x!==O)if(C.sort&&C.sort.enabled){const k=C.sort.type==="asc";if(x<O)return k?-1:1;if(x>O)return k?1:-1}else{if(x<O)return-1;if(x>O)return 1}}return 0}),d=()=>Array.from(A.entries()).sort(([b,R],[w,y])=>{for(let m=0;m<E.length;m++){const T=E[m],C=c[m],x=ge(R[0],T),O=ge(y[0],T);if(x!==O)if(C.sort&&C.sort.enabled){const k=C.sort.type==="asc";if(x<O)return k?-1:1;if(x>O)return k?1:-1}else{if(x<O)return-1;if(x>O)return 1}}return 0}),D=()=>{const b=[],R=We(i);for(let w=1;w<=R.length;w++)b.push(R.slice(0,w));return b},$=()=>{const b=D(),R=new Set;return b.forEach((w,y)=>{const m=w[w.length-1];m.total&&m.total.enabled&&R.add(y)}),R},X=()=>{const b=D(),R=[],w=$();return w.size===0||w.forEach(y=>{let m=[];y>0&&(m=b[y-1]);const T={};t.forEach(C=>{let x="";if(y>0?x=m.map(O=>ge(C,O.field)).join("|"):x="__GLOBAL__",!T[x]){const k=b[y][y].total;T[x]={records:[],config:k}}T[x].records.push(C)}),R.push({level:y,data:T})}),R},M=d(),N=new Map,F=(b,R)=>{if(fe.has(b)){const w=fe.get(b),m=!w.get(R);w.set(R,m),ft.set("rowKey",R),ft.set("level",b),ft.set("expanded",m);const T=b-1;if(T>=0&&T<l.length&&l[T].clickExpandChildren&&m===!0){const x=b+1;if(fe.has(x)){const O=fe.get(x),k=R+"|";O.forEach((B,le)=>{le.startsWith(k)&&(O.set(le,!0),I(x,le))})}}}},I=(b,R)=>{const w=b+1;if(fe.has(w)){const y=fe.get(w),m=R+"|";y.forEach((T,C)=>{C.startsWith(m)&&(y.set(C,!0),I(w,C))})}},p=b=>{const R=X(),w=[...b];if(R.length===0)return w;for(let y=0;y<R.length;y++){const{level:m,data:T}=R[y];Object.keys(T).forEach(C=>{const{records:x,config:O}=T[C],{label:k=Ht,position:B="bottom"}=O||{},le=C.split("|");let ce=-1,P=-1;if(m===0)ce=0,P=w.length-1;else for(let ee=0;ee<w.length;ee++){const te=w[ee];h.slice(0,m).every((ke,ve)=>{var ie;return((ie=te[ve])==null?void 0:ie.content)===le[ve]})&&(ce===-1&&(ce=ee),P=ee)}if(ce!==-1){const ee=[];let te="";h.forEach((ke,ve)=>{let ie=xe;const se=ve+1,ue=se<h.length,je=l[ve];ve<=m&&(ve===m?ie=k:ie=le[ve],te+=`|${ie}`);const Ue=fe.has(se)&&fe.get(se).get(te)||!0;(ie===xe||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!==xe&&ie!==Ht,expanded:B==="top"?Ue:!1,level:se,onClick:B==="top"&&ue?Me=>F(Me.level,Me.rowKey):void 0})}),M.forEach(([ke,ve])=>{const ie={};f.forEach(se=>{if(se.calculateType==="expr")return;const ue=se.field,je=se.calculateType||"sum",Me=x.filter(Re=>ut(Re,E)===ke).map(Re=>ge(Re,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===xe||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:P+1;dt.has(te)||(w.splice(de,0,ee),dt.set(te,1),B==="top"&&m>0&&N.set(C,te))}})}return w},Y=We(i);fe.clear(),t.forEach(b=>{let R="";h.forEach((w,y)=>{const m=y+1,T=ge(b,w);R+=`|${T}`,fe.has(m)||fe.set(m,new Map);const C=l[y].collapsed;fe.get(m).set(R,!C)})});const z=S();let V=[];const K=new Map;z.forEach(([b,R])=>{const w=R[0];let y="";h.forEach((m,T)=>{const C=ge(w,m),x=T+1;y+=`|${C}`,K.has(x)||K.set(x,new Map);const O=K.get(x);O.set(y,(O.get(y)||0)+1)})}),z.forEach(([b,R])=>{const w=R[0],y=[];let m="";h.forEach((T,C)=>{var te;let x=ge(w,T);const O=C+1,k=O<h.length,B=l[C];m+=`|${x}`;let le=b;const ce=Y.find(de=>de.field===T);if((te=ce==null?void 0:ce.total)!=null&&te.enabled&&ce.total.label&&(le=`${m}|${ce.total.label}`),k){const de=m;N.has(de)||N.set(de,le)}const P=fe.has(O)&&fe.get(O).get(m)||!0,ee=O<h.length?(K.get(O).get(m)||0)>1:!1;(x===xe||x===null||x===void 0)&&B.emptyReplace&&(x=B.emptyReplace),y.push({content:x,rowspan:1,colspan:1,data:w,expandable:k&&ee,expanded:P,level:O,rowKey:m,onClick:k&&ee?de=>F(de.level,de.rowKey):void 0})}),M.forEach(([T,C])=>{const x={};f.forEach(O=>{if(O.calculateType==="expr")return;const k=O.field,B=O.calculateType||"sum",le=`${b}||${T}`,P=(j.get(le)||[]).map(te=>ge(te,k));let ee=0;qe[B]&&(ee=qe[B](P)),x[O.field]=ee}),f.forEach(O=>{if(O.calculateType==="expr"&&O.expression){const k=Gt(O.expression,x);x[O.field]=k!==null?k:0}}),f.forEach(O=>{let k=x[O.field];(k===xe||k===null||k===void 0||typeof k=="number"&&isNaN(k))&&O.emptyReplace&&(k=O.emptyReplace),y.push({content:k,rowspan:1,colspan:1,data:w})})}),V.push({cells:y,rowKey:m})});const J=b=>{const w=b.split("|").filter(Boolean).length;for(let y=1;y<w;y++)if(fe.has(y)){const m=fe.get(y),T=b.split("|").slice(0,y+1).join("|");if(m.has(T)&&!m.get(T)){const C=T,x=N.get(C);if(b!==x)return!1}}return!0},ne=b=>{var R,w;if(!b||b.length===0)return b;for(let y=0;y<l.length;y++){let m=b[0][y].content,T=0,C=l[y],x=(R=C.total)==null?void 0:R.enabled,O=((w=C.total)==null?void 0:w.label)||"";for(let k=1;k<b.length;k++){const B=b[k][y];B.content!==xe&&(!x||B.content!==O)&&B.content===m?(B.rowspan=0,b[T][y].rowspan++):(m=B.content,T=k)}}return b},pe=b=>{const R=b.filter(m=>J(m.rowKey)),w=R.map(m=>m.cells.map(T=>{const C={...T};if(C.expandable&&C.level&&C.rowKey&&fe.has(C.level)){const x=fe.get(C.level);x.has(C.rowKey)&&(C.expanded=x.get(C.rowKey))}return C}));return ne(w),R.map((m,T)=>({rowKey:m.rowKey,cells:w[T]}))};dt.clear();const be=V.map(b=>b.cells),we=p(be).map((b,R)=>{let w="";return b.forEach((y,m)=>{m<h.length&&y.rowKey&&(w=y.rowKey)}),{cells:b,rowKey:w}}),Oe=(()=>{const b=[];if(l.forEach(R=>{b.push({...R,width:R.width||100,fixed:"left",key:R.field})}),c.length===0)f.forEach(R=>{b.push({...R,width:R.width||100,key:R.field})});else{const R=[];M.forEach(([w,y])=>{const m=w.split("|").filter(C=>C!=="");let T=R;m.forEach((C,x)=>{var k;let O=T.find(B=>B.title===C);if(!O){const le=`${((k=c[x])==null?void 0:k.field)||"unknown"}_${C}`,ce={field:le,title:C,children:[],key:le};T.push(ce),O=ce}x===m.length-1?f.forEach(B=>{O.children||(O.children=[]),O.children.push({...B,field:`${w}||${B.field}`,title:B.title||B.field,width:B.width||100,key:`${w}||${B.field}`})}):(O.children||(O.children=[]),T=O.children)})}),b.push(...R)}return b})();return{list:we,dataExpandFilter:pe,tableColumns:Oe}},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(v=>({content:f[v.field]??xe,rowspan:1,colspan:1,style:v.style,data:f})),rowKey:h.toString()})),dataExpandFilter:f=>f,tableColumns:l}}return qt(e)},Cn=_.memo(e=>{const{scroll:t,data:r,meta:n,sortParams:i,fields:s}=e,[a,l]=_.useState(0),[c,f]=_.useState([]),[h,E]=_.useState([]),v=_.useRef(null),A=_.useCallback(()=>{if(v.current){let p=v.current;if(!p||!p.list||!p.dataExpandFilter)return;f(p.dataExpandFilter(p.list))}},[]);_.useEffect(()=>{let Y=Ut({data:r,meta:n,sortParams:i,fields:s});v.current=Y,Y.tableColumns&&E(Y.tableColumns),A()},[r,n,i,s,A]);const j=_.useCallback(p=>p?typeof p=="string"?parseInt(p.replace("px",""))||0:typeof p=="number"?p:0:0,[]),{baseWidth:S,colCount:d}=_.useMemo(()=>{let p=0,Y=0;const z=V=>{V.forEach(K=>{(!("type"in K)||K.type!=="group")&&(p+=j(K.width),Y+=1),K!=null&&K.children&&K.children.length>0&&z(K.children)})};return z(h),{baseWidth:p,colCount:Y}},[h,j]),D=_.useMemo(()=>{const p=Y=>Y.map(z=>{let V=0;S<a&&d>0&&(V=Math.floor((a-S)/d));const J=(z.width?j(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=p(z.children)),z});return p(at(h))},[h,S,a,d,j]),$=_.useMemo(()=>{let p=0;const Y=z=>{z.forEach(V=>{(!("type"in V)||V.type!=="group")&&(p+=j(V.width)),V!=null&&V.children&&V.children.length>0&&Y(V.children)})};return Y(D),p},[D,j]),X=_.useRef(null),M=_.useRef(null),N=_.useRef(!1),F=_.useCallback(({scrollLeft:p})=>{N.current||(N.current=!0,X.current&&(X.current.scrollLeft=p),requestAnimationFrame(()=>{N.current=!1}))},[]),I=_.useCallback(p=>{if(N.current)return;N.current=!0;const Y=p.currentTarget.scrollLeft;M.current&&(M.current.scrollLeft=Y),requestAnimationFrame(()=>{N.current=!1})},[]);return Q.jsx(it,{onResize:({width:p})=>{p&&p!==a&&l(p)},children:Q.jsxs("div",{className:st("virtual-table",e.className),style:{width:"100%",...e.style},children:[Q.jsx(nn,{ref:X,columns:D,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:M,onScroll:F},scroll:t,columns:D,tableWidth:a,gridWidth:$,handleExpand:A,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=_.forwardRef(({columns:e,width:t,onScroll:r,meta:n},i)=>{const s=_.useMemo(()=>{const a=[],l=h=>{let E=0;return h.forEach(v=>{if(v.children&&v.children.length>0){const A=l(v.children);A>E&&(E=A)}}),E+1},c=l(e),f=(h,E)=>{a[E]||(a[E]=[]),h.forEach(v=>{var d,D;let A="left";(d=v.style)!=null&&d.textAlign&&(A=v.style.textAlign);let j=n==null?void 0:n.find($=>$.field===v.field);if(!j){const $=v.field.split("||");if($.length>1){const X=$[$.length-1];j=n==null?void 0:n.find(M=>M.field===X)}else v.field.includes("__")&&(j=n==null?void 0:n.find(X=>v.field.startsWith(`${X.field}_`)))}(D=j==null?void 0:j.style)!=null&&D.textAlign&&(A=j.style.textAlign);const S={key:v.field||v.dataIndex||v.title||String(Math.random()),title:v.title,width:v.width,align:A,className:v.field,colSpan:1,rowSpan:1};if(v.children&&v.children.length>0){const $=X=>X.children&&X.children.length>0?X.children.reduce((M,N)=>M+$(N),0):1;S.colSpan=$(v),a[E].push(S),f(v.children,E+1)}else S.rowSpan=c-E,a[E].push(S)})};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,xe="-",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]=_.useState(t==="rtl");return _.useLayoutEffect(()=>{e&&(t||n(sn(e)))},[t,e]),r}const Ge=typeof window<"u"?_.useLayoutEffect:_.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}=_.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]=_.useState({height:t,width:r}),E=n||s==="only-height"&&l!==void 0||s==="only-width"&&c!==void 0||l!==void 0&&c!==void 0;return Ge(()=>{if(i===null||E)return;const v=new ResizeObserver(A=>{for(const j of A){const{contentRect:S,target:d}=j;i===d&&h(D=>D.height===S.height&&D.width===S.width?D:{height:S.height,width:S.width})}});return v.observe(i,{box:e}),()=>{v==null||v.unobserve(i)}},[e,E,i,l,c]),_.useMemo(()=>({height:l??f.height,width:c??f.width}),[f,l,c])}function cn(e){const t=_.useRef(()=>{throw new Error("Cannot call during render.")});return Ge(()=>{t.current=e},[e]),_.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 E=e.get(h);if(E.scrollOffset+E.size>t)break;h++}for(a=h,c=Math.max(0,a-i);h<s;){const E=e.get(h);if(E.scrollOffset+E.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 _.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:E=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}),v=_.useRef({height:0,width:0}),A=n==="vertical"?h:E,j=pn({containerSize:A,itemSize:l});_.useLayoutEffect(()=>{if(typeof c=="function"){const z=v.current;(z.height!==h||z.width!==E)&&(c({height:h,width:E},{...z}),z.height=h,z.width=E)}},[h,c,E]);const S=hn({itemCount:s,itemProps:a,itemSize:j}),d=_.useCallback(z=>S.get(z),[S]),[D,$]=_.useState(()=>ct({cachedBounds:S,containerScrollOffset:0,containerSize:A,itemCount:s,overscanCount:f})),{startIndexVisible:X,startIndexOverscan:M,stopIndexVisible:N,stopIndexOverscan:F}={startIndexVisible:Math.min(s-1,D.startIndexVisible),startIndexOverscan:Math.min(s-1,D.startIndexOverscan),stopIndexVisible:Math.min(s-1,D.stopIndexVisible),stopIndexOverscan:Math.min(s-1,D.stopIndexOverscan)},I=_.useCallback(()=>Yt({cachedBounds:S,itemCount:s,itemSize:j}),[S,s,j]),p=_.useCallback(z=>{const V=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:z});return ct({cachedBounds:S,containerScrollOffset:V,containerSize:A,itemCount:s,overscanCount:f})},[S,e,A,n,i,s,f]);Ge(()=>{const z=(n==="vertical"?e==null?void 0:e.scrollTop:e==null?void 0:e.scrollLeft)??0;$(p(z))},[e,n,p]),Ge(()=>{if(!e)return;const z=()=>{$(V=>{const{scrollLeft:K,scrollTop:J}=e,ne=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:n==="vertical"?J:K}),pe=ct({cachedBounds:S,containerScrollOffset:ne,containerSize:A,itemCount:s,overscanCount:f});return Ne(pe,V)?V:pe})};return e.addEventListener("scroll",z),()=>{e.removeEventListener("scroll",z)}},[S,e,A,n,s,f]);const Y=cn(({align:z="auto",containerScrollOffset:V,index:K})=>{let J=fn({align:z,cachedBounds:S,containerScrollOffset:V,containerSize:A,index:K,itemCount:s,itemSize:j});if(e){if(J=lt({containerElement:e,direction:n,isRtl:i,scrollOffset:J}),typeof e.scrollTo!="function"){const ne=p(J);Ne(D,ne)||$(ne)}return J}});return{getCellBounds:d,getEstimatedSize:I,scrollToIndex:Y,startIndexOverscan:M,startIndexVisible:X,stopIndexOverscan:F,stopIndexVisible:N}}function vn(e){return _.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:E,overscanCount:v=3,rowCount:A,rowHeight:j,style:S,tagName:d="div",...D}){const $=vn(t),X=_.useMemo(()=>_.memo(e,mn),[e]),[M,N]=_.useState(null),F=an(M,c),{getCellBounds:I,getEstimatedSize:p,startIndexOverscan:Y,startIndexVisible:z,scrollToIndex:V,stopIndexOverscan:K,stopIndexVisible:J}=Kt({containerElement:M,containerStyle:S,defaultContainerSize:l,direction:"horizontal",isRtl:F,itemCount:i,itemProps:$,itemSize:s,onResize:E,overscanCount:v}),{getCellBounds:ne,getEstimatedSize:pe,startIndexOverscan:be,startIndexVisible:Pe,scrollToIndex:we,stopIndexOverscan:ye,stopIndexVisible:Oe}=Kt({containerElement:M,containerStyle:S,defaultContainerSize:a,direction:"vertical",itemCount:A,itemProps:$,itemSize:j,onResize:E,overscanCount:v});_.useImperativeHandle(f,()=>({get element(){return M},scrollToCell({behavior:w="auto",columnAlign:y="auto",columnIndex:m,rowAlign:T="auto",rowIndex:C}){const x=V({align:y,containerScrollOffset:(M==null?void 0:M.scrollLeft)??0,index:m}),O=we({align:T,containerScrollOffset:(M==null?void 0:M.scrollTop)??0,index:C});typeof(M==null?void 0:M.scrollTo)=="function"&&M.scrollTo({behavior:w,left:x,top:O})},scrollToColumn({align:w="auto",behavior:y="auto",index:m}){const T=V({align:w,containerScrollOffset:(M==null?void 0:M.scrollLeft)??0,index:m});typeof(M==null?void 0:M.scrollTo)=="function"&&M.scrollTo({behavior:y,left:T})},scrollToRow({align:w="auto",behavior:y="auto",index:m}){const T=we({align:w,containerScrollOffset:(M==null?void 0:M.scrollTop)??0,index:m});typeof(M==null?void 0:M.scrollTo)=="function"&&M.scrollTo({behavior:y,top:T})}}),[M,V,we]),_.useEffect(()=>{Y>=0&&K>=0&&be>=0&&ye>=0&&h&&h({columnStartIndex:z,columnStopIndex:J,rowStartIndex:Pe,rowStopIndex:Oe},{columnStartIndex:Y,columnStopIndex:K,rowStartIndex:be,rowStopIndex:ye})},[h,Y,z,K,J,be,Pe,ye,Oe]);const b=_.useMemo(()=>{const w=[];if(i>0&&A>0)for(let y=be;y<=ye;y++){const m=ne(y),T=[];for(let C=Y;C<=K;C++){const x=I(C);T.push(_.createElement(X,{...$,ariaAttributes:{"aria-colindex":C+1,role:"gridcell"},columnIndex:C,key:C,rowIndex:y,style:{position:"absolute",left:F?void 0:0,right:F?0:void 0,transform:`translate(${F?-x.scrollOffset:x.scrollOffset}px, ${m.scrollOffset}px)`,height:m.size,width:x.size}}))}w.push(Q.jsx("div",{role:"row","aria-rowindex":y+1,children:T},y))}return w},[X,$,i,Y,K,I,ne,F,A,be,ye]),R=Q.jsx("div",{"aria-hidden":!0,style:{height:pe(),width:p(),zIndex:-1}});return _.createElement(d,{"aria-colcount":i,"aria-rowcount":A,role:"grid",...D,className:n,dir:c,ref:N,style:{position:"relative",maxHeight:"100%",maxWidth:"100%",flexGrow:1,overflow:"auto",...S}},b,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 A,j;const a=(A=n[e])==null?void 0:A[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],E=s==null?void 0:s.find(S=>S.field===h||S.field===c.field);E&&E.style;const v=(E==null?void 0:E.style)||(c==null?void 0:c.style);if(a.colspan>1){let S=0;for(let d=t;d<t+a.colspan;d++)S+=Number((j=i[d])==null?void 0:j.width)||100;l.width=S}return a.rowspan>1&&(l.height=a.rowspan*Vt),v!=null&&v.textAlign&&(l.textAlign=v.textAlign,v.textAlign==="right"&&(l.justifyContent="flex-end"),v.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("||"),E=h[h.length-1],v=a==null?void 0:a.find(S=>S.field===E||S.field===f.field),A=_.isValidElement(l.content);let j;if(j=l.content,"formatter"in f&&f.formatter&&!A&&(j=f.formatter(j,l.data)),v!=null&&v.clickHandler&&!A&&j!==null&&j!==void 0){const S=l.data;j=Q.jsx("a",{href:"javascript:void(0)",onClick:d=>{d.preventDefault(),d.stopPropagation(),v.clickHandler(S)},className:"virtual-table-cell-link",children:j})}return Q.jsxs("div",{style:c,className:st("table-cell","virtual-table-cell",{"virtual-table-cell-last":e===i.length-1}),title:typeof j=="string"?j: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}),j]})},Sn=e=>{const{data:t,info:r,scroll:n,columns:i,tableWidth:s}=e,{ref:a,onScroll:l}=r,c=_.useRef(),f=_.useMemo(()=>{const F={};return Object.defineProperty(F,"scrollLeft",{get:()=>{var I,p;return((p=(I=c.current)==null?void 0:I.element)==null?void 0:p.scrollLeft)||0},set:I=>{var p;(p=c.current)!=null&&p.element&&(c.current.element.scrollLeft=I)}}),Object.defineProperty(F,"scrollTop",{get:()=>{var I,p;return((p=(I=c.current)==null?void 0:I.element)==null?void 0:p.scrollTop)||0},set:I=>{var p;(p=c.current)!=null&&p.element&&(c.current.element.scrollTop=I)}}),F},[]);_.useEffect(()=>{a&&(a.current=f)},[a,f]);const h=t,E=h.length,v=_.useCallback(F=>{let I=0;return F.forEach(p=>{p!=null&&p.children&&p.children.length>0?I+=v(p.children):I+=1}),I},[]),A=v(i),j=_.useCallback(F=>{let I=[];return F.forEach(p=>{p!=null&&p.children&&p.children.length>0?I=[...I,...j(p.children)]:I.push(p)}),I},[]),S=j(i),d=_.useCallback(F=>{const I=S[F];let p=(I==null?void 0:I.width)||100;return typeof p=="string"&&(p=parseInt(p.replace("px",""))||100),p},[S]),D=_.useCallback(F=>Vt,[]),$=_.useMemo(()=>h.map(F=>F.cells),[h]),X=_.useCallback(F=>{if(F&&typeof F.scrollLeft=="number"){l&&l(F);return}if(F&&F.target){const{scrollLeft:I,scrollTop:p}=F.target;l&&l({scrollLeft:I,scrollTop:p})}},[l]),M=_.useMemo(()=>{let F=1;return t&&t.length>0&&t.forEach(I=>{I.cells&&I.cells.forEach(p=>{p.rowspan>F&&(F=p.rowspan)})}),F},[t]),N=(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:A,columnWidth:d,rowCount:E,rowHeight:D,style:{height:N-40,width:s,overflowY:"auto"},onScroll:X,className:`virtual-grid row-${M}`,overscanCount:M+3,cellComponent:_n,cellProps:{mergedData:$,columns:S,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=xe),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:b=>b};const l=We(i),c=We(s),f=We(a).filter(b=>!b.hidden),h=l.map(b=>b.field),E=c.map(b=>b.field),v=new Map,A=new Map,j=new Map;t.forEach(b=>{const R=ut(b,h);v.has(R)||v.set(R,[]),v.get(R).push(b);const w=ut(b,E);A.has(w)||A.set(w,[]),A.get(w).push(b);const y=`${R}||${w}`;j.has(y)||j.set(y,[]),j.get(y).push(b)});const S=()=>Array.from(v.entries()).sort(([b,R],[w,y])=>{if(r&&r.length>0)for(const m of r){const{field:T,sortType:C}=m,x=C==="asc",O=ge(R[0],T),k=ge(y[0],T);if(O<k)return x?-1:1;if(O>k)return x?1:-1}for(let m=0;m<h.length;m++){const T=h[m],C=l[m],x=ge(R[0],T),O=ge(y[0],T);if(x!==O)if(C.sort&&C.sort.enabled){const k=C.sort.type==="asc";if(x<O)return k?-1:1;if(x>O)return k?1:-1}else{if(x<O)return-1;if(x>O)return 1}}return 0}),d=()=>Array.from(A.entries()).sort(([b,R],[w,y])=>{for(let m=0;m<E.length;m++){const T=E[m],C=c[m],x=ge(R[0],T),O=ge(y[0],T);if(x!==O)if(C.sort&&C.sort.enabled){const k=C.sort.type==="asc";if(x<O)return k?-1:1;if(x>O)return k?1:-1}else{if(x<O)return-1;if(x>O)return 1}}return 0}),D=()=>{const b=[],R=We(i);for(let w=1;w<=R.length;w++)b.push(R.slice(0,w));return b},$=()=>{const b=D(),R=new Set;return b.forEach((w,y)=>{const m=w[w.length-1];m.total&&m.total.enabled&&R.add(y)}),R},X=()=>{const b=D(),R=[],w=$();return w.size===0||w.forEach(y=>{let m=[];y>0&&(m=b[y-1]);const T={};t.forEach(C=>{let x="";if(y>0?x=m.map(O=>ge(C,O.field)).join("|"):x="__GLOBAL__",!T[x]){const k=b[y][y].total;T[x]={records:[],config:k}}T[x].records.push(C)}),R.push({level:y,data:T})}),R},M=d(),N=new Map,F=(b,R)=>{if(fe.has(b)){const w=fe.get(b),m=!w.get(R);w.set(R,m),ft.set("rowKey",R),ft.set("level",b),ft.set("expanded",m);const T=b-1;if(T>=0&&T<l.length&&l[T].clickExpandChildren&&m===!0){const x=b+1;if(fe.has(x)){const O=fe.get(x),k=R+"|";O.forEach((B,le)=>{le.startsWith(k)&&(O.set(le,!0),I(x,le))})}}}},I=(b,R)=>{const w=b+1;if(fe.has(w)){const y=fe.get(w),m=R+"|";y.forEach((T,C)=>{C.startsWith(m)&&(y.set(C,!0),I(w,C))})}},p=b=>{const R=X(),w=[...b];if(R.length===0)return w;for(let y=0;y<R.length;y++){const{level:m,data:T}=R[y];Object.keys(T).forEach(C=>{const{records:x,config:O}=T[C],{label:k=Ht,position:B="bottom"}=O||{},le=C.split("|");let ce=-1,P=-1;if(m===0)ce=0,P=w.length-1;else for(let ee=0;ee<w.length;ee++){const te=w[ee];h.slice(0,m).every((ke,ve)=>{var ie;return((ie=te[ve])==null?void 0:ie.content)===le[ve]})&&(ce===-1&&(ce=ee),P=ee)}if(ce!==-1){const ee=[];let te="";h.forEach((ke,ve)=>{let ie=xe;const se=ve+1,ue=se<h.length,je=l[ve];ve<=m&&(ve===m?ie=k:ie=le[ve],te+=`|${ie}`);const Ue=fe.has(se)&&fe.get(se).get(te)||!0;(ie===xe||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!==xe&&ie!==Ht,expanded:B==="top"?Ue:!1,level:se,onClick:B==="top"&&ue?Me=>F(Me.level,Me.rowKey):void 0})}),M.forEach(([ke,ve])=>{const ie={};f.forEach(se=>{if(se.calculateType==="expr")return;const ue=se.field,je=se.calculateType||"sum",Me=x.filter(Re=>ut(Re,E)===ke).map(Re=>ge(Re,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===xe||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:P+1;dt.has(te)||(w.splice(de,0,ee),dt.set(te,1),B==="top"&&m>0&&N.set(C,te))}})}return w},Y=We(i);fe.clear(),t.forEach(b=>{let R="";h.forEach((w,y)=>{const m=y+1,T=ge(b,w);R+=`|${T}`,fe.has(m)||fe.set(m,new Map);const C=l[y].collapsed;fe.get(m).set(R,!C)})});const z=S();let V=[];const K=new Map;z.forEach(([b,R])=>{const w=R[0];let y="";h.forEach((m,T)=>{const C=ge(w,m),x=T+1;y+=`|${C}`,K.has(x)||K.set(x,new Map);const O=K.get(x);O.set(y,(O.get(y)||0)+1)})}),z.forEach(([b,R])=>{const w=R[0],y=[];let m="";h.forEach((T,C)=>{var te;let x=ge(w,T);const O=C+1,k=O<h.length,B=l[C];m+=`|${x}`;let le=b;const ce=Y.find(de=>de.field===T);if((te=ce==null?void 0:ce.total)!=null&&te.enabled&&ce.total.label&&(le=`${m}|${ce.total.label}`),k){const de=m;N.has(de)||N.set(de,le)}const P=fe.has(O)&&fe.get(O).get(m)||!0,ee=O<h.length?(K.get(O).get(m)||0)>1:!1;(x===xe||x===null||x===void 0)&&B.emptyReplace&&(x=B.emptyReplace),y.push({content:x,rowspan:1,colspan:1,data:w,expandable:k&&ee,expanded:P,level:O,rowKey:m,onClick:k&&ee?de=>F(de.level,de.rowKey):void 0})}),M.forEach(([T,C])=>{const x={};f.forEach(O=>{if(O.calculateType==="expr")return;const k=O.field,B=O.calculateType||"sum",le=`${b}||${T}`,P=(j.get(le)||[]).map(te=>ge(te,k));let ee=0;qe[B]&&(ee=qe[B](P)),x[O.field]=ee}),f.forEach(O=>{if(O.calculateType==="expr"&&O.expression){const k=Gt(O.expression,x);x[O.field]=k!==null?k:0}}),f.forEach(O=>{let k=x[O.field];(k===xe||k===null||k===void 0||typeof k=="number"&&isNaN(k))&&O.emptyReplace&&(k=O.emptyReplace),y.push({content:k,rowspan:1,colspan:1,data:w})})}),V.push({cells:y,rowKey:m})});const J=b=>{const w=b.split("|").filter(Boolean).length;for(let y=1;y<w;y++)if(fe.has(y)){const m=fe.get(y),T=b.split("|").slice(0,y+1).join("|");if(m.has(T)&&!m.get(T)){const C=T,x=N.get(C);if(b!==x)return!1}}return!0},ne=b=>{var R,w;if(!b||b.length===0)return b;for(let y=0;y<l.length;y++){let m=b[0][y].content,T=0,C=l[y],x=(R=C.total)==null?void 0:R.enabled,O=((w=C.total)==null?void 0:w.label)||"";for(let k=1;k<b.length;k++){const B=b[k][y];B.content!==xe&&(!x||B.content!==O)&&B.content===m?(B.rowspan=0,b[T][y].rowspan++):(m=B.content,T=k)}}return b},pe=b=>{const R=b.filter(m=>J(m.rowKey)),w=R.map(m=>m.cells.map(T=>{const C={...T};if(C.expandable&&C.level&&C.rowKey&&fe.has(C.level)){const x=fe.get(C.level);x.has(C.rowKey)&&(C.expanded=x.get(C.rowKey))}return C}));return ne(w),R.map((m,T)=>({rowKey:m.rowKey,cells:w[T]}))};dt.clear();const be=V.map(b=>b.cells),we=p(be).map((b,R)=>{let w="";return b.forEach((y,m)=>{m<h.length&&y.rowKey&&(w=y.rowKey)}),{cells:b,rowKey:w}}),Oe=(()=>{const b=[];if(l.forEach(R=>{b.push({...R,width:R.width||100,fixed:"left",key:R.field})}),c.length===0)f.forEach(R=>{b.push({...R,width:R.width||100,key:R.field})});else{const R=[];M.forEach(([w,y])=>{const m=w.split("|").filter(C=>C!=="");let T=R;m.forEach((C,x)=>{var k;let O=T.find(B=>B.title===C);if(!O){const le=`${((k=c[x])==null?void 0:k.field)||"unknown"}__${C}`,ce={field:le,title:C,children:[],key:le};T.push(ce),O=ce}x===m.length-1?f.forEach(B=>{O.children||(O.children=[]),O.children.push({...B,field:`${w}||${B.field}`,title:B.title||B.field,width:B.width||100,key:`${w}||${B.field}`})}):(O.children||(O.children=[]),T=O.children)})}),b.push(...R)}return b})();return{list:we,dataExpandFilter:pe,tableColumns:Oe}},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(v=>({content:f[v.field]??xe,rowspan:1,colspan:1,style:v.style,data:f})),rowKey:h.toString()})),dataExpandFilter:f=>f,tableColumns:l}}return qt(e)},Cn=_.memo(e=>{const{scroll:t,data:r,meta:n,sortParams:i,fields:s}=e,[a,l]=_.useState(0),[c,f]=_.useState([]),[h,E]=_.useState([]),v=_.useRef(null),A=_.useCallback(()=>{if(v.current){let p=v.current;if(!p||!p.list||!p.dataExpandFilter)return;f(p.dataExpandFilter(p.list))}},[]);_.useEffect(()=>{let Y=Ut({data:r,meta:n,sortParams:i,fields:s});v.current=Y,Y.tableColumns&&E(Y.tableColumns),A()},[r,n,i,s,A]);const j=_.useCallback(p=>p?typeof p=="string"?parseInt(p.replace("px",""))||0:typeof p=="number"?p:0:0,[]),{baseWidth:S,colCount:d}=_.useMemo(()=>{let p=0,Y=0;const z=V=>{V.forEach(K=>{(!("type"in K)||K.type!=="group")&&(p+=j(K.width),Y+=1),K!=null&&K.children&&K.children.length>0&&z(K.children)})};return z(h),{baseWidth:p,colCount:Y}},[h,j]),D=_.useMemo(()=>{const p=Y=>Y.map(z=>{let V=0;S<a&&d>0&&(V=Math.floor((a-S)/d));const J=(z.width?j(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=p(z.children)),z});return p(at(h))},[h,S,a,d,j]),$=_.useMemo(()=>{let p=0;const Y=z=>{z.forEach(V=>{(!("type"in V)||V.type!=="group")&&(p+=j(V.width)),V!=null&&V.children&&V.children.length>0&&Y(V.children)})};return Y(D),p},[D,j]),X=_.useRef(null),M=_.useRef(null),N=_.useRef(!1),F=_.useCallback(({scrollLeft:p})=>{N.current||(N.current=!0,X.current&&(X.current.scrollLeft=p),requestAnimationFrame(()=>{N.current=!1}))},[]),I=_.useCallback(p=>{if(N.current)return;N.current=!0;const Y=p.currentTarget.scrollLeft;M.current&&(M.current.scrollLeft=Y),requestAnimationFrame(()=>{N.current=!1})},[]);return Q.jsx(it,{onResize:({width:p})=>{p&&p!==a&&l(p)},children:Q.jsxs("div",{className:st("virtual-table",e.className),style:{width:"100%",...e.style},children:[Q.jsx(nn,{ref:X,columns:D,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:M,onScroll:F},scroll:t,columns:D,tableWidth:a,gridWidth:$,handleExpand:A,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
|