virtua 0.52.10 → 0.53.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.
Files changed (55) hide show
  1. package/README.md +286 -193
  2. package/lib/angular/VList.d.ts +3 -1
  3. package/lib/angular/VMasonry.d.ts +114 -0
  4. package/lib/angular/Virtualizer.d.ts +3 -1
  5. package/lib/angular/WindowVirtualizer.d.ts +3 -1
  6. package/lib/angular/index.d.ts +1 -0
  7. package/lib/angular/index.js +733 -352
  8. package/lib/angular/index.js.map +1 -1
  9. package/lib/core/index.cjs +180 -104
  10. package/lib/core/index.cjs.map +1 -1
  11. package/lib/core/index.d.ts +1 -0
  12. package/lib/core/index.js +257 -181
  13. package/lib/core/index.js.map +1 -1
  14. package/lib/core/layouts/masonry.d.ts +1 -0
  15. package/lib/index.cjs +555 -385
  16. package/lib/index.cjs.map +1 -1
  17. package/lib/index.js +572 -404
  18. package/lib/index.js.map +1 -1
  19. package/lib/react/VMasonry.d.ts +105 -0
  20. package/lib/react/Virtualizer.d.ts +3 -1
  21. package/lib/react/WindowVirtualizer.d.ts +3 -1
  22. package/lib/react/index.d.ts +2 -0
  23. package/lib/react/types.d.ts +1 -1
  24. package/lib/solid/VMasonry.d.ts +107 -0
  25. package/lib/solid/Virtualizer.d.ts +3 -1
  26. package/lib/solid/WindowVirtualizer.d.ts +3 -1
  27. package/lib/solid/index.cjs +720 -514
  28. package/lib/solid/index.cjs.map +1 -1
  29. package/lib/solid/index.d.ts +2 -0
  30. package/lib/solid/index.js +691 -494
  31. package/lib/solid/index.js.map +1 -1
  32. package/lib/solid/index.jsx +329 -8
  33. package/lib/solid/index.jsx.map +1 -1
  34. package/lib/solid/types.d.ts +1 -1
  35. package/lib/svelte/MasonryItem.svelte +49 -0
  36. package/lib/svelte/VGrid.svelte +1 -1
  37. package/lib/svelte/VList.svelte +1 -1
  38. package/lib/svelte/VMasonry.svelte +182 -0
  39. package/lib/svelte/VMasonry.type.d.ts +104 -0
  40. package/lib/svelte/Virtualizer.svelte +1 -1
  41. package/lib/svelte/Virtualizer.type.d.ts +3 -1
  42. package/lib/svelte/WindowVirtualizer.svelte +1 -1
  43. package/lib/svelte/WindowVirtualizer.type.d.ts +3 -1
  44. package/lib/svelte/index.d.ts +2 -0
  45. package/lib/svelte/index.js +2 -1
  46. package/lib/svelte/types.d.ts +2 -2
  47. package/lib/vue/VMasonry.d.ts +110 -0
  48. package/lib/vue/Virtualizer.d.ts +3 -1
  49. package/lib/vue/WindowVirtualizer.d.ts +3 -1
  50. package/lib/vue/index.cjs +625 -403
  51. package/lib/vue/index.cjs.map +1 -1
  52. package/lib/vue/index.d.ts +2 -0
  53. package/lib/vue/index.js +672 -455
  54. package/lib/vue/index.js.map +1 -1
  55. package/package.json +6 -16
@@ -48,7 +48,7 @@ t), m = (t, e, o) => {
48
48
  v(l, t, c, s, r);
49
49
  for (let t = s; t < e; t++) l.push(t);
50
50
  return l;
51
- }, I = (t, e) => o(t.rowIndex + (t.rowSpan || 1), e), k = (t, e) => o(t.colIndex + (t.colSpan || 1), e), z = (t, e, n, r, s, l) => {
51
+ }, I = (t, e) => o(t.rowIndex + (t.rowSpan || 1), e), z = (t, e) => o(t.colIndex + (t.colSpan || 1), e), k = (t, e, n, r, s, l) => {
52
52
  const c = e.length, i = r.length;
53
53
  let f = "[l0]", u = 0, a = 0, $ = 0;
54
54
  for (;u < l; ) {
@@ -86,7 +86,7 @@ t), m = (t, e, o) => {
86
86
  e && e.disconnect();
87
87
  }
88
88
  };
89
- }, R = (t, e, o, n, r, s, l) => {
89
+ }, L = (t, e, o, n, r, s, l) => {
90
90
  let c, a, $ = 0, p = !1, g = !1, m = !1, x = !1;
91
91
  const w = Date.now, h = n ? "scrollLeft" : "scrollTop", b = n ? "left" : "top", S = t => r ? -t : t, v = () => S(o[h]), y = (t, e) => {
92
92
  o.scrollTo({
@@ -94,32 +94,32 @@ t), m = (t, e, o) => {
94
94
  behavior: e ? "smooth" : "instant"
95
95
  });
96
96
  }, I = () => {
97
- if (p || g) return p = !1, void k();
97
+ if (p || g) return p = !1, void z();
98
98
  m = !1, t.$update(2);
99
- }, k = () => {
100
- f(a), a = i(I, 150);
101
99
  }, z = () => {
102
- $ = w(), m && (x = !0), l && t.$update(6, l()), t.$update(1, v()), k();
100
+ f(a), a = i(I, 150);
101
+ }, k = () => {
102
+ $ = w(), m && (x = !0), l && t.$update(6, l()), t.$update(1, v()), z();
103
103
  }, M = e => {
104
104
  if (p || !t.$isScrolling() || e.ctrlKey) return;
105
105
  const o = w() - $;
106
106
  150 > o && 50 < o && (n ? e.deltaX : e.deltaY) && (p = !0);
107
107
  }, T = () => {
108
108
  g = !0, m = x = !1;
109
- }, R = () => {
109
+ }, L = () => {
110
110
  g = !1, d() && (m = !0);
111
111
  };
112
- return e.addEventListener("scroll", z), e.addEventListener("wheel", M, {
112
+ return e.addEventListener("scroll", k), e.addEventListener("wheel", M, {
113
113
  passive: !0
114
114
  }), e.addEventListener("touchstart", T, {
115
115
  passive: !0
116
- }), e.addEventListener("touchend", R, {
116
+ }), e.addEventListener("touchend", L, {
117
117
  passive: !0
118
118
  }), {
119
- i: z,
119
+ i: k,
120
120
  l: () => {
121
- e.removeEventListener("scroll", z), e.removeEventListener("wheel", M), e.removeEventListener("touchstart", T),
122
- e.removeEventListener("touchend", R), f(a);
121
+ e.removeEventListener("scroll", k), e.removeEventListener("wheel", M), e.removeEventListener("touchstart", T),
122
+ e.removeEventListener("touchend", L), f(a);
123
123
  },
124
124
  u: () => {
125
125
  const [e, n] = t.$();
@@ -144,7 +144,8 @@ t), m = (t, e, o) => {
144
144
  }
145
145
  t.$update(7), y(e(), o);
146
146
  }
147
- }, $ = () => {
147
+ };
148
+ o && t.$update(8, e()), (() => {
148
149
  if (n) return;
149
150
  let e;
150
151
  s = t.$subscribe(2, () => {
@@ -152,11 +153,10 @@ t), m = (t, e, o) => {
152
153
  e = !1, a();
153
154
  }));
154
155
  }), a();
155
- };
156
- o ? (t.$update(8, e()), u($)) : $();
156
+ })();
157
157
  }
158
158
  };
159
- }, L = (t, e) => {
159
+ }, R = (t, e) => {
160
160
  t.$scroll(() => e);
161
161
  }, O = (t, e, r, s, c, i, f) => {
162
162
  const u = e.$getItemsLength(), a = r.$getPinnedStart(), $ = r.$getTrailStart();
@@ -196,7 +196,7 @@ exports.createContainerDriver = (t, e) => {
196
196
  });
197
197
  return {
198
198
  $observe(s, l = s.parentElement) {
199
- c.t(o = l), n = R(t, l, l, e, e && "rtl" === getComputedStyle(l).direction, () => {
199
+ c.t(o = l), n = L(t, l, l, e, e && "rtl" === getComputedStyle(l).direction, () => {
200
200
  const t = e ? "overflowX" : "overflowY", o = l.style, n = o[t];
201
201
  o[t] = "hidden", i(() => {
202
202
  o[t] = n;
@@ -232,10 +232,9 @@ exports.createContainerDriver = (t, e) => {
232
232
  async $scroll(t, e) {
233
233
  await s[0] && (t ? r : n).p(e);
234
234
  },
235
- $observe(l) {
236
- const c = o = l.parentElement;
237
- u.t(c);
238
- const f = (t, e) => R(t, c, c, e, e && "rtl" === getComputedStyle(c).direction, () => {
235
+ $observe(l, c = l.parentElement) {
236
+ u.t(o = c);
237
+ const f = (t, e) => L(t, c, c, e, e && "rtl" === getComputedStyle(c).direction, () => {
239
238
  const t = e ? "overflowX" : "overflowY", o = c.style, n = o[t];
240
239
  o[t] = "hidden", i(() => {
241
240
  o[t] = n;
@@ -258,9 +257,9 @@ exports.createContainerDriver = (t, e) => {
258
257
  let i = w(t);
259
258
  const f = "number" == typeof e, u = "auto" === e;
260
259
  let a = (f ? e : 40) + r, $ = -1, p = 0, g = u, d = 0, h = 0, b = null;
261
- const S = [], v = [], y = [], I = t => u || !!y[t], k = () => {
260
+ const S = [], v = [], y = [], I = t => u || !!y[t], z = () => {
262
261
  S.length || m(S, i);
263
- }, z = t => {
262
+ }, k = t => {
264
263
  const e = S[t];
265
264
  return -1 === e ? a : e;
266
265
  }, M = t => {
@@ -269,25 +268,25 @@ exports.createContainerDriver = (t, e) => {
269
268
  if ($ >= t) return v[t];
270
269
  $ < 0 && (v[0] = 0, $ = 0);
271
270
  let e = $, o = v[e];
272
- for (;e < t; ) o += z(e), v[++e] = o;
271
+ for (;e < t; ) o += k(e), v[++e] = o;
273
272
  return $ = t, o;
274
273
  }, T = (t, e) => {
275
274
  S[t] = e, $ = o(t, $);
276
- }, R = t => S.length ? x(M, i, t) : a ? l(s(t / a), 0, i - 1) : 0, L = () => o(d, i), O = () => n(i - h, L()), _ = t => (S.length ? z(t) : a) - r;
275
+ }, L = t => S.length ? x(M, i, t) : a ? l(s(t / a), 0, i - 1) : 0, R = () => o(d, i), O = () => n(i - h, R()), E = t => (S.length ? k(t) : a) - r;
277
276
  return {
278
277
  $getRange: (t, e) => {
279
- const o = M(L()), s = M(i) - M(O()), l = t + (o ? o - r : 0);
280
- return [ R(l), R(n(l, e - (s ? s - r : 0))) ];
278
+ const o = M(R()), s = M(i) - M(O()), l = t + (o ? o - r : 0);
279
+ return [ L(l), L(n(l, e - (s ? s - r : 0))) ];
281
280
  },
282
- $findIndex: R,
281
+ $findIndex: L,
283
282
  $getItemOffset: M,
284
- $getItemSize: _,
283
+ $getItemSize: E,
285
284
  $resize: (t, e, o, s) => {
286
- let l = t.reduce((t, [o, n]) => I(o) && e(o) ? t + (n - _(o)) : t, 0);
287
- for (const [e, o] of t) I(e) && (k(), p += -1 === S[e] ? o : o - _(e), T(e, o + r));
285
+ let l = t.reduce((t, [o, n]) => I(o) && e(o) ? t + (n - E(o)) : t, 0);
286
+ for (const [e, o] of t) I(e) && (z(), p += -1 === S[e] ? o : o - E(e), T(e, o + r));
288
287
  if (g && s && p > s) {
289
288
  let t = 0;
290
- const e = R(o + l), r = [];
289
+ const e = L(o + l), r = [];
291
290
  S.forEach((o, n) => {
292
291
  -1 !== o && (o && r.push(o), n < e && t++);
293
292
  }), $ = -1, c(r);
@@ -311,7 +310,7 @@ exports.createContainerDriver = (t, e) => {
311
310
  $setPinned: (t = 0, e = 0) => {
312
311
  d = t, h = e;
313
312
  },
314
- $getPinnedStart: L,
313
+ $getPinnedStart: R,
315
314
  $getTrailStart: O,
316
315
  $getSizes: (t, e) => "number" == typeof e ? f ? e : null : f || u || "auto" === e ? null : t.map(t => null != t ? t[e] : null),
317
316
  $relayout: (t, e) => {
@@ -319,12 +318,12 @@ exports.createContainerDriver = (t, e) => {
319
318
  if ("number" == typeof t) {
320
319
  const o = t + r;
321
320
  if (o === a) return;
322
- const n = R(e) * (o - a);
321
+ const n = L(e) * (o - a);
323
322
  return a = o, n;
324
323
  }
325
324
  if (t === b && i === y.length) return;
326
- b = t, y.length = i, k();
327
- const o = R(e), n = M(o);
325
+ b = t, y.length = i, z();
326
+ const o = L(e), n = M(o);
328
327
  let s;
329
328
  for (let e = 0; e < i; e++) {
330
329
  const o = t[e], n = "number" != typeof o;
@@ -340,30 +339,30 @@ exports.createContainerDriver = (t, e) => {
340
339
  }, exports.createGridPlan = (t, r, [s, i], [f, u], a, $ = e, p = e, g) => {
341
340
  const d = t.$getLength(), m = r.$getLength(), x = t.$getPinnedStart(), w = t.$getTrailStart(), v = r.$getPinnedStart(), T = r.$getTrailStart();
342
341
  s = l(s, x, w), i = o(i, w - 1), f = l(f, v, T), u = o(u, T - 1);
343
- const R = b($, x, w), L = n(v - 1, 0), O = [], _ = [], C = [];
344
- for (const t of p) t.rowIndex < d && t.colIndex < m && (C.push(t), O.push(t.rowIndex));
345
- const E = C.length, q = S(R, s, w), P = q < 0 ? -1 : R[q];
342
+ const L = b($, x, w), R = n(v - 1, 0), O = [], E = [], _ = [];
343
+ for (const t of p) t.rowIndex < d && t.colIndex < m && (_.push(t), O.push(t.rowIndex));
344
+ const q = _.length, C = S(L, s, w), P = C < 0 ? -1 : L[C];
346
345
  P >= 0 && O.push(P);
347
346
  const W = y(c(O), d, x, s, i, w);
348
347
  for (let t = 0; t < W.length; t++) for (const r of a.get(W[t]) || e) {
349
- const {rowIndex: e, colIndex: l} = r, c = I(r, d), a = k(r, m);
348
+ const {rowIndex: e, colIndex: l} = r, c = I(r, d), a = z(r, m);
350
349
  if ((t < 1 || W[t - 1] < e) && l < m && (c - e > 1 || a - l > 1)) {
351
350
  let t = (e < x || n(e, s) < o(c, i + 1) || w < c || P >= e && P < c) && (l < v || n(l, f) < o(a, u + 1) || T < a);
352
- for (let o = 0; !t && o < E; o++) {
353
- const n = C[o];
351
+ for (let o = 0; !t && o < q; o++) {
352
+ const n = _[o];
354
353
  t = n.rowIndex >= e && n.rowIndex < c && n.colIndex >= l && n.colIndex < a;
355
354
  }
356
- t && C.push(r);
355
+ t && _.push(r);
357
356
  }
358
357
  }
359
- for (const {rowIndex: t, colIndex: e} of C) {
360
- const o = S(R, t, w);
361
- O.push(t), o >= 0 && O.push(R[o]), _.push(e);
358
+ for (const {rowIndex: t, colIndex: e} of _) {
359
+ const o = S(L, t, w);
360
+ O.push(t), o >= 0 && O.push(L[o]), E.push(e);
362
361
  }
363
- c(O), c(_);
364
- const A = y(O, d, x, s, i, w), B = y(_, m, v, f, u, T), J = A.length, V = B.length, X = /* @__PURE__ */ new Map, Y = [], j = [];
365
- for (const t of C) {
366
- const e = I(t, d), o = k(t, m);
362
+ c(O), c(E);
363
+ const A = y(O, d, x, s, i, w), B = y(E, m, v, f, u, T), J = A.length, V = B.length, X = /* @__PURE__ */ new Map, Y = [], j = [];
364
+ for (const t of _) {
365
+ const e = I(t, d), o = z(t, m);
367
366
  Y.push(e), j.push(o);
368
367
  const n = B.indexOf(t.colIndex);
369
368
  for (let r = A.indexOf(t.rowIndex); r < J && A[r] < e; r++) {
@@ -373,39 +372,39 @@ exports.createContainerDriver = (t, e) => {
373
372
  }
374
373
  const D = [];
375
374
  for (const t of B) D.push(!r.$isMeasurable(t) && null);
376
- const U = [], Z = t.$getItemOffset(x), F = [];
377
- let G = F;
375
+ const G = [], U = t.$getItemOffset(x), Z = [];
376
+ let F = Z;
378
377
  const H = h.get(t), K = /* @__PURE__ */ new Map;
379
378
  for (const e of A) {
380
- const o = e < x, l = e >= w, c = S(R, e, w), a = o ? 0 : l ? w : c < 0 ? -1 : R[c];
379
+ const o = e < x, l = e >= w, c = S(L, e, w), a = o ? 0 : l ? w : c < 0 ? -1 : L[c];
381
380
  if (e === a) {
382
- const t = o ? x : l ? d : c + 1 < R.length ? R[c + 1] : w;
381
+ const t = o ? x : l ? d : c + 1 < L.length ? L[c + 1] : w;
383
382
  Y.push(t);
384
383
  const e = [];
385
- F.push({
384
+ Z.push({
386
385
  $key: o ? -1 : l ? -2 : -3 - a,
387
386
  $rows: e,
388
387
  $style: M(a, t, o || l ? 0 : null, l ? "bottom" : "top", 4)
389
- }), G = e;
390
- } else a < 0 && (G = F);
391
- const $ = c >= 0 && e === a, p = o || l || e === P || e >= s && e <= i, h = $ ? Z : null, b = e * m, y = H && H.get(e), z = y && y.$cells, O = [];
392
- let _ = 0, C = !t.$isMeasurable(e) && null, E = e + 1, q = !1;
388
+ }), F = e;
389
+ } else a < 0 && (F = Z);
390
+ const $ = c >= 0 && e === a, p = o || l || e === P || e >= s && e <= i, h = $ ? U : null, b = e * m, y = H && H.get(e), k = y && y.$cells, O = [];
391
+ let E = 0, _ = !t.$isMeasurable(e) && null, q = e + 1, C = !1;
393
392
  for (let t = 0; t < V; t++) {
394
393
  const s = B[t], l = s < v, c = s >= T, i = l || c || s >= f && s <= u, a = X.get(b + s);
395
394
  if (a ? a.rowIndex === e && a.colIndex === s : p && i) {
396
- const i = a ? I(a, d) : e + 1, f = a ? k(a, m) : s + 1, u = i - e, p = f - s, x = u > 1, w = p > 1, h = x || w;
395
+ const i = a ? I(a, d) : e + 1, f = a ? z(a, m) : s + 1, u = i - e, p = f - s, x = u > 1, w = p > 1, h = x || w;
397
396
  let b, S;
398
- E = n(E, i);
397
+ q = n(q, i);
399
398
  const v = l ? r.$getItemOffset(s) : null, y = c ? r.$getItemOffset(m) - r.$getItemOffset(f) : null;
400
- !1 !== C || x || (b = e, C = !0), !1 !== D[t] || w || (S = s, D[t] = !0);
401
- const M = o ? "columnheader" : s === L && (l || $) ? "rowheader" : "cell", T = h ? u : void 0, R = h ? p : void 0, P = "cell" !== M && g && g.rowIndex === e && g.colIndex === s ? g.order : void 0;
399
+ !1 !== _ || x || (b = e, _ = !0), !1 !== D[t] || w || (S = s, D[t] = !0);
400
+ const M = o ? "columnheader" : s === R && (l || $) ? "rowheader" : "cell", T = h ? u : void 0, L = h ? p : void 0, P = "cell" !== M && g && g.rowIndex === e && g.colIndex === s ? g.order : void 0;
402
401
  let W;
403
- if (z) {
404
- const t = z.length;
405
- for (;_ < t && z[_].$col < s; ) _++;
406
- _ < t && z[_].$col === s && (W = z[_]);
402
+ if (k) {
403
+ const t = k.length;
404
+ for (;E < t && k[E].$col < s; ) E++;
405
+ E < t && k[E].$col === s && (W = k[E]);
407
406
  }
408
- if (!W || W.$rowSpan !== T || W.$colSpan !== R || W.$start !== v || W.$end !== y || W.$measureRow !== b || W.$measureCol !== S || W.$role !== M || W.$sort !== P) {
407
+ if (!W || W.$rowSpan !== T || W.$colSpan !== L || W.$start !== v || W.$end !== y || W.$measureRow !== b || W.$measureCol !== S || W.$role !== M || W.$sort !== P) {
409
408
  let t = "1/l" + s;
410
409
  h && (t += "/l" + i + "/l" + f);
411
410
  const e = {
@@ -418,7 +417,7 @@ exports.createContainerDriver = (t, e) => {
418
417
  e.position = "sticky", e.zIndex = 2), W = {
419
418
  $col: s,
420
419
  $rowSpan: T,
421
- $colSpan: R,
420
+ $colSpan: L,
422
421
  $measureRow: b,
423
422
  $measureCol: S,
424
423
  $role: M,
@@ -426,25 +425,25 @@ exports.createContainerDriver = (t, e) => {
426
425
  $style: e,
427
426
  $start: v,
428
427
  $end: y
429
- }, q = !0;
428
+ }, C = !0;
430
429
  }
431
430
  O.push(W);
432
431
  }
433
432
  }
434
- if (U.push(C), O.length) {
435
- const t = y && !q && y.$cells.length === O.length && y.$top === h ? y : {
433
+ if (G.push(_), O.length) {
434
+ const t = y && !C && y.$cells.length === O.length && y.$top === h ? y : {
436
435
  $row: e,
437
436
  $cells: O,
438
- $style: M(e, E, h, "top", 3),
437
+ $style: M(e, q, h, "top", 3),
439
438
  $top: h
440
439
  };
441
- K.set(e, t), G.push(t);
440
+ K.set(e, t), F.push(t);
442
441
  }
443
442
  }
444
443
  return h.set(t, K), {
445
- $rowTemplate: z(t, A, U, c(Y), "max-content", d),
446
- $colTemplate: z(r, B, D, c(j), "minmax(max-content,auto)", m),
447
- $groups: F
444
+ $rowTemplate: k(t, A, G, c(Y), "max-content", d),
445
+ $colTemplate: k(r, B, D, c(j), "minmax(max-content,auto)", m),
446
+ $groups: Z
448
447
  };
449
448
  }, exports.createGridSpanIndex = (t = e) => {
450
449
  const o = /* @__PURE__ */ new Map;
@@ -503,19 +502,96 @@ exports.createContainerDriver = (t, e) => {
503
502
  $isEstimating: () => f,
504
503
  $snapshot: () => [ $.slice(), s ]
505
504
  };
505
+ }, exports.createMasonryLayout = (t, e, r = 0, s, l) => {
506
+ let i = n(e, 1), f = i, u = r, a = l && l[1] || s || 40, $ = -1, p = s ? void 0 : /* @__PURE__ */ new Set, g = !s;
507
+ const d = l && l[0], w = d ? m(d.slice(0, o(t, d.length)), n(0, t - d.length)) : m([], t), h = [], b = [], S = [], v = t => {
508
+ const e = w[t];
509
+ return -1 === e ? a : e;
510
+ }, y = e => {
511
+ if (e = o(e, t - 1), $ >= e) return;
512
+ const s = [], l = [];
513
+ for (let t = 0; t < i; t++) s.push(0), l.push(-1);
514
+ for (let t = $, e = i; t >= 0 && e; t--) {
515
+ const o = b[t];
516
+ -1 === l[o] && (l[o] = t, s[o] = h[t] + v(t), e--);
517
+ }
518
+ for (;$ < e; ) {
519
+ const t = ++$;
520
+ let e = 0, o = 1 / 0, c = 1 / 0;
521
+ for (let t = 0; t < i; t++) {
522
+ const n = s[t] + (l[t] >= 0 ? r : 0);
523
+ (n < o || n === o && l[t] < c) && (e = t, o = n, c = l[t]);
524
+ }
525
+ h[t] = o, b[t] = e, s[e] = o + v(t), l[e] = t, S[t] = n(t ? S[t - 1] : 0, s[e]);
526
+ }
527
+ }, I = e => e >= t ? k() : (y(e), h[e]), z = t => (y(t), S[t]), k = () => t ? z(t - 1) : 0, M = e => {
528
+ if (!t) return 0;
529
+ const o = x(z, t, e);
530
+ return z(o) <= e ? o + 1 : o;
531
+ };
532
+ return {
533
+ $getRange: (e, n) => {
534
+ const r = x(I, t, n);
535
+ return [ o(M(e), r), r ];
536
+ },
537
+ $findIndex: e => x(I, t, e),
538
+ $getItemOffset: I,
539
+ $getItemSize: v,
540
+ $isSizeEqual: (t, e = -1) => w[t] === e,
541
+ $resize: (e, n, s, l) => {
542
+ let f = M(s);
543
+ for (;f > 0 && !n(f - 1); ) f--;
544
+ for (;f < t && n(f); ) f++;
545
+ const u = I(f);
546
+ for (const [t, n] of e) w[t] = n, p && p.add(t), $ = o(t - 1, $);
547
+ let d = I(f) - u;
548
+ if (p && l) {
549
+ const t = [];
550
+ let e = 0;
551
+ if (p.forEach(o => {
552
+ const n = w[o];
553
+ n > 0 && (t.push(n), e += n + r);
554
+ }), e > l * i) {
555
+ c(t);
556
+ const e = t.length, o = e / 2 | 0, n = e % 2 == 0 ? (t[o - 1] + t[o]) / 2 : t[o], r = M(s + d), l = I(r);
557
+ a = n, $ = -1, d += I(r) - l, p = void 0, g = !1;
558
+ }
559
+ }
560
+ return d;
561
+ },
562
+ $getTotalSize: k,
563
+ $getLength: () => t,
564
+ $setLength: e => {
565
+ const n = e - t;
566
+ return $ = o(e - 1, $), t = e, n > 0 ? m(w, n) : w.splice(n), 0;
567
+ },
568
+ $relayout: (t, e) => {
569
+ if (f === i && u === r) return;
570
+ const o = M(e), n = I(o);
571
+ return i = f, r = u, $ = -1, p = s ? void 0 : /* @__PURE__ */ new Set, I(o) - n;
572
+ },
573
+ $setOptions: (t, e = 0) => {
574
+ f = n(t, 1), u = e;
575
+ },
576
+ $isEstimating: () => g,
577
+ $snapshot: () => [ w.slice(), a ],
578
+ $getLanes: () => i,
579
+ $getGap: () => r,
580
+ $getItemLane: t => (y(t), b[t])
581
+ };
506
582
  }, exports.createVirtualStore = ({$getRange: t, $findIndex: e, $getItemOffset: s, $getItemSize: l, $isSizeEqual: c, $getTotalSize: i, $getLength: f, $setLength: u, $isEstimating: a, $resize: $, $relayout: p}, g = 0) => {
507
- let m = !!g, x = 1, w = 0, h = 0, b = 0, S = 0, v = 0, y = 0, I = 0, k = 0, z = null, M = [ 0, m ? n(g - 1, 0) : -1 ], T = !1;
508
- const R = /* @__PURE__ */ new Set, L = () => b - h, O = () => L() + v + S, _ = t => s(t) - v, C = t => {
509
- if (2 === k) return !0;
510
- if (z && 1 === k) return t < z[0];
511
- const e = L(), o = _(t), n = l(t);
512
- return 1 !== I && 0 === k ? o + n <= e : o < e && o + n < e + w;
513
- }, E = t => {
514
- t && (d() && 0 !== I || z && 1 === k ? v += t : S += t);
583
+ let m = !!g, x = 1, w = 0, h = 0, b = 0, S = 0, v = 0, y = 0, I = 0, z = 0, k = null, M = [ 0, m ? n(g - 1, 0) : -1 ], T = !1;
584
+ const L = /* @__PURE__ */ new Set, R = () => b - h, O = () => R() + v + S, E = t => s(t) - v, _ = t => {
585
+ if (2 === z) return !0;
586
+ if (k && 1 === z) return t < k[0];
587
+ const e = R(), o = E(t), n = l(t);
588
+ return 1 !== I && 0 === z ? o + n <= e : o < e && o + n < e + w;
589
+ }, q = t => {
590
+ t && (d() && 0 !== I || k && 1 === z ? v += t : S += t);
515
591
  };
516
592
  return {
517
593
  $dispose: () => {
518
- R.clear();
594
+ L.clear();
519
595
  },
520
596
  $getStateVersion: () => x,
521
597
  $getRange: (e = 200) => {
@@ -524,13 +600,13 @@ exports.createContainerDriver = (t, e) => {
524
600
  if (y) [r, s] = M; else {
525
601
  let l = n(0, O()), c = l + w;
526
602
  a() || (e = n(0, e), 1 !== I && (l -= e), 2 !== I && (c += e)), [r, s] = M = t(n(0, l), n(0, c)),
527
- z && (r = o(r, z[0]), s = n(s, z[1]));
603
+ k && (r = o(r, k[0]), s = n(s, k[1]));
528
604
  }
529
605
  return [ n(r, 0), o(s, f() - 1) ];
530
606
  },
531
607
  $findItemIndex: t => e(t - h),
532
608
  $isUnmeasuredItem: c,
533
- $getItemOffset: _,
609
+ $getItemOffset: E,
534
610
  $getItemSize: l,
535
611
  $getItemsLength: f,
536
612
  $getScrollOffset: () => b,
@@ -538,11 +614,11 @@ exports.createContainerDriver = (t, e) => {
538
614
  $getViewportSize: () => w,
539
615
  $getStartSpacerSize: () => h,
540
616
  $getTotalSize: i,
541
- $: () => (y = S, S = 0, [ y, 2 === k ]),
617
+ $: () => (y = S, S = 0, [ y, 2 === z ]),
542
618
  $subscribe: (t, e) => {
543
619
  const o = [ t, e ];
544
- return R.add(o), () => {
545
- R.delete(o);
620
+ return L.add(o), () => {
621
+ L.delete(o);
546
622
  };
547
623
  },
548
624
  $update: (e, o) => {
@@ -550,25 +626,25 @@ exports.createContainerDriver = (t, e) => {
550
626
  switch (e) {
551
627
  case 1:
552
628
  {
553
- if (o === b && 0 === k) break;
629
+ if (o === b && 0 === z) break;
554
630
  const t = y;
555
631
  y = 0;
556
632
  const e = o - b, n = r(e);
557
- t && n < r(t) + 1 || 0 !== k || (I = e < 0 ? 2 : 1), m && (m = !1), b = o, l = 4;
558
- const c = L();
633
+ t && n < r(t) + 1 || 0 !== z || (I = e < 0 ? 2 : 1), m && (m = !1), b = o, l = 4;
634
+ const c = R();
559
635
  c >= -w && c <= i() && (l += 1, s = n > w);
560
636
  break;
561
637
  }
562
638
 
563
639
  case 2:
564
- l = 8, 0 !== I && (n = !0, l += 1), I = 0, k = 0, z = null;
640
+ l = 8, 0 !== I && (n = !0, l += 1), I = 0, z = 0, k = null;
565
641
  break;
566
642
 
567
643
  case 3:
568
644
  {
569
645
  const t = o.filter(([t, e]) => !c(t, e));
570
646
  if (!t.length) break;
571
- E($(t, C, O(), w)), l = 3, s = !0;
647
+ q($(t, _, O(), w)), l = 3, s = !0;
572
648
  break;
573
649
  }
574
650
 
@@ -577,7 +653,7 @@ exports.createContainerDriver = (t, e) => {
577
653
  break;
578
654
 
579
655
  case 5:
580
- o[1] ? (E(u(o[0], !0)), k = 2, l = 1) : (u(o[0]), l = 1);
656
+ o[1] ? (q(u(o[0], !0)), z = 2, l = 1) : (u(o[0]), l = 1);
581
657
  break;
582
658
 
583
659
  case 6:
@@ -585,20 +661,20 @@ exports.createContainerDriver = (t, e) => {
585
661
  break;
586
662
 
587
663
  case 7:
588
- k = 1;
664
+ z = 1;
589
665
  break;
590
666
 
591
667
  case 9:
592
668
  {
593
669
  const t = p(o, O());
594
- null != t && (E(t), l = 3);
670
+ null != t && (q(t), l = 3);
595
671
  break;
596
672
  }
597
673
 
598
674
  case 8:
599
- z = t(o, o + w), l = 1;
675
+ k = t(o, o + w), l = 1;
600
676
  }
601
- l && (x = 1 + (2147483647 & x), n && v && (S += v, v = 0), R.forEach(([t, e]) => {
677
+ l && (x = 1 + (2147483647 & x), n && v && (S += v, v = 0), L.forEach(([t, e]) => {
602
678
  l & t && e(s);
603
679
  }));
604
680
  }
@@ -623,7 +699,7 @@ exports.createContainerDriver = (t, e) => {
623
699
  };
624
700
  a.addEventListener("resize", w), f.t($), r = () => {
625
701
  a.removeEventListener("resize", w);
626
- }, n = R(t, a, $, e, d, null, x), c[1](!0);
702
+ }, n = L(t, a, $, e, d, null, x), c[1](!0);
627
703
  },
628
704
  $dispose() {
629
705
  r && r(), f.l(), n && n.l(), c[1](!1), c = a();
@@ -658,8 +734,8 @@ exports.getScrollSize = t => n(t.$getTotalSize(), t.$getViewportSize()), exports
658
734
  for (const o in t) e += o.replace(/[A-Z]/g, t => "-" + t.toLowerCase()) + ":" + t[o] + ";";
659
735
  return e;
660
736
  }, exports.isBrowser = $, exports.microtask = u, exports.scrollBy = (t, e, o) => {
661
- L(t, o + e.$getScrollOffset());
662
- }, exports.scrollTo = L, exports.scrollToIndex = (t, e, o, {align: n, smooth: r, offset: s = 0} = {}) => {
737
+ R(t, o + e.$getScrollOffset());
738
+ }, exports.scrollTo = R, exports.scrollToIndex = (t, e, o, {align: n, smooth: r, offset: s = 0} = {}) => {
663
739
  if (o = l(o, 0, e.$getItemsLength() - 1), "nearest" === n) {
664
740
  const t = e.$getItemOffset(o), r = e.$getScrollOffset();
665
741
  if (t < r) n = "start"; else {