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