virtua 0.4.0 → 0.4.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 r,useRef as n,useState as o,forwardRef as l,useMemo as i,memo as s,Children as c,useImperativeHandle as u}from"react";import{flushSync as a}from"react-dom";const _=Math.min,d=Math.max,h=Math.abs,f=Date.now,g=setTimeout,m=e=>null!=e,w=(e,t)=>Array.from({length:e},((e,r)=>t(r))),v=e=>{let t,r;return(...n)=>(t||(t=!0,r=e(...n)),r)},S=-1,p=(e,t)=>{const r=e.t[t];return r===S?e.o:r},z=(e,t,r)=>{if(!e.l)return 0;if(e.i>=t)return r?e.u[t]+p(e,t):e.u[t];let n=e.i,o=e.u[n];for(;n<=t&&(e.u[n]=o,n!==t||r);)o+=p(e,n),n++;return e.i=t,o},b=(e,t)=>z(e,t),I=(e,t,r)=>{let n=0;if(r>=0)for(;t<e.l-1;){const o=p(e,t++);if((n+=o)>=r){n-o/2>=r&&t--;break}}else for(;t>0;){const o=p(e,--t);if((n-=o)<=r){n+o/2<r&&t++;break}}return _(d(t,0),e.l-1)},x=(e,t,r,n)=>I(e,r,t-n),y=(e,t,r)=>({o:r?r.o:t,l:e,i:r?_(r.i,e-1):0,t:w(e,(e=>{const t=r&&r.t[e];return m(t)?t:S})),u:w(e,(e=>{if(0===e)return 0;const t=r&&r.u[e];return m(t)?t:S}))}),R=e=>e.reduce(((e,[t])=>e+t),0),T=(e,t)=>t.map((([t,r])=>[r-p(e,t),t])),k=(e,t,r=0,n,o,l)=>{const i=!t,s=t||40;let c,u,a=s*d(r-1,0),f=0,w=0,v=y(e,s),k=0,M=!1,C=[0,r];const O=new Set,H=()=>(e=>z(e,e.l-1,!0))(v),D=e=>{const t=k;return k=e,0!==k&&(0===t&&(1===k||2===k)||void 0)};return{_(){const[e,t]=C,r=b(v,e),n=x(v,f,e,r),o=I(v,n,a);return e===n&&t===o?C:C=[n,o]},h:e=>v.t[e]===S,g:e=>((e,t,r)=>{for(let n=t;n<=r;n++)if(e.t[n]===S)return!0;return!1})(v,d(0,e-2),_(v.l-1,e+2)),m(e){const t=b(v,e);return n?t+d(0,a-H()):t},v:e=>p(v,e),S:()=>f,p:()=>a,I:()=>H(),R:()=>d(H(),a),T:()=>w,k(){const e=c;return c=void 0,e},M:e=>x(v,e,0,0),C:()=>(u&&u[1](),new Promise(((e,t)=>{let r=!1;const n=()=>{r||(r=!0,e(),u=void 0)};u=[n,t],g(n,250)}))),O:e=>(O.add(e),()=>{O.delete(e)}),H(e,t){let r,n,s=!1;switch(e){case 1:{const e=t.filter((([e,t])=>v.t[e]!==t));if(!e.length)break;let n=0;if(2===k)n=R(T(v,e));else if(3===k){const t=T(v,e),[r]=C;0===f||(n=H()<=f+a?R(t):R(t.filter((([,e])=>e<r))))}n&&(c=n,w++);let o=!1;e.forEach((([e,t])=>{((e,t,r)=>{const n=e.t[t]===S;return e.t[t]=r,e.i=_(t,e.i),n})(v,e,t)&&(o=!0)})),i&&o&&!f&&(e=>{const t=e.t.filter((e=>e!==S)),r=t[0];e.o=t.every((e=>e===r))?r:(e=>{const t=[...e].sort(((e,t)=>e-t)),r=e.length/2|0;return t.length%2==0?(t[r-1]+t[r])/2:t[r]})(t)})(v),M=r=s=!0;break}case 2:s=a!==t,a=t;break;case 3:case 4:if(f===t)break;if(3===e){const e=(()=>{const e=M;return M=!1,e})();0!==k&&e||3===k||(n=D(f>t?2:1)),r=h(f-t)>a}f=t,s=!0;break;case 5:n=D(t?3:0)}s&&(O.forEach((e=>{e(r)})),3===e&&l(f)),u&&1===e&&u[0](),m(n)&&o(n)},D:()=>k,W(e){v.l!==e&&(v=y(e,s,v))}}},M="undefined"!=typeof window?t:r,C="current",O=e=>{const t=n(e);return M((()=>{t[C]=e}),[e]),t},H=(e,r,n)=>{const[l,i]=o(r),s=O(r);if(t((()=>{const t=()=>{i((()=>s[C]()))};return e.O((e=>{e?a(t):t()}))}),[]),n){const e=r();l!==e&&i(e)}return l},D=v((e=>{const t="scrollLeft",r=e[t];e[t]=1;const n=e[t]<1;return e[t]=r,n})),W=(e,t,r)=>{let n;const o=t?"scrollLeft":"scrollTop",l=()=>n?t?n.scrollWidth:n.scrollHeight:0,i=(t,r)=>D(n)||r?-t:e.I()-e.p()-t,s=(e,l)=>{n&&(t&&r&&(e=i(e,l)),l?n[o]+=e:n[o]=e)},c=async(t,r)=>{const n=()=>{let t=r();const n=l(),o=e.p();return n-(t+o)<=0&&(t=n-o),t};for(;e.H(4,n()),e.g(t);)try{await e.C()}catch(e){return}s(n()),e.H(5,!0)};return{$(l){n=l;const s=()=>{let n=l[o];t&&r&&(n=i(n)),e.H(3,n)},c=(()=>{let t;const r=()=>{m(t)&&clearTimeout(t)},n=()=>{r(),t=g((()=>{t=null,s(),e.H(5,!1)}),150)};return n.J=r,n})(),u=()=>{s(),c()},a=(()=>{let r=f()-50;return(...n)=>{const o=f();r+50<o&&(r=o,(r=>{if(0!==e.D()&&!r.ctrlKey&&(t?r.deltaX:r.deltaY)){const t=e.S();t>0&&t<e.I()-e.p()&&c()}})(...n))}})();return l.addEventListener("scroll",u),l.addEventListener("wheel",a,{passive:!0}),()=>{l.removeEventListener("scroll",u),l.removeEventListener("wheel",a),c.J()}},L:l,A(t){t=d(t,0),c(e.M(t),(()=>t))},B(t,r){t=d(_(t,r-1),0),c(t,(()=>e.m(t)))},F:e=>{s(e,!0)}}},$=e=>{const t=n();return t[C]||(t[C]=e())},E=(e,t)=>{let r;const n=t?"width":"height",o=new WeakMap,l=v((()=>new ResizeObserver((t=>{const l=[];for(const{target:i,contentRect:s}of t)if(i===r)e.H(2,s[n]);else{const e=o.get(i);m(e)&&l.push([e,s[n]])}l.length&&e.H(1,l)}))));return{U(e){r=e;const t=l();return t.observe(e),()=>{t.disconnect()}},j(e,t){const r=l();return o.set(e,t),r.observe(e),()=>{o.delete(e),r.unobserve(e)}}}},J=(e,t)=>{let r;const n="height",o="width",l=new WeakMap,i=new Set,s=new Set,c=new Map,u=(e,t)=>`${e}-${t}`,a=v((()=>new ResizeObserver((a=>{const _=new Set,h=new Set;for(const{target:i,contentRect:s}of a)if(i===r)e.H(2,s[n]),t.H(2,s[o]);else{const e=l.get(i);if(e){const[t,r]=e,l=u(t,r),i=c.get(l),a=[s[n],s[o]];let d,f;i?(i[0]!==a[0]&&(d=!0),i[1]!==a[1]&&(f=!0)):d=f=!0,d&&_.add(t),f&&h.add(r),(d||f)&&c.set(l,a)}}if(_.size){const t=[];_.forEach((e=>{let r=0;s.forEach((t=>{const n=c.get(u(e,t));n&&(r=d(r,n[0]))})),r&&t.push([e,r])})),e.H(1,t)}if(h.size){const e=[];h.forEach((t=>{let r=0;i.forEach((e=>{const n=c.get(u(e,t));n&&(r=d(r,n[1]))})),r&&e.push([t,r])})),t.H(1,e)}}))));return{U(e){r=e;const t=a();return t.observe(e),()=>{t.disconnect()}},j(e,t,r){const n=a();return l.set(e,[t,r]),i.add(t),s.add(r),n.observe(e),()=>{l.delete(e),n.unobserve(e)}}}},L=/*#__PURE__*/l((({children:t,attrs:r,width:n,height:o,scrolling:l},s)=>e("div",{ref:s,...r,children:e("div",{style:i((()=>({position:"relative",visibility:"hidden",width:null!=n?n:"100%",height:null!=o?o:"100%",pointerEvents:l?"none":"auto"})),[n,o,l]),children:t})}))),A=/*#__PURE__*/s((({P:t,V:r,q:o,G:l,K:s,N:c,X:u})=>{const a=n(null),_=H(o,(()=>o.m(l)),!0),d=H(o,(()=>o.h(l)),!0);return M((()=>r.j(a[C],l)),[l]),e(s,{ref:a,style:i((()=>{const e=u?"right":"left",t={margin:0,padding:0,position:"absolute",[c?"height":"width"]:"100%",[c?"top":e]:0,[c?e:"top"]:_,visibility:d?"hidden":"visible"};return c&&(t.display="flex"),t}),[_,d]),children:t})})),B=({P:t,Y:r,q:n,K:o,Z:l,ee:s,N:c})=>{const u=H(n,n.I);return e(o,{ref:r,width:c?u:void 0,height:c?void 0:u,scrolling:l,attrs:i((()=>({...s,style:{overflow:c?"auto hidden":"hidden auto",contain:"strict",width:"100%",height:"100%",padding:0,margin:0,...s.style}})),[s]),children:t})},F=/*#__PURE__*/l((({children:t,overscan:l=4,initialItemSize:s,initialItemCount:a,horizontal:h,mode:f,element:g=L,itemElement:w="div",onScroll:v,onScrollStop:S,onRangeChange:p,...z},b)=>{const I=i((()=>{const e=[];return c.forEach(t,(t=>{(e=>!m(e)||"boolean"==typeof e)(t)||e.push(t)})),e}),[t]),x=I.length,y=O(v),R=O(S),[T,D]=o(!1),[J,F,U,j,P]=$((()=>{const e=!!h,t="rtl"===f,r=k(x,s,a,"reverse"===f,(e=>{D(e),e||R[C]&&R[C]()}),(e=>{y[C]&&y[C](e)}));return[r,E(r,e),W(r,e,t),e,t]}));J.W(x);const[V,q]=H(J,J._),G=H(J,J.T),K=n(null);M((()=>{const e=K[C],t=F.U(e),r=U.$(e);return()=>{t(),r()}}),[]),M((()=>{const e=J.k();e&&U.F(e)}),[G]),r((()=>{p&&p({start:V,end:q,count:x})}),[V,q]),u(b,(()=>({get scrollOffset(){return J.S()},get scrollSize(){return U.L()},get viewportSize(){return J.p()},scrollToIndex(e){U.B(e,x)},scrollTo:U.A,scrollBy(e){U.A(J.S()+e)}})),[x]);const N=d(V-l,0),Q=_(q+l,x-1),X=i((()=>{const t=[];for(let r=N;r<=Q;r++){const n=I[r];m(n)&&t.push(e(A,{V:F,q:J,G:r,K:w,P:n,N:j,X:P},(null==n?void 0:n.key)||r))}return t}),[I,N,Q]);return e(B,{Y:K,q:J,K:g,Z:T,P:X,ee:z,N:j})})),U=(e,t)=>`${e}-${t}`,j=/*#__PURE__*/s((({P:t,V:r,te:o,re:l,ne:s,oe:c,K:u,X:a})=>{const _=n(null),d=H(o,(()=>o.m(s)),!0),h=H(l,(()=>l.m(c)),!0),f=H(o,(()=>o.h(s)),!0),g=H(l,(()=>l.h(c)),!0),m=H(o,(()=>o.v(s)),!0),w=H(l,(()=>l.v(c)),!0);return M((()=>r.j(_[C],s,c)),[c,s]),e(u,{ref:_,style:i((()=>({display:"grid",margin:0,padding:0,position:"absolute",top:d,[a?"right":"left"]:h,visibility:f||g?"hidden":"visible",minHeight:m,minWidth:w})),[d,h,w,m,f,g]),children:t})})),P=({P:t,Y:r,le:n,ie:o,K:l,Z:s,ee:c})=>{const u=H(n,n.I),a=H(o,o.I);return e(l,{ref:r,width:a,height:u,scrolling:s,attrs:i((()=>({...c,style:{overflow:"auto",contain:"strict",width:"100%",height:"100%",padding:0,margin:0,...c.style}})),[c]),children:t})},V=/*#__PURE__*/l((({children:t,row:r,col:l,cellHeight:s=40,cellWidth:c=100,overscan:a=2,initialRowCount:h,initialColCount:f,rtl:g,element:m=L,cellElement:w="div",...v},S)=>{const[p,z]=o(!1),[b,I]=o(!1),[x,y,R,T,O,D]=$((()=>{const e=!!g,t=()=>{},n=k(r,s,h,!1,z,t),o=k(l,c,f,!1,I,t);return[n,o,J(n,o),W(n,!1,e),W(o,!0,e),e]}));x.W(r),y.W(l);const[E,A]=H(x,x._),[B,F]=H(y,y._),V=H(x,x.T),q=H(y,y.T),G=n(null);M((()=>{const e=G[C],t=R.U(e),r=T.$(e),n=O.$(e);return()=>{t(),r(),n()}}),[]),M((()=>{const e=x.k();e&&T.F(e)}),[V]),M((()=>{const e=y.k();e&&O.F(e)}),[q]),u(S,(()=>({get scrollOffset(){return[y.S(),x.S()]},get scrollSize(){return[O.L(),T.L()]},get viewportSize(){return[y.p(),x.p()]},scrollToIndex(e,t){O.B(e,l),T.B(t,r)},scrollTo(e,t){O.A(e),T.A(t)},scrollBy(e,t){O.A(y.S()+e),T.A(x.S()+t)}})),[r,l]);const K=i((()=>{const e=new Map;return(r,n)=>{let o=e.get(U(r,n));return o||e.set(U(r,n),o=t({rowIndex:r,colIndex:n})),o}}),[t]),N=d(E-a,0),Q=_(A+a,r-1),X=d(B-a,0),Y=_(F+a,l-1),Z=i((()=>{const t=[];for(let r=N;r<=Q;r++)for(let n=X;n<=Y;n++)t.push(e(j,{V:R,te:x,re:y,ne:r,oe:n,K:w,P:K(r,n),X:D},U(r,n)));return t}),[K,N,Q,X,Y]);return e(P,{Y:G,le:x,ie:y,K:m,Z:p||b,P:Z,ee:v})}));export{V as VGrid,F as VList};
2
+ import{jsx as e}from"react/jsx-runtime";import{useLayoutEffect as t,useEffect as r,useRef as n,useState as o,forwardRef as i,useMemo as l,memo as s,Children as c,useImperativeHandle as u}from"react";import{flushSync as a}from"react-dom";const d=Math.min,_=Math.max,h=Math.abs,f=Date.now,g=setTimeout,w=e=>null!=e,m=(e,t)=>Array.from({length:e},((e,r)=>t(r))),v=(e,t)=>{let r;const n=()=>{w(r)&&clearTimeout(r)},o=()=>{n(),r=g((()=>{r=null,e()}),t)};return o.t=n,o},p=e=>{let t,r;return(...n)=>(t||(t=!0,r=e(...n)),r)},S=-1,z=(e,t)=>{const r=e.o[t];return r===S?e.i:r},b=(e,t,r)=>{if(!e.l)return 0;if(e.u>=t)return r?e._[t]+z(e,t):e._[t];let n=e.u,o=e._[n];for(;n<=t&&(e._[n]=o,n!==t||r);)o+=z(e,n),n++;return e.u=t,o},I=(e,t)=>b(e,t),R=(e,t,r)=>{let n=0;if(r>=0)for(;t<e.l-1;){const o=z(e,t++);if((n+=o)>=r){n-o/2>=r&&t--;break}}else for(;t>0;){const o=z(e,--t);if((n-=o)<=r){n+o/2<r&&t++;break}}return d(_(t,0),e.l-1)},x=(e,t,r,n)=>R(e,r,t-n),y=(e,t,r)=>({i:r?r.i:t,l:e,u:r?d(r.u,e-1):0,o:m(e,(e=>{const t=r&&r.o[e];return w(t)?t:S})),_:m(e,(e=>{if(0===e)return 0;const t=r&&r._[e];return w(t)?t:S}))}),k=e=>e.reduce(((e,[t])=>e+t),0),T=(e,t)=>t.map((([t,r])=>[r-z(e,t),t])),C=(e,t,r=0,n,o,i)=>{const l=!t,s=t||40;let c,u,a=s*_(r-1,0),f=0,m=0,v=y(e,s),p=0,C=!1,H=[0,r];const M=new Set,O=()=>(e=>b(e,e.l-1,!0))(v),W=e=>{const t=p;return p=e,0!==p&&(0===t&&(1===p||2===p)||void 0)};return{h(){const[e,t]=H,r=I(v,e),n=x(v,f,e,r),o=R(v,n,a);return e===n&&t===o?H:H=[n,o]},g:e=>v.o[e]===S,m:e=>((e,t,r)=>{for(let n=t;n<=r;n++)if(e.o[n]===S)return!0;return!1})(v,_(0,e-2),d(v.l-1,e+2)),v(e){const t=I(v,e);return n?t+_(0,a-O()):t},p:e=>z(v,e),S:()=>f,I:()=>a,R:()=>O(),k:()=>_(O(),a),T:()=>m,C(){const e=c;return c=void 0,e},H:e=>x(v,e,0,0),M:()=>(u&&u[1](),new Promise(((e,t)=>{let r=!1;const n=()=>{r||(r=!0,e(),u=void 0)};u=[n,t],g(n,250)}))),O:e=>(M.add(e),()=>{M.delete(e)}),W(e,t){let r,n,s=!1;switch(e){case 1:{const e=t.filter((([e,t])=>v.o[e]!==t));if(!e.length)break;let n=0;if(2===p)n=k(T(v,e));else if(3===p){const t=T(v,e),[r]=H;0===f||(n=O()<=f+a?k(t):k(t.filter((([,e])=>e<r))))}n&&(c=n,m++);let o=!1;e.forEach((([e,t])=>{((e,t,r)=>{const n=e.o[t]===S;return e.o[t]=r,e.u=d(t,e.u),n})(v,e,t)&&(o=!0)})),l&&o&&!f&&(e=>{const t=e.o.filter((e=>e!==S)),r=t[0];e.i=t.every((e=>e===r))?r:(e=>{const t=[...e].sort(((e,t)=>e-t)),r=e.length/2|0;return t.length%2==0?(t[r-1]+t[r])/2:t[r]})(t)})(v),C=r=s=!0;break}case 2:s=a!==t,a=t;break;case 3:case 4:if(f===t)break;if(3===e){const e=(()=>{const e=C;return C=!1,e})();0!==p&&e||3===p||(n=W(f>t?2:1)),r=h(f-t)>a}f=t,s=!0;break;case 5:n=W(t?3:0)}s&&(M.forEach((e=>{e(r)})),3===e&&i(f)),u&&1===e&&u[0](),w(n)&&o(n)},J:()=>p,L(e){v.l!==e&&(v=y(e,s,v))}}},H="undefined"!=typeof window?t:r,M="current",O=e=>!w(e)||"boolean"==typeof e,W=e=>{const t=n(e);return H((()=>{t[M]=e}),[e]),t},E=(e,r,n)=>{const[i,l]=o(r),s=W(r);if(t((()=>{const t=()=>{l((()=>s[M]()))};return e.O((e=>{e?a(t):t()}))}),[]),n){const e=r();i!==e&&l(e)}return i},J=/*#__PURE__*/p((e=>{const t="scrollLeft",r=e[t];e[t]=1;const n=e[t]<1;return e[t]=r,n})),L=(e,t,r)=>(()=>{let n=f()-50;return(...o)=>{const i=f();n+50<i&&(n=i,(n=>{if(0!==e.J()&&!n.ctrlKey&&(t?n.deltaX:n.deltaY)){const t=e.S();t>0&&t<e.R()-e.I()&&r()}})(...o))}})(),$=(e,t,r)=>{let n;const o=t?"scrollLeft":"scrollTop",i=()=>n?t?n.scrollWidth:n.scrollHeight:0,l=(o,i)=>t&&r?J(n)||i?-o:e.R()-e.I()-o:o,s=async(t,r)=>{if(!n)return;const s=()=>{let t=r();const n=i(),o=e.I();return n-(t+o)<=0&&(t=n-o),t};for(;e.W(4,s()),e.m(t);)try{await e.M()}catch(e){return}n[o]=l(s()),e.W(5,!0)};return{$(r){n=r;const i=()=>{e.W(3,l(r[o]))},s=v((()=>{i(),e.W(5,!1)}),150),c=()=>{i(),s()},u=L(e,t,s);return r.addEventListener("scroll",c),r.addEventListener("wheel",u,{passive:!0}),()=>{r.removeEventListener("scroll",c),r.removeEventListener("wheel",u),s.t()}},D:i,A(t){t=_(t,0),s(e.H(t),(()=>t))},B(t,r){t=_(d(t,r-1),0),s(t,(()=>e.v(t)))},F:e=>{n&&(n[o]+=l(e,!0))}}},D=(e,t)=>{const r=t?"scrollX":"scrollY",n=t?"offsetLeft":"offsetTop";return{$(o){let i=!1;const l=(e,t)=>{const r=t+e[n],o=e.offsetParent;return e!==document.body&&o?l(o,r):r},s=()=>{i&&e.W(3,window[r]-l(o,0))},c=v((()=>{s(),e.W(5,!1)}),150),u=()=>{s(),c()},a=L(e,t,c),d=new IntersectionObserver((([e])=>{i=e.isIntersecting}));return d.observe(o),window.addEventListener("scroll",u),window.addEventListener("wheel",a,{passive:!0}),()=>{d.disconnect(),window.removeEventListener("scroll",u),window.removeEventListener("wheel",a),c.t()}},F:e=>{window.scrollBy(t?e:0,t?0:e)}}},A=e=>{const t=n();return t[M]||(t[M]=e())},B=(e,t)=>{let r;const n=t?"width":"height",o=new WeakMap,i=p((()=>new ResizeObserver((t=>{const i=[];for(const{target:l,contentRect:s}of t)if(l===r)e.W(2,s[n]);else{const e=o.get(l);w(e)&&i.push([e,s[n]])}i.length&&e.W(1,i)}))));return{U(e){r=e;const t=i();return t.observe(e),()=>{t.disconnect()}},j(e,t){const r=i();return o.set(e,t),r.observe(e),()=>{o.delete(e),r.unobserve(e)}}}},F=(e,t)=>{const r=t?"width":"height",n=t?"innerWidth":"innerHeight",o=new WeakMap,i=p((()=>new ResizeObserver((t=>{const n=[];for(const{target:e,contentRect:i}of t){const t=o.get(e);w(t)&&n.push([t,i[r]])}n.length&&e.W(1,n)}))));return{U(){const t=()=>{e.W(2,window[n])};return window.addEventListener("resize",t),t(),()=>{window.removeEventListener("resize",t)}},j(e,t){const r=i();return o.set(e,t),r.observe(e),()=>{o.delete(e),r.unobserve(e)}}}},U=(e,t)=>{let r;const n="height",o="width",i=new WeakMap,l=new Set,s=new Set,c=new Map,u=(e,t)=>`${e}-${t}`,a=p((()=>new ResizeObserver((a=>{const d=new Set,h=new Set;for(const{target:l,contentRect:s}of a)if(l===r)e.W(2,s[n]),t.W(2,s[o]);else{const e=i.get(l);if(e){const[t,r]=e,i=u(t,r),l=c.get(i),a=[s[n],s[o]];let _,f;l?(l[0]!==a[0]&&(_=!0),l[1]!==a[1]&&(f=!0)):_=f=!0,_&&d.add(t),f&&h.add(r),(_||f)&&c.set(i,a)}}if(d.size){const t=[];d.forEach((e=>{let r=0;s.forEach((t=>{const n=c.get(u(e,t));n&&(r=_(r,n[0]))})),r&&t.push([e,r])})),e.W(1,t)}if(h.size){const e=[];h.forEach((t=>{let r=0;l.forEach((e=>{const n=c.get(u(e,t));n&&(r=_(r,n[1]))})),r&&e.push([t,r])})),t.W(1,e)}}))));return{U(e){r=e;const t=a();return t.observe(e),()=>{t.disconnect()}},j(e,t,r){const n=a();return i.set(e,[t,r]),l.add(t),s.add(r),n.observe(e),()=>{i.delete(e),n.unobserve(e)}}}},j=/*#__PURE__*/i((({children:t,attrs:r,width:n,height:o,scrolling:i},s)=>e("div",{ref:s,...r,children:e("div",{style:l((()=>({position:"relative",visibility:"hidden",width:null!=n?n:"100%",height:null!=o?o:"100%",pointerEvents:i?"none":"auto"})),[n,o,i]),children:t})}))),P=/*#__PURE__*/s((({P:t,V:r,X:o,Y:i,q:s,G:c,K:u})=>{const a=n(null),d=E(o,(()=>o.v(i)),!0),_=E(o,(()=>o.g(i)),!0);return H((()=>r.j(a[M],i)),[i]),e(s,{ref:a,style:l((()=>{const e=u?"right":"left",t={margin:0,padding:0,position:"absolute",[c?"height":"width"]:"100%",[c?"top":e]:0,[c?e:"top"]:d,visibility:_?"hidden":"visible"};return c&&(t.display="flex"),t}),[d,_]),children:t})})),V=({P:t,N:r,X:n,q:o,Z:i,ee:s,G:c})=>{const u=E(n,n.k);return e(o,{ref:r,width:c?u:void 0,height:c?void 0:u,scrolling:i,attrs:l((()=>({...s,style:{overflow:c?"auto hidden":"hidden auto",display:c?"inline-block":"block",contain:"strict",width:"100%",height:"100%",padding:0,margin:0,...s.style}})),[s]),children:t})},X=/*#__PURE__*/i((({children:t,overscan:i=4,initialItemSize:s,initialItemCount:a,horizontal:h,mode:f,element:g=j,itemElement:m="div",onScroll:v,onScrollStop:p,onRangeChange:S,...z},b)=>{const I=l((()=>{const e=[];return c.forEach(t,(t=>{O(t)||e.push(t)})),e}),[t]),R=I.length,x=W(v),y=W(p),[k,T]=o(!1),[J,L,D,F,U]=A((()=>{const e=!!h,t="rtl"===f,r=C(R,s,a,"reverse"===f,(e=>{T(e),e||y[M]&&y[M]()}),(e=>{x[M]&&x[M](e)}));return[r,B(r,e),$(r,e,t),e,t]}));J.L(R);const[X,Y]=E(J,J.h),q=E(J,J.T),G=n(null);H((()=>{const e=G[M],t=L.U(e),r=D.$(e);return()=>{t(),r()}}),[]),H((()=>{const e=J.C();e&&D.F(e)}),[q]),r((()=>{S&&S({start:X,end:Y,count:R})}),[X,Y]),u(b,(()=>({get scrollOffset(){return J.S()},get scrollSize(){return D.D()},get viewportSize(){return J.I()},scrollToIndex(e){D.B(e,R)},scrollTo:D.A,scrollBy(e){D.A(J.S()+e)}})),[R]);const K=_(X-i,0),N=d(Y+i,R-1),Q=l((()=>{const t=[];for(let r=K;r<=N;r++){const n=I[r];w(n)&&t.push(e(P,{V:L,X:J,Y:r,q:m,P:n,G:F,K:U},(null==n?void 0:n.key)||r))}return t}),[I,K,N]);return e(V,{N:G,X:J,q:g,Z:k,P:Q,ee:z,G:F})})),Y=(e,t)=>`${e}-${t}`,q=/*#__PURE__*/s((({P:t,V:r,te:o,re:i,ne:s,oe:c,q:u,K:a})=>{const d=n(null),_=E(o,(()=>o.v(s)),!0),h=E(i,(()=>i.v(c)),!0),f=E(o,(()=>o.g(s)),!0),g=E(i,(()=>i.g(c)),!0),w=E(o,(()=>o.p(s)),!0),m=E(i,(()=>i.p(c)),!0);return H((()=>r.j(d[M],s,c)),[c,s]),e(u,{ref:d,style:l((()=>({display:"grid",margin:0,padding:0,position:"absolute",top:_,[a?"right":"left"]:h,visibility:f||g?"hidden":"visible",minHeight:w,minWidth:m})),[_,h,m,w,f,g]),children:t})})),G=({P:t,N:r,ie:n,le:o,q:i,Z:s,ee:c})=>{const u=E(n,n.k),a=E(o,o.k);return e(i,{ref:r,width:a,height:u,scrolling:s,attrs:l((()=>({...c,style:{overflow:"auto",contain:"strict",width:"100%",height:"100%",padding:0,margin:0,...c.style}})),[c]),children:t})},K=/*#__PURE__*/i((({children:t,row:r,col:i,cellHeight:s=40,cellWidth:c=100,overscan:a=2,initialRowCount:h,initialColCount:f,rtl:g,element:w=j,cellElement:m="div",...v},p)=>{const[S,z]=o(!1),[b,I]=o(!1),[R,x,y,k,T,O]=A((()=>{const e=!!g,t=()=>{},n=C(r,s,h,!1,z,t),o=C(i,c,f,!1,I,t);return[n,o,U(n,o),$(n,!1,e),$(o,!0,e),e]}));R.L(r),x.L(i);const[W,J]=E(R,R.h),[L,D]=E(x,x.h),B=E(R,R.T),F=E(x,x.T),P=n(null);H((()=>{const e=P[M],t=y.U(e),r=k.$(e),n=T.$(e);return()=>{t(),r(),n()}}),[]),H((()=>{const e=R.C();e&&k.F(e)}),[B]),H((()=>{const e=x.C();e&&T.F(e)}),[F]),u(p,(()=>({get scrollOffset(){return[x.S(),R.S()]},get scrollSize(){return[T.D(),k.D()]},get viewportSize(){return[x.I(),R.I()]},scrollToIndex(e,t){T.B(e,i),k.B(t,r)},scrollTo(e,t){T.A(e),k.A(t)},scrollBy(e,t){T.A(x.S()+e),k.A(R.S()+t)}})),[r,i]);const V=l((()=>{const e=new Map;return(r,n)=>{let o=e.get(Y(r,n));return o||e.set(Y(r,n),o=t({rowIndex:r,colIndex:n})),o}}),[t]),X=_(W-a,0),K=d(J+a,r-1),N=_(L-a,0),Q=d(D+a,i-1),Z=l((()=>{const t=[];for(let r=X;r<=K;r++)for(let n=N;n<=Q;n++)t.push(e(q,{V:y,te:R,re:x,ne:r,oe:n,q:m,P:V(r,n),K:O},Y(r,n)));return t}),[V,X,K,N,Q]);return e(G,{N:P,ie:R,le:x,q:w,Z:S||b,P:Z,ee:v})})),N=({P:t,N:r,X:n,q:o,Z:i,ee:s,G:c})=>{const u=E(n,n.k);return e(o,{ref:r,width:c?u:void 0,height:c?void 0:u,scrolling:i,attrs:l((()=>({...s,style:{overflow:"visible",display:c?"inline-block":"block",width:c?"auto":"100%",height:c?"100%":"auto",padding:0,margin:0,...s.style}})),[s]),children:t})},Q=({children:t,overscan:i=4,initialItemSize:s,initialItemCount:u,horizontal:a,element:h=j,itemElement:f="div",onScroll:g,onScrollStop:m,onRangeChange:v,...p})=>{const S=l((()=>{const e=[];return c.forEach(t,(t=>{O(t)||e.push(t)})),e}),[t]),z=S.length,b=W(g),I=W(m),[R,x]=o(!1),[y,k,T,J]=A((()=>{const e=!!a,t=C(z,s,u,!1,(e=>{x(e),e||I[M]&&I[M]()}),(e=>{b[M]&&b[M](e)}));return[t,F(t,e),D(t,e),e]}));y.L(z);const[L,$]=E(y,y.h),B=E(y,y.T),U=n(null);H((()=>{const e=U[M],t=k.U(e),r=T.$(e);return()=>{t(),r()}}),[]),H((()=>{const e=y.C();e&&T.F(e)}),[B]),r((()=>{v&&v({start:L,end:$,count:z})}),[L,$]);const V=_(L-i,0),X=d($+i,z-1),Y=l((()=>{const t=[];for(let r=V;r<=X;r++){const n=S[r];w(n)&&t.push(e(P,{V:k,X:y,Y:r,q:f,P:n,G:J,K:!1},(null==n?void 0:n.key)||r))}return t}),[S,V,X]);return e(N,{N:U,X:y,q:h,Z:R,P:Y,ee:p,G:J})};export{K as VGrid,X as VList,Q as WVList};
3
3
  //# sourceMappingURL=index.mjs.map