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.
@@ -23,7 +23,7 @@ export interface WindowVirtualizerProps<T> {
23
23
  */
24
24
  overscan?: number;
25
25
  /**
26
- * Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
26
+ * Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
27
27
  *
28
28
  * - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
29
29
  * - If set, you can opt out estimation and use the value as initial item size.
@@ -18,7 +18,7 @@ export declare const VList: import("vue").DefineComponent<{
18
18
  */
19
19
  overscan: NumberConstructor;
20
20
  /**
21
- * Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
21
+ * Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
22
22
  *
23
23
  * - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
24
24
  * - If set, you can opt out estimation and use the value as initial item size.
@@ -70,7 +70,7 @@ export declare const VList: import("vue").DefineComponent<{
70
70
  */
71
71
  overscan: NumberConstructor;
72
72
  /**
73
- * Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
73
+ * Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
74
74
  *
75
75
  * - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
76
76
  * - If set, you can opt out estimation and use the value as initial item size.
@@ -64,7 +64,7 @@ export declare const Virtualizer: import("vue").DefineComponent<{
64
64
  */
65
65
  overscan: NumberConstructor;
66
66
  /**
67
- * Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
67
+ * Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
68
68
  *
69
69
  * - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
70
70
  * - If set, you can opt out estimation and use the value as initial item size.
@@ -79,7 +79,7 @@ export declare const Virtualizer: import("vue").DefineComponent<{
79
79
  */
80
80
  horizontal: BooleanConstructor;
81
81
  /**
82
- * If you put an element before virtualizer, you have to define its height with this prop.
82
+ * The offset to the scrollable parent before virtualizer in pixels. If you put an element before virtualizer, you have to set its height to this prop.
83
83
  */
84
84
  startMargin: {
85
85
  type: NumberConstructor;
@@ -143,7 +143,7 @@ export declare const Virtualizer: import("vue").DefineComponent<{
143
143
  */
144
144
  overscan: NumberConstructor;
145
145
  /**
146
- * Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
146
+ * Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
147
147
  *
148
148
  * - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
149
149
  * - If set, you can opt out estimation and use the value as initial item size.
@@ -158,7 +158,7 @@ export declare const Virtualizer: import("vue").DefineComponent<{
158
158
  */
159
159
  horizontal: BooleanConstructor;
160
160
  /**
161
- * If you put an element before virtualizer, you have to define its height with this prop.
161
+ * The offset to the scrollable parent before virtualizer in pixels. If you put an element before virtualizer, you have to set its height to this prop.
162
162
  */
163
163
  startMargin: {
164
164
  type: NumberConstructor;
@@ -31,7 +31,7 @@ export declare const WindowVirtualizer: import("vue").DefineComponent<{
31
31
  */
32
32
  overscan: NumberConstructor;
33
33
  /**
34
- * Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
34
+ * Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
35
35
  *
36
36
  * - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
37
37
  * - If set, you can opt out estimation and use the value as initial item size.
@@ -84,7 +84,7 @@ export declare const WindowVirtualizer: import("vue").DefineComponent<{
84
84
  */
85
85
  overscan: NumberConstructor;
86
86
  /**
87
- * Item size hint for unmeasured items. It will help to reduce scroll jump when items are measured if used properly.
87
+ * Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
88
88
  *
89
89
  * - If not set, initial item sizes will be automatically estimated from measured sizes. This is recommended for most cases.
90
90
  * - If set, you can opt out estimation and use the value as initial item size.
package/lib/vue/index.cjs CHANGED
@@ -1,2 +1,2 @@
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;return[new Promise((t=>{e=t})),e]},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},v=(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)},_=(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))},b="undefined"!=typeof window,y=()=>document.documentElement,S=e=>e.ownerDocument,g=e=>e.defaultView,x=/*#__PURE__*/u((()=>!!b&&"rtl"===getComputedStyle(y()).direction)),z=/*#__PURE__*/u((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),$=/*#__PURE__*/u((()=>"scrollBehavior"in y().style)),w=(e,s=40,i=4,c=0,a,u=!1)=>{let b=!!c,y=1,S=0,g=0,x=0,$=0,w=0,I=0,k=0,O=0,j=b?[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,M=()=>x-g,N=()=>M()+w+$,P=e=>((e,t,r,n)=>{if(n=o(n,e.l-1),m(e,n)<=t){const o=v(e,t+r,n);return[v(e,t,n,o),o]}{const o=v(e,t,void 0,n);return[o,v(e,t+r,o)]}})(q,e,S,E[0]),R=()=>(e=>e.l?m(e,e.l-1)+p(e,e.l-1):0)(q),A=e=>m(q,e)-w,H=e=>p(q,e),V=e=>{e&&(z()&&0!==k||j&&1===O?w+=e:$+=e)};return{p:()=>y,h:()=>(e=>[e.t.slice(),e.o])(q),m:()=>{let e,t;return I?[e,t]=E:([e,t]=E=P(r(0,N())),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)]},v:()=>v(q,N()),S:()=>v(q,N()+S),I:e=>q.t[e]===f,k:A,O:H,j:()=>q.l,T:()=>x,q:()=>0!==k,B:()=>S,M:()=>g,N:R,P:()=>(I=$,$=0,[I,2===O]),R:(e,t)=>{const o=[e,t];return B.add(o),()=>{B.delete(o)}},A:(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),b&&(j=t,b=!1),x=o,c=4;const l=M();l>=-S&&l<=R()&&(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&&1===O?t<j[0]:A(t)+(0===k&&0===O?H(t):0)<M()))&&(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,v(q,N()))),u=!1),c=3,i=!0;break}case 4:S!==o&&(S=o,c=3);break;case 5:o[1]?(V(_(q,o[0],!0)),O=2,c=1):(_(q,o[0]),c=1);break;case 6:g=o;break;case 7:O=1;break;case 8:j=P(o),c=1}c&&(y=1+(2147483647&y),s&&w&&($+=w,w=0),B.forEach((([e,t])=>{c&e&&t(i)})))}}},I=setTimeout,k=(e,t)=>t&&x()?-e:e,O=(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=I((()=>{o=t,(()=>{if(a||u)return a=!1,void p();f=!1,e.A(2)})()}),150)};return n.H=r,n})(),h=()=>{c=l(),f&&(d=!0),i&&e.A(6,i()),e.A(1,n()),p()},m=t=>{if(a||!e.q()||t.ctrlKey)return;const o=l()-c;150>o&&50<o&&(r?t.deltaX:t.deltaY)&&(a=!0)},v=()=>{u=!0,f=d=!1},_=()=>{u=!1,z()&&(f=!0)};return o.addEventListener("scroll",h),o.addEventListener("wheel",m,{passive:!0}),o.addEventListener("touchstart",v,{passive:!0}),o.addEventListener("touchend",_,{passive:!0}),{V:()=>{o.removeEventListener("scroll",h),o.removeEventListener("wheel",m),o.removeEventListener("touchstart",v),o.removeEventListener("touchend",_),p.H()},C:()=>{const[t,o]=e.P();t&&(s(k(t,r),o,d),d=!1,o&&e.B()>e.N()&&e.A(1,n()))}}},j=(e,t,o)=>{let r;return[async(n,s)=>{if(!await t())return;r&&r();const i=()=>{const[t,o]=a();return r=()=>{o(!1)},e.B()&&I(r,150),[t,e.R(2,(()=>{o(!0)}))]};if(s&&$())e.A(8,n()),c((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()}]},E=e=>{let t;return{J(o){(t||(t=new(g(S(o)).ResizeObserver)(e))).observe(o)},F(e){t.unobserve(e)},V(){t&&t.disconnect()}}},T=/*#__PURE__*/e.defineComponent({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(t){const o=e.ref(),r=e.computed((()=>t.L.value&&t.W.k(t.D))),n=e.computed((()=>t.L.value&&t.W.I(t.D)));return e.watch((()=>o.value&&t.D),((e,r,n)=>{n(t.Y(o.value,t.D))}),{flush:"post"}),()=>{var s;const{X:i,U:l,G:c,K:a}=t,u=n.value,{style:f,...d}=null!==(s=t.Z)&&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],M={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},N=/*#__PURE__*/e.defineComponent({props:M,emits:["scroll","scrollEnd"],setup(o,{emit:n,expose:s,slots:u}){let f=!!o.ssrCount;const d=o.horizontal,p=e.ref(),h=w(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.A(4,c[n]);else{const e=s.get(l);e!=t&&i.push([e,c[n]])}i.length&&e.A(3,i)}));return{ee(e){i.J(r=e)},te:(e,t)=>(s.set(e,t),i.J(e),()=>{s.delete(e),i.F(e)}),oe:i.V}})(h,d),v=((e,t)=>{let o,r,n=a();const s=t?"scrollLeft":"scrollTop",l=t?"overflowX":"overflowY",[c,u]=j(e,(()=>n[0]),((e,r)=>{e=k(e,t),r?o.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):o[s]=e}));return{re(i){o=i,r=O(e,i,t,(()=>k(i[s],t)),((t,o,r)=>{if(r){const e=i.style,t=e[l];e[l]="hidden",I((()=>{e[l]=t}))}i[s]=e.T()+t,o&&u()})),n[1](!0)},oe(){r&&r.V(),n[1](!1),n=a()},ne(e){c((()=>e))},se(t){t+=e.T(),c((()=>t))},ie(t,{align:o,smooth:r,offset:n=0}={}){if(t=i(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"}}c((()=>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()}}})(h,d),_=e.ref(h.p()),b=h.R(1,(()=>{_.value=h.p()})),y=h.R(4,(()=>{n("scroll",h.T())})),S=h.R(8,(()=>{n("scrollEnd")})),g=e.computed((e=>{_.value;const t=h.m();return e&&B(e,t)?e:t})),x=e.computed((()=>_.value&&h.q())),z=e.computed((()=>_.value&&h.N()));return e.onMounted((()=>{f=!1,c((()=>{const e=e=>{m.ee(e),v.re(e)};o.scrollRef?e(o.scrollRef):e(p.value.parentElement)}))})),e.onUnmounted((()=>{b(),y(),S(),m.oe(),v.oe()})),e.watch((()=>o.data.length),(e=>{h.A(5,[e,o.shift])})),e.watch((()=>o.startMargin),(e=>{h.A(6,e)}),{immediate:!0}),e.watch([_],(()=>{v.le()}),{flush:"post"}),s({get scrollOffset(){return h.T()},get scrollSize(){return(e=>r(e.N(),e.B()))(h)},get viewportSize(){return h.B()},findStartIndex:h.v,findEndIndex:h.S,getItemOffset:h.k,getItemSize:h.O,scrollToIndex:v.ie,scrollTo:v.ne,scrollBy:v.se}),()=>{const t=o.as,r=o.item,[n,s]=g.value,i=z.value,c=[],a=t=>{var n;const s=u.default({item:o.data[t],index:t})[0];return e.createVNode(T,{key:q(s,t),L:_,W:h,Y:m.te,D:t,X:s,U:d,G:f,K:r,Z: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"])};if(o.keepMounted){const e=new Set(o.keepMounted);for(let t=n,o=s;t<=o;t++)e.add(t);l([...e]).forEach((e=>{c.push(a(e))}))}else for(let e=n,t=s;e<=t;e++)c.push(a(e));return e.createVNode(t,{ref:p,style:{contain:"size paint style",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(v=c)||"[object Object]"===Object.prototype.toString.call(v)&&!e.isVNode(v)?c:{default:()=>[c],_:2},8,["style"]);var v}}}),P={data:{type:Array,required:!0},overscan:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number,itemProps:Function,keepMounted:Array},R=/*#__PURE__*/e.defineComponent({props:P,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(N,{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=w(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.A(3,n)}));let l;return{ee(t){const o=g(S(t)),r=()=>{e.A(4,o[n])};o.addEventListener("resize",r),r(),l=()=>{o.removeEventListener("resize",r)}},te:(e,t)=>(s.set(e,t),i.J(e),()=>{s.delete(e),i.F(e)}),oe(){l&&l(),i.V()}}})(u,l),d=((e,t)=>{let o,r,n=a();const s=t?"left":"top",[l]=j(e,(()=>n[0]),((e,r)=>{e=k(e,t);const n=g(S(o));r?n.scroll({[s]:e,behavior:"smooth"}):n.scroll({[s]:e})})),c=(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?c(l,t,o,r,i):i};return{re(i){o=i;const l=t?"scrollX":"scrollY",a=S(i),u=g(a);r=O(e,u,t,(()=>k(u[l],t)),(t=>{u.scroll({[s]:e.T()+t})}),(()=>c(i,a.body,u,t))),n[1](!0)},oe(){r&&r.V(),o=void 0,n[1](!1),n=a()},le:()=>{r&&r.C()},ie(r,{align:n,smooth:s,offset:a=0}={}){if(!o)return;if(r=i(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 u=S(o),f=g(u),d=u.documentElement,p=()=>e.B()-(t?d.clientWidth:d.clientHeight);l((()=>a+c(o,u.body,f,t)+e.k(r)+("end"===n?e.O(r)-(e.B()-p()):"center"===n?(e.O(r)-(e.B()-p()))/2:0)),s)}}})(u,l),p=e.ref(u.p()),h=u.R(1,(()=>{p.value=u.p()})),m=u.R(4,(()=>{r("scroll")})),v=u.R(8,(()=>{r("scrollEnd")})),_=e.computed((e=>{p.value;const t=u.m();return e&&B(e,t)?e:t})),b=e.computed((()=>p.value&&u.q())),y=e.computed((()=>p.value&&u.N()));return e.onMounted((()=>{const e=c.value;e&&(f.ee(e),d.re(e))})),e.onUnmounted((()=>{h(),m(),v(),f.oe(),d.oe()})),e.watch((()=>o.data.length),(e=>{u.A(5,[e,o.shift])})),e.watch([p],(()=>{d.le()}),{flush:"post"}),s({findStartIndex:u.v,findEndIndex:u.S,scrollToIndex:d.ie}),()=>{const t=o.as,r=o.item,[s,i]=_.value,a=y.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),L:p,W:u,Y:f.te,D:t,X:s,U:l,K:r},null,8,["_stateVersion","_store","_resizer","_index","_children","_isHorizontal","_as"]))}return e.createVNode(t,{ref:c,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:l?a+"px":"100%",height:l?"100%":a+"px",pointerEvents:b.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=R,exports.Virtualizer=N,exports.WindowVirtualizer=H;
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;return[new Promise((t=>{e=t})),e]},u=e=>{let t;return()=>(e&&(t=e(),e=void 0),t)},f=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](-1);return e},d=(e,t)=>{const o=e.t[t];return-1===o?e.o:o},p=(e,t,r)=>{const n=-1===e.t[t];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+=d(e,o),e.u[++o]=r;return e.i=t,r},h=(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+d(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?(f(e.u,n),f(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-(-1===o?e.o:o)),0))},_="undefined"!=typeof window,b=()=>document.documentElement,y=e=>e.ownerDocument,S=e=>e.defaultView,g=/*#__PURE__*/u((()=>!!_&&"rtl"===getComputedStyle(b()).direction)),x=/*#__PURE__*/u((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),z=/*#__PURE__*/u((()=>"scrollBehavior"in b().style)),$=(e,s=40,i=4,c=0,a,u=!1)=>{let _=!!c,b=1,y=0,S=0,g=0,z=0,$=0,w=0,I=0,k=0,O=_?[0,r(c-1,0)]:t,j=[0,0],E=0;const q=((e,t)=>({o:t,t:f([],e),l:e,i:-1,u:f([],e)}))(e,s),T=new Set,B=()=>g-S,M=()=>B()+$+z,N=e=>((e,t,r,n)=>{if(n=o(n,e.l-1),m(e,n)<=t){const o=h(e,t+r,n);return[h(e,t,n,o),o]}{const o=h(e,t,void 0,n);return[o,h(e,t+r,o)]}})(q,e,y,j[0]),P=()=>(e=>e.l?m(e,e.l-1)+d(e,e.l-1):0)(q),R=e=>m(q,e)-$,A=e=>d(q,e),H=(e,t=-1)=>q.t[e]===t,V=e=>{e&&(x()&&0!==I||O&&1===k?$+=e:z+=e)};return{p:()=>b,m:()=>(e=>[e.t.slice(),e.o])(q),h:()=>{let e,t;return w?[e,t]=j:([e,t]=j=N(r(0,M())),O&&(e=o(e,O[0]),t=r(t,O[1]))),1!==I&&(e-=r(0,i)),2!==I&&(t+=r(0,i)),[r(e,0),o(t,q.l-1)]},v:()=>h(q,M()),S:()=>h(q,M()+y),I:H,k:R,O:A,j:()=>q.l,q:()=>g,T:()=>0!==I,B:()=>y,M:()=>S,N:P,P:()=>(w=z,z=0,[w,2===k]),R:(e,t)=>{const o=[e,t];return T.add(o),()=>{T.delete(o)}},A:(e,o)=>{let s,i,c=0;switch(e){case 1:{const e=w;w=0;const r=o-g,s=n(r);e&&s<n(e)+1||0!==k||(I=r<0?2:1),_&&(O=t,_=!1),g=o,c=4;const l=B();l>=-y&&l<=P()&&(c+=1,i=s>y);break}case 2:c=8,0!==I&&(s=!0,c+=1),I=0,k=0,O=t;break;case 3:{const e=o.filter((([e,t])=>!H(e,t)));if(!e.length)break;V(e.reduce(((e,[t,o])=>((2===k||(O&&1===k?t<O[0]:R(t)+(0===I&&0===k?A(t):0)<B()))&&(e+=o-A(t)),e)),0));for(const[t,o]of e){const e=A(t),r=p(q,t,o);u&&(E+=r?o:o-e)}u&&y&&E>y&&(V(((e,t)=>{let o=0;const n=[];e.t.forEach(((e,r)=>{-1!==e&&(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,h(q,M()))),u=!1),c=3,i=!0;break}case 4:y!==o&&(y=o,c=3);break;case 5:o[1]?(V(v(q,o[0],!0)),k=2,c=1):(v(q,o[0]),c=1);break;case 6:S=o;break;case 7:k=1;break;case 8:O=N(o),c=1}c&&(b=1+(2147483647&b),s&&$&&(z+=$,$=0),T.forEach((([e,t])=>{c&e&&t(i)})))}}},w=setTimeout,I=(e,t)=>t&&g()?-e:e,k=(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=w((()=>{o=t,(()=>{if(a||u)return a=!1,void p();f=!1,e.A(2)})()}),150)};return n.H=r,n})(),m=()=>{c=l(),f&&(d=!0),i&&e.A(6,i()),e.A(1,n()),p()},h=t=>{if(a||!e.T()||t.ctrlKey)return;const o=l()-c;150>o&&50<o&&(r?t.deltaX:t.deltaY)&&(a=!0)},v=()=>{u=!0,f=d=!1},_=()=>{u=!1,x()&&(f=!0)};return o.addEventListener("scroll",m),o.addEventListener("wheel",h,{passive:!0}),o.addEventListener("touchstart",v,{passive:!0}),o.addEventListener("touchend",_,{passive:!0}),{V:()=>{o.removeEventListener("scroll",m),o.removeEventListener("wheel",h),o.removeEventListener("touchstart",v),o.removeEventListener("touchend",_),p.H()},C:()=>{const[t,o]=e.P();t&&(s(I(t,r),o,d),d=!1,o&&e.B()>e.N()&&e.A(1,n()))}}},O=(e,t,o)=>{let r;return[async(n,s)=>{if(!await t())return;r&&r();const i=()=>{const[t,o]=a();return r=()=>{o(!1)},e.B()&&w(r,150),[t,e.R(2,(()=>{o(!0)}))]};if(s&&z())e.A(8,n()),c((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()}]},j=e=>{let t;return{F(o){(t||(t=new(S(y(o)).ResizeObserver)(e))).observe(o)},J(e){t.unobserve(e)},V(){t&&t.disconnect()}}},E=/*#__PURE__*/e.defineComponent({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(t){const o=e.ref(),r=e.computed((()=>t.L.value&&t.W.k(t.D))),n=e.computed((()=>t.L.value&&t.W.I(t.D)));return e.watch((()=>o.value&&t.D),((e,r,n)=>{n(t.Y(o.value,t.D))}),{flush:"post"}),()=>{var s;const{X:i,U:l,G:c,K:a}=t,u=n.value,{style:f,...d}=null!==(s=t.Z)&&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"]: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(m=i)||"[object Object]"===Object.prototype.toString.call(m)&&!e.isVNode(m)?i:{default:()=>[i],_:2},16,["style"]);var m}}}),q=(e,t)=>{const o=e.key;return null!=o?o:"_"+t},T=(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},M=/*#__PURE__*/e.defineComponent({props:B,emits:["scroll","scrollEnd"],setup(o,{emit:n,expose:s,slots:c}){let u=!!o.ssrCount;const f=o.horizontal,d=e.ref(),p=$(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=j((o=>{const i=[];for(const{target:l,contentRect:c}of o)if(l.offsetParent)if(l===r)e.A(4,c[n]);else{const e=s.get(l);e!=t&&i.push([e,c[n]])}i.length&&e.A(3,i)}));return{ee(e){i.F(r=e)},te:(e,t)=>(s.set(e,t),i.F(e),()=>{s.delete(e),i.J(e)}),oe:i.V}})(p,f),h=((e,t)=>{let o,r,n=a();const s=t?"scrollLeft":"scrollTop",l=t?"overflowX":"overflowY",[c,u]=O(e,(()=>n[0]),((e,r)=>{e=I(e,t),r?o.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):o[s]=e}));return{re(i){o=i,r=k(e,i,t,(()=>I(i[s],t)),((t,o,r)=>{if(r){const e=i.style,t=e[l];e[l]="hidden",w((()=>{e[l]=t}))}i[s]=e.q()+t,o&&u()})),n[1](!0)},oe(){r&&r.V(),n[1](!1),n=a()},ne(e){c((()=>e))},se(t){t+=e.q(),c((()=>t))},ie(t,{align:o,smooth:r,offset:n=0}={}){if(t=i(t,0,e.j()-1),"nearest"===o){const r=e.k(t),n=e.q();if(r<n)o="start";else{if(!(r+e.O(t)>n+e.B()))return;o="end"}}c((()=>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()}}})(p,f),v=e.ref(p.p()),_=p.R(1,(()=>{v.value=p.p()})),b=p.R(4,(()=>{n("scroll",p.q())})),y=p.R(8,(()=>{n("scrollEnd")})),S=e.computed((e=>{v.value;const t=p.h();return e&&T(e,t)?e:t})),g=e.computed((()=>v.value&&p.T())),x=e.computed((()=>v.value&&p.N()));return e.onMounted((()=>{u=!1;const t=requestAnimationFrame((()=>{const e=e=>{m.ee(e),h.re(e)};o.scrollRef?e(o.scrollRef):e(d.value.parentElement)}));e.onUnmounted((()=>{cancelAnimationFrame(t)}))})),e.onUnmounted((()=>{_(),b(),y(),m.oe(),h.oe()})),e.watch((()=>o.data.length),(e=>{p.A(5,[e,o.shift])})),e.watch((()=>o.startMargin),(e=>{p.A(6,e)}),{immediate:!0}),e.watch([v],(()=>{h.le()}),{flush:"post"}),s({get scrollOffset(){return p.q()},get scrollSize(){return(e=>r(e.N(),e.B()))(p)},get viewportSize(){return p.B()},findStartIndex:p.v,findEndIndex:p.S,getItemOffset:p.k,getItemSize:p.O,scrollToIndex:h.ie,scrollTo:h.ne,scrollBy:h.se}),()=>{const t=o.as,r=o.item,n=x.value,s=[],i=t=>{var n;const s=c.default({item:o.data[t],index:t})[0];return e.createVNode(E,{key:q(s,t),L:v,W:p,Y:m.te,D:t,X:s,U:f,G:u,K:r,Z: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"])};if(o.keepMounted){const e=new Set(o.keepMounted);for(let[t,o]=S.value;t<=o;t++)e.add(t);l([...e]).forEach((e=>{s.push(i(e))}))}else for(let[e,t]=S.value;e<=t;e++)s.push(i(e));return e.createVNode(t,{ref:d,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:f?n+"px":"100%",height:f?"100%":n+"px",pointerEvents:g.value?"none":void 0}},"function"==typeof(a=s)||"[object Object]"===Object.prototype.toString.call(a)&&!e.isVNode(a)?s:{default:()=>[s],_:2},8,["style"]);var a}}}),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}}}),R={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:R,emits:["scroll","scrollEnd"],setup(o,{emit:r,slots:n,expose:s}){const l=o.horizontal,c=e.ref(),u=$(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=j((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.A(3,n)}));let l;return{ee(t){const o=S(y(t)),r=()=>{e.A(4,o[n])};o.addEventListener("resize",r),r(),l=()=>{o.removeEventListener("resize",r)}},te:(e,t)=>(s.set(e,t),i.F(e),()=>{s.delete(e),i.J(e)}),oe(){l&&l(),i.V()}}})(u,l),d=((e,t)=>{let o,r,n=a();const s=t?"left":"top",[l]=O(e,(()=>n[0]),((e,r)=>{e=I(e,t);const n=S(y(o));r?n.scroll({[s]:e,behavior:"smooth"}):n.scroll({[s]:e})})),c=(e,t,o,r,n=0)=>{const s=r?"offsetLeft":"offsetTop",i=n+(r&&g()?o.innerWidth-e[s]-e.offsetWidth:e[s]),l=e.offsetParent;return e!==t&&l?c(l,t,o,r,i):i};return{re(i){o=i;const l=t?"scrollX":"scrollY",a=y(i),u=S(a);r=k(e,u,t,(()=>I(u[l],t)),(t=>{u.scroll({[s]:e.q()+t})}),(()=>c(i,a.body,u,t))),n[1](!0)},oe(){r&&r.V(),o=void 0,n[1](!1),n=a()},le:()=>{r&&r.C()},ie(r,{align:n,smooth:s,offset:a=0}={}){if(!o)return;if(r=i(r,0,e.j()-1),"nearest"===n){const t=e.k(r),o=e.q();if(t<o)n="start";else{if(!(t+e.O(r)>o+e.B()))return;n="end"}}const u=y(o),f=S(u),d=u.documentElement,p=()=>e.B()-(t?d.clientWidth:d.clientHeight);l((()=>a+c(o,u.body,f,t)+e.k(r)+("end"===n?e.O(r)-(e.B()-p()):"center"===n?(e.O(r)-(e.B()-p()))/2:0)),s)}}})(u,l),p=e.ref(u.p()),m=u.R(1,(()=>{p.value=u.p()})),h=u.R(4,(()=>{r("scroll")})),v=u.R(8,(()=>{r("scrollEnd")})),_=e.computed((e=>{p.value;const t=u.h();return e&&T(e,t)?e:t})),b=e.computed((()=>p.value&&u.T())),x=e.computed((()=>p.value&&u.N()));return e.onMounted((()=>{const e=c.value;e&&(f.ee(e),d.re(e))})),e.onUnmounted((()=>{m(),h(),v(),f.oe(),d.oe()})),e.watch((()=>o.data.length),(e=>{u.A(5,[e,o.shift])})),e.watch([p],(()=>{d.le()}),{flush:"post"}),s({findStartIndex:u.v,findEndIndex:u.S,scrollToIndex:d.ie}),()=>{const t=o.as,r=o.item,s=x.value,i=[];for(let[t,s]=_.value;t<=s;t++){const s=n.default({item:o.data[t],index:t})[0];i.push(e.createVNode(E,{key:q(s,t),L:p,W:u,Y:f.te,D:t,X:s,U:l,K:r},null,8,["_stateVersion","_store","_resizer","_index","_children","_isHorizontal","_as"]))}return e.createVNode(t,{ref:c,style:{contain:"size paint style",overflowAnchor:"none",overflow:"clip",flex:"none",position:"relative",width:l?s+"px":"100%",height:l?"100%":s+"px",pointerEvents:b.value?"none":void 0}},"function"==typeof(a=i)||"[object Object]"===Object.prototype.toString.call(a)&&!e.isVNode(a)?i:{default:()=>[i],_:2},8,["style"]);var a}}});exports.VList=P,exports.Virtualizer=M,exports.WindowVirtualizer=A;
2
2
  //# sourceMappingURL=index.cjs.map