virtua 0.14.0 → 0.15.0

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