virtua 0.33.1 → 0.33.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.
@@ -14,6 +14,8 @@ declare const __propDef: {
14
14
  slots: {
15
15
  default: {};
16
16
  };
17
+ exports?: {} | undefined;
18
+ bindings?: string | undefined;
17
19
  };
18
20
  export type ListItemProps = typeof __propDef.props;
19
21
  export type ListItemEvents = typeof __propDef.events;
@@ -82,6 +82,22 @@ export declare const Virtualizer: import("vue").DefineComponent<{
82
82
  * Reference to the scrollable element. The default will get the parent element of virtualizer.
83
83
  */
84
84
  scrollRef: PropType<HTMLElement>;
85
+ /**
86
+ * Component or element type for container element.
87
+ * @defaultValue "div"
88
+ */
89
+ as: {
90
+ type: PropType<keyof import("vue").IntrinsicElementAttributes>;
91
+ default: string;
92
+ };
93
+ /**
94
+ * Component or element type for item element.
95
+ * @defaultValue "div"
96
+ */
97
+ item: {
98
+ type: PropType<keyof import("vue").IntrinsicElementAttributes>;
99
+ default: string;
100
+ };
85
101
  }, VirtualizerHandle, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
86
102
  /**
87
103
  * Callback invoked whenever scroll offset changes.
@@ -150,6 +166,22 @@ export declare const Virtualizer: import("vue").DefineComponent<{
150
166
  * Reference to the scrollable element. The default will get the parent element of virtualizer.
151
167
  */
152
168
  scrollRef: PropType<HTMLElement>;
169
+ /**
170
+ * Component or element type for container element.
171
+ * @defaultValue "div"
172
+ */
173
+ as: {
174
+ type: PropType<keyof import("vue").IntrinsicElementAttributes>;
175
+ default: string;
176
+ };
177
+ /**
178
+ * Component or element type for item element.
179
+ * @defaultValue "div"
180
+ */
181
+ item: {
182
+ type: PropType<keyof import("vue").IntrinsicElementAttributes>;
183
+ default: string;
184
+ };
153
185
  }>> & {
154
186
  onScroll?: ((offset: number) => any) | undefined;
155
187
  onScrollEnd?: (() => any) | undefined;
@@ -159,6 +191,8 @@ export declare const Virtualizer: import("vue").DefineComponent<{
159
191
  overscan: number;
160
192
  horizontal: boolean;
161
193
  startMargin: number;
194
+ as: keyof import("vue").IntrinsicElementAttributes;
195
+ item: keyof import("vue").IntrinsicElementAttributes;
162
196
  }, SlotsType<{
163
197
  default: any;
164
198
  }>>;
@@ -1,5 +1,5 @@
1
1
  /** @jsxImportSource vue */
2
- import { ComponentOptionsMixin, SlotsType } from "vue";
2
+ import { ComponentOptionsMixin, SlotsType, PropType } from "vue";
3
3
  export declare const WindowVirtualizer: import("vue").DefineComponent<{
4
4
  /**
5
5
  * The data items rendered by this component.
@@ -31,6 +31,22 @@ export declare const WindowVirtualizer: import("vue").DefineComponent<{
31
31
  * If true, rendered as a horizontally scrollable list. Otherwise rendered as a vertically scrollable list.
32
32
  */
33
33
  horizontal: BooleanConstructor;
34
+ /**
35
+ * Component or element type for container element.
36
+ * @defaultValue "div"
37
+ */
38
+ as: {
39
+ type: PropType<keyof import("vue").IntrinsicElementAttributes>;
40
+ default: string;
41
+ };
42
+ /**
43
+ * Component or element type for item element.
44
+ * @defaultValue "div"
45
+ */
46
+ item: {
47
+ type: PropType<keyof import("vue").IntrinsicElementAttributes>;
48
+ default: string;
49
+ };
34
50
  }, void, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
35
51
  /**
36
52
  * Callback invoked when scrolling stops.
@@ -79,6 +95,22 @@ export declare const WindowVirtualizer: import("vue").DefineComponent<{
79
95
  * If true, rendered as a horizontally scrollable list. Otherwise rendered as a vertically scrollable list.
80
96
  */
81
97
  horizontal: BooleanConstructor;
98
+ /**
99
+ * Component or element type for container element.
100
+ * @defaultValue "div"
101
+ */
102
+ as: {
103
+ type: PropType<keyof import("vue").IntrinsicElementAttributes>;
104
+ default: string;
105
+ };
106
+ /**
107
+ * Component or element type for item element.
108
+ * @defaultValue "div"
109
+ */
110
+ item: {
111
+ type: PropType<keyof import("vue").IntrinsicElementAttributes>;
112
+ default: string;
113
+ };
82
114
  }>> & {
83
115
  onScrollEnd?: (() => any) | undefined;
84
116
  onRangeChange?: ((startIndex: number, endIndex: number) => any) | undefined;
@@ -86,6 +118,8 @@ export declare const WindowVirtualizer: import("vue").DefineComponent<{
86
118
  shift: boolean;
87
119
  overscan: number;
88
120
  horizontal: boolean;
121
+ as: keyof import("vue").IntrinsicElementAttributes;
122
+ item: keyof import("vue").IntrinsicElementAttributes;
89
123
  }, SlotsType<{
90
124
  default: any;
91
125
  }>>;
package/lib/vue/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var e=require("vue");const t=Math.min,o=Math.max,r=Math.abs,n=setTimeout,s=(e,r,n)=>t(n,o(r,e)),i=e=>null!=e,l="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},c=e=>{let t,o;return(...r)=>(t||(t=!0,o=e(...r)),o)},a=-1,u=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](a);return e},f=(e,t)=>{const o=e.t[t];return o===a?e.o:o},d=(e,o,r)=>{const n=e.t[o]===a;return e.t[o]=r,e.i=t(o,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 o=e.i,r=e.u[o];for(;o<t;)r+=f(e,o),e.u[++o]=r;return e.i=t,r},p=(e,t,o)=>{for(;o>=0&&o<e.l;){const r=h(e,o);if(r<=t){if(r+f(e,o)>t)break;o++}else o--}return s(o,0,e.l-1)},_=(e,o,r)=>{const n=o-e.l;return e.i=r?-1:t(o-1,e.i),e.l=o,n>0?(u(e.u,n),u(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===a?e.o:o)),0))},g="undefined"!=typeof window,m=()=>document.documentElement,v=e=>e.ownerDocument,b=e=>e.defaultView,y=/*#__PURE__*/c((()=>!!g&&"rtl"===getComputedStyle(m()).direction)),S=/*#__PURE__*/c((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),z=/*#__PURE__*/c((()=>"scrollBehavior"in m().style)),w=(e,r,n,s,i)=>(1!==s&&(e-=o(0,n)),2!==s&&(r+=o(0,n)),[o(e,0),t(r,i-1)]),x=(e,n=40,s=0,i,l=!1)=>{let c=!!s,g=[],m=0,v=0,b=0,y=0,z=0,w=0,x=0,k=0,C=0,I=c?[0,o(s-1,0)]:null,B=[0,0],R=0;const N=((e,t)=>({o:t,t:u([],e),l:e,i:-1,u:u([],e)}))(e,n),O=new Set,T=()=>b-v,q=e=>((e,o,r,n)=>{const s=p(e,o,t(r,e.l-1));return[s,p(e,o+n,s)]})(N,e,B[0],m),E=()=>(e=>e.l?h(e,e.l-1)+f(e,e.l-1):0)(N),M=e=>h(N,e)-w,H=e=>f(N,e),j=e=>{e&&(S()&&0!==k?w+=e:(z+=e,y++))};return{h:()=>g,p:()=>(e=>[[...e.t],e.o])(N),m:()=>x?B:(B=q(o(0,T()+w+z)),I?[t(B[0],I[0]),o(B[1],I[1])]:B),v:e=>N.t[e]===a,S:()=>!!I&&N.t.slice(o(0,I[0]-1),t(N.l-1,I[1]+1)+1).includes(a),k:M,C:H,I:()=>N.l,B:()=>b,R:()=>k,N:()=>m,O:()=>v,T:E,q:()=>y,M:()=>(x=z,z=0,[x,2===C]),H(e,t){const o=[e,t];return O.add(o),()=>{O.delete(o)}},j(e,t){let n,s,i=0;switch(e){case 1:{const e=x;x=0;const o=t-b,n=r(o);e&&n<r(e)+1||0!==C||(k=o<0?2:1),c&&(I=null,c=!1),b=t,i=4;const l=T();l>=-m&&l<=E()&&(i+=1,s=n>m);break}case 2:i=8,0!==k&&(n=!0,i+=1),k=0,C=0,I=null;break;case 3:{const e=t.filter((([e,t])=>N.t[e]!==t));if(!e.length)break;j(e.reduce(((e,[t,o])=>((2===C||(I?t<I[0]:M(t)+(0===k&&0===C?H(t):0)<T()))&&(e+=o-H(t)),e)),0));for(const[t,o]of e){const e=H(t),r=d(N,t,o);l&&(R+=o,r||(R-=e))}l&&m&&R>m&&(j(((e,t)=>{let r=0;const n=e.t.filter(((e,o)=>{const n=e!==a;return n&&o<t&&r++,n})),s=e.o;return e.i=-1,((e.o=(e=>{const t=(e=>[...e].sort(((e,t)=>e-t)))(e),o=e.length/2|0;return t.length%2==0?(t[o-1]+t[o])/2:t[o]})(n))-s)*o(t-r,0)})(N,B[0])),l=!1),i=3,s=!0;break}case 4:m!==t&&(m=t,i=3);break;case 5:t[1]?(j(_(N,t[0],!0)),C=2,i=1):_(N,t[0]);break;case 6:v=t;break;case 7:C=1;break;case 8:I=q(t),i=1}i&&(g=[],n&&w&&(z+=w,w=0,y++),O.forEach((([e,t])=>{i&e&&t(s)})))}}},k=e=>{let t;return{A(o){(t||(t=new(b(v(o)).ResizeObserver)(e))).observe(o)},J(e){t.unobserve(e)},L(){t&&t.disconnect()}}},C=(e,t)=>t&&y()?-e:e,I=(e,t,o,r,s,l)=>{const c=Date.now;let a=0,u=!1,f=!1,d=!1,h=!1;const p=(()=>{let t;const o=()=>{i(t)&&clearTimeout(t)},r=()=>{o(),t=n((()=>{t=null,(()=>{if(u||f)return u=!1,void p();d=!1,e.j(2)})()}),150)};return r.P=o,r})(),_=()=>{a=c(),d&&(h=!0),l&&e.j(6,l()),e.j(1,r()),p()},g=t=>{if(u||0===e.R()||t.ctrlKey)return;const r=c()-a;150>r&&50<r&&(o?t.deltaX:t.deltaY)&&(u=!0)},m=()=>{f=!0,d=h=!1},v=()=>{f=!1,S()&&(d=!0)};return t.addEventListener("scroll",_),t.addEventListener("wheel",g,{passive:!0}),t.addEventListener("touchstart",m,{passive:!0}),t.addEventListener("touchend",v,{passive:!0}),{L:()=>{t.removeEventListener("scroll",_),t.removeEventListener("wheel",g),t.removeEventListener("touchstart",m),t.removeEventListener("touchend",v),p.P()},W:()=>{const[t,n]=e.M();t&&(s(C(t,o),n,h),h=!1,n&&e.N()>e.T()&&e.j(1,r()))}}},B=/*#__PURE__*/e.defineComponent({props:{X:{type:Object,required:!0},Y:{type:Function,required:!0},D:{type:Number,required:!0},F:{type:Number,required:!0},U:{type:Boolean},V:{type:Boolean},G:{type:Boolean}},setup(t){const o=e.ref();return e.watch((()=>o.value&&t.D),((e,r,n)=>{n(t.Y(o.value,t.D))}),{flush:"post"}),()=>{const{X:r,F:n,U:s,V:i,G:l}=t,c={margin:0,padding:0,position:s&&l?void 0:"absolute",[i?"height":"width"]:"100%",[i?"top":"left"]:"0px",[i?y()?"right":"left":"top"]:n+"px",visibility:!s||l?"visible":"hidden"};return i&&(c.display="flex"),e.createVNode("div",{ref:o,style:c},[r],4)}}}),R=(e,t)=>{const o=e.key;return i(o)?o:"_"+t},N={data:{type:Array,required:!0},overscan:{type:Number,default:4},itemSize:Number,shift:Boolean,horizontal:Boolean,startMargin:{type:Number,default:0},ssrCount:Number,scrollRef:Object},O=/*#__PURE__*/e.defineComponent({props:N,emits:["scroll","scrollEnd","rangeChange"],setup(t,{emit:r,expose:c,slots:a}){var u;let f=!!t.ssrCount;const d=t.horizontal,h=e.ref(),p=x(t.data.length,null!==(u=t.itemSize)&&void 0!==u?u:40,t.ssrCount,0,!t.itemSize),_=((e,t)=>{let o;const r=t?"width":"height",n=new WeakMap,s=k((t=>{const s=[];for(const{target:l,contentRect:c}of t)if(l.offsetParent)if(l===o)e.j(4,c[r]);else{const e=n.get(l);i(e)&&s.push([e,c[r]])}s.length&&e.j(3,s)}));return{K(e){s.A(o=e)},Z:(e,t)=>(n.set(e,t),s.A(e),()=>{n.delete(e),s.J(e)}),L:s.L}})(p,d),g=((e,t)=>{let o,r,i;const c=t?"scrollLeft":"scrollTop",a=t?"overflowX":"overflowY",u=async(r,s)=>{if(!o)return void l((()=>u(r,s)));i&&i();const a=()=>{let t;return[new Promise(((e,o)=>{t=e,n(i=o,150)})),e.H(2,(()=>{t&&t()}))]};if(s&&z()){for(;e.j(8,r()),e.S();){const[e,t]=a();try{await e}catch(e){return}finally{t()}}o.scrollTo({[t?"left":"top"]:C(r(),t),behavior:"smooth"})}else for(;;){const[n,s]=a();try{o[c]=C(r(),t),e.j(7),await n}catch(e){return}finally{s()}}};return{A(s){o=s,r=I(e,s,t,(()=>C(s[c],t)),((t,o,r)=>{if(r){const e=s.style,t=e[a];e[a]="hidden",n((()=>{e[a]=t}))}o?(s[c]=e.B()+t,i&&i()):s[c]+=t}))},L(){r&&r.L()},$(e){u((()=>e))},ee(t){t+=e.B(),u((()=>t))},te(t,{align:o,smooth:r,offset:n=0}={}){if(t=s(t,0,e.I()-1),"nearest"===o){const r=e.k(t),n=e.B();if(r<n)o="start";else{if(!(r+e.C(t)>n+e.N()))return;o="end"}}u((()=>n+e.O()+e.k(t)+("end"===o?e.C(t)-e.N():"center"===o?(e.C(t)-e.N())/2:0)),r)},W:()=>{r&&r.W()}}})(p,d),m=e.ref(p.h()),v=p.H(1,(()=>{m.value=p.h()})),b=p.H(4,(()=>{r("scroll",p.B())})),y=p.H(8,(()=>{r("scrollEnd")}));return e.onMounted((()=>{f=!1,l((()=>{const e=e=>{_.K(e),g.A(e)};t.scrollRef?e(t.scrollRef):e(h.value.parentElement)}))})),e.onUnmounted((()=>{v(),b(),y(),_.L(),g.L()})),e.watch((()=>t.data.length),(e=>{p.j(5,[e,t.shift])})),e.watch((()=>t.startMargin),(e=>{p.j(6,e)}),{immediate:!0}),e.watch([m,p.q],(([,e],[,t])=>{e!==t&&g.W()}),{flush:"post"}),e.watch([m,p.m],(([,[e,t]],[,[o,n]])=>{o===e&&n===t||r("rangeChange",e,t)}),{flush:"post"}),c({get scrollOffset(){return p.B()},get scrollSize(){return(e=>o(e.T(),e.N()))(p)},get viewportSize(){return p.N()},getItemOffset:p.k,scrollToIndex:g.te,scrollTo:g.$,scrollBy:g.ee}),()=>{m.value;const o=t.data.length,[r,n]=p.m(),s=p.R(),i=p.T(),l=[];for(let[i,c]=w(r,n,t.overscan,s,o);i<=c;i++){const o=a.default(t.data[i])[0];l.push(e.createVNode(B,{key:R(o,i),Y:_.Z,D:i,F:p.k(i),U:p.v(i),X:o,V:d,G:f},null,8,["_resizer","_index","_offset","_hide","_children","_isHorizontal","_isSSR"]))}return e.createVNode("div",{ref:h,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:d?i+"px":"100%",height:d?"100%":i+"px",pointerEvents:0!==s?"none":"auto"}},[l],4)}}}),T={data:{type:Array,required:!0},overscan:{type:Number,default:4},itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number},q=/*#__PURE__*/e.defineComponent({props:T,emits:["scroll","scrollEnd","rangeChange"],setup(t,{emit:o,expose:r,slots:n}){const s=t.horizontal,i=e=>{o("scroll",e)},l=()=>{o("scrollEnd")},c=(e,t)=>{o("rangeChange",e,t)},a=e.ref();return r({get scrollOffset(){return a.value.scrollOffset},get scrollSize(){return a.value.scrollSize},get viewportSize(){return a.value.viewportSize},getItemOffset:(...e)=>a.value.getItemOffset(...e),scrollToIndex:(...e)=>a.value.scrollToIndex(...e),scrollTo:(...e)=>a.value.scrollTo(...e),scrollBy:(...e)=>a.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(O,{ref:a,data:t.data,overscan:t.overscan,itemSize:t.itemSize,shift:t.shift,ssrCount:t.ssrCount,horizontal:s,onScroll:i,onScrollEnd:l,onRangeChange:c},(o=n,"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!e.isVNode(o)?n:{default:()=>[n],_:2}),8,["data","overscan","itemSize","shift","ssrCount","horizontal","onScroll","onScrollEnd","onRangeChange"])],4);var o}}}),E={data:{type:Array,required:!0},overscan:{type:Number,default:4},itemSize:Number,shift:Boolean,horizontal:Boolean},M=/*#__PURE__*/e.defineComponent({props:E,emits:["scrollEnd","rangeChange"],setup(t,{emit:o,slots:r}){var n;const s=t.horizontal,l=e.ref(),c=x(t.data.length,null!==(n=t.itemSize)&&void 0!==n?n:40,void 0,0,!t.itemSize),a=((e,t)=>{const o=t?"width":"height",r=t?"innerWidth":"innerHeight",n=new WeakMap,s=k((t=>{const r=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=n.get(e);i(t)&&r.push([t,s[o]])}r.length&&e.j(3,r)}));let l;return{K(t){const o=b(v(t)),n=()=>{e.j(4,o[r])};o.addEventListener("resize",n),n(),l=()=>{o.removeEventListener("resize",n)}},Z:(e,t)=>(n.set(e,t),s.A(e),()=>{n.delete(e),s.J(e)}),L(){l&&l(),s.L()}}})(c,s),u=((e,t)=>{let o;return{A(r){const n=t?"scrollX":"scrollY",s=v(r),i=b(s),l=s.body,c=(e,t,o,r=0)=>{const n=o?"offsetLeft":"offsetTop",s=r+(o&&y()?i.innerWidth-e[n]-e.offsetWidth:e[n]),l=e.offsetParent;return e!==t&&l?c(l,t,o,s):s};o=I(e,i,t,(()=>C(i[n],t)),((o,r)=>{r?i.scroll({[t?"left":"top"]:e.B()+o}):i.scrollBy(t?o:0,t?0:o)}),(()=>c(r,l,t)))},L(){o&&o.L()},W:()=>{o&&o.W()}}})(c,s),f=e.ref(c.h()),d=c.H(1,(()=>{f.value=c.h()})),h=c.H(8,(()=>{o("scrollEnd")}));return e.onMounted((()=>{const e=l.value;e&&(a.K(e),u.A(e))})),e.onUnmounted((()=>{d(),h(),a.L(),u.L()})),e.watch((()=>t.data.length),(e=>{c.j(5,[e,t.shift])})),e.watch([f,c.q],(([,e],[,t])=>{e!==t&&u.W()}),{flush:"post"}),e.watch([f,c.m],(([,[e,t]],[,[r,n]])=>{r===e&&n===t||o("rangeChange",e,t)}),{flush:"post"}),()=>{f.value;const o=t.data.length,[n,i]=c.m(),u=c.R(),d=c.T(),h=[];for(let[l,f]=w(n,i,t.overscan,u,o);l<=f;l++){const o=r.default(t.data[l])[0];h.push(e.createVNode(B,{key:R(o,l),Y:a.Z,D:l,F:c.k(l),U:c.v(l),X:o,V:s},null,8,["_resizer","_index","_offset","_hide","_children","_isHorizontal"]))}return e.createVNode("div",{ref:l,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:s?d+"px":"100%",height:s?"100%":d+"px",pointerEvents:0!==u?"none":"auto"}},[h],4)}}});exports.VList=q,exports.Virtualizer=O,exports.WindowVirtualizer=M;
1
+ var e=require("vue");const t=Math.min,o=Math.max,r=Math.abs,n=setTimeout,s=(e,r,n)=>t(n,o(r,e)),i=e=>null!=e,l="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},c=e=>{let t,o;return(...r)=>(t||(t=!0,o=e(...r)),o)},a=-1,u=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](a);return e},f=(e,t)=>{const o=e.t[t];return o===a?e.o:o},d=(e,o,r)=>{const n=e.t[o]===a;return e.t[o]=r,e.i=t(o,e.i),n},p=(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+=f(e,o),e.u[++o]=r;return e.i=t,r},_=(e,t,o)=>{for(;o>=0&&o<e.l;){const r=p(e,o);if(r<=t){if(r+f(e,o)>t)break;o++}else o--}return s(o,0,e.l-1)},h=(e,o,r)=>{const n=o-e.l;return e.i=r?-1:t(o-1,e.i),e.l=o,n>0?(u(e.u,n),u(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===a?e.o:o)),0))},g="undefined"!=typeof window,v=()=>document.documentElement,m=e=>e.ownerDocument,b=e=>e.defaultView,y=/*#__PURE__*/c((()=>!!g&&"rtl"===getComputedStyle(v()).direction)),S=/*#__PURE__*/c((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),z=/*#__PURE__*/c((()=>"scrollBehavior"in v().style)),w=(e,r,n,s,i)=>(1!==s&&(e-=o(0,n)),2!==s&&(r+=o(0,n)),[o(e,0),t(r,i-1)]),x=(e,n=40,s=0,i,l=!1)=>{let c=!!s,g=[],v=0,m=0,b=0,y=0,z=0,w=0,x=0,k=0,O=0,C=c?[0,o(s-1,0)]:null,I=[0,0],j=0;const B=((e,t)=>({o:t,t:u([],e),l:e,i:-1,u:u([],e)}))(e,n),R=new Set,q=()=>b-m,N=e=>((e,o,r,n)=>{const s=_(e,o,t(r,e.l-1));return[s,_(e,o+n,s)]})(B,e,I[0],v),T=()=>(e=>e.l?p(e,e.l-1)+f(e,e.l-1):0)(B),E=e=>p(B,e)-w,M=e=>f(B,e),H=e=>{e&&(S()&&0!==k?w+=e:(z+=e,y++))};return{p:()=>g,h:()=>(e=>[[...e.t],e.o])(B),v:()=>x?I:(I=N(o(0,q()+w+z)),C?[t(I[0],C[0]),o(I[1],C[1])]:I),m:e=>B.t[e]===a,S:()=>!!C&&B.t.slice(o(0,C[0]-1),t(B.l-1,C[1]+1)+1).includes(a),k:E,O:M,C:()=>B.l,I:()=>b,j:()=>k,B:()=>v,R:()=>m,q:T,N:()=>y,T:()=>(x=z,z=0,[x,2===O]),M(e,t){const o=[e,t];return R.add(o),()=>{R.delete(o)}},H(e,t){let n,s,i=0;switch(e){case 1:{const e=x;x=0;const o=t-b,n=r(o);e&&n<r(e)+1||0!==O||(k=o<0?2:1),c&&(C=null,c=!1),b=t,i=4;const l=q();l>=-v&&l<=T()&&(i+=1,s=n>v);break}case 2:i=8,0!==k&&(n=!0,i+=1),k=0,O=0,C=null;break;case 3:{const e=t.filter((([e,t])=>B.t[e]!==t));if(!e.length)break;H(e.reduce(((e,[t,o])=>((2===O||(C?t<C[0]:E(t)+(0===k&&0===O?M(t):0)<q()))&&(e+=o-M(t)),e)),0));for(const[t,o]of e){const e=M(t),r=d(B,t,o);l&&(j+=o,r||(j-=e))}l&&v&&j>v&&(H(((e,t)=>{let r=0;const n=e.t.filter(((e,o)=>{const n=e!==a;return n&&o<t&&r++,n})),s=e.o;return e.i=-1,((e.o=(e=>{const t=(e=>[...e].sort(((e,t)=>e-t)))(e),o=e.length/2|0;return t.length%2==0?(t[o-1]+t[o])/2:t[o]})(n))-s)*o(t-r,0)})(B,I[0])),l=!1),i=3,s=!0;break}case 4:v!==t&&(v=t,i=3);break;case 5:t[1]?(H(h(B,t[0],!0)),O=2,i=1):h(B,t[0]);break;case 6:m=t;break;case 7:O=1;break;case 8:C=N(t),i=1}i&&(g=[],n&&w&&(z+=w,w=0,y++),R.forEach((([e,t])=>{i&e&&t(s)})))}}},k=e=>{let t;return{A(o){(t||(t=new(b(m(o)).ResizeObserver)(e))).observe(o)},J(e){t.unobserve(e)},L(){t&&t.disconnect()}}},O=(e,t)=>t&&y()?-e:e,C=(e,t,o,r,s,l)=>{const c=Date.now;let a=0,u=!1,f=!1,d=!1,p=!1;const _=(()=>{let t;const o=()=>{i(t)&&clearTimeout(t)},r=()=>{o(),t=n((()=>{t=null,(()=>{if(u||f)return u=!1,void _();d=!1,e.H(2)})()}),150)};return r.P=o,r})(),h=()=>{a=c(),d&&(p=!0),l&&e.H(6,l()),e.H(1,r()),_()},g=t=>{if(u||0===e.j()||t.ctrlKey)return;const r=c()-a;150>r&&50<r&&(o?t.deltaX:t.deltaY)&&(u=!0)},v=()=>{f=!0,d=p=!1},m=()=>{f=!1,S()&&(d=!0)};return t.addEventListener("scroll",h),t.addEventListener("wheel",g,{passive:!0}),t.addEventListener("touchstart",v,{passive:!0}),t.addEventListener("touchend",m,{passive:!0}),{L:()=>{t.removeEventListener("scroll",h),t.removeEventListener("wheel",g),t.removeEventListener("touchstart",v),t.removeEventListener("touchend",m),_.P()},W:()=>{const[t,n]=e.T();t&&(s(O(t,o),n,p),p=!1,n&&e.B()>e.q()&&e.H(1,r()))}}},I=/*#__PURE__*/e.defineComponent({props:{X:{type:Object,required:!0},Y:{type:Function,required:!0},D:{type:Number,required:!0},F:{type:Number,required:!0},U:{type:Boolean},V:{type:Boolean},G:{type:Boolean},K:{type:String,required:!0}},setup(t){const o=e.ref();return e.watch((()=>o.value&&t.D),((e,r,n)=>{n(t.Y(o.value,t.D))}),{flush:"post"}),()=>{const{X:r,F:n,U:s,V:i,G:l,K:c}=t,a={margin:0,padding:0,position:s&&l?void 0:"absolute",[i?"height":"width"]:"100%",[i?"top":"left"]:"0px",[i?y()?"right":"left":"top"]:n+"px",visibility:!s||l?"visible":"hidden"};return i&&(a.display="flex"),e.createVNode(c,{ref:o,style:a},"function"==typeof(u=r)||"[object Object]"===Object.prototype.toString.call(u)&&!e.isVNode(u)?r:{default:()=>[r],_:2},8,["style"]);var u}}}),j=(e,t)=>{const o=e.key;return i(o)?o:"_"+t},B={data:{type:Array,required:!0},overscan:{type:Number,default:4},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"}},R=/*#__PURE__*/e.defineComponent({props:B,emits:["scroll","scrollEnd","rangeChange"],setup(t,{emit:r,expose:c,slots:a}){var u;let f=!!t.ssrCount;const d=t.horizontal,p=e.ref(),_=x(t.data.length,null!==(u=t.itemSize)&&void 0!==u?u:40,t.ssrCount,0,!t.itemSize),h=((e,t)=>{let o;const r=t?"width":"height",n=new WeakMap,s=k((t=>{const s=[];for(const{target:l,contentRect:c}of t)if(l.offsetParent)if(l===o)e.H(4,c[r]);else{const e=n.get(l);i(e)&&s.push([e,c[r]])}s.length&&e.H(3,s)}));return{Z(e){s.A(o=e)},$:(e,t)=>(n.set(e,t),s.A(e),()=>{n.delete(e),s.J(e)}),L:s.L}})(_,d),g=((e,t)=>{let o,r,i;const c=t?"scrollLeft":"scrollTop",a=t?"overflowX":"overflowY",u=async(r,s)=>{if(!o)return void l((()=>u(r,s)));i&&i();const a=()=>{let t;return[new Promise(((e,o)=>{t=e,n(i=o,150)})),e.M(2,(()=>{t&&t()}))]};if(s&&z()){for(;e.H(8,r()),e.S();){const[e,t]=a();try{await e}catch(e){return}finally{t()}}o.scrollTo({[t?"left":"top"]:O(r(),t),behavior:"smooth"})}else for(;;){const[n,s]=a();try{o[c]=O(r(),t),e.H(7),await n}catch(e){return}finally{s()}}};return{A(s){o=s,r=C(e,s,t,(()=>O(s[c],t)),((t,o,r)=>{if(r){const e=s.style,t=e[a];e[a]="hidden",n((()=>{e[a]=t}))}o?(s[c]=e.I()+t,i&&i()):s[c]+=t}))},L(){r&&r.L()},ee(e){u((()=>e))},te(t){t+=e.I(),u((()=>t))},oe(t,{align:o,smooth:r,offset:n=0}={}){if(t=s(t,0,e.C()-1),"nearest"===o){const r=e.k(t),n=e.I();if(r<n)o="start";else{if(!(r+e.O(t)>n+e.B()))return;o="end"}}u((()=>n+e.R()+e.k(t)+("end"===o?e.O(t)-e.B():"center"===o?(e.O(t)-e.B())/2:0)),r)},W:()=>{r&&r.W()}}})(_,d),v=e.ref(_.p()),m=_.M(1,(()=>{v.value=_.p()})),b=_.M(4,(()=>{r("scroll",_.I())})),y=_.M(8,(()=>{r("scrollEnd")}));return e.onMounted((()=>{f=!1,l((()=>{const e=e=>{h.Z(e),g.A(e)};t.scrollRef?e(t.scrollRef):e(p.value.parentElement)}))})),e.onUnmounted((()=>{m(),b(),y(),h.L(),g.L()})),e.watch((()=>t.data.length),(e=>{_.H(5,[e,t.shift])})),e.watch((()=>t.startMargin),(e=>{_.H(6,e)}),{immediate:!0}),e.watch([v,_.N],(([,e],[,t])=>{e!==t&&g.W()}),{flush:"post"}),e.watch([v,_.v],(([,[e,t]],[,[o,n]])=>{o===e&&n===t||r("rangeChange",e,t)}),{flush:"post"}),c({get scrollOffset(){return _.I()},get scrollSize(){return(e=>o(e.q(),e.B()))(_)},get viewportSize(){return _.B()},getItemOffset:_.k,scrollToIndex:g.oe,scrollTo:g.ee,scrollBy:g.te}),()=>{v.value;const o=t.as,r=t.item,n=t.data.length,[s,i]=_.v(),l=_.j(),c=_.q(),u=[];for(let[o,c]=w(s,i,t.overscan,l,n);o<=c;o++){const n=a.default(t.data[o])[0];u.push(e.createVNode(I,{key:j(n,o),Y:h.$,D:o,F:_.k(o),U:_.m(o),X:n,V:d,G:f,K:r},null,8,["_resizer","_index","_offset","_hide","_children","_isHorizontal","_isSSR","_as"]))}return e.createVNode(o,{ref:p,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:d?c+"px":"100%",height:d?"100%":c+"px",pointerEvents:0!==l?"none":"auto"}},"function"==typeof(g=u)||"[object Object]"===Object.prototype.toString.call(g)&&!e.isVNode(g)?u:{default:()=>[u],_:2},8,["style"]);var g}}}),q={data:{type:Array,required:!0},overscan:{type:Number,default:4},itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number},N=/*#__PURE__*/e.defineComponent({props:q,emits:["scroll","scrollEnd","rangeChange"],setup(t,{emit:o,expose:r,slots:n}){const s=t.horizontal,i=e=>{o("scroll",e)},l=()=>{o("scrollEnd")},c=(e,t)=>{o("rangeChange",e,t)},a=e.ref();return r({get scrollOffset(){return a.value.scrollOffset},get scrollSize(){return a.value.scrollSize},get viewportSize(){return a.value.viewportSize},getItemOffset:(...e)=>a.value.getItemOffset(...e),scrollToIndex:(...e)=>a.value.scrollToIndex(...e),scrollTo:(...e)=>a.value.scrollTo(...e),scrollBy:(...e)=>a.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(R,{ref:a,data:t.data,overscan:t.overscan,itemSize:t.itemSize,shift:t.shift,ssrCount:t.ssrCount,horizontal:s,onScroll:i,onScrollEnd:l,onRangeChange:c},(o=n,"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!e.isVNode(o)?n:{default:()=>[n],_:2}),8,["data","overscan","itemSize","shift","ssrCount","horizontal","onScroll","onScrollEnd","onRangeChange"])],4);var o}}}),T={data:{type:Array,required:!0},overscan:{type:Number,default:4},itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:"div"},item:{type:String,default:"div"}},E=/*#__PURE__*/e.defineComponent({props:T,emits:["scrollEnd","rangeChange"],setup(t,{emit:o,slots:r}){var n;const s=t.horizontal,l=e.ref(),c=x(t.data.length,null!==(n=t.itemSize)&&void 0!==n?n:40,void 0,0,!t.itemSize),a=((e,t)=>{const o=t?"width":"height",r=t?"innerWidth":"innerHeight",n=new WeakMap,s=k((t=>{const r=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=n.get(e);i(t)&&r.push([t,s[o]])}r.length&&e.H(3,r)}));let l;return{Z(t){const o=b(m(t)),n=()=>{e.H(4,o[r])};o.addEventListener("resize",n),n(),l=()=>{o.removeEventListener("resize",n)}},$:(e,t)=>(n.set(e,t),s.A(e),()=>{n.delete(e),s.J(e)}),L(){l&&l(),s.L()}}})(c,s),u=((e,t)=>{let o;return{A(r){const n=t?"scrollX":"scrollY",s=m(r),i=b(s),l=s.body,c=(e,t,o,r=0)=>{const n=o?"offsetLeft":"offsetTop",s=r+(o&&y()?i.innerWidth-e[n]-e.offsetWidth:e[n]),l=e.offsetParent;return e!==t&&l?c(l,t,o,s):s};o=C(e,i,t,(()=>O(i[n],t)),((o,r)=>{r?i.scroll({[t?"left":"top"]:e.I()+o}):i.scrollBy(t?o:0,t?0:o)}),(()=>c(r,l,t)))},L(){o&&o.L()},W:()=>{o&&o.W()}}})(c,s),f=e.ref(c.p()),d=c.M(1,(()=>{f.value=c.p()})),p=c.M(8,(()=>{o("scrollEnd")}));return e.onMounted((()=>{const e=l.value;e&&(a.Z(e),u.A(e))})),e.onUnmounted((()=>{d(),p(),a.L(),u.L()})),e.watch((()=>t.data.length),(e=>{c.H(5,[e,t.shift])})),e.watch([f,c.N],(([,e],[,t])=>{e!==t&&u.W()}),{flush:"post"}),e.watch([f,c.v],(([,[e,t]],[,[r,n]])=>{r===e&&n===t||o("rangeChange",e,t)}),{flush:"post"}),()=>{f.value;const o=t.as,n=t.item,i=t.data.length,[u,d]=c.v(),p=c.j(),_=c.q(),h=[];for(let[o,l]=w(u,d,t.overscan,p,i);o<=l;o++){const i=r.default(t.data[o])[0];h.push(e.createVNode(I,{key:j(i,o),Y:a.$,D:o,F:c.k(o),U:c.m(o),X:i,V:s,K:n},null,8,["_resizer","_index","_offset","_hide","_children","_isHorizontal","_as"]))}return e.createVNode(o,{ref:l,style:{overflowAnchor:"none",flex:"none",position:"relative",visibility:"hidden",width:s?_+"px":"100%",height:s?"100%":_+"px",pointerEvents:0!==p?"none":"auto"}},"function"==typeof(g=h)||"[object Object]"===Object.prototype.toString.call(g)&&!e.isVNode(g)?h:{default:()=>[h],_:2},8,["style"]);var g}}});exports.VList=N,exports.Virtualizer=R,exports.WindowVirtualizer=E;
2
2
  //# sourceMappingURL=index.js.map