virtua 0.45.2 → 0.45.3
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/core/index.cjs +1 -1
- package/lib/core/index.cjs.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/react/Virtualizer.d.ts +2 -2
- package/lib/react/WindowVirtualizer.d.ts +1 -1
- package/lib/solid/Virtualizer.d.ts +2 -2
- package/lib/solid/WindowVirtualizer.d.ts +1 -1
- package/lib/solid/index.cjs +1 -1
- package/lib/solid/index.cjs.map +1 -1
- package/lib/solid/index.js +1 -1
- package/lib/solid/index.js.map +1 -1
- package/lib/solid/index.jsx +8 -7
- package/lib/solid/index.jsx.map +1 -1
- package/lib/svelte/Virtualizer.type.d.ts +2 -2
- package/lib/svelte/WindowVirtualizer.type.d.ts +1 -1
- package/lib/vue/VList.d.ts +2 -2
- package/lib/vue/Virtualizer.d.ts +4 -4
- package/lib/vue/WindowVirtualizer.d.ts +2 -2
- package/lib/vue/index.cjs +1 -1
- package/lib/vue/index.cjs.map +1 -1
- package/lib/vue/index.js +1 -1
- package/lib/vue/index.js.map +1 -1
- package/package.json +1 -1
package/lib/vue/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent as e,ref as t,computed as o,watch as r,createVNode as n,mergeProps as s,isVNode as i,onMounted as l,onUnmounted as c}from"vue";const a=null,{min:u,max:f,abs:d,floor:p}=Math,h=(e,t,o)=>u(o,f(t,e)),m=e=>[...e].sort(((e,t)=>e-t)),v="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},_=()=>{let e;return[new Promise((t=>{e=t})),e]},b=e=>{let t;return()=>(e&&(t=e(),e=void 0),t)},y=-1,S=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](y);return e},g=(e,t)=>{const o=e.t[t];return o===y?e.o:o},x=(e,t,o)=>{const r=e.t[t]===y;return e.t[t]=o,e.i=u(t,e.i),r},z=(e,t)=>{if(!e.l)return 0;if(e.i>=t)return e.u[t];e.i<0&&(e.u[0]=0,e.i=0);let o=e.i,r=e.u[o];for(;o<t;)r+=g(e,o),e.u[++o]=r;return e.i=t,r},$=(e,t,o=0,r=e.l-1)=>{for(;o<=r;){const n=p((o+r)/2),s=z(e,n);if(s<=t){if(s+g(e,n)>t)return n;o=n+1}else r=n-1}return h(o,0,e.l-1)},w=(e,t,o)=>{const r=t-e.l;return e.i=o?-1:u(t-1,e.i),e.l=t,r>0?(S(e.u,r),S(e.t,r,o),e.o*r):(e.u.splice(r),(o?e.t.splice(0,-r):e.t.splice(r)).reduce(((t,o)=>t-(o===y?e.o:o)),0))},I="undefined"!=typeof window,k=()=>document.documentElement,O=e=>e.ownerDocument,j=e=>e.defaultView,E=/*#__PURE__*/b((()=>!!I&&"rtl"===getComputedStyle(k()).direction)),T=/*#__PURE__*/b((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),B=/*#__PURE__*/b((()=>"scrollBehavior"in k().style)),q=(e,t=40,o=4,r=0,n,s=!1)=>{let i=!!r,l=1,c=0,p=0,h=0,v=0,_=0,b=0,I=0,k=0,O=i?[0,f(r-1,0)]:a,j=[0,0],E=0;const B=((e,t)=>({o:t,t:S([],e),l:e,i:-1,u:S([],e)}))(e,t),q=new Set,M=()=>h-p,N=()=>M()+_+v,P=e=>((e,t,o,r)=>{if(r=u(r,e.l-1),z(e,r)<=t){const n=$(e,t+o,r);return[$(e,t,r,n),n]}{const n=$(e,t,void 0,r);return[n,$(e,t+o,n)]}})(B,e,c,j[0]),R=()=>(e=>e.l?z(e,e.l-1)+g(e,e.l-1):0)(B),A=e=>z(B,e)-_,H=e=>g(B,e),V=e=>{e&&(T()&&0!==I||O&&1===k?_+=e:v+=e)};return{p:()=>l,h:()=>(e=>[e.t.slice(),e.o])(B),m:()=>{let e,t;return b?[e,t]=j:([e,t]=j=P(f(0,N())),O&&(e=u(e,O[0]),t=f(t,O[1]))),1!==I&&(e-=f(0,o)),2!==I&&(t+=f(0,o)),[f(e,0),u(t,B.l-1)]},v:()=>$(B,N()),S:()=>$(B,N()+c),I:e=>B.t[e]===y,k:A,O:H,j:()=>B.l,T:()=>h,B:()=>0!==I,q:()=>c,M:()=>p,N:R,P:()=>(b=v,v=0,[b,2===k]),R:(e,t)=>{const o=[e,t];return q.add(o),()=>{q.delete(o)}},A:(e,t)=>{let o,r,n=0;switch(e){case 1:{const e=b;b=0;const o=t-h,s=d(o);e&&s<d(e)+1||0!==k||(I=o<0?2:1),i&&(O=a,i=!1),h=t,n=4;const l=M();l>=-c&&l<=R()&&(n+=1,r=s>c);break}case 2:n=8,0!==I&&(o=!0,n+=1),I=0,k=0,O=a;break;case 3:{const e=t.filter((([e,t])=>B.t[e]!==t));if(!e.length)break;V(e.reduce(((e,[t,o])=>((2===k||(O&&1===k?t<O[0]:A(t)+(0===I&&0===k?H(t):0)<M()))&&(e+=o-H(t)),e)),0));for(const[t,o]of e){const e=H(t),r=x(B,t,o);s&&(E+=r?o:o-e)}s&&c&&E>c&&(V(((e,t)=>{let o=0;const r=[];e.t.forEach(((e,n)=>{e!==y&&(r.push(e),n<t&&o++)})),e.i=-1;const n=m(r),s=n.length,i=s/2|0,l=s%2==0?(n[i-1]+n[i])/2:n[i],c=e.o;return((e.o=l)-c)*f(t-o,0)})(B,$(B,N()))),s=!1),n=3,r=!0;break}case 4:c!==t&&(c=t,n=3);break;case 5:t[1]?(V(w(B,t[0],!0)),k=2,n=1):(w(B,t[0]),n=1);break;case 6:p=t;break;case 7:k=1;break;case 8:O=P(t),n=1}n&&(l=1+(2147483647&l),o&&_&&(v+=_,_=0),q.forEach((([e,t])=>{n&e&&t(r)})))}}},M=setTimeout,N=(e,t)=>t&&E()?-e:e,P=(e,t,o,r,n,s)=>{const i=Date.now;let l=0,c=!1,u=!1,f=!1,d=!1;const p=(()=>{let t;const o=()=>{t!=a&&clearTimeout(t)},r=()=>{o(),t=M((()=>{t=a,(()=>{if(c||u)return c=!1,void p();f=!1,e.A(2)})()}),150)};return r.H=o,r})(),h=()=>{l=i(),f&&(d=!0),s&&e.A(6,s()),e.A(1,r()),p()},m=t=>{if(c||!e.B()||t.ctrlKey)return;const r=i()-l;150>r&&50<r&&(o?t.deltaX:t.deltaY)&&(c=!0)},v=()=>{u=!0,f=d=!1},_=()=>{u=!1,T()&&(f=!0)};return t.addEventListener("scroll",h),t.addEventListener("wheel",m,{passive:!0}),t.addEventListener("touchstart",v,{passive:!0}),t.addEventListener("touchend",_,{passive:!0}),{V:()=>{t.removeEventListener("scroll",h),t.removeEventListener("wheel",m),t.removeEventListener("touchstart",v),t.removeEventListener("touchend",_),p.H()},C:()=>{const[t,s]=e.P();t&&(n(N(t,o),s,d),d=!1,s&&e.q()>e.N()&&e.A(1,r()))}}},R=(e,t,o)=>{let r;return[async(n,s)=>{if(!await t())return;r&&r();const i=()=>{const[t,o]=_();return r=()=>{o(!1)},e.q()&&M(r,150),[t,e.R(2,(()=>{o(!0)}))]};if(s&&B())e.A(8,n()),v((async()=>{for(;;){let t=!0;for(let[o,r]=e.m();o<=r;o++)if(e.I(o)){t=!1;break}if(t)break;const[o,r]=i();try{if(!await o)return}finally{r()}}e.A(7),o(n(),s)}));else for(;;){const[t,r]=i();try{if(e.A(7),o(n()),!await t)return}finally{r()}}},()=>{r&&r()}]},A=e=>{let t;return{J(o){(t||(t=new(j(O(o)).ResizeObserver)(e))).observe(o)},F(e){t.unobserve(e)},V(){t&&t.disconnect()}}},H=/*#__PURE__*/e({props:{L:{type:Object,required:!0},W:{type:Object,required:!0},X:{type:Object,required:!0},Y:{type:Function,required:!0},D:{type:Number,required:!0},U:{type:Boolean},G:{type:Boolean},K:{type:String,required:!0},Z:Object},setup(e){const l=t(),c=o((()=>e.L.value&&e.W.k(e.D))),a=o((()=>e.L.value&&e.W.I(e.D)));return r((()=>l.value&&e.D),((t,o,r)=>{r(e.Y(l.value,e.D))}),{flush:"post"}),()=>{var t;const{X:o,U:r,G:u,K:f}=e,d=a.value,{style:p,...h}=null!==(t=e.Z)&&void 0!==t?t:{},m={contain:"layout style",position:d&&u?void 0:"absolute",[r?"height":"width"]:"100%",[r?"top":"left"]:"0px",[r?E()?"right":"left":"top"]:c.value+"px",visibility:!d||u?"visible":"hidden",...p};return r&&(m.display="inline-flex"),n(f,s({ref:l,style:m},h),"function"==typeof(v=o)||"[object Object]"===Object.prototype.toString.call(v)&&!i(v)?o:{default:()=>[o],_:2},16,["style"]);var v}}}),V=(e,t)=>{const o=e.key;return null!=o?o:"_"+t},C=(e,t)=>e[0]===t[0]&&e[1]===t[1],J=/*#__PURE__*/e({props:{data:{type:Array,required:!0},overscan:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,startMargin:{type:Number,default:0},ssrCount:Number,scrollRef:Object,as:{type:String,default:"div"},item:{type:String,default:"div"},itemProps:Function,keepMounted:Array},emits:["scroll","scrollEnd"],setup(e,{emit:s,expose:u,slots:d}){let p=!!e.ssrCount;const b=e.horizontal,y=t(),S=q(e.data.length,e.itemSize,e.overscan,e.ssrCount,0,!e.itemSize),g=((e,t)=>{let o;const r=t?"width":"height",n=new WeakMap,s=A((t=>{const s=[];for(const{target:i,contentRect:l}of t)if(i.offsetParent)if(i===o)e.A(4,l[r]);else{const e=n.get(i);e!=a&&s.push([e,l[r]])}s.length&&e.A(3,s)}));return{ee(e){s.J(o=e)},te:(e,t)=>(n.set(e,t),s.J(e),()=>{n.delete(e),s.F(e)}),oe:s.V}})(S,b),x=((e,t)=>{let o,r,n=_();const s=t?"scrollLeft":"scrollTop",i=t?"overflowX":"overflowY",[l,c]=R(e,(()=>n[0]),((e,r)=>{e=N(e,t),r?o.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):o[s]=e}));return{re(l){o=l,r=P(e,l,t,(()=>N(l[s],t)),((t,o,r)=>{if(r){const e=l.style,t=e[i];e[i]="hidden",M((()=>{e[i]=t}))}l[s]=e.T()+t,o&&c()})),n[1](!0)},oe(){r&&r.V(),n[1](!1),n=_()},ne(e){l((()=>e))},se(t){t+=e.T(),l((()=>t))},ie(t,{align:o,smooth:r,offset:n=0}={}){if(t=h(t,0,e.j()-1),"nearest"===o){const r=e.k(t),n=e.T();if(r<n)o="start";else{if(!(r+e.O(t)>n+e.q()))return;o="end"}}l((()=>n+e.M()+e.k(t)+("end"===o?e.O(t)-e.q():"center"===o?(e.O(t)-e.q())/2:0)),r)},le:()=>{r&&r.C()}}})(S,b),z=t(S.p()),$=S.R(1,(()=>{z.value=S.p()})),w=S.R(4,(()=>{s("scroll",S.T())})),I=S.R(8,(()=>{s("scrollEnd")})),k=o((e=>{z.value;const t=S.m();return e&&C(e,t)?e:t})),O=o((()=>z.value&&S.B())),j=o((()=>z.value&&S.N()));return l((()=>{p=!1,v((()=>{const t=e=>{g.ee(e),x.re(e)};e.scrollRef?t(e.scrollRef):t(y.value.parentElement)}))})),c((()=>{$(),w(),I(),g.oe(),x.oe()})),r((()=>e.data.length),(t=>{S.A(5,[t,e.shift])})),r((()=>e.startMargin),(e=>{S.A(6,e)}),{immediate:!0}),r([z],(()=>{x.le()}),{flush:"post"}),u({get scrollOffset(){return S.T()},get scrollSize(){return(e=>f(e.N(),e.q()))(S)},get viewportSize(){return S.q()},findStartIndex:S.v,findEndIndex:S.S,getItemOffset:S.k,getItemSize:S.O,scrollToIndex:x.ie,scrollTo:x.ne,scrollBy:x.se}),()=>{const t=e.as,o=e.item,[r,s]=k.value,l=j.value,c=[],a=t=>{var r;const s=d.default({item:e.data[t],index:t})[0];return n(H,{key:V(s,t),L:z,W:S,Y:g.te,D:t,X:s,U:b,G:p,K:o,Z:null===(r=e.itemProps)||void 0===r?void 0:r.call(e,{item:e.data[t],index:t})},null,8,["L","W","Y","D","X","U","G","K","Z"])};if(e.keepMounted){const t=new Set(e.keepMounted);for(let e=r,o=s;e<=o;e++)t.add(e);m([...t]).forEach((e=>{c.push(a(e))}))}else for(let e=r,t=s;e<=t;e++)c.push(a(e));return n(t,{ref:y,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:b?l+"px":"100%",height:b?"100%":l+"px",pointerEvents:O.value?"none":void 0}},"function"==typeof(u=c)||"[object Object]"===Object.prototype.toString.call(u)&&!i(u)?c:{default:()=>[c],_:2},8,["style"]);var u}}}),F=/*#__PURE__*/e({props:{data:{type:Array,required:!0},overscan:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number,itemProps:Function,keepMounted:Array},emits:["scroll","scrollEnd"],setup(e,{emit:o,expose:r,slots:s}){const l=e.horizontal,c=e=>{o("scroll",e)},a=()=>{o("scrollEnd")},u=t();return r({get scrollOffset(){return u.value.scrollOffset},get scrollSize(){return u.value.scrollSize},get viewportSize(){return u.value.viewportSize},findStartIndex:(...e)=>u.value.findStartIndex(...e),findEndIndex:(...e)=>u.value.findEndIndex(...e),getItemOffset:(...e)=>u.value.getItemOffset(...e),getItemSize:(...e)=>u.value.getItemSize(...e),scrollToIndex:(...e)=>u.value.scrollToIndex(...e),scrollTo:(...e)=>u.value.scrollTo(...e),scrollBy:(...e)=>u.value.scrollBy(...e)}),()=>{return n("div",{style:{display:l?"inline-block":"block",[l?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%"}},[n(J,{ref:u,data:e.data,overscan:e.overscan,itemSize:e.itemSize,itemProps:e.itemProps,shift:e.shift,ssrCount:e.ssrCount,horizontal:l,keepMounted:e.keepMounted,onScroll:c,onScrollEnd:a},(t=s,"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!i(t)?s:{default:()=>[s],_:2}),8,["data","overscan","itemSize","itemProps","shift","ssrCount","horizontal","keepMounted","onScroll","onScrollEnd"])],4);var t}}}),L=/*#__PURE__*/e({props:{data:{type:Array,required:!0},overscan:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:"div"},item:{type:String,default:"div"}},emits:["scroll","scrollEnd"],setup(e,{emit:s,slots:u,expose:f}){const d=e.horizontal,p=t(),m=q(e.data.length,e.itemSize,e.overscan,void 0,0,!e.itemSize),v=((e,t)=>{const o=t?"width":"height",r=t?"innerWidth":"innerHeight",n=new WeakMap,s=A((t=>{const r=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=n.get(e);t!=a&&r.push([t,s[o]])}r.length&&e.A(3,r)}));let i;return{ee(t){const o=j(O(t)),n=()=>{e.A(4,o[r])};o.addEventListener("resize",n),n(),i=()=>{o.removeEventListener("resize",n)}},te:(e,t)=>(n.set(e,t),s.J(e),()=>{n.delete(e),s.F(e)}),oe(){i&&i(),s.V()}}})(m,d),b=((e,t)=>{let o,r,n=_();const s=t?"left":"top",[i]=R(e,(()=>n[0]),((e,r)=>{e=N(e,t);const n=j(O(o));r?n.scroll({[s]:e,behavior:"smooth"}):n.scroll({[s]:e})})),l=(e,t,o,r,n=0)=>{const s=r?"offsetLeft":"offsetTop",i=n+(r&&E()?o.innerWidth-e[s]-e.offsetWidth:e[s]),c=e.offsetParent;return e!==t&&c?l(c,t,o,r,i):i};return{re(i){o=i;const c=t?"scrollX":"scrollY",a=O(i),u=j(a);r=P(e,u,t,(()=>N(u[c],t)),(t=>{u.scroll({[s]:e.T()+t})}),(()=>l(i,a.body,u,t))),n[1](!0)},oe(){r&&r.V(),o=void 0,n[1](!1),n=_()},le:()=>{r&&r.C()},ie(r,{align:n,smooth:s,offset:c=0}={}){if(!o)return;if(r=h(r,0,e.j()-1),"nearest"===n){const t=e.k(r),o=e.T();if(t<o)n="start";else{if(!(t+e.O(r)>o+e.q()))return;n="end"}}const a=O(o),u=j(a),f=a.documentElement,d=()=>e.q()-(t?f.clientWidth:f.clientHeight);i((()=>c+l(o,a.body,u,t)+e.k(r)+("end"===n?e.O(r)-(e.q()-d()):"center"===n?(e.O(r)-(e.q()-d()))/2:0)),s)}}})(m,d),y=t(m.p()),S=m.R(1,(()=>{y.value=m.p()})),g=m.R(4,(()=>{s("scroll")})),x=m.R(8,(()=>{s("scrollEnd")})),z=o((e=>{y.value;const t=m.m();return e&&C(e,t)?e:t})),$=o((()=>y.value&&m.B())),w=o((()=>y.value&&m.N()));return l((()=>{const e=p.value;e&&(v.ee(e),b.re(e))})),c((()=>{S(),g(),x(),v.oe(),b.oe()})),r((()=>e.data.length),(t=>{m.A(5,[t,e.shift])})),r([y],(()=>{b.le()}),{flush:"post"}),f({findStartIndex:m.v,findEndIndex:m.S,scrollToIndex:b.ie}),()=>{const t=e.as,o=e.item,[r,s]=z.value,l=w.value,c=[];for(let t=r,i=s;t<=i;t++){const r=u.default({item:e.data[t],index:t})[0];c.push(n(H,{key:V(r,t),L:y,W:m,Y:v.te,D:t,X:r,U:d,K:o},null,8,["L","W","Y","D","X","U","K"]))}return n(t,{ref:p,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:d?l+"px":"100%",height:d?"100%":l+"px",pointerEvents:$.value?"none":void 0}},"function"==typeof(a=c)||"[object Object]"===Object.prototype.toString.call(a)&&!i(a)?c:{default:()=>[c],_:2},8,["style"]);var a}}});export{F as VList,J as Virtualizer,L as WindowVirtualizer};
|
|
1
|
+
import{defineComponent as e,ref as t,computed as o,watch as r,createVNode as n,mergeProps as s,isVNode as i,onMounted as l,onUnmounted as c}from"vue";const a=null,{min:u,max:f,abs:d,floor:p}=Math,m=(e,t,o)=>u(o,f(t,e)),h=e=>[...e].sort(((e,t)=>e-t)),v="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},_=()=>{let e;return[new Promise((t=>{e=t})),e]},b=e=>{let t;return()=>(e&&(t=e(),e=void 0),t)},y=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](-1);return e},S=(e,t)=>{const o=e.t[t];return-1===o?e.o:o},g=(e,t,o)=>{const r=-1===e.t[t];return e.t[t]=o,e.i=u(t,e.i),r},x=(e,t)=>{if(!e.l)return 0;if(e.i>=t)return e.u[t];e.i<0&&(e.u[0]=0,e.i=0);let o=e.i,r=e.u[o];for(;o<t;)r+=S(e,o),e.u[++o]=r;return e.i=t,r},z=(e,t,o=0,r=e.l-1)=>{for(;o<=r;){const n=p((o+r)/2),s=x(e,n);if(s<=t){if(s+S(e,n)>t)return n;o=n+1}else r=n-1}return m(o,0,e.l-1)},$=(e,t,o)=>{const r=t-e.l;return e.i=o?-1:u(t-1,e.i),e.l=t,r>0?(y(e.u,r),y(e.t,r,o),e.o*r):(e.u.splice(r),(o?e.t.splice(0,-r):e.t.splice(r)).reduce(((t,o)=>t-(-1===o?e.o:o)),0))},w="undefined"!=typeof window,I=()=>document.documentElement,k=e=>e.ownerDocument,O=e=>e.defaultView,j=/*#__PURE__*/b((()=>!!w&&"rtl"===getComputedStyle(I()).direction)),E=/*#__PURE__*/b((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),T=/*#__PURE__*/b((()=>"scrollBehavior"in I().style)),q=(e,t=40,o=4,r=0,n,s=!1)=>{let i=!!r,l=1,c=0,p=0,m=0,v=0,_=0,b=0,w=0,I=0,k=i?[0,f(r-1,0)]:a,O=[0,0],j=0;const T=((e,t)=>({o:t,t:y([],e),l:e,i:-1,u:y([],e)}))(e,t),q=new Set,B=()=>m-p,M=()=>B()+_+v,N=e=>((e,t,o,r)=>{if(r=u(r,e.l-1),x(e,r)<=t){const n=z(e,t+o,r);return[z(e,t,r,n),n]}{const n=z(e,t,void 0,r);return[n,z(e,t+o,n)]}})(T,e,c,O[0]),P=()=>(e=>e.l?x(e,e.l-1)+S(e,e.l-1):0)(T),R=e=>x(T,e)-_,A=e=>S(T,e),H=(e,t=-1)=>T.t[e]===t,V=e=>{e&&(E()&&0!==w||k&&1===I?_+=e:v+=e)};return{p:()=>l,m:()=>(e=>[e.t.slice(),e.o])(T),h:()=>{let e,t;return b?[e,t]=O:([e,t]=O=N(f(0,M())),k&&(e=u(e,k[0]),t=f(t,k[1]))),1!==w&&(e-=f(0,o)),2!==w&&(t+=f(0,o)),[f(e,0),u(t,T.l-1)]},v:()=>z(T,M()),S:()=>z(T,M()+c),I:H,k:R,O:A,j:()=>T.l,T:()=>m,q:()=>0!==w,B:()=>c,M:()=>p,N:P,P:()=>(b=v,v=0,[b,2===I]),R:(e,t)=>{const o=[e,t];return q.add(o),()=>{q.delete(o)}},A:(e,t)=>{let o,r,n=0;switch(e){case 1:{const e=b;b=0;const o=t-m,s=d(o);e&&s<d(e)+1||0!==I||(w=o<0?2:1),i&&(k=a,i=!1),m=t,n=4;const l=B();l>=-c&&l<=P()&&(n+=1,r=s>c);break}case 2:n=8,0!==w&&(o=!0,n+=1),w=0,I=0,k=a;break;case 3:{const e=t.filter((([e,t])=>!H(e,t)));if(!e.length)break;V(e.reduce(((e,[t,o])=>((2===I||(k&&1===I?t<k[0]:R(t)+(0===w&&0===I?A(t):0)<B()))&&(e+=o-A(t)),e)),0));for(const[t,o]of e){const e=A(t),r=g(T,t,o);s&&(j+=r?o:o-e)}s&&c&&j>c&&(V(((e,t)=>{let o=0;const r=[];e.t.forEach(((e,n)=>{-1!==e&&(r.push(e),n<t&&o++)})),e.i=-1;const n=h(r),s=n.length,i=s/2|0,l=s%2==0?(n[i-1]+n[i])/2:n[i],c=e.o;return((e.o=l)-c)*f(t-o,0)})(T,z(T,M()))),s=!1),n=3,r=!0;break}case 4:c!==t&&(c=t,n=3);break;case 5:t[1]?(V($(T,t[0],!0)),I=2,n=1):($(T,t[0]),n=1);break;case 6:p=t;break;case 7:I=1;break;case 8:k=N(t),n=1}n&&(l=1+(2147483647&l),o&&_&&(v+=_,_=0),q.forEach((([e,t])=>{n&e&&t(r)})))}}},B=setTimeout,M=(e,t)=>t&&j()?-e:e,N=(e,t,o,r,n,s)=>{const i=Date.now;let l=0,c=!1,u=!1,f=!1,d=!1;const p=(()=>{let t;const o=()=>{t!=a&&clearTimeout(t)},r=()=>{o(),t=B((()=>{t=a,(()=>{if(c||u)return c=!1,void p();f=!1,e.A(2)})()}),150)};return r.H=o,r})(),m=()=>{l=i(),f&&(d=!0),s&&e.A(6,s()),e.A(1,r()),p()},h=t=>{if(c||!e.q()||t.ctrlKey)return;const r=i()-l;150>r&&50<r&&(o?t.deltaX:t.deltaY)&&(c=!0)},v=()=>{u=!0,f=d=!1},_=()=>{u=!1,E()&&(f=!0)};return t.addEventListener("scroll",m),t.addEventListener("wheel",h,{passive:!0}),t.addEventListener("touchstart",v,{passive:!0}),t.addEventListener("touchend",_,{passive:!0}),{V:()=>{t.removeEventListener("scroll",m),t.removeEventListener("wheel",h),t.removeEventListener("touchstart",v),t.removeEventListener("touchend",_),p.H()},C:()=>{const[t,s]=e.P();t&&(n(M(t,o),s,d),d=!1,s&&e.B()>e.N()&&e.A(1,r()))}}},P=(e,t,o)=>{let r;return[async(n,s)=>{if(!await t())return;r&&r();const i=()=>{const[t,o]=_();return r=()=>{o(!1)},e.B()&&B(r,150),[t,e.R(2,(()=>{o(!0)}))]};if(s&&T())e.A(8,n()),v((async()=>{for(;;){let t=!0;for(let[o,r]=e.h();o<=r;o++)if(e.I(o)){t=!1;break}if(t)break;const[o,r]=i();try{if(!await o)return}finally{r()}}e.A(7),o(n(),s)}));else for(;;){const[t,r]=i();try{if(e.A(7),o(n()),!await t)return}finally{r()}}},()=>{r&&r()}]},R=e=>{let t;return{F(o){(t||(t=new(O(k(o)).ResizeObserver)(e))).observe(o)},J(e){t.unobserve(e)},V(){t&&t.disconnect()}}},A=/*#__PURE__*/e({props:{L:{type:Object,required:!0},W:{type:Object,required:!0},X:{type:Object,required:!0},Y:{type:Function,required:!0},D:{type:Number,required:!0},U:{type:Boolean},G:{type:Boolean},K:{type:String,required:!0},Z:Object},setup(e){const l=t(),c=o((()=>e.L.value&&e.W.k(e.D))),a=o((()=>e.L.value&&e.W.I(e.D)));return r((()=>l.value&&e.D),((t,o,r)=>{r(e.Y(l.value,e.D))}),{flush:"post"}),()=>{var t;const{X:o,U:r,G:u,K:f}=e,d=a.value,{style:p,...m}=null!==(t=e.Z)&&void 0!==t?t:{},h={contain:"layout style",position:d&&u?void 0:"absolute",[r?"height":"width"]:"100%",[r?"top":"left"]:"0px",[r?j()?"right":"left":"top"]:c.value+"px",visibility:!d||u?"visible":"hidden",...p};return r&&(h.display="inline-flex"),n(f,s({ref:l,style:h},m),"function"==typeof(v=o)||"[object Object]"===Object.prototype.toString.call(v)&&!i(v)?o:{default:()=>[o],_:2},16,["style"]);var v}}}),H=(e,t)=>{const o=e.key;return null!=o?o:"_"+t},V=(e,t)=>e[0]===t[0]&&e[1]===t[1],C=/*#__PURE__*/e({props:{data:{type:Array,required:!0},overscan:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,startMargin:{type:Number,default:0},ssrCount:Number,scrollRef:Object,as:{type:String,default:"div"},item:{type:String,default:"div"},itemProps:Function,keepMounted:Array},emits:["scroll","scrollEnd"],setup(e,{emit:s,expose:u,slots:d}){let p=!!e.ssrCount;const v=e.horizontal,b=t(),y=q(e.data.length,e.itemSize,e.overscan,e.ssrCount,0,!e.itemSize),S=((e,t)=>{let o;const r=t?"width":"height",n=new WeakMap,s=R((t=>{const s=[];for(const{target:i,contentRect:l}of t)if(i.offsetParent)if(i===o)e.A(4,l[r]);else{const e=n.get(i);e!=a&&s.push([e,l[r]])}s.length&&e.A(3,s)}));return{ee(e){s.F(o=e)},te:(e,t)=>(n.set(e,t),s.F(e),()=>{n.delete(e),s.J(e)}),oe:s.V}})(y,v),g=((e,t)=>{let o,r,n=_();const s=t?"scrollLeft":"scrollTop",i=t?"overflowX":"overflowY",[l,c]=P(e,(()=>n[0]),((e,r)=>{e=M(e,t),r?o.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):o[s]=e}));return{re(l){o=l,r=N(e,l,t,(()=>M(l[s],t)),((t,o,r)=>{if(r){const e=l.style,t=e[i];e[i]="hidden",B((()=>{e[i]=t}))}l[s]=e.T()+t,o&&c()})),n[1](!0)},oe(){r&&r.V(),n[1](!1),n=_()},ne(e){l((()=>e))},se(t){t+=e.T(),l((()=>t))},ie(t,{align:o,smooth:r,offset:n=0}={}){if(t=m(t,0,e.j()-1),"nearest"===o){const r=e.k(t),n=e.T();if(r<n)o="start";else{if(!(r+e.O(t)>n+e.B()))return;o="end"}}l((()=>n+e.M()+e.k(t)+("end"===o?e.O(t)-e.B():"center"===o?(e.O(t)-e.B())/2:0)),r)},le:()=>{r&&r.C()}}})(y,v),x=t(y.p()),z=y.R(1,(()=>{x.value=y.p()})),$=y.R(4,(()=>{s("scroll",y.T())})),w=y.R(8,(()=>{s("scrollEnd")})),I=o((e=>{x.value;const t=y.h();return e&&V(e,t)?e:t})),k=o((()=>x.value&&y.q())),O=o((()=>x.value&&y.N()));return l((()=>{p=!1;const t=requestAnimationFrame((()=>{const t=e=>{S.ee(e),g.re(e)};e.scrollRef?t(e.scrollRef):t(b.value.parentElement)}));c((()=>{cancelAnimationFrame(t)}))})),c((()=>{z(),$(),w(),S.oe(),g.oe()})),r((()=>e.data.length),(t=>{y.A(5,[t,e.shift])})),r((()=>e.startMargin),(e=>{y.A(6,e)}),{immediate:!0}),r([x],(()=>{g.le()}),{flush:"post"}),u({get scrollOffset(){return y.T()},get scrollSize(){return(e=>f(e.N(),e.B()))(y)},get viewportSize(){return y.B()},findStartIndex:y.v,findEndIndex:y.S,getItemOffset:y.k,getItemSize:y.O,scrollToIndex:g.ie,scrollTo:g.ne,scrollBy:g.se}),()=>{const t=e.as,o=e.item,r=O.value,s=[],l=t=>{var r;const s=d.default({item:e.data[t],index:t})[0];return n(A,{key:H(s,t),L:x,W:y,Y:S.te,D:t,X:s,U:v,G:p,K:o,Z:null===(r=e.itemProps)||void 0===r?void 0:r.call(e,{item:e.data[t],index:t})},null,8,["L","W","Y","D","X","U","G","K","Z"])};if(e.keepMounted){const t=new Set(e.keepMounted);for(let[e,o]=I.value;e<=o;e++)t.add(e);h([...t]).forEach((e=>{s.push(l(e))}))}else for(let[e,t]=I.value;e<=t;e++)s.push(l(e));return n(t,{ref:b,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:v?r+"px":"100%",height:v?"100%":r+"px",pointerEvents:k.value?"none":void 0}},"function"==typeof(c=s)||"[object Object]"===Object.prototype.toString.call(c)&&!i(c)?s:{default:()=>[s],_:2},8,["style"]);var c}}}),F=/*#__PURE__*/e({props:{data:{type:Array,required:!0},overscan:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number,itemProps:Function,keepMounted:Array},emits:["scroll","scrollEnd"],setup(e,{emit:o,expose:r,slots:s}){const l=e.horizontal,c=e=>{o("scroll",e)},a=()=>{o("scrollEnd")},u=t();return r({get scrollOffset(){return u.value.scrollOffset},get scrollSize(){return u.value.scrollSize},get viewportSize(){return u.value.viewportSize},findStartIndex:(...e)=>u.value.findStartIndex(...e),findEndIndex:(...e)=>u.value.findEndIndex(...e),getItemOffset:(...e)=>u.value.getItemOffset(...e),getItemSize:(...e)=>u.value.getItemSize(...e),scrollToIndex:(...e)=>u.value.scrollToIndex(...e),scrollTo:(...e)=>u.value.scrollTo(...e),scrollBy:(...e)=>u.value.scrollBy(...e)}),()=>{return n("div",{style:{display:l?"inline-block":"block",[l?"overflowX":"overflowY"]:"auto",contain:"strict",width:"100%",height:"100%"}},[n(C,{ref:u,data:e.data,overscan:e.overscan,itemSize:e.itemSize,itemProps:e.itemProps,shift:e.shift,ssrCount:e.ssrCount,horizontal:l,keepMounted:e.keepMounted,onScroll:c,onScrollEnd:a},(t=s,"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!i(t)?s:{default:()=>[s],_:2}),8,["data","overscan","itemSize","itemProps","shift","ssrCount","horizontal","keepMounted","onScroll","onScrollEnd"])],4);var t}}}),J=/*#__PURE__*/e({props:{data:{type:Array,required:!0},overscan:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:"div"},item:{type:String,default:"div"}},emits:["scroll","scrollEnd"],setup(e,{emit:s,slots:u,expose:f}){const d=e.horizontal,p=t(),h=q(e.data.length,e.itemSize,e.overscan,void 0,0,!e.itemSize),v=((e,t)=>{const o=t?"width":"height",r=t?"innerWidth":"innerHeight",n=new WeakMap,s=R((t=>{const r=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=n.get(e);t!=a&&r.push([t,s[o]])}r.length&&e.A(3,r)}));let i;return{ee(t){const o=O(k(t)),n=()=>{e.A(4,o[r])};o.addEventListener("resize",n),n(),i=()=>{o.removeEventListener("resize",n)}},te:(e,t)=>(n.set(e,t),s.F(e),()=>{n.delete(e),s.J(e)}),oe(){i&&i(),s.V()}}})(h,d),b=((e,t)=>{let o,r,n=_();const s=t?"left":"top",[i]=P(e,(()=>n[0]),((e,r)=>{e=M(e,t);const n=O(k(o));r?n.scroll({[s]:e,behavior:"smooth"}):n.scroll({[s]:e})})),l=(e,t,o,r,n=0)=>{const s=r?"offsetLeft":"offsetTop",i=n+(r&&j()?o.innerWidth-e[s]-e.offsetWidth:e[s]),c=e.offsetParent;return e!==t&&c?l(c,t,o,r,i):i};return{re(i){o=i;const c=t?"scrollX":"scrollY",a=k(i),u=O(a);r=N(e,u,t,(()=>M(u[c],t)),(t=>{u.scroll({[s]:e.T()+t})}),(()=>l(i,a.body,u,t))),n[1](!0)},oe(){r&&r.V(),o=void 0,n[1](!1),n=_()},le:()=>{r&&r.C()},ie(r,{align:n,smooth:s,offset:c=0}={}){if(!o)return;if(r=m(r,0,e.j()-1),"nearest"===n){const t=e.k(r),o=e.T();if(t<o)n="start";else{if(!(t+e.O(r)>o+e.B()))return;n="end"}}const a=k(o),u=O(a),f=a.documentElement,d=()=>e.B()-(t?f.clientWidth:f.clientHeight);i((()=>c+l(o,a.body,u,t)+e.k(r)+("end"===n?e.O(r)-(e.B()-d()):"center"===n?(e.O(r)-(e.B()-d()))/2:0)),s)}}})(h,d),y=t(h.p()),S=h.R(1,(()=>{y.value=h.p()})),g=h.R(4,(()=>{s("scroll")})),x=h.R(8,(()=>{s("scrollEnd")})),z=o((e=>{y.value;const t=h.h();return e&&V(e,t)?e:t})),$=o((()=>y.value&&h.q())),w=o((()=>y.value&&h.N()));return l((()=>{const e=p.value;e&&(v.ee(e),b.re(e))})),c((()=>{S(),g(),x(),v.oe(),b.oe()})),r((()=>e.data.length),(t=>{h.A(5,[t,e.shift])})),r([y],(()=>{b.le()}),{flush:"post"}),f({findStartIndex:h.v,findEndIndex:h.S,scrollToIndex:b.ie}),()=>{const t=e.as,o=e.item,r=w.value,s=[];for(let[t,r]=z.value;t<=r;t++){const r=u.default({item:e.data[t],index:t})[0];s.push(n(A,{key:H(r,t),L:y,W:h,Y:v.te,D:t,X:r,U:d,K:o},null,8,["L","W","Y","D","X","U","K"]))}return n(t,{ref:p,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:d?r+"px":"100%",height:d?"100%":r+"px",pointerEvents:$.value?"none":void 0}},"function"==typeof(l=s)||"[object Object]"===Object.prototype.toString.call(l)&&!i(l)?s:{default:()=>[s],_:2},8,["style"]);var l}}});export{F as VList,C as Virtualizer,J as WindowVirtualizer};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|