virtua 0.52.0 → 0.52.2

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.js CHANGED
@@ -6,9 +6,9 @@ var e, t = [], {min: n, max: o, abs: s, floor: r} = Math, l = (e, t, s) => n(s,
6
6
  e = t;
7
7
  }), e ];
8
8
  }, $ = "undefined" != typeof window, g = e => e.ownerDocument, d = e => e.defaultView, m = () => (null == e && (e = /iP(hone|od|ad)/.test(navigator.userAgent) || "MacIntel" === navigator.platform && navigator.maxTouchPoints > 0),
9
- e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewportSize()), I = ({$getRange: e, $findIndex: t, $getItemOffset: r, $getItemSize: l, $setItemSize: i, $isSizeEqual: c, $getTotalSize: f, $getLength: a, $setLength: u, $estimateDefaultSize: $}, g = 0) => {
10
- let d = !!$, p = !!g, h = 1, w = 0, b = 0, S = 0, v = 0, I = 0, x = 0, y = 0, z = 0, k = null, M = [ 0, p ? o(g - 1, 0) : -1 ], T = 0, L = !1;
11
- const R = /* @__PURE__ */ new Set, O = () => S - b, _ = () => O() + I + v, q = e => r(e) - I, A = e => {
9
+ e), p = 5, h = 6, S = 1, w = 4, b = 8, v = e => o(e.$getTotalSize(), e.$getViewportSize()), I = ({$getRange: e, $findIndex: t, $getItemOffset: r, $getItemSize: l, $setItemSize: i, $isSizeEqual: c, $getTotalSize: f, $getLength: a, $setLength: u, $estimateDefaultSize: $}, g = 0) => {
10
+ let d = !!$, p = !!g, h = 1, S = 0, w = 0, b = 0, v = 0, I = 0, x = 0, y = 0, z = 0, k = null, T = [ 0, p ? o(g - 1, 0) : -1 ], M = 0, L = !1;
11
+ const R = /* @__PURE__ */ new Set, O = () => b - w, P = () => O() + I + v, _ = e => r(e) - I, q = e => {
12
12
  e && (m() && 0 !== y || k && 1 === z ? I += e : v += e);
13
13
  };
14
14
  return {
@@ -17,24 +17,24 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
17
17
  },
18
18
  $getStateVersion: () => h,
19
19
  $getRange: (t = 200) => {
20
- if (!L || p) return M;
20
+ if (!L || p) return T;
21
21
  let s, r;
22
- if (x) [s, r] = M; else {
23
- let l = o(0, _()), i = l + w;
24
- d || (t = o(0, t), 1 !== y && (l -= t), 2 !== y && (i += t)), [s, r] = M = e(o(0, l), o(0, i)),
22
+ if (x) [s, r] = T; else {
23
+ let l = o(0, P()), i = l + S;
24
+ d || (t = o(0, t), 1 !== y && (l -= t), 2 !== y && (i += t)), [s, r] = T = e(o(0, l), o(0, i)),
25
25
  k && (s = n(s, k[0]), r = o(r, k[1]));
26
26
  }
27
27
  return [ o(s, 0), n(r, a() - 1) ];
28
28
  },
29
- $findItemIndex: e => t(e - b),
29
+ $findItemIndex: e => t(e - w),
30
30
  $isUnmeasuredItem: c,
31
- $getItemOffset: q,
31
+ $getItemOffset: _,
32
32
  $getItemSize: l,
33
33
  $getItemsLength: a,
34
- $getScrollOffset: () => S,
34
+ $getScrollOffset: () => b,
35
35
  $isScrolling: () => 0 !== y,
36
- $getViewportSize: () => w,
37
- $getStartSpacerSize: () => b,
36
+ $getViewportSize: () => S,
37
+ $getStartSpacerSize: () => w,
38
38
  $getTotalSize: f,
39
39
  t: () => (x = v, v = 0, [ x, 2 === z ]),
40
40
  $subscribe: (e, t) => {
@@ -48,13 +48,13 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
48
48
  switch (n) {
49
49
  case 1:
50
50
  {
51
- if (o === S && 0 === z) break;
51
+ if (o === b && 0 === z) break;
52
52
  const e = x;
53
53
  x = 0;
54
- const t = o - S, n = s(t);
55
- e && n < s(e) + 1 || 0 !== z || (y = t < 0 ? 2 : 1), p && (p = !1), S = o, g = 4;
54
+ const t = o - b, n = s(t);
55
+ e && n < s(e) + 1 || 0 !== z || (y = t < 0 ? 2 : 1), p && (p = !1), b = o, g = 4;
56
56
  const r = O();
57
- r >= -w && r <= f() && (g += 1, a = n > w);
57
+ r >= -S && r <= f() && (g += 1, a = n > S);
58
58
  break;
59
59
  }
60
60
 
@@ -66,32 +66,32 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
66
66
  {
67
67
  const e = o.filter(([e, t]) => !c(e, t));
68
68
  if (!e.length) break;
69
- A(e.reduce((e, [t, n]) => {
69
+ q(e.reduce((e, [t, n]) => {
70
70
  let o;
71
71
  if (2 === z) o = !0; else if (k && 1 === z) o = t < k[0]; else {
72
- const e = O(), n = q(t), s = l(t);
73
- o = 1 !== y && 0 === z ? n + s <= e : n < e && n + s < e + w;
72
+ const e = O(), n = _(t), s = l(t);
73
+ o = 1 !== y && 0 === z ? n + s <= e : n < e && n + s < e + S;
74
74
  }
75
75
  return o && (e += n - l(t)), e;
76
76
  }, 0));
77
77
  for (const [t, n] of e) {
78
78
  const e = l(t), o = i(t, n);
79
- d && (T += o ? n : n - e);
79
+ d && (M += o ? n : n - e);
80
80
  }
81
- d && w && T > w && (A($(t(_()))), d = !1), g = 3, a = !0;
81
+ d && S && M > S && (q($(t(P()))), d = !1), g = 3, a = !0;
82
82
  break;
83
83
  }
84
84
 
85
85
  case 4:
86
- w !== o && (w || (L = a = !0), w = o, g = 3);
86
+ S !== o && (S || (L = a = !0), S = o, g = 3);
87
87
  break;
88
88
 
89
89
  case 5:
90
- o[1] ? (A(u(o[0], !0)), z = 2, g = 1) : (u(o[0]), g = 1);
90
+ o[1] ? (q(u(o[0], !0)), z = 2, g = 1) : (u(o[0]), g = 1);
91
91
  break;
92
92
 
93
93
  case 6:
94
- b = o;
94
+ w = o;
95
95
  break;
96
96
 
97
97
  case 7:
@@ -99,11 +99,11 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
99
99
  break;
100
100
 
101
101
  case 9:
102
- A(o), g = 3;
102
+ q(o), g = 3;
103
103
  break;
104
104
 
105
105
  case 8:
106
- k = e(o, o + w), g = 1;
106
+ k = e(o, o + S), g = 1;
107
107
  }
108
108
  g && (h = 1 + (2147483647 & h), r && I && (v += I, I = 0), R.forEach(([e, t]) => {
109
109
  g & e && t(a);
@@ -166,75 +166,88 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
166
166
  },
167
167
  $snapshot: () => [ a.slice(), r ]
168
168
  };
169
- }, k = e => "number" == typeof e ? e : e.length, M = (e, t) => "number" == typeof e ? t : e[t], T = (e, t, n = 0) => {
169
+ }, k = e => "number" == typeof e ? e : e.length, T = (e, t) => "number" == typeof e ? t : e[t], M = (e, t, s = 0) => {
170
+ let i = 0, c = 0;
171
+ const f = (e = 0, t = 0) => {
172
+ i = e, c = t;
173
+ }, a = e => n(i, e), u = e => o(e - c, a(e)), $ = (e, t, n, r, l) => {
174
+ const i = t(a(n)), c = t(n) - t(u(n)), f = r + (i ? i - s : 0);
175
+ return e(f, o(f, l - (c ? c - s : 0)));
176
+ };
170
177
  if ("number" == typeof t) {
171
- let o = k(e), s = t;
172
- const i = e => s + n ? l(r(e / (s + n)), 0, o - 1) : 0;
178
+ let n = k(e), o = t;
179
+ const i = e => o + s ? l(r(e / (o + s)), 0, n - 1) : 0, c = e => e * (o + s), g = (e, t) => [ i(e), i(t) ];
173
180
  return {
174
- $getRange: (e, t) => [ i(e), i(t) ],
181
+ $getRange: (e, t) => $(g, c, n, e, t),
175
182
  $findIndex: i,
176
- $getItemOffset: e => e * (s + n),
177
- $getItemSize: () => s,
183
+ $getItemOffset: c,
184
+ $getItemSize: () => o,
178
185
  $setItemSize: () => !1,
179
186
  $isSizeEqual: () => !1,
180
- $getTotalSize: () => o ? o * (s + n) - n : 0,
181
- $getLength: () => o,
182
- $setLength: e => (o = e, 0),
187
+ $getTotalSize: () => n ? n * (o + s) - s : 0,
188
+ $getLength: () => n,
189
+ $setLength: e => (n = e, 0),
183
190
  $isMeasurable: () => !1,
191
+ $setPinned: f,
192
+ $getPinnedStart: () => a(n),
193
+ $getTrailStart: () => u(n),
184
194
  $setAxis: (e, t, n) => {
185
- if ("number" != typeof t || t === s) return;
186
- const o = i(n) * (t - s);
187
- return s = t, o;
195
+ if ("number" != typeof t || t === o) return;
196
+ const s = i(n) * (t - o);
197
+ return o = t, s;
188
198
  }
189
199
  };
190
200
  }
191
- const o = "auto" === t;
192
- let s, i = t;
193
- const c = k(e), f = [], a = z(c, void 0, [ [], 40 + n ]), u = e => o || !!f[e], $ = {
194
- $getRange: a.$getRange,
195
- $findIndex: a.$findIndex,
196
- $getItemOffset: a.$getItemOffset,
197
- $getItemSize: e => a.$getItemSize(e) - n,
198
- $setItemSize: (e, t) => u(e) && a.$setItemSize(e, t + n),
199
- $isSizeEqual: (e, t) => a.$isSizeEqual(e, t + n),
200
- $getTotalSize: () => a.$getLength() ? a.$getTotalSize() - n : 0,
201
- $getLength: a.$getLength,
202
- $setLength: a.$setLength,
203
- $estimateDefaultSize: o ? a.$estimateDefaultSize : void 0,
204
- $isMeasurable: u,
205
- $setAxis: (e, t, r, l) => {
206
- if (o) return;
207
- const c = "number" == typeof t || "auto" === t ? i : t, u = a.$getLength();
208
- if (!l && e === s && c === i && u === f.length) return;
209
- s = e, i = c, f.length = u;
210
- const $ = a.$findIndex(r), g = a.$getItemOffset($);
211
- let d;
212
- for (let t = 0; t < u; t++) {
213
- const o = e[t], s = null !== o && "object" == typeof o ? o[c] : null, r = "number" != typeof s;
214
- if (!r || !f[t]) {
215
- f[t] = r;
216
- const e = r ? -1 : s + n;
217
- a.$isSizeEqual(t, e) || (a.$setItemSize(t, e), d = !0);
201
+ const g = "auto" === t;
202
+ let d, m = t;
203
+ const p = k(e), h = [], S = z(p, void 0, [ [], 40 + s ]), w = e => g || !!h[e], b = {
204
+ $getRange: (e, t) => $(S.$getRange, S.$getItemOffset, S.$getLength(), e, t),
205
+ $findIndex: S.$findIndex,
206
+ $getItemOffset: S.$getItemOffset,
207
+ $getItemSize: e => S.$getItemSize(e) - s,
208
+ $setItemSize: (e, t) => w(e) && S.$setItemSize(e, t + s),
209
+ $isSizeEqual: (e, t) => S.$isSizeEqual(e, t + s),
210
+ $getTotalSize: () => S.$getLength() ? S.$getTotalSize() - s : 0,
211
+ $getLength: S.$getLength,
212
+ $setLength: S.$setLength,
213
+ $estimateDefaultSize: g ? S.$estimateDefaultSize : void 0,
214
+ $isMeasurable: w,
215
+ $setPinned: f,
216
+ $getPinnedStart: () => a(S.$getLength()),
217
+ $getTrailStart: () => u(S.$getLength()),
218
+ $setAxis: (e, t, n, o) => {
219
+ if (g) return;
220
+ const r = "number" == typeof t || "auto" === t ? m : t, l = S.$getLength();
221
+ if (!o && e === d && r === m && l === h.length) return;
222
+ d = e, m = r, h.length = l;
223
+ const i = S.$findIndex(n), c = S.$getItemOffset(i);
224
+ let f;
225
+ for (let t = 0; t < l; t++) {
226
+ const n = e[t], o = null !== n && "object" == typeof n ? n[r] : null, l = "number" != typeof o;
227
+ if (!l || !h[t]) {
228
+ h[t] = l;
229
+ const e = l ? -1 : o + s;
230
+ S.$isSizeEqual(t, e) || (S.$setItemSize(t, e), f = !0);
218
231
  }
219
232
  }
220
- return d ? a.$getItemOffset($) - g : void 0;
233
+ return f ? S.$getItemOffset(i) - c : void 0;
221
234
  }
222
235
  };
223
- return $.$setAxis(e, t, 0), $;
224
- }, L = (e, t, n, o, s) => {
225
- const r = k(n);
226
- r !== e.$getItemsLength() && e.$update(5, [ r ]);
227
- const l = t.$setAxis(n, o, e.$getScrollOffset() - e.$getItemOffset(0), s);
228
- null != l && e.$update(9, l);
236
+ return b.$setAxis(e, t, 0), b;
237
+ }, L = (e, t, n, o, s, r, l) => {
238
+ const i = k(n);
239
+ t.$setPinned(s, r), i !== e.$getItemsLength() && e.$update(5, [ i ]);
240
+ const c = t.$setAxis(n, o, e.$getScrollOffset() - e.$getItemOffset(0), l);
241
+ null != c && e.$update(9, c);
229
242
  }, R = /*#__PURE__*/ new WeakMap, O = (e, t, s, r, l, i, c) => {
230
243
  if (t < r || o(t, l) < n(s, i + 1) || c < s) return !0;
231
244
  for (const n of e) if (n >= t && n < s) return !0;
232
245
  return !1;
233
- }, _ = (e, t, n) => {
246
+ }, P = (e, t, n) => {
234
247
  const o = [];
235
248
  for (const s of e) s >= t && s < n && o.push(s);
236
249
  return i(o);
237
- }, q = (e, t, n) => {
250
+ }, _ = (e, t, n) => {
238
251
  if (t >= n) return -1;
239
252
  let o = 0, s = e.length;
240
253
  for (;o < s; ) {
@@ -242,150 +255,155 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
242
255
  e[n] <= t ? o = n + 1 : s = n;
243
256
  }
244
257
  return o - 1;
245
- }, A = (e, t, n, o) => {
246
- const s = q(t, n, o);
258
+ }, q = (e, t, n, o) => {
259
+ const s = _(t, n, o);
247
260
  s >= 0 && e.push(t[s]);
261
+ }, A = (e, t, n, o, s) => {
262
+ const r = t.length;
263
+ for (;n < r && t[n] < o; n++) {
264
+ const o = t[n];
265
+ o > s && (e.push(o), s = o);
266
+ }
267
+ return n;
248
268
  }, C = (e, t, n, o, s, r) => {
249
269
  const l = [];
250
270
  for (let e = 0; e < n; e++) l.push(e);
251
- const i = e.length;
252
- let c = 0, f = n - 1;
253
- for (;c < i && e[c] < o; c++) {
254
- const t = e[c];
255
- t > f && (l.push(t), f = t);
256
- }
271
+ const i = A(l, e, 0, o, n - 1);
257
272
  for (let e = o; e <= s; e++) l.push(e);
258
- for (f = s; c < i && e[c] < r; c++) {
259
- const t = e[c];
260
- t > f && (l.push(t), f = t);
261
- }
273
+ A(l, e, i, r, s);
262
274
  for (let e = r; e < t; e++) l.push(e);
263
275
  return l;
264
276
  }, W = (e, t) => n(e.rowIndex + (e.rowSpan || 1), t), D = (e, t) => n(e.colIndex + (e.colSpan || 1), t), E = (e, t, o, s, r, l) => {
265
277
  const i = t.length, c = s.length;
266
278
  let f = "[l0]", a = 0, u = 0, $ = 0;
267
- for (;u < i || $ < c; ) {
268
- const g = u < i ? t[u] : l, d = $ < c ? s[$] : l;
269
- if (d <= a) $++; else {
270
- let t, s;
271
- if (g === a) {
272
- t = a + 1;
273
- const n = o[u];
274
- s = null == n ? e.$getItemSize(a) + "px" : n ? r : "minmax(" + e.$getItemSize(a) + "px,auto)",
275
- u++;
276
- } else t = n(g, d), s = "minmax(" + (e.$getItemOffset(t - 1) + e.$getItemSize(t - 1) - e.$getItemOffset(a)) + "px,auto)";
277
- f += " " + s + " [l" + t + "]", a = t;
278
- }
279
+ for (;a < l; ) {
280
+ for (;$ < c && s[$] <= a; ) $++;
281
+ const g = u < i ? t[u] : l;
282
+ let d, m;
283
+ if (g === a) {
284
+ d = a + 1;
285
+ const t = o[u];
286
+ m = null == t ? e.$getItemSize(a) + "px" : t ? r : "minmax(" + e.$getItemSize(a) + "px,auto)",
287
+ u++;
288
+ } else d = n(g, $ < c ? s[$] : l), m = "minmax(" + (e.$getItemOffset(d - 1) + e.$getItemSize(d - 1) - e.$getItemOffset(a)) + "px,auto)";
289
+ f += " " + m + " [l" + d + "]", a = d;
279
290
  }
280
- return a < l && (f += " minmax(" + (e.$getTotalSize() - e.$getItemOffset(a)) + "px,auto) [l" + l + "]"),
281
- f;
282
- }, P = e => {
291
+ return f;
292
+ }, B = e => {
283
293
  let t = "";
284
294
  for (const n in e) t += n.replace(/[A-Z]/g, e => "-" + e.toLowerCase()) + ":" + e[n] + ";";
285
295
  return t;
286
- }, B = (e, s, r, c, f = 0, a = t, u = 0, $ = 0, g = 0, d = t, m = t, p) => {
287
- const h = e.$getLength(), w = s.$getLength(), b = n(f, h), S = o(h - u, b), v = n($, w), I = o(w - g, v), x = l(r[0], b, S), y = n(r[1], S - 1), z = l(c[0], v, I), k = n(c[1], I - 1), M = _(a, b, S), T = o(v - 1, 0), L = [], P = [], B = [];
288
- for (const e of m) e.rowIndex < h && e.colIndex < w && B.push(e);
289
- const V = M.length;
290
- V && (A(L, M, x, S), P.push(T));
291
- let X = d, Y = 0;
296
+ }, J = (e, s, r, c, f = t, a = t, u = t, $) => {
297
+ const g = e.$getLength(), d = s.$getLength(), m = e.$getPinnedStart(), p = e.$getTrailStart(), h = s.$getPinnedStart(), S = s.$getTrailStart(), w = l(r[0], m, p), b = n(r[1], p - 1), v = l(c[0], h, S), I = n(c[1], S - 1), x = P(f, m, p), y = o(h - 1, 0), z = [], k = [], T = [];
298
+ for (const e of u) e.rowIndex < g && e.colIndex < d && T.push(e);
299
+ const M = x.length;
300
+ M && (q(z, x, w, p), k.push(y));
301
+ let L = a, A = 0;
292
302
  do {
293
- for (;Y < B.length; Y++) {
294
- const {rowIndex: e, colIndex: t} = B[Y];
295
- L.push(e), A(L, M, e, S), P.push(t);
303
+ for (;A < T.length; A++) {
304
+ const {rowIndex: e, colIndex: t} = T[A];
305
+ z.push(e), q(z, x, e, p), k.push(t);
296
306
  }
297
307
  const e = [];
298
- for (const t of X) {
299
- const n = t.rowIndex, o = t.colIndex, s = W(t, h), r = D(t, w);
300
- if (n < h && o < w && (s - n > 1 || r - o > 1)) if (O(L, n, s, b, x, y, S)) if (O(P, o, r, v, z, k, I)) B.push(t); else {
301
- const o = q(M, s - 1, S);
302
- (n < b || o >= 0 && M[o] >= n) && e.push(t);
303
- } else o < v && e.push(t);
308
+ for (const t of L) {
309
+ const n = t.rowIndex, o = t.colIndex, s = W(t, g), r = D(t, d);
310
+ if (n < g && o < d && (s - n > 1 || r - o > 1)) {
311
+ const l = O(z, n, s, m, w, b, p);
312
+ if (l && O(k, o, r, h, v, I, S)) T.push(t); else if (l) {
313
+ const o = _(x, s - 1, p);
314
+ (n < m || o >= 0 && x[o] >= n) && e.push(t);
315
+ } else o < h && e.push(t);
316
+ }
304
317
  }
305
- X = e;
306
- } while (Y < B.length);
307
- i(L), i(P);
308
- const j = C(L, h, b, x, y, S), U = C(P, w, v, z, k, I), Z = j.length, F = U.length, G = /* @__PURE__ */ new Map, H = [], K = [];
309
- for (const e of B) {
310
- const t = W(e, h), n = D(e, w);
311
- H.push(t), K.push(n);
312
- const o = U.indexOf(e.colIndex);
313
- for (let s = j.indexOf(e.rowIndex); s < Z && j[s] < t; s++) {
314
- const t = j[s] * w;
315
- for (let s = o; s < F && U[s] < n; s++) G.set(t + U[s], e);
318
+ L = e;
319
+ } while (A < T.length);
320
+ i(z), i(k);
321
+ const B = C(z, g, m, w, b, p), J = C(k, d, h, v, I, S), X = B.length, Y = J.length, j = /* @__PURE__ */ new Map, U = [], Z = [];
322
+ for (const e of T) {
323
+ const t = W(e, g), n = D(e, d);
324
+ U.push(t), Z.push(n);
325
+ const o = J.indexOf(e.colIndex);
326
+ for (let s = B.indexOf(e.rowIndex); s < X && B[s] < t; s++) {
327
+ const t = B[s] * d;
328
+ for (let s = o; s < Y && J[s] < n; s++) j.set(t + J[s], e);
316
329
  }
317
330
  }
318
- const N = [];
319
- for (const e of U) N.push(!s.$isMeasurable(e) && null);
320
- const Q = [], ee = e.$getItemOffset(b), te = [];
321
- let ne = te;
322
- const oe = R.get(e), se = /* @__PURE__ */ new Map;
323
- for (const t of j) {
324
- const n = t < b, r = t >= S, l = r || t >= x && t <= y, i = q(M, t, S), c = n ? 0 : r ? S : i < 0 ? -1 : M[i];
331
+ const F = [];
332
+ for (const e of J) F.push(!s.$isMeasurable(e) && null);
333
+ const G = [], H = e.$getItemOffset(m), K = [];
334
+ let N = K;
335
+ const Q = R.get(e), ee = /* @__PURE__ */ new Map;
336
+ for (const t of B) {
337
+ const n = t < m, r = t >= p, l = r || t >= w && t <= b, i = _(x, t, p), c = n ? 0 : r ? p : i < 0 ? -1 : x[i];
325
338
  if (t === c) {
326
- const e = n ? b : r ? h : i + 1 < V ? M[i + 1] : S;
327
- H.push(e);
339
+ const e = n ? m : r ? g : i + 1 < M ? x[i + 1] : p;
340
+ U.push(e);
328
341
  const t = [];
329
- te.push({
342
+ K.push({
330
343
  $key: n ? -1 : r ? -2 : -3 - c,
331
344
  $rows: t,
332
- $style: J(c, e, n || r ? 0 : null, r ? "bottom" : "top", 4)
333
- }), ne = t;
334
- } else c < 0 && (ne = te);
335
- const f = i >= 0 && t === c, a = f ? ee : null, u = t * w, $ = oe && oe.get(t), g = $ && $.$cells, d = [];
336
- let m = 0, L = !e.$isMeasurable(t) && null, R = t + 1, O = !1;
337
- for (let e = 0; e < F; e++) {
338
- const r = U[e], i = r < v, c = r >= I, a = c || r >= z && r <= k, $ = G.get(u + r);
339
- if ($ ? $.rowIndex !== t || $.colIndex !== r : !(l && a || n || f || i)) continue;
340
- const b = $ ? W($, h) : t + 1, S = $ ? D($, w) : r + 1, x = b - t > 1, y = S - r > 1, M = x || y, _ = M ? b - t : void 0, q = M ? S - r : void 0;
341
- let A, C;
342
- R = o(R, b);
343
- const E = i ? s.$getItemOffset(r) : null, P = c ? s.$getTotalSize() - s.$getItemOffset(S - 1) - s.$getItemSize(S - 1) : null;
344
- !1 !== L || x || (A = t, L = !0), !1 !== N[e] || y || (C = r, N[e] = !0);
345
- const B = n ? "columnheader" : r === T && (i || f) ? "rowheader" : "cell", J = "cell" !== B && p && p.rowIndex === t && p.colIndex === r ? p.order : void 0;
346
- let V;
347
- if (g) {
348
- for (;m < g.length && g[m].$col < r; ) m++;
349
- m < g.length && (V = g[m]);
350
- }
351
- if (!V || V.$col !== r || V.$rowSpan !== _ || V.$colSpan !== q || V.$start !== E || V.$end !== P || V.$measureRow !== A || V.$measureCol !== C || V.$role !== B || V.$sort !== J) {
352
- const e = {
353
- contain: "layout style",
354
- display: "grid",
355
- gridArea: M ? "1/l" + r + "/l" + b + "/l" + S : "1/l" + r
356
- };
357
- x && (e.height = "0px", e.minHeight = "100%", e.zIndex = 1), y && (e.width = "0px",
358
- e.minWidth = "100%"), (i || c) && (i ? e.insetInlineStart = E + "px" : e.insetInlineEnd = P + "px",
359
- e.position = "sticky", e.zIndex = 2), V = {
360
- $col: r,
361
- $rowSpan: _,
362
- $colSpan: q,
363
- $measureRow: A,
364
- $measureCol: C,
365
- $role: B,
366
- $sort: J,
367
- $style: e,
368
- $start: E,
369
- $end: P
370
- }, O = !0;
345
+ $style: V(c, e, n || r ? 0 : null, r ? "bottom" : "top", 4)
346
+ }), N = t;
347
+ } else c < 0 && (N = K);
348
+ const f = i >= 0 && t === c, a = f ? H : null, u = t * d, z = Q && Q.get(t), k = z && z.$cells, T = [];
349
+ let L = 0, R = !e.$isMeasurable(t) && null, O = t + 1, P = !1;
350
+ for (let e = 0; e < Y; e++) {
351
+ const r = J[e], i = r < h, c = r >= S, a = c || r >= v && r <= I, m = j.get(u + r);
352
+ if (m ? m.rowIndex === t && m.colIndex === r : l && a || n || f || i) {
353
+ const l = m ? W(m, g) : t + 1, a = m ? D(m, d) : r + 1, u = l - t, p = a - r, h = u > 1, S = p > 1, w = h || S;
354
+ let b, v;
355
+ O = o(O, l);
356
+ const I = i ? s.$getItemOffset(r) : null, x = c ? s.$getTotalSize() - s.$getItemOffset(a - 1) - s.$getItemSize(a - 1) : null;
357
+ !1 !== R || h || (b = t, R = !0), !1 !== F[e] || S || (v = r, F[e] = !0);
358
+ const z = n ? "columnheader" : r === y && (i || f) ? "rowheader" : "cell", M = w ? u : void 0, _ = w ? p : void 0, q = "cell" !== z && $ && $.rowIndex === t && $.colIndex === r ? $.order : void 0;
359
+ let A;
360
+ if (k) {
361
+ const e = k.length;
362
+ for (;L < e && k[L].$col < r; ) L++;
363
+ L < e && k[L].$col === r && (A = k[L]);
364
+ }
365
+ if (!A || A.$rowSpan !== M || A.$colSpan !== _ || A.$start !== I || A.$end !== x || A.$measureRow !== b || A.$measureCol !== v || A.$role !== z || A.$sort !== q) {
366
+ let e = "1/l" + r;
367
+ w && (e += "/l" + l + "/l" + a);
368
+ const t = {
369
+ contain: "layout style",
370
+ display: "grid",
371
+ gridArea: e
372
+ };
373
+ h && (t.height = "0px", t.minHeight = "100%", t.zIndex = 1), S && (t.width = "0px",
374
+ t.minWidth = "100%"), (i || c) && (t[i ? "insetInlineStart" : "insetInlineEnd"] = (i ? I : x) + "px",
375
+ t.position = "sticky", t.zIndex = 2), A = {
376
+ $col: r,
377
+ $rowSpan: M,
378
+ $colSpan: _,
379
+ $measureRow: b,
380
+ $measureCol: v,
381
+ $role: z,
382
+ $sort: q,
383
+ $style: t,
384
+ $start: I,
385
+ $end: x
386
+ }, P = !0;
387
+ }
388
+ T.push(A);
371
389
  }
372
- d.push(V);
373
390
  }
374
- if (Q.push(L), !d.length) continue;
375
- const _ = $ && !O && $.$cells.length === d.length && $.$top === a ? $ : {
376
- $row: t,
377
- $cells: d,
378
- $style: J(t, R, a, "top", 3),
379
- $top: a
380
- };
381
- se.set(t, _), ne.push(_);
391
+ if (G.push(R), T.length) {
392
+ const e = z && !P && z.$cells.length === T.length && z.$top === a ? z : {
393
+ $row: t,
394
+ $cells: T,
395
+ $style: V(t, O, a, "top", 3),
396
+ $top: a
397
+ };
398
+ ee.set(t, e), N.push(e);
399
+ }
382
400
  }
383
- return R.set(e, se), {
384
- $rowTemplate: E(e, j, Q, i(H), "max-content", h),
385
- $colTemplate: E(s, U, N, i(K), "minmax(max-content,auto)", w),
386
- $groups: te
401
+ return R.set(e, ee), {
402
+ $rowTemplate: E(e, B, G, i(U), "max-content", g),
403
+ $colTemplate: E(s, J, F, i(Z), "minmax(max-content,auto)", d),
404
+ $groups: K
387
405
  };
388
- }, J = (e, t, n, o, s) => {
406
+ }, V = (e, t, n, o, s) => {
389
407
  const r = {
390
408
  display: "grid",
391
409
  gridTemplateRows: "subgrid",
@@ -394,7 +412,7 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
394
412
  gridRow: "l" + e + "/l" + t
395
413
  };
396
414
  return null != n && (r.position = "sticky", r[o] = n + "px", r.zIndex = s), r;
397
- }, V = e => {
415
+ }, X = e => {
398
416
  let t;
399
417
  return {
400
418
  o(n) {
@@ -407,11 +425,11 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
407
425
  t && t.disconnect();
408
426
  }
409
427
  };
410
- }, X = (e, t, n, o, s, r, l) => {
428
+ }, Y = (e, t, n, o, s, r, l) => {
411
429
  let i, u, $ = 0, g = !1, d = !1, p = !1, h = !1;
412
- const w = Date.now, b = o ? "scrollLeft" : "scrollTop", S = o ? "left" : "top", v = e => s ? -e : e, I = () => v(n[b]), x = (e, t) => {
430
+ const S = Date.now, w = o ? "scrollLeft" : "scrollTop", b = o ? "left" : "top", v = e => s ? -e : e, I = () => v(n[w]), x = (e, t) => {
413
431
  n.scrollTo({
414
- [S]: v(e),
432
+ [b]: v(e),
415
433
  behavior: t ? "smooth" : "instant"
416
434
  });
417
435
  }, y = () => {
@@ -420,25 +438,25 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
420
438
  }, z = () => {
421
439
  f(u), u = c(y, 150);
422
440
  }, k = () => {
423
- $ = w(), p && (h = !0), l && e.$update(6, l()), e.$update(1, I()), z();
424
- }, M = t => {
441
+ $ = S(), p && (h = !0), l && e.$update(6, l()), e.$update(1, I()), z();
442
+ }, T = t => {
425
443
  if (g || !e.$isScrolling() || t.ctrlKey) return;
426
- const n = w() - $;
444
+ const n = S() - $;
427
445
  150 > n && 50 < n && (o ? t.deltaX : t.deltaY) && (g = !0);
428
- }, T = () => {
446
+ }, M = () => {
429
447
  d = !0, p = h = !1;
430
448
  }, L = () => {
431
449
  d = !1, m() && (p = !0);
432
450
  };
433
- return t.addEventListener("scroll", k), t.addEventListener("wheel", M, {
451
+ return t.addEventListener("scroll", k), t.addEventListener("wheel", T, {
434
452
  passive: !0
435
- }), t.addEventListener("touchstart", T, {
453
+ }), t.addEventListener("touchstart", M, {
436
454
  passive: !0
437
455
  }), t.addEventListener("touchend", L, {
438
456
  passive: !0
439
457
  }), {
440
458
  i: () => {
441
- t.removeEventListener("scroll", k), t.removeEventListener("wheel", M), t.removeEventListener("touchstart", T),
459
+ t.removeEventListener("scroll", k), t.removeEventListener("wheel", T), t.removeEventListener("touchstart", M),
442
460
  t.removeEventListener("touchend", L), f(u);
443
461
  },
444
462
  u: () => {
@@ -447,7 +465,7 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
447
465
  h && r && r(), h = !1;
448
466
  const s = e.$getScrollOffset() + t;
449
467
  s <= 0 || s >= e.$getStartSpacerSize() + e.$getTotalSize() - e.$getViewportSize() ? x(s) : n.scrollBy({
450
- [S]: v(t),
468
+ [b]: v(t),
451
469
  behavior: "instant"
452
470
  }), o && (i && i(), e.$getViewportSize() > e.$getTotalSize() && e.$update(1, I()));
453
471
  },
@@ -476,9 +494,9 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
476
494
  n ? (e.$update(8, t()), a($)) : $();
477
495
  }
478
496
  };
479
- }, Y = (e, t) => {
497
+ }, j = (e, t) => {
480
498
  let n, o, s = u();
481
- const r = /* @__PURE__ */ new WeakMap, l = V(o => {
499
+ const r = /* @__PURE__ */ new WeakMap, l = X(o => {
482
500
  const s = [];
483
501
  for (const {target: l, contentRect: {width: i, height: c}} of o) if (l === n) (i || c) && e.$update(4, t ? i : c); else if (l.offsetParent) {
484
502
  const e = r.get(l);
@@ -488,7 +506,7 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
488
506
  });
489
507
  return {
490
508
  $observe(r, i = r.parentElement) {
491
- l.o(n = i), o = X(e, i, i, t, t && "rtl" === getComputedStyle(i).direction, () => {
509
+ l.o(n = i), o = Y(e, i, i, t, t && "rtl" === getComputedStyle(i).direction, () => {
492
510
  const e = t ? "overflowX" : "overflowY", n = i.style, o = n[e];
493
511
  n[e] = "hidden", c(() => {
494
512
  n[e] = o;
@@ -509,9 +527,9 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
509
527
  },
510
528
  $getBaseOffset: e.$getStartSpacerSize
511
529
  };
512
- }, j = (e, t) => {
530
+ }, U = (e, t) => {
513
531
  let n, o, s, r, l, i = u();
514
- const c = /* @__PURE__ */ new WeakMap, f = V(o => {
532
+ const c = /* @__PURE__ */ new WeakMap, f = X(o => {
515
533
  const s = [];
516
534
  for (const {target: e, contentRect: {width: r, height: i}} of o) if (e === n) l && l(); else if (e.offsetParent) {
517
535
  const n = c.get(e);
@@ -524,12 +542,12 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
524
542
  const a = g(c), u = d(a), $ = n = a.scrollingElement, m = t && "rtl" === getComputedStyle($).direction, p = (e, t, n, o, s = 0) => {
525
543
  const r = o ? "offsetLeft" : "offsetTop", l = s + (m ? t.clientWidth - e[r] - e.offsetWidth : e[r]), i = e.offsetParent;
526
544
  return e !== n && i ? p(i, t, n, o, l) : l;
527
- }, h = r = () => p(c, $, a.body, t), w = l = () => {
545
+ }, h = r = () => p(c, $, a.body, t), S = l = () => {
528
546
  e.$update(4, $[t ? "clientWidth" : "clientHeight"]);
529
547
  };
530
- u.addEventListener("resize", w), f.o($), s = () => {
531
- u.removeEventListener("resize", w);
532
- }, o = X(e, u, $, t, m, null, h), i[1](!0);
548
+ u.addEventListener("resize", S), f.o($), s = () => {
549
+ u.removeEventListener("resize", S);
550
+ }, o = Y(e, u, $, t, m, null, h), i[1](!0);
533
551
  },
534
552
  $dispose() {
535
553
  s && s(), f.i(), o && o.i(), i[1](!1), i = u();
@@ -545,9 +563,9 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
545
563
  },
546
564
  $getBaseOffset: () => r()
547
565
  };
548
- }, U = (e, t) => {
566
+ }, Z = (e, t) => {
549
567
  let n, o, s, r = u();
550
- const l = /* @__PURE__ */ new WeakMap, i = /* @__PURE__ */ new WeakMap, f = V(o => {
568
+ const l = /* @__PURE__ */ new WeakMap, i = /* @__PURE__ */ new WeakMap, f = X(o => {
551
569
  const s = [], r = [];
552
570
  for (const {target: c, contentRect: {width: f, height: a}} of o) if (c === n) (f || a) && (e.$update(4, a),
553
571
  t.$update(4, f)); else if (c.offsetParent) {
@@ -563,7 +581,7 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
563
581
  $observe(l) {
564
582
  const i = n = l.parentElement;
565
583
  f.o(i);
566
- const a = (e, t) => X(e, i, i, t, t && "rtl" === getComputedStyle(i).direction, () => {
584
+ const a = (e, t) => Y(e, i, i, t, t && "rtl" === getComputedStyle(i).direction, () => {
567
585
  const e = t ? "overflowX" : "overflowY", n = i.style, o = n[e];
568
586
  n[e] = "hidden", c(() => {
569
587
  n[e] = o;
@@ -582,11 +600,11 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
582
600
  o && o.u(), s && s.u();
583
601
  }
584
602
  };
585
- }, Z = (e, t) => {
603
+ }, F = (e, t) => {
586
604
  e.$scroll(() => t);
587
- }, F = (e, t, n) => {
588
- Z(e, n + t.$getScrollOffset());
589
- }, G = (e, t, n, {align: o, smooth: s, offset: r = 0} = {}) => {
605
+ }, G = (e, t, n) => {
606
+ F(e, n + t.$getScrollOffset());
607
+ }, H = (e, t, n, {align: o, smooth: s, offset: r = 0} = {}) => {
590
608
  if (n = l(n, 0, t.$getItemsLength() - 1), "nearest" === o) {
591
609
  const e = t.$getItemOffset(n), s = t.$getScrollOffset();
592
610
  if (e < s) o = "start"; else {
@@ -595,9 +613,9 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
595
613
  }
596
614
  }
597
615
  e.$scroll(() => r + e.$getBaseOffset() + t.$getItemOffset(n) + ("end" === o ? t.$getItemSize(n) - t.$getViewportSize() : "center" === o ? (t.$getItemSize(n) - t.$getViewportSize()) / 2 : 0), s);
598
- }, H = (e, t, n) => {
616
+ }, K = (e, t, n) => {
599
617
  null != t && e.$scroll(!1, () => t), null != n && e.$scroll(!0, () => n);
600
- }, K = (e, t, n, o, s) => {
618
+ }, N = (e, t, n, o, s) => {
601
619
  if (null != o) {
602
620
  const n = o + t.$getScrollOffset();
603
621
  e.$scroll(!1, () => n);
@@ -606,30 +624,30 @@ e), p = 5, h = 6, w = 1, b = 4, S = 8, v = e => o(e.$getTotalSize(), e.$getViewp
606
624
  const t = s + n.$getScrollOffset();
607
625
  e.$scroll(!0, () => t);
608
626
  }
609
- }, N = (e, t, s, r, i, c, f, a) => {
610
- const u = t.$getItemsLength(), $ = n(s, u), g = o(u - i, $);
611
- c = l(c, 0, u - 1);
612
- const d = _(r, $, g), m = q(d, c, g), p = m < 0 ? -1 : d[m], h = () => [ t.$getItemOffset($) - t.$getItemOffset(0) + (p < 0 || p === c ? 0 : t.$getItemOffset(p + 1) - t.$getItemOffset(p)), t.$getItemOffset(u) - t.$getItemOffset(g) ];
613
- if ("nearest" === f) {
614
- if (c < $ || c >= g) return;
615
- const [e, s] = h(), r = t.$getScrollOffset(), l = t.$getItemSize(c);
616
- let i = t.$getItemOffset(c);
617
- if (p === c) {
618
- const s = (m + 1 < d.length ? d[m + 1] : g) - 1;
619
- i = o(i, n(r + e, t.$getItemOffset(s) + t.$getItemSize(s) - l));
627
+ }, Q = (e, t, s, r, i, c, f) => {
628
+ const a = t.$getItemsLength(), u = s.$getPinnedStart(), $ = s.$getTrailStart();
629
+ i = l(i, 0, a - 1);
630
+ const g = P(r, u, $), d = _(g, i, $), m = d < 0 ? -1 : g[d], p = () => s.$getItemOffset(u) + (m < 0 || m === i ? 0 : t.$getItemOffset(m + 1) - t.$getItemOffset(m)), h = () => s.$getItemOffset(a) - s.$getItemOffset($);
631
+ if ("nearest" === c) {
632
+ if (i < u || i >= $) return;
633
+ const e = p(), s = t.$getScrollOffset() + e, r = t.$getViewportSize() - e - h(), l = t.$getItemSize(i);
634
+ let f = t.$getItemOffset(i);
635
+ if (m === i) {
636
+ const e = (d + 1 < g.length ? g[d + 1] : $) - 1;
637
+ f = o(f, n(s, t.$getItemOffset(e) + t.$getItemSize(e) - l));
620
638
  }
621
- if (i < r + e) f = "start"; else {
622
- if (!(i + l > r + t.$getViewportSize() - s)) return;
623
- f = "end";
639
+ if (f < s) c = "start"; else {
640
+ if (!(f + l > s + r)) return;
641
+ c = "end";
624
642
  }
625
643
  }
626
- e.$scroll(a, () => {
627
- const [e, n] = h(), o = t.$getItemSize(c) - t.$getViewportSize();
628
- return t.$getItemOffset(c) + ("end" === f ? o + n : "center" === f ? (o + n - e) / 2 : -e);
644
+ e.$scroll(f, () => {
645
+ const e = p(), n = t.$getItemSize(i) - (t.$getViewportSize() - e - h());
646
+ return t.$getItemOffset(i) - e + ("end" === c ? n : "center" === c ? n / 2 : 0);
629
647
  });
630
- }, Q = (e, n, o, s = 0, r = t, l = 0, i = 0, c = 0, {rowIndex: f, colIndex: a, rowAlign: u, colAlign: $}) => {
631
- null != f && N(e, n, s, r, l, f, u, !1), null != a && N(e, o, i, t, c, a, $, !0);
648
+ }, ee = (e, n, o, s, r, l = t, {rowIndex: i, colIndex: c, rowAlign: f, colAlign: a}) => {
649
+ null != i && Q(e, n, s, l, i, f, !1), null != c && Q(e, o, r, t, c, a, !0);
632
650
  };
633
651
 
634
- export { p as ACTION_ITEMS_LENGTH_CHANGE, h as ACTION_START_OFFSET_CHANGE, S as UPDATE_SCROLL_END_EVENT, b as UPDATE_SCROLL_EVENT, w as UPDATE_VIRTUAL_STATE, Y as createContainerDriver, U as createContainerGridDriver, T as createGridLayout, B as createGridPlan, z as createListLayout, I as createVirtualStore, j as createWindowDriver, M as getAxisItem, k as getAxisLength, v as getScrollSize, K as gridScrollBy, H as gridScrollTo, Q as gridScrollToIndex, P as gridStyleToString, $ as isBrowser, a as microtask, F as scrollBy, Z as scrollTo, G as scrollToIndex, i as sort, L as updateGridAxis };
652
+ export { p as ACTION_ITEMS_LENGTH_CHANGE, h as ACTION_START_OFFSET_CHANGE, b as UPDATE_SCROLL_END_EVENT, w as UPDATE_SCROLL_EVENT, S as UPDATE_VIRTUAL_STATE, j as createContainerDriver, Z as createContainerGridDriver, M as createGridLayout, J as createGridPlan, z as createListLayout, I as createVirtualStore, U as createWindowDriver, T as getAxisItem, k as getAxisLength, v as getScrollSize, N as gridScrollBy, K as gridScrollTo, ee as gridScrollToIndex, B as gridStyleToString, $ as isBrowser, a as microtask, G as scrollBy, F as scrollTo, H as scrollToIndex, i as sort, L as updateGridAxis };
635
653
  //# sourceMappingURL=index.js.map