virtua 0.45.3 → 0.46.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.
@@ -122,10 +122,10 @@ export interface VGridProps extends ViewportComponentAttributes {
122
122
  */
123
123
  cellWidth?: number;
124
124
  /**
125
- * Number of items to render above/below the visible bounds of the grid. Lower value will give better performance but you can increase to avoid showing blank items in fast scrolling.
126
- * @defaultValue 2
125
+ * Extra item space in pixels to render before/after the viewport. The minimum value is 0. Lower value will give better performance but you can increase to avoid showing blank items in fast scrolling.
126
+ * @defaultValue 200
127
127
  */
128
- overscan?: number;
128
+ bufferSize?: number;
129
129
  /**
130
130
  * If set, the specified amount of rows will be mounted in the initial rendering regardless of the container size. This prop is mostly for SSR.
131
131
  */
@@ -9,7 +9,7 @@ export interface VListHandle extends VirtualizerHandle {
9
9
  /**
10
10
  * Props of {@link VList}.
11
11
  */
12
- export interface VListProps<T = unknown> extends Pick<VirtualizerProps<T>, "children" | "data" | "overscan" | "itemSize" | "shift" | "horizontal" | "cache" | "ssrCount" | "item" | "onScroll" | "onScrollEnd" | "keepMounted">, ViewportComponentAttributes {
12
+ export interface VListProps<T = unknown> extends Pick<VirtualizerProps<T>, "children" | "data" | "bufferSize" | "itemSize" | "shift" | "horizontal" | "cache" | "ssrCount" | "item" | "onScroll" | "onScrollEnd" | "keepMounted">, ViewportComponentAttributes {
13
13
  /**
14
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.
15
15
  */
@@ -71,10 +71,10 @@ export interface VirtualizerProps<T = unknown> {
71
71
  */
72
72
  data?: ArrayLike<T>;
73
73
  /**
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
- * @defaultValue 4
74
+ * Extra item space in pixels to render before/after the viewport. The minimum value is 0. Lower value will give better performance but you can increase to avoid showing blank items in fast scrolling.
75
+ * @defaultValue 200
76
76
  */
77
- overscan?: number;
77
+ bufferSize?: number;
78
78
  /**
79
79
  * Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
80
80
  *
@@ -105,7 +105,7 @@ export interface VirtualizerProps<T = unknown> {
105
105
  */
106
106
  startMargin?: number;
107
107
  /**
108
- * A prop for SSR. If set, the specified amount of items will be mounted in the initial rendering regardless of the container size until hydrated.
108
+ * A prop for SSR. If set, the specified amount of items will be mounted in the initial rendering regardless of the container size until hydrated. The minimum value is 0.
109
109
  */
110
110
  ssrCount?: number;
111
111
  /**
@@ -39,10 +39,10 @@ export interface WindowVirtualizerProps<T = unknown> {
39
39
  */
40
40
  data?: ArrayLike<T>;
41
41
  /**
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
- * @defaultValue 4
42
+ * Extra item space in pixels to render before/after the viewport. The minimum value is 0. Lower value will give better performance but you can increase to avoid showing blank items in fast scrolling.
43
+ * @defaultValue 200
44
44
  */
45
- overscan?: number;
45
+ bufferSize?: number;
46
46
  /**
47
47
  * Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
48
48
  *
@@ -65,7 +65,7 @@ export interface WindowVirtualizerProps<T = unknown> {
65
65
  */
66
66
  cache?: CacheSnapshot;
67
67
  /**
68
- * A prop for SSR. If set, the specified amount of items will be mounted in the initial rendering regardless of the container size until hydrated.
68
+ * A prop for SSR. If set, the specified amount of items will be mounted in the initial rendering regardless of the container size until hydrated. The minimum value is 0.
69
69
  */
70
70
  ssrCount?: number;
71
71
  /**
@@ -12,7 +12,7 @@ export interface VListHandle extends VirtualizerHandle {
12
12
  /**
13
13
  * Props of {@link VList}.
14
14
  */
15
- export interface VListProps<T> extends Pick<VirtualizerProps<T>, "ref" | "data" | "children" | "overscan" | "itemSize" | "shift" | "horizontal" | "cache" | "item" | "onScroll" | "onScrollEnd" | "keepMounted">, ViewportComponentAttributes {
15
+ export interface VListProps<T> extends Pick<VirtualizerProps<T>, "ref" | "data" | "children" | "bufferSize" | "itemSize" | "shift" | "horizontal" | "cache" | "item" | "onScroll" | "onScrollEnd" | "keepMounted">, ViewportComponentAttributes {
16
16
  }
17
17
  /**
18
18
  * Virtualized list component. See {@link VListProps} and {@link VListHandle}.
@@ -75,10 +75,10 @@ export interface VirtualizerProps<T> {
75
75
  */
76
76
  children: (data: T, index: Accessor<number>) => JSX.Element;
77
77
  /**
78
- * 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.
79
- * @defaultValue 4
78
+ * Extra item space in pixels to render before/after the viewport. The minimum value is 0. Lower value will give better performance but you can increase to avoid showing blank items in fast scrolling.
79
+ * @defaultValue 200
80
80
  */
81
- overscan?: number;
81
+ bufferSize?: number;
82
82
  /**
83
83
  * Component or element type for container element.
84
84
  * @defaultValue "div"
@@ -43,10 +43,10 @@ export interface WindowVirtualizerProps<T> {
43
43
  */
44
44
  children: (data: T, index: Accessor<number>) => JSX.Element;
45
45
  /**
46
- * 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.
47
- * @defaultValue 4
46
+ * Extra item space in pixels to render before/after the viewport. The minimum value is 0. Lower value will give better performance but you can increase to avoid showing blank items in fast scrolling.
47
+ * @defaultValue 200
48
48
  */
49
- overscan?: number;
49
+ bufferSize?: number;
50
50
  /**
51
51
  * Item size hint for unmeasured items in pixels. It will help to reduce scroll jump when items are measured if used properly.
52
52
  *
@@ -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,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=(e,t,r)=>{const n=r?"unshift":"push";for(let r=0;r<t;r++)e[n](-1);return e},h=(e,t)=>{const r=e.o[t];return-1===r?e.i:r},g=(e,t,r)=>{const o=-1===e.o[t];return e.o[t]=r,e.l=n(t,e.l),o},v=(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},p=(e,t,r=0,n=e.u-1)=>{for(;r<=n;){const o=i((r+n)/2),s=v(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)},m=(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-(-1===r?e.i:r)),0))},x="undefined"!=typeof window,S=()=>document.documentElement,$=e=>e.ownerDocument,w=e=>e.defaultView,b=/*#__PURE__*/f((()=>!!x&&"rtl"===getComputedStyle(S()).direction)),y=/*#__PURE__*/f((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),_=/*#__PURE__*/f((()=>"scrollBehavior"in S().style)),z=(e,t=40,i=4,c=0,a,u=!1)=>{let f=!!c,x=1,S=0,$=0,w=0,b=0,_=0,z=0,I=0,k=0,T=f?[0,o(c-1,0)]:r,M=[0,0],E=0;const O=((e,t,r)=>({i:r?r[1]:t,o:r&&r[0]?d(r[0].slice(0,n(e,r[0].length)),o(0,e-r[0].length)):d([],e),u:e,l:-1,h:d([],e)}))(e,t,a),R=new Set,q=()=>w-$,J=()=>q()+_+b,B=e=>((e,t,r,o)=>{if(o=n(o,e.u-1),v(e,o)<=t){const n=p(e,t+r,o);return[p(e,t,o,n),n]}{const n=p(e,t,void 0,o);return[n,p(e,t+r,n)]}})(O,e,S,M[0]),H=()=>(e=>e.u?v(e,e.u-1)+h(e,e.u-1):0)(O),L=e=>v(O,e)-_,P=e=>h(O,e),W=(e,t=-1)=>O.o[e]===t,j=e=>{e&&(y()&&0!==I||T&&1===k?_+=e:b+=e)};return{v:()=>x,p:()=>(e=>[e.o.slice(),e.i])(O),m:()=>{let e,t;return z?[e,t]=M:([e,t]=M=B(o(0,J())),T&&(e=n(e,T[0]),t=o(t,T[1]))),1!==I&&(e-=o(0,i)),2!==I&&(t+=o(0,i)),[o(e,0),n(t,O.u-1)]},S:()=>p(O,J()),$:()=>p(O,J()+S),_:W,I:L,k:P,T:()=>O.u,M:()=>w,O:()=>0!==I,R:()=>S,q:()=>$,J:H,B:()=>(z=b,b=0,[z,2===k]),H:(e,t)=>{const r=[e,t];return R.add(r),()=>{R.delete(r)}},L:(e,t)=>{let n,i,c=0;switch(e){case 1:{const e=z;z=0;const n=t-w,o=s(n);e&&o<s(e)+1||0!==k||(I=n<0?2:1),f&&(T=r,f=!1),w=t,c=4;const l=q();l>=-S&&l<=H()&&(c+=1,i=o>S);break}case 2:c=8,0!==I&&(n=!0,c+=1),I=0,k=0,T=r;break;case 3:{const e=t.filter((([e,t])=>!W(e,t)));if(!e.length)break;j(e.reduce(((e,[t,r])=>((2===k||(T&&1===k?t<T[0]:L(t)+(0===I&&0===k?P(t):0)<q()))&&(e+=r-P(t)),e)),0));for(const[t,r]of e){const e=P(t),n=g(O,t,r);u&&(E+=n?r:r-e)}u&&S&&E>S&&(j(((e,t)=>{let r=0;const n=[];e.o.forEach(((e,o)=>{-1!==e&&(n.push(e),o<t&&r++)})),e.l=-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.i;return((e.i=a)-u)*o(t-r,0)})(O,p(O,J()))),u=!1),c=3,i=!0;break}case 4:S!==t&&(S=t,c=3);break;case 5:t[1]?(j(m(O,t[0],!0)),k=2,c=1):(m(O,t[0]),c=1);break;case 6:$=t;break;case 7:k=1;break;case 8:T=B(t),c=1}c&&(x=1+(2147483647&x),n&&_&&(b+=_,_=0),R.forEach((([e,t])=>{c&e&&t(i)})))}}},I=setTimeout,k=(e,t)=>t&&b()?-e:e,T=(e,t,n,o,s,i)=>{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=I((()=>{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),i&&e.L(6,i()),e.L(1,o()),h()},v=t=>{if(a||!e.O()||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,y()&&(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(k(t,n),r,d),d=!1,r&&e.R()>e.J()&&e.L(1,o()))}}},M=(e,t,r)=>{let n;return[async(o,s)=>{if(!await t())return;n&&n();const i=()=>{const[t,r]=u();return n=()=>{r(!1)},e.R()&&I(n,150),[t,e.H(2,(()=>{r(!0)}))]};if(s&&_())e.L(8,o()),a((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()}]},E=e=>{let t;return{C(r){(t||(t=new(w($(r)).ResizeObserver)(e))).observe(r)},V(e){t.unobserve(e)},W(){t&&t.disconnect()}}},O=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?b()?"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}})},R=(e,t)=>e[0]===t[0]&&e[1]===t[1],q=n=>{let s;const{itemSize:i,horizontal:a=!1,overscan:f,cache:d}=n;n=t.mergeProps({as:"div"},n);const h=z(n.data.length,i,f,void 0,d,!i),g=((e,t)=>{let n;const o=t?"width":"height",s=new WeakMap,i=E((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,a),v=((e,t)=>{let r,n,o=u();const s=t?"scrollLeft":"scrollTop",i=t?"overflowX":"overflowY",[l,a]=M(e,(()=>o[0]),((e,n)=>{e=k(e,t),n?r.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):r[s]=e}));return{ee(c){r=c,n=T(e,c,t,(()=>k(c[s],t)),((t,r,n)=>{if(n){const e=c.style,t=e[i];e[i]="hidden",I((()=>{e[i]=t}))}c[s]=e.M()+t,r&&a()})),o[1](!0)},Z(){n&&n.W(),o[1](!1),o=u()},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,a),[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&&R(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=[];if(n.keepMounted){const e=new Set(n.keepMounted);for(let[t,r]=w();t<=r;t++)e.add(t);l([...e]).forEach((e=>{r.push(n.data[e]),o.push(e)}))}else for(let[e,t]=w();e<=t;e++)r.push(n.data[e]),o.push(e);return{se:r,ie:o}}));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:a?y()+"px":"100%",height:a?"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(O,{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:a})})(r,t.createMemo((()=>_().ie[o()])))})}})};var J=/*#__PURE__*/e.template("<div>"),B=/*#__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=J(),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(q,{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=q,exports.WindowVirtualizer=n=>{let o;const{ref:s,data:i,children:l,overscan:a,itemSize:f,shift:d,horizontal:h=!1,cache:g,onScrollEnd:v}=n,p=z(n.data.length,f,a,void 0,g,!f),m=((e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",s=new WeakMap,i=E((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=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=u();const s=t?"left":"top",[i]=M(e,(()=>o[0]),((e,n)=>{e=k(e,t);const o=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&&b()?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",a=$(i),u=w(a);n=T(e,u,t,(()=>k(u[c],t)),(t=>{u.scroll({[s]:e.M()+t})}),(()=>l(i,a.body,u,t))),o[1](!0)},Z(){n&&n.W(),r=void 0,o[1](!1),o=u()},oe:()=>{n&&n.j()},ne(n,{align:o,smooth:s,offset:a=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 u=$(r),f=w(u),d=u.documentElement,h=()=>e.R()-(t?d.clientWidth:d.clientHeight);i((()=>a+l(r,u.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,y]=t.createSignal(p.v()),_=p.H(1,(()=>{y(p.v())})),I=p.H(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n)})),q=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&&R(e,t)?e:t})),H=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(),_(),I(),q(),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=[];for(let[e,t]=J();e<=t;e++)r.push(n.data[e]);return r}));return W=B(),"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(O,{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=H()?"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};
1
+ var e=require("solid-js/web"),t=require("solid-js");const r=null,{min:n,max:o,abs:i,floor:s}=Math,l=(e,t,r)=>n(r,o(t,e)),c=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=(e,t,r)=>{const n=r?"unshift":"push";for(let r=0;r<t;r++)e[n](-1);return e},h=(e,t)=>{const r=e.o[t];return-1===r?e.i:r},g=(e,t,r)=>{const o=-1===e.o[t];return e.o[t]=r,e.l=n(t,e.l),o},v=(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},p=(e,t,r=0,n=e.u-1)=>{for(;r<=n;){const o=s((r+n)/2),i=v(e,o);if(i<=t){if(i+h(e,o)>t)return o;r=o+1}else n=o-1}return l(r,0,e.u-1)},m=(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-(-1===r?e.i:r)),0))},S="undefined"!=typeof window,x=()=>document.documentElement,$=e=>e.ownerDocument,b=e=>e.defaultView,w=/*#__PURE__*/f((()=>!!S&&"rtl"===getComputedStyle(x()).direction)),y=/*#__PURE__*/f((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),z=/*#__PURE__*/f((()=>"scrollBehavior"in x().style)),_=(e,t=40,s=0,l,u=!1)=>{let a=!!s,f=1,S=0,x=0,$=0,b=0,w=0,z=0,_=0,I=0,k=r,T=[0,a?o(s-1,0):-1],M=0;const E=((e,t,r)=>({i:r?r[1]:t,o:r&&r[0]?d(r[0].slice(0,n(e,r[0].length)),o(0,e-r[0].length)):d([],e),u:e,l:-1,h:d([],e)}))(e,t,l),O=new Set,R=()=>$-x,q=()=>R()+w+b,J=(e,t)=>((e,t,r,o)=>{if(o=n(o,e.u-1),v(e,o)<=t){const n=p(e,r,o);return[p(e,t,o,n),n]}{const n=p(e,t,void 0,o);return[n,p(e,r,n)]}})(E,e,t,T[0]),B=()=>(e=>e.u?v(e,e.u-1)+h(e,e.u-1):0)(E),H=e=>v(E,e)-w,L=e=>h(E,e),P=(e,t=-1)=>E.o[e]===t,W=e=>{e&&(y()&&0!==_||k&&1===I?w+=e:b+=e)};return{v:()=>f,p:()=>(e=>[e.o.slice(),e.i])(E),m:(e=200)=>{if(!S||a)return T;let t,r;if(z)[t,r]=T;else{e=o(0,e);let i=o(0,q()),s=i+S;u||(1!==_&&(i-=e),2!==_&&(s+=e)),[t,r]=T=J(o(0,i),o(0,s)),k&&(t=n(t,k[0]),r=o(r,k[1]))}return[o(t,0),n(r,E.u-1)]},S:()=>p(E,q()),$:()=>p(E,q()+S),_:P,I:H,k:L,T:()=>E.u,M:()=>$,O:()=>0!==_,R:()=>S,q:()=>x,J:B,B:()=>(z=b,b=0,[z,2===I]),H:(e,t)=>{const r=[e,t];return O.add(r),()=>{O.delete(r)}},L:(e,t)=>{let n,s,l=0;switch(e){case 1:{const e=z;z=0;const r=t-$,n=i(r);e&&n<i(e)+1||0!==I||(_=r<0?2:1),a&&(a=!1),$=t,l=4;const o=R();o>=-S&&o<=B()&&(l+=1,s=n>S);break}case 2:l=8,0!==_&&(n=!0,l+=1),_=0,I=0,k=r;break;case 3:{const e=t.filter((([e,t])=>!P(e,t)));if(!e.length)break;W(e.reduce(((e,[t,r])=>((2===I||(k&&1===I?t<k[0]:H(t)+(0===_&&0===I?L(t):0)<R()))&&(e+=r-L(t)),e)),0));for(const[t,r]of e){const e=L(t),n=g(E,t,r);u&&(M+=n?r:r-e)}u&&S&&M>S&&(W(((e,t)=>{let r=0;const n=[];e.o.forEach(((e,o)=>{-1!==e&&(n.push(e),o<t&&r++)})),e.l=-1;const i=c(n),s=i.length,l=s/2|0,u=s%2==0?(i[l-1]+i[l])/2:i[l],a=e.i;return((e.i=u)-a)*o(t-r,0)})(E,p(E,q()))),u=!1),l=3,s=!0;break}case 4:S!==t&&(S=t,l=3);break;case 5:t[1]?(W(m(E,t[0],!0)),I=2,l=1):(m(E,t[0]),l=1);break;case 6:x=t;break;case 7:I=1;break;case 8:k=J(t,t+S),l=1}l&&(f=1+(2147483647&f),n&&w&&(b+=w,w=0),O.forEach((([e,t])=>{l&e&&t(s)})))}}},I=setTimeout,k=(e,t)=>t&&w()?-e:e,T=(e,t,n,o,i,s)=>{const l=Date.now;let c=0,u=!1,a=!1,f=!1,d=!1;const h=(()=>{let t;const n=()=>{t!=r&&clearTimeout(t)},o=()=>{n(),t=I((()=>{t=r,(()=>{if(u||a)return u=!1,void h();f=!1,e.L(2)})()}),150)};return o.P=n,o})(),g=()=>{c=l(),f&&(d=!0),s&&e.L(6,s()),e.L(1,o()),h()},v=t=>{if(u||!e.O()||t.ctrlKey)return;const r=l()-c;150>r&&50<r&&(n?t.deltaX:t.deltaY)&&(u=!0)},p=()=>{a=!0,f=d=!1},m=()=>{a=!1,y()&&(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(k(t,n),r,d),d=!1,r&&e.R()>e.J()&&e.L(1,o()))}}},M=(e,t,r)=>{let n;return[async(o,i)=>{if(!await t())return;n&&n();const s=()=>{const[t,r]=a();return n=()=>{r(!1)},e.R()&&I(n,150),[t,e.H(2,(()=>{r(!0)}))]};if(i&&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]=s();try{if(!await r)return}finally{n()}}e.L(7),r(o(),i)}));else for(;;){const[t,n]=s();try{if(e.L(7),r(o()),!await t)return}finally{n()}}},()=>{n&&n()}]},E=e=>{let t;return{C(r){(t||(t=new(b($(r)).ResizeObserver)(e))).observe(r)},V(e){t.unobserve(e)},W(){t&&t.disconnect()}}},O=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?w()?"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}})},R=(e,t)=>e[0]===t[0]&&e[1]===t[1],q=n=>{let i;const{itemSize:s,horizontal:u=!1,cache:f}=n;n=t.mergeProps({as:"div"},n);const d=_(n.data.length,s,void 0,f,!s),h=((e,t)=>{let n;const o=t?"width":"height",i=new WeakMap,s=E((t=>{const s=[];for(const{target:l,contentRect:c}of t)if(l.offsetParent)if(l===n)e.L(4,c[o]);else{const e=i.get(l);e!=r&&s.push([e,c[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}})(d,u),g=((e,t)=>{let r,n,o=a();const i=t?"scrollLeft":"scrollTop",s=t?"overflowX":"overflowY",[c,u]=M(e,(()=>o[0]),((e,n)=>{e=k(e,t),n?r.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):r[i]=e}));return{ee(l){r=l,n=T(e,l,t,(()=>k(l[i],t)),((t,r,n)=>{if(n){const e=l.style,t=e[s];e[s]="hidden",I((()=>{e[s]=t}))}l[i]=e.M()+t,r&&u()})),o[1](!0)},Z(){n&&n.W(),o[1](!1),o=a()},te(e){c((()=>e))},re(t){t+=e.M(),c((()=>t))},ne(t,{align:r,smooth:n,offset:o=0}={}){if(t=l(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"}}c((()=>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()}}})(d,u),[v,p]=t.createSignal(d.v()),m=d.H(1,(()=>{p(d.v())})),S=d.H(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n,d.M())})),x=d.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)})),$=t.createMemo((e=>{v();const t=d.m(n.bufferSize);return e&&R(e,t)?e:t})),b=t.createMemo((()=>v()&&d.O())),w=t.createMemo((()=>v()&&d.J()));t.onMount((()=>{n.ref&&n.ref({get cache(){return d.p()},get scrollOffset(){return d.M()},get scrollSize(){return(e=>o(e.J(),e.R()))(d)},get viewportSize(){return d.R()},findStartIndex:d.S,findEndIndex:d.$,getItemOffset:d.I,getItemSize:d.k,scrollToIndex:g.ne,scrollTo:g.te,scrollBy:g.re});const e=n.scrollRef||i.parentElement;h.K(e),g.ee(e),t.onCleanup((()=>{n.ref&&n.ref(),m(),S(),x(),h.Z(),g.Z()}))})),t.createComputed(t.on((()=>n.startMargin||0),(e=>{e!==d.q()&&d.L(6,e)}))),t.createEffect(t.on(v,(()=>{g.oe()})));const y=t.createMemo((()=>{const e=n.data.length;t.untrack((()=>{e!==d.T()&&d.L(5,[e,n.shift])}));const r=[],o=[];if(n.keepMounted){const e=new Set(n.keepMounted);for(let[t,r]=$();t<=r;t++)e.add(t);c([...e]).forEach((e=>{r.push(n.data[e]),o.push(e)}))}else for(let[e,t]=$();e<=t;e++)r.push(n.data[e]),o.push(e);return{ie:r,se:o}}));return e.createComponent(e.Dynamic,{get component(){return n.as},ref(e){"function"==typeof i?i(e):i=e},get style(){return{contain:"size paint style","overflow-anchor":"none",overflow:"clip",flex:"none",position:"relative",width:u?w()+"px":"100%",height:u?"100%":w()+"px","pointer-events":b()?"none":void 0}},get children(){return e.createComponent(t.For,{get each(){return y().ie},children:(r,o)=>((r,o)=>{const i=t.createMemo((()=>(v(),d.I(o())))),s=t.createMemo((()=>(v(),d._(o())))),l=t.createMemo((()=>t.untrack((()=>n.children(r,o)))));return e.createComponent(O,{get X(){return n.item},get D(){return o()},get Y(){return h.N},get A(){return i()},get F(){return s()},get G(){return l()},U:u})})(r,t.createMemo((()=>y().se[o()])))})}})};var J=/*#__PURE__*/e.template("<div>"),B=/*#__PURE__*/e.template("<div style=overflow-anchor:none>");exports.VList=r=>{const[n,o]=t.splitProps(r,["ref","data","children","bufferSize","itemSize","shift","horizontal","keepMounted","cache","item","onScroll","onScrollEnd","style"]);return i=J(),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(q,{ref(e){var t=n.ref;"function"==typeof t?t(e):n.ref=e},get data(){return n.data},get bufferSize(){return n.bufferSize},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=q,exports.WindowVirtualizer=n=>{let o;const{ref:i,data:s,children:c,itemSize:u,shift:f,horizontal:d=!1,cache:h,onScrollEnd:g}=n,v=_(n.data.length,u,void 0,h,!u),p=((e,t)=>{const n=t?"width":"height",o=t?"innerWidth":"innerHeight",i=new WeakMap,s=E((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 l;return{K(t){const r=b($(t)),n=()=>{e.L(4,r[o])};r.addEventListener("resize",n),n(),l=()=>{r.removeEventListener("resize",n)}},N:(e,t)=>(i.set(e,t),s.C(e),()=>{i.delete(e),s.V(e)}),Z(){l&&l(),s.W()}}})(v,d),m=((e,t)=>{let r,n,o=a();const i=t?"left":"top",[s]=M(e,(()=>o[0]),((e,n)=>{e=k(e,t);const o=b($(r));n?o.scroll({[i]:e,behavior:"smooth"}):o.scroll({[i]:e})})),c=(e,t,r,n,o=0)=>{const i=n?"offsetLeft":"offsetTop",s=o+(n&&w()?r.innerWidth-e[i]-e.offsetWidth:e[i]),l=e.offsetParent;return e!==t&&l?c(l,t,r,n,s):s};return{ee(s){r=s;const l=t?"scrollX":"scrollY",u=$(s),a=b(u);n=T(e,a,t,(()=>k(a[l],t)),((t,r)=>{r?a.scroll({[i]:e.M()+t}):a.scrollBy({[i]:t})}),(()=>c(s,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:i,offset:u=0}={}){if(!r)return;if(n=l(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=$(r),f=b(a),d=a.documentElement,h=()=>e.R()-(t?d.clientWidth:d.clientHeight);s((()=>u+c(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)),i)}}})(v,d),[S,x]=t.createSignal(v.v()),y=v.H(1,(()=>{x(v.v())})),z=v.H(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n)})),I=v.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)})),q=t.createMemo((e=>{S();const t=v.m(n.bufferSize);return e&&R(e,t)?e:t})),J=t.createMemo((()=>S()&&v.O())),H=t.createMemo((()=>S()&&v.J()));t.onMount((()=>{n.ref&&n.ref({get cache(){return v.p()},findStartIndex:v.S,findEndIndex:v.$,scrollToIndex:m.ne}),p.K(o),m.ee(o),t.onCleanup((()=>{n.ref&&n.ref(),y(),z(),I(),p.Z(),m.Z()}))})),t.createEffect(t.on(S,(()=>{m.oe()})));const L=t.createMemo((()=>{const e=n.data.length;t.untrack((()=>{e!==v.T()&&v.L(5,[e,n.shift])}));const r=[];for(let[e,t]=q();e<=t;e++)r.push(n.data[e]);return r}));return P=B(),"function"==typeof(W=o)?e.use(W,P):o=P,e.setStyleProperty(P,"contain","size paint style"),e.setStyleProperty(P,"overflow","clip"),e.setStyleProperty(P,"flex","none"),e.setStyleProperty(P,"position","relative"),e.insert(P,e.createComponent(t.For,{get each(){return L()},children:(r,o)=>{const i=t.createMemo((()=>q()[0]+o())),s=t.createMemo((()=>(S(),v.I(i())))),l=t.createMemo((()=>(S(),v._(i())))),c=t.createMemo((()=>t.untrack((()=>n.children(r,i)))));return e.createComponent(O,{get D(){return i()},get Y(){return p.N},get A(){return s()},get F(){return l()},get G(){return c()},U:d})}})),e.effect((t=>{var r=d?H()+"px":"100%",n=d?"100%":H()+"px",o=J()?"none":void 0;return r!==t.e&&e.setStyleProperty(P,"width",t.e=r),n!==t.t&&e.setStyleProperty(P,"height",t.t=n),o!==t.a&&e.setStyleProperty(P,"pointer-events",t.a=o),t}),{e:void 0,t:void 0,a:void 0}),P;var P,W};
2
2
  //# sourceMappingURL=index.cjs.map