virtua 0.46.7 → 0.47.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.
- package/lib/core/index.cjs +1 -1
- package/lib/core/index.cjs.map +1 -1
- package/lib/core/index.js +1 -1
- package/lib/core/index.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/react/VGrid.d.ts +29 -19
- package/lib/react/Virtualizer.d.ts +3 -6
- package/lib/react/WindowVirtualizer.d.ts +19 -4
- package/lib/solid/Virtualizer.d.ts +3 -6
- package/lib/solid/WindowVirtualizer.d.ts +19 -4
- package/lib/solid/index.cjs +1 -1
- package/lib/solid/index.cjs.map +1 -1
- package/lib/solid/index.js +1 -1
- package/lib/solid/index.js.map +1 -1
- package/lib/solid/index.jsx +50 -32
- package/lib/solid/index.jsx.map +1 -1
- package/lib/svelte/VList.svelte +4 -4
- package/lib/svelte/Virtualizer.svelte +2 -4
- package/lib/svelte/Virtualizer.type.d.ts +4 -7
- package/lib/svelte/WindowVirtualizer.svelte +10 -4
- package/lib/svelte/WindowVirtualizer.type.d.ts +20 -5
- package/lib/vue/Virtualizer.d.ts +3 -6
- package/lib/vue/WindowVirtualizer.d.ts +19 -4
- package/lib/vue/index.cjs +1 -1
- package/lib/vue/index.cjs.map +1 -1
- package/lib/vue/index.js +1 -1
- package/lib/vue/index.js.map +1 -1
- package/package.json +1 -1
package/lib/react/VGrid.d.ts
CHANGED
|
@@ -38,25 +38,35 @@ export interface VGridHandle {
|
|
|
38
38
|
*/
|
|
39
39
|
readonly viewportWidth: number;
|
|
40
40
|
/**
|
|
41
|
-
* Find
|
|
41
|
+
* Find nearest row index from offset.
|
|
42
|
+
* @param offset offset in pixels from the start of the scroll container
|
|
42
43
|
*/
|
|
43
|
-
|
|
44
|
+
findRowIndex: (offset: number) => number;
|
|
44
45
|
/**
|
|
45
|
-
* Find
|
|
46
|
+
* Find nearest col index from offset.
|
|
47
|
+
* @param offset offset in pixels from the start of the scroll container
|
|
46
48
|
*/
|
|
47
|
-
|
|
49
|
+
findColIndex: (offset: number) => number;
|
|
48
50
|
/**
|
|
49
|
-
* Get
|
|
50
|
-
* @param
|
|
51
|
-
* @param indexY vertical of item
|
|
51
|
+
* Get row offset from start.
|
|
52
|
+
* @param index index of row
|
|
52
53
|
*/
|
|
53
|
-
|
|
54
|
+
getRowOffset(index: number): number;
|
|
54
55
|
/**
|
|
55
|
-
* Get
|
|
56
|
-
* @param
|
|
57
|
-
|
|
56
|
+
* Get col offset from start.
|
|
57
|
+
* @param index index of col
|
|
58
|
+
*/
|
|
59
|
+
getColOffset(index: number): number;
|
|
60
|
+
/**
|
|
61
|
+
* Get row size.
|
|
62
|
+
* @param index index of row
|
|
63
|
+
*/
|
|
64
|
+
getRowSize(index: number): number;
|
|
65
|
+
/**
|
|
66
|
+
* Get col size.
|
|
67
|
+
* @param index index of col
|
|
58
68
|
*/
|
|
59
|
-
|
|
69
|
+
getColSize(index: number): number;
|
|
60
70
|
/**
|
|
61
71
|
* Resize individual columns.
|
|
62
72
|
* @param cols array of `[index, size]` to update column sizes
|
|
@@ -72,19 +82,19 @@ export interface VGridHandle {
|
|
|
72
82
|
* @param indexX horizontal index of item
|
|
73
83
|
* @param indexY vertical index of item
|
|
74
84
|
*/
|
|
75
|
-
scrollToIndex(indexX
|
|
85
|
+
scrollToIndex(indexX?: number, indexY?: number): void;
|
|
76
86
|
/**
|
|
77
87
|
* Scroll to the given offset.
|
|
78
88
|
* @param offsetX offset from left
|
|
79
89
|
* @param offsetY offset from top
|
|
80
90
|
*/
|
|
81
|
-
scrollTo(offsetX
|
|
91
|
+
scrollTo(offsetX?: number, offsetY?: number): void;
|
|
82
92
|
/**
|
|
83
93
|
* Scroll by the given offset.
|
|
84
94
|
* @param offsetX horizontal offset from current position
|
|
85
95
|
* @param offsetY vertical offset from current position
|
|
86
96
|
*/
|
|
87
|
-
scrollBy(offsetX
|
|
97
|
+
scrollBy(offsetX?: number, offsetY?: number): void;
|
|
88
98
|
}
|
|
89
99
|
/**
|
|
90
100
|
* Props of {@link VGrid}.
|
|
@@ -127,13 +137,13 @@ export interface VGridProps extends ViewportComponentAttributes {
|
|
|
127
137
|
*/
|
|
128
138
|
bufferSize?: number;
|
|
129
139
|
/**
|
|
130
|
-
* If set, the specified amount of rows will be mounted in the initial rendering regardless of the container size
|
|
140
|
+
* A prop for SSR. If set, the specified amount of rows will be mounted in the initial rendering regardless of the container size until hydrated.
|
|
131
141
|
*/
|
|
132
|
-
|
|
142
|
+
ssrRowCount?: number;
|
|
133
143
|
/**
|
|
134
|
-
* If set, the specified amount of cols will be mounted in the initial rendering regardless of the container size
|
|
144
|
+
* A prop for SSR. If set, the specified amount of cols will be mounted in the initial rendering regardless of the container size until hydrated.
|
|
135
145
|
*/
|
|
136
|
-
|
|
146
|
+
ssrColCount?: number;
|
|
137
147
|
/**
|
|
138
148
|
* Component or element type for cell element. This component will get {@link CustomCellComponentProps} as props.
|
|
139
149
|
* @defaultValue "div"
|
|
@@ -22,13 +22,10 @@ export interface VirtualizerHandle {
|
|
|
22
22
|
*/
|
|
23
23
|
readonly viewportSize: number;
|
|
24
24
|
/**
|
|
25
|
-
* Find
|
|
25
|
+
* Find nearest item index from offset.
|
|
26
|
+
* @param offset offset in pixels from the start of the scroll container
|
|
26
27
|
*/
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Find the end index of visible range of items.
|
|
30
|
-
*/
|
|
31
|
-
findEndIndex: () => number;
|
|
28
|
+
findItemIndex: (offset: number) => number;
|
|
32
29
|
/**
|
|
33
30
|
* Get item offset from start.
|
|
34
31
|
* @param index index of item
|
|
@@ -10,13 +10,28 @@ export interface WindowVirtualizerHandle {
|
|
|
10
10
|
*/
|
|
11
11
|
readonly cache: CacheSnapshot;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Get current scrollTop, or scrollLeft if horizontal: true.
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
readonly scrollOffset: number;
|
|
16
16
|
/**
|
|
17
|
-
*
|
|
17
|
+
* Get current offsetHeight, or offsetWidth if horizontal: true.
|
|
18
18
|
*/
|
|
19
|
-
|
|
19
|
+
readonly viewportSize: number;
|
|
20
|
+
/**
|
|
21
|
+
* Find nearest item index from offset.
|
|
22
|
+
* @param offset offset in pixels from the start of the scroll container
|
|
23
|
+
*/
|
|
24
|
+
findItemIndex: (offset: number) => number;
|
|
25
|
+
/**
|
|
26
|
+
* Get item offset from start.
|
|
27
|
+
* @param index index of item
|
|
28
|
+
*/
|
|
29
|
+
getItemOffset(index: number): number;
|
|
30
|
+
/**
|
|
31
|
+
* Get item size.
|
|
32
|
+
* @param index index of item
|
|
33
|
+
*/
|
|
34
|
+
getItemSize(index: number): number;
|
|
20
35
|
/**
|
|
21
36
|
* Scroll to the item specified by index.
|
|
22
37
|
* @param index index of item
|
|
@@ -24,13 +24,10 @@ export interface VirtualizerHandle {
|
|
|
24
24
|
*/
|
|
25
25
|
readonly viewportSize: number;
|
|
26
26
|
/**
|
|
27
|
-
* Find
|
|
27
|
+
* Find nearest item index from offset.
|
|
28
|
+
* @param offset offset in pixels from the start of the scroll container
|
|
28
29
|
*/
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Find the end index of visible range of items.
|
|
32
|
-
*/
|
|
33
|
-
findEndIndex: () => number;
|
|
30
|
+
findItemIndex: (offset: number) => number;
|
|
34
31
|
/**
|
|
35
32
|
* Get item offset from start.
|
|
36
33
|
* @param index index of item
|
|
@@ -12,13 +12,28 @@ export interface WindowVirtualizerHandle {
|
|
|
12
12
|
*/
|
|
13
13
|
readonly cache: CacheSnapshot;
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Get current scrollTop, or scrollLeft if horizontal: true.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
readonly scrollOffset: number;
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
19
|
+
* Get current offsetHeight, or offsetWidth if horizontal: true.
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
readonly viewportSize: number;
|
|
22
|
+
/**
|
|
23
|
+
* Find nearest item index from offset.
|
|
24
|
+
* @param offset offset in pixels from the start of the scroll container
|
|
25
|
+
*/
|
|
26
|
+
findItemIndex: (offset: number) => number;
|
|
27
|
+
/**
|
|
28
|
+
* Get item offset from start.
|
|
29
|
+
* @param index index of item
|
|
30
|
+
*/
|
|
31
|
+
getItemOffset(index: number): number;
|
|
32
|
+
/**
|
|
33
|
+
* Get item size.
|
|
34
|
+
* @param index index of item
|
|
35
|
+
*/
|
|
36
|
+
getItemSize(index: number): number;
|
|
22
37
|
/**
|
|
23
38
|
* Scroll to the item specified by index.
|
|
24
39
|
* @param index index of item
|
package/lib/solid/index.cjs
CHANGED
|
@@ -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)),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=i((r+n)/2);if(v(e,o)<=t){if(v(e,o+1)>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))},S="undefined"!=typeof window,$=()=>document.documentElement,x=e=>e.ownerDocument,b=e=>e.defaultView,w=/*#__PURE__*/f((()=>!!S&&"rtl"===getComputedStyle($()).direction)),y=/*#__PURE__*/f((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),z=/*#__PURE__*/f((()=>"scrollBehavior"in $().style)),_=(e,t=40,i=0,c,u=!1)=>{let a=!!i,f=1,S=0,$=0,x=0,b=0,w=0,z=0,_=0,I=0,k=r,T=[0,a?o(i-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+1)}))(e,t,c),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=()=>v(E,E.u),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:()=>{O.clear()},p:()=>f,m:()=>(e=>[e.o.slice(),e.i])(E),S:(e=200)=>{if(!S||a)return T;let t,r;if(z)[t,r]=T;else{let s=o(0,q()),i=s+S;u||(e=o(0,e),1!==_&&(s-=e),2!==_&&(i+=e)),[t,r]=T=J(o(0,s),o(0,i)),k&&(t=n(t,k[0]),r=o(r,k[1]))}return[o(t,0),n(r,E.u-1)]},$:()=>p(E,q()),_:()=>p(E,q()+S),I:P,k:H,T:L,M:()=>E.u,O:()=>x,R:()=>0!==_,q:()=>S,J:()=>$,B,H:()=>(z=b,b=0,[z,2===I]),L:(e,t)=>{const r=[e,t];return O.add(r),()=>{O.delete(r)}},P:(e,t)=>{let n,i,c=0;switch(e){case 1:{if(t===x&&0===I)break;const e=z;z=0;const r=t-x,n=s(r);e&&n<s(e)+1||0!==I||(_=r<0?2:1),a&&(a=!1),x=t,c=4;const o=R();o>=-S&&o<=B()&&(c+=1,i=n>S);break}case 2:c=8,0!==_&&(n=!0,c+=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?1: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 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)})(E,p(E,q()))),u=!1),c=3,i=!0;break}case 4:S!==t&&(S||(i=!0),S=t,c=3);break;case 5:t[1]?(W(m(E,t[0],!0)),I=2,c=1):(m(E,t[0]),c=1);break;case 6:$=t;break;case 7:I=1;break;case 8:k=J(t,t+S),c=1}c&&(f=1+(2147483647&f),n&&w&&(b+=w,w=0),O.forEach((([e,t])=>{c&e&&t(i)})))}}},I=setTimeout,k=(e,t)=>t&&w()?-e:e,T=(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=I((()=>{t=r,(()=>{if(u||a)return u=!1,void h();f=!1,e.P(2)})()}),150)};return o.W=n,o})(),g=()=>{l=c(),f&&(d=!0),i&&e.P(6,i()),e.P(1,o()),h()},v=t=>{if(u||!e.R()||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,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}),{j:()=>{t.removeEventListener("scroll",g),t.removeEventListener("wheel",v),t.removeEventListener("touchstart",p),t.removeEventListener("touchend",m),h.W()},C:()=>{const[t,r]=e.H();t&&(s(k(t,n),r,d),d=!1,r&&e.q()>e.B()&&e.P(1,o()))}}},M=(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.q()&&I(n,150),[t,e.L(2,(()=>{r(!0)}))]};if(s&&z())e.P(8,o()),u((async()=>{for(;;){let t=!0;for(let[r,n]=e.S();r<=n;r++)if(e.I(r)){t=!1;break}if(t)break;const[r,n]=i();try{if(!await r)return}finally{n()}}e.P(7),r(o(),s)}));else for(;;){const[t,n]=i();try{if(e.P(7),r(o()),!await t)return}finally{n()}}},()=>{n&&n()}]},E=e=>{let t;return{V(r){(t||(t=new(b(x(r)).ResizeObserver)(e))).observe(r)},X(e){t.unobserve(e)},j(){t&&t.disconnect()}}},O=r=>{let n;r=t.mergeProps({Y:"div"},r),t.createEffect((()=>{n&&t.onCleanup(r.D(n,r.U))}));const o=t.createMemo((()=>{const e=r.A,t={contain:"layout style",position:"absolute",[e?"height":"width"]:"100%",[e?"top":"left"]:"0px",[e?w()?"right":"left":"top"]:r.F+"px",visibility:r.G?"hidden":void 0};return e&&(t.display="inline-flex"),t}));return e.createComponent(e.Dynamic,{get component(){return r.Y},get index(){return r.U},ref(e){"function"==typeof n?n(e):n=e},get style(){return o()},get children(){return r.K}})},R=(e,t)=>e[0]===t[0]&&e[1]===t[1],q=n=>{let s;const{itemSize:i,horizontal:u=!1,cache:f}=n;n=t.mergeProps({as:"div"},n);const d=_(n.data.length,i,void 0,f,!i),h=((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.P(4,l[o]);else{const e=s.get(c);e!=r&&i.push([e,l[o]])}i.length&&e.P(3,i)}));return{N(e){i.V(n=e)},Z:(e,t)=>(s.set(e,t),i.V(e),()=>{s.delete(e),i.X(e)}),v:i.j}})(d,u),g=((e,t)=>{let r,n,o=a();const s=t?"scrollLeft":"scrollTop",i=t?"overflowX":"overflowY",[l,u]=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.O()+t,r&&u()})),o[1](!0)},v(){n&&n.j(),o[1](!1),o=a()},te(e){l((()=>e))},re(t){t+=e.O(),l((()=>t))},ne(t,{align:r,smooth:n,offset:o=0}={}){if(t=c(t,0,e.M()-1),"nearest"===r){const n=e.k(t),o=e.O();if(n<o)r="start";else{if(!(n+e.T(t)>o+e.q()))return;r="end"}}l((()=>o+e.J()+e.k(t)+("end"===r?e.T(t)-e.q():"center"===r?(e.T(t)-e.q())/2:0)),n)},oe:()=>{n&&n.C()}}})(d,u),[v,p]=t.createSignal(d.p());d.L(1,(()=>{p(d.p())})),d.L(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n,d.O())})),d.L(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)}));const m=t.createMemo((e=>{v();const t=d.S(n.bufferSize);return e&&R(e,t)?e:t})),S=t.createMemo((()=>v()&&d.R())),$=t.createMemo((()=>v()&&d.B()));t.onMount((()=>{n.ref&&n.ref({get cache(){return d.m()},get scrollOffset(){return d.O()},get scrollSize(){return(e=>o(e.B(),e.q()))(d)},get viewportSize(){return d.q()},findStartIndex:d.$,findEndIndex:d._,getItemOffset:d.k,getItemSize:d.T,scrollToIndex:g.ne,scrollTo:g.te,scrollBy:g.re});const e=n.scrollRef||s.parentElement;h.N(e),g.ee(e),t.onCleanup((()=>{n.ref&&n.ref(),d.v(),h.v(),g.v()}))})),t.createComputed(t.on((()=>n.startMargin||0),(e=>{e!==d.J()&&d.P(6,e)}))),t.createEffect(t.on(v,(()=>{g.oe()})));const x=t.createMemo((()=>{const e=n.data.length;t.untrack((()=>{e!==d.M()&&d.P(5,[e,n.shift])}));const r=[],o=[];if(n.keepMounted){const e=new Set(n.keepMounted);for(let[t,r]=m();t<=r;t++)e.add(t);l([...e]).forEach((e=>{r.push(n.data[e]),o.push(e)}))}else for(let[e,t]=m();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 style","overflow-anchor":"none",flex:"none",position:"relative",width:u?$()+"px":"100%",height:u?"100%":$()+"px","pointer-events":S()?"none":void 0}},get children(){return e.createComponent(t.For,{get each(){return x().se},children:(r,o)=>((r,o)=>{const s=t.createMemo((()=>(v(),d.k(o())))),i=t.createMemo((()=>(v(),d.I(o())))),c=t.createMemo((()=>t.untrack((()=>n.children(r,o)))));return e.createComponent(O,{get Y(){return n.item},get U(){return o()},get D(){return h.Z},get F(){return s()},get G(){return i()},get K(){return c()},A:u})})(r,t.createMemo((()=>x().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","bufferSize","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 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}})),s;var s},exports.Virtualizer=q,exports.WindowVirtualizer=n=>{let o;const{ref:s,data:i,children:l,itemSize:f,shift:d,horizontal:h=!1,cache:g,onScrollEnd:v}=n,p=_(n.data.length,f,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.P(3,o)}));let c;return{N(t){const r=b(x(t)),n=()=>{e.P(4,r[o])};r.addEventListener("resize",n),u(n),c=()=>{r.removeEventListener("resize",n)}},Z:(e,t)=>(s.set(e,t),i.V(e),()=>{s.delete(e),i.X(e)}),v(){c&&c(),i.j()}}})(p,h),S=((e,t)=>{let r,n,o=a();const s=t?"left":"top",[i]=M(e,(()=>o[0]),((e,n)=>{e=k(e,t);const o=b(x(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&&w()?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=x(i),a=b(u);n=T(e,a,t,(()=>k(a[c],t)),((t,r)=>{r?a.scroll({[s]:e.O()+t}):a.scrollBy({[s]:t})}),(()=>l(i,u.body,a,t))),o[1](!0)},v(){n&&n.j(),r=void 0,o[1](!1),o=a()},oe:()=>{n&&n.C()},ne(n,{align:o,smooth:s,offset:u=0}={}){if(!r)return;if(n=c(n,0,e.M()-1),"nearest"===o){const t=e.k(n),r=e.O();if(t<r)o="start";else{if(!(t+e.T(n)>r+e.q()))return;o="end"}}const a=x(r),f=b(a),d=a.documentElement,h=()=>e.q()-(t?d.clientWidth:d.clientHeight);i((()=>u+l(r,a.body,f,t)+e.k(n)+("end"===o?e.T(n)-(e.q()-h()):"center"===o?(e.T(n)-(e.q()-h()))/2:0)),s)}}})(p,h),[$,y]=t.createSignal(p.p());p.L(1,(()=>{y(p.p())})),p.L(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n)})),p.L(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)}));const z=t.createMemo((e=>{$();const t=p.S(n.bufferSize);return e&&R(e,t)?e:t})),I=t.createMemo((()=>$()&&p.R())),q=t.createMemo((()=>$()&&p.B()));t.onMount((()=>{n.ref&&n.ref({get cache(){return p.m()},findStartIndex:p.$,findEndIndex:p._,scrollToIndex:S.ne}),m.N(o),S.ee(o),t.onCleanup((()=>{n.ref&&n.ref(),p.v(),m.v(),S.v()}))})),t.createEffect(t.on($,(()=>{S.oe()})));const J=t.createMemo((()=>{const e=n.data.length;t.untrack((()=>{e!==p.M()&&p.P(5,[e,n.shift])}));const r=[];for(let[e,t]=z();e<=t;e++)r.push(n.data[e]);return r}));return H=B(),"function"==typeof(L=o)?e.use(L,H):o=H,e.setStyleProperty(H,"contain","size style"),e.setStyleProperty(H,"flex","none"),e.setStyleProperty(H,"position","relative"),e.insert(H,e.createComponent(t.For,{get each(){return J()},children:(r,o)=>{const s=t.createMemo((()=>z()[0]+o())),i=t.createMemo((()=>($(),p.k(s())))),c=t.createMemo((()=>($(),p.I(s())))),l=t.createMemo((()=>t.untrack((()=>n.children(r,s)))));return e.createComponent(O,{get U(){return s()},get D(){return m.Z},get F(){return i()},get G(){return c()},get K(){return l()},A:h})}})),e.effect((t=>{var r=h?q()+"px":"100%",n=h?"100%":q()+"px",o=I()?"none":void 0;return r!==t.e&&e.setStyleProperty(H,"width",t.e=r),n!==t.t&&e.setStyleProperty(H,"height",t.t=n),o!==t.a&&e.setStyleProperty(H,"pointer-events",t.a=o),t}),{e:void 0,t:void 0,a:void 0}),H;var H,L};
|
|
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)},f=()=>{let e;return[new Promise((t=>{e=t})),e]},a=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)=>{let o=r;for(;r<=n;){const s=i((r+n)/2);v(e,s)<=t?(o=s,r=s+1):n=s-1}return c(o,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,$=()=>document.documentElement,b=e=>e.ownerDocument,w=e=>e.defaultView,x=/*#__PURE__*/a((()=>!!S&&"rtl"===getComputedStyle($()).direction)),z=/*#__PURE__*/a((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),y=/*#__PURE__*/a((()=>"scrollBehavior"in $().style)),_=(e,t=40,i=0,c,u=!1)=>{let f=!!i,a=1,S=0,$=0,b=0,w=0,x=0,y=0,_=0,I=0,k=r,T=[0,f?o(i-1,0):-1],M=0;const O=((e,t,r)=>({i:t,o:r?d(r.slice(0,n(e,r.length)),o(0,e-r.length)):d([],e),u:e,l:-1,h:d([],e+1)}))(e,c?c[1]:t,c&&c[0]),R=new Set,q=()=>b-$,J=()=>q()+x+w,B=(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)]}})(O,e,t,T[0]),E=()=>v(O,O.u),H=e=>v(O,e)-x,L=e=>h(O,e),P=(e,t=-1)=>O.o[e]===t,W=e=>{e&&(z()&&0!==_||k&&1===I?x+=e:w+=e)};return{v:()=>{R.clear()},p:()=>a,m:()=>(e=>[e.o.slice(),e.i])(O),S:(e=200)=>{if(!S||f)return T;let t,r;if(y)[t,r]=T;else{let s=o(0,J()),i=s+S;u||(e=o(0,e),1!==_&&(s-=e),2!==_&&(i+=e)),[t,r]=T=B(o(0,s),o(0,i)),k&&(t=n(t,k[0]),r=o(r,k[1]))}return[o(t,0),n(r,O.u-1)]},$:e=>p(O,e-$),_:P,I:H,k:L,T:()=>O.u,M:()=>b,O:()=>0!==_,R:()=>S,q:()=>$,J:E,B:()=>(y=w,w=0,[y,2===I]),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:{if(t===b&&0===I)break;const e=y;y=0;const r=t-b,n=s(r);e&&n<s(e)+1||0!==I||(_=r<0?2:1),f&&(f=!1),b=t,c=4;const o=q();o>=-S&&o<=E()&&(c+=1,i=n>S);break}case 2:c=8,0!==_&&(n=!0,c+=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?1:0))<q()))&&(e+=r-L(t)),e)),0));for(const[t,r]of e){const e=L(t),n=g(O,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 s=l(n),i=s.length,c=i/2|0,u=i%2==0?(s[c-1]+s[c])/2:s[c],f=e.i;return((e.i=u)-f)*o(t-r,0)})(O,p(O,J()))),u=!1),c=3,i=!0;break}case 4:S!==t&&(S||(i=!0),S=t,c=3);break;case 5:t[1]?(W(m(O,t[0],!0)),I=2,c=1):(m(O,t[0]),c=1);break;case 6:$=t;break;case 7:I=1;break;case 8:k=B(t,t+S),c=1}c&&(a=1+(2147483647&a),n&&x&&(w+=x,x=0),R.forEach((([e,t])=>{c&e&&t(i)})))}}},I=setTimeout,k=(e,t)=>t&&x()?-e:e,T=(e,t,n,o,s,i)=>{const c=Date.now;let l=0,u=!1,f=!1,a=!1,d=!1;const h=(()=>{let t;const n=()=>{t!=r&&clearTimeout(t)},o=()=>{n(),t=I((()=>{t=r,(()=>{if(u||f)return u=!1,void h();a=!1,e.L(2)})()}),150)};return o.P=n,o})(),g=()=>{l=c(),a&&(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=()=>{f=!0,a=d=!1},m=()=>{f=!1,z()&&(a=!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]=f();return n=()=>{r(!1)},e.R()&&I(n,150),[t,e.H(2,(()=>{r(!0)}))]};if(s&&y())e.L(8,o()),u((async()=>{for(;;){let t=!0;for(let[r,n]=e.S();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(w(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?x()?"right":"left":"top"]:r.A+"px",visibility:r.F?"hidden":void 0};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,cache:a}=n;n=t.mergeProps({as:"div"},n);const d=_(n.data.length,i,void 0,a,!i),h=((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)}),v:i.W}})(d,u),g=((e,t)=>{let r,n,o=f();const s=t?"scrollLeft":"scrollTop",i=t?"overflowX":"overflowY",[l,u]=M(e,(()=>o[0]),((e,n)=>{e=k(e,t),n?r.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):r[s]=e}));return{Z(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&&u()})),o[1](!0)},v(){n&&n.W(),o[1](!1),o=f()},ee(e){l((()=>e))},te(t){t+=e.M(),l((()=>t))},re(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)},ne:()=>{n&&n.j()}}})(d,u),[v,p]=t.createSignal(d.p());d.H(1,(()=>{p(d.p())})),d.H(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n,d.M())})),d.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)}));const m=t.createMemo((e=>{v();const t=d.S(n.bufferSize);return e&&q(e,t)?e:t})),S=t.createMemo((()=>v()&&d.O())),$=t.createMemo((()=>v()&&d.J()));t.onMount((()=>{n.ref&&n.ref({get cache(){return d.m()},get scrollOffset(){return d.M()},get scrollSize(){return(e=>o(e.J(),e.R()))(d)},get viewportSize(){return d.R()},findItemIndex:d.$,getItemOffset:d.I,getItemSize:d.k,scrollToIndex:g.re,scrollTo:g.ee,scrollBy:g.te});const e=n.scrollRef||s.parentElement;h.K(e),g.Z(e),t.onCleanup((()=>{n.ref&&n.ref(),d.v(),h.v(),g.v()}))})),t.createComputed(t.on((()=>n.startMargin||0),(e=>{e!==d.q()&&d.L(6,e)}))),t.createEffect(t.on(v,(()=>{g.ne()})));const b=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]=m();t<=r;t++)e.add(t);l([...e]).forEach((e=>{r.push(n.data[e]),o.push(e)}))}else for(let[e,t]=m();e<=t;e++)r.push(n.data[e]),o.push(e);return{oe:r,se: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 style","overflow-anchor":"none",flex:"none",position:"relative",width:u?$()+"px":"100%",height:u?"100%":$()+"px","pointer-events":S()?"none":void 0}},get children(){return e.createComponent(t.For,{get each(){return b().oe},children:(r,o)=>((r,o)=>{const s=t.createMemo((()=>(v(),d.I(o())))),i=t.createMemo((()=>(v(),d._(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 h.N},get A(){return s()},get F(){return i()},get G(){return c()},U:u})})(r,t.createMemo((()=>b().se[o()])))})}})};var B=/*#__PURE__*/e.template("<div>"),E=/*#__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 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 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}})),s;var s},exports.Virtualizer=J,exports.WindowVirtualizer=n=>{let o;const{ref:s,data:i,children:l,itemSize:a,shift:d,horizontal:h=!1,cache:g,onScrollEnd:v}=n,p=_(n.data.length,a,void 0,g,!a),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=w(b(t)),n=()=>{e.L(4,r[o])};r.addEventListener("resize",n),u(n),c=()=>{r.removeEventListener("resize",n)}},N:(e,t)=>(s.set(e,t),i.C(e),()=>{s.delete(e),i.V(e)}),v(){c&&c(),i.W()}}})(p,h),S=((e,t)=>{let r,n,o=f();const s=t?"left":"top",[i]=M(e,(()=>o[0]),((e,n)=>{e=k(e,t);const o=w(b(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&&x()?r.innerWidth-e[s]-e.offsetWidth:e[s]),c=e.offsetParent;return e!==t&&c?l(c,t,r,n,i):i};return{Z(i){r=i;const c=t?"scrollX":"scrollY",u=b(i),f=w(u);n=T(e,f,t,(()=>k(f[c],t)),((t,r)=>{r?f.scroll({[s]:e.M()+t}):f.scrollBy({[s]:t})}),(()=>l(i,u.body,f,t))),o[1](!0)},v(){n&&n.W(),r=void 0,o[1](!1),o=f()},ne:()=>{n&&n.j()},re(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 f=b(r),a=w(f),d=f.documentElement,h=()=>e.R()-(t?d.clientWidth:d.clientHeight);i((()=>u+l(r,f.body,a,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),[$,z]=t.createSignal(p.p());p.H(1,(()=>{z(p.p())})),p.H(4,(()=>{var e;null===(e=n.onScroll)||void 0===e||e.call(n)})),p.H(8,(()=>{var e;null===(e=n.onScrollEnd)||void 0===e||e.call(n)}));const y=t.createMemo((e=>{$();const t=p.S(n.bufferSize);return e&&q(e,t)?e:t})),I=t.createMemo((()=>$()&&p.O())),J=t.createMemo((()=>$()&&p.J()));t.onMount((()=>{n.ref&&n.ref({get cache(){return p.m()},get scrollOffset(){return p.M()},get viewportSize(){return p.R()},findItemIndex:p.$,getItemOffset:p.I,getItemSize:p.k,scrollToIndex:S.re}),m.K(o),S.Z(o),t.onCleanup((()=>{n.ref&&n.ref(),p.v(),m.v(),S.v()}))})),t.createEffect(t.on($,(()=>{S.ne()})));const B=t.createMemo((()=>{const e=n.data.length;t.untrack((()=>{e!==p.T()&&p.L(5,[e,n.shift])}));const r=[];for(let[e,t]=y();e<=t;e++)r.push(n.data[e]);return r}));return H=E(),"function"==typeof(L=o)?e.use(L,H):o=H,e.setStyleProperty(H,"contain","size style"),e.setStyleProperty(H,"flex","none"),e.setStyleProperty(H,"position","relative"),e.insert(H,e.createComponent(t.For,{get each(){return B()},children:(r,o)=>{const s=t.createMemo((()=>y()[0]+o())),i=t.createMemo((()=>($(),p.I(s())))),c=t.createMemo((()=>($(),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?J()+"px":"100%",n=h?"100%":J()+"px",o=I()?"none":void 0;return r!==t.e&&e.setStyleProperty(H,"width",t.e=r),n!==t.t&&e.setStyleProperty(H,"height",t.t=n),o!==t.a&&e.setStyleProperty(H,"pointer-events",t.a=o),t}),{e:void 0,t:void 0,a:void 0}),H;var H,L};
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|