virtua 0.37.2 → 0.37.4

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