virtua 0.36.1 → 0.36.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.
@@ -10,15 +10,15 @@ export interface VirtualizerHandle {
10
10
  */
11
11
  readonly cache: CacheSnapshot;
12
12
  /**
13
- * Get current scrollTop or scrollLeft.
13
+ * Get current scrollTop, or scrollLeft if horizontal: true.
14
14
  */
15
15
  readonly scrollOffset: number;
16
16
  /**
17
- * Get current scrollHeight or scrollWidth.
17
+ * Get current scrollHeight, or scrollWidth if horizontal: true.
18
18
  */
19
19
  readonly scrollSize: number;
20
20
  /**
21
- * Get current offsetHeight or offsetWidth.
21
+ * Get current offsetHeight, or offsetWidth if horizontal: true.
22
22
  */
23
23
  readonly viewportSize: number;
24
24
  /**
@@ -26,6 +26,11 @@ export interface VirtualizerHandle {
26
26
  * @param index index of item
27
27
  */
28
28
  getItemOffset(index: number): number;
29
+ /**
30
+ * Get item size.
31
+ * @param index index of item
32
+ */
33
+ getItemSize(index: number): number;
29
34
  /**
30
35
  * Scroll to the item specified by index.
31
36
  * @param index index of item
@@ -106,12 +111,12 @@ export interface VirtualizerProps {
106
111
  */
107
112
  item?: keyof JSX.IntrinsicElements | CustomItemComponent;
108
113
  /**
109
- * Reference to the scrollable element. The default will get the parent element of virtualizer.
114
+ * Reference to the scrollable element. The default will get the direct parent element of virtualizer.
110
115
  */
111
116
  scrollRef?: RefObject<HTMLElement>;
112
117
  /**
113
118
  * Callback invoked whenever scroll offset changes.
114
- * @param offset Current scrollTop or scrollLeft.
119
+ * @param offset Current scrollTop, or scrollLeft if horizontal: true.
115
120
  */
116
121
  onScroll?: (offset: number) => void;
117
122
  /**
@@ -120,16 +125,10 @@ export interface VirtualizerProps {
120
125
  onScrollEnd?: () => void;
121
126
  /**
122
127
  * Callback invoked when visible items range changes.
128
+ * @param startIndex The start index of viewable items.
129
+ * @param endIndex The end index of viewable items.
123
130
  */
124
- onRangeChange?: (
125
- /**
126
- * The start index of viewable items.
127
- */
128
- startIndex: number,
129
- /**
130
- * The end index of viewable items.
131
- */
132
- endIndex: number) => void;
131
+ onRangeChange?: (startIndex: number, endIndex: number) => void;
133
132
  }
134
133
  /**
135
134
  * Customizable list virtualizer for advanced usage. See {@link VirtualizerProps} and {@link VirtualizerHandle}.
@@ -70,16 +70,10 @@ export interface WindowVirtualizerProps {
70
70
  onScrollEnd?: () => void;
71
71
  /**
72
72
  * Callback invoked when visible items range changes.
73
+ * @param startIndex The start index of viewable items.
74
+ * @param endIndex The end index of viewable items.
73
75
  */
74
- onRangeChange?: (
75
- /**
76
- * The start index of viewable items.
77
- */
78
- startIndex: number,
79
- /**
80
- * The end index of viewable items.
81
- */
82
- endIndex: number) => void;
76
+ onRangeChange?: (startIndex: number, endIndex: number) => void;
83
77
  }
84
78
  /**
85
79
  * {@link Virtualizer} controlled by the window scrolling. See {@link WindowVirtualizerProps} and {@link WindowVirtualizerHandle}.
@@ -8,15 +8,15 @@ import { ScrollToIndexOpts } from "../core/types";
8
8
  */
9
9
  export interface VirtualizerHandle {
10
10
  /**
11
- * Get current scrollTop or scrollLeft.
11
+ * Get current scrollTop, or scrollLeft if horizontal: true.
12
12
  */
13
13
  readonly scrollOffset: number;
14
14
  /**
15
- * Get current scrollHeight or scrollWidth.
15
+ * Get current scrollHeight, or scrollWidth if horizontal: true.
16
16
  */
17
17
  readonly scrollSize: number;
18
18
  /**
19
- * Get current offsetHeight or offsetWidth.
19
+ * Get current offsetHeight, or offsetWidth if horizontal: true.
20
20
  */
21
21
  readonly viewportSize: number;
22
22
  /**
@@ -24,6 +24,11 @@ export interface VirtualizerHandle {
24
24
  * @param index index of item
25
25
  */
26
26
  getItemOffset(index: number): number;
27
+ /**
28
+ * Get item size.
29
+ * @param index index of item
30
+ */
31
+ getItemSize(index: number): number;
27
32
  /**
28
33
  * Scroll to the item specified by index.
29
34
  * @param index index of item
@@ -73,7 +78,7 @@ export interface VirtualizerProps<T> {
73
78
  */
74
79
  item?: ValidComponent;
75
80
  /**
76
- * Reference to the scrollable element. The default will get the parent element of virtualizer.
81
+ * Reference to the scrollable element. The default will get the direct parent element of virtualizer.
77
82
  */
78
83
  scrollRef?: HTMLElement;
79
84
  /**
@@ -97,7 +102,7 @@ export interface VirtualizerProps<T> {
97
102
  startMargin?: number;
98
103
  /**
99
104
  * Callback invoked whenever scroll offset changes.
100
- * @param offset Current scrollTop or scrollLeft.
105
+ * @param offset Current scrollTop, or scrollLeft if horizontal: true.
101
106
  */
102
107
  onScroll?: (offset: number) => void;
103
108
  /**
@@ -106,16 +111,10 @@ export interface VirtualizerProps<T> {
106
111
  onScrollEnd?: () => void;
107
112
  /**
108
113
  * Callback invoked when visible items range changes.
114
+ * @param startIndex The start index of viewable items.
115
+ * @param endIndex The end index of viewable items.
109
116
  */
110
- onRangeChange?: (
111
- /**
112
- * The start index of viewable items.
113
- */
114
- startIndex: number,
115
- /**
116
- * The end index of viewable items.
117
- */
118
- endIndex: number) => void;
117
+ onRangeChange?: (startIndex: number, endIndex: number) => void;
119
118
  }
120
119
  /**
121
120
  * Customizable list virtualizer for advanced usage. See {@link VirtualizerProps} and {@link VirtualizerHandle}.
@@ -40,16 +40,10 @@ export interface WindowVirtualizerProps<T> {
40
40
  onScrollEnd?: () => void;
41
41
  /**
42
42
  * Callback invoked when visible items range changes.
43
+ * @param startIndex The start index of viewable items.
44
+ * @param endIndex The end index of viewable items.
43
45
  */
44
- onRangeChange?: (
45
- /**
46
- * The start index of viewable items.
47
- */
48
- startIndex: number,
49
- /**
50
- * The end index of viewable items.
51
- */
52
- endIndex: number) => void;
46
+ onRangeChange?: (startIndex: number, endIndex: number) => void;
53
47
  }
54
48
  /**
55
49
  * {@link Virtualizer} controlled by the window scrolling. See {@link WindowVirtualizerProps} and {@link WindowVirtualizerHandle}.
@@ -1,2 +1,2 @@
1
- var e=require("solid-js/web"),t=require("solid-js");const r=null,{min:n,max:o,abs:s,floor:i}=Math,l=setTimeout,c=(e,t,r)=>n(r,o(t,e)),u="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},a=e=>{let t,r;return(...n)=>(t||(t=!0,r=e(...n)),r)},f=-1,d=(e,t,r)=>{const n=r?"unshift":"push";for(let r=0;r<t;r++)e[n](f);return e},h=(e,t)=>{const r=e.o[t];return r===f?e.i:r},g=(e,t,r)=>{const o=e.o[t]===f;return e.o[t]=r,e.l=n(t,e.l),o},_=(e,t)=>{if(!e.u)return 0;if(e.l>=t)return e.h[t];e.l<0&&(e.h[0]=0,e.l=0);let r=e.l,n=e.h[r];for(;r<t;)n+=h(e,r),e.h[++r]=n;return e.l=t,n},v=(e,t,r=0,n=e.u-1)=>{for(;r<=n;){const o=i((r+n)/2),s=_(e,o);if(s<=t){if(s+h(e,o)>t)return o;r=o+1}else n=o-1}return c(r,0,e.u-1)},p=(e,t,r)=>{const o=t-e.u;return e.l=r?-1:n(t-1,e.l),e.u=t,o>0?(d(e.h,o),d(e.o,o,r),e.i*o):(e.h.splice(o),(r?e.o.splice(0,-o):e.o.splice(o)).reduce(((t,r)=>t-(r===f?e.i:r)),0))},m="undefined"!=typeof window,w=()=>document.documentElement,b=e=>e.ownerDocument,S=e=>e.defaultView,y=/*#__PURE__*/a((()=>!!m&&"rtl"===getComputedStyle(w()).direction)),z=/*#__PURE__*/a((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),x=/*#__PURE__*/a((()=>"scrollBehavior"in w().style)),k=(e,t,r,s,i)=>(1!==s&&(e-=o(0,r)),2!==s&&(t+=o(0,r)),[o(e,0),n(t,i-1)]),I=(e,t=40,i=0,l,c=!1)=>{let u=!!i,a=[],m=0,w=0,b=0,S=0,y=0,x=0,k=0,I=0,R=0,T=u?[0,o(i-1,0)]:r,M=[0,0],C=0;const J=((e,t)=>({i:t,o:d([],e),u:e,l:-1,h:d([],e)}))(e,t),O=new Set,q=()=>b-w,B=e=>((e,t,r,o)=>{if(o=n(o,e.u-1),_(e,o)<=t){const n=v(e,t+r,o);return[v(e,t,o,n),n]}{const n=v(e,t,void 0,o);return[n,v(e,t+r,n)]}})(J,e,m,M[0]),E=()=>(e=>e.u?_(e,e.u-1)+h(e,e.u-1):0)(J),H=e=>_(J,e)-x,L=e=>h(J,e),P=e=>{e&&(z()&&0!==I?x+=e:(y+=e,S++))};return{_:()=>a,v:()=>(e=>[e.o.slice(),e.i])(J),p:()=>k?M:(M=B(o(0,q()+x+y)),T?[n(M[0],T[0]),o(M[1],T[1])]:M),m:e=>J.o[e]===f,S:()=>!!T&&J.o.slice(o(0,T[0]-1),n(J.u-1,T[1]+1)+1).includes(f),k:H,I:L,R:()=>J.u,T:()=>b,M:()=>I,C:()=>m,J:()=>w,O:E,q:()=>S,B:()=>(k=y,y=0,[k,2===R||q()+m>=E()]),H(e,t){const r=[e,t];return O.add(r),()=>{O.delete(r)}},L(e,t){let n,i,l=0;switch(e){case 1:{const e=k;k=0;const n=t-b,o=s(n);e&&o<s(e)+1||0!==R||(I=n<0?2:1),u&&(T=r,u=!1),b=t,l=4;const c=q();c>=-m&&c<=E()&&(l+=1,i=o>m);break}case 2:l=8,0!==I&&(n=!0,l+=1),I=0,R=0,T=r;break;case 3:{const e=t.filter((([e,t])=>J.o[e]!==t));if(!e.length)break;P(e.reduce(((e,[t,r])=>((2===R||(T?t<T[0]:H(t)+(0===I&&0===R?L(t):0)<q()))&&(e+=r-L(t)),e)),0));for(const[t,r]of e){const e=L(t),n=g(J,t,r);c&&(C+=n?r:r-e)}c&&m&&C>m&&(P(((e,t)=>{let r=0;const n=e.o.filter(((e,n)=>{const o=e!==f;return o&&n<t&&r++,o})),s=e.i;return e.l=-1,((e.i=(e=>{const t=(e=>[...e].sort(((e,t)=>e-t)))(e),r=e.length/2|0;return t.length%2==0?(t[r-1]+t[r])/2:t[r]})(n))-s)*o(t-r,0)})(J,M[0])),c=!1),l=3,i=!0;break}case 4:m!==t&&(m=t,l=3);break;case 5:t[1]?(P(p(J,t[0],!0)),R=2,l=1):p(J,t[0]);break;case 6:w=t;break;case 7:R=1;break;case 8:T=B(t),l=1}l&&(a=[],n&&x&&(y+=x,x=0,S++),O.forEach((([e,t])=>{l&e&&t(i)})))}}},R=e=>{let t;return{P(r){(t||(t=new(S(b(r)).ResizeObserver)(e))).observe(r)},W(e){t.unobserve(e)},j(){t&&t.disconnect()}}},T=(e,t)=>t&&y()?-e:e,M=(e,t,n,o,s,i)=>{const c=Date.now;let u=0,a=!1,f=!1,d=!1,h=!1;const g=(()=>{let t;const n=()=>{t!=r&&clearTimeout(t)},o=()=>{n(),t=l((()=>{t=r,(()=>{if(a||f)return a=!1,void g();d=!1,e.L(2)})()}),150)};return o.D=n,o})(),_=()=>{u=c(),d&&(h=!0),i&&e.L(6,i()),e.L(1,o()),g()},v=t=>{if(a||0===e.M()||t.ctrlKey)return;const r=c()-u;150>r&&50<r&&(n?t.deltaX:t.deltaY)&&(a=!0)},p=()=>{f=!0,d=h=!1},m=()=>{f=!1,z()&&(d=!0)};return t.addEventListener("scroll",_),t.addEventListener("wheel",v,{passive:!0}),t.addEventListener("touchstart",p,{passive:!0}),t.addEventListener("touchend",m,{passive:!0}),{j:()=>{t.removeEventListener("scroll",_),t.removeEventListener("wheel",v),t.removeEventListener("touchstart",p),t.removeEventListener("touchend",m),g.D()},U:()=>{const[t,r]=e.B();t&&(s(T(t,n),r,h),h=!1,r&&e.C()>e.O()&&e.L(1,o()))}}},C=r=>{let n;r=t.mergeProps({V:"div"},r),t.createEffect((()=>{n&&t.onCleanup(r.X(n,r.Y))}));const o=t.createMemo((()=>{const e=r.F,t={position:"absolute",[e?"height":"width"]:"100%",[e?"top":"left"]:"0px",[e?y()?"right":"left":"top"]:r.A+"px",visibility:r.G?"hidden":"visible"};return e&&(t.display="flex"),t}));return e.createComponent(e.Dynamic,{get component(){return r.V},ref(e){"function"==typeof n?n(e):n=e},get style(){return o()},get children(){return r.K}})},J=e=>{let r=new Map;return t.onCleanup((()=>{for(const e of r.values())e.j()})),t.createMemo((()=>{const n=e.N,[o,s]=e.Z,i=new Map,l=[];for(let c=o;c<=s;c++){const o=n[c],s=r.get(c);l.push(s?s.$:t.createRoot((r=>{const n=t.createSignal(o),s=e.ee(n[0],c);return i.set(c,{te:n,$:s,j:r}),s}))),s&&(o!==s.te&&s.te[1](o),i.set(c,s))}for(const[e,t]of r.entries())i.has(e)||t.j();return r=i,l}))},O=(e,t)=>e[0]===t[0]&&e[1]===t[1],q=n=>{let s;const{itemSize:i,horizontal:a=!1}=n;n=t.mergeProps({as:"div"},n);const f=I(n.data.length,null!=i?i:40,void 0,0,!i),d=((e,t)=>{let n;const o=t?"width":"height",s=new WeakMap,i=R((t=>{const i=[];for(const{target:l,contentRect:c}of t)if(l.offsetParent)if(l===n)e.L(4,c[o]);else{const e=s.get(l);e!=r&&i.push([e,c[o]])}i.length&&e.L(3,i)}));return{re(e){i.P(n=e)},ne:(e,t)=>(s.set(e,t),i.P(e),()=>{s.delete(e),i.W(e)}),j:i.j}})(f,a),h=((e,t)=>{let r,n,o;const s=t?"scrollLeft":"scrollTop",i=t?"overflowX":"overflowY",a=async(n,i)=>{if(!r)return void u((()=>a(n,i)));o&&o();const c=()=>{let t;return[new Promise(((r,n)=>{t=r,o=n,(e=>!!e.C())(e)&&l(n,150)})),e.H(2,(()=>{t&&t()}))]};if(i&&x()){for(;e.L(8,n()),e.S();){const[e,t]=c();try{await e}catch(e){return}finally{t()}}r.scrollTo({[t?"left":"top"]:T(n(),t),behavior:"smooth"})}else for(;;){const[o,i]=c();try{r[s]=T(n(),t),e.L(7),await o}catch(e){return}finally{i()}}};return{P(c){r=c,n=M(e,c,t,(()=>T(c[s],t)),((t,r,n)=>{if(n){const e=c.style,t=e[i];e[i]="hidden",l((()=>{e[i]=t}))}r?(c[s]=e.T()+t,o&&o()):c[s]+=t}))},j(){n&&n.j()},oe(e){a((()=>e))},se(t){t+=e.T(),a((()=>t))},ie(t,{align:r,smooth:n,offset:o=0}={}){if(t=c(t,0,e.R()-1),"nearest"===r){const n=e.k(t),o=e.T();if(n<o)r="start";else{if(!(n+e.I(t)>o+e.C()))return;r="end"}}a((()=>o+e.J()+e.k(t)+("end"===r?e.I(t)-e.C():"center"===r?(e.I(t)-e.C())/2:0)),n)},U:()=>{n&&n.U()}}})(f,a),[g,_]=t.createSignal(f._()),v=f.H(1,(()=>{_(f._())})),p=f.H(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n,f.T())})),m=f.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)})),w=t.createMemo((e=>{g();const t=f.p();return e&&O(e,t)?e:t})),b=t.createMemo((()=>g()&&f.M())),S=t.createMemo((()=>g()&&f.O())),y=t.createMemo((()=>g()&&f.q())),z=t.createMemo((e=>{var t;const r=null!==(t=n.overscan)&&void 0!==t?t:4,[o,s]=w(),i=k(o,s,r,b(),n.data.length);return e&&O(e,i)?e:i}));return t.onMount((()=>{n.ref&&n.ref({get scrollOffset(){return f.T()},get scrollSize(){return(e=>o(e.O(),e.C()))(f)},get viewportSize(){return f.C()},getItemOffset:f.k,scrollToIndex:h.ie,scrollTo:h.oe,scrollBy:h.se});const e=n.scrollRef||s.parentElement;d.re(e),h.P(e),t.onCleanup((()=>{n.ref&&n.ref(),v(),p(),m(),d.j(),h.j()}))})),t.createComputed(t.on((()=>n.data.length),(e=>{e!==f.R()&&f.L(5,[e,n.shift])}))),t.createComputed(t.on((()=>n.startMargin||0),(e=>{e!==f.J()&&f.L(6,e)}))),t.createEffect(t.on(y,(()=>{h.U()}))),t.createEffect((()=>{const e=w();n.onRangeChange&&n.onRangeChange(e[0],e[1])})),e.createComponent(e.Dynamic,{get component(){return n.as},ref(e){"function"==typeof s?s(e):s=e},get style(){return{"overflow-anchor":"none",flex:"none",position:"relative",visibility:"hidden",width:a?S()+"px":"100%",height:a?"100%":S()+"px","pointer-events":0!==b()?"none":void 0}},get children(){return e.createComponent(J,{get N(){return n.data},get Z(){return z()},ee:(r,o)=>{const s=t.createMemo((()=>(g(),f.k(o)))),i=t.createMemo((()=>(g(),f.m(o))));return e.createComponent(C,{get V(){return n.item},Y:o,get X(){return d.ne},get A(){return s()},get G(){return i()},get K(){return n.children(r(),o)},F:a})}})}})};var B=/*#__PURE__*/e.template("<div>"),E=/*#__PURE__*/e.template("<div>");exports.VList=t=>{const{ref:r,data:n,children:o,overscan:s,itemSize:i,shift:l,horizontal:c,onScroll:u,onScrollEnd:a,onRangeChange:f,style:d,...h}=t;return g=B(),e.spread(g,e.mergeProps(h,{get style(){return{display:c?"inline-block":"block",[c?"overflow-x":"overflow-y"]:"auto",contain:"strict",width:"100%",height:"100%",...t.style}}}),!1,!0),e.insert(g,e.createComponent(q,{ref(e){var r=t.ref;"function"==typeof r?r(e):t.ref=e},get data(){return t.data},get overscan(){return t.overscan},get itemSize(){return t.itemSize},get shift(){return t.shift},horizontal:c,get onScroll(){return t.onScroll},get onScrollEnd(){return t.onScrollEnd},get onRangeChange(){return t.onRangeChange},get children(){return t.children}})),g;var g},exports.Virtualizer=q,exports.WindowVirtualizer=n=>{let o;const{data:s,children:i,overscan:l,itemSize:c,shift:u,horizontal:a=!1,onScrollEnd:f,onRangeChange:d}=n,h=I(n.data.length,null!=c?c:40,void 0,0,!c),g=((e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",s=new WeakMap,i=R((t=>{const o=[];for(const{target:e,contentRect:i}of t){if(!e.offsetParent)continue;const t=s.get(e);t!=r&&o.push([t,i[n]])}o.length&&e.L(3,o)}));let l;return{re(t){const r=S(b(t)),n=()=>{e.L(4,r[o])};r.addEventListener("resize",n),n(),l=()=>{r.removeEventListener("resize",n)}},ne:(e,t)=>(s.set(e,t),i.P(e),()=>{s.delete(e),i.W(e)}),j(){l&&l(),i.j()}}})(h,a),_=((e,t)=>{let r;return{P(n){const o=t?"scrollX":"scrollY",s=b(n),i=S(s),l=s.body,c=(e,t,r,n=0)=>{const o=r?"offsetLeft":"offsetTop",s=n+(r&&y()?i.innerWidth-e[o]-e.offsetWidth:e[o]),l=e.offsetParent;return e!==t&&l?c(l,t,r,s):s};r=M(e,i,t,(()=>T(i[o],t)),((r,n)=>{n?i.scroll({[t?"left":"top"]:e.T()+r}):i.scrollBy(t?r:0,t?0:r)}),(()=>c(n,l,t)))},j(){r&&r.j()},U:()=>{r&&r.U()}}})(h,a),[v,p]=t.createSignal(h._()),m=h.H(1,(()=>{p(h._())})),w=h.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)})),z=t.createMemo((e=>{v();const t=h.p();return e&&O(e,t)?e:t})),x=t.createMemo((()=>v()&&h.M())),q=t.createMemo((()=>v()&&h.O())),B=t.createMemo((()=>v()&&h.q())),H=t.createMemo((e=>{var t;const r=null!==(t=n.overscan)&&void 0!==t?t:4,[o,s]=z(),i=k(o,s,r,x(),n.data.length);return e&&O(e,i)?e:i}));return t.onMount((()=>{g.re(o),_.P(o),t.onCleanup((()=>{m(),w(),g.j(),_.j()}))})),t.createComputed(t.on((()=>n.data.length),(e=>{e!==h.R()&&h.L(5,[e,n.shift])}))),t.createEffect(t.on(B,(()=>{_.U()}))),t.createEffect((()=>{const e=z();n.onRangeChange&&n.onRangeChange(e[0],e[1])})),L=E(),"function"==typeof(P=o)?e.use(P,L):o=L,L.style.setProperty("overflow-anchor","none"),L.style.setProperty("flex","none"),L.style.setProperty("position","relative"),L.style.setProperty("visibility","hidden"),e.insert(L,e.createComponent(J,{get N(){return n.data},get Z(){return H()},ee:(r,o)=>{const s=t.createMemo((()=>(v(),h.k(o)))),i=t.createMemo((()=>(v(),h.m(o))));return e.createComponent(C,{Y:o,get X(){return g.ne},get A(){return s()},get G(){return i()},get K(){return n.children(r(),o)},F:a})}})),e.effect((e=>{var t=a?q()+"px":"100%",r=a?"100%":q()+"px",n=0!==x()?"none":void 0;return t!==e.e&&(null!=(e.e=t)?L.style.setProperty("width",t):L.style.removeProperty("width")),r!==e.t&&(null!=(e.t=r)?L.style.setProperty("height",r):L.style.removeProperty("height")),n!==e.a&&(null!=(e.a=n)?L.style.setProperty("pointer-events",n):L.style.removeProperty("pointer-events")),e}),{e:void 0,t:void 0,a:void 0}),L;var L,P};
1
+ var e=require("solid-js/web"),t=require("solid-js");const r=null,{min:n,max:o,abs:s,floor:i}=Math,l=setTimeout,c=(e,t,r)=>n(r,o(t,e)),u="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},a=e=>{let t,r;return(...n)=>(t||(t=!0,r=e(...n)),r)},f=-1,d=(e,t,r)=>{const n=r?"unshift":"push";for(let r=0;r<t;r++)e[n](f);return e},h=(e,t)=>{const r=e.o[t];return r===f?e.i:r},g=(e,t,r)=>{const o=e.o[t]===f;return e.o[t]=r,e.l=n(t,e.l),o},_=(e,t)=>{if(!e.u)return 0;if(e.l>=t)return e.h[t];e.l<0&&(e.h[0]=0,e.l=0);let r=e.l,n=e.h[r];for(;r<t;)n+=h(e,r),e.h[++r]=n;return e.l=t,n},v=(e,t,r=0,n=e.u-1)=>{for(;r<=n;){const o=i((r+n)/2),s=_(e,o);if(s<=t){if(s+h(e,o)>t)return o;r=o+1}else n=o-1}return c(r,0,e.u-1)},p=(e,t,r)=>{const o=t-e.u;return e.l=r?-1:n(t-1,e.l),e.u=t,o>0?(d(e.h,o),d(e.o,o,r),e.i*o):(e.h.splice(o),(r?e.o.splice(0,-o):e.o.splice(o)).reduce(((t,r)=>t-(r===f?e.i:r)),0))},m="undefined"!=typeof window,w=()=>document.documentElement,b=e=>e.ownerDocument,S=e=>e.defaultView,z=/*#__PURE__*/a((()=>!!m&&"rtl"===getComputedStyle(w()).direction)),y=/*#__PURE__*/a((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),x=/*#__PURE__*/a((()=>"scrollBehavior"in w().style)),k=(e,t,r,s,i)=>(1!==s&&(e-=o(0,r)),2!==s&&(t+=o(0,r)),[o(e,0),n(t,i-1)]),I=(e,t=40,i=0,l,c=!1)=>{let u=!!i,a=[],m=0,w=0,b=0,S=0,z=0,x=0,k=0,I=0,R=0,T=u?[0,o(i-1,0)]:r,M=[0,0],C=0;const J=((e,t)=>({i:t,o:d([],e),u:e,l:-1,h:d([],e)}))(e,t),O=new Set,q=()=>b-w,B=e=>((e,t,r,o)=>{if(o=n(o,e.u-1),_(e,o)<=t){const n=v(e,t+r,o);return[v(e,t,o,n),n]}{const n=v(e,t,void 0,o);return[n,v(e,t+r,n)]}})(J,e,m,M[0]),E=()=>(e=>e.u?_(e,e.u-1)+h(e,e.u-1):0)(J),H=e=>_(J,e)-x,L=e=>h(J,e),P=e=>{e&&(y()&&0!==I?x+=e:(z+=e,S++))};return{_:()=>a,v:()=>(e=>[e.o.slice(),e.i])(J),p:()=>k?M:(M=B(o(0,q()+x+z)),T?[n(M[0],T[0]),o(M[1],T[1])]:M),m:e=>J.o[e]===f,S:()=>!!T&&J.o.slice(o(0,T[0]-1),n(J.u-1,T[1]+1)+1).includes(f),k:H,I:L,R:()=>J.u,T:()=>b,M:()=>I,C:()=>m,J:()=>w,O:E,q:()=>S,B:()=>(k=z,z=0,[k,2===R||q()+m>=E()]),H(e,t){const r=[e,t];return O.add(r),()=>{O.delete(r)}},L(e,t){let n,i,l=0;switch(e){case 1:{const e=k;k=0;const n=t-b,o=s(n);e&&o<s(e)+1||0!==R||(I=n<0?2:1),u&&(T=r,u=!1),b=t,l=4;const c=q();c>=-m&&c<=E()&&(l+=1,i=o>m);break}case 2:l=8,0!==I&&(n=!0,l+=1),I=0,R=0,T=r;break;case 3:{const e=t.filter((([e,t])=>J.o[e]!==t));if(!e.length)break;P(e.reduce(((e,[t,r])=>((2===R||(T?t<T[0]:H(t)+(0===I&&0===R?L(t):0)<q()))&&(e+=r-L(t)),e)),0));for(const[t,r]of e){const e=L(t),n=g(J,t,r);c&&(C+=n?r:r-e)}c&&m&&C>m&&(P(((e,t)=>{let r=0;const n=e.o.filter(((e,n)=>{const o=e!==f;return o&&n<t&&r++,o})),s=e.i;return e.l=-1,((e.i=(e=>{const t=(e=>[...e].sort(((e,t)=>e-t)))(e),r=e.length/2|0;return t.length%2==0?(t[r-1]+t[r])/2:t[r]})(n))-s)*o(t-r,0)})(J,M[0])),c=!1),l=3,i=!0;break}case 4:m!==t&&(m=t,l=3);break;case 5:t[1]?(P(p(J,t[0],!0)),R=2,l=1):p(J,t[0]);break;case 6:w=t;break;case 7:R=1;break;case 8:T=B(t),l=1}l&&(a=[],n&&x&&(z+=x,x=0,S++),O.forEach((([e,t])=>{l&e&&t(i)})))}}},R=e=>{let t;return{P(r){(t||(t=new(S(b(r)).ResizeObserver)(e))).observe(r)},W(e){t.unobserve(e)},j(){t&&t.disconnect()}}},T=(e,t)=>t&&z()?-e:e,M=(e,t,n,o,s,i)=>{const c=Date.now;let u=0,a=!1,f=!1,d=!1,h=!1;const g=(()=>{let t;const n=()=>{t!=r&&clearTimeout(t)},o=()=>{n(),t=l((()=>{t=r,(()=>{if(a||f)return a=!1,void g();d=!1,e.L(2)})()}),150)};return o.D=n,o})(),_=()=>{u=c(),d&&(h=!0),i&&e.L(6,i()),e.L(1,o()),g()},v=t=>{if(a||0===e.M()||t.ctrlKey)return;const r=c()-u;150>r&&50<r&&(n?t.deltaX:t.deltaY)&&(a=!0)},p=()=>{f=!0,d=h=!1},m=()=>{f=!1,y()&&(d=!0)};return t.addEventListener("scroll",_),t.addEventListener("wheel",v,{passive:!0}),t.addEventListener("touchstart",p,{passive:!0}),t.addEventListener("touchend",m,{passive:!0}),{j:()=>{t.removeEventListener("scroll",_),t.removeEventListener("wheel",v),t.removeEventListener("touchstart",p),t.removeEventListener("touchend",m),g.D()},U:()=>{const[t,r]=e.B();t&&(s(T(t,n),r,h),h=!1,r&&e.C()>e.O()&&e.L(1,o()))}}},C=r=>{let n;r=t.mergeProps({V:"div"},r),t.createEffect((()=>{n&&t.onCleanup(r.X(n,r.Y))}));const o=t.createMemo((()=>{const e=r.F,t={position:"absolute",[e?"height":"width"]:"100%",[e?"top":"left"]:"0px",[e?z()?"right":"left":"top"]:r.A+"px",visibility:r.G?"hidden":"visible"};return e&&(t.display="flex"),t}));return e.createComponent(e.Dynamic,{get component(){return r.V},ref(e){"function"==typeof n?n(e):n=e},get style(){return o()},get children(){return r.K}})},J=e=>{let r=new Map;return t.onCleanup((()=>{for(const e of r.values())e.j()})),t.createMemo((()=>{const n=e.N,[o,s]=e.Z,i=new Map,l=[];for(let c=o;c<=s;c++){const o=n[c],s=r.get(c);l.push(s?s.$:t.createRoot((r=>{const n=t.createSignal(o),s=e.ee(n[0],c);return i.set(c,{te:n,$:s,j:r}),s}))),s&&(o!==s.te&&s.te[1](o),i.set(c,s))}for(const[e,t]of r.entries())i.has(e)||t.j();return r=i,l}))},O=(e,t)=>e[0]===t[0]&&e[1]===t[1],q=n=>{let s;const{itemSize:i,horizontal:a=!1}=n;n=t.mergeProps({as:"div"},n);const f=I(n.data.length,null!=i?i:40,void 0,0,!i),d=((e,t)=>{let n;const o=t?"width":"height",s=new WeakMap,i=R((t=>{const i=[];for(const{target:l,contentRect:c}of t)if(l.offsetParent)if(l===n)e.L(4,c[o]);else{const e=s.get(l);e!=r&&i.push([e,c[o]])}i.length&&e.L(3,i)}));return{re(e){i.P(n=e)},ne:(e,t)=>(s.set(e,t),i.P(e),()=>{s.delete(e),i.W(e)}),j:i.j}})(f,a),h=((e,t)=>{let r,n,o;const s=t?"scrollLeft":"scrollTop",i=t?"overflowX":"overflowY",a=async(n,i)=>{if(!r)return void u((()=>a(n,i)));o&&o();const c=()=>{let t;return[new Promise(((r,n)=>{t=r,o=n,(e=>!!e.C())(e)&&l(n,150)})),e.H(2,(()=>{t&&t()}))]};if(i&&x()){for(;e.L(8,n()),e.S();){const[e,t]=c();try{await e}catch(e){return}finally{t()}}r.scrollTo({[t?"left":"top"]:T(n(),t),behavior:"smooth"})}else for(;;){const[o,i]=c();try{r[s]=T(n(),t),e.L(7),await o}catch(e){return}finally{i()}}};return{P(c){r=c,n=M(e,c,t,(()=>T(c[s],t)),((t,r,n)=>{if(n){const e=c.style,t=e[i];e[i]="hidden",l((()=>{e[i]=t}))}r?(c[s]=e.T()+t,o&&o()):c[s]+=t}))},j(){n&&n.j()},oe(e){a((()=>e))},se(t){t+=e.T(),a((()=>t))},ie(t,{align:r,smooth:n,offset:o=0}={}){if(t=c(t,0,e.R()-1),"nearest"===r){const n=e.k(t),o=e.T();if(n<o)r="start";else{if(!(n+e.I(t)>o+e.C()))return;r="end"}}a((()=>o+e.J()+e.k(t)+("end"===r?e.I(t)-e.C():"center"===r?(e.I(t)-e.C())/2:0)),n)},U:()=>{n&&n.U()}}})(f,a),[g,_]=t.createSignal(f._()),v=f.H(1,(()=>{_(f._())})),p=f.H(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n,f.T())})),m=f.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)})),w=t.createMemo((e=>{g();const t=f.p();return e&&O(e,t)?e:t})),b=t.createMemo((()=>g()&&f.M())),S=t.createMemo((()=>g()&&f.O())),z=t.createMemo((()=>g()&&f.q())),y=t.createMemo((e=>{var t;const r=null!==(t=n.overscan)&&void 0!==t?t:4,[o,s]=w(),i=k(o,s,r,b(),n.data.length);return e&&O(e,i)?e:i}));return t.onMount((()=>{n.ref&&n.ref({get scrollOffset(){return f.T()},get scrollSize(){return(e=>o(e.O(),e.C()))(f)},get viewportSize(){return f.C()},getItemOffset:f.k,getItemSize:f.I,scrollToIndex:h.ie,scrollTo:h.oe,scrollBy:h.se});const e=n.scrollRef||s.parentElement;d.re(e),h.P(e),t.onCleanup((()=>{n.ref&&n.ref(),v(),p(),m(),d.j(),h.j()}))})),t.createComputed(t.on((()=>n.data.length),(e=>{e!==f.R()&&f.L(5,[e,n.shift])}))),t.createComputed(t.on((()=>n.startMargin||0),(e=>{e!==f.J()&&f.L(6,e)}))),t.createEffect(t.on(z,(()=>{h.U()}))),t.createEffect((()=>{const e=w();n.onRangeChange&&n.onRangeChange(e[0],e[1])})),e.createComponent(e.Dynamic,{get component(){return n.as},ref(e){"function"==typeof s?s(e):s=e},get style(){return{"overflow-anchor":"none",flex:"none",position:"relative",visibility:"hidden",width:a?S()+"px":"100%",height:a?"100%":S()+"px","pointer-events":0!==b()?"none":void 0}},get children(){return e.createComponent(J,{get N(){return n.data},get Z(){return y()},ee:(r,o)=>{const s=t.createMemo((()=>(g(),f.k(o)))),i=t.createMemo((()=>(g(),f.m(o))));return e.createComponent(C,{get V(){return n.item},Y:o,get X(){return d.ne},get A(){return s()},get G(){return i()},get K(){return n.children(r(),o)},F:a})}})}})};var B=/*#__PURE__*/e.template("<div>"),E=/*#__PURE__*/e.template("<div>");exports.VList=t=>{const{ref:r,data:n,children:o,overscan:s,itemSize:i,shift:l,horizontal:c,onScroll:u,onScrollEnd:a,onRangeChange:f,style:d,...h}=t;return g=B(),e.spread(g,e.mergeProps(h,{get style(){return{display:c?"inline-block":"block",[c?"overflow-x":"overflow-y"]:"auto",contain:"strict",width:"100%",height:"100%",...t.style}}}),!1,!0),e.insert(g,e.createComponent(q,{ref(e){var r=t.ref;"function"==typeof r?r(e):t.ref=e},get data(){return t.data},get overscan(){return t.overscan},get itemSize(){return t.itemSize},get shift(){return t.shift},horizontal:c,get onScroll(){return t.onScroll},get onScrollEnd(){return t.onScrollEnd},get onRangeChange(){return t.onRangeChange},get children(){return t.children}})),g;var g},exports.Virtualizer=q,exports.WindowVirtualizer=n=>{let o;const{data:s,children:i,overscan:l,itemSize:c,shift:u,horizontal:a=!1,onScrollEnd:f,onRangeChange:d}=n,h=I(n.data.length,null!=c?c:40,void 0,0,!c),g=((e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",s=new WeakMap,i=R((t=>{const o=[];for(const{target:e,contentRect:i}of t){if(!e.offsetParent)continue;const t=s.get(e);t!=r&&o.push([t,i[n]])}o.length&&e.L(3,o)}));let l;return{re(t){const r=S(b(t)),n=()=>{e.L(4,r[o])};r.addEventListener("resize",n),n(),l=()=>{r.removeEventListener("resize",n)}},ne:(e,t)=>(s.set(e,t),i.P(e),()=>{s.delete(e),i.W(e)}),j(){l&&l(),i.j()}}})(h,a),_=((e,t)=>{let r;return{P(n){const o=t?"scrollX":"scrollY",s=b(n),i=S(s),l=s.body,c=(e,t,r,n=0)=>{const o=r?"offsetLeft":"offsetTop",s=n+(r&&z()?i.innerWidth-e[o]-e.offsetWidth:e[o]),l=e.offsetParent;return e!==t&&l?c(l,t,r,s):s};r=M(e,i,t,(()=>T(i[o],t)),((r,n)=>{n?i.scroll({[t?"left":"top"]:e.T()+r}):i.scrollBy(t?r:0,t?0:r)}),(()=>c(n,l,t)))},j(){r&&r.j()},U:()=>{r&&r.U()}}})(h,a),[v,p]=t.createSignal(h._()),m=h.H(1,(()=>{p(h._())})),w=h.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)})),y=t.createMemo((e=>{v();const t=h.p();return e&&O(e,t)?e:t})),x=t.createMemo((()=>v()&&h.M())),q=t.createMemo((()=>v()&&h.O())),B=t.createMemo((()=>v()&&h.q())),H=t.createMemo((e=>{var t;const r=null!==(t=n.overscan)&&void 0!==t?t:4,[o,s]=y(),i=k(o,s,r,x(),n.data.length);return e&&O(e,i)?e:i}));return t.onMount((()=>{g.re(o),_.P(o),t.onCleanup((()=>{m(),w(),g.j(),_.j()}))})),t.createComputed(t.on((()=>n.data.length),(e=>{e!==h.R()&&h.L(5,[e,n.shift])}))),t.createEffect(t.on(B,(()=>{_.U()}))),t.createEffect((()=>{const e=y();n.onRangeChange&&n.onRangeChange(e[0],e[1])})),L=E(),"function"==typeof(P=o)?e.use(P,L):o=L,L.style.setProperty("overflow-anchor","none"),L.style.setProperty("flex","none"),L.style.setProperty("position","relative"),L.style.setProperty("visibility","hidden"),e.insert(L,e.createComponent(J,{get N(){return n.data},get Z(){return H()},ee:(r,o)=>{const s=t.createMemo((()=>(v(),h.k(o)))),i=t.createMemo((()=>(v(),h.m(o))));return e.createComponent(C,{Y:o,get X(){return g.ne},get A(){return s()},get G(){return i()},get K(){return n.children(r(),o)},F:a})}})),e.effect((e=>{var t=a?q()+"px":"100%",r=a?"100%":q()+"px",n=0!==x()?"none":void 0;return t!==e.e&&(null!=(e.e=t)?L.style.setProperty("width",t):L.style.removeProperty("width")),r!==e.t&&(null!=(e.t=r)?L.style.setProperty("height",r):L.style.removeProperty("height")),n!==e.a&&(null!=(e.a=n)?L.style.setProperty("pointer-events",n):L.style.removeProperty("pointer-events")),e}),{e:void 0,t:void 0,a:void 0}),L;var L,P};
2
2
  //# sourceMappingURL=index.js.map