virtua 0.48.4 → 0.48.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,474 @@
1
- const e=null,{min:t,max:o,abs:r,floor:s}=Math,n=(e,r,s)=>t(s,o(r,e)),i=e=>[...e].sort(((e,t)=>e-t)),c="function"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},l=()=>{let e;return[new Promise((t=>{e=t})),e]},f=e=>{let t;return()=>(e&&(t=e(),e=void 0),t)},a=(e,t,o)=>{const r=o?"unshift":"push";for(let o=0;o<t;o++)e[r](-1);return e},u=(e,t)=>{const o=e.t[t];return-1===o?e.o:o},p=(e,o,r)=>{const s=-1===e.t[o];return e.t[o]=r,e.i=t(o,e.i),s},$=(e,t)=>{if(!e.l)return 0;if(e.i>=t)return e.u[t];e.i<0&&(e.u[0]=0,e.i=0);let o=e.i,r=e.u[o];for(;o<t;)r+=u(e,o),e.u[++o]=r;return e.i=t,r},d=(e,t,o=0,r=e.l-1)=>{let i=o;for(;o<=r;){const n=s((o+r)/2);$(e,n)<=t?(i=n,o=n+1):r=n-1}return n(i,0,e.l-1)},h=(e,o,r)=>{const s=o-e.l;return e.i=r?-1:t(o-1,e.i),e.l=o,s>0?(a(e.u,s),a(e.t,s,r),e.o*s):(e.u.splice(s),(r?e.t.splice(0,-s):e.t.splice(s)).reduce(((t,o)=>t-(-1===o?e.o:o)),0))},g="undefined"!=typeof window,m=e=>e.documentElement,v=e=>e.ownerDocument,b=e=>e.defaultView,w=/*#__PURE__*/f((()=>!!/iP(hone|od|ad)/.test(navigator.userAgent)||"MacIntel"===navigator.platform&&navigator.maxTouchPoints>0)),x=/*#__PURE__*/f((()=>"scrollBehavior"in m(document).style)),S=setTimeout,k=(e,t)=>t?-e:e,I=(t,o,r,s,n,i)=>{const c=Date.now;let l=0,f=!1,a=!1,u=!1,p=!1;const $=(()=>{let o;const r=()=>{o!=e&&clearTimeout(o)},s=()=>{r(),o=S((()=>{o=e,(()=>{if(f||a)return f=!1,void $();u=!1,t.$update(2)})()}),150)};return s.p=r,s})(),d=()=>{l=c(),u&&(p=!0),i&&t.$update(6,i()),t.$update(1,s()),$()},h=e=>{if(f||!t.$isScrolling()||e.ctrlKey)return;const o=c()-l;150>o&&50<o&&(r?e.deltaX:e.deltaY)&&(f=!0)},g=()=>{a=!0,u=p=!1},m=()=>{a=!1,w()&&(u=!0)};return o.addEventListener("scroll",d),o.addEventListener("wheel",h,{passive:!0}),o.addEventListener("touchstart",g,{passive:!0}),o.addEventListener("touchend",m,{passive:!0}),{$:()=>{o.removeEventListener("scroll",d),o.removeEventListener("wheel",h),o.removeEventListener("touchstart",g),o.removeEventListener("touchend",m),$.p()},h:()=>{const[e,o]=t.m();e&&(n(e,o,p),p=!1,o&&t.$getViewportSize()>t.$getTotalSize()&&t.$update(1,s()))}}},y=(e,t,o)=>{let r;return[async(s,n)=>{if(!await t())return;r&&r();const i=()=>{const[t,o]=l();return r=()=>{o(!1)},e.$getViewportSize()&&S(r,150),[t,e.$subscribe(2,(()=>{o(!0)}))]};if(n&&x())e.$update(8,s()),c((async()=>{for(;;){let t=!0;for(let[o,r]=e.$getRange();o<=r;o++)if(e.$isUnmeasuredItem(o)){t=!1;break}if(t)break;const[o,r]=i();try{if(!await o)return}finally{r()}}e.$update(7),o(s(),n)}));else for(;;){const[t,r]=i();try{if(e.$update(7),o(s()),!await t)return}finally{r()}}},()=>{r&&r()}]},_=(e,t)=>{let o,r,s=l(),i=!1;const c=t?"scrollLeft":"scrollTop",f=t?"overflowX":"overflowY",[a,u]=y(e,(()=>s[0]),((e,r)=>{e=k(e,i),r?o.scrollTo({[t?"left":"top"]:e,behavior:"smooth"}):o[c]=e}));return{$observe(n,l){o=l,t&&(i="rtl"===getComputedStyle(l).direction),r=I(e,l,t,(()=>k(l[c],i)),((t,o,r)=>{if(r){const e=l.style,t=e[f];e[f]="hidden",S((()=>{e[f]=t}))}l[c]=k(e.$getScrollOffset()+t,i),o&&u()})),s[1](!0)},$dispose(){r&&r.$(),s[1](!1),s=l()},$isNegative:()=>i,$scrollTo(e){a((()=>e))},$scrollBy(t){t+=e.$getScrollOffset(),a((()=>t))},$scrollToIndex(t,{align:o,smooth:r,offset:s=0}={}){if(t=n(t,0,e.$getItemsLength()-1),"nearest"===o){const r=e.$getItemOffset(t),s=e.$getScrollOffset();if(r<s)o="start";else{if(!(r+e.$getItemSize(t)>s+e.$getViewportSize()))return;o="end"}}a((()=>s+e.$getStartSpacerSize()+e.$getItemOffset(t)+("end"===o?e.$getItemSize(t)-e.$getViewportSize():"center"===o?(e.$getItemSize(t)-e.$getViewportSize())/2:0)),r)},$fixScrollJump:()=>{r&&r.h()}}},z=e=>{let t;return{v(o){(t||(t=new(b(v(o)).ResizeObserver)(e))).observe(o)},S(e){t.unobserve(e)},$(){t&&t.disconnect()}}};exports.ACTION_ITEMS_LENGTH_CHANGE=5,exports.ACTION_START_OFFSET_CHANGE=6,exports.UPDATE_SCROLL_END_EVENT=8,exports.UPDATE_SCROLL_EVENT=4,exports.UPDATE_VIRTUAL_STATE=1,exports.createGridResizer=(e,t)=>{let r;const s=new WeakMap,n=new Set,i=new Set,c=new Map,l=(e,t)=>`${e}-${t}`,f=z((f=>{const a=new Set,u=new Set;for(const{target:o,contentRect:{width:n,height:i}}of f)if(o.offsetParent)if(o===r)e.$update(4,i),t.$update(4,n);else{const e=s.get(o);if(e){const[t,o]=e,r=l(t,o),s=c.get(r);let f,p;s?(s[0]!==i&&(f=!0),s[1]!==n&&(p=!0)):f=p=!0,f&&a.add(t),p&&u.add(o),(f||p)&&c.set(r,[i,n])}}if(a.size){const t=[];a.forEach((e=>{let r=0;i.forEach((t=>{const s=c.get(l(e,t));s&&(r=o(r,s[0]))})),r&&t.push([e,r])})),e.$update(3,t)}if(u.size){const e=[];u.forEach((t=>{let r=0;n.forEach((e=>{const s=c.get(l(e,t));s&&(r=o(r,s[1]))})),r&&e.push([t,r])})),t.$update(3,e)}}));return{$observeRoot(e){f.v(r=e)},$observeItem:(e,t,o)=>(s.set(e,[t,o]),n.add(t),i.add(o),f.v(e),()=>{s.delete(e),f.S(e)}),$resizeCols(o){for(const[t]of o)for(let o=0;o<e.$getItemsLength();o++)c.delete(l(o,t));t.$update(3,o)},$resizeRows(o){for(const[e]of o)for(let o=0;o<t.$getItemsLength();o++)c.delete(l(e,o));e.$update(3,o)},$dispose:f.$}},exports.createGridScroller=(e,t)=>{const o=_(e,!1),r=_(t,!0);return{$observe(e,t){o.$observe(e,t),r.$observe(e,t)},$dispose(){o.$dispose(),r.$dispose()},$isNegative:r.$isNegative,$scrollTo(e,t){null!=e&&o.$scrollTo(e),null!=t&&r.$scrollTo(t)},$scrollBy(e,t){null!=e&&o.$scrollBy(e),null!=t&&r.$scrollBy(t)},$scrollToIndex(e,t){null!=e&&o.$scrollToIndex(e),null!=t&&r.$scrollToIndex(t)},$fixScrollJump(){o.$fixScrollJump(),r.$fixScrollJump()}}},exports.createResizer=(t,o)=>{let r;const s=o?"width":"height",n=new WeakMap,i=z((o=>{const i=[];for(const{target:c,contentRect:l}of o)if(c.offsetParent)if(c===r)t.$update(4,l[s]);else{const t=n.get(c);t!=e&&i.push([t,l[s]])}i.length&&t.$update(3,i)}));return{$observeRoot(e){i.v(r=e)},$observeItem:(e,t)=>(n.set(e,t),i.v(e),()=>{n.delete(e),i.S(e)}),$dispose:i.$}},exports.createScroller=_,exports.createVirtualStore=(s,n=40,c=0,l,f=!1)=>{let g=!!c,m=1,v=0,b=0,x=0,S=0,k=0,I=0,y=0,_=0,z=e,T=[0,g?o(c-1,0):-1],M=0,R=!1;const J=((e,r,s)=>({o:r,t:s?a(s.slice(0,t(e,s.length)),o(0,e-s.length)):a([],e),l:e,i:-1,u:a([],e+1)}))(s,l?l[1]:n,l&&l[0]),C=new Set,W=()=>x-b,B=()=>W()+k+S,L=(e,o)=>((e,o,r,s)=>{if(s=t(s,e.l-1),$(e,s)<=o){const t=d(e,r,s);return[d(e,o,s,t),t]}{const t=d(e,o,void 0,s);return[t,d(e,r,t)]}})(J,e,o,T[0]),N=()=>$(J,J.l),O=(e,t)=>{const o=$(J,e)-k;return t?N()-o-P(e):o},P=e=>u(J,e),q=(e,t=-1)=>J.t[e]===t,V=e=>{e&&(w()&&0!==y||z&&1===_?k+=e:S+=e)};return{$dispose:()=>{C.clear()},$getStateVersion:()=>m,$getCacheSnapshot:()=>(e=>[e.t.slice(),e.o])(J),$getRange:(e=200)=>{if(!R||g)return T;let r,s;if(I)[r,s]=T;else{let n=o(0,B()),i=n+v;f||(e=o(0,e),1!==y&&(n-=e),2!==y&&(i+=e)),[r,s]=T=L(o(0,n),o(0,i)),z&&(r=t(r,z[0]),s=o(s,z[1]))}return[o(r,0),t(s,J.l-1)]},$findItemIndex:e=>d(J,e-b),$isUnmeasuredItem:q,$getItemOffset:O,$getItemSize:P,$getItemsLength:()=>J.l,$getScrollOffset:()=>x,$isScrolling:()=>0!==y,$getViewportSize:()=>v,$getStartSpacerSize:()=>b,$getTotalSize:N,m:()=>(I=S,S=0,[I,2===_]),$subscribe:(e,t)=>{const o=[e,t];return C.add(o),()=>{C.delete(o)}},$update:(t,s)=>{let n,c,l=0;switch(t){case 1:{if(s===x&&0===_)break;const e=I;I=0;const t=s-x,o=r(t);e&&o<r(e)+1||0!==_||(y=t<0?2:1),g&&(g=!1),x=s,l=4;const n=W();n>=-v&&n<=N()&&(l+=1,c=o>v);break}case 2:l=8,0!==y&&(n=!0,l+=1),y=0,_=0,z=e;break;case 3:{const e=s.filter((([e,t])=>!q(e,t)));if(!e.length)break;V(e.reduce(((e,[t,o])=>((2===_||(z&&1===_?t<z[0]:O(t+(0===y&&0===_?1:0))<W()))&&(e+=o-P(t)),e)),0));for(const[t,o]of e){const e=P(t),r=p(J,t,o);f&&(M+=r?o:o-e)}f&&v&&M>v&&(V(((e,t)=>{let r=0;const s=[];e.t.forEach(((e,o)=>{-1!==e&&(s.push(e),o<t&&r++)})),e.i=-1;const n=i(s),c=n.length,l=c/2|0,f=c%2==0?(n[l-1]+n[l])/2:n[l],a=e.o;return((e.o=f)-a)*o(t-r,0)})(J,d(J,B()))),f=!1),l=3,c=!0;break}case 4:v!==s&&(v||(R=c=!0),v=s,l=3);break;case 5:s[1]?(V(h(J,s[0],!0)),_=2,l=1):(h(J,s[0]),l=1);break;case 6:b=s;break;case 7:_=1;break;case 8:z=L(s,s+v),l=1}l&&(m=1+(2147483647&m),n&&k&&(S+=k,k=0),C.forEach((([e,t])=>{l&e&&t(c)})))}}},exports.createWindowResizer=(t,o)=>{const r=o?"width":"height",s=o?"innerWidth":"innerHeight",n=new WeakMap,i=z((o=>{const s=[];for(const{target:t,contentRect:i}of o){if(!t.offsetParent)continue;const o=n.get(t);o!=e&&s.push([o,i[r]])}s.length&&t.$update(3,s)}));let l;return{$observeRoot(e){const o=b(v(e)),r=()=>{t.$update(4,o[s])};o.addEventListener("resize",r),c(r),l=()=>{o.removeEventListener("resize",r)}},$observeItem:(e,t)=>(n.set(e,t),i.v(e),()=>{n.delete(e),i.S(e)}),$dispose(){l&&l(),i.$()}}},exports.createWindowScroller=(e,t)=>{let o,r,s=l(),i=!1;const c=t?"left":"top",[f]=y(e,(()=>s[0]),((e,t)=>{e=k(e,i);const r=b(v(o));t?r.scroll({[c]:e,behavior:"smooth"}):r.scroll({[c]:e})})),a=(e,t,o,r,s=0)=>{const n=r?"offsetLeft":"offsetTop",c=s+(r&&i?o.innerWidth-e[n]-e.offsetWidth:e[n]),l=e.offsetParent;return e!==t&&l?a(l,t,o,r,c):c};return{$observe(n){o=n;const l=t?"scrollX":"scrollY",f=v(n),u=b(f);t&&(i="rtl"===getComputedStyle(m(f)).direction),r=I(e,u,t,(()=>k(u[l],i)),((t,o)=>{o?u.scroll({[c]:k(e.$getScrollOffset()+t,i)}):u.scrollBy({[c]:k(t,i)})}),(()=>a(n,f.body,u,t))),s[1](!0)},$dispose(){r&&r.$(),o=void 0,s[1](!1),s=l()},$isNegative:()=>i,$fixScrollJump:()=>{r&&r.h()},$scrollToIndex(r,{align:s,smooth:i,offset:c=0}={}){if(!o)return;if(r=n(r,0,e.$getItemsLength()-1),"nearest"===s){const t=e.$getItemOffset(r),o=e.$getScrollOffset();if(t<o)s="start";else{if(!(t+e.$getItemSize(r)>o+e.$getViewportSize()))return;s="end"}}const l=v(o),u=b(l),p=m(l),$=()=>e.$getViewportSize()-(t?p.clientWidth:p.clientHeight);f((()=>c+a(o,l.body,u,t)+e.$getItemOffset(r)+("end"===s?e.$getItemSize(r)-(e.$getViewportSize()-$()):"center"===s?(e.$getItemSize(r)-(e.$getViewportSize()-$()))/2:0)),i)}}},exports.getScrollSize=e=>o(e.$getTotalSize(),e.$getViewportSize()),exports.isBrowser=g,exports.microtask=c,exports.sort=i;
1
+ const e = null, {min: t, max: o, abs: r, floor: s} = Math, n = (e, r, s) => t(s, o(r, e)), i = e => [ ...e ].sort(((e, t) => e - t)), c = "function" == typeof queueMicrotask ? queueMicrotask : e => {
2
+ Promise.resolve().then(e);
3
+ }, l = () => {
4
+ let e;
5
+ return [ new Promise((t => {
6
+ e = t;
7
+ })), e ];
8
+ }, f = e => {
9
+ let t;
10
+ return () => (e && (t = e(), e = void 0), t);
11
+ }, a = (e, t, o) => {
12
+ const r = o ? "unshift" : "push";
13
+ for (let o = 0; o < t; o++) e[r](-1);
14
+ return e;
15
+ }, u = (e, t) => {
16
+ const o = e.t[t];
17
+ return -1 === o ? e.o : o;
18
+ }, p = (e, o, r) => {
19
+ const s = -1 === e.t[o];
20
+ return e.t[o] = r, e.i = t(o, e.i), s;
21
+ }, $ = (e, t) => {
22
+ if (!e.l) return 0;
23
+ if (e.i >= t) return e.u[t];
24
+ e.i < 0 && (e.u[0] = 0, e.i = 0);
25
+ let o = e.i, r = e.u[o];
26
+ for (;o < t; ) r += u(e, o), e.u[++o] = r;
27
+ return e.i = t, r;
28
+ }, d = (e, t, o = 0, r = e.l - 1) => {
29
+ let i = o;
30
+ for (;o <= r; ) {
31
+ const n = s((o + r) / 2);
32
+ $(e, n) <= t ? (i = n, o = n + 1) : r = n - 1;
33
+ }
34
+ return n(i, 0, e.l - 1);
35
+ }, h = (e, o, r) => {
36
+ const s = o - e.l;
37
+ return e.i = r ? -1 : t(o - 1, e.i), e.l = o, s > 0 ? (a(e.u, s), a(e.t, s, r),
38
+ e.o * s) : (e.u.splice(s), (r ? e.t.splice(0, -s) : e.t.splice(s)).reduce(((t, o) => t - (-1 === o ? e.o : o)), 0));
39
+ }, g = "undefined" != typeof window, m = e => e.documentElement, v = e => e.ownerDocument, b = e => e.defaultView, w = /*#__PURE__*/ f((() => !!/iP(hone|od|ad)/.test(navigator.userAgent) || "MacIntel" === navigator.platform && navigator.maxTouchPoints > 0)), x = /*#__PURE__*/ f((() => "scrollBehavior" in m(document).style)), S = setTimeout, k = (e, t) => t ? -e : e, I = (t, o, r, s, n, i) => {
40
+ const c = Date.now;
41
+ let l = 0, f = !1, a = !1, u = !1, p = !1;
42
+ const $ = (() => {
43
+ let o;
44
+ const r = () => {
45
+ o != e && clearTimeout(o);
46
+ }, s = () => {
47
+ r(), o = S((() => {
48
+ o = e, (() => {
49
+ if (f || a) return f = !1, void $();
50
+ u = !1, t.$update(2);
51
+ })();
52
+ }), 150);
53
+ };
54
+ return s.p = r, s;
55
+ })(), d = () => {
56
+ l = c(), u && (p = !0), i && t.$update(6, i()), t.$update(1, s()), $();
57
+ }, h = e => {
58
+ if (f || !t.$isScrolling() || e.ctrlKey) return;
59
+ const o = c() - l;
60
+ 150 > o && 50 < o && (r ? e.deltaX : e.deltaY) && (f = !0);
61
+ }, g = () => {
62
+ a = !0, u = p = !1;
63
+ }, m = () => {
64
+ a = !1, w() && (u = !0);
65
+ };
66
+ return o.addEventListener("scroll", d), o.addEventListener("wheel", h, {
67
+ passive: !0
68
+ }), o.addEventListener("touchstart", g, {
69
+ passive: !0
70
+ }), o.addEventListener("touchend", m, {
71
+ passive: !0
72
+ }), {
73
+ $: () => {
74
+ o.removeEventListener("scroll", d), o.removeEventListener("wheel", h), o.removeEventListener("touchstart", g),
75
+ o.removeEventListener("touchend", m), $.p();
76
+ },
77
+ h: () => {
78
+ const [e, o] = t.m();
79
+ e && (n(e, o, p), p = !1, o && t.$getViewportSize() > t.$getTotalSize() && t.$update(1, s()));
80
+ }
81
+ };
82
+ }, y = (e, t, o) => {
83
+ let r;
84
+ return [ async (s, n) => {
85
+ if (!await t()) return;
86
+ r && r();
87
+ const i = () => {
88
+ const [t, o] = l();
89
+ return r = () => {
90
+ o(!1);
91
+ }, e.$getViewportSize() && S(r, 150), [ t, e.$subscribe(2, (() => {
92
+ o(!0);
93
+ })) ];
94
+ };
95
+ if (n && x()) e.$update(8, s()), c((async () => {
96
+ for (;;) {
97
+ let t = !0;
98
+ for (let [o, r] = e.$getRange(); o <= r; o++) if (e.$isUnmeasuredItem(o)) {
99
+ t = !1;
100
+ break;
101
+ }
102
+ if (t) break;
103
+ const [o, r] = i();
104
+ try {
105
+ if (!await o) return;
106
+ } finally {
107
+ r();
108
+ }
109
+ }
110
+ e.$update(7), o(s(), n);
111
+ })); else for (;;) {
112
+ const [t, r] = i();
113
+ try {
114
+ if (e.$update(7), o(s()), !await t) return;
115
+ } finally {
116
+ r();
117
+ }
118
+ }
119
+ }, () => {
120
+ r && r();
121
+ } ];
122
+ }, _ = (e, t) => {
123
+ let o, r, s = l(), i = !1;
124
+ const c = t ? "scrollLeft" : "scrollTop", f = t ? "overflowX" : "overflowY", [a, u] = y(e, (() => s[0]), ((e, r) => {
125
+ e = k(e, i), r ? o.scrollTo({
126
+ [t ? "left" : "top"]: e,
127
+ behavior: "smooth"
128
+ }) : o[c] = e;
129
+ }));
130
+ return {
131
+ $observe(n, l) {
132
+ o = l, t && (i = "rtl" === getComputedStyle(l).direction), r = I(e, l, t, (() => k(l[c], i)), ((t, o, r) => {
133
+ if (r) {
134
+ const e = l.style, t = e[f];
135
+ e[f] = "hidden", S((() => {
136
+ e[f] = t;
137
+ }));
138
+ }
139
+ l[c] = k(e.$getScrollOffset() + t, i), o && u();
140
+ })), s[1](!0);
141
+ },
142
+ $dispose() {
143
+ r && r.$(), s[1](!1), s = l();
144
+ },
145
+ $isNegative: () => i,
146
+ $scrollTo(e) {
147
+ a((() => e));
148
+ },
149
+ $scrollBy(t) {
150
+ t += e.$getScrollOffset(), a((() => t));
151
+ },
152
+ $scrollToIndex(t, {align: o, smooth: r, offset: s = 0} = {}) {
153
+ if (t = n(t, 0, e.$getItemsLength() - 1), "nearest" === o) {
154
+ const r = e.$getItemOffset(t), s = e.$getScrollOffset();
155
+ if (r < s) o = "start"; else {
156
+ if (!(r + e.$getItemSize(t) > s + e.$getViewportSize())) return;
157
+ o = "end";
158
+ }
159
+ }
160
+ a((() => s + e.$getStartSpacerSize() + e.$getItemOffset(t) + ("end" === o ? e.$getItemSize(t) - e.$getViewportSize() : "center" === o ? (e.$getItemSize(t) - e.$getViewportSize()) / 2 : 0)), r);
161
+ },
162
+ $fixScrollJump: () => {
163
+ r && r.h();
164
+ }
165
+ };
166
+ }, z = e => {
167
+ let t;
168
+ return {
169
+ v(o) {
170
+ (t || (t = new (b(v(o)).ResizeObserver)(e))).observe(o);
171
+ },
172
+ S(e) {
173
+ t.unobserve(e);
174
+ },
175
+ $() {
176
+ t && t.disconnect();
177
+ }
178
+ };
179
+ };
180
+
181
+ exports.ACTION_ITEMS_LENGTH_CHANGE = 5, exports.ACTION_START_OFFSET_CHANGE = 6,
182
+ exports.UPDATE_SCROLL_END_EVENT = 8, exports.UPDATE_SCROLL_EVENT = 4, exports.UPDATE_VIRTUAL_STATE = 1,
183
+ exports.createGridResizer = (e, t) => {
184
+ let r;
185
+ const s = new WeakMap, n = new Set, i = new Set, c = new Map, l = (e, t) => `${e}-${t}`, f = z((f => {
186
+ const a = new Set, u = new Set;
187
+ for (const {target: o, contentRect: {width: n, height: i}} of f) if (o.offsetParent) if (o === r) e.$update(4, i),
188
+ t.$update(4, n); else {
189
+ const e = s.get(o);
190
+ if (e) {
191
+ const [t, o] = e, r = l(t, o), s = c.get(r);
192
+ let f, p;
193
+ s ? (s[0] !== i && (f = !0), s[1] !== n && (p = !0)) : f = p = !0, f && a.add(t),
194
+ p && u.add(o), (f || p) && c.set(r, [ i, n ]);
195
+ }
196
+ }
197
+ if (a.size) {
198
+ const t = [];
199
+ a.forEach((e => {
200
+ let r = 0;
201
+ i.forEach((t => {
202
+ const s = c.get(l(e, t));
203
+ s && (r = o(r, s[0]));
204
+ })), r && t.push([ e, r ]);
205
+ })), e.$update(3, t);
206
+ }
207
+ if (u.size) {
208
+ const e = [];
209
+ u.forEach((t => {
210
+ let r = 0;
211
+ n.forEach((e => {
212
+ const s = c.get(l(e, t));
213
+ s && (r = o(r, s[1]));
214
+ })), r && e.push([ t, r ]);
215
+ })), t.$update(3, e);
216
+ }
217
+ }));
218
+ return {
219
+ $observeRoot(e) {
220
+ f.v(r = e);
221
+ },
222
+ $observeItem: (e, t, o) => (s.set(e, [ t, o ]), n.add(t), i.add(o), f.v(e), () => {
223
+ s.delete(e), f.S(e);
224
+ }),
225
+ $resizeCols(o) {
226
+ for (const [t] of o) for (let o = 0; o < e.$getItemsLength(); o++) c.delete(l(o, t));
227
+ t.$update(3, o);
228
+ },
229
+ $resizeRows(o) {
230
+ for (const [e] of o) for (let o = 0; o < t.$getItemsLength(); o++) c.delete(l(e, o));
231
+ e.$update(3, o);
232
+ },
233
+ $dispose: f.$
234
+ };
235
+ }, exports.createGridScroller = (e, t) => {
236
+ const o = _(e, !1), r = _(t, !0);
237
+ return {
238
+ $observe(e, t) {
239
+ o.$observe(e, t), r.$observe(e, t);
240
+ },
241
+ $dispose() {
242
+ o.$dispose(), r.$dispose();
243
+ },
244
+ $isNegative: r.$isNegative,
245
+ $scrollTo(e, t) {
246
+ null != e && o.$scrollTo(e), null != t && r.$scrollTo(t);
247
+ },
248
+ $scrollBy(e, t) {
249
+ null != e && o.$scrollBy(e), null != t && r.$scrollBy(t);
250
+ },
251
+ $scrollToIndex(e, t) {
252
+ null != e && o.$scrollToIndex(e), null != t && r.$scrollToIndex(t);
253
+ },
254
+ $fixScrollJump() {
255
+ o.$fixScrollJump(), r.$fixScrollJump();
256
+ }
257
+ };
258
+ }, exports.createResizer = (t, o) => {
259
+ let r;
260
+ const s = o ? "width" : "height", n = new WeakMap, i = z((o => {
261
+ const i = [];
262
+ for (const {target: c, contentRect: l} of o) if (c.offsetParent) if (c === r) t.$update(4, l[s]); else {
263
+ const t = n.get(c);
264
+ t != e && i.push([ t, l[s] ]);
265
+ }
266
+ i.length && t.$update(3, i);
267
+ }));
268
+ return {
269
+ $observeRoot(e) {
270
+ i.v(r = e);
271
+ },
272
+ $observeItem: (e, t) => (n.set(e, t), i.v(e), () => {
273
+ n.delete(e), i.S(e);
274
+ }),
275
+ $dispose: i.$
276
+ };
277
+ }, exports.createScroller = _, exports.createVirtualStore = (s, n = 40, c = 0, l, f = !1) => {
278
+ let g = !!c, m = 1, v = 0, b = 0, x = 0, S = 0, k = 0, I = 0, y = 0, _ = 0, z = e, T = [ 0, g ? o(c - 1, 0) : -1 ], M = 0, R = !1;
279
+ const J = ((e, r, s) => ({
280
+ o: r,
281
+ t: s ? a(s.slice(0, t(e, s.length)), o(0, e - s.length)) : a([], e),
282
+ l: e,
283
+ i: -1,
284
+ u: a([], e + 1)
285
+ }))(s, l ? l[1] : n, l && l[0]), C = new Set, W = () => x - b, B = () => W() + k + S, L = (e, o) => ((e, o, r, s) => {
286
+ if (s = t(s, e.l - 1), $(e, s) <= o) {
287
+ const t = d(e, r, s);
288
+ return [ d(e, o, s, t), t ];
289
+ }
290
+ {
291
+ const t = d(e, o, void 0, s);
292
+ return [ t, d(e, r, t) ];
293
+ }
294
+ })(J, e, o, T[0]), N = () => $(J, J.l), O = (e, t) => {
295
+ const o = $(J, e) - k;
296
+ return t ? N() - o - P(e) : o;
297
+ }, P = e => u(J, e), q = (e, t = -1) => J.t[e] === t, V = e => {
298
+ e && (w() && 0 !== y || z && 1 === _ ? k += e : S += e);
299
+ };
300
+ return {
301
+ $dispose: () => {
302
+ C.clear();
303
+ },
304
+ $getStateVersion: () => m,
305
+ $getCacheSnapshot: () => (e => [ e.t.slice(), e.o ])(J),
306
+ $getRange: (e = 200) => {
307
+ if (!R || g) return T;
308
+ let r, s;
309
+ if (I) [r, s] = T; else {
310
+ let n = o(0, B()), i = n + v;
311
+ f || (e = o(0, e), 1 !== y && (n -= e), 2 !== y && (i += e)), [r, s] = T = L(o(0, n), o(0, i)),
312
+ z && (r = t(r, z[0]), s = o(s, z[1]));
313
+ }
314
+ return [ o(r, 0), t(s, J.l - 1) ];
315
+ },
316
+ $findItemIndex: e => d(J, e - b),
317
+ $isUnmeasuredItem: q,
318
+ $getItemOffset: O,
319
+ $getItemSize: P,
320
+ $getItemsLength: () => J.l,
321
+ $getScrollOffset: () => x,
322
+ $isScrolling: () => 0 !== y,
323
+ $getViewportSize: () => v,
324
+ $getStartSpacerSize: () => b,
325
+ $getTotalSize: N,
326
+ m: () => (I = S, S = 0, [ I, 2 === _ ]),
327
+ $subscribe: (e, t) => {
328
+ const o = [ e, t ];
329
+ return C.add(o), () => {
330
+ C.delete(o);
331
+ };
332
+ },
333
+ $update: (t, s) => {
334
+ let n, c, l = 0;
335
+ switch (t) {
336
+ case 1:
337
+ {
338
+ if (s === x && 0 === _) break;
339
+ const e = I;
340
+ I = 0;
341
+ const t = s - x, o = r(t);
342
+ e && o < r(e) + 1 || 0 !== _ || (y = t < 0 ? 2 : 1), g && (g = !1), x = s, l = 4;
343
+ const n = W();
344
+ n >= -v && n <= N() && (l += 1, c = o > v);
345
+ break;
346
+ }
347
+
348
+ case 2:
349
+ l = 8, 0 !== y && (n = !0, l += 1), y = 0, _ = 0, z = e;
350
+ break;
351
+
352
+ case 3:
353
+ {
354
+ const e = s.filter((([e, t]) => !q(e, t)));
355
+ if (!e.length) break;
356
+ V(e.reduce(((e, [t, o]) => ((2 === _ || (z && 1 === _ ? t < z[0] : O(t + (0 === y && 0 === _ ? 1 : 0)) < W())) && (e += o - P(t)),
357
+ e)), 0));
358
+ for (const [t, o] of e) {
359
+ const e = P(t), r = p(J, t, o);
360
+ f && (M += r ? o : o - e);
361
+ }
362
+ f && v && M > v && (V(((e, t) => {
363
+ let r = 0;
364
+ const s = [];
365
+ e.t.forEach(((e, o) => {
366
+ -1 !== e && (s.push(e), o < t && r++);
367
+ })), e.i = -1;
368
+ const n = i(s), c = n.length, l = c / 2 | 0, f = c % 2 == 0 ? (n[l - 1] + n[l]) / 2 : n[l], a = e.o;
369
+ return ((e.o = f) - a) * o(t - r, 0);
370
+ })(J, d(J, B()))), f = !1), l = 3, c = !0;
371
+ break;
372
+ }
373
+
374
+ case 4:
375
+ v !== s && (v || (R = c = !0), v = s, l = 3);
376
+ break;
377
+
378
+ case 5:
379
+ s[1] ? (V(h(J, s[0], !0)), _ = 2, l = 1) : (h(J, s[0]), l = 1);
380
+ break;
381
+
382
+ case 6:
383
+ b = s;
384
+ break;
385
+
386
+ case 7:
387
+ _ = 1;
388
+ break;
389
+
390
+ case 8:
391
+ z = L(s, s + v), l = 1;
392
+ }
393
+ l && (m = 1 + (2147483647 & m), n && k && (S += k, k = 0), C.forEach((([e, t]) => {
394
+ l & e && t(c);
395
+ })));
396
+ }
397
+ };
398
+ }, exports.createWindowResizer = (t, o) => {
399
+ const r = o ? "width" : "height", s = o ? "innerWidth" : "innerHeight", n = new WeakMap, i = z((o => {
400
+ const s = [];
401
+ for (const {target: t, contentRect: i} of o) {
402
+ if (!t.offsetParent) continue;
403
+ const o = n.get(t);
404
+ o != e && s.push([ o, i[r] ]);
405
+ }
406
+ s.length && t.$update(3, s);
407
+ }));
408
+ let l;
409
+ return {
410
+ $observeRoot(e) {
411
+ const o = b(v(e)), r = () => {
412
+ t.$update(4, o[s]);
413
+ };
414
+ o.addEventListener("resize", r), c(r), l = () => {
415
+ o.removeEventListener("resize", r);
416
+ };
417
+ },
418
+ $observeItem: (e, t) => (n.set(e, t), i.v(e), () => {
419
+ n.delete(e), i.S(e);
420
+ }),
421
+ $dispose() {
422
+ l && l(), i.$();
423
+ }
424
+ };
425
+ }, exports.createWindowScroller = (e, t) => {
426
+ let o, r, s = l(), i = !1;
427
+ const c = t ? "left" : "top", [f] = y(e, (() => s[0]), ((e, t) => {
428
+ e = k(e, i);
429
+ const r = b(v(o));
430
+ t ? r.scroll({
431
+ [c]: e,
432
+ behavior: "smooth"
433
+ }) : r.scroll({
434
+ [c]: e
435
+ });
436
+ })), a = (e, t, o, r, s = 0) => {
437
+ const n = r ? "offsetLeft" : "offsetTop", c = s + (r && i ? o.innerWidth - e[n] - e.offsetWidth : e[n]), l = e.offsetParent;
438
+ return e !== t && l ? a(l, t, o, r, c) : c;
439
+ };
440
+ return {
441
+ $observe(n) {
442
+ o = n;
443
+ const l = t ? "scrollX" : "scrollY", f = v(n), u = b(f);
444
+ t && (i = "rtl" === getComputedStyle(m(f)).direction), r = I(e, u, t, (() => k(u[l], i)), ((t, o) => {
445
+ o ? u.scroll({
446
+ [c]: k(e.$getScrollOffset() + t, i)
447
+ }) : u.scrollBy({
448
+ [c]: k(t, i)
449
+ });
450
+ }), (() => a(n, f.body, u, t))), s[1](!0);
451
+ },
452
+ $dispose() {
453
+ r && r.$(), o = void 0, s[1](!1), s = l();
454
+ },
455
+ $isNegative: () => i,
456
+ $fixScrollJump: () => {
457
+ r && r.h();
458
+ },
459
+ $scrollToIndex(r, {align: s, smooth: i, offset: c = 0} = {}) {
460
+ if (!o) return;
461
+ if (r = n(r, 0, e.$getItemsLength() - 1), "nearest" === s) {
462
+ const t = e.$getItemOffset(r), o = e.$getScrollOffset();
463
+ if (t < o) s = "start"; else {
464
+ if (!(t + e.$getItemSize(r) > o + e.$getViewportSize())) return;
465
+ s = "end";
466
+ }
467
+ }
468
+ const l = v(o), u = b(l), p = m(l), $ = () => e.$getViewportSize() - (t ? p.clientWidth : p.clientHeight);
469
+ f((() => c + a(o, l.body, u, t) + e.$getItemOffset(r) + ("end" === s ? e.$getItemSize(r) - (e.$getViewportSize() - $()) : "center" === s ? (e.$getItemSize(r) - (e.$getViewportSize() - $())) / 2 : 0)), i);
470
+ }
471
+ };
472
+ }, exports.getScrollSize = e => o(e.$getTotalSize(), e.$getViewportSize()), exports.isBrowser = g,
473
+ exports.microtask = c, exports.sort = i;
2
474
  //# sourceMappingURL=index.cjs.map