virtua 0.44.2 → 0.45.0

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,3 +1,4 @@
1
+ import { ReactElement, Ref } from "react";
1
2
  import { ViewportComponentAttributes } from "./types.js";
2
3
  import { VirtualizerHandle, VirtualizerProps } from "./Virtualizer.js";
3
4
  /**
@@ -8,7 +9,7 @@ export interface VListHandle extends VirtualizerHandle {
8
9
  /**
9
10
  * Props of {@link VList}.
10
11
  */
11
- export interface VListProps extends Pick<VirtualizerProps, "children" | "count" | "overscan" | "itemSize" | "shift" | "horizontal" | "cache" | "ssrCount" | "item" | "onScroll" | "onScrollEnd" | "keepMounted">, ViewportComponentAttributes {
12
+ export interface VListProps<T = undefined> extends Pick<VirtualizerProps<T>, "children" | "data" | "overscan" | "itemSize" | "shift" | "horizontal" | "cache" | "ssrCount" | "item" | "onScroll" | "onScrollEnd" | "keepMounted">, ViewportComponentAttributes {
12
13
  /**
13
14
  * If true, items are aligned to the end of the list when total size of items are smaller than viewport size. It's useful for chat like app.
14
15
  */
@@ -17,4 +18,6 @@ export interface VListProps extends Pick<VirtualizerProps, "children" | "count"
17
18
  /**
18
19
  * Virtualized list component. See {@link VListProps} and {@link VListHandle}.
19
20
  */
20
- export declare const VList: import("react").ForwardRefExoticComponent<VListProps & import("react").RefAttributes<VListHandle>>;
21
+ export declare const VList: <T>(props: VListProps<T> & {
22
+ ref?: Ref<VListHandle>;
23
+ }) => ReactElement;
@@ -1,4 +1,4 @@
1
- import { JSX, ReactElement, ReactNode, RefObject } from "react";
1
+ import { JSX, ReactElement, ReactNode, RefObject, Ref } from "react";
2
2
  import { CacheSnapshot, ScrollToIndexOpts } from "../core/index.js";
3
3
  import { CustomContainerComponent, CustomItemComponent } from "./types.js";
4
4
  /**
@@ -59,17 +59,17 @@ export interface VirtualizerHandle {
59
59
  /**
60
60
  * Props of {@link Virtualizer}.
61
61
  */
62
- export interface VirtualizerProps {
62
+ export interface VirtualizerProps<T = undefined> {
63
63
  /**
64
64
  * Elements rendered by this component.
65
65
  *
66
- * You can also pass a function and set {@link VirtualizerProps.count} to create elements lazily.
66
+ * You can also pass a function and set {@link VirtualizerProps.data} to create elements lazily.
67
67
  */
68
- children: ReactNode | ((index: number) => ReactElement);
68
+ children: ReactNode | ((data: T, index: number) => ReactElement);
69
69
  /**
70
- * If you set a function to {@link VirtualizerProps.children}, you have to set total number of items to this prop.
70
+ * The data items rendered by this component. If you set a function to {@link VirtualizerProps.children}, you have to set this prop.
71
71
  */
72
- count?: number;
72
+ data?: ArrayLike<T>;
73
73
  /**
74
74
  * Number of items to render above/below the visible bounds of the list. Lower value will give better performance but you can increase to avoid showing blank items in fast scrolling.
75
75
  * @defaultValue 4
@@ -135,4 +135,6 @@ export interface VirtualizerProps {
135
135
  /**
136
136
  * Customizable list virtualizer for advanced usage. See {@link VirtualizerProps} and {@link VirtualizerHandle}.
137
137
  */
138
- export declare const Virtualizer: import("react").ForwardRefExoticComponent<VirtualizerProps & import("react").RefAttributes<VirtualizerHandle>>;
138
+ export declare const Virtualizer: <T>(props: VirtualizerProps<T> & {
139
+ ref?: Ref<VirtualizerHandle>;
140
+ }) => ReactElement;
@@ -1,4 +1,4 @@
1
- import { JSX, ReactElement, ReactNode } from "react";
1
+ import { JSX, ReactElement, ReactNode, Ref } from "react";
2
2
  import { CacheSnapshot, ScrollToIndexOpts } from "../core/index.js";
3
3
  import { CustomContainerComponent, CustomItemComponent } from "./types.js";
4
4
  /**
@@ -27,17 +27,17 @@ export interface WindowVirtualizerHandle {
27
27
  /**
28
28
  * Props of {@link WindowVirtualizer}.
29
29
  */
30
- export interface WindowVirtualizerProps {
30
+ export interface WindowVirtualizerProps<T = undefined> {
31
31
  /**
32
32
  * Elements rendered by this component.
33
33
  *
34
- * You can also pass a function and set {@link WindowVirtualizerProps.count} to create elements lazily.
34
+ * You can also pass a function and set {@link WindowVirtualizerProps.data} to create elements lazily.
35
35
  */
36
- children: ReactNode | ((index: number) => ReactElement);
36
+ children: ReactNode | ((data: T, index: number) => ReactElement);
37
37
  /**
38
- * If you set a function to {@link WindowVirtualizerProps.children}, you have to set total number of items to this prop.
38
+ * The data items rendered by this component. If you set a function to {@link WindowVirtualizerProps.children}, you have to set this prop.
39
39
  */
40
- count?: number;
40
+ data?: ArrayLike<T>;
41
41
  /**
42
42
  * Number of items to render above/below the visible bounds of the list. Lower value will give better performance but you can increase to avoid showing blank items in fast scrolling.
43
43
  * @defaultValue 4
@@ -90,4 +90,6 @@ export interface WindowVirtualizerProps {
90
90
  /**
91
91
  * {@link Virtualizer} controlled by the window scrolling. See {@link WindowVirtualizerProps} and {@link WindowVirtualizerHandle}.
92
92
  */
93
- export declare const WindowVirtualizer: import("react").ForwardRefExoticComponent<WindowVirtualizerProps & import("react").RefAttributes<WindowVirtualizerHandle>>;
93
+ export declare const WindowVirtualizer: <T>(props: WindowVirtualizerProps<T> & {
94
+ ref?: Ref<WindowVirtualizerHandle>;
95
+ }) => ReactElement;
@@ -69,7 +69,7 @@ export interface VirtualizerProps<T> {
69
69
  /**
70
70
  * The data items rendered by this component.
71
71
  */
72
- data: T[];
72
+ data: readonly T[];
73
73
  /**
74
74
  * The elements renderer function.
75
75
  */
@@ -37,7 +37,7 @@ export interface WindowVirtualizerProps<T> {
37
37
  /**
38
38
  * The data items rendered by this component.
39
39
  */
40
- data: T[];
40
+ data: readonly T[];
41
41
  /**
42
42
  * The elements renderer function.
43
43
  */
@@ -1,2 +1,2 @@
1
- var e=require("solid-js/web"),t=require("solid-js");const r=null,{min:n,max:o,abs:i,floor:s}=Math,c=(e,t,r)=>n(r,o(t,e)),l=e=>[...e].sort(((e,t)=>e-t)),a="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},u=()=>{let e;return[new Promise((t=>{e=t})),e]},f=e=>{let t;return()=>(e&&(t=e(),e=void 0),t)},d=-1,h=(e,t,r)=>{const n=r?"unshift":"push";for(let r=0;r<t;r++)e[n](d);return e},g=(e,t)=>{const r=e.o[t];return r===d?e.i:r},v=(e,t,r)=>{const o=e.o[t]===d;return e.o[t]=r,e.l=n(t,e.l),o},p=(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+=g(e,r),e.h[++r]=n;return e.l=t,n},m=(e,t,r=0,n=e.u-1)=>{for(;r<=n;){const o=s((r+n)/2),i=p(e,o);if(i<=t){if(i+g(e,o)>t)return o;r=o+1}else n=o-1}return c(r,0,e.u-1)},w=(e,t,r)=>{const o=t-e.u;return e.l=r?-1:n(t-1,e.l),e.u=t,o>0?(h(e.h,o),h(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===d?e.i:r)),0))},x="undefined"!=typeof window,S=()=>document.documentElement,$=e=>e.ownerDocument,b=e=>e.defaultView,y=/*#__PURE__*/f((()=>!!x&&"rtl"===getComputedStyle(S()).direction)),_=/*#__PURE__*/f((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),z=/*#__PURE__*/f((()=>"scrollBehavior"in S().style)),k=e=>!!e.v(),I=(e,t=40,s=4,c=0,a,u=!1)=>{let f=!!c,x=1,S=0,$=0,b=0,y=0,z=0,k=0,I=0,T=0,M=f?[0,o(c-1,0)]:r,E=[0,0],O=0;const R=((e,t,r)=>({i:r?r[1]:t,o:r&&r[0]?h(r[0].slice(0,n(e,r[0].length)),o(0,e-r[0].length)):h([],e),u:e,l:-1,h:h([],e)}))(e,t,a),q=new Set,J=()=>b-$,B=()=>J()+z+y,H=e=>((e,t,r,o)=>{if(o=n(o,e.u-1),p(e,o)<=t){const n=m(e,t+r,o);return[m(e,t,o,n),n]}{const n=m(e,t,void 0,o);return[n,m(e,t+r,n)]}})(R,e,S,E[0]),L=()=>(e=>e.u?p(e,e.u-1)+g(e,e.u-1):0)(R),P=e=>p(R,e)-z,W=e=>g(R,e),j=e=>{e&&(_()&&0!==I||M&&1===T?z+=e:y+=e)};return{p:()=>x,m:()=>(e=>[e.o.slice(),e.i])(R),S:()=>{let e,t;return k?[e,t]=E:([e,t]=E=H(o(0,B())),M&&(e=n(e,M[0]),t=o(t,M[1]))),1!==I&&(e-=o(0,s)),2!==I&&(t+=o(0,s)),[o(e,0),n(t,R.u-1)]},$:()=>m(R,B()),_:()=>m(R,B()+S),k:e=>R.o[e]===d,I:P,T:W,M:()=>R.u,O:()=>b,R:()=>0!==I,v:()=>S,q:()=>$,J:L,B:()=>(k=y,y=0,[k,2===T]),H:(e,t)=>{const r=[e,t];return q.add(r),()=>{q.delete(r)}},L:(e,t)=>{let n,s,c=0;switch(e){case 1:{const e=k;k=0;const n=t-b,o=i(n);e&&o<i(e)+1||0!==T||(I=n<0?2:1),f&&(M=r,f=!1),b=t,c=4;const l=J();l>=-S&&l<=L()&&(c+=1,s=o>S);break}case 2:c=8,0!==I&&(n=!0,c+=1),I=0,T=0,M=r;break;case 3:{const e=t.filter((([e,t])=>R.o[e]!==t));if(!e.length)break;j(e.reduce(((e,[t,r])=>((2===T||(M&&1===T?t<M[0]:P(t)+(0===I&&0===T?W(t):0)<J()))&&(e+=r-W(t)),e)),0));for(const[t,r]of e){const e=W(t),n=v(R,t,r);u&&(O+=n?r:r-e)}u&&S&&O>S&&(j(((e,t)=>{let r=0;const n=[];e.o.forEach(((e,o)=>{e!==d&&(n.push(e),o<t&&r++)})),e.l=-1;const i=l(n),s=i.length,c=s/2|0,a=s%2==0?(i[c-1]+i[c])/2:i[c],u=e.i;return((e.i=a)-u)*o(t-r,0)})(R,m(R,B()))),u=!1),c=3,s=!0;break}case 4:S!==t&&(S=t,c=3);break;case 5:t[1]?(j(w(R,t[0],!0)),T=2,c=1):(w(R,t[0]),c=1);break;case 6:$=t;break;case 7:T=1;break;case 8:M=H(t),c=1}c&&(x=1+(2147483647&x),n&&z&&(y+=z,z=0),q.forEach((([e,t])=>{c&e&&t(s)})))}}},T=setTimeout,M=(e,t)=>t&&y()?-e:e,E=(e,t,n,o,i,s)=>{const c=Date.now;let l=0,a=!1,u=!1,f=!1,d=!1;const h=(()=>{let t;const n=()=>{t!=r&&clearTimeout(t)},o=()=>{n(),t=T((()=>{t=r,(()=>{if(a||u)return a=!1,void h();f=!1,e.L(2)})()}),150)};return o.P=n,o})(),g=()=>{l=c(),f&&(d=!0),s&&e.L(6,s()),e.L(1,o()),h()},v=t=>{if(a||!e.R()||t.ctrlKey)return;const r=c()-l;150>r&&50<r&&(n?t.deltaX:t.deltaY)&&(a=!0)},p=()=>{u=!0,f=d=!1},m=()=>{u=!1,_()&&(f=!0)};return t.addEventListener("scroll",g),t.addEventListener("wheel",v,{passive:!0}),t.addEventListener("touchstart",p,{passive:!0}),t.addEventListener("touchend",m,{passive:!0}),{W:()=>{t.removeEventListener("scroll",g),t.removeEventListener("wheel",v),t.removeEventListener("touchstart",p),t.removeEventListener("touchend",m),h.P()},j:()=>{const[t,r]=e.B();t&&(i(M(t,n),r,d),d=!1,r&&e.v()>e.J()&&e.L(1,o()))}}},O=e=>{let t;return{C(r){(t||(t=new(b($(r)).ResizeObserver)(e))).observe(r)},V(e){t.unobserve(e)},W(){t&&t.disconnect()}}},R=r=>{let n;r=t.mergeProps({X:"div"},r),t.createEffect((()=>{n&&t.onCleanup(r.Y(n,r.D))}));const o=t.createMemo((()=>{const e=r.U,t={contain:"layout style",position:"absolute",[e?"height":"width"]:"100%",[e?"top":"left"]:"0px",[e?y()?"right":"left":"top"]:r.A+"px",visibility:r.F?"hidden":"visible"};return e&&(t.display="inline-flex"),t}));return e.createComponent(e.Dynamic,{get component(){return r.X},get index(){return r.D},ref(e){"function"==typeof n?n(e):n=e},get style(){return o()},get children(){return r.G}})},q=(e,t)=>e[0]===t[0]&&e[1]===t[1],J=n=>{let i;const{itemSize:s,horizontal:f=!1,overscan:d,cache:h}=n;n=t.mergeProps({as:"div"},n);const g=I(n.data.length,s,d,void 0,h,!s),v=((e,t)=>{let n;const o=t?"width":"height",i=new WeakMap,s=O((t=>{const s=[];for(const{target:c,contentRect:l}of t)if(c.offsetParent)if(c===n)e.L(4,l[o]);else{const e=i.get(c);e!=r&&s.push([e,l[o]])}s.length&&e.L(3,s)}));return{K(e){s.C(n=e)},N:(e,t)=>(i.set(e,t),s.C(e),()=>{i.delete(e),s.V(e)}),Z:s.W}})(g,f),p=((e,t)=>{let r,n,o,i=u();const s=t?"scrollLeft":"scrollTop",l=t?"overflowX":"overflowY",f=async(n,c)=>{if(!await i[0])return;o&&o();const l=()=>{const[t,r]=u();return o=()=>{r(!1)},k(e)&&T(o,150),[t,e.H(2,(()=>{r(!0)}))]};if(c&&z())e.L(8,n()),a((async()=>{for(;;){let t=!1;for(let[r,n]=e.S();r<=n;r++)if(e.k(r)){t=!0;break}if(!t)break;const[r,n]=l();try{if(!await r)return}finally{n()}}e.L(7),r.scrollTo({[t?"left":"top"]:M(n(),t),behavior:"smooth"})}));else for(;;){const[o,i]=l();try{if(e.L(7),r[s]=M(n(),t),!await o)return}finally{i()}}};return{ee(c){r=c,n=E(e,c,t,(()=>M(c[s],t)),((t,r,n)=>{if(n){const e=c.style,t=e[l];e[l]="hidden",T((()=>{e[l]=t}))}c[s]=e.O()+t,r&&o&&o()})),i[1](!0)},Z(){n&&n.W(),i[1](!1),i=u()},te(e){f((()=>e))},re(t){t+=e.O(),f((()=>t))},ne(t,{align:r,smooth:n,offset:o=0}={}){if(t=c(t,0,e.M()-1),"nearest"===r){const n=e.I(t),o=e.O();if(n<o)r="start";else{if(!(n+e.T(t)>o+e.v()))return;r="end"}}f((()=>o+e.q()+e.I(t)+("end"===r?e.T(t)-e.v():"center"===r?(e.T(t)-e.v())/2:0)),n)},oe:()=>{n&&n.j()}}})(g,f),[m,w]=t.createSignal(g.p()),x=g.H(1,(()=>{w(g.p())})),S=g.H(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n,g.O())})),$=g.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)})),b=t.createMemo((e=>{m();const t=g.S();return e&&q(e,t)?e:t})),y=t.createMemo((()=>m()&&g.R())),_=t.createMemo((()=>m()&&g.J()));t.onMount((()=>{n.ref&&n.ref({get cache(){return g.m()},get scrollOffset(){return g.O()},get scrollSize(){return(e=>o(e.J(),e.v()))(g)},get viewportSize(){return g.v()},findStartIndex:g.$,findEndIndex:g._,getItemOffset:g.I,getItemSize:g.T,scrollToIndex:p.ne,scrollTo:p.te,scrollBy:p.re});const e=n.scrollRef||i.parentElement;v.K(e),p.ee(e),t.onCleanup((()=>{n.ref&&n.ref(),x(),S(),$(),v.Z(),p.Z()}))})),t.createComputed(t.on((()=>n.startMargin||0),(e=>{e!==g.q()&&g.L(6,e)}))),t.createEffect(t.on(m,(()=>{p.oe()})));const J=t.createMemo((()=>{const e=n.data.length;t.untrack((()=>{e!==g.M()&&g.L(5,[e,n.shift])}));const[r,o]=b(),i=[],s=[];if(n.keepMounted){const e=new Set(n.keepMounted);for(let t=r,n=o;t<=n;t++)e.add(t);l([...e]).forEach((e=>{i.push(n.data[e]),s.push(e)}))}else for(let e=r,t=o;e<=t;e++)i.push(n.data[e]),s.push(e);return{ie:i,se:s}}));return e.createComponent(e.Dynamic,{get component(){return n.as},ref(e){"function"==typeof i?i(e):i=e},get style(){return{contain:"strict","overflow-anchor":"none",overflow:"clip",flex:"none",position:"relative",width:f?_()+"px":"100%",height:f?"100%":_()+"px","pointer-events":y()?"none":void 0}},get children(){return e.createComponent(t.For,{get each(){return J().ie},children:(r,o)=>((r,o)=>{const i=t.createMemo((()=>(m(),g.I(o())))),s=t.createMemo((()=>(m(),g.k(o())))),c=t.createMemo((()=>t.untrack((()=>n.children(r,o)))));return e.createComponent(R,{get X(){return n.item},get D(){return o()},get Y(){return v.N},get A(){return i()},get F(){return s()},get G(){return c()},U:f})})(r,t.createMemo((()=>J().se[o()])))})}})};var B=/*#__PURE__*/e.template("<div>"),H=/*#__PURE__*/e.template("<div style=overflow-anchor:none>");exports.VList=r=>{const[n,o]=t.splitProps(r,["ref","data","children","overscan","itemSize","shift","horizontal","keepMounted","cache","item","onScroll","onScrollEnd","style"]);return i=B(),e.spread(i,e.mergeProps(o,{get style(){return{display:n.horizontal?"inline-block":"block",[n.horizontal?"overflow-x":"overflow-y"]:"auto",contain:"strict",width:"100%",height:"100%",...n.style}}}),!1,!0),e.insert(i,e.createComponent(J,{ref(e){var t=n.ref;"function"==typeof t?t(e):n.ref=e},get data(){return n.data},get overscan(){return n.overscan},get itemSize(){return n.itemSize},get shift(){return n.shift},get horizontal(){return n.horizontal},get keepMounted(){return n.keepMounted},get cache(){return n.cache},get item(){return n.item},get onScroll(){return n.onScroll},get onScrollEnd(){return n.onScrollEnd},get children(){return n.children}})),i;var i},exports.Virtualizer=J,exports.WindowVirtualizer=n=>{let o;const{ref:i,data:s,children:l,overscan:f,itemSize:d,shift:h,horizontal:g=!1,cache:v,onScrollEnd:p}=n,m=I(n.data.length,d,f,void 0,v,!d),w=((e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",i=new WeakMap,s=O((t=>{const o=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=i.get(e);t!=r&&o.push([t,s[n]])}o.length&&e.L(3,o)}));let c;return{K(t){const r=b($(t)),n=()=>{e.L(4,r[o])};r.addEventListener("resize",n),n(),c=()=>{r.removeEventListener("resize",n)}},N:(e,t)=>(i.set(e,t),s.C(e),()=>{i.delete(e),s.V(e)}),Z(){c&&c(),s.W()}}})(m,g),x=((e,t)=>{let r,n,o,i=u();const s=(e,t,r,n,o=0)=>{const i=n?"offsetLeft":"offsetTop",c=o+(n&&y()?r.innerWidth-e[i]-e.offsetWidth:e[i]),l=e.offsetParent;return e!==t&&l?s(l,t,r,n,c):c};return{ee(o){r=o;const c=t?"scrollX":"scrollY",l=$(o),a=b(l),u=l.body;n=E(e,a,t,(()=>M(a[c],t)),(r=>{a.scroll({[t?"left":"top"]:e.O()+r})}),(()=>s(o,u,a,t))),i[1](!0)},Z(){n&&n.W(),r=void 0,i[1](!1),i=u()},oe:()=>{n&&n.j()},ne(n,{align:l,smooth:f,offset:d=0}={}){if(!r)return;if(n=c(n,0,e.M()-1),"nearest"===l){const t=e.I(n),r=e.O();if(t<r)l="start";else{if(!(t+e.T(n)>r+e.v()))return;l="end"}}const h=$(r),g=b(h),v=h.documentElement,p=()=>e.v()-(t?v.clientWidth:v.clientHeight);(async(n,s)=>{if(!await i[0])return;o&&o();const c=()=>{const[t,r]=u();return o=()=>{r(!1)},k(e)&&T(o,150),[t,e.H(2,(()=>{r(!0)}))]},l=b($(r));if(s&&z())e.L(8,n()),a((async()=>{for(;;){let t=!1;for(let[r,n]=e.S();r<=n;r++)if(e.k(r)){t=!0;break}if(!t)break;const[r,n]=c();try{if(!await r)return}finally{n()}}e.L(7),l.scroll({[t?"left":"top"]:M(n(),t),behavior:"smooth"})}));else for(;;){const[r,o]=c();try{if(e.L(7),l.scroll({[t?"left":"top"]:M(n(),t)}),!await r)return}finally{o()}}})((()=>d+s(r,h.body,g,t)+e.I(n)+("end"===l?e.T(n)-(e.v()-p()):"center"===l?(e.T(n)-(e.v()-p()))/2:0)),f)}}})(m,g),[S,_]=t.createSignal(m.p()),J=m.H(1,(()=>{_(m.p())})),B=m.H(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n)})),L=m.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)})),P=t.createMemo((e=>{S();const t=m.S();return e&&q(e,t)?e:t})),W=t.createMemo((()=>S()&&m.R())),j=t.createMemo((()=>S()&&m.J()));t.onMount((()=>{n.ref&&n.ref({get cache(){return m.m()},findStartIndex:m.$,findEndIndex:m._,scrollToIndex:x.ne}),w.K(o),x.ee(o),t.onCleanup((()=>{n.ref&&n.ref(),J(),B(),L(),w.Z(),x.Z()}))})),t.createEffect(t.on(S,(()=>{x.oe()})));const C=t.createMemo((()=>{const e=n.data.length;t.untrack((()=>{e!==m.M()&&m.L(5,[e,n.shift])}));const[r,o]=P(),i=[];for(let e=r,t=o;e<=t;e++)i.push(n.data[e]);return i}));return V=H(),"function"==typeof(X=o)?e.use(X,V):o=V,e.setStyleProperty(V,"contain","strict"),e.setStyleProperty(V,"overflow","clip"),e.setStyleProperty(V,"flex","none"),e.setStyleProperty(V,"position","relative"),e.insert(V,e.createComponent(t.For,{get each(){return C()},children:(r,o)=>{const i=t.createMemo((()=>P()[0]+o())),s=t.createMemo((()=>(S(),m.I(i())))),c=t.createMemo((()=>(S(),m.k(i())))),l=t.createMemo((()=>t.untrack((()=>n.children(r,i)))));return e.createComponent(R,{get D(){return i()},get Y(){return w.N},get A(){return s()},get F(){return c()},get G(){return l()},U:g})}})),e.effect((t=>{var r=g?j()+"px":"100%",n=g?"100%":j()+"px",o=W()?"none":void 0;return r!==t.e&&e.setStyleProperty(V,"width",t.e=r),n!==t.t&&e.setStyleProperty(V,"height",t.t=n),o!==t.a&&e.setStyleProperty(V,"pointer-events",t.a=o),t}),{e:void 0,t:void 0,a:void 0}),V;var V,X};
1
+ var e=require("solid-js/web"),t=require("solid-js");const r=null,{min:n,max:o,abs:s,floor:i}=Math,c=(e,t,r)=>n(r,o(t,e)),l=e=>[...e].sort(((e,t)=>e-t)),u="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},a=()=>{let e;return[new Promise((t=>{e=t})),e]},f=e=>{let t;return()=>(e&&(t=e(),e=void 0),t)},d=-1,h=(e,t,r)=>{const n=r?"unshift":"push";for(let r=0;r<t;r++)e[n](d);return e},g=(e,t)=>{const r=e.o[t];return r===d?e.i:r},v=(e,t,r)=>{const o=e.o[t]===d;return e.o[t]=r,e.l=n(t,e.l),o},p=(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+=g(e,r),e.h[++r]=n;return e.l=t,n},m=(e,t,r=0,n=e.u-1)=>{for(;r<=n;){const o=i((r+n)/2),s=p(e,o);if(s<=t){if(s+g(e,o)>t)return o;r=o+1}else n=o-1}return c(r,0,e.u-1)},x=(e,t,r)=>{const o=t-e.u;return e.l=r?-1:n(t-1,e.l),e.u=t,o>0?(h(e.h,o),h(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===d?e.i:r)),0))},S="undefined"!=typeof window,$=()=>document.documentElement,w=e=>e.ownerDocument,b=e=>e.defaultView,y=/*#__PURE__*/f((()=>!!S&&"rtl"===getComputedStyle($()).direction)),_=/*#__PURE__*/f((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),z=/*#__PURE__*/f((()=>"scrollBehavior"in $().style)),I=(e,t=40,i=4,c=0,u,a=!1)=>{let f=!!c,S=1,$=0,w=0,b=0,y=0,z=0,I=0,k=0,T=0,M=f?[0,o(c-1,0)]:r,E=[0,0],O=0;const R=((e,t,r)=>({i:r?r[1]:t,o:r&&r[0]?h(r[0].slice(0,n(e,r[0].length)),o(0,e-r[0].length)):h([],e),u:e,l:-1,h:h([],e)}))(e,t,u),q=new Set,J=()=>b-w,B=()=>J()+z+y,H=e=>((e,t,r,o)=>{if(o=n(o,e.u-1),p(e,o)<=t){const n=m(e,t+r,o);return[m(e,t,o,n),n]}{const n=m(e,t,void 0,o);return[n,m(e,t+r,n)]}})(R,e,$,E[0]),L=()=>(e=>e.u?p(e,e.u-1)+g(e,e.u-1):0)(R),P=e=>p(R,e)-z,W=e=>g(R,e),j=e=>{e&&(_()&&0!==k||M&&1===T?z+=e:y+=e)};return{v:()=>S,p:()=>(e=>[e.o.slice(),e.i])(R),m:()=>{let e,t;return I?[e,t]=E:([e,t]=E=H(o(0,B())),M&&(e=n(e,M[0]),t=o(t,M[1]))),1!==k&&(e-=o(0,i)),2!==k&&(t+=o(0,i)),[o(e,0),n(t,R.u-1)]},S:()=>m(R,B()),$:()=>m(R,B()+$),_:e=>R.o[e]===d,I:P,k:W,T:()=>R.u,M:()=>b,O:()=>0!==k,R:()=>$,q:()=>w,J:L,B:()=>(I=y,y=0,[I,2===T]),H:(e,t)=>{const r=[e,t];return q.add(r),()=>{q.delete(r)}},L:(e,t)=>{let n,i,c=0;switch(e){case 1:{const e=I;I=0;const n=t-b,o=s(n);e&&o<s(e)+1||0!==T||(k=n<0?2:1),f&&(M=r,f=!1),b=t,c=4;const l=J();l>=-$&&l<=L()&&(c+=1,i=o>$);break}case 2:c=8,0!==k&&(n=!0,c+=1),k=0,T=0,M=r;break;case 3:{const e=t.filter((([e,t])=>R.o[e]!==t));if(!e.length)break;j(e.reduce(((e,[t,r])=>((2===T||(M&&1===T?t<M[0]:P(t)+(0===k&&0===T?W(t):0)<J()))&&(e+=r-W(t)),e)),0));for(const[t,r]of e){const e=W(t),n=v(R,t,r);a&&(O+=n?r:r-e)}a&&$&&O>$&&(j(((e,t)=>{let r=0;const n=[];e.o.forEach(((e,o)=>{e!==d&&(n.push(e),o<t&&r++)})),e.l=-1;const s=l(n),i=s.length,c=i/2|0,u=i%2==0?(s[c-1]+s[c])/2:s[c],a=e.i;return((e.i=u)-a)*o(t-r,0)})(R,m(R,B()))),a=!1),c=3,i=!0;break}case 4:$!==t&&($=t,c=3);break;case 5:t[1]?(j(x(R,t[0],!0)),T=2,c=1):(x(R,t[0]),c=1);break;case 6:w=t;break;case 7:T=1;break;case 8:M=H(t),c=1}c&&(S=1+(2147483647&S),n&&z&&(y+=z,z=0),q.forEach((([e,t])=>{c&e&&t(i)})))}}},k=setTimeout,T=(e,t)=>t&&y()?-e:e,M=(e,t,n,o,s,i)=>{const c=Date.now;let l=0,u=!1,a=!1,f=!1,d=!1;const h=(()=>{let t;const n=()=>{t!=r&&clearTimeout(t)},o=()=>{n(),t=k((()=>{t=r,(()=>{if(u||a)return u=!1,void h();f=!1,e.L(2)})()}),150)};return o.P=n,o})(),g=()=>{l=c(),f&&(d=!0),i&&e.L(6,i()),e.L(1,o()),h()},v=t=>{if(u||!e.O()||t.ctrlKey)return;const r=c()-l;150>r&&50<r&&(n?t.deltaX:t.deltaY)&&(u=!0)},p=()=>{a=!0,f=d=!1},m=()=>{a=!1,_()&&(f=!0)};return t.addEventListener("scroll",g),t.addEventListener("wheel",v,{passive:!0}),t.addEventListener("touchstart",p,{passive:!0}),t.addEventListener("touchend",m,{passive:!0}),{W:()=>{t.removeEventListener("scroll",g),t.removeEventListener("wheel",v),t.removeEventListener("touchstart",p),t.removeEventListener("touchend",m),h.P()},j:()=>{const[t,r]=e.B();t&&(s(T(t,n),r,d),d=!1,r&&e.R()>e.J()&&e.L(1,o()))}}},E=(e,t,r)=>{let n;return[async(o,s)=>{if(!await t())return;n&&n();const i=()=>{const[t,r]=a();return n=()=>{r(!1)},e.R()&&k(n,150),[t,e.H(2,(()=>{r(!0)}))]};if(s&&z())e.L(8,o()),u((async()=>{for(;;){let t=!0;for(let[r,n]=e.m();r<=n;r++)if(e._(r)){t=!1;break}if(t)break;const[r,n]=i();try{if(!await r)return}finally{n()}}e.L(7),r(o(),s)}));else for(;;){const[t,n]=i();try{if(e.L(7),r(o()),!await t)return}finally{n()}}},()=>{n&&n()}]},O=e=>{let t;return{C(r){(t||(t=new(b(w(r)).ResizeObserver)(e))).observe(r)},V(e){t.unobserve(e)},W(){t&&t.disconnect()}}},R=r=>{let n;r=t.mergeProps({X:"div"},r),t.createEffect((()=>{n&&t.onCleanup(r.Y(n,r.D))}));const o=t.createMemo((()=>{const e=r.U,t={contain:"layout style",position:"absolute",[e?"height":"width"]:"100%",[e?"top":"left"]:"0px",[e?y()?"right":"left":"top"]:r.A+"px",visibility:r.F?"hidden":"visible"};return e&&(t.display="inline-flex"),t}));return e.createComponent(e.Dynamic,{get component(){return r.X},get index(){return r.D},ref(e){"function"==typeof n?n(e):n=e},get style(){return o()},get children(){return r.G}})},q=(e,t)=>e[0]===t[0]&&e[1]===t[1],J=n=>{let s;const{itemSize:i,horizontal:u=!1,overscan:f,cache:d}=n;n=t.mergeProps({as:"div"},n);const h=I(n.data.length,i,f,void 0,d,!i),g=((e,t)=>{let n;const o=t?"width":"height",s=new WeakMap,i=O((t=>{const i=[];for(const{target:c,contentRect:l}of t)if(c.offsetParent)if(c===n)e.L(4,l[o]);else{const e=s.get(c);e!=r&&i.push([e,l[o]])}i.length&&e.L(3,i)}));return{K(e){i.C(n=e)},N:(e,t)=>(s.set(e,t),i.C(e),()=>{s.delete(e),i.V(e)}),Z:i.W}})(h,u),v=((e,t)=>{let r,n,o=a();const s=t?"scrollLeft":"scrollTop",i=t?"overflowX":"overflowY",[l,u]=E(e,(()=>o[0]),((e,n)=>{e=T(e,t),n?r.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):r[s]=e}));return{ee(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",k((()=>{e[i]=t}))}c[s]=e.M()+t,r&&u()})),o[1](!0)},Z(){n&&n.W(),o[1](!1),o=a()},te(e){l((()=>e))},re(t){t+=e.M(),l((()=>t))},ne(t,{align:r,smooth:n,offset:o=0}={}){if(t=c(t,0,e.T()-1),"nearest"===r){const n=e.I(t),o=e.M();if(n<o)r="start";else{if(!(n+e.k(t)>o+e.R()))return;r="end"}}l((()=>o+e.q()+e.I(t)+("end"===r?e.k(t)-e.R():"center"===r?(e.k(t)-e.R())/2:0)),n)},oe:()=>{n&&n.j()}}})(h,u),[p,m]=t.createSignal(h.v()),x=h.H(1,(()=>{m(h.v())})),S=h.H(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n,h.M())})),$=h.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)})),w=t.createMemo((e=>{p();const t=h.m();return e&&q(e,t)?e:t})),b=t.createMemo((()=>p()&&h.O())),y=t.createMemo((()=>p()&&h.J()));t.onMount((()=>{n.ref&&n.ref({get cache(){return h.p()},get scrollOffset(){return h.M()},get scrollSize(){return(e=>o(e.J(),e.R()))(h)},get viewportSize(){return h.R()},findStartIndex:h.S,findEndIndex:h.$,getItemOffset:h.I,getItemSize:h.k,scrollToIndex:v.ne,scrollTo:v.te,scrollBy:v.re});const e=n.scrollRef||s.parentElement;g.K(e),v.ee(e),t.onCleanup((()=>{n.ref&&n.ref(),x(),S(),$(),g.Z(),v.Z()}))})),t.createComputed(t.on((()=>n.startMargin||0),(e=>{e!==h.q()&&h.L(6,e)}))),t.createEffect(t.on(p,(()=>{v.oe()})));const _=t.createMemo((()=>{const e=n.data.length;t.untrack((()=>{e!==h.T()&&h.L(5,[e,n.shift])}));const[r,o]=w(),s=[],i=[];if(n.keepMounted){const e=new Set(n.keepMounted);for(let t=r,n=o;t<=n;t++)e.add(t);l([...e]).forEach((e=>{s.push(n.data[e]),i.push(e)}))}else for(let e=r,t=o;e<=t;e++)s.push(n.data[e]),i.push(e);return{se:s,ie:i}}));return e.createComponent(e.Dynamic,{get component(){return n.as},ref(e){"function"==typeof s?s(e):s=e},get style(){return{contain:"size paint style","overflow-anchor":"none",overflow:"clip",flex:"none",position:"relative",width:u?y()+"px":"100%",height:u?"100%":y()+"px","pointer-events":b()?"none":void 0}},get children(){return e.createComponent(t.For,{get each(){return _().se},children:(r,o)=>((r,o)=>{const s=t.createMemo((()=>(p(),h.I(o())))),i=t.createMemo((()=>(p(),h._(o())))),c=t.createMemo((()=>t.untrack((()=>n.children(r,o)))));return e.createComponent(R,{get X(){return n.item},get D(){return o()},get Y(){return g.N},get A(){return s()},get F(){return i()},get G(){return c()},U:u})})(r,t.createMemo((()=>_().ie[o()])))})}})};var B=/*#__PURE__*/e.template("<div>"),H=/*#__PURE__*/e.template("<div style=overflow-anchor:none>");exports.VList=r=>{const[n,o]=t.splitProps(r,["ref","data","children","overscan","itemSize","shift","horizontal","keepMounted","cache","item","onScroll","onScrollEnd","style"]);return s=B(),e.spread(s,e.mergeProps(o,{get style(){return{display:n.horizontal?"inline-block":"block",[n.horizontal?"overflow-x":"overflow-y"]:"auto",contain:"strict",width:"100%",height:"100%",...n.style}}}),!1,!0),e.insert(s,e.createComponent(J,{ref(e){var t=n.ref;"function"==typeof t?t(e):n.ref=e},get data(){return n.data},get overscan(){return n.overscan},get itemSize(){return n.itemSize},get shift(){return n.shift},get horizontal(){return n.horizontal},get keepMounted(){return n.keepMounted},get cache(){return n.cache},get item(){return n.item},get onScroll(){return n.onScroll},get onScrollEnd(){return n.onScrollEnd},get children(){return n.children}})),s;var s},exports.Virtualizer=J,exports.WindowVirtualizer=n=>{let o;const{ref:s,data:i,children:l,overscan:u,itemSize:f,shift:d,horizontal:h=!1,cache:g,onScrollEnd:v}=n,p=I(n.data.length,f,u,void 0,g,!f),m=((e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",s=new WeakMap,i=O((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 c;return{K(t){const r=b(w(t)),n=()=>{e.L(4,r[o])};r.addEventListener("resize",n),n(),c=()=>{r.removeEventListener("resize",n)}},N:(e,t)=>(s.set(e,t),i.C(e),()=>{s.delete(e),i.V(e)}),Z(){c&&c(),i.W()}}})(p,h),x=((e,t)=>{let r,n,o=a();const s=t?"left":"top",[i]=E(e,(()=>o[0]),((e,n)=>{e=T(e,t);const o=b(w(r));n?o.scroll({[s]:e,behavior:"smooth"}):o.scroll({[s]:e})})),l=(e,t,r,n,o=0)=>{const s=n?"offsetLeft":"offsetTop",i=o+(n&&y()?r.innerWidth-e[s]-e.offsetWidth:e[s]),c=e.offsetParent;return e!==t&&c?l(c,t,r,n,i):i};return{ee(i){r=i;const c=t?"scrollX":"scrollY",u=w(i),a=b(u);n=M(e,a,t,(()=>T(a[c],t)),(t=>{a.scroll({[s]:e.M()+t})}),(()=>l(i,u.body,a,t))),o[1](!0)},Z(){n&&n.W(),r=void 0,o[1](!1),o=a()},oe:()=>{n&&n.j()},ne(n,{align:o,smooth:s,offset:u=0}={}){if(!r)return;if(n=c(n,0,e.T()-1),"nearest"===o){const t=e.I(n),r=e.M();if(t<r)o="start";else{if(!(t+e.k(n)>r+e.R()))return;o="end"}}const a=w(r),f=b(a),d=a.documentElement,h=()=>e.R()-(t?d.clientWidth:d.clientHeight);i((()=>u+l(r,a.body,f,t)+e.I(n)+("end"===o?e.k(n)-(e.R()-h()):"center"===o?(e.k(n)-(e.R()-h()))/2:0)),s)}}})(p,h),[S,$]=t.createSignal(p.v()),_=p.H(1,(()=>{$(p.v())})),z=p.H(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n)})),k=p.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)})),J=t.createMemo((e=>{S();const t=p.m();return e&&q(e,t)?e:t})),B=t.createMemo((()=>S()&&p.O())),L=t.createMemo((()=>S()&&p.J()));t.onMount((()=>{n.ref&&n.ref({get cache(){return p.p()},findStartIndex:p.S,findEndIndex:p.$,scrollToIndex:x.ne}),m.K(o),x.ee(o),t.onCleanup((()=>{n.ref&&n.ref(),_(),z(),k(),m.Z(),x.Z()}))})),t.createEffect(t.on(S,(()=>{x.oe()})));const P=t.createMemo((()=>{const e=n.data.length;t.untrack((()=>{e!==p.T()&&p.L(5,[e,n.shift])}));const[r,o]=J(),s=[];for(let e=r,t=o;e<=t;e++)s.push(n.data[e]);return s}));return W=H(),"function"==typeof(j=o)?e.use(j,W):o=W,e.setStyleProperty(W,"contain","size paint style"),e.setStyleProperty(W,"overflow","clip"),e.setStyleProperty(W,"flex","none"),e.setStyleProperty(W,"position","relative"),e.insert(W,e.createComponent(t.For,{get each(){return P()},children:(r,o)=>{const s=t.createMemo((()=>J()[0]+o())),i=t.createMemo((()=>(S(),p.I(s())))),c=t.createMemo((()=>(S(),p._(s())))),l=t.createMemo((()=>t.untrack((()=>n.children(r,s)))));return e.createComponent(R,{get D(){return s()},get Y(){return m.N},get A(){return i()},get F(){return c()},get G(){return l()},U:h})}})),e.effect((t=>{var r=h?L()+"px":"100%",n=h?"100%":L()+"px",o=B()?"none":void 0;return r!==t.e&&e.setStyleProperty(W,"width",t.e=r),n!==t.t&&e.setStyleProperty(W,"height",t.t=n),o!==t.a&&e.setStyleProperty(W,"pointer-events",t.a=o),t}),{e:void 0,t:void 0,a:void 0}),W;var W,j};
2
2
  //# sourceMappingURL=index.cjs.map