virtua 0.39.0 → 0.39.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -366,7 +366,7 @@ This package uses [exports of package.json](https://nodejs.org/api/packages.html
366
366
  - 🟠 - Supported but partial, limited or requires some user custom code
367
367
  - ❌ - Not officially supported
368
368
 
369
- ### Benchmarks
369
+ ### Benchmark
370
370
 
371
371
  WIP
372
372
 
package/lib/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- var e=require("react/jsx-runtime"),t=require("react"),n=require("react-dom");const r=null,{min:o,max:i,abs:s,floor:l}=Math,c=(e,t,n)=>o(n,i(t,e)),f=e=>[...e].sort(((e,t)=>e-t)),d="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},u=e=>{let t,n;return()=>(t||(t=!0,n=e()),n)},a=-1,h=(e,t,n)=>{const r=n?"unshift":"push";for(let n=0;n<t;n++)e[r](a);return e},v=(e,t)=>{const n=e.t[t];return n===a?e.o:n},p=(e,t,n)=>{const r=e.t[t]===a;return e.t[t]=n,e.i=o(t,e.i),r},g=(e,t)=>{if(!e.l)return 0;if(e.i>=t)return e.u[t];e.i<0&&(e.u[0]=0,e.i=0);let n=e.i,r=e.u[n];for(;n<t;)r+=v(e,n),e.u[++n]=r;return e.i=t,r},_=(e,t,n=0,r=e.l-1)=>{for(;n<=r;){const o=l((n+r)/2),i=g(e,o);if(i<=t){if(i+v(e,o)>t)return o;n=o+1}else r=o-1}return c(n,0,e.l-1)},m=(e,t,n)=>{const r=t-e.l;return e.i=n?-1:o(t-1,e.i),e.l=t,r>0?(h(e.u,r),h(e.t,r,n),e.o*r):(e.u.splice(r),(n?e.t.splice(0,-r):e.t.splice(r)).reduce(((t,n)=>t-(n===a?e.o:n)),0))},w="undefined"!=typeof window,$=()=>document.documentElement,S=e=>e.ownerDocument,y=e=>e.defaultView,x=/*#__PURE__*/u((()=>!!w&&"rtl"===getComputedStyle($()).direction)),b=/*#__PURE__*/u((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),I=/*#__PURE__*/u((()=>"scrollBehavior"in $().style)),z=e=>i(e.h(),e.v()),k=e=>!!e.v(),T=(e,t=40,n=4,l=0,c,d=!1)=>{let u=!!l,w=[],$=0,S=0,y=0,x=0,I=0,z=0,k=0,T=0,R=0,M=u?[0,i(l-1,0)]:r,C=[0,0],E=0;const H=((e,t,n)=>({o:n?n[1]:t,t:n&&n[0]?h(n[0].slice(0,o(e,n[0].length)),i(0,e-n[0].length)):h([],e),l:e,i:-1,u:h([],e)}))(e,t,c),W=new Set,J=()=>y-S,q=()=>J()+z+I,B=e=>((e,t,n,r)=>{if(r=o(r,e.l-1),g(e,r)<=t){const o=_(e,t+n,r);return[_(e,t,r,o),o]}{const o=_(e,t,void 0,r);return[o,_(e,t+n,o)]}})(H,e,$,C[0]),O=()=>(e=>e.l?g(e,e.l-1)+v(e,e.l-1):0)(H),L=e=>g(H,e)-z,P=e=>v(H,e),A=e=>{e&&(b()&&0!==T?z+=e:(I+=e,x++))};return{p:()=>w,_:()=>(e=>[e.t.slice(),e.o])(H),m:()=>{if(k)return C;let[e,t]=B(i(0,q()));return M&&(e=o(e,M[0]),t=i(t,M[1])),1!==T&&(e-=i(0,n)),2!==T&&(t+=i(0,n)),C=[i(e,0),o(t,H.l-1)]},$:()=>_(H,q()),S:()=>_(H,q()+$),I:e=>H.t[e]===a,k:()=>!!M&&H.t.slice(i(0,M[0]-1),o(H.l-1,M[1]+1)+1).includes(a),T:L,R:P,M:()=>H.l,C:()=>y,H:()=>0!==T,v:()=>$,W:()=>S,h:O,J:()=>x,q:()=>(k=I,I=0,[k,2===R||J()+$>=O()]),B:(e,t)=>{const n=[e,t];return W.add(n),()=>{W.delete(n)}},O:(e,t)=>{let n,o,l=0;switch(e){case 1:{const e=k;k=0;const n=t-y,i=s(n);e&&i<s(e)+1||0!==R||(T=n<0?2:1),u&&(M=r,u=!1),y=t,l=4;const c=J();c>=-$&&c<=O()&&(l+=1,o=i>$);break}case 2:l=8,0!==T&&(n=!0,l+=1),T=0,R=0,M=r;break;case 3:{const e=t.filter((([e,t])=>H.t[e]!==t));if(!e.length)break;A(e.reduce(((e,[t,n])=>((2===R||(M?t<M[0]:L(t)+(0===T&&0===R?P(t):0)<J()))&&(e+=n-P(t)),e)),0));for(const[t,n]of e){const e=P(t),r=p(H,t,n);d&&(E+=r?n:n-e)}d&&$&&E>$&&(A(((e,t)=>{let n=0;const r=[];e.t.forEach(((e,o)=>{e!==a&&(r.push(e),o<t&&n++)})),e.i=-1;const o=f(r),s=o.length,l=s/2|0,c=s%2==0?(o[l-1]+o[l])/2:o[l],d=e.o;return((e.o=c)-d)*i(t-n,0)})(H,_(H,q()))),d=!1),l=3,o=!0;break}case 4:$!==t&&($=t,l=3);break;case 5:t[1]?(A(m(H,t[0],!0)),R=2,l=1):(m(H,t[0]),l=1);break;case 6:S=t;break;case 7:R=1;break;case 8:M=B(t),l=1}l&&(w=[],n&&z&&(I+=z,z=0,x++),W.forEach((([e,t])=>{l&e&&t(o)})))}}},R=setTimeout,M=(e,t)=>t&&x()?-e:e,C=(e,t,n,o,i,s)=>{const l=Date.now;let c=0,f=!1,d=!1,u=!1,a=!1;const h=(()=>{let t;const n=()=>{t!=r&&clearTimeout(t)},o=()=>{n(),t=R((()=>{t=r,(()=>{if(f||d)return f=!1,void h();u=!1,e.O(2)})()}),150)};return o.L=n,o})(),v=()=>{c=l(),u&&(a=!0),s&&e.O(6,s()),e.O(1,o()),h()},p=t=>{if(f||!e.H()||t.ctrlKey)return;const r=l()-c;150>r&&50<r&&(n?t.deltaX:t.deltaY)&&(f=!0)},g=()=>{d=!0,u=a=!1},_=()=>{d=!1,b()&&(u=!0)};return t.addEventListener("scroll",v),t.addEventListener("wheel",p,{passive:!0}),t.addEventListener("touchstart",g,{passive:!0}),t.addEventListener("touchend",_,{passive:!0}),{P:()=>{t.removeEventListener("scroll",v),t.removeEventListener("wheel",p),t.removeEventListener("touchstart",g),t.removeEventListener("touchend",_),h.L()},A:()=>{const[t,r]=e.q();t&&(i(M(t,n),r,a),a=!1,r&&e.v()>e.h()&&e.O(1,o()))}}},E=(e,t)=>{let n,r,o;const i=t?"scrollLeft":"scrollTop",s=t?"overflowX":"overflowY",l=async(r,s)=>{if(!n)return void d((()=>l(r,s)));o&&o();const c=()=>{let t;return[new Promise(((n,r)=>{t=n,o=r,k(e)&&R(r,150)})),e.B(2,(()=>{t&&t()}))]};if(s&&I()){for(;e.O(8,r()),e.k();){const[e,t]=c();try{await e}catch(e){return}finally{t()}}n.scrollTo({[t?"left":"top"]:M(r(),t),behavior:"smooth"})}else for(;;){const[o,s]=c();try{n[i]=M(r(),t),e.O(7),await o}catch(e){return}finally{s()}}};return{X(l){n=l,r=C(e,l,t,(()=>M(l[i],t)),((t,n,r)=>{if(r){const e=l.style,t=e[s];e[s]="hidden",R((()=>{e[s]=t}))}n?(l[i]=e.C()+t,o&&o()):l[i]+=t}))},Y(){r&&r.P()},j(e){l((()=>e))},D(t){t+=e.C(),l((()=>t))},U(t,{align:n,smooth:r,offset:o=0}={}){if(t=c(t,0,e.M()-1),"nearest"===n){const r=e.T(t),o=e.C();if(r<o)n="start";else{if(!(r+e.R(t)>o+e.v()))return;n="end"}}l((()=>o+e.W()+e.T(t)+("end"===n?e.R(t)-e.v():"center"===n?(e.R(t)-e.v())/2:0)),r)},V:()=>{r&&r.A()}}},H=(e,t)=>{let n,r,o;const i=(e,t,n,r,o=0)=>{const s=r?"offsetLeft":"offsetTop",l=o+(r&&x()?n.innerWidth-e[s]-e.offsetWidth:e[s]),c=e.offsetParent;return e!==t&&c?i(c,t,n,r,l):l},s=async(r,i)=>{if(!n)return void d((()=>s(r,i)));o&&o();const l=()=>{let t;return[new Promise(((n,r)=>{t=n,o=r,k(e)&&R(r,150)})),e.B(2,(()=>{t&&t()}))]},c=y(S(n));if(i&&I()){for(;e.O(8,r()),e.k();){const[e,t]=l();try{await e}catch(e){return}finally{t()}}c.scroll({[t?"left":"top"]:M(r(),t),behavior:"smooth"})}else for(;;){const[n,o]=l();try{c.scroll({[t?"left":"top"]:M(r(),t)}),e.O(7),await n}catch(e){return}finally{o()}}};return{X(o){n=o;const s=t?"scrollX":"scrollY",l=S(o),c=y(l),f=l.body;r=C(e,c,t,(()=>M(c[s],t)),((n,r)=>{r?c.scroll({[t?"left":"top"]:e.C()+n}):c.scrollBy(t?n:0,t?0:n)}),(()=>i(o,f,c,t)))},Y(){r&&r.P(),n=void 0},V:()=>{r&&r.A()},U(r,{align:o,smooth:l,offset:f=0}={}){if(!n)return;if(r=c(r,0,e.M()-1),"nearest"===o){const t=e.T(r),n=e.C();if(t<n)o="start";else{if(!(t+e.R(r)>n+e.v()))return;o="end"}}const d=S(n),u=y(d),a=d.documentElement,h=()=>e.v()-(t?a.clientWidth:a.clientHeight);s((()=>f+i(n,d.body,u,t)+e.T(r)+("end"===o?e.R(r)-(e.v()-h()):"center"===o?(e.R(r)-(e.v()-h()))/2:0)),l)}}},W=(e,t)=>{const n=E(e,!1),r=E(t,!0);return{X(e){n.X(e),r.X(e)},Y(){n.Y(),r.Y()},j(e,t){n.j(t),r.j(e)},D(e,t){n.D(t),r.D(e)},U(e,t){n.U(t),r.U(e)},V(){n.V(),r.V()}}},J=e=>{let t;return{F(n){(t||(t=new(y(S(n)).ResizeObserver)(e))).observe(n)},G(e){t.unobserve(e)},P(){t&&t.disconnect()}}},q=(e,t)=>{let n;const o=t?"width":"height",i=new WeakMap,s=J((t=>{const s=[];for(const{target:l,contentRect:c}of t)if(l.offsetParent)if(l===n)e.O(4,c[o]);else{const e=i.get(l);e!=r&&s.push([e,c[o]])}s.length&&e.O(3,s)}));return{K(e){s.F(n=e)},N:(e,t)=>(i.set(e,t),s.F(e),()=>{i.delete(e),s.G(e)}),Y:s.P}},B=(e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",i=new WeakMap,s=J((t=>{const o=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=i.get(e);t!=r&&o.push([t,s[n]])}o.length&&e.O(3,o)}));let l;return{K(t){const n=y(S(t)),r=()=>{e.O(4,n[o])};n.addEventListener("resize",r),r(),l=()=>{n.removeEventListener("resize",r)}},N:(e,t)=>(i.set(e,t),s.F(e),()=>{i.delete(e),s.G(e)}),Y(){l&&l(),s.P()}}},O=(e,t)=>{let n;const r="height",o="width",s=new WeakMap,l=new Set,c=new Set,f=new Map,d=(e,t)=>`${e}-${t}`,u=J((u=>{const a=new Set,h=new Set;for(const{target:i,contentRect:l}of u)if(i.offsetParent)if(i===n)e.O(4,l[r]),t.O(4,l[o]);else{const e=s.get(i);if(e){const[t,n]=e,i=d(t,n),s=f.get(i),c=[l[r],l[o]];let u,v;s?(s[0]!==c[0]&&(u=!0),s[1]!==c[1]&&(v=!0)):u=v=!0,u&&a.add(t),v&&h.add(n),(u||v)&&f.set(i,c)}}if(a.size){const t=[];a.forEach((e=>{let n=0;c.forEach((t=>{const r=f.get(d(e,t));r&&(n=i(n,r[0]))})),n&&t.push([e,n])})),e.O(3,t)}if(h.size){const e=[];h.forEach((t=>{let n=0;l.forEach((e=>{const r=f.get(d(e,t));r&&(n=i(n,r[1]))})),n&&e.push([t,n])})),t.O(3,e)}}));return{K(e){u.F(n=e)},N:(e,t,n)=>(s.set(e,[t,n]),l.add(t),c.add(n),u.F(e),()=>{s.delete(e),u.G(e)}),Y:u.P}},L=w?t.useLayoutEffect:t.useEffect,P="current",A=(e,t)=>{if(Array.isArray(e))for(const n of e)A(n,t);else null==e||"boolean"==typeof e||t.push(e)},X=(e,t)=>{const n=e.key;return null!=n?n:"_"+t},Y=e=>{const n=t.useRef();return n[P]||(n[P]=e())},j=e=>{const n=t.useRef(e);return L((()=>{n[P]=e}),[e]),n},D=t.memo((({Z:n,ee:r,te:o,ne:i,re:s,oe:l,ie:c,se:f})=>{const d=t.useRef(null);L((()=>r(d[P],o)),[o]);const u=t.useMemo((()=>{const e={position:s&&f?void 0:"absolute",[c?"height":"width"]:"100%",[c?"top":"left"]:0,[c?x()?"right":"left":"top"]:i,visibility:!s||f?"visible":"hidden"};return c&&(e.display="flex"),e}),[i,s,f,c]);return"string"==typeof l?e.jsx(l,{ref:d,style:u,children:n}):e.jsx(l,{ref:d,style:u,index:o,children:n})})),U=e=>t.useReducer(e.p,void 0,e.p)[1],V=(e,n)=>t.useMemo((()=>{if("function"==typeof e)return[e,n||0];const t=(e=>{const t=[];return A(e,t),t})(e);return[e=>t[e],t.length]}),[e,n]),F=t.forwardRef((({children:r,count:o,overscan:i,itemSize:s,shift:l,horizontal:c,keepMounted:u,cache:a,startMargin:h=0,ssrCount:v,as:p="div",item:g="div",scrollRef:_,onScroll:m,onScrollEnd:w},$)=>{const[S,y]=V(r,o),x=t.useRef(null),b=t.useRef(!!v),I=j(m),k=j(w),[R,M,C,H]=Y((()=>{const e=!!c,t=T(y,s,i,v,a,!s);return[t,q(t,e),E(t,e),e]}));y!==R.M()&&R.O(5,[y,l]),h!==R.W()&&R.O(6,h);const W=U(R),[J,B]=R.m(),O=R.H(),A=R.J(),F=R.h(),G=[],K=t=>{const n=S(t);return e.jsx(D,{ee:M.N,te:t,ne:R.T(t),re:R.I(t),oe:g,Z:n,ie:H,se:b[P]},X(n,t))};L((()=>{b[P]=!1;const e=R.B(1,(e=>{e?n.flushSync(W):W()})),t=R.B(4,(()=>{I[P]&&I[P](R.C())})),r=R.B(8,(()=>{k[P]&&k[P]()})),o=e=>{M.K(e),C.X(e)};return _?d((()=>o(_[P]))):o(x[P].parentElement),()=>{e(),t(),r(),M.Y(),C.Y()}}),[]),L((()=>{C.V()}),[A]),t.useImperativeHandle($,(()=>({get cache(){return R._()},get scrollOffset(){return R.C()},get scrollSize(){return z(R)},get viewportSize(){return R.v()},findStartIndex:R.$,findEndIndex:R.S,getItemOffset:R.T,getItemSize:R.R,scrollToIndex:C.U,scrollTo:C.j,scrollBy:C.D})),[]);for(let e=J,t=B;e<=t;e++)G.push(K(e));if(u){const e=[],t=[];f(u).forEach((n=>{n<J&&e.push(K(n)),n>B&&t.push(K(n))})),G.unshift(...e),G.push(...t)}return e.jsx(p,{ref:x,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:H?F:"100%",height:H?"100%":F,pointerEvents:O?"none":void 0},children:G})})),G=t.forwardRef((({children:n,count:r,overscan:o,itemSize:i,shift:s,horizontal:l,keepMounted:c,reverse:f,cache:d,ssrCount:u,item:a,onScroll:h,onScrollEnd:v,style:p,...g},_)=>{const m=t.useRef(null),w=f&&!l;let $=e.jsx(F,{ref:_,scrollRef:w?m:void 0,count:r,overscan:o,itemSize:i,shift:s,horizontal:l,keepMounted:c,cache:d,ssrCount:u,item:a,onScroll:h,onScrollEnd:v,children:n});return w&&($=e.jsx("div",{style:{visibility:"hidden",display:"flex",flexDirection:"column",justifyContent:"flex-end",minHeight:"100%"},children:$})),e.jsx("div",{ref:m,...g,style:{display:l?"inline-block":"block",[l?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%",...p},children:$})})),K=t.forwardRef((({children:r,count:o,overscan:i,itemSize:s,shift:l,horizontal:c,cache:f,ssrCount:d,as:u="div",item:a="div",onScroll:h,onScrollEnd:v},p)=>{const[g,_]=V(r,o),m=t.useRef(null),w=j(h),$=j(v),S=t.useRef(!!d),[y,x,b,I]=Y((()=>{const e=!!c,t=T(_,s,i,d,f,!s);return[t,B(t,e),H(t,e),e]}));_!==y.M()&&y.O(5,[_,l]);const z=U(y),[k,R]=y.m(),M=y.H(),C=y.J(),E=y.h(),W=[];L((()=>{S[P]=!1;const e=y.B(1,(e=>{e?n.flushSync(z):z()})),t=y.B(4,(()=>{w[P]&&w[P](y.C())})),r=y.B(8,(()=>{$[P]&&$[P]()})),o=m[P];return x.K(o),b.X(o),()=>{e(),t(),r(),x.Y(),b.Y()}}),[]),L((()=>{b.V()}),[C]),t.useImperativeHandle(p,(()=>({get cache(){return y._()},findStartIndex:y.$,findEndIndex:y.S,scrollToIndex:b.U})),[]);for(let t=k,n=R;t<=n;t++){const n=g(t);W.push(e.jsx(D,{ee:x.N,te:t,ne:y.T(t),re:y.I(t),oe:a,Z:n,ie:I,se:S[P]},X(n,t)))}return e.jsx(u,{ref:m,style:{flex:"none",position:"relative",visibility:"hidden",width:I?E:"100%",height:I?"100%":E,pointerEvents:M?"none":void 0},children:W})})),N=(e,t)=>`${e}-${t}`,Q=t.memo((({Z:n,ee:r,le:o,ce:i,fe:s,de:l,ue:c,ae:f,re:d,he:u})=>{const a=t.useRef(null);return L((()=>r.N(a[P],o,i)),[i,o]),e.jsx(u,{ref:a,style:t.useMemo((()=>({display:"grid",position:"absolute",top:s,[x()?"right":"left"]:l,visibility:d?"hidden":"visible",minHeight:c,minWidth:f})),[s,l,f,c,d]),children:n})})),Z=t.forwardRef((({children:r,row:o,col:i,cellHeight:s=40,cellWidth:l=100,overscan:c=2,initialRowCount:f,initialColCount:d,item:u="div",style:a,...h},v)=>{const[p,g,_,m]=Y((()=>{const e=T(o,s,c,f),t=T(i,l,c,d);return[e,t,O(e,t),W(e,t)]}));o!==p.M()&&p.O(5,[o]),i!==g.M()&&g.O(5,[i]);const w=U(p),$=U(g),[S,y]=p.m(),[x,b]=g.m(),I=p.H(),k=g.H(),R=p.J(),M=g.J(),C=z(p),E=z(g),H=t.useRef(null);L((()=>{const e=H[P],t=p.B(1,(e=>{e?n.flushSync(w):w()})),r=g.B(1,(e=>{e?n.flushSync($):$()}));return _.K(e),m.X(e),()=>{t(),r(),_.Y(),m.Y()}}),[]),L((()=>{m.V()}),[R,M]),t.useImperativeHandle(v,(()=>({get scrollTop(){return p.C()},get scrollLeft(){return g.C()},get scrollHeight(){return z(p)},get scrollWidth(){return z(g)},get viewportHeight(){return p.v()},get viewportWidth(){return g.v()},scrollToIndex:m.U,scrollTo:m.j,scrollBy:m.D})),[]);const J=t.useMemo((()=>{const e=new Map;return(t,n)=>{let o=e.get(N(t,n));return o||e.set(N(t,n),o=r({rowIndex:t,colIndex:n})),o}}),[r]),q=[];for(let t=S;t<=y;t++)for(let n=x;n<=b;n++)q.push(e.jsx(Q,{ee:_,le:t,ce:n,fe:p.T(t),de:g.T(n),ue:p.R(t),ae:g.R(n),re:p.I(t)||g.I(n),he:u,Z:J(t,n)},N(t,n)));return e.jsx("div",{ref:H,...h,style:{overflow:"auto",contain:"strict",width:"100%",height:"100%",...a},children:e.jsx("div",{style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:E,height:C,pointerEvents:I||k?"none":void 0},children:q})})}));exports.VList=G,exports.Virtualizer=F,exports.WindowVirtualizer=K,exports.experimental_VGrid=Z;
2
+ var e=require("react/jsx-runtime"),t=require("react"),n=require("react-dom");const r=null,{min:o,max:i,abs:s,floor:l}=Math,c=(e,t,n)=>o(n,i(t,e)),f=e=>[...e].sort(((e,t)=>e-t)),d="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},u=e=>{let t,n;return()=>(t||(t=!0,n=e()),n)},a=-1,h=(e,t,n)=>{const r=n?"unshift":"push";for(let n=0;n<t;n++)e[r](a);return e},v=(e,t)=>{const n=e.t[t];return n===a?e.o:n},p=(e,t,n)=>{const r=e.t[t]===a;return e.t[t]=n,e.i=o(t,e.i),r},g=(e,t)=>{if(!e.l)return 0;if(e.i>=t)return e.u[t];e.i<0&&(e.u[0]=0,e.i=0);let n=e.i,r=e.u[n];for(;n<t;)r+=v(e,n),e.u[++n]=r;return e.i=t,r},_=(e,t,n=0,r=e.l-1)=>{for(;n<=r;){const o=l((n+r)/2),i=g(e,o);if(i<=t){if(i+v(e,o)>t)return o;n=o+1}else r=o-1}return c(n,0,e.l-1)},m=(e,t,n)=>{const r=t-e.l;return e.i=n?-1:o(t-1,e.i),e.l=t,r>0?(h(e.u,r),h(e.t,r,n),e.o*r):(e.u.splice(r),(n?e.t.splice(0,-r):e.t.splice(r)).reduce(((t,n)=>t-(n===a?e.o:n)),0))},w="undefined"!=typeof window,$=()=>document.documentElement,S=e=>e.ownerDocument,y=e=>e.defaultView,x=/*#__PURE__*/u((()=>!!w&&"rtl"===getComputedStyle($()).direction)),b=/*#__PURE__*/u((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),I=/*#__PURE__*/u((()=>"scrollBehavior"in $().style)),z=e=>i(e.h(),e.v()),k=e=>!!e.v(),T=(e,t=40,n=4,l=0,c,d=!1)=>{let u=!!l,w=[],$=0,S=0,y=0,x=0,I=0,z=0,k=0,T=0,R=0,M=u?[0,i(l-1,0)]:r,C=[0,0],E=0;const H=((e,t,n)=>({o:n?n[1]:t,t:n&&n[0]?h(n[0].slice(0,o(e,n[0].length)),i(0,e-n[0].length)):h([],e),l:e,i:-1,u:h([],e)}))(e,t,c),W=new Set,J=()=>y-S,q=()=>J()+z+I,B=e=>((e,t,n,r)=>{if(r=o(r,e.l-1),g(e,r)<=t){const o=_(e,t+n,r);return[_(e,t,r,o),o]}{const o=_(e,t,void 0,r);return[o,_(e,t+n,o)]}})(H,e,$,C[0]),O=()=>(e=>e.l?g(e,e.l-1)+v(e,e.l-1):0)(H),L=e=>g(H,e)-z,P=e=>v(H,e),A=e=>{e&&(b()&&0!==T?z+=e:(I+=e,x++))};return{p:()=>w,_:()=>(e=>[e.t.slice(),e.o])(H),m:()=>{if(k)return C;let[e,t]=B(i(0,q()));return M&&(e=o(e,M[0]),t=i(t,M[1])),1!==T&&(e-=i(0,n)),2!==T&&(t+=i(0,n)),C=[i(e,0),o(t,H.l-1)]},$:()=>_(H,q()),S:()=>_(H,q()+$),I:e=>H.t[e]===a,k:()=>!!M&&H.t.slice(i(0,M[0]-1),o(H.l-1,M[1]+1)+1).includes(a),T:L,R:P,M:()=>H.l,C:()=>y,H:()=>0!==T,v:()=>$,W:()=>S,h:O,J:()=>x,q:()=>(k=I,I=0,[k,2===R||J()+$>=O()]),B:(e,t)=>{const n=[e,t];return W.add(n),()=>{W.delete(n)}},O:(e,t)=>{let n,o,l=0;switch(e){case 1:{const e=k;k=0;const n=t-y,i=s(n);e&&i<s(e)+1||0!==R||(T=n<0?2:1),u&&(M=r,u=!1),y=t,l=4;const c=J();c>=-$&&c<=O()&&(l+=1,o=i>$);break}case 2:l=8,0!==T&&(n=!0,l+=1),T=0,R=0,M=r;break;case 3:{const e=t.filter((([e,t])=>H.t[e]!==t));if(!e.length)break;A(e.reduce(((e,[t,n])=>((2===R||(M?t<M[0]:L(t)+(0===T&&0===R?P(t):0)<J()))&&(e+=n-P(t)),e)),0));for(const[t,n]of e){const e=P(t),r=p(H,t,n);d&&(E+=r?n:n-e)}d&&$&&E>$&&(A(((e,t)=>{let n=0;const r=[];e.t.forEach(((e,o)=>{e!==a&&(r.push(e),o<t&&n++)})),e.i=-1;const o=f(r),s=o.length,l=s/2|0,c=s%2==0?(o[l-1]+o[l])/2:o[l],d=e.o;return((e.o=c)-d)*i(t-n,0)})(H,_(H,q()))),d=!1),l=3,o=!0;break}case 4:$!==t&&($=t,l=3);break;case 5:t[1]?(A(m(H,t[0],!0)),R=2,l=1):(m(H,t[0]),l=1);break;case 6:S=t;break;case 7:R=1;break;case 8:M=B(t),l=1}l&&(w=[],n&&z&&(I+=z,z=0,x++),W.forEach((([e,t])=>{l&e&&t(o)})))}}},R=setTimeout,M=(e,t)=>t&&x()?-e:e,C=(e,t,n,o,i,s)=>{const l=Date.now;let c=0,f=!1,d=!1,u=!1,a=!1;const h=(()=>{let t;const n=()=>{t!=r&&clearTimeout(t)},o=()=>{n(),t=R((()=>{t=r,(()=>{if(f||d)return f=!1,void h();u=!1,e.O(2)})()}),150)};return o.L=n,o})(),v=()=>{c=l(),u&&(a=!0),s&&e.O(6,s()),e.O(1,o()),h()},p=t=>{if(f||!e.H()||t.ctrlKey)return;const r=l()-c;150>r&&50<r&&(n?t.deltaX:t.deltaY)&&(f=!0)},g=()=>{d=!0,u=a=!1},_=()=>{d=!1,b()&&(u=!0)};return t.addEventListener("scroll",v),t.addEventListener("wheel",p,{passive:!0}),t.addEventListener("touchstart",g,{passive:!0}),t.addEventListener("touchend",_,{passive:!0}),{P:()=>{t.removeEventListener("scroll",v),t.removeEventListener("wheel",p),t.removeEventListener("touchstart",g),t.removeEventListener("touchend",_),h.L()},A:()=>{const[t,r]=e.q();t&&(i(M(t,n),r,a),a=!1,r&&e.v()>e.h()&&e.O(1,o()))}}},E=(e,t)=>{let n,r,o;const i=t?"scrollLeft":"scrollTop",s=t?"overflowX":"overflowY",l=async(r,s)=>{if(!n)return void d((()=>l(r,s)));o&&o();const c=()=>{let t;return[new Promise(((n,r)=>{t=n,o=r,k(e)&&R(r,150)})),e.B(2,(()=>{t&&t()}))]};if(s&&I()){for(;e.O(8,r()),e.k();){const[e,t]=c();try{await e}catch(e){return}finally{t()}}n.scrollTo({[t?"left":"top"]:M(r(),t),behavior:"smooth"})}else for(;;){const[o,s]=c();try{n[i]=M(r(),t),e.O(7),await o}catch(e){return}finally{s()}}};return{X(l){n=l,r=C(e,l,t,(()=>M(l[i],t)),((t,n,r)=>{if(r){const e=l.style,t=e[s];e[s]="hidden",R((()=>{e[s]=t}))}n?(l[i]=e.C()+t,o&&o()):l[i]+=t}))},Y(){r&&r.P()},j(e){l((()=>e))},D(t){t+=e.C(),l((()=>t))},U(t,{align:n,smooth:r,offset:o=0}={}){if(t=c(t,0,e.M()-1),"nearest"===n){const r=e.T(t),o=e.C();if(r<o)n="start";else{if(!(r+e.R(t)>o+e.v()))return;n="end"}}l((()=>o+e.W()+e.T(t)+("end"===n?e.R(t)-e.v():"center"===n?(e.R(t)-e.v())/2:0)),r)},V:()=>{r&&r.A()}}},H=(e,t)=>{let n,r,o;const i=(e,t,n,r,o=0)=>{const s=r?"offsetLeft":"offsetTop",l=o+(r&&x()?n.innerWidth-e[s]-e.offsetWidth:e[s]),c=e.offsetParent;return e!==t&&c?i(c,t,n,r,l):l},s=async(r,i)=>{if(!n)return void d((()=>s(r,i)));o&&o();const l=()=>{let t;return[new Promise(((n,r)=>{t=n,o=r,k(e)&&R(r,150)})),e.B(2,(()=>{t&&t()}))]},c=y(S(n));if(i&&I()){for(;e.O(8,r()),e.k();){const[e,t]=l();try{await e}catch(e){return}finally{t()}}c.scroll({[t?"left":"top"]:M(r(),t),behavior:"smooth"})}else for(;;){const[n,o]=l();try{c.scroll({[t?"left":"top"]:M(r(),t)}),e.O(7),await n}catch(e){return}finally{o()}}};return{X(o){n=o;const s=t?"scrollX":"scrollY",l=S(o),c=y(l),f=l.body;r=C(e,c,t,(()=>M(c[s],t)),((n,r)=>{r?c.scroll({[t?"left":"top"]:e.C()+n}):c.scrollBy(t?n:0,t?0:n)}),(()=>i(o,f,c,t)))},Y(){r&&r.P(),n=void 0},V:()=>{r&&r.A()},U(r,{align:o,smooth:l,offset:f=0}={}){if(!n)return;if(r=c(r,0,e.M()-1),"nearest"===o){const t=e.T(r),n=e.C();if(t<n)o="start";else{if(!(t+e.R(r)>n+e.v()))return;o="end"}}const d=S(n),u=y(d),a=d.documentElement,h=()=>e.v()-(t?a.clientWidth:a.clientHeight);s((()=>f+i(n,d.body,u,t)+e.T(r)+("end"===o?e.R(r)-(e.v()-h()):"center"===o?(e.R(r)-(e.v()-h()))/2:0)),l)}}},W=(e,t)=>{const n=E(e,!1),r=E(t,!0);return{X(e){n.X(e),r.X(e)},Y(){n.Y(),r.Y()},j(e,t){n.j(t),r.j(e)},D(e,t){n.D(t),r.D(e)},U(e,t){n.U(t),r.U(e)},V(){n.V(),r.V()}}},J=e=>{let t;return{F(n){(t||(t=new(y(S(n)).ResizeObserver)(e))).observe(n)},G(e){t.unobserve(e)},P(){t&&t.disconnect()}}},q=(e,t)=>{let n;const o=t?"width":"height",i=new WeakMap,s=J((t=>{const s=[];for(const{target:l,contentRect:c}of t)if(l.offsetParent)if(l===n)e.O(4,c[o]);else{const e=i.get(l);e!=r&&s.push([e,c[o]])}s.length&&e.O(3,s)}));return{K(e){s.F(n=e)},N:(e,t)=>(i.set(e,t),s.F(e),()=>{i.delete(e),s.G(e)}),Y:s.P}},B=(e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",i=new WeakMap,s=J((t=>{const o=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=i.get(e);t!=r&&o.push([t,s[n]])}o.length&&e.O(3,o)}));let l;return{K(t){const n=y(S(t)),r=()=>{e.O(4,n[o])};n.addEventListener("resize",r),r(),l=()=>{n.removeEventListener("resize",r)}},N:(e,t)=>(i.set(e,t),s.F(e),()=>{i.delete(e),s.G(e)}),Y(){l&&l(),s.P()}}},O=(e,t)=>{let n;const r="height",o="width",s=new WeakMap,l=new Set,c=new Set,f=new Map,d=(e,t)=>`${e}-${t}`,u=J((u=>{const a=new Set,h=new Set;for(const{target:i,contentRect:l}of u)if(i.offsetParent)if(i===n)e.O(4,l[r]),t.O(4,l[o]);else{const e=s.get(i);if(e){const[t,n]=e,i=d(t,n),s=f.get(i),c=[l[r],l[o]];let u,v;s?(s[0]!==c[0]&&(u=!0),s[1]!==c[1]&&(v=!0)):u=v=!0,u&&a.add(t),v&&h.add(n),(u||v)&&f.set(i,c)}}if(a.size){const t=[];a.forEach((e=>{let n=0;c.forEach((t=>{const r=f.get(d(e,t));r&&(n=i(n,r[0]))})),n&&t.push([e,n])})),e.O(3,t)}if(h.size){const e=[];h.forEach((t=>{let n=0;l.forEach((e=>{const r=f.get(d(e,t));r&&(n=i(n,r[1]))})),n&&e.push([t,n])})),t.O(3,e)}}));return{K(e){u.F(n=e)},N:(e,t,n)=>(s.set(e,[t,n]),l.add(t),c.add(n),u.F(e),()=>{s.delete(e),u.G(e)}),Y:u.P}},L=w?t.useLayoutEffect:t.useEffect,P="current",A=(e,t)=>{if(Array.isArray(e))for(const n of e)A(n,t);else null==e||"boolean"==typeof e||t.push(e)},X=(e,t)=>{const n=e.key;return null!=n?n:"_"+t},Y=e=>{const n=t.useRef();return n[P]||(n[P]=e())},j=e=>{const n=t.useRef(e);return L((()=>{n[P]=e}),[e]),n},D=t.memo((({Z:n,ee:r,te:o,ne:i,re:s,oe:l,ie:c,se:f})=>{const d=t.useRef(null);L((()=>r(d[P],o)),[o]);const u=t.useMemo((()=>{const e={position:s&&f?void 0:"absolute",[c?"height":"width"]:"100%",[c?"top":"left"]:0,[c?x()?"right":"left":"top"]:i,visibility:!s||f?"visible":"hidden"};return c&&(e.display="flex"),e}),[i,s,f,c]);return"string"==typeof l?e.jsx(l,{ref:d,style:u,children:n}):e.jsx(l,{ref:d,style:u,index:o,children:n})})),U=e=>t.useReducer(e.p,void 0,e.p)[1],V=(e,n)=>t.useMemo((()=>{if("function"==typeof e)return[e,n||0];const t=(e=>{const t=[];return A(e,t),t})(e);return[e=>t[e],t.length]}),[e,n]),F=t.forwardRef((({children:r,count:o,overscan:i,itemSize:s,shift:l,horizontal:c,keepMounted:u,cache:a,startMargin:h=0,ssrCount:v,as:p="div",item:g="div",scrollRef:_,onScroll:m,onScrollEnd:w},$)=>{const[S,y]=V(r,o),x=t.useRef(null),b=t.useRef(!!v),I=j(m),k=j(w),[R,M,C,H]=Y((()=>{const e=!!c,t=T(y,s,i,v,a,!s);return[t,q(t,e),E(t,e),e]}));y!==R.M()&&R.O(5,[y,l]),h!==R.W()&&R.O(6,h);const W=U(R),[J,B]=R.m(),O=R.H(),A=R.J(),F=R.h(),G=[],K=t=>{const n=S(t);return e.jsx(D,{ee:M.N,te:t,ne:R.T(t),re:R.I(t),oe:g,Z:n,ie:H,se:b[P]},X(n,t))};L((()=>{b[P]=!1;const e=R.B(1,(e=>{e?n.flushSync(W):W()})),t=R.B(4,(()=>{I[P]&&I[P](R.C())})),r=R.B(8,(()=>{k[P]&&k[P]()})),o=e=>{M.K(e),C.X(e)};return _?d((()=>o(_[P]))):o(x[P].parentElement),()=>{e(),t(),r(),M.Y(),C.Y()}}),[]),L((()=>{C.V()}),[A]),t.useImperativeHandle($,(()=>({get cache(){return R._()},get scrollOffset(){return R.C()},get scrollSize(){return z(R)},get viewportSize(){return R.v()},findStartIndex:R.$,findEndIndex:R.S,getItemOffset:R.T,getItemSize:R.R,scrollToIndex:C.U,scrollTo:C.j,scrollBy:C.D})),[]);for(let e=J,t=B;e<=t;e++)G.push(K(e));if(u){const e=[],t=[];f(u).forEach((n=>{n<J&&e.push(K(n)),n>B&&t.push(K(n))})),G.unshift(...e),G.push(...t)}return e.jsx(p,{ref:x,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:H?F:"100%",height:H?"100%":F,pointerEvents:O?"none":void 0},children:G})})),G=t.forwardRef((({children:n,count:r,overscan:o,itemSize:i,shift:s,horizontal:l,keepMounted:c,reverse:f,cache:d,ssrCount:u,item:a,onScroll:h,onScrollEnd:v,style:p,...g},_)=>{const m=t.useRef(null),w=f&&!l;let $=e.jsx(F,{ref:_,scrollRef:w?m:void 0,count:r,overscan:o,itemSize:i,shift:s,horizontal:l,keepMounted:c,cache:d,ssrCount:u,item:a,onScroll:h,onScrollEnd:v,children:n});return w&&($=e.jsx("div",{style:{visibility:"hidden",display:"flex",flexDirection:"column",justifyContent:"flex-end",minHeight:"100%"},children:$})),e.jsx("div",{ref:m,...g,style:{display:l?"inline-block":"block",[l?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%",...p},children:$})})),K=t.forwardRef((({children:r,count:o,overscan:i,itemSize:s,shift:l,horizontal:c,cache:f,ssrCount:d,as:u="div",item:a="div",onScroll:h,onScrollEnd:v},p)=>{const[g,_]=V(r,o),m=t.useRef(null),w=j(h),$=j(v),S=t.useRef(!!d),[y,x,b,I]=Y((()=>{const e=!!c,t=T(_,s,i,d,f,!s);return[t,B(t,e),H(t,e),e]}));_!==y.M()&&y.O(5,[_,l]);const z=U(y),[k,R]=y.m(),M=y.H(),C=y.J(),E=y.h(),W=[];L((()=>{S[P]=!1;const e=y.B(1,(e=>{e?n.flushSync(z):z()})),t=y.B(4,(()=>{w[P]&&w[P]()})),r=y.B(8,(()=>{$[P]&&$[P]()})),o=m[P];return x.K(o),b.X(o),()=>{e(),t(),r(),x.Y(),b.Y()}}),[]),L((()=>{b.V()}),[C]),t.useImperativeHandle(p,(()=>({get cache(){return y._()},findStartIndex:y.$,findEndIndex:y.S,scrollToIndex:b.U})),[]);for(let t=k,n=R;t<=n;t++){const n=g(t);W.push(e.jsx(D,{ee:x.N,te:t,ne:y.T(t),re:y.I(t),oe:a,Z:n,ie:I,se:S[P]},X(n,t)))}return e.jsx(u,{ref:m,style:{flex:"none",position:"relative",visibility:"hidden",width:I?E:"100%",height:I?"100%":E,pointerEvents:M?"none":void 0},children:W})})),N=(e,t)=>`${e}-${t}`,Q=t.memo((({Z:n,ee:r,le:o,ce:i,fe:s,de:l,ue:c,ae:f,re:d,he:u})=>{const a=t.useRef(null);return L((()=>r.N(a[P],o,i)),[i,o]),e.jsx(u,{ref:a,style:t.useMemo((()=>({display:"grid",position:"absolute",top:s,[x()?"right":"left"]:l,visibility:d?"hidden":"visible",minHeight:c,minWidth:f})),[s,l,f,c,d]),children:n})})),Z=t.forwardRef((({children:r,row:o,col:i,cellHeight:s=40,cellWidth:l=100,overscan:c=2,initialRowCount:f,initialColCount:d,item:u="div",style:a,...h},v)=>{const[p,g,_,m]=Y((()=>{const e=T(o,s,c,f),t=T(i,l,c,d);return[e,t,O(e,t),W(e,t)]}));o!==p.M()&&p.O(5,[o]),i!==g.M()&&g.O(5,[i]);const w=U(p),$=U(g),[S,y]=p.m(),[x,b]=g.m(),I=p.H(),k=g.H(),R=p.J(),M=g.J(),C=z(p),E=z(g),H=t.useRef(null);L((()=>{const e=H[P],t=p.B(1,(e=>{e?n.flushSync(w):w()})),r=g.B(1,(e=>{e?n.flushSync($):$()}));return _.K(e),m.X(e),()=>{t(),r(),_.Y(),m.Y()}}),[]),L((()=>{m.V()}),[R,M]),t.useImperativeHandle(v,(()=>({get scrollTop(){return p.C()},get scrollLeft(){return g.C()},get scrollHeight(){return z(p)},get scrollWidth(){return z(g)},get viewportHeight(){return p.v()},get viewportWidth(){return g.v()},scrollToIndex:m.U,scrollTo:m.j,scrollBy:m.D})),[]);const J=t.useMemo((()=>{const e=new Map;return(t,n)=>{let o=e.get(N(t,n));return o||e.set(N(t,n),o=r({rowIndex:t,colIndex:n})),o}}),[r]),q=[];for(let t=S;t<=y;t++)for(let n=x;n<=b;n++)q.push(e.jsx(Q,{ee:_,le:t,ce:n,fe:p.T(t),de:g.T(n),ue:p.R(t),ae:g.R(n),re:p.I(t)||g.I(n),he:u,Z:J(t,n)},N(t,n)));return e.jsx("div",{ref:H,...h,style:{overflow:"auto",contain:"strict",width:"100%",height:"100%",...a},children:e.jsx("div",{style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:E,height:C,pointerEvents:I||k?"none":void 0},children:q})})}));exports.VList=G,exports.Virtualizer=F,exports.WindowVirtualizer=K,exports.experimental_VGrid=Z;
3
3
  //# sourceMappingURL=index.js.map