virtua 0.20.0 → 0.20.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/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 o,memo as r,useMemo as i,useReducer as s,forwardRef as l,useImperativeHandle as c}from"react";import{flushSync as a}from"react-dom";const h=Math.min,d=Math.max,u=Math.abs,f=Date.now,_=Object.values,w=Array.isArray,g=setTimeout,v=(e,t,n)=>h(n,d(t,e)),p=e=>null!=e,m=(e,t)=>{let n;const o=()=>{p(n)&&clearTimeout(n)},r=()=>{o(),n=g((()=>{n=null,e()}),t)};return r.t=o,r},S=e=>{let t,n;return(...o)=>(t||(t=!0,n=e(...o)),n)},b=-1,z=(e,t,n)=>{const o=n?"unshift":"push";for(let n=0;n<t;n++)e[o](b);return e},y=(e,t)=>{const n=e.o[t];return n===b?e.i:n},x=(e,t)=>{if(!e.l)return 0;if(e.h>=t)return e.u[t];e.h<0&&(e.u[0]=0,e.h=0);let n=e.h,o=e.u[n];for(;n<t;)o+=y(e,n),e.u[++n]=o;return e.h=t,o},R=(e,t,n)=>{let o=x(e,n);for(;n>=0&&n<e.l;)if(o<=t){const r=y(e,n);if(o+r>t)break;o+=r,n++}else o-=y(e,--n);return v(n,0,e.l-1)},I=(e,t,n,o)=>{const r=R(e,t,h(n,e.l-1));return[r,R(e,t+o,r)]},C=(e,t,n)=>{const o=t-e.l,r=o>0;let i;return r?(i=e.i*o,z(e.o,o,n),z(e.u,o)):(i=(n?e.o.splice(0,-o):e.o.splice(o)).reduce(((t,n)=>t+(n===b?e.i:n)),0),e.u.splice(o)),e.h=n?-1:h(t-1,e.h),e.l=t,[i,r]},k="undefined"!=typeof window,O=()=>document.documentElement,M=/*#__PURE__*/S((e=>{const t="scrollLeft",n=e[t];e[t]=1;const o=e[t]<1;return e[t]=n,o})),T=/*#__PURE__*/S((()=>{return!!k&&"rtl"===(e=O(),getComputedStyle(e)).direction;var e})),E=/*#__PURE__*/S((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),H=/*#__PURE__*/S((()=>"scrollBehavior"in O().style)),W=e=>d(e._(),e.v()),J=(e,t,n)=>d(e-(1===n?1:d(1,t)),0),B=(e,t,n,o)=>h(e+(2===n?1:d(1,t)),o-1),L=(e,t,n)=>t.reduce(((t,[o,r])=>{const i=r-y(e,o);return(!n||i>0)&&(t+=i),t}),0),$=(e,t=40,n=0,o=((e,t)=>({i:t,l:e,h:-1,o:z([],e),u:z([],e)}))(e,t),r,i=0,s=0)=>{let l=!!n,c=[],a=0,f=0,_=0,w=0,g=0,p=0,m=0,S=0,R=l?[0,d(n-1,0)]:null,k=[0,0];const O=new Set,M=()=>(e=>e.l?x(e,e.l-1)+y(e,e.l-1):0)(o),T=()=>M()+i+s,H=()=>d(0,T()-a),W=e=>{E()&&0!==m?g+=e:(w+=e,_++)};return{p:()=>c,m:()=>JSON.parse(JSON.stringify(o)),S:()=>R?[h(k[0],R[0]),d(k[1],R[1])]:p?k:k=I(o,f-i+g+w,k[0],a),R:e=>o.o[e]===b,I:()=>!!R&&o.o.slice(d(0,R[0]-1),h(o.l-1,R[1]+1)+1).includes(b),C:e=>x(o,e)-g,k:e=>y(o,e),O:()=>o.l,M:()=>f,T:H,H:()=>m,v:()=>a,W:()=>i,J:()=>s,_:M,B:()=>_,L:()=>a>T()?w=0:(p=w,w=0,p),$(e,t){const n=[e,t];return O.add(n),()=>{O.delete(n)}},A(e,t){let n,i,s=0;switch(e){case 1:{const e=t.filter((([e,t])=>o.o[e]!==t));if(!e.length)break;let n=0;if(0===f);else if(f>H()-1.5)n=L(o,e,!0);else if(2===S)n=L(o,e);else{const[t]=k;n=L(o,e.filter((([e])=>e<t)))}n&&W(n);let l=!1;e.forEach((([e,t])=>{((e,t,n)=>{const o=e.o[t]===b;return e.o[t]=n,e.h=h(t,e.h),o})(o,e,t)&&(l=!0)})),r&&l&&!f&&(e=>{const t=e.o.filter((e=>e!==b)),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,i=!0;break}case 2:a!==t&&(a=t,s=2);break;case 3:if(t[1]){const e=H()-f,[n,r]=C(o,t[0],!0);W(r?n:-h(n,e)),r&&(S=2),s=1}else C(o,t[0]);break;case 4:{const e=v(t,0,H()),n=p;if(p=0,e===f)break;const o=e-f,r=u(o);n&&r<u(n)+1||0!==S||(m=o<0?2:1),l&&(R=null,l=!1),i=r>a,f=e,s=5;break}case 5:s=8,0!==m&&(n=!0,s+=1),m=0,S=0,R=null;break;case 6:S=1;break;case 7:R=I(o,t,k[0],a),s=1}s&&(c=[],n&&g&&(w+=g,g=0,_++),O.forEach((([e,t])=>{s&e&&t(i)})))}}},A=k?t:n,P=(e,t,n)=>(()=>{let o=f()-50;return(...r)=>{const i=f();o+50<i&&(o=i,(o=>{if(0!==e.H()&&!o.ctrlKey&&(t?o.deltaX:o.deltaY)){const t=e.M();t>0&&t<e.T()&&n()}})(...r))}})(),V=(e,t,n,o)=>M(e)||o?-n:t.T()-n,X=(e,t)=>{let n,o,r,i=!1;const s=t?"scrollLeft":"scrollTop",l=t?"overflowX":"overflowY",c=(o,r)=>t&&T()?V(n,e,o,r):o,a=async(o,i)=>{if(!n)return;r&&r();const l=()=>v(o(),0,e.T()),a=()=>{let t;return[new Promise(((e,n)=>{t=e,g(r=n,150)})),e.$(2,(()=>{t&&t()}))]};if(i&&H()){for(;e.A(7,l()),e.I();){const[e,t]=a();try{await e}catch(e){return}finally{t()}}n.scrollTo({[t?"left":"top"]:c(l()),behavior:"smooth"})}else for(;;){const[t,o]=a();try{n[s]=c(l()),e.A(6),await t}catch(e){return}finally{o()}}};return{P(r){n=r;let l=!1,a=!1;const h=m((()=>{l?h():(a=!1,e.A(5))}),150),d=()=>{a&&(i=!0),e.A(4,c(r[s])),h()},u=P(e,t,h),f=()=>{l=!0,a=i=!1},_=()=>{l=!1,E()&&(a=!0)};r.addEventListener("scroll",d),r.addEventListener("wheel",u,{passive:!0}),r.addEventListener("touchstart",f,{passive:!0}),r.addEventListener("touchend",_,{passive:!0}),o=()=>{r.removeEventListener("scroll",d),r.removeEventListener("wheel",u),r.removeEventListener("touchstart",f),r.removeEventListener("touchend",_),h.t()}},V(){o&&o()},X(e){a((()=>e))},Y(t){t+=e.M(),a((()=>t))},j(t,{align:n,smooth:o}={}){if(t=v(t,0,e.O()-1),"nearest"===n){const o=e.C(t),r=e.M();if(o<r)n="start";else{if(!(o+e.k(t)>r+e.v()))return;n="end"}}a((()=>e.W()+("end"===n?e.C(t)+e.k(t)-e.v():"center"===n?e.C(t)+(e.k(t)-e.v())/2:e.C(t))),o)},D:e=>{if(n){if(i){i=!1;const e=n.style,t=e[l];e[l]="hidden",g((()=>{e[l]=t}))}n[s]+=c(e,!0)}}}},Y=(e,t)=>{let n,o;const r=t?"scrollX":"scrollY",i=t?"offsetLeft":"offsetTop",s=(o,r)=>t&&T()?V(n,e,o,r):o;return{P(l){n=l;const c=(e,n)=>{const o=n+(t&&T()?window.innerWidth-e[i]-e.offsetWidth:e[i]),r=e.offsetParent;return e!==document.body&&r?c(r,o):o},a=m((()=>{e.A(5)}),150),h=()=>{e.A(4,s(window[r])-c(l,0)),a()},d=P(e,t,a);window.addEventListener("scroll",h),window.addEventListener("wheel",d,{passive:!0}),o=()=>{window.removeEventListener("scroll",h),window.removeEventListener("wheel",d),a.t()}},V(){o&&o()},D:e=>{window.scrollBy(t?s(e,!0):0,t?0:e)}}},j="current",D=(e,t)=>{if(w(e))for(const n of e)D(n,t);else p(e)&&"boolean"!=typeof e&&t.push(e)},N=(e,t)=>{const n=e.key;return p(n)?n:"_"+t},U=e=>{const t=o();return t[j]||(t[j]=e())},F=e=>{const t=o(e);return A((()=>{t[j]=e}),[e]),t},G=(e,t)=>{let n;const o=t?"width":"height",r=new WeakMap,i=S((()=>new ResizeObserver((t=>{const i=[];for(const{target:s,contentRect:l}of t)if(s.offsetParent)if(s===n)e.A(2,l[o]);else{const e=r.get(s);p(e)&&i.push([e,l[o]])}i.length&&e.A(1,i)}))));return{N(e){i().observe(n=e)},U:(e,t)=>{const n=i();return r.set(e,t),n.observe(e),()=>{r.delete(e),n.unobserve(e)}},V(){i().disconnect()}}},q=(e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",r=new WeakMap,i=S((()=>new ResizeObserver((t=>{const o=[];for(const{target:e,contentRect:i}of t){if(!e.offsetParent)continue;const t=r.get(e);p(t)&&o.push([t,i[n]])}o.length&&e.A(1,o)})))),s=()=>{e.A(2,window[o])};return{N(){window.addEventListener("resize",s),s()},U:(e,t)=>{const n=i();return r.set(e,t),n.observe(e),()=>{r.delete(e),n.unobserve(e)}},V(){window.removeEventListener("resize",s),i().disconnect()}}},K=(e,t)=>{let n;const o="height",r="width",i=new WeakMap,s=new Set,l=new Set,c=new Map,a=(e,t)=>`${e}-${t}`,h=S((()=>new ResizeObserver((h=>{const u=new Set,f=new Set;for(const{target:s,contentRect:l}of h)if(s.offsetParent)if(s===n)e.A(2,l[o]),t.A(2,l[r]);else{const e=i.get(s);if(e){const[t,n]=e,i=a(t,n),s=c.get(i),h=[l[o],l[r]];let d,_;s?(s[0]!==h[0]&&(d=!0),s[1]!==h[1]&&(_=!0)):d=_=!0,d&&u.add(t),_&&f.add(n),(d||_)&&c.set(i,h)}}if(u.size){const t=[];u.forEach((e=>{let n=0;l.forEach((t=>{const o=c.get(a(e,t));o&&(n=d(n,o[0]))})),n&&t.push([e,n])})),e.A(1,t)}if(f.size){const e=[];f.forEach((t=>{let n=0;s.forEach((e=>{const o=c.get(a(e,t));o&&(n=d(n,o[1]))})),n&&e.push([t,n])})),t.A(1,e)}}))));return{N(e){h().observe(n=e)},U(e,t,n){const o=h();return i.set(e,[t,n]),s.add(t),l.add(n),o.observe(e),()=>{i.delete(e),o.unobserve(e)}},V(){h().disconnect()}}},Q=/*#__PURE__*/r((({F:t,G:n,q:r,K:s,Z:l,ee:c,te:a,ne:h})=>{const d=o(null);A((()=>n(d[j],r)),[r]);const u=i((()=>{const e={margin:0,padding:0,position:l&&h?void 0:"absolute",[a?"height":"width"]:"100%",[a?"top":"left"]:0,[a?T()?"right":"left":"top"]:s,visibility:!l||h?"visible":"hidden"};return a&&(e.display="flex"),e}),[s,l,h]);return e(c,"string"==typeof c?{ref:d,style:u,children:t}:{ref:d,style:u,index:r,children:t})})),Z=e=>s(e.p,void 0,e.p)[1],ee=(e,t)=>i((()=>{if("function"==typeof e)return[e,t||0];const n=(e=>{const t=[];return D(e,t),t})(e);return[e=>n[e],n.length]}),[e,t]),te=/*#__PURE__*/l((({children:t,count:r,overscan:i=4,itemSize:s,shift:l,horizontal:h,reverse:u,cache:f,startMargin:_,endMargin:w,ssrCount:g,as:v="div",item:p="div",scrollRef:m,onScroll:S,onScrollEnd:b,onRangeChange:z},y)=>{const[x,R]=ee(t,r),I=o(null),C=o(!!g),k=F(S),O=F(b),[M,T,E,H]=U((()=>{const e=!!h,t=$(R,s,g,f,!s,_,w);return[t,G(t,e),X(t,e),e]}));R!==M.O()&&M.A(3,[R,l]);const L=Z(M),[P,V]=M.S(),Y=M.H(),D=M.B(),q=M._(),K=(e=>d(e._(),e.v()-e.W()-e.J()))(M),te=u?d(0,K-q):0,ne=[];A((()=>{C[j]=!1;const e=M.$(3,(e=>{e?a(L):L()})),t=M.$(4,(()=>{k[j]&&k[j](M.M())})),n=M.$(8,(()=>{O[j]&&O[j]()})),o=e=>{T.N(e),E.P(e)};return m?Promise.resolve().then((()=>o(m[j]))):o(I[j].parentElement),()=>{e(),t(),n(),T.V(),E.V()}}),[]),A((()=>{const e=M.L();e&&E.D(e)}),[D]),n((()=>{z&&z(P,V)}),[P,V]),c(y,(()=>({get cache(){return M.m()},get scrollOffset(){return M.M()},get scrollSize(){return W(M)},get viewportSize(){return M.v()},scrollToIndex:E.j,scrollTo:E.X,scrollBy:E.Y})),[]);for(let t=J(P,i,Y),n=B(V,i,Y,R);t<=n;t++){const n=x(t);ne.push(e(Q,{G:T.U,q:t,K:M.C(t)+te,Z:M.R(t),ee:p,F:n,te:H,ne:C[j]},N(n,t)))}return e(v,{ref:I,style:{contain:"content",overflowAnchor:"none",position:"relative",visibility:"hidden",width:H?q:"100%",height:H?"100%":q,[H?"minWidth":"minHeight"]:K,pointerEvents:0!==Y?"none":"auto"},children:ne})})),ne=/*#__PURE__*/l((({children:t,count:n,overscan:o,itemSize:r,shift:i,horizontal:s,reverse:l,cache:c,ssrCount:a,item:h,onScroll:d,onScrollEnd:u,onRangeChange:f,style:_,...w},g)=>e("div",{...w,style:{display:s?"inline-block":"block",[s?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%",..._},children:e(te,{ref:g,count:n,overscan:o,itemSize:r,shift:i,horizontal:s,reverse:l,cache:c,ssrCount:a,item:h,onScroll:d,onScrollEnd:u,onRangeChange:f,children:t})}))),oe=/*#__PURE__*/l((({children:t,count:r,overscan:i=4,itemSize:s,shift:l,horizontal:h,cache:d,ssrCount:u,as:f="div",item:_="div",onScrollEnd:w,onRangeChange:g},v)=>{const[p,m]=ee(t,r),S=o(null),b=F(w),z=o(!!u),[y,x,R,I]=U((()=>{const e=!!h,t=$(m,s,u,d,!s);return[t,q(t,e),Y(t,e),e]}));m!==y.O()&&y.A(3,[m,l]);const C=Z(y),[k,O]=y.S(),M=y.H(),T=y.B(),E=y._(),H=[];A((()=>{z[j]=!1;const e=y.$(3,(e=>{e?a(C):C()})),t=y.$(8,(()=>{b[j]&&b[j]()}));return x.N(),R.P(S[j]),()=>{e(),t(),x.V(),R.V()}}),[]),A((()=>{const e=y.L();e&&R.D(e)}),[T]),n((()=>{g&&g(k,O)}),[k,O]),c(v,(()=>({get cache(){return y.m()}})),[]);for(let t=J(k,i,M),n=B(O,i,M,m);t<=n;t++){const n=p(t);H.push(e(Q,{G:x.U,q:t,K:y.C(t),Z:y.R(t),ee:_,F:n,te:I,ne:z[j]},N(n,t)))}return e(f,{ref:S,style:{contain:"content",position:"relative",visibility:"hidden",width:I?E:"100%",height:I?"100%":E,pointerEvents:0!==M?"none":"auto"},children:H})})),re=/*#__PURE__*/l((({children:t,attrs:n,width:o,height:r,scrolling:s},l)=>e("div",{ref:l,...n,children:e("div",{style:i((()=>({contain:"content",position:"relative",visibility:"hidden",width:null!=o?o:"100%",height:null!=r?r:"100%",pointerEvents:s?"none":"auto"})),[o,r,s]),children:t})}))),ie=(e,t)=>`${e}-${t}`,se=/*#__PURE__*/r((({F:t,G:n,oe:r,re:s,ie:l,se:c,le:a,ce:h,Z:d,ee:u})=>{const f=o(null);return A((()=>n.U(f[j],r,s)),[s,r]),e(u,{ref:f,style:i((()=>({display:"grid",margin:0,padding:0,position:"absolute",top:l,[T()?"right":"left"]:c,visibility:d?"hidden":"visible",minHeight:a,minWidth:h})),[l,c,h,a,d]),children:t})})),le=/*#__PURE__*/l((({children:t,row:n,col:r,cellHeight:s=40,cellWidth:l=100,overscan:h=2,initialRowCount:d,initialColCount:u,components:{Root:f=re,Cell:w="div"}={},...g},v)=>{const[p,m,S,b,z]=U((()=>{const e=$(n,s,d),t=$(r,l,u);return[e,t,K(e,t),X(e,!1),X(t,!0)]}));n!==p.O()&&p.A(3,[n]),r!==m.O()&&m.A(3,[r]);const y=Z(p),x=Z(m),[R,I]=p.S(),[C,k]=m.S(),O=p.H(),M=m.H(),T=p.B(),E=m.B(),H=W(p),L=W(m),P=o(null);A((()=>{const e=P[j],t=p.$(3,(e=>{e?a(y):y()})),n=m.$(3,(e=>{e?a(x):x()}));return S.N(e),b.P(e),z.P(e),()=>{t(),n(),S.V(),b.V(),z.V()}}),[]),A((()=>{const e=p.L();e&&b.D(e)}),[T]),A((()=>{const e=m.L();e&&z.D(e)}),[E]),c(v,(()=>({get scrollOffset(){return[m.M(),p.M()]},get scrollSize(){return[W(m),W(p)]},get viewportSize(){return[m.v(),p.v()]},scrollToIndex(e,t){z.j(e),b.j(t)},scrollTo(e,t){z.X(e),b.X(t)},scrollBy(e,t){z.Y(e),b.Y(t)}})),[]);const V=i((()=>{const e=new Map;return(n,o)=>{let r=e.get(ie(n,o));return r||e.set(ie(n,o),r=t({rowIndex:n,colIndex:o})),r}}),[t]),Y=J(R,h,O),D=B(I,h,O,n),N=J(C,h,M),F=B(k,h,M,r),G=[];for(let t=Y;t<=D;t++)for(let n=N;n<=F;n++)G.push(e(se,{G:S,oe:t,re:n,ie:p.C(t),se:m.C(n),le:p.k(t),ce:m.k(n),Z:p.R(t)||m.R(n),ee:w,F:V(t,n)},ie(t,n)));return e(f,{ref:P,width:L,height:H,scrolling:0!==O||0!==M,attrs:i((()=>({...g,style:{overflow:"auto",overflowAnchor:"none",contain:"strict",width:"100%",height:"100%",...g.style}})),_(g)),children:G})}));export{ne as VList,te as Virtualizer,oe as WindowVirtualizer,le as experimental_VGrid};
2
+ import{jsx as e}from"react/jsx-runtime";import{useLayoutEffect as t,useEffect as n,useRef as o,memo as r,useMemo as i,useReducer as s,forwardRef as l,useImperativeHandle as c}from"react";import{flushSync as a}from"react-dom";const h=Math.min,d=Math.max,f=Math.abs,u=Date.now,_=Object.values,w=Array.isArray,g=setTimeout,v=(e,t,n)=>h(n,d(t,e)),p=e=>null!=e,m=(e,t)=>{let n;const o=()=>{p(n)&&clearTimeout(n)},r=()=>{o(),n=g((()=>{n=null,e()}),t)};return r.t=o,r},S=e=>{let t,n;return(...o)=>(t||(t=!0,n=e(...o)),n)},b=-1,z=(e,t,n)=>{const o=n?"unshift":"push";for(let n=0;n<t;n++)e[o](b);return e},y=(e,t)=>{const n=e.o[t];return n===b?e.i:n},x=(e,t)=>{if(!e.l)return 0;if(e.h>=t)return e.u[t];e.h<0&&(e.u[0]=0,e.h=0);let n=e.h,o=e.u[n];for(;n<t;)o+=y(e,n),e.u[++n]=o;return e.h=t,o},R=(e,t,n)=>{let o=x(e,n);for(;n>=0&&n<e.l;)if(o<=t){const r=y(e,n);if(o+r>t)break;o+=r,n++}else o-=y(e,--n);return v(n,0,e.l-1)},I=(e,t,n,o)=>{const r=R(e,t,h(n,e.l-1));return[r,R(e,t+o,r)]},C=(e,t,n)=>{const o=t-e.l,r=o>0;let i;return r?(i=e.i*o,z(e.o,o,n),z(e.u,o)):(i=(n?e.o.splice(0,-o):e.o.splice(o)).reduce(((t,n)=>t+(n===b?e.i:n)),0),e.u.splice(o)),e.h=n?-1:h(t-1,e.h),e.l=t,[i,r]},k="undefined"!=typeof window,O=()=>document.documentElement,M=/*#__PURE__*/S((e=>{const t="scrollLeft",n=e[t];e[t]=1;const o=e[t]<1;return e[t]=n,o})),T=/*#__PURE__*/S((()=>{return!!k&&"rtl"===(e=O(),getComputedStyle(e)).direction;var e})),E=/*#__PURE__*/S((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),H=/*#__PURE__*/S((()=>"scrollBehavior"in O().style)),W=e=>d(e._(),e.v()),J=(e,t,n)=>d(e-(1===n?1:d(1,t)),0),B=(e,t,n,o)=>h(e+(2===n?1:d(1,t)),o-1),L=(e,t,n)=>t.reduce(((t,[o,r])=>{const i=r-y(e,o);return(!n||i>0)&&(t+=i),t}),0),$=(e,t=40,n=0,o=((e,t)=>({i:t,l:e,h:-1,o:z([],e),u:z([],e)}))(e,t),r,i=0,s=0)=>{let l=!!n,c=[],a=0,u=0,_=0,w=0,g=0,p=0,m=0,S=0,R=l?[0,d(n-1,0)]:null,k=[0,0];const O=new Set,M=()=>(e=>e.l?x(e,e.l-1)+y(e,e.l-1):0)(o),T=()=>M()+i+s,H=()=>d(0,T()-a),W=e=>{E()&&0!==m?g+=e:(w+=e,_++)};return{p:()=>c,m:()=>JSON.parse(JSON.stringify(o)),S:()=>R?[h(k[0],R[0]),d(k[1],R[1])]:p?k:k=I(o,u-i+g+w,k[0],a),R:e=>o.o[e]===b,I:()=>!!R&&o.o.slice(d(0,R[0]-1),h(o.l-1,R[1]+1)+1).includes(b),C:e=>x(o,e)-g,k:e=>y(o,e),O:()=>o.l,M:()=>u,T:H,H:()=>m,v:()=>a,W:()=>i,J:()=>s,_:M,B:()=>_,L:()=>a>T()?w=0:(p=w,w=0,p),$(e,t){const n=[e,t];return O.add(n),()=>{O.delete(n)}},A(e,t){let n,i,s=0;switch(e){case 1:{const e=t.filter((([e,t])=>o.o[e]!==t));if(!e.length)break;let n=0;if(0===u);else if(u>H()-1.5)n=L(o,e,!0);else if(2===S)n=L(o,e);else{const[t]=k;n=L(o,e.filter((([e])=>e<t)))}n&&W(n);let l=!1;e.forEach((([e,t])=>{((e,t,n)=>{const o=e.o[t]===b;return e.o[t]=n,e.h=h(t,e.h),o})(o,e,t)&&(l=!0)})),r&&l&&!u&&(e=>{const t=e.o.filter((e=>e!==b)),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,i=!0;break}case 2:a!==t&&(a=t,s=2);break;case 3:if(t[1]){const e=H()-u,[n,r]=C(o,t[0],!0);W(r?n:-h(n,e)),r&&(S=2),s=1}else C(o,t[0]);break;case 4:{const e=v(t,0,H()),n=p;if(p=0,e===u)break;const o=e-u,r=f(o);n&&r<f(n)+1||0!==S||(m=o<0?2:1),l&&(R=null,l=!1),i=r>a,u=e,s=5;break}case 5:s=8,0!==m&&(n=!0,s+=1),m=0,S=0,R=null;break;case 6:S=1;break;case 7:R=I(o,t,k[0],a),s=1}s&&(c=[],n&&g&&(w+=g,g=0,_++),O.forEach((([e,t])=>{s&e&&t(i)})))}}},A=k?t:n,P=(e,t,n)=>(()=>{let o=u()-50;return(...r)=>{const i=u();o+50<i&&(o=i,(o=>{if(0!==e.H()&&!o.ctrlKey&&(t?o.deltaX:o.deltaY)){const t=e.M();t>0&&t<e.T()&&n()}})(...r))}})(),V=(e,t,n,o)=>M(e)||o?-n:t.T()-n,X=(e,t)=>{let n,o,r,i=!1;const s=t?"scrollLeft":"scrollTop",l=t?"overflowX":"overflowY",c=(o,r)=>t&&T()?V(n,e,o,r):o,a=async(o,i)=>{if(!n)return;r&&r();const l=()=>v(o(),0,e.T()),a=()=>{let t;return[new Promise(((e,n)=>{t=e,g(r=n,150)})),e.$(2,(()=>{t&&t()}))]};if(i&&H()){for(;e.A(7,l()),e.I();){const[e,t]=a();try{await e}catch(e){return}finally{t()}}n.scrollTo({[t?"left":"top"]:c(l()),behavior:"smooth"})}else for(;;){const[t,o]=a();try{n[s]=c(l()),e.A(6),await t}catch(e){return}finally{o()}}};return{P(r){n=r;let l=!1,a=!1;const h=m((()=>{l?h():(a=!1,e.A(5))}),150),d=()=>{a&&(i=!0),e.A(4,c(r[s])),h()},f=P(e,t,h),u=()=>{l=!0,a=i=!1},_=()=>{l=!1,E()&&(a=!0)};r.addEventListener("scroll",d),r.addEventListener("wheel",f,{passive:!0}),r.addEventListener("touchstart",u,{passive:!0}),r.addEventListener("touchend",_,{passive:!0}),o=()=>{r.removeEventListener("scroll",d),r.removeEventListener("wheel",f),r.removeEventListener("touchstart",u),r.removeEventListener("touchend",_),h.t()}},V(){o&&o()},X(e){a((()=>e))},Y(t){t+=e.M(),a((()=>t))},j(t,{align:n,smooth:o}={}){if(t=v(t,0,e.O()-1),"nearest"===n){const o=e.C(t),r=e.M();if(o<r)n="start";else{if(!(o+e.k(t)>r+e.v()))return;n="end"}}a((()=>e.W()+("end"===n?e.C(t)+e.k(t)-e.v():"center"===n?e.C(t)+(e.k(t)-e.v())/2:e.C(t))),o)},D:e=>{if(n){if(i){i=!1;const e=n.style,t=e[l];e[l]="hidden",g((()=>{e[l]=t}))}n[s]+=c(e,!0)}}}},Y=(e,t)=>{let n,o;const r=t?"scrollX":"scrollY",i=t?"offsetLeft":"offsetTop",s=(o,r)=>t&&T()?V(n,e,o,r):o;return{P(l){n=l;const c=(e,n)=>{const o=n+(t&&T()?window.innerWidth-e[i]-e.offsetWidth:e[i]),r=e.offsetParent;return e!==document.body&&r?c(r,o):o},a=m((()=>{e.A(5)}),150),h=()=>{e.A(4,s(window[r])-c(l,0)),a()},d=P(e,t,a);window.addEventListener("scroll",h),window.addEventListener("wheel",d,{passive:!0}),o=()=>{window.removeEventListener("scroll",h),window.removeEventListener("wheel",d),a.t()}},V(){o&&o()},D:e=>{window.scrollBy(t?s(e,!0):0,t?0:e)}}},j="current",D=(e,t)=>{if(w(e))for(const n of e)D(n,t);else p(e)&&"boolean"!=typeof e&&t.push(e)},N=(e,t)=>{const n=e.key;return p(n)?n:"_"+t},U=e=>{const t=o();return t[j]||(t[j]=e())},F=e=>{const t=o(e);return A((()=>{t[j]=e}),[e]),t},G=(e,t)=>{let n;const o=t?"width":"height",r=new WeakMap,i=S((()=>new ResizeObserver((t=>{const i=[];for(const{target:s,contentRect:l}of t)if(s.offsetParent)if(s===n)e.A(2,l[o]);else{const e=r.get(s);p(e)&&i.push([e,l[o]])}i.length&&e.A(1,i)}))));return{N(e){i().observe(n=e)},U:(e,t)=>{const n=i();return r.set(e,t),n.observe(e),()=>{r.delete(e),n.unobserve(e)}},V(){i().disconnect()}}},q=(e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",r=new WeakMap,i=S((()=>new ResizeObserver((t=>{const o=[];for(const{target:e,contentRect:i}of t){if(!e.offsetParent)continue;const t=r.get(e);p(t)&&o.push([t,i[n]])}o.length&&e.A(1,o)})))),s=()=>{e.A(2,window[o])};return{N(){window.addEventListener("resize",s),s()},U:(e,t)=>{const n=i();return r.set(e,t),n.observe(e),()=>{r.delete(e),n.unobserve(e)}},V(){window.removeEventListener("resize",s),i().disconnect()}}},K=(e,t)=>{let n;const o="height",r="width",i=new WeakMap,s=new Set,l=new Set,c=new Map,a=(e,t)=>`${e}-${t}`,h=S((()=>new ResizeObserver((h=>{const f=new Set,u=new Set;for(const{target:s,contentRect:l}of h)if(s.offsetParent)if(s===n)e.A(2,l[o]),t.A(2,l[r]);else{const e=i.get(s);if(e){const[t,n]=e,i=a(t,n),s=c.get(i),h=[l[o],l[r]];let d,_;s?(s[0]!==h[0]&&(d=!0),s[1]!==h[1]&&(_=!0)):d=_=!0,d&&f.add(t),_&&u.add(n),(d||_)&&c.set(i,h)}}if(f.size){const t=[];f.forEach((e=>{let n=0;l.forEach((t=>{const o=c.get(a(e,t));o&&(n=d(n,o[0]))})),n&&t.push([e,n])})),e.A(1,t)}if(u.size){const e=[];u.forEach((t=>{let n=0;s.forEach((e=>{const o=c.get(a(e,t));o&&(n=d(n,o[1]))})),n&&e.push([t,n])})),t.A(1,e)}}))));return{N(e){h().observe(n=e)},U(e,t,n){const o=h();return i.set(e,[t,n]),s.add(t),l.add(n),o.observe(e),()=>{i.delete(e),o.unobserve(e)}},V(){h().disconnect()}}},Q=/*#__PURE__*/r((({F:t,G:n,q:r,K:s,Z:l,ee:c,te:a,ne:h})=>{const d=o(null);A((()=>n(d[j],r)),[r]);const f=i((()=>{const e={margin:0,padding:0,position:l&&h?void 0:"absolute",[a?"height":"width"]:"100%",[a?"top":"left"]:0,[a?T()?"right":"left":"top"]:s,visibility:!l||h?"visible":"hidden"};return a&&(e.display="flex"),e}),[s,l,h]);return e(c,"string"==typeof c?{ref:d,style:f,children:t}:{ref:d,style:f,index:r,children:t})})),Z=e=>s(e.p,void 0,e.p)[1],ee=(e,t)=>i((()=>{if("function"==typeof e)return[e,t||0];const n=(e=>{const t=[];return D(e,t),t})(e);return[e=>n[e],n.length]}),[e,t]),te=/*#__PURE__*/l((({children:t,count:r,overscan:i=4,itemSize:s,shift:l,horizontal:h,reverse:f,cache:u,startMargin:_,endMargin:w,ssrCount:g,as:v="div",item:p="div",scrollRef:m,onScroll:S,onScrollEnd:b,onRangeChange:z},y)=>{const[x,R]=ee(t,r),I=o(null),C=o(!!g),k=F(S),O=F(b),[M,T,E,H]=U((()=>{const e=!!h,t=$(R,s,g,u,!s,_,w);return[t,G(t,e),X(t,e),e]}));R!==M.O()&&M.A(3,[R,l]);const L=Z(M),[P,V]=M.S(),Y=M.H(),D=M.B(),q=M._(),K=(e=>d(e._(),e.v()-e.W()-e.J()))(M),te=f?d(0,K-q):0,ne=[];A((()=>{C[j]=!1;const e=M.$(3,(e=>{e?a(L):L()})),t=M.$(4,(()=>{k[j]&&k[j](M.M())})),n=M.$(8,(()=>{O[j]&&O[j]()})),o=e=>{T.N(e),E.P(e)};return m?Promise.resolve().then((()=>o(m[j]))):o(I[j].parentElement),()=>{e(),t(),n(),T.V(),E.V()}}),[]),A((()=>{const e=M.L();e&&E.D(e)}),[D]),n((()=>{z&&z(P,V)}),[P,V]),c(y,(()=>({get cache(){return M.m()},get scrollOffset(){return M.M()},get scrollSize(){return W(M)},get viewportSize(){return M.v()},scrollToIndex:E.j,scrollTo:E.X,scrollBy:E.Y})),[]);for(let t=J(P,i,Y),n=B(V,i,Y,R);t<=n;t++){const n=x(t);ne.push(e(Q,{G:T.U,q:t,K:M.C(t)+te,Z:M.R(t),ee:p,F:n,te:H,ne:C[j]},N(n,t)))}return e(v,{ref:I,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:H?q:"100%",height:H?"100%":q,[H?"minWidth":"minHeight"]:K,pointerEvents:0!==Y?"none":"auto"},children:ne})})),ne=/*#__PURE__*/l((({children:t,count:n,overscan:o,itemSize:r,shift:i,horizontal:s,reverse:l,cache:c,ssrCount:a,item:h,onScroll:d,onScrollEnd:f,onRangeChange:u,style:_,...w},g)=>e("div",{...w,style:{display:s?"inline-block":"block",[s?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%",..._},children:e(te,{ref:g,count:n,overscan:o,itemSize:r,shift:i,horizontal:s,reverse:l,cache:c,ssrCount:a,item:h,onScroll:d,onScrollEnd:f,onRangeChange:u,children:t})}))),oe=/*#__PURE__*/l((({children:t,count:r,overscan:i=4,itemSize:s,shift:l,horizontal:h,cache:d,ssrCount:f,as:u="div",item:_="div",onScrollEnd:w,onRangeChange:g},v)=>{const[p,m]=ee(t,r),S=o(null),b=F(w),z=o(!!f),[y,x,R,I]=U((()=>{const e=!!h,t=$(m,s,f,d,!s);return[t,q(t,e),Y(t,e),e]}));m!==y.O()&&y.A(3,[m,l]);const C=Z(y),[k,O]=y.S(),M=y.H(),T=y.B(),E=y._(),H=[];A((()=>{z[j]=!1;const e=y.$(3,(e=>{e?a(C):C()})),t=y.$(8,(()=>{b[j]&&b[j]()}));return x.N(),R.P(S[j]),()=>{e(),t(),x.V(),R.V()}}),[]),A((()=>{const e=y.L();e&&R.D(e)}),[T]),n((()=>{g&&g(k,O)}),[k,O]),c(v,(()=>({get cache(){return y.m()}})),[]);for(let t=J(k,i,M),n=B(O,i,M,m);t<=n;t++){const n=p(t);H.push(e(Q,{G:x.U,q:t,K:y.C(t),Z:y.R(t),ee:_,F:n,te:I,ne:z[j]},N(n,t)))}return e(u,{ref:S,style:{flex:"none",position:"relative",visibility:"hidden",width:I?E:"100%",height:I?"100%":E,pointerEvents:0!==M?"none":"auto"},children:H})})),re=/*#__PURE__*/l((({children:t,attrs:n,width:o,height:r,scrolling:s},l)=>e("div",{ref:l,...n,children:e("div",{style:i((()=>({position:"relative",visibility:"hidden",width:null!=o?o:"100%",height:null!=r?r:"100%",pointerEvents:s?"none":"auto"})),[o,r,s]),children:t})}))),ie=(e,t)=>`${e}-${t}`,se=/*#__PURE__*/r((({F:t,G:n,oe:r,re:s,ie:l,se:c,le:a,ce:h,Z:d,ee:f})=>{const u=o(null);return A((()=>n.U(u[j],r,s)),[s,r]),e(f,{ref:u,style:i((()=>({display:"grid",margin:0,padding:0,position:"absolute",top:l,[T()?"right":"left"]:c,visibility:d?"hidden":"visible",minHeight:a,minWidth:h})),[l,c,h,a,d]),children:t})})),le=/*#__PURE__*/l((({children:t,row:n,col:r,cellHeight:s=40,cellWidth:l=100,overscan:h=2,initialRowCount:d,initialColCount:f,components:{Root:u=re,Cell:w="div"}={},...g},v)=>{const[p,m,S,b,z]=U((()=>{const e=$(n,s,d),t=$(r,l,f);return[e,t,K(e,t),X(e,!1),X(t,!0)]}));n!==p.O()&&p.A(3,[n]),r!==m.O()&&m.A(3,[r]);const y=Z(p),x=Z(m),[R,I]=p.S(),[C,k]=m.S(),O=p.H(),M=m.H(),T=p.B(),E=m.B(),H=W(p),L=W(m),P=o(null);A((()=>{const e=P[j],t=p.$(3,(e=>{e?a(y):y()})),n=m.$(3,(e=>{e?a(x):x()}));return S.N(e),b.P(e),z.P(e),()=>{t(),n(),S.V(),b.V(),z.V()}}),[]),A((()=>{const e=p.L();e&&b.D(e)}),[T]),A((()=>{const e=m.L();e&&z.D(e)}),[E]),c(v,(()=>({get scrollOffset(){return[m.M(),p.M()]},get scrollSize(){return[W(m),W(p)]},get viewportSize(){return[m.v(),p.v()]},scrollToIndex(e,t){z.j(e),b.j(t)},scrollTo(e,t){z.X(e),b.X(t)},scrollBy(e,t){z.Y(e),b.Y(t)}})),[]);const V=i((()=>{const e=new Map;return(n,o)=>{let r=e.get(ie(n,o));return r||e.set(ie(n,o),r=t({rowIndex:n,colIndex:o})),r}}),[t]),Y=J(R,h,O),D=B(I,h,O,n),N=J(C,h,M),F=B(k,h,M,r),G=[];for(let t=Y;t<=D;t++)for(let n=N;n<=F;n++)G.push(e(se,{G:S,oe:t,re:n,ie:p.C(t),se:m.C(n),le:p.k(t),ce:m.k(n),Z:p.R(t)||m.R(n),ee:w,F:V(t,n)},ie(t,n)));return e(u,{ref:P,width:L,height:H,scrolling:0!==O||0!==M,attrs:i((()=>({...g,style:{overflow:"auto",overflowAnchor:"none",flex:"none",contain:"strict",width:"100%",height:"100%",...g.style}})),_(g)),children:G})}));export{ne as VList,te as Virtualizer,oe as WindowVirtualizer,le as experimental_VGrid};
3
3
  //# sourceMappingURL=index.mjs.map