virtua 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{jsx as e}from"react/jsx-runtime";import{useLayoutEffect as t,useEffect as n,useRef as r,useState as o,forwardRef as s,useMemo as i,memo as c,useImperativeHandle as l}from"react";import{flushSync as u}from"react-dom";const a=Math.min,d=Math.max,h=Math.abs,f=Date.now,_=Object.values,w=Array.isArray,g=setTimeout,m=(e,t,n)=>a(n,d(t,e)),p=e=>null!=e,v=(e,t)=>{let n;const r=()=>{p(n)&&clearTimeout(n)},o=()=>{r(),n=g((()=>{n=null,e()}),t)};return o.t=r,o},b=e=>{let t,n;return(...r)=>(t||(t=!0,n=e(...r)),n)},S=e=>getComputedStyle(e),I=e=>e?parseFloat(e):0,z=-1,y=(e,t)=>{const n=e.o[t];return n===z?e.i:n},x=(e,t)=>{if(!e.l)return 0;if(e.u>=t)return e.h[t];let n=e.u,r=e.h[n];for(;n<t;)r+=y(e,n),e.h[++n]=r;return e.u=t,r},R=(e,t,n)=>{let r=x(e,n);for(;n>=0&&n<e.l;)if(r<=t){const o=y(e,n);if(r+o>t)break;r+=o,n++}else r-=y(e,--n);return m(n,0,e.l-1)},k=(e,t,n,r)=>{const o=R(e,t,a(n,e.l-1));return[o,R(e,t+r,o)]},O=(e,t,n)=>{const r=n?"unshift":"push";for(let n=e.l;n<t;n++)e.o[r](z),e.h.push(0===n?0:z);e.l=t},C=(e,t,n)=>{const r=t-e.l,o=r<0;let s;return o?(s=(n?e.o.splice(0,-r):e.o.splice(r)).reduce(((t,n)=>t+(n===z?e.i:n)),0),e.h.splice(r)):(s=e.i*r,O(e,e.l+r,n)),e.u=n?0:m(t-1,0,e.u),e.l=t,[s,o]},T=(e,t,n)=>t.reduce(((t,[r,o])=>{const s=o-y(e,r);return(!n||s>0)&&(t+=s),t}),0),M=(e,t,n=40,r=0,o=((e,t)=>{const n={i:t,l:0,u:0,o:[],h:[]};return O(n,e),n})(t,n),s,i)=>{let c=n*d(r-1,0),l=0,u=0,f=0,_=0,w=!1,g=!1,p=!1,v=[0,r];const b=new Set,S=()=>(e=>e.l?x(e,e.l-1)+y(e,e.l-1):0)(o),I=()=>S()-c,R=e=>m(e,0,I()),M=e=>{const t=_;return _=e,_!==t};return{_:()=>JSON.parse(JSON.stringify(o)),g(){const[e,t]=v,[n,r]=k(o,l,e,c);return e===n&&t===r?v:v=[n,r]},m:e=>o.o[e]===z,p(e){const[t,n]=k(o,e,v[0],c);return((e,t,n)=>e.o.slice(d(0,t-1),a(e.l-1,n+1)+1).includes(z))(o,t,n)},v(e){const t=x(o,e);return s?t+d(0,c-S()):t},S:e=>y(o,e),I:()=>o.l,R:()=>l,k:I,O:()=>_,C:()=>c,T:()=>d(S(),c),M:()=>u,H(){const e=f;return f=0,e},J(e,t){const n=[e,t];return b.add(n),()=>{b.delete(n)}},W(t,n){let r,s=0;switch(t){case 1:{const e=n.filter((([e,t])=>o.o[e]!==t));if(!e.length)break;let t=0;if(w||g){const[n]=v;0===l||(t=l>I()-1.5?T(o,e,!0):T(o,e.filter((([e])=>e<n))))}else 2===_&&(t=T(o,e));t&&(f=t,u++,s+=4);let c=!1;e.forEach((([e,t])=>{((e,t,n)=>{const r=e.o[t]===z;return e.o[t]=n,e.u=a(t,e.u),r})(o,e,t)&&(c=!0)})),i&&c&&!l&&(e=>{const t=e.o.filter((e=>e!==z)),n=t[0];e.i=t.every((e=>e===n))?n:(e=>{const t=[...e].sort(((e,t)=>e-t)),n=e.length/2|0;return t.length%2==0?(t[n-1]+t[n])/2:t[n]})(t)})(o),s+=2,p=r=!0;break}case 2:c!==n&&(c=n,s=2);break;case 3:if(n[1]){const e=I()-l,[t,r]=C(o,n[0],!0),i=r?-a(t,e):t;f+=i,l=R(l+i),u++,s=5,w=!0}else C(o,n[0]);break;case 4:case 5:if(l===n)break;if(4===t){const e=n-l,t=p;p=!1,0!==_&&t||g||M(e<0?2:1)&&(s+=8),r=h(e)>c,s+=16,t||(w=!1)}l=R(n),s+=1;break;case 6:M(0)&&(s=8),w=g=!1;break;case 7:g=!0}if(s){const t=()=>{b.forEach((([e,t])=>{s&e&&t()}))};r?e(t):t()}}}},H="undefined"!=typeof window,J=/*#__PURE__*/b((e=>{const t="scrollLeft",n=e[t];e[t]=1;const r=e[t]<1;return e[t]=n,r})),W=/*#__PURE__*/b((()=>!!H&&"rtl"===S(document.body).direction)),L=H?t:n,$="current",B={},j=(e,t)=>{if(w(e))for(const n of e)j(n,t);else p(e)&&"boolean"!=typeof e&&t.push(e)},D=e=>{const t=[];return j(e,t),t},N=(e,t,n)=>d(e-(1===n?1:d(1,t)),0),U=(e,t,n,r)=>a(e+(2===n?1:d(1,t)),r-1),V=e=>{const t=r(e);return L((()=>{t[$]=e}),[e]),t},A=(e,t,n,r)=>{const[s,i]=o(t),c=V(t);if(L((()=>e.J(n,(()=>{i((()=>c[$]()))}))),[]),r){const e=t();s!==e&&i(e)}return s},E=(e,t,n)=>(()=>{let r=f()-50;return(...o)=>{const s=f();r+50<s&&(r=s,(r=>{if(0!==e.O()&&!r.ctrlKey&&(t?r.deltaX:r.deltaY)){const t=e.R();t>0&&t<e.k()&&n()}})(...o))}})(),F=(e,t,n,r)=>J(e)||r?-n:t.k()-n,P=(e,t)=>{let n,r;const o=t?"scrollLeft":"scrollTop",s=(r,o)=>t&&W()?F(n,e,r,o):r,i=async t=>{if(!n)return;const i=()=>m(t(),0,e.k());for(;;){const t=i();if(e.W(5,t),!e.p(t))break;r&&r[1]();const n=e.J(2,(()=>{r&&r[0]()}));try{await new Promise(((e,t)=>{let n=!1;const o=()=>{n||(n=!0,e(),r=void 0)};r=[o,t],g(o,250)}))}catch(e){return}finally{n()}}n[o]=s(i()),e.W(7)};return{L(r){n=r;const i=()=>{e.W(4,s(r[o]))},c=v((()=>{i(),e.W(6)}),150),l=()=>{i(),c()},u=E(e,t,c);return r.addEventListener("scroll",l),r.addEventListener("wheel",u,{passive:!0}),()=>{r.removeEventListener("scroll",l),r.removeEventListener("wheel",u),c.t()}},$(e){i((()=>e))},B(t){t+=e.R(),i((()=>t))},j(t,n){t=m(t,0,e.I()-1),i("end"===n?()=>e.v(t)+e.S(t)-e.C():()=>e.v(t))},D:e=>{n&&(n[o]+=s(e,!0))}}},X=(e,t)=>{let n;const r=t?"scrollX":"scrollY",o=t?"offsetLeft":"offsetTop",s=(r,o)=>t&&W()?F(n,e,r,o):r;return{L(i){n=i;let c=!1;const l=(e,n)=>{const r=n+(t&&W()?window.innerWidth-e[o]-e.offsetWidth:e[o]),s=e.offsetParent;return e!==document.body&&s?l(s,r):r},u=()=>{c&&e.W(4,s(window[r])-l(i,0))},a=v((()=>{u(),e.W(6)}),150),d=()=>{u(),a()},h=E(e,t,a),f=new IntersectionObserver((([e])=>{c=e.isIntersecting}));return f.observe(i),window.addEventListener("scroll",d),window.addEventListener("wheel",h,{passive:!0}),()=>{f.disconnect(),window.removeEventListener("scroll",d),window.removeEventListener("wheel",h),a.t()}},D:e=>{window.scrollBy(t?s(e,!0):0,t?0:e)}}},Y=e=>{const t=r();return t[$]||(t[$]=e())},q={box:"border-box"},G=(e,t)=>{let n;const r=t?"width":"height",o=new WeakMap,s=b((()=>new ResizeObserver((s=>{const i=[];for(const{target:c,contentRect:l}of s)if(c.offsetParent)if(c===n)e.W(2,l[r]+l[t?"left":"top"]+I(S(n)[t?"paddingRight":"paddingBottom"]));else{const e=o.get(c);p(e)&&i.push([e,l[r]])}i.length&&e.W(1,i)}))));return{N(e){n=e;const t=s();return t.observe(e,q),()=>{t.disconnect()}},U(e,t){const n=s();return o.set(e,t),n.observe(e),()=>{o.delete(e),n.unobserve(e)}}}},K=(e,t)=>{const n=t?"width":"height",r=t?"innerWidth":"innerHeight",o=new WeakMap,s=b((()=>new ResizeObserver((t=>{const r=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=o.get(e);p(t)&&r.push([t,s[n]])}r.length&&e.W(1,r)}))));return{N(){const t=()=>{e.W(2,window[r])};return window.addEventListener("resize",t),t(),()=>{window.removeEventListener("resize",t),s().disconnect()}},U(e,t){const n=s();return o.set(e,t),n.observe(e),()=>{o.delete(e),n.unobserve(e)}}}},Q=(e,t)=>{let n;const r="height",o="width",s=new WeakMap,i=new Set,c=new Set,l=new Map,u=(e,t)=>`${e}-${t}`,a=b((()=>new ResizeObserver((a=>{const h=new Set,f=new Set;for(const{target:i,contentRect:c}of a)if(i.offsetParent)if(i===n){const s=S(n);e.W(2,c[r]+c.top+I(s.paddingBottom)),t.W(2,c[o]+c.left+I(s.paddingRight))}else{const e=s.get(i);if(e){const[t,n]=e,s=u(t,n),i=l.get(s),a=[c[r],c[o]];let d,_;i?(i[0]!==a[0]&&(d=!0),i[1]!==a[1]&&(_=!0)):d=_=!0,d&&h.add(t),_&&f.add(n),(d||_)&&l.set(s,a)}}if(h.size){const t=[];h.forEach((e=>{let n=0;c.forEach((t=>{const r=l.get(u(e,t));r&&(n=d(n,r[0]))})),n&&t.push([e,n])})),e.W(1,t)}if(f.size){const e=[];f.forEach((t=>{let n=0;i.forEach((e=>{const r=l.get(u(e,t));r&&(n=d(n,r[1]))})),n&&e.push([t,n])})),t.W(1,e)}}))));return{N(e){n=e;const t=a();return t.observe(e,q),()=>{t.disconnect()}},U(e,t,n){const r=a();return s.set(e,[t,n]),i.add(t),c.add(n),r.observe(e),()=>{s.delete(e),r.unobserve(e)}}}},Z=/*#__PURE__*/s((({children:t,attrs:n,width:r,height:o,scrolling:s},c)=>e("div",{ref:c,...n,children:e("div",{style:i((()=>({position:"relative",visibility:"hidden",width:null!=r?r:"100%",height:null!=o?o:"100%",pointerEvents:s?"none":"auto"})),[r,o,s]),children:t})}))),ee=/*#__PURE__*/c((({V:t,A:n,F:o,P:s,X:c,Y:l})=>{const u=r(null),a=A(o,(()=>o.v(s)),2,!0),d=A(o,(()=>o.m(s)),2,!0);return L((()=>n.U(u[$],s)),[s]),e(c,{ref:u,style:i((()=>{const e=W()?"right":"left",t={margin:0,padding:0,position:"absolute",[l?"height":"width"]:"100%",[l?"top":e]:0,[l?e:"top"]:a,visibility:d?"hidden":"visible"};return l&&(t.display="flex"),t}),[a,d]),children:t})})),te=/*#__PURE__*/s((({children:t,overscan:o=4,initialItemSize:s,initialItemCount:c,shift:a,horizontal:d,reverse:h,cache:f,components:{Root:w=Z,Item:g="div"}=B,onScroll:m,onScrollStop:v,onRangeChange:b,...S},I)=>{const z=i((()=>D(t)),[t]),y=z.length,x=V(m),R=V(v),[k,O,C,T]=Y((()=>{const e=!!d,t=M(u,y,s,c,f,!!h,!s);return[t,G(t,e),P(t,e),e]}));y!==k.I()&&k.W(3,[y,a]);const[H,J]=A(k,k.g,3),W=A(k,k.O,8),j=A(k,k.M,4),E=A(k,k.T,2,!0),F=r(null),X=0!==W;L((()=>{const e=F[$],t=O.N(e),n=C.L(e),r=k.J(16,(()=>{x[$]&&x[$](k.R())}));return()=>{t(),n(),r()}}),[]),L((()=>{const e=k.H();e&&C.D(e)}),[j]),n((()=>{X||R[$]&&R[$]()}),[X]),n((()=>{b&&b(H,J)}),[H,J]),l(I,(()=>({get cache(){return k._()},get scrollOffset(){return k.R()},get scrollSize(){return k.T()},get viewportSize(){return k.C()},scrollToIndex:C.j,scrollTo:C.$,scrollBy:C.B})),[]);const q=N(H,o,W),K=U(J,o,W,y),Q=i((()=>{const t=[];for(let n=q;n<=K;n++){const r=z[n],o=r.key;t.push(e(ee,{A:O,F:k,P:n,X:g,V:r,Y:T},p(o)?o:"_"+n))}return t}),[z,q,K]);return e(w,{ref:F,width:T?E:void 0,height:T?void 0:E,scrolling:X,attrs:i((()=>({...S,style:{overflow:"auto",display:T?"inline-block":"block",contain:"strict",width:"100%",height:"100%",...S.style}})),_(S)),children:Q})})),ne=(e,t)=>`${e}-${t}`,re=/*#__PURE__*/c((({V:t,A:n,q:o,G:s,K:c,Z:l,X:u})=>{const a=r(null),d=A(o,(()=>o.v(c)),2,!0),h=A(s,(()=>s.v(l)),2,!0),f=A(o,(()=>o.m(c)),2,!0),_=A(s,(()=>s.m(l)),2,!0),w=A(o,(()=>o.S(c)),2,!0),g=A(s,(()=>s.S(l)),2,!0);return L((()=>n.U(a[$],c,l)),[l,c]),e(u,{ref:a,style:i((()=>({display:"grid",margin:0,padding:0,position:"absolute",top:d,[W()?"right":"left"]:h,visibility:f||_?"hidden":"visible",minHeight:w,minWidth:g})),[d,h,g,w,f,_]),children:t})})),oe=/*#__PURE__*/s((({children:t,row:n,col:o,cellHeight:s=40,cellWidth:c=100,overscan:a=2,initialRowCount:d,initialColCount:h,components:{Root:f=Z,Cell:w="div"}=B,...g},m)=>{const[p,v,b,S,I]=Y((()=>{const e=M(u,n,s,d),t=M(u,o,c,h);return[e,t,Q(e,t),P(e,!1),P(t,!0)]}));n!==p.I()&&p.W(3,[n]),o!==v.I()&&v.W(3,[o]);const[z,y]=A(p,p.g,3),[x,R]=A(v,v.g,3),k=A(p,p.O,8),O=A(v,v.O,8),C=A(p,p.M,4),T=A(v,v.M,4),H=A(p,p.T,2,!0),J=A(v,v.T,2,!0),W=r(null),j=0!==k,D=0!==O;L((()=>{const e=W[$],t=b.N(e),n=S.L(e),r=I.L(e);return()=>{t(),n(),r()}}),[]),L((()=>{const e=p.H();e&&S.D(e)}),[C]),L((()=>{const e=v.H();e&&I.D(e)}),[T]),l(m,(()=>({get scrollOffset(){return[v.R(),p.R()]},get scrollSize(){return[v.T(),p.T()]},get viewportSize(){return[v.C(),p.C()]},scrollToIndex(e,t){I.j(e),S.j(t)},scrollTo(e,t){I.$(e),S.$(t)},scrollBy(e,t){I.B(e),S.B(t)}})),[]);const V=i((()=>{const e=new Map;return(n,r)=>{let o=e.get(ne(n,r));return o||e.set(ne(n,r),o=t({rowIndex:n,colIndex:r})),o}}),[t]),E=N(z,a,k),F=U(y,a,k,n),X=N(x,a,O),q=U(R,a,O,o),G=i((()=>{const t=[];for(let n=E;n<=F;n++)for(let r=X;r<=q;r++)t.push(e(re,{A:b,q:p,G:v,K:n,Z:r,X:w,V:V(n,r)},ne(n,r)));return t}),[V,E,F,X,q]);return e(f,{ref:W,width:J,height:H,scrolling:j||D,attrs:i((()=>({...g,style:{overflow:"auto",contain:"strict",width:"100%",height:"100%",...g.style}})),_(g)),children:G})})),se=/*#__PURE__*/s((({children:t,overscan:o=4,initialItemSize:s,initialItemCount:c,horizontal:a,cache:d,components:{Root:h=Z,Item:f="div"}=B,onScrollStop:w,onRangeChange:g,...m},v)=>{const b=i((()=>D(t)),[t]),S=b.length,I=V(w),[z,y,x,R]=Y((()=>{const e=!!a,t=M(u,S,s,c,d,!1,!s);return[t,K(t,e),X(t,e),e]}));S!==z.I()&&z.W(3,[S]);const[k,O]=A(z,z.g,3),C=A(z,z.O,8),T=A(z,z.M,4),H=A(z,z.T,2,!0),J=r(null),W=0!==C;L((()=>{const e=J[$],t=y.N(e),n=x.L(e);return()=>{t(),n()}}),[]),L((()=>{const e=z.H();e&&x.D(e)}),[T]),n((()=>{W||I[$]&&I[$]()}),[W]),n((()=>{g&&g(k,O)}),[k,O]),l(v,(()=>({get cache(){return z._()}})),[]);const j=N(k,o,C),E=U(O,o,C,S),F=i((()=>{const t=[];for(let n=j;n<=E;n++){const r=b[n],o=r.key;t.push(e(ee,{A:y,F:z,P:n,X:f,V:r,Y:R},p(o)?o:"_"+n))}return t}),[b,j,E]);return e(h,{ref:J,width:R?H:void 0,height:R?void 0:H,scrolling:W,attrs:i((()=>({...m,style:{display:R?"inline-block":"block",width:R?"auto":"100%",height:R?"100%":"auto",...m.style}})),_(m)),children:F})}));export{oe as VGrid,te as VList,se as WVList};
2
+ import{jsx as e}from"react/jsx-runtime";import{useLayoutEffect as t,useEffect as n,useRef as r,useState as o,forwardRef as s,useMemo as i,memo as c,useImperativeHandle as l}from"react";import{flushSync as u}from"react-dom";const a=Math.min,d=Math.max,h=Math.abs,f=Date.now,_=Object.values,w=Array.isArray,g=setTimeout,m=(e,t,n)=>a(n,d(t,e)),p=e=>null!=e,v=(e,t)=>{let n;const r=()=>{p(n)&&clearTimeout(n)},o=()=>{r(),n=g((()=>{n=null,e()}),t)};return o.t=r,o},b=e=>{let t,n;return(...r)=>(t||(t=!0,n=e(...r)),n)},S=e=>getComputedStyle(e),I=e=>e?parseFloat(e):0,z=-1,y=(e,t)=>{const n=e.o[t];return n===z?e.i:n},x=(e,t)=>{if(!e.l)return 0;if(e.u>=t)return e.h[t];let n=e.u,r=e.h[n];for(;n<t;)r+=y(e,n),e.h[++n]=r;return e.u=t,r},R=(e,t,n)=>{let r=x(e,n);for(;n>=0&&n<e.l;)if(r<=t){const o=y(e,n);if(r+o>t)break;r+=o,n++}else r-=y(e,--n);return m(n,0,e.l-1)},k=(e,t,n,r)=>{const o=R(e,t,a(n,e.l-1));return[o,R(e,t+r,o)]},O=(e,t,n)=>{const r=n?"unshift":"push";for(let n=e.l;n<t;n++)e.o[r](z),e.h.push(0===n?0:z);e.l=t},C=(e,t,n)=>{const r=t-e.l,o=r<0;let s;return o?(s=(n?e.o.splice(0,-r):e.o.splice(r)).reduce(((t,n)=>t+(n===z?e.i:n)),0),e.h.splice(r)):(s=e.i*r,O(e,e.l+r,n)),e.u=n?0:m(t-1,0,e.u),e.l=t,[s,o]},T=(e,t,n)=>t.reduce(((t,[r,o])=>{const s=o-y(e,r);return(!n||s>0)&&(t+=s),t}),0),M=(e,t,n=40,r=0,o=((e,t)=>{const n={i:t,l:0,u:0,o:[],h:[]};return O(n,e),n})(t,n),s,i)=>{let c=n*d(r-1,0),l=0,u=0,f=0,_=0,w=!1,g=!1,p=!1,v=[0,r];const b=new Set,S=()=>(e=>e.l?x(e,e.l-1)+y(e,e.l-1):0)(o),I=()=>S()-c,R=e=>m(e,0,I()),M=e=>{const t=_;return _=e,_!==t};return{_:()=>JSON.parse(JSON.stringify(o)),g(){const[e,t]=v,[n,r]=k(o,l,e,c);return e===n&&t===r?v:v=[n,r]},m:e=>o.o[e]===z,p(e){const[t,n]=k(o,e,v[0],c);return((e,t,n)=>e.o.slice(d(0,t-1),a(e.l-1,n+1)+1).includes(z))(o,t,n)},v(e){const t=x(o,e);return s?t+d(0,c-S()):t},S:e=>y(o,e),I:()=>o.l,R:()=>l,k:I,O:()=>_,C:()=>c,T:()=>d(S(),c),M:()=>u,H(){const e=f;return f=0,e},J(e,t){const n=[e,t];return b.add(n),()=>{b.delete(n)}},W(t,n){let r,s=0;switch(t){case 1:{const e=n.filter((([e,t])=>o.o[e]!==t));if(!e.length)break;let t=0;if(!w){const[n]=v;0===l||(t=l>I()-1.5?T(o,e,!0):T(o,e.filter((([e])=>e<n))))}t&&(f=t,u++,s+=4);let c=!1;e.forEach((([e,t])=>{((e,t,n)=>{const r=e.o[t]===z;return e.o[t]=n,e.u=a(t,e.u),r})(o,e,t)&&(c=!0)})),i&&c&&!l&&(e=>{const t=e.o.filter((e=>e!==z)),n=t[0];e.i=t.every((e=>e===n))?n:(e=>{const t=[...e].sort(((e,t)=>e-t)),n=e.length/2|0;return t.length%2==0?(t[n-1]+t[n])/2:t[n]})(t)})(o),s+=2,p=r=!0;break}case 2:c!==n&&(c=n,s=2);break;case 3:if(n[1]){const e=I()-l,[t,r]=C(o,n[0],!0),i=r?-a(t,e):t;f+=i,l=R(l+i),u++,s=5}else C(o,n[0]);break;case 4:case 5:if(l===n)break;if(4===t){const e=n-l,t=p;p=!1,0!==_&&t||g||M(e<0?2:1)&&(s+=8),r=h(e)>c,s+=16}else w=!0;l=R(n),s+=1;break;case 6:M(0)&&(s=8),g=w=!1;break;case 7:w=!1,g=!0}if(s){const t=()=>{b.forEach((([e,t])=>{s&e&&t()}))};r?e(t):t()}}}},H="undefined"!=typeof window,J=/*#__PURE__*/b((e=>{const t="scrollLeft",n=e[t];e[t]=1;const r=e[t]<1;return e[t]=n,r})),W=/*#__PURE__*/b((()=>!!H&&"rtl"===S(document.body).direction)),L=H?t:n,$="current",B={},j=(e,t)=>{if(w(e))for(const n of e)j(n,t);else p(e)&&"boolean"!=typeof e&&t.push(e)},D=e=>{const t=[];return j(e,t),t},N=(e,t,n)=>d(e-(1===n?1:d(1,t)),0),U=(e,t,n,r)=>a(e+(2===n?1:d(1,t)),r-1),V=e=>{const t=r(e);return L((()=>{t[$]=e}),[e]),t},A=(e,t,n,r)=>{const[s,i]=o(t),c=V(t);if(L((()=>e.J(n,(()=>{i((()=>c[$]()))}))),[]),r){const e=t();s!==e&&i(e)}return s},E=(e,t,n)=>(()=>{let r=f()-50;return(...o)=>{const s=f();r+50<s&&(r=s,(r=>{if(0!==e.O()&&!r.ctrlKey&&(t?r.deltaX:r.deltaY)){const t=e.R();t>0&&t<e.k()&&n()}})(...o))}})(),F=(e,t,n,r)=>J(e)||r?-n:t.k()-n,P=(e,t)=>{let n,r;const o=t?"scrollLeft":"scrollTop",s=(r,o)=>t&&W()?F(n,e,r,o):r,i=async t=>{if(!n)return;const i=()=>m(t(),0,e.k());for(;;){const t=i();if(e.W(5,t),!e.p(t))break;r&&r[1]();const n=e.J(2,(()=>{r&&r[0]()}));try{await new Promise(((e,t)=>{let n=!1;const o=()=>{n||(n=!0,e(),r=void 0)};r=[o,t],g(o,250)}))}catch(e){return}finally{n()}}n[o]=s(i()),e.W(7)};return{L(r){n=r;const i=()=>{e.W(4,s(r[o]))},c=v((()=>{i(),e.W(6)}),150),l=()=>{i(),c()},u=E(e,t,c);return r.addEventListener("scroll",l),r.addEventListener("wheel",u,{passive:!0}),()=>{r.removeEventListener("scroll",l),r.removeEventListener("wheel",u),c.t()}},$(e){i((()=>e))},B(t){t+=e.R(),i((()=>t))},j(t,n){t=m(t,0,e.I()-1),i("end"===n?()=>e.v(t)+e.S(t)-e.C():()=>e.v(t))},D:e=>{n&&(n[o]+=s(e,!0))}}},X=(e,t)=>{let n;const r=t?"scrollX":"scrollY",o=t?"offsetLeft":"offsetTop",s=(r,o)=>t&&W()?F(n,e,r,o):r;return{L(i){n=i;let c=!1;const l=(e,n)=>{const r=n+(t&&W()?window.innerWidth-e[o]-e.offsetWidth:e[o]),s=e.offsetParent;return e!==document.body&&s?l(s,r):r},u=()=>{c&&e.W(4,s(window[r])-l(i,0))},a=v((()=>{u(),e.W(6)}),150),d=()=>{u(),a()},h=E(e,t,a),f=new IntersectionObserver((([e])=>{c=e.isIntersecting}));return f.observe(i),window.addEventListener("scroll",d),window.addEventListener("wheel",h,{passive:!0}),()=>{f.disconnect(),window.removeEventListener("scroll",d),window.removeEventListener("wheel",h),a.t()}},D:e=>{window.scrollBy(t?s(e,!0):0,t?0:e)}}},Y=e=>{const t=r();return t[$]||(t[$]=e())},q={box:"border-box"},G=(e,t)=>{let n;const r=t?"width":"height",o=new WeakMap,s=b((()=>new ResizeObserver((s=>{const i=[];for(const{target:c,contentRect:l}of s)if(c.offsetParent)if(c===n)e.W(2,l[r]+l[t?"left":"top"]+I(S(n)[t?"paddingRight":"paddingBottom"]));else{const e=o.get(c);p(e)&&i.push([e,l[r]])}i.length&&e.W(1,i)}))));return{N(e){n=e;const t=s();return t.observe(e,q),()=>{t.disconnect()}},U(e,t){const n=s();return o.set(e,t),n.observe(e),()=>{o.delete(e),n.unobserve(e)}}}},K=(e,t)=>{const n=t?"width":"height",r=t?"innerWidth":"innerHeight",o=new WeakMap,s=b((()=>new ResizeObserver((t=>{const r=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=o.get(e);p(t)&&r.push([t,s[n]])}r.length&&e.W(1,r)}))));return{N(){const t=()=>{e.W(2,window[r])};return window.addEventListener("resize",t),t(),()=>{window.removeEventListener("resize",t),s().disconnect()}},U(e,t){const n=s();return o.set(e,t),n.observe(e),()=>{o.delete(e),n.unobserve(e)}}}},Q=(e,t)=>{let n;const r="height",o="width",s=new WeakMap,i=new Set,c=new Set,l=new Map,u=(e,t)=>`${e}-${t}`,a=b((()=>new ResizeObserver((a=>{const h=new Set,f=new Set;for(const{target:i,contentRect:c}of a)if(i.offsetParent)if(i===n){const s=S(n);e.W(2,c[r]+c.top+I(s.paddingBottom)),t.W(2,c[o]+c.left+I(s.paddingRight))}else{const e=s.get(i);if(e){const[t,n]=e,s=u(t,n),i=l.get(s),a=[c[r],c[o]];let d,_;i?(i[0]!==a[0]&&(d=!0),i[1]!==a[1]&&(_=!0)):d=_=!0,d&&h.add(t),_&&f.add(n),(d||_)&&l.set(s,a)}}if(h.size){const t=[];h.forEach((e=>{let n=0;c.forEach((t=>{const r=l.get(u(e,t));r&&(n=d(n,r[0]))})),n&&t.push([e,n])})),e.W(1,t)}if(f.size){const e=[];f.forEach((t=>{let n=0;i.forEach((e=>{const r=l.get(u(e,t));r&&(n=d(n,r[1]))})),n&&e.push([t,n])})),t.W(1,e)}}))));return{N(e){n=e;const t=a();return t.observe(e,q),()=>{t.disconnect()}},U(e,t,n){const r=a();return s.set(e,[t,n]),i.add(t),c.add(n),r.observe(e),()=>{s.delete(e),r.unobserve(e)}}}},Z=/*#__PURE__*/s((({children:t,attrs:n,width:r,height:o,scrolling:s},c)=>e("div",{ref:c,...n,children:e("div",{style:i((()=>({position:"relative",visibility:"hidden",width:null!=r?r:"100%",height:null!=o?o:"100%",pointerEvents:s?"none":"auto"})),[r,o,s]),children:t})}))),ee=/*#__PURE__*/c((({V:t,A:n,F:o,P:s,X:c,Y:l})=>{const u=r(null),a=A(o,(()=>o.v(s)),2,!0),d=A(o,(()=>o.m(s)),2,!0);return L((()=>n.U(u[$],s)),[s]),e(c,{ref:u,style:i((()=>{const e=W()?"right":"left",t={margin:0,padding:0,position:"absolute",[l?"height":"width"]:"100%",[l?"top":e]:0,[l?e:"top"]:a,visibility:d?"hidden":"visible"};return l&&(t.display="flex"),t}),[a,d]),children:t})})),te=/*#__PURE__*/s((({children:t,overscan:o=4,initialItemSize:s,initialItemCount:c,shift:a,horizontal:d,reverse:h,cache:f,components:{Root:w=Z,Item:g="div"}=B,onScroll:m,onScrollStop:v,onRangeChange:b,...S},I)=>{const z=i((()=>D(t)),[t]),y=z.length,x=V(m),R=V(v),[k,O,C,T]=Y((()=>{const e=!!d,t=M(u,y,s,c,f,!!h,!s);return[t,G(t,e),P(t,e),e]}));y!==k.I()&&k.W(3,[y,a]);const[H,J]=A(k,k.g,3),W=A(k,k.O,8),j=A(k,k.M,4),E=A(k,k.T,2,!0),F=r(null),X=0!==W;L((()=>{const e=F[$],t=O.N(e),n=C.L(e),r=k.J(16,(()=>{x[$]&&x[$](k.R())}));return()=>{t(),n(),r()}}),[]),L((()=>{const e=k.H();e&&C.D(e)}),[j]),n((()=>{X||R[$]&&R[$]()}),[X]),n((()=>{b&&b(H,J)}),[H,J]),l(I,(()=>({get cache(){return k._()},get scrollOffset(){return k.R()},get scrollSize(){return k.T()},get viewportSize(){return k.C()},scrollToIndex:C.j,scrollTo:C.$,scrollBy:C.B})),[]);const q=N(H,o,W),K=U(J,o,W,y),Q=i((()=>{const t=[];for(let n=q;n<=K;n++){const r=z[n],o=r.key;t.push(e(ee,{A:O,F:k,P:n,X:g,V:r,Y:T},p(o)?o:"_"+n))}return t}),[z,q,K]);return e(w,{ref:F,width:T?E:void 0,height:T?void 0:E,scrolling:X,attrs:i((()=>({...S,style:{overflow:"auto",display:T?"inline-block":"block",contain:"strict",width:"100%",height:"100%",...S.style}})),_(S)),children:Q})})),ne=(e,t)=>`${e}-${t}`,re=/*#__PURE__*/c((({V:t,A:n,q:o,G:s,K:c,Z:l,X:u})=>{const a=r(null),d=A(o,(()=>o.v(c)),2,!0),h=A(s,(()=>s.v(l)),2,!0),f=A(o,(()=>o.m(c)),2,!0),_=A(s,(()=>s.m(l)),2,!0),w=A(o,(()=>o.S(c)),2,!0),g=A(s,(()=>s.S(l)),2,!0);return L((()=>n.U(a[$],c,l)),[l,c]),e(u,{ref:a,style:i((()=>({display:"grid",margin:0,padding:0,position:"absolute",top:d,[W()?"right":"left"]:h,visibility:f||_?"hidden":"visible",minHeight:w,minWidth:g})),[d,h,g,w,f,_]),children:t})})),oe=/*#__PURE__*/s((({children:t,row:n,col:o,cellHeight:s=40,cellWidth:c=100,overscan:a=2,initialRowCount:d,initialColCount:h,components:{Root:f=Z,Cell:w="div"}=B,...g},m)=>{const[p,v,b,S,I]=Y((()=>{const e=M(u,n,s,d),t=M(u,o,c,h);return[e,t,Q(e,t),P(e,!1),P(t,!0)]}));n!==p.I()&&p.W(3,[n]),o!==v.I()&&v.W(3,[o]);const[z,y]=A(p,p.g,3),[x,R]=A(v,v.g,3),k=A(p,p.O,8),O=A(v,v.O,8),C=A(p,p.M,4),T=A(v,v.M,4),H=A(p,p.T,2,!0),J=A(v,v.T,2,!0),W=r(null),j=0!==k,D=0!==O;L((()=>{const e=W[$],t=b.N(e),n=S.L(e),r=I.L(e);return()=>{t(),n(),r()}}),[]),L((()=>{const e=p.H();e&&S.D(e)}),[C]),L((()=>{const e=v.H();e&&I.D(e)}),[T]),l(m,(()=>({get scrollOffset(){return[v.R(),p.R()]},get scrollSize(){return[v.T(),p.T()]},get viewportSize(){return[v.C(),p.C()]},scrollToIndex(e,t){I.j(e),S.j(t)},scrollTo(e,t){I.$(e),S.$(t)},scrollBy(e,t){I.B(e),S.B(t)}})),[]);const V=i((()=>{const e=new Map;return(n,r)=>{let o=e.get(ne(n,r));return o||e.set(ne(n,r),o=t({rowIndex:n,colIndex:r})),o}}),[t]),E=N(z,a,k),F=U(y,a,k,n),X=N(x,a,O),q=U(R,a,O,o),G=i((()=>{const t=[];for(let n=E;n<=F;n++)for(let r=X;r<=q;r++)t.push(e(re,{A:b,q:p,G:v,K:n,Z:r,X:w,V:V(n,r)},ne(n,r)));return t}),[V,E,F,X,q]);return e(f,{ref:W,width:J,height:H,scrolling:j||D,attrs:i((()=>({...g,style:{overflow:"auto",contain:"strict",width:"100%",height:"100%",...g.style}})),_(g)),children:G})})),se=/*#__PURE__*/s((({children:t,overscan:o=4,initialItemSize:s,initialItemCount:c,horizontal:a,cache:d,components:{Root:h=Z,Item:f="div"}=B,onScrollStop:w,onRangeChange:g,...m},v)=>{const b=i((()=>D(t)),[t]),S=b.length,I=V(w),[z,y,x,R]=Y((()=>{const e=!!a,t=M(u,S,s,c,d,!1,!s);return[t,K(t,e),X(t,e),e]}));S!==z.I()&&z.W(3,[S]);const[k,O]=A(z,z.g,3),C=A(z,z.O,8),T=A(z,z.M,4),H=A(z,z.T,2,!0),J=r(null),W=0!==C;L((()=>{const e=J[$],t=y.N(e),n=x.L(e);return()=>{t(),n()}}),[]),L((()=>{const e=z.H();e&&x.D(e)}),[T]),n((()=>{W||I[$]&&I[$]()}),[W]),n((()=>{g&&g(k,O)}),[k,O]),l(v,(()=>({get cache(){return z._()}})),[]);const j=N(k,o,C),E=U(O,o,C,S),F=i((()=>{const t=[];for(let n=j;n<=E;n++){const r=b[n],o=r.key;t.push(e(ee,{A:y,F:z,P:n,X:f,V:r,Y:R},p(o)?o:"_"+n))}return t}),[b,j,E]);return e(h,{ref:J,width:R?H:void 0,height:R?void 0:H,scrolling:W,attrs:i((()=>({...m,style:{display:R?"inline-block":"block",width:R?"auto":"100%",height:R?"100%":"auto",...m.style}})),_(m)),children:F})}));export{oe as VGrid,te as VList,se as WVList};
3
3
  //# sourceMappingURL=index.mjs.map