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