virtua 0.24.0 → 0.26.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/README.md +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/lib/react/VGrid.d.ts +3 -41
- package/lib/react/VList.d.ts +5 -1
- package/lib/react/Virtualizer.d.ts +0 -4
- package/lib/solid/index.js +1 -1
- package/lib/solid/index.js.map +1 -1
- package/lib/solid/index.mjs +1 -1
- package/lib/solid/index.mjs.map +1 -1
- package/lib/vue/index.js +1 -1
- package/lib/vue/index.js.map +1 -1
- package/lib/vue/index.mjs +1 -1
- package/lib/vue/index.mjs.map +1 -1
- package/lib/vue/utils.d.ts +1 -0
- package/package.json +2 -1
package/lib/react/VGrid.d.ts
CHANGED
|
@@ -1,32 +1,5 @@
|
|
|
1
1
|
import { CSSProperties, ReactNode } from "react";
|
|
2
2
|
import { ViewportComponentAttributes } from "./types";
|
|
3
|
-
/**
|
|
4
|
-
* Props of customized scrollable component.
|
|
5
|
-
*/
|
|
6
|
-
interface CustomViewportComponentProps {
|
|
7
|
-
/**
|
|
8
|
-
* Renderable item elements.
|
|
9
|
-
*/
|
|
10
|
-
children: ReactNode;
|
|
11
|
-
/**
|
|
12
|
-
* Attributes that should be passed to the scrollable element.
|
|
13
|
-
*/
|
|
14
|
-
attrs: ViewportComponentAttributes;
|
|
15
|
-
/**
|
|
16
|
-
* Total height of items. It's undefined if component is not vertically scrollable.
|
|
17
|
-
*/
|
|
18
|
-
height: number | undefined;
|
|
19
|
-
/**
|
|
20
|
-
* Total width of items. It's undefined if component is not horizontally scrollable.
|
|
21
|
-
*/
|
|
22
|
-
width: number | undefined;
|
|
23
|
-
/**
|
|
24
|
-
* Currently component is scrolling or not.
|
|
25
|
-
*/
|
|
26
|
-
scrolling: boolean;
|
|
27
|
-
}
|
|
28
|
-
declare const DefaultViewport: import("react").ForwardRefExoticComponent<CustomViewportComponentProps & import("react").RefAttributes<any>>;
|
|
29
|
-
export type CustomViewportComponent = typeof DefaultViewport;
|
|
30
3
|
/**
|
|
31
4
|
* Props of customized cell component for {@link VGrid}.
|
|
32
5
|
*/
|
|
@@ -119,23 +92,12 @@ export interface VGridProps extends ViewportComponentAttributes {
|
|
|
119
92
|
*/
|
|
120
93
|
initialColCount?: number;
|
|
121
94
|
/**
|
|
122
|
-
*
|
|
95
|
+
* Component or element type for cell element. This component will get {@link CustomCellComponentProps} as props.
|
|
96
|
+
* @defaultValue "div"
|
|
123
97
|
*/
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Component for scrollable element. This component will get {@link CustomViewportComponentProps} as props.
|
|
127
|
-
* @defaultValue {@link DefaultViewport}
|
|
128
|
-
*/
|
|
129
|
-
Root?: CustomViewportComponent;
|
|
130
|
-
/**
|
|
131
|
-
* Component or element type for cell element. This component will get {@link CustomCellComponentProps} as props.
|
|
132
|
-
* @defaultValue "div"
|
|
133
|
-
*/
|
|
134
|
-
Cell?: keyof JSX.IntrinsicElements | CustomCellComponent;
|
|
135
|
-
};
|
|
98
|
+
item?: keyof JSX.IntrinsicElements | CustomCellComponent;
|
|
136
99
|
}
|
|
137
100
|
/**
|
|
138
101
|
* Virtualized grid component. See {@link VGridProps} and {@link VGridHandle}.
|
|
139
102
|
*/
|
|
140
103
|
export declare const VGrid: import("react").ForwardRefExoticComponent<VGridProps & import("react").RefAttributes<VGridHandle>>;
|
|
141
|
-
export {};
|
package/lib/react/VList.d.ts
CHANGED
|
@@ -9,7 +9,11 @@ export interface VListHandle extends VirtualizerHandle {
|
|
|
9
9
|
/**
|
|
10
10
|
* Props of {@link VList}.
|
|
11
11
|
*/
|
|
12
|
-
export interface VListProps extends Pick<VirtualizerProps, "children" | "count" | "overscan" | "itemSize" | "shift" | "horizontal" | "
|
|
12
|
+
export interface VListProps extends Pick<VirtualizerProps, "children" | "count" | "overscan" | "itemSize" | "shift" | "horizontal" | "cache" | "ssrCount" | "item" | "onScroll" | "onScrollEnd" | "onRangeChange">, ViewportComponentAttributes {
|
|
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.
|
|
15
|
+
*/
|
|
16
|
+
reverse?: boolean;
|
|
13
17
|
}
|
|
14
18
|
/**
|
|
15
19
|
* Virtualized list component. See {@link VListProps} and {@link VListHandle}.
|
|
@@ -72,10 +72,6 @@ export interface VirtualizerProps {
|
|
|
72
72
|
* If true, rendered as a horizontally scrollable list. Otherwise rendered as a vertically scrollable list.
|
|
73
73
|
*/
|
|
74
74
|
horizontal?: boolean;
|
|
75
|
-
/**
|
|
76
|
-
* 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.
|
|
77
|
-
*/
|
|
78
|
-
reverse?: boolean;
|
|
79
75
|
/**
|
|
80
76
|
* You can restore cache by passing a {@link CacheSnapshot} on mount. This is useful when you want to restore scroll position after navigation. The snapshot can be obtained from {@link VirtualizerHandle.cache}.
|
|
81
77
|
*/
|
package/lib/solid/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=require("solid-js/web"),t=require("solid-js");const r=Math.min,n=Math.max,o=Math.abs,s=setTimeout,i=(e,t,o)=>r(o,n(t,e)),l=e=>null!=e,c="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},u=e=>{let t,r;return(...n)=>(t||(t=!0,r=e(...n)),r)},a=-1,f=(e,t,r)=>{const n=r?"unshift":"push";for(let r=0;r<t;r++)e[n](a);return e},d=(e,t)=>{const r=e.o[t];return r===a?e.i:r},h=(e,t)=>{if(!e.l)return 0;if(e.u>=t)return e.h[t];e.u<0&&(e.h[0]=0,e.u=0);let r=e.u,n=e.h[r];for(;r<t;)n+=d(e,r),e.h[++r]=n;return e.u=t,n},v=(e,t,r)=>{let n=h(e,r);for(;r>=0&&r<e.l;)if(n<=t){const o=d(e,r);if(n+o>t)break;n+=o,r++}else n-=d(e,--r);return i(r,0,e.l-1)},g=(e,t,n,o)=>{const s=v(e,t,r(n,e.l-1));return[s,v(e,t+o,s)]},_=(e,t,n)=>{const o=t-e.l,s=o>0;let i;return s?(i=e.i*o,f(e.o,o,n),f(e.h,o)):(i=(n?e.o.splice(0,-o):e.o.splice(o)).reduce(((t,r)=>t+(r===a?e.i:r)),0),e.h.splice(o)),e.u=n?-1:r(t-1,e.u),e.l=t,[i,s]},p="undefined"!=typeof window,S=()=>document.documentElement,w=e=>e.ownerDocument,m=e=>e.defaultView,b=/*#__PURE__*/u((()=>!!p&&"rtl"===getComputedStyle(S()).direction)),z=/*#__PURE__*/u((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),x=/*#__PURE__*/u((()=>"scrollBehavior"in S().style)),y=(e,t,r)=>n(e-(1===r?1:n(1,t)),0),k=(e,t,o,s)=>r(e+(2===o?1:n(1,t)),s-1),I=(e,t,r)=>t.reduce(((t,[n,o])=>{const s=o-d(e,n);return(!r||s>0)&&(t+=s),t}),0),R=(e,t=40,s=0,l,c,u=0,v=0)=>{let p=!!s,S=[],w=0,m=0,b=0,x=0,y=0,k=!1,R=0,M=0,T=0,C=p?[0,n(s-1,0)]:null,J=[0,0];const O=l||((e,t)=>({i:t,l:e,u:-1,o:f([],e),h:f([],e)}))(e,t),E=new Set,q=()=>(e=>e.l?h(e,e.l-1)+d(e,e.l-1):0)(O),B=()=>q()+u+v,H=()=>n(0,B()-w),L=e=>{z()&&0!==M?y+=e:(x+=e,b++)};return{v:()=>S,_:()=>JSON.parse(JSON.stringify(O)),p:()=>C?[r(J[0],C[0]),n(J[1],C[1])]:R?J:J=g(O,m-u+y+x,J[0],w),S:e=>O.o[e]===a,m:()=>!!C&&O.o.slice(n(0,C[0]-1),r(O.l-1,C[1]+1)+1).includes(a),k:e=>h(O,e)-y,I:e=>d(O,e),R:()=>O.l,M:()=>m,T:()=>M,C:()=>w,J:()=>u,O:()=>v,q,B:()=>b,H(){const e=x,t=k;return x=0,k=!1,w>B()?[0,!1]:[R=e,t]},L(e,t){const r=[e,t];return E.add(r),()=>{E.delete(r)}},P(e,t){let n,s,l=0;switch(e){case 1:{const e=t.filter((([e,t])=>O.o[e]!==t));if(!e.length)break;let n=0;if(0===m);else if(m>H()-1.5)n=I(O,e,!0);else if(2===T)n=I(O,e);else{const[t]=J;n=I(O,e.filter((([e])=>e<t)))}n&&L(n);let o=!1;e.forEach((([e,t])=>{((e,t,n)=>{const o=e.o[t]===a;return e.o[t]=n,e.u=r(t,e.u),o})(O,e,t)&&(o=!0)})),c&&o&&!m&&(e=>{const t=e.o.filter((e=>e!==a)),r=t[0];e.i=t.every((e=>e===r))?r:(e=>{const t=[...e].sort(((e,t)=>e-t)),r=e.length/2|0;return t.length%2==0?(t[r-1]+t[r])/2:t[r]})(t)})(O),l=2,s=!0;break}case 2:w!==t&&(w=t,l=2);break;case 3:if(t[1]){const e=H()-m,[n,o]=_(O,t[0],!0);L(o?n:-r(n,e)),o&&(T=2,k=!0),l=1}else _(O,t[0]);break;case 4:{const e=i(t,0,H()),r=R;if(R=0,e===m)break;const n=e-m,c=o(n);r&&c<o(r)+1||0!==T||(M=n<0?2:1),p&&(C=null,p=!1),s=c>w,m=e,l=5;break}case 5:l=8,0!==M&&(n=!0,l+=1),M=0,T=0,C=null;break;case 6:T=1;break;case 7:C=g(O,t,J[0],w),l=1}l&&(S=[],n&&y&&(x+=y,y=0,b++),E.forEach((([e,t])=>{l&e&&t(s)})))}}},M=e=>{let t;return{W(r){(t||(t=new(m(w(r)).ResizeObserver)(e))).observe(r)},j(e){t.unobserve(e)},D(){t&&t.disconnect()}}},T=(e,t)=>t&&b()?-e:e,C=(e,t,r,n,o)=>{const i=Date.now;let c=0,u=!1,a=!1,f=!1,d=!1;const h=(()=>{let t;const r=()=>{l(t)&&clearTimeout(t)},n=()=>{r(),t=s((()=>{t=null,(()=>{if(u||a)return u=!1,void h();f=!1,e.P(5)})()}),150)};return n.N=r,n})(),v=()=>{c=i(),f&&(d=!0),e.P(4,n()),h()},g=t=>{if(u||0===e.T()||t.ctrlKey)return;const n=i()-c;150>n&&50<n&&(r?t.deltaX:t.deltaY)&&(u=!0)},_=()=>{a=!0,f=d=!1},p=()=>{a=!1,z()&&(f=!0)};return t.addEventListener("scroll",v),t.addEventListener("wheel",g,{passive:!0}),t.addEventListener("touchstart",_,{passive:!0}),t.addEventListener("touchend",p,{passive:!0}),{D:()=>{t.removeEventListener("scroll",v),t.removeEventListener("wheel",g),t.removeEventListener("touchstart",_),t.removeEventListener("touchend",p),h.N()},U:()=>{const[t,r]=e.H();if(t)return o(t,d),d=!1,r}}};var J=/*#__PURE__*/e.template("<div>");const O=r=>{let n;t.createEffect((()=>{n&&t.onCleanup(r.V(n,r.X))}));const o=t.createMemo((()=>{const e=r.Y,t={margin:0,padding:0,position:"absolute",[e?"height":"width"]:"100%",[e?"top":"left"]:"0px",[e?b()?"right":"left":"top"]:r.F+"px",visibility:r.A?"hidden":"visible"};return e&&(t.display="flex"),t}));return s=J(),"function"==typeof(i=n)?e.use(i,s):n=s,e.insert(s,(()=>r.G)),e.effect((t=>e.style(s,o(),t))),s;var s,i},E=e=>{let r=new Map;return t.onCleanup((()=>{for(const e of r.values())e.D()})),t.createMemo((()=>{const n=e.K,[o,s]=e.Z,i=new Map,l=[];return t.untrack((()=>{for(let c=o;c<=s;c++){const o=n[c],s=r.get(c);l.push(s?s.$:t.createRoot((r=>{const n=t.createSignal(o),s=e.ee(n[0](),c);return i.set(c,{te:n,$:s,D:r}),s}))),s&&(o!==s.te&&s.te[1](o),i.set(c,s))}for(const[e,t]of r.entries())i.has(e)||t.D();return r=i,l}))}))},q=(e,t)=>e[0]===t[0]&&e[1]===t[1];var B=/*#__PURE__*/e.template("<div>");const H=r=>{let o;const{ref:u,data:a,children:f,overscan:d,itemSize:h,shift:v,horizontal:g=!1,onScroll:_,onScrollEnd:p,onRangeChange:S}=r,w=R(r.data.length,null!=h?h:40,void 0,void 0,!h),m=((e,t)=>{let r;const n=t?"width":"height",o=new WeakMap,s=M((t=>{const s=[];for(const{target:i,contentRect:c}of t)if(i.offsetParent)if(i===r)e.P(2,c[n]);else{const e=o.get(i);l(e)&&s.push([e,c[n]])}s.length&&e.P(1,s)}));return{re(e){s.W(r=e)},ne:(e,t)=>(o.set(e,t),s.W(e),()=>{o.delete(e),s.j(e)}),D:s.D}})(w,g),b=((e,t)=>{let r,n,o;const l=t?"scrollLeft":"scrollTop",u=t?"overflowX":"overflowY",a=async(n,i)=>{if(!r)return void c((()=>a(n,i)));o&&o();const u=()=>{let t;return[new Promise(((e,r)=>{t=e,s(o=r,150)})),e.L(2,(()=>{t&&t()}))]};if(i&&x()){for(;e.P(7,n()),e.m();){const[e,t]=u();try{await e}catch(e){return}finally{t()}}r.scrollTo({[t?"left":"top"]:T(n(),t),behavior:"smooth"})}else for(;;){const[o,s]=u();try{r[l]=T(n(),t),e.P(6),await o}catch(e){return}finally{s()}}};return{W(o){r=o,n=C(e,o,t,(()=>T(o[l],t)),((e,r)=>{if(r){const e=o.style,t=e[u];e[u]="hidden",s((()=>{e[u]=t}))}o[l]+=T(e,t)}))},D(){n&&n.D()},oe(e){a((()=>e))},se(t){t+=e.M(),a((()=>t))},ie(t,{align:r,smooth:n}={}){if(t=i(t,0,e.R()-1),"nearest"===r){const n=e.k(t),o=e.M();if(n<o)r="start";else{if(!(n+e.I(t)>o+e.C()))return;r="end"}}a((()=>e.J()+("end"===r?e.k(t)+e.I(t)-e.C():"center"===r?e.k(t)+(e.I(t)-e.C())/2:e.k(t))),n)},U:()=>{n&&n.U()&&o&&o()}}})(w,g),[z,I]=t.createSignal(w.v()),J=w.L(3,(()=>{I(w.v())})),H=w.L(4,(()=>{var e;null===(e=r.onScroll)||void 0===e||e.call(r,w.M())})),L=w.L(8,(()=>{var e;null===(e=r.onScrollEnd)||void 0===e||e.call(r)})),P=t.createMemo((e=>{z();const t=w.p();return e&&q(e,t)?e:t})),W=t.createMemo((()=>z()&&w.T())),j=t.createMemo((()=>z()&&w.q()));t.createMemo((()=>z()&&(e=>n(e.q(),e.C()-e.J()-e.O()))(w)));const D=t.createMemo((()=>z()&&w.B())),N=t.createMemo((e=>{var t;const n=null!==(t=r.overscan)&&void 0!==t?t:4,[o,s]=P(),i=[y(o,n,W()),k(s,n,W(),r.data.length)];return e&&q(e,i)?e:i}));return t.onMount((()=>{r.ref&&r.ref({get scrollOffset(){return w.M()},get scrollSize(){return(e=>n(e.q(),e.C()))(w)},get viewportSize(){return w.C()},scrollToIndex:b.ie,scrollTo:b.oe,scrollBy:b.se});const e=o.parentElement;m.re(e),b.W(e),t.onCleanup((()=>{r.ref&&r.ref(),J(),H(),L(),m.D(),b.D()}))})),t.createComputed(t.on((()=>r.data.length),((e,t)=>{l(t)&&e!==t&&w.P(3,[e,r.shift])}))),t.createEffect(t.on(D,(()=>{b.U()}))),t.createEffect((()=>{const e=P();r.onRangeChange&&r.onRangeChange(e[0],e[1])})),U=B(),"function"==typeof(V=o)?e.use(V,U):o=U,e.style(U,{"overflow-anchor":"none"}),U.style.setProperty("overflow-anchor","none"),U.style.setProperty("flex","none"),U.style.setProperty("position","relative"),U.style.setProperty("visibility","hidden"),e.insert(U,e.createComponent(E,{get K(){return r.data},get Z(){return N()},ee:(n,o)=>{const s=t.createMemo((()=>(z(),w.k(o)))),i=t.createMemo((()=>(z(),w.S(o))));return e.createComponent(O,{X:o,get V(){return m.ne},get F(){return s()},get A(){return i()},get G(){return r.children(n,o)},Y:g})}})),e.effect((e=>{var t=g?j()+"px":"100%",r=g?"100%":j()+"px",n=0!==W()?"none":"auto";return t!==e.e&&(null!=(e.e=t)?U.style.setProperty("width",t):U.style.removeProperty("width")),r!==e.t&&(null!=(e.t=r)?U.style.setProperty("height",r):U.style.removeProperty("height")),n!==e.a&&(null!=(e.a=n)?U.style.setProperty("pointer-events",n):U.style.removeProperty("pointer-events")),e}),{e:void 0,t:void 0,a:void 0}),U;var U,V};var L=/*#__PURE__*/e.template("<div>"),P=/*#__PURE__*/e.template("<div>");exports.VList=t=>{const{ref:r,data:n,children:o,overscan:s,itemSize:i,shift:l,horizontal:c=!1,onScroll:u,onScrollEnd:a,onRangeChange:f,style:d,...h}=t;return v=L(),e.spread(v,e.mergeProps(h,{get style(){return{display:c?"inline-block":"block",[c?"overflow-x":"overflow-y"]:"auto",contain:"strict",width:"100%",height:"100%",...t.style}}}),!1,!0),e.insert(v,e.createComponent(H,{ref(e){var r=t.ref;"function"==typeof r?r(e):t.ref=e},get data(){return t.data},get overscan(){return t.overscan},get itemSize(){return t.itemSize},get shift(){return t.shift},horizontal:c,get onScroll(){return t.onScroll},get onScrollEnd(){return t.onScrollEnd},get onRangeChange(){return t.onRangeChange},get children(){return t.children}})),v;var v},exports.Virtualizer=H,exports.WindowVirtualizer=r=>{let n;const{data:o,children:s,overscan:i,itemSize:c,shift:u,horizontal:a=!1,onScrollEnd:f,onRangeChange:d}=r,h=R(r.data.length,null!=c?c:40,void 0,void 0,!c),v=((e,t)=>{const r=t?"width":"height",n=t?"innerWidth":"innerHeight",o=new WeakMap,s=M((t=>{const n=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=o.get(e);l(t)&&n.push([t,s[r]])}n.length&&e.P(1,n)}));let i;return{re(t){const r=m(w(t)),o=()=>{e.P(2,r[n])};r.addEventListener("resize",o),o(),i=()=>{r.removeEventListener("resize",o)}},ne:(e,t)=>(o.set(e,t),s.W(e),()=>{o.delete(e),s.j(e)}),D(){i&&i(),s.D()}}})(h,a),g=((e,t)=>{let r;return{W(n){const o=t?"scrollX":"scrollY",s=w(n),i=m(s),l=s.body,c=(e,t,r,n=0)=>{const o=r?"offsetLeft":"offsetTop",s=n+(r&&b()?i.innerWidth-e[o]-e.offsetWidth:e[o]),l=e.offsetParent;return e!==t&&l?c(l,t,r,s):s};r=C(e,i,t,(()=>T(i[o],t)-c(n,l,t)),(e=>{i.scrollBy(t?T(e,t):0,t?0:e)}))},D(){r&&r.D()},U:()=>{r&&r.U()}}})(h,a),[_,p]=t.createSignal(h.v()),S=h.L(3,(()=>{p(h.v())})),z=h.L(8,(()=>{var e;null===(e=r.onScrollEnd)||void 0===e||e.call(r)})),x=t.createMemo((e=>{_();const t=h.p();return e&&q(e,t)?e:t})),I=t.createMemo((()=>_()&&h.T())),J=t.createMemo((()=>_()&&h.q())),B=t.createMemo((()=>_()&&h.B())),H=t.createMemo((e=>{var t;const n=null!==(t=r.overscan)&&void 0!==t?t:4,[o,s]=x(),i=[y(o,n,I()),k(s,n,I(),r.data.length)];return e&&q(e,i)?e:i}));return t.onMount((()=>{v.re(n),g.W(n),t.onCleanup((()=>{S(),z(),v.D(),g.D()}))})),t.createComputed(t.on((()=>r.data.length),((e,t)=>{l(t)&&e!==t&&h.P(3,[e,r.shift])}))),t.createEffect(t.on(B,(()=>{g.U()}))),t.createEffect((()=>{const e=x();r.onRangeChange&&r.onRangeChange(e[0],e[1])})),L=P(),"function"==typeof(W=n)?e.use(W,L):n=L,L.style.setProperty("overflow-anchor","none"),L.style.setProperty("flex","none"),L.style.setProperty("position","relative"),L.style.setProperty("visibility","hidden"),e.insert(L,e.createComponent(E,{get K(){return r.data},get Z(){return H()},ee:(n,o)=>{const s=t.createMemo((()=>(_(),h.k(o)))),i=t.createMemo((()=>(_(),h.S(o))));return e.createComponent(O,{X:o,get V(){return v.ne},get F(){return s()},get A(){return i()},get G(){return r.children(n,o)},Y:a})}})),e.effect((e=>{var t=a?J()+"px":"100%",r=a?"100%":J()+"px",n=0!==I()?"none":"auto";return t!==e.e&&(null!=(e.e=t)?L.style.setProperty("width",t):L.style.removeProperty("width")),r!==e.t&&(null!=(e.t=r)?L.style.setProperty("height",r):L.style.removeProperty("height")),n!==e.a&&(null!=(e.a=n)?L.style.setProperty("pointer-events",n):L.style.removeProperty("pointer-events")),e}),{e:void 0,t:void 0,a:void 0}),L;var L,W};
|
|
1
|
+
var e=require("solid-js/web"),t=require("solid-js");const r=Math.min,n=Math.max,o=Math.abs,s=setTimeout,i=(e,t,o)=>r(o,n(t,e)),l=e=>null!=e,c="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},u=e=>{let t,r;return(...n)=>(t||(t=!0,r=e(...n)),r)},a=-1,f=(e,t,r)=>{const n=r?"unshift":"push";for(let r=0;r<t;r++)e[n](a);return e},d=(e,t)=>{const r=e.o[t];return r===a?e.i:r},h=(e,t,n)=>{const o=e.o[t]===a;return e.o[t]=n,e.l=r(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+=d(e,r),e.h[++r]=n;return e.l=t,n},g=(e,t,r)=>{let n=v(e,r);for(;r>=0&&r<e.u;)if(n<=t){const o=d(e,r);if(n+o>t)break;n+=o,r++}else n-=d(e,--r);return i(r,0,e.u-1)},_=(e,t,n,o)=>{const s=g(e,t,r(n,e.u-1));return[s,g(e,t+o,s)]},p=(e,t,n)=>{const o=t-e.u;let s;return o>0?(s=e.i*o,f(e.o,o,n),f(e.h,o)):(s=-(n?e.o.splice(0,-o):e.o.splice(o)).reduce(((t,r)=>t+(r===a?e.i:r)),0),e.h.splice(o)),e.l=n?-1:r(t-1,e.l),e.u=t,s},w="undefined"!=typeof window,S=()=>document.documentElement,m=e=>e.ownerDocument,b=e=>e.defaultView,z=/*#__PURE__*/u((()=>!!w&&"rtl"===getComputedStyle(S()).direction)),x=/*#__PURE__*/u((()=>/iP(hone|od|ad)/.test(navigator.userAgent))),y=/*#__PURE__*/u((()=>"scrollBehavior"in S().style)),k=(e,t,r)=>n(e-(1===r?1:n(1,t)),0),I=(e,t,o,s)=>r(e+(2===o?1:n(1,t)),s-1),R=(e,t,r)=>t.reduce(((t,[n,o])=>{const s=o-d(e,n);return(!r||s>0)&&(t+=s),t}),0),M=(e,t=40,s=0,l,c=!1,u=0,g=0)=>{let w=!!s,S=[],m=0,b=0,z=0,y=0,k=0,I=!1,M=0,T=0,C=0,J=w?[0,n(s-1,0)]:null,O=[0,0],q=0;const E=l||((e,t)=>({i:t,u:e,l:-1,o:f([],e),h:f([],e)}))(e,t),B=new Set,H=()=>(e=>e.u?v(e,e.u-1)+d(e,e.u-1):0)(E),L=()=>H()+u+g,P=()=>n(0,L()-m),W=e=>{e&&(x()&&0!==T?k+=e:(y+=e,z++))};return{v:()=>S,_:()=>JSON.parse(JSON.stringify(E)),p:()=>J?[r(O[0],J[0]),n(O[1],J[1])]:M?O:O=_(E,b-u+k+y,O[0],m),S:e=>E.o[e]===a,m:()=>!!J&&E.o.slice(n(0,J[0]-1),r(E.u-1,J[1]+1)+1).includes(a),k:e=>v(E,e)-k,I:e=>d(E,e),R:()=>E.u,M:()=>b,T:()=>T,C:()=>m,J:()=>u,O:H,q:()=>z,B(){const e=y,t=I;return y=0,I=!1,m>L()?[0,!1]:[M=e,t]},H(e,t){const r=[e,t];return B.add(r),()=>{B.delete(r)}},L(e,t){let r,s,l=0;switch(e){case 1:{const e=t.filter((([e,t])=>E.o[e]!==t));if(!e.length)break;let r;if(2===C)r=b>P()-1.5?R(E,e,!0):R(E,e);else{const[t]=O;r=R(E,e.filter((([e])=>e<t)))}W(r);for(const[t,r]of e)h(E,t,r)&&c&&(q+=r);c&&m&&q>m&&(W(((e,t)=>{let r=0;const o=e.o.filter(((e,n)=>{const o=e!==a;return o&&n<t&&r++,o})),s=e.i;return e.l=-1,((e.i=(e=>{const t=[...e].sort(((e,t)=>e-t)),r=e.length/2|0;return t.length%2==0?(t[r-1]+t[r])/2:t[r]})(o))-s)*n(t-r,0)})(E,O[0])),c=!1),l=2,s=!0;break}case 2:m!==t&&(m=t,l=2);break;case 3:t[1]?(W(p(E,t[0],!0)),C=2,I=!0,l=1):p(E,t[0]);break;case 4:{const e=i(t,0,P()),r=M;if(M=0,e===b)break;const n=e-b,c=o(n);r&&c<o(r)+1||0!==C||(T=n<0?2:1),w&&(J=null,w=!1),s=c>m,b=e,l=5;break}case 5:l=8,0!==T&&(r=!0,l+=1),T=0,C=0,J=null;break;case 6:C=1;break;case 7:J=_(E,t,O[0],m),l=1}l&&(S=[],r&&k&&(y+=k,k=0,z++),B.forEach((([e,t])=>{l&e&&t(s)})))}}},T=e=>{let t;return{P(r){(t||(t=new(b(m(r)).ResizeObserver)(e))).observe(r)},W(e){t.unobserve(e)},j(){t&&t.disconnect()}}},C=(e,t)=>t&&z()?-e:e,J=(e,t,r,n,o)=>{const i=Date.now;let c=0,u=!1,a=!1,f=!1,d=!1;const h=(()=>{let t;const r=()=>{l(t)&&clearTimeout(t)},n=()=>{r(),t=s((()=>{t=null,(()=>{if(u||a)return u=!1,void h();f=!1,e.L(5)})()}),150)};return n.D=r,n})(),v=()=>{c=i(),f&&(d=!0),e.L(4,n()),h()},g=t=>{if(u||0===e.T()||t.ctrlKey)return;const n=i()-c;150>n&&50<n&&(r?t.deltaX:t.deltaY)&&(u=!0)},_=()=>{a=!0,f=d=!1},p=()=>{a=!1,x()&&(f=!0)};return t.addEventListener("scroll",v),t.addEventListener("wheel",g,{passive:!0}),t.addEventListener("touchstart",_,{passive:!0}),t.addEventListener("touchend",p,{passive:!0}),{j:()=>{t.removeEventListener("scroll",v),t.removeEventListener("wheel",g),t.removeEventListener("touchstart",_),t.removeEventListener("touchend",p),h.D()},N:()=>{const[t,n]=e.B();t&&(o(C(t,r),n,d),d=!1)}}};var O=/*#__PURE__*/e.template("<div>");const q=r=>{let n;t.createEffect((()=>{n&&t.onCleanup(r.U(n,r.V))}));const o=t.createMemo((()=>{const e=r.X,t={margin:0,padding:0,position:"absolute",[e?"height":"width"]:"100%",[e?"top":"left"]:"0px",[e?z()?"right":"left":"top"]:r.Y+"px",visibility:r.F?"hidden":"visible"};return e&&(t.display="flex"),t}));return s=O(),"function"==typeof(i=n)?e.use(i,s):n=s,e.insert(s,(()=>r.A)),e.effect((t=>e.style(s,o(),t))),s;var s,i},E=e=>{let r=new Map;return t.onCleanup((()=>{for(const e of r.values())e.j()})),t.createMemo((()=>{const n=e.G,[o,s]=e.K,i=new Map,l=[];return t.untrack((()=>{for(let c=o;c<=s;c++){const o=n[c],s=r.get(c);l.push(s?s.Z:t.createRoot((r=>{const n=t.createSignal(o),s=e.$(n[0](),c);return i.set(c,{ee:n,Z:s,j:r}),s}))),s&&(o!==s.ee&&s.ee[1](o),i.set(c,s))}for(const[e,t]of r.entries())i.has(e)||t.j();return r=i,l}))}))},B=(e,t)=>e[0]===t[0]&&e[1]===t[1];var H=/*#__PURE__*/e.template("<div>");const L=r=>{let o;const{ref:u,data:a,children:f,overscan:d,itemSize:h,shift:v,horizontal:g=!1,onScroll:_,onScrollEnd:p,onRangeChange:w}=r,S=M(r.data.length,null!=h?h:40,void 0,void 0,!h),m=((e,t)=>{let r;const n=t?"width":"height",o=new WeakMap,s=T((t=>{const s=[];for(const{target:i,contentRect:c}of t)if(i.offsetParent)if(i===r)e.L(2,c[n]);else{const e=o.get(i);l(e)&&s.push([e,c[n]])}s.length&&e.L(1,s)}));return{te(e){s.P(r=e)},re:(e,t)=>(o.set(e,t),s.P(e),()=>{o.delete(e),s.W(e)}),j:s.j}})(S,g),b=((e,t)=>{let r,n,o;const l=t?"scrollLeft":"scrollTop",u=t?"overflowX":"overflowY",a=async(n,i)=>{if(!r)return void c((()=>a(n,i)));o&&o();const u=()=>{let t;return[new Promise(((e,r)=>{t=e,s(o=r,150)})),e.H(2,(()=>{t&&t()}))]};if(i&&y()){for(;e.L(7,n()),e.m();){const[e,t]=u();try{await e}catch(e){return}finally{t()}}r.scrollTo({[t?"left":"top"]:C(n(),t),behavior:"smooth"})}else for(;;){const[o,s]=u();try{r[l]=C(n(),t),e.L(6),await o}catch(e){return}finally{s()}}};return{P(i){r=i,n=J(e,i,t,(()=>C(i[l],t)),((t,r,n)=>{if(n){const e=i.style,t=e[u];e[u]="hidden",s((()=>{e[u]=t}))}r?(i[l]=e.M()+t,o&&o()):i[l]+=t}))},j(){n&&n.j()},ne(e){a((()=>e))},oe(t){t+=e.M(),a((()=>t))},se(t,{align:r,smooth:n}={}){if(t=i(t,0,e.R()-1),"nearest"===r){const n=e.k(t),o=e.M();if(n<o)r="start";else{if(!(n+e.I(t)>o+e.C()))return;r="end"}}a((()=>e.J()+("end"===r?e.k(t)+e.I(t)-e.C():"center"===r?e.k(t)+(e.I(t)-e.C())/2:e.k(t))),n)},N:()=>{n&&n.N()}}})(S,g),[z,x]=t.createSignal(S.v()),R=S.H(3,(()=>{x(S.v())})),O=S.H(4,(()=>{var e;null===(e=r.onScroll)||void 0===e||e.call(r,S.M())})),L=S.H(8,(()=>{var e;null===(e=r.onScrollEnd)||void 0===e||e.call(r)})),P=t.createMemo((e=>{z();const t=S.p();return e&&B(e,t)?e:t})),W=t.createMemo((()=>z()&&S.T())),j=t.createMemo((()=>z()&&S.O())),D=t.createMemo((()=>z()&&S.q())),N=t.createMemo((e=>{var t;const n=null!==(t=r.overscan)&&void 0!==t?t:4,[o,s]=P(),i=[k(o,n,W()),I(s,n,W(),r.data.length)];return e&&B(e,i)?e:i}));return t.onMount((()=>{r.ref&&r.ref({get scrollOffset(){return S.M()},get scrollSize(){return(e=>n(e.O(),e.C()))(S)},get viewportSize(){return S.C()},scrollToIndex:b.se,scrollTo:b.ne,scrollBy:b.oe});const e=o.parentElement;m.te(e),b.P(e),t.onCleanup((()=>{r.ref&&r.ref(),R(),O(),L(),m.j(),b.j()}))})),t.createComputed(t.on((()=>r.data.length),((e,t)=>{l(t)&&e!==t&&S.L(3,[e,r.shift])}))),t.createEffect(t.on(D,(()=>{b.N()}))),t.createEffect((()=>{const e=P();r.onRangeChange&&r.onRangeChange(e[0],e[1])})),U=H(),"function"==typeof(V=o)?e.use(V,U):o=U,U.style.setProperty("overflow-anchor","none"),U.style.setProperty("flex","none"),U.style.setProperty("position","relative"),U.style.setProperty("visibility","hidden"),e.insert(U,e.createComponent(E,{get G(){return r.data},get K(){return N()},$:(n,o)=>{const s=t.createMemo((()=>(z(),S.k(o)))),i=t.createMemo((()=>(z(),S.S(o))));return e.createComponent(q,{V:o,get U(){return m.re},get Y(){return s()},get F(){return i()},get A(){return r.children(n,o)},X:g})}})),e.effect((e=>{var t=g?j()+"px":"100%",r=g?"100%":j()+"px",n=0!==W()?"none":"auto";return t!==e.e&&(null!=(e.e=t)?U.style.setProperty("width",t):U.style.removeProperty("width")),r!==e.t&&(null!=(e.t=r)?U.style.setProperty("height",r):U.style.removeProperty("height")),n!==e.a&&(null!=(e.a=n)?U.style.setProperty("pointer-events",n):U.style.removeProperty("pointer-events")),e}),{e:void 0,t:void 0,a:void 0}),U;var U,V};var P=/*#__PURE__*/e.template("<div>"),W=/*#__PURE__*/e.template("<div>");exports.VList=t=>{const{ref:r,data:n,children:o,overscan:s,itemSize:i,shift:l,horizontal:c=!1,onScroll:u,onScrollEnd:a,onRangeChange:f,style:d,...h}=t;return v=P(),e.spread(v,e.mergeProps(h,{get style(){return{display:c?"inline-block":"block",[c?"overflow-x":"overflow-y"]:"auto",contain:"strict",width:"100%",height:"100%",...t.style}}}),!1,!0),e.insert(v,e.createComponent(L,{ref(e){var r=t.ref;"function"==typeof r?r(e):t.ref=e},get data(){return t.data},get overscan(){return t.overscan},get itemSize(){return t.itemSize},get shift(){return t.shift},horizontal:c,get onScroll(){return t.onScroll},get onScrollEnd(){return t.onScrollEnd},get onRangeChange(){return t.onRangeChange},get children(){return t.children}})),v;var v},exports.Virtualizer=L,exports.WindowVirtualizer=r=>{let n;const{data:o,children:s,overscan:i,itemSize:c,shift:u,horizontal:a=!1,onScrollEnd:f,onRangeChange:d}=r,h=M(r.data.length,null!=c?c:40,void 0,void 0,!c),v=((e,t)=>{const r=t?"width":"height",n=t?"innerWidth":"innerHeight",o=new WeakMap,s=T((t=>{const n=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=o.get(e);l(t)&&n.push([t,s[r]])}n.length&&e.L(1,n)}));let i;return{te(t){const r=b(m(t)),o=()=>{e.L(2,r[n])};r.addEventListener("resize",o),o(),i=()=>{r.removeEventListener("resize",o)}},re:(e,t)=>(o.set(e,t),s.P(e),()=>{o.delete(e),s.W(e)}),j(){i&&i(),s.j()}}})(h,a),g=((e,t)=>{let r;return{P(n){let o=0;const s=t?"scrollX":"scrollY",i=m(n),l=b(i),c=i.body,u=(e,t,r,n=0)=>{const o=r?"offsetLeft":"offsetTop",s=n+(r&&z()?l.innerWidth-e[o]-e.offsetWidth:e[o]),i=e.offsetParent;return e!==t&&i?u(i,t,r,s):s};r=J(e,l,t,(()=>C(l[s],t)-(o=u(n,c,t))),((r,n)=>{n?l.scroll({[t?"left":"top"]:e.M()+o+r}):l.scrollBy(t?r:0,t?0:r)}))},j(){r&&r.j()},N:()=>{r&&r.N()}}})(h,a),[_,p]=t.createSignal(h.v()),w=h.H(3,(()=>{p(h.v())})),S=h.H(8,(()=>{var e;null===(e=r.onScrollEnd)||void 0===e||e.call(r)})),x=t.createMemo((e=>{_();const t=h.p();return e&&B(e,t)?e:t})),y=t.createMemo((()=>_()&&h.T())),R=t.createMemo((()=>_()&&h.O())),O=t.createMemo((()=>_()&&h.q())),H=t.createMemo((e=>{var t;const n=null!==(t=r.overscan)&&void 0!==t?t:4,[o,s]=x(),i=[k(o,n,y()),I(s,n,y(),r.data.length)];return e&&B(e,i)?e:i}));return t.onMount((()=>{v.te(n),g.P(n),t.onCleanup((()=>{w(),S(),v.j(),g.j()}))})),t.createComputed(t.on((()=>r.data.length),((e,t)=>{l(t)&&e!==t&&h.L(3,[e,r.shift])}))),t.createEffect(t.on(O,(()=>{g.N()}))),t.createEffect((()=>{const e=x();r.onRangeChange&&r.onRangeChange(e[0],e[1])})),L=W(),"function"==typeof(P=n)?e.use(P,L):n=L,L.style.setProperty("overflow-anchor","none"),L.style.setProperty("flex","none"),L.style.setProperty("position","relative"),L.style.setProperty("visibility","hidden"),e.insert(L,e.createComponent(E,{get G(){return r.data},get K(){return H()},$:(n,o)=>{const s=t.createMemo((()=>(_(),h.k(o)))),i=t.createMemo((()=>(_(),h.S(o))));return e.createComponent(q,{V:o,get U(){return v.re},get Y(){return s()},get F(){return i()},get A(){return r.children(n,o)},X:a})}})),e.effect((e=>{var t=a?R()+"px":"100%",r=a?"100%":R()+"px",n=0!==y()?"none":"auto";return t!==e.e&&(null!=(e.e=t)?L.style.setProperty("width",t):L.style.removeProperty("width")),r!==e.t&&(null!=(e.t=r)?L.style.setProperty("height",r):L.style.removeProperty("height")),n!==e.a&&(null!=(e.a=n)?L.style.setProperty("pointer-events",n):L.style.removeProperty("pointer-events")),e}),{e:void 0,t:void 0,a:void 0}),L;var L,P};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|