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