virtua 0.52.1 → 0.52.3

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.
@@ -4,7 +4,7 @@ import { ApplicationRef as t, ChangeDetectionStrategy as i, DestroyRef as s, Ele
4
4
 
5
5
  import { NgTemplateOutlet as v } from "@angular/common";
6
6
 
7
- var w, z = [], {min: b, max: N, abs: $, floor: R} = Math, I = (e, t, i) => b(i, N(t, e)), P = e => e.sort((e, t) => e - t), x = setTimeout, q = clearTimeout, F = "function" == typeof queueMicrotask ? queueMicrotask : e => {
7
+ var w, z = [], {min: $, max: b, abs: N, floor: R} = Math, I = (e, t, i) => $(i, b(t, e)), P = e => e.sort((e, t) => e - t), x = setTimeout, q = clearTimeout, F = "function" == typeof queueMicrotask ? queueMicrotask : e => {
8
8
  Promise.resolve().then(e);
9
9
  }, k = () => {
10
10
  let e;
@@ -12,8 +12,8 @@ var w, z = [], {min: b, max: N, abs: $, floor: R} = Math, I = (e, t, i) => b(i,
12
12
  e = t;
13
13
  }), e ];
14
14
  }, C = e => e.ownerDocument, O = e => e.defaultView, T = () => (null == w && (w = /iP(hone|od|ad)/.test(navigator.userAgent) || "MacIntel" === navigator.platform && navigator.maxTouchPoints > 0),
15
- w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $findIndex: t, $getItemOffset: i, $getItemSize: s, $setItemSize: r, $isSizeEqual: n, $getTotalSize: o, $getLength: l, $setLength: a, $estimateDefaultSize: c}, u = 0) => {
16
- let p = !!c, m = !!u, d = 1, h = 0, f = 0, g = 0, S = 0, y = 0, v = 0, w = 0, z = 0, R = null, I = [ 0, m ? N(u - 1, 0) : -1 ], P = 0, x = !1;
15
+ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $findIndex: t, $getItemOffset: i, $getItemSize: s, $setItemSize: r, $isSizeEqual: n, $getTotalSize: o, $getLength: l, $setLength: a, $estimateDefaultSize: c}, u = 0) => {
16
+ let p = !!c, m = !!u, d = 1, h = 0, f = 0, g = 0, S = 0, y = 0, v = 0, w = 0, z = 0, R = null, I = [ 0, m ? b(u - 1, 0) : -1 ], P = 0, x = !1;
17
17
  const q = /* @__PURE__ */ new Set, F = () => g - f, k = () => F() + y + S, C = e => i(e) - y, O = e => {
18
18
  e && (T() && 0 !== w || R && 1 === z ? y += e : S += e);
19
19
  };
@@ -26,11 +26,11 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
26
26
  if (!x || m) return I;
27
27
  let i, s;
28
28
  if (v) [i, s] = I; else {
29
- let r = N(0, k()), n = r + h;
30
- p || (t = N(0, t), 1 !== w && (r -= t), 2 !== w && (n += t)), [i, s] = I = e(N(0, r), N(0, n)),
31
- R && (i = b(i, R[0]), s = N(s, R[1]));
29
+ let r = b(0, k()), n = r + h;
30
+ p || (t = b(0, t), 1 !== w && (r -= t), 2 !== w && (n += t)), [i, s] = I = e(b(0, r), b(0, n)),
31
+ R && (i = $(i, R[0]), s = b(s, R[1]));
32
32
  }
33
- return [ N(i, 0), b(s, l() - 1) ];
33
+ return [ b(i, 0), $(s, l() - 1) ];
34
34
  },
35
35
  $findItemIndex: e => t(e - f),
36
36
  $isUnmeasuredItem: n,
@@ -50,22 +50,22 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
50
50
  };
51
51
  },
52
52
  $update: (i, l) => {
53
- let u, b, N = 0;
53
+ let u, $, b = 0;
54
54
  switch (i) {
55
55
  case 1:
56
56
  {
57
57
  if (l === g && 0 === z) break;
58
58
  const e = v;
59
59
  v = 0;
60
- const t = l - g, i = $(t);
61
- e && i < $(e) + 1 || 0 !== z || (w = t < 0 ? 2 : 1), m && (m = !1), g = l, N = 4;
60
+ const t = l - g, i = N(t);
61
+ e && i < N(e) + 1 || 0 !== z || (w = t < 0 ? 2 : 1), m && (m = !1), g = l, b = 4;
62
62
  const s = F();
63
- s >= -h && s <= o() && (N += 1, b = i > h);
63
+ s >= -h && s <= o() && (b += 1, $ = i > h);
64
64
  break;
65
65
  }
66
66
 
67
67
  case 2:
68
- N = 8, 0 !== w && (u = !0, N += 1), w = 0, z = 0, R = null;
68
+ b = 8, 0 !== w && (u = !0, b += 1), w = 0, z = 0, R = null;
69
69
  break;
70
70
 
71
71
  case 3:
@@ -84,16 +84,16 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
84
84
  const e = s(t), n = r(t, i);
85
85
  p && (P += n ? i : i - e);
86
86
  }
87
- p && h && P > h && (O(c(t(k()))), p = !1), N = 3, b = !0;
87
+ p && h && P > h && (O(c(t(k()))), p = !1), b = 3, $ = !0;
88
88
  break;
89
89
  }
90
90
 
91
91
  case 4:
92
- h !== l && (h || (x = b = !0), h = l, N = 3);
92
+ h !== l && (h || (x = $ = !0), h = l, b = 3);
93
93
  break;
94
94
 
95
95
  case 5:
96
- l[1] ? (O(a(l[0], !0)), z = 2, N = 1) : (a(l[0]), N = 1);
96
+ l[1] ? (O(a(l[0], !0)), z = 2, b = 1) : (a(l[0]), b = 1);
97
97
  break;
98
98
 
99
99
  case 6:
@@ -105,14 +105,14 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
105
105
  break;
106
106
 
107
107
  case 9:
108
- O(l), N = 3;
108
+ O(l), b = 3;
109
109
  break;
110
110
 
111
111
  case 8:
112
- R = e(l, l + h), N = 1;
112
+ R = e(l, l + h), b = 1;
113
113
  }
114
- N && (d = 1 + (2147483647 & d), u && y && (S += y, y = 0), q.forEach(([e, t]) => {
115
- N & e && t(b);
114
+ b && (d = 1 + (2147483647 & d), u && y && (S += y, y = 0), q.forEach(([e, t]) => {
115
+ b & e && t($);
116
116
  }));
117
117
  }
118
118
  };
@@ -129,7 +129,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
129
129
  return e;
130
130
  }, L = (e, t, i) => {
131
131
  let s = i && i[1] || t || 40, r = -1, n = 0;
132
- const o = i && i[0], l = o ? E(o.slice(0, b(e, o.length)), N(0, e - o.length)) : E([], e), a = E([], e + 1), c = e => {
132
+ const o = i && i[0], l = o ? E(o.slice(0, $(e, o.length)), b(0, e - o.length)) : E([], e), a = E([], e + 1), c = e => {
133
133
  const t = l[e];
134
134
  return -1 === t ? s : t;
135
135
  }, u = t => {
@@ -143,7 +143,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
143
143
  return {
144
144
  $getRange: (t, i) => {
145
145
  let s, r;
146
- return n = b(n, e - 1), u(n) <= t ? (r = V(u, e, i, n), s = V(u, e, t, n, r)) : (s = V(u, e, t, void 0, n),
146
+ return n = $(n, e - 1), u(n) <= t ? (r = V(u, e, i, n), s = V(u, e, t, n, r)) : (s = V(u, e, t, void 0, n),
147
147
  r = V(u, e, i, s)), n = s, [ s, r ];
148
148
  },
149
149
  $findIndex: t => V(u, e, t),
@@ -151,14 +151,14 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
151
151
  $getItemSize: c,
152
152
  $setItemSize: (e, t) => {
153
153
  const i = -1 === l[e];
154
- return l[e] = t, r = b(e, r), i;
154
+ return l[e] = t, r = $(e, r), i;
155
155
  },
156
156
  $isSizeEqual: (e, t = -1) => l[e] === t,
157
157
  $getTotalSize: () => u(e),
158
158
  $getLength: () => e,
159
159
  $setLength: (t, i) => {
160
160
  const n = t - e;
161
- return r = i ? -1 : b(t - 1, r), e = t, n > 0 ? (E(a, n), E(l, n, i), s * n) : (a.splice(n),
161
+ return r = i ? -1 : $(t - 1, r), e = t, n > 0 ? (E(a, n), E(l, n, i), s * n) : (a.splice(n),
162
162
  (i ? l.splice(0, -n) : l.splice(n)).reduce((e, t) => e - (-1 === t ? s : t), 0));
163
163
  },
164
164
  $estimateDefaultSize: t ? void 0 : e => {
@@ -168,18 +168,25 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
168
168
  -1 !== s && (s && i.push(s), r < e && t++);
169
169
  }), r = -1, P(i);
170
170
  const n = i.length, o = n / 2 | 0, a = n % 2 == 0 ? (i[o - 1] + i[o]) / 2 : i[o], c = s;
171
- return ((s = a) - c) * N(e - t, 0);
171
+ return ((s = a) - c) * b(e - t, 0);
172
172
  },
173
173
  $snapshot: () => [ l.slice(), s ]
174
174
  };
175
175
  }, D = e => "number" == typeof e ? e : e.length, K = (e, t) => "number" == typeof e ? t : e[t], G = (e, t, i = 0) => {
176
+ let s = 0, r = 0;
177
+ const n = (e = 0, t = 0) => {
178
+ s = e, r = t;
179
+ }, o = e => $(s, e), l = e => b(e - r, o(e)), a = (e, t, s, r, n) => {
180
+ const a = t(o(s)), c = t(s) - t(l(s)), u = r + (a ? a - i : 0);
181
+ return e(u, b(u, n - (c ? c - i : 0)));
182
+ };
176
183
  if ("number" == typeof t) {
177
184
  let s = D(e), r = t;
178
- const n = e => r + i ? I(R(e / (r + i)), 0, s - 1) : 0;
185
+ const c = e => r + i ? I(R(e / (r + i)), 0, s - 1) : 0, u = e => e * (r + i), p = (e, t) => [ c(e), c(t) ];
179
186
  return {
180
- $getRange: (e, t) => [ n(e), n(t) ],
181
- $findIndex: n,
182
- $getItemOffset: e => e * (r + i),
187
+ $getRange: (e, t) => a(p, u, s, e, t),
188
+ $findIndex: c,
189
+ $getItemOffset: u,
183
190
  $getItemSize: () => r,
184
191
  $setItemSize: () => !1,
185
192
  $isSizeEqual: () => !1,
@@ -187,56 +194,58 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
187
194
  $getLength: () => s,
188
195
  $setLength: e => (s = e, 0),
189
196
  $isMeasurable: () => !1,
197
+ $setPinned: n,
198
+ $getPinnedStart: () => o(s),
199
+ $getTrailStart: () => l(s),
190
200
  $setAxis: (e, t, i) => {
191
201
  if ("number" != typeof t || t === r) return;
192
- const s = n(i) * (t - r);
202
+ const s = c(i) * (t - r);
193
203
  return r = t, s;
194
204
  }
195
205
  };
196
206
  }
197
- const s = "auto" === t;
198
- let r, n = t;
199
- const o = D(e), l = [], a = L(o, void 0, [ [], 40 + i ]), c = e => s || !!l[e], u = {
200
- $getRange: a.$getRange,
201
- $findIndex: a.$findIndex,
202
- $getItemOffset: a.$getItemOffset,
203
- $getItemSize: e => a.$getItemSize(e) - i,
204
- $setItemSize: (e, t) => c(e) && a.$setItemSize(e, t + i),
205
- $isSizeEqual: (e, t) => a.$isSizeEqual(e, t + i),
206
- $getTotalSize: () => a.$getLength() ? a.$getTotalSize() - i : 0,
207
- $getLength: a.$getLength,
208
- $setLength: a.$setLength,
209
- $estimateDefaultSize: s ? a.$estimateDefaultSize : void 0,
210
- $isMeasurable: c,
211
- $setAxis: (e, t, o, c) => {
212
- if (s) return;
213
- const u = "number" == typeof t || "auto" === t ? n : t, p = a.$getLength();
214
- if (!c && e === r && u === n && p === l.length) return;
215
- r = e, n = u, l.length = p;
216
- const m = a.$findIndex(o), d = a.$getItemOffset(m);
217
- let h;
218
- for (let t = 0; t < p; t++) {
219
- const s = e[t], r = null !== s && "object" == typeof s ? s[u] : null, n = "number" != typeof r;
220
- if (!n || !l[t]) {
221
- l[t] = n;
222
- const e = n ? -1 : r + i;
223
- a.$isSizeEqual(t, e) || (a.$setItemSize(t, e), h = !0);
207
+ const c = "auto" === t;
208
+ let u, p = t;
209
+ const m = D(e), d = [], h = L(m, void 0, [ [], 40 + i ]), f = e => c || !!d[e], g = {
210
+ $getRange: (e, t) => a(h.$getRange, h.$getItemOffset, h.$getLength(), e, t),
211
+ $findIndex: h.$findIndex,
212
+ $getItemOffset: h.$getItemOffset,
213
+ $getItemSize: e => h.$getItemSize(e) - i,
214
+ $setItemSize: (e, t) => f(e) && h.$setItemSize(e, t + i),
215
+ $isSizeEqual: (e, t) => h.$isSizeEqual(e, t + i),
216
+ $getTotalSize: () => h.$getLength() ? h.$getTotalSize() - i : 0,
217
+ $getLength: h.$getLength,
218
+ $setLength: h.$setLength,
219
+ $estimateDefaultSize: c ? h.$estimateDefaultSize : void 0,
220
+ $isMeasurable: f,
221
+ $setPinned: n,
222
+ $getPinnedStart: () => o(h.$getLength()),
223
+ $getTrailStart: () => l(h.$getLength()),
224
+ $setAxis: (e, t, s, r) => {
225
+ if (c) return;
226
+ const n = "number" == typeof t || "auto" === t ? p : t, o = h.$getLength();
227
+ if (!r && e === u && n === p && o === d.length) return;
228
+ u = e, p = n, d.length = o;
229
+ const l = h.$findIndex(s), a = h.$getItemOffset(l);
230
+ let m;
231
+ for (let t = 0; t < o; t++) {
232
+ const s = e[t], r = null !== s && "object" == typeof s ? s[n] : null, o = "number" != typeof r;
233
+ if (!o || !d[t]) {
234
+ d[t] = o;
235
+ const e = o ? -1 : r + i;
236
+ h.$isSizeEqual(t, e) || (h.$setItemSize(t, e), m = !0);
224
237
  }
225
238
  }
226
- return h ? a.$getItemOffset(m) - d : void 0;
239
+ return m ? h.$getItemOffset(l) - a : void 0;
227
240
  }
228
241
  };
229
- return u.$setAxis(e, t, 0), u;
230
- }, W = (e, t, i, s, r) => {
231
- const n = D(i);
232
- n !== e.$getItemsLength() && e.$update(5, [ n ]);
233
- const o = t.$setAxis(i, s, e.$getScrollOffset() - e.$getItemOffset(0), r);
234
- null != o && e.$update(9, o);
235
- }, H = /*#__PURE__*/ new WeakMap, A = (e, t, i, s, r, n, o) => {
236
- if (t < s || N(t, r) < b(i, n + 1) || o < i) return !0;
237
- for (const s of e) if (s >= t && s < i) return !0;
238
- return !1;
239
- }, B = (e, t, i) => {
242
+ return g.$setAxis(e, t, 0), g;
243
+ }, W = (e, t, i, s, r, n, o) => {
244
+ const l = D(i);
245
+ t.$setPinned(r, n), l !== e.$getItemsLength() && e.$update(5, [ l ]);
246
+ const a = t.$setAxis(i, s, e.$getScrollOffset() - e.$getItemOffset(0), o);
247
+ null != a && e.$update(9, a);
248
+ }, H = /*#__PURE__*/ new WeakMap, A = (e, t, i, s, r, n) => e < i || b(e, s) < $(t, r + 1) || n < t, B = (e, t, i) => {
240
249
  const s = [];
241
250
  for (const r of e) r >= t && r < i && s.push(r);
242
251
  return P(s);
@@ -248,43 +257,37 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
248
257
  e[i] <= t ? s = i + 1 : r = i;
249
258
  }
250
259
  return s - 1;
251
- }, J = (e, t, i, s) => {
252
- const r = j(t, i, s);
253
- r >= 0 && e.push(t[r]);
260
+ }, J = (e, t, i, s, r) => {
261
+ const n = t.length;
262
+ for (;i < n && t[i] < s; i++) {
263
+ const s = t[i];
264
+ s > r && (e.push(s), r = s);
265
+ }
266
+ return i;
254
267
  }, Q = (e, t, i, s, r, n) => {
255
268
  const o = [];
256
269
  for (let e = 0; e < i; e++) o.push(e);
257
- const l = e.length;
258
- let a = 0, c = i - 1;
259
- for (;a < l && e[a] < s; a++) {
260
- const t = e[a];
261
- t > c && (o.push(t), c = t);
262
- }
270
+ const l = J(o, e, 0, s, i - 1);
263
271
  for (let e = s; e <= r; e++) o.push(e);
264
- for (c = r; a < l && e[a] < n; a++) {
265
- const t = e[a];
266
- t > c && (o.push(t), c = t);
267
- }
272
+ J(o, e, l, n, r);
268
273
  for (let e = n; e < t; e++) o.push(e);
269
274
  return o;
270
- }, X = (e, t) => b(e.rowIndex + (e.rowSpan || 1), t), Y = (e, t) => b(e.colIndex + (e.colSpan || 1), t), U = (e, t, i, s, r, n) => {
275
+ }, X = (e, t) => $(e.rowIndex + (e.rowSpan || 1), t), Y = (e, t) => $(e.colIndex + (e.colSpan || 1), t), U = (e, t, i, s, r, n) => {
271
276
  const o = t.length, l = s.length;
272
277
  let a = "[l0]", c = 0, u = 0, p = 0;
273
- for (;u < o || p < l; ) {
274
- const m = u < o ? t[u] : n, d = p < l ? s[p] : n;
275
- if (d <= c) p++; else {
276
- let t, s;
277
- if (m === c) {
278
- t = c + 1;
279
- const n = i[u];
280
- s = null == n ? e.$getItemSize(c) + "px" : n ? r : "minmax(" + e.$getItemSize(c) + "px,auto)",
281
- u++;
282
- } else t = b(m, d), s = "minmax(" + (e.$getItemOffset(t - 1) + e.$getItemSize(t - 1) - e.$getItemOffset(c)) + "px,auto)";
283
- a += " " + s + " [l" + t + "]", c = t;
284
- }
278
+ for (;c < n; ) {
279
+ for (;p < l && s[p] <= c; ) p++;
280
+ const m = u < o ? t[u] : n;
281
+ let d, h;
282
+ if (m === c) {
283
+ d = c + 1;
284
+ const t = i[u];
285
+ h = null == t ? e.$getItemSize(c) + "px" : t ? r : "minmax(" + e.$getItemSize(c) + "px,auto)",
286
+ u++;
287
+ } else d = $(m, p < l ? s[p] : n), h = "minmax(" + (e.$getItemOffset(d - 1) + e.$getItemSize(d - 1) - e.$getItemOffset(c)) + "px,auto)";
288
+ a += " " + h + " [l" + d + "]", c = d;
285
289
  }
286
- return c < n && (a += " minmax(" + (e.$getTotalSize() - e.$getItemOffset(c)) + "px,auto) [l" + n + "]"),
287
- a;
290
+ return a;
288
291
  }, Z = (e, t, i, s, r) => {
289
292
  const n = {
290
293
  display: "grid",
@@ -319,26 +322,26 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
319
322
  m = !1, e.$update(2);
320
323
  }, z = () => {
321
324
  q(a), a = x(w, 150);
322
- }, b = () => {
325
+ }, $ = () => {
323
326
  c = h(), m && (d = !0), o && e.$update(6, o()), e.$update(1, y()), z();
324
- }, N = t => {
327
+ }, b = t => {
325
328
  if (u || !e.$isScrolling() || t.ctrlKey) return;
326
329
  const i = h() - c;
327
330
  150 > i && 50 < i && (s ? t.deltaX : t.deltaY) && (u = !0);
328
- }, $ = () => {
331
+ }, N = () => {
329
332
  p = !0, m = d = !1;
330
333
  }, R = () => {
331
334
  p = !1, T() && (m = !0);
332
335
  };
333
- return t.addEventListener("scroll", b), t.addEventListener("wheel", N, {
336
+ return t.addEventListener("scroll", $), t.addEventListener("wheel", b, {
334
337
  passive: !0
335
- }), t.addEventListener("touchstart", $, {
338
+ }), t.addEventListener("touchstart", N, {
336
339
  passive: !0
337
340
  }), t.addEventListener("touchend", R, {
338
341
  passive: !0
339
342
  }), {
340
343
  l: () => {
341
- t.removeEventListener("scroll", b), t.removeEventListener("wheel", N), t.removeEventListener("touchstart", $),
344
+ t.removeEventListener("scroll", $), t.removeEventListener("wheel", b), t.removeEventListener("touchstart", N),
342
345
  t.removeEventListener("touchend", R), q(a);
343
346
  },
344
347
  u: () => {
@@ -387,26 +390,26 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
387
390
  }
388
391
  }
389
392
  e.$scroll(() => n + e.$getBaseOffset() + t.$getItemOffset(i) + ("end" === s ? t.$getItemSize(i) - t.$getViewportSize() : "center" === s ? (t.$getItemSize(i) - t.$getViewportSize()) / 2 : 0), r);
390
- }, re = (e, t, i, s, r, n, o, l) => {
391
- const a = t.$getItemsLength(), c = b(i, a), u = N(a - r, c);
392
- n = I(n, 0, a - 1);
393
- const p = B(s, c, u), m = j(p, n, u), d = m < 0 ? -1 : p[m], h = () => [ t.$getItemOffset(c) - t.$getItemOffset(0) + (d < 0 || d === n ? 0 : t.$getItemOffset(d + 1) - t.$getItemOffset(d)), t.$getItemOffset(a) - t.$getItemOffset(u) ];
394
- if ("nearest" === o) {
395
- if (n < c || n >= u) return;
396
- const [e, i] = h(), s = t.$getScrollOffset(), r = t.$getItemSize(n);
397
- let l = t.$getItemOffset(n);
398
- if (d === n) {
399
- const i = (m + 1 < p.length ? p[m + 1] : u) - 1;
400
- l = N(l, b(s + e, t.$getItemOffset(i) + t.$getItemSize(i) - r));
393
+ }, re = (e, t, i, s, r, n, o) => {
394
+ const l = t.$getItemsLength(), a = i.$getPinnedStart(), c = i.$getTrailStart();
395
+ r = I(r, 0, l - 1);
396
+ const u = B(s, a, c), p = j(u, r, c), m = p < 0 ? -1 : u[p], d = () => i.$getItemOffset(a) + (m < 0 || m === r ? 0 : i.$getItemOffset(m + 1) - i.$getItemOffset(m)), h = () => i.$getItemOffset(l) - i.$getItemOffset(c);
397
+ if ("nearest" === n) {
398
+ if (r < a || r >= c) return;
399
+ const e = d(), i = t.$getScrollOffset() + e, s = t.$getViewportSize() - e - h(), o = t.$getItemSize(r);
400
+ let l = t.$getItemOffset(r);
401
+ if (m === r) {
402
+ const e = (p + 1 < u.length ? u[p + 1] : c) - 1;
403
+ l = b(l, $(i, t.$getItemOffset(e) + t.$getItemSize(e) - o));
401
404
  }
402
- if (l < s + e) o = "start"; else {
403
- if (!(l + r > s + t.$getViewportSize() - i)) return;
404
- o = "end";
405
+ if (l < i) n = "start"; else {
406
+ if (!(l + o > i + s)) return;
407
+ n = "end";
405
408
  }
406
409
  }
407
- e.$scroll(l, () => {
408
- const [e, i] = h(), s = t.$getItemSize(n) - t.$getViewportSize();
409
- return t.$getItemOffset(n) + ("end" === o ? s + i : "center" === o ? (s + i - e) / 2 : -e);
410
+ e.$scroll(o, () => {
411
+ const e = d(), i = t.$getItemSize(r) - (t.$getViewportSize() - e - h());
412
+ return t.$getItemOffset(r) - e + ("end" === n ? i : "center" === n ? i / 2 : 0);
410
413
  });
411
414
  }, ne = class t {
412
415
  index=h.required();
@@ -546,11 +549,11 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
546
549
  S;
547
550
  driver;
548
551
  v=d(r).nativeElement;
549
- N=d(t);
550
- $=g(void 0);
552
+ $=d(t);
553
+ N=g(void 0);
551
554
  isSSR=g(!1);
552
555
  R=u(() => {
553
- this.$();
556
+ this.N();
554
557
  const e = this.data().length, [t, i] = this.h.$getRange(this.bufferSize()), s = this.keepMounted(), r = [];
555
558
  if (s) {
556
559
  const n = new Set(s);
@@ -560,7 +563,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
560
563
  return r;
561
564
  });
562
565
  items=u(() => {
563
- this.$();
566
+ this.N();
564
567
  const e = this.h, t = this.data(), i = this.getKey(), s = this.itemProps();
565
568
  return this.R().map(r => {
566
569
  const n = t[r];
@@ -578,7 +581,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
578
581
  });
579
582
  });
580
583
  containerStyle=u(() => {
581
- this.$();
584
+ this.N();
582
585
  const e = this.horizontal(), t = this.h.$getTotalSize();
583
586
  return {
584
587
  display: "block",
@@ -604,7 +607,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
604
607
  }
605
608
  }), c({
606
609
  read: () => {
607
- this.$(), this.driver.$effect();
610
+ this.N(), this.driver.$effect();
608
611
  }
609
612
  }), d(s).onDestroy(() => {
610
613
  this.h?.$dispose(), this.driver?.$dispose();
@@ -648,12 +651,12 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
648
651
  $getBaseOffset: e.$getStartSpacerSize
649
652
  };
650
653
  })(s, this.horizontal()), s.$subscribe(1, e => {
651
- this.$.set(s.$getStateVersion()), e && this.N.tick();
654
+ this.N.set(s.$getStateVersion()), e && this.$.tick();
652
655
  }), s.$subscribe(4, () => {
653
656
  this.scrolled.emit(s.$getScrollOffset());
654
657
  }), s.$subscribe(8, () => {
655
658
  this.scrollEnded.emit();
656
- }), this.$.set(s.$getStateVersion());
659
+ }), this.N.set(s.$getStateVersion());
657
660
  }
658
661
  get cache() {
659
662
  return this.S.$snapshot();
@@ -1020,11 +1023,11 @@ var ue = class i {
1020
1023
  S;
1021
1024
  driver;
1022
1025
  v=d(r).nativeElement;
1023
- N=d(t);
1024
- $=g(void 0);
1026
+ $=d(t);
1027
+ N=g(void 0);
1025
1028
  isSSR=g(!1);
1026
1029
  items=u(() => {
1027
- this.$();
1030
+ this.N();
1028
1031
  const e = this.h, t = this.data(), i = this.getKey(), [s, r] = e.$getRange(this.bufferSize()), n = [];
1029
1032
  for (let o = s; o <= r; o++) {
1030
1033
  const s = t[o];
@@ -1039,7 +1042,7 @@ var ue = class i {
1039
1042
  return n;
1040
1043
  });
1041
1044
  containerStyle=u(() => {
1042
- this.$();
1045
+ this.N();
1043
1046
  const e = this.horizontal(), t = this.h.$getTotalSize();
1044
1047
  return {
1045
1048
  display: "block",
@@ -1062,7 +1065,7 @@ var ue = class i {
1062
1065
  }
1063
1066
  }), c({
1064
1067
  read: () => {
1065
- this.$(), this.driver.$effect();
1068
+ this.N(), this.driver.$effect();
1066
1069
  }
1067
1070
  }), d(s).onDestroy(() => {
1068
1071
  this.h?.$dispose(), this.driver?.$dispose();
@@ -1109,12 +1112,12 @@ var ue = class i {
1109
1112
  $getBaseOffset: () => n()
1110
1113
  };
1111
1114
  })(s, this.horizontal()), s.$subscribe(1, e => {
1112
- this.$.set(s.$getStateVersion()), e && this.N.tick();
1115
+ this.N.set(s.$getStateVersion()), e && this.$.tick();
1113
1116
  }), s.$subscribe(4, () => {
1114
1117
  this.scrolled.emit();
1115
1118
  }), s.$subscribe(8, () => {
1116
1119
  this.scrollEnded.emit();
1117
- }), this.$.set(s.$getStateVersion());
1120
+ }), this.N.set(s.$getStateVersion());
1118
1121
  }
1119
1122
  get cache() {
1120
1123
  return this.S.$snapshot();
@@ -1493,126 +1496,128 @@ var pe = class t {
1493
1496
  F;
1494
1497
  driver;
1495
1498
  v=d(r).nativeElement;
1496
- N=d(t);
1497
- $=g(void 0);
1499
+ $=d(t);
1500
+ N=g(void 0);
1498
1501
  ariaRowCount=d(new n("aria-rowcount"), {
1499
1502
  optional: !0
1500
1503
  });
1501
1504
  ariaColCount=d(new n("aria-colcount"), {
1502
1505
  optional: !0
1503
1506
  });
1504
- rowCount=u(() => this.$() && this.I.$getItemsLength());
1505
- colCount=u(() => this.$() && this.P.$getItemsLength());
1506
- plan=u(() => (this.$(), ((e, t, i, s, r = 0, n = z, o = 0, l = 0, a = 0, c = z, u = z, p) => {
1507
- const m = e.$getLength(), d = t.$getLength(), h = b(r, m), f = N(m - o, h), g = b(l, d), S = N(d - a, g), y = I(i[0], h, f), v = b(i[1], f - 1), w = I(s[0], g, S), $ = b(s[1], S - 1), R = B(n, h, f), x = N(g - 1, 0), q = [], F = [], k = [];
1508
- for (const e of u) e.rowIndex < m && e.colIndex < d && k.push(e);
1509
- const C = R.length;
1510
- C && (J(q, R, y, f), F.push(x));
1511
- let O = c, T = 0;
1512
- do {
1513
- for (;T < k.length; T++) {
1514
- const {rowIndex: e, colIndex: t} = k[T];
1515
- q.push(e), J(q, R, e, f), F.push(t);
1516
- }
1517
- const e = [];
1518
- for (const t of O) {
1519
- const i = t.rowIndex, s = t.colIndex, r = X(t, m), n = Y(t, d);
1520
- if (i < m && s < d && (r - i > 1 || n - s > 1)) if (A(q, i, r, h, y, v, f)) if (A(F, s, n, g, w, $, S)) k.push(t); else {
1521
- const s = j(R, r - 1, f);
1522
- (i < h || s >= 0 && R[s] >= i) && e.push(t);
1523
- } else s < g && e.push(t);
1507
+ rowCount=u(() => this.N() && this.I.$getItemsLength());
1508
+ colCount=u(() => this.N() && this.P.$getItemsLength());
1509
+ plan=u(() => (this.N(), ((e, t, i, s, r = z, n = z, o = z, l) => {
1510
+ const a = e.$getLength(), c = t.$getLength(), u = e.$getPinnedStart(), p = e.$getTrailStart(), m = t.$getPinnedStart(), d = t.$getTrailStart(), h = I(i[0], u, p), f = $(i[1], p - 1), g = I(s[0], m, d), S = $(s[1], d - 1), y = B(r, u, p), v = b(m - 1, 0), w = [], N = [], R = [];
1511
+ for (const e of o) e.rowIndex < a && e.colIndex < c && R.push(e);
1512
+ const x = R.length, q = y.length, F = j(y, h, p), k = F < 0 ? -1 : y[F];
1513
+ k >= 0 && w.push(k);
1514
+ for (const e of n) {
1515
+ const t = e.rowIndex, i = e.colIndex, s = X(e, a), r = Y(e, c);
1516
+ if (t < a && i < c && (s - t > 1 || r - i > 1)) {
1517
+ let n = (A(t, s, u, h, f, p) || k >= t && k < s) && A(i, r, m, g, S, d);
1518
+ for (let e = 0; !n && e < x; e++) {
1519
+ const {rowIndex: o, colIndex: l} = R[e];
1520
+ n = o >= t && o < s && l >= i && l < r;
1521
+ }
1522
+ n && R.push(e);
1524
1523
  }
1525
- O = e;
1526
- } while (T < k.length);
1527
- P(q), P(F);
1528
- const M = Q(q, m, h, y, v, f), _ = Q(F, d, g, w, $, S), V = M.length, E = _.length, L = /* @__PURE__ */ new Map, D = [], K = [];
1529
- for (const e of k) {
1530
- const t = X(e, m), i = Y(e, d);
1531
- D.push(t), K.push(i);
1532
- const s = _.indexOf(e.colIndex);
1533
- for (let r = M.indexOf(e.rowIndex); r < V && M[r] < t; r++) {
1534
- const t = M[r] * d;
1535
- for (let r = s; r < E && _[r] < i; r++) L.set(t + _[r], e);
1524
+ }
1525
+ for (const {rowIndex: e, colIndex: t} of R) {
1526
+ const i = j(y, e, p);
1527
+ w.push(e), i >= 0 && w.push(y[i]), N.push(t);
1528
+ }
1529
+ P(w), P(N);
1530
+ const C = Q(w, a, u, h, f, p), O = Q(N, c, m, g, S, d), T = C.length, M = O.length, _ = /* @__PURE__ */ new Map, V = [], E = [];
1531
+ for (const e of R) {
1532
+ const t = X(e, a), i = Y(e, c);
1533
+ V.push(t), E.push(i);
1534
+ const s = O.indexOf(e.colIndex);
1535
+ for (let r = C.indexOf(e.rowIndex); r < T && C[r] < t; r++) {
1536
+ const t = C[r] * c;
1537
+ for (let r = s; r < M && O[r] < i; r++) _.set(t + O[r], e);
1536
1538
  }
1537
1539
  }
1538
- const G = [];
1539
- for (const e of _) G.push(!t.$isMeasurable(e) && null);
1540
- const W = [], ee = e.$getItemOffset(h), te = [];
1541
- let ie = te;
1542
- const se = H.get(e), re = /* @__PURE__ */ new Map;
1543
- for (const i of M) {
1544
- const s = i < h, r = i >= f, n = r || i >= y && i <= v, o = j(R, i, f), l = s ? 0 : r ? f : o < 0 ? -1 : R[o];
1545
- if (i === l) {
1546
- const e = s ? h : r ? m : o + 1 < C ? R[o + 1] : f;
1547
- D.push(e);
1540
+ const L = [];
1541
+ for (const e of O) L.push(!t.$isMeasurable(e) && null);
1542
+ const D = [], K = e.$getItemOffset(u), G = [];
1543
+ let W = G;
1544
+ const J = H.get(e), ee = /* @__PURE__ */ new Map;
1545
+ for (const i of C) {
1546
+ const s = i < u, r = i >= p, n = j(y, i, p), o = s ? 0 : r ? p : n < 0 ? -1 : y[n];
1547
+ if (i === o) {
1548
+ const e = s ? u : r ? a : n + 1 < q ? y[n + 1] : p;
1549
+ V.push(e);
1548
1550
  const t = [];
1549
- te.push({
1550
- $key: s ? -1 : r ? -2 : -3 - l,
1551
+ G.push({
1552
+ $key: s ? -1 : r ? -2 : -3 - o,
1551
1553
  $rows: t,
1552
- $style: Z(l, e, s || r ? 0 : null, r ? "bottom" : "top", 4)
1553
- }), ie = t;
1554
- } else l < 0 && (ie = te);
1555
- const a = o >= 0 && i === l, c = a ? ee : null, u = i * d, z = se && se.get(i), b = z && z.$cells, I = [];
1556
- let P = 0, q = !e.$isMeasurable(i) && null, F = i + 1, k = !1;
1557
- for (let e = 0; e < E; e++) {
1558
- const r = _[e], o = r < g, l = r >= S, c = l || r >= w && r <= $, h = L.get(u + r);
1559
- if (h ? h.rowIndex === i && h.colIndex === r : n && c || s || a || o) {
1560
- const n = h ? X(h, m) : i + 1, c = h ? Y(h, d) : r + 1, u = n - i > 1, f = c - r > 1, g = u || f, S = g ? n - i : void 0, y = g ? c - r : void 0;
1561
- let v, w;
1562
- F = N(F, n);
1563
- const z = o ? t.$getItemOffset(r) : null, $ = l ? t.$getTotalSize() - t.$getItemOffset(c - 1) - t.$getItemSize(c - 1) : null;
1564
- !1 !== q || u || (v = i, q = !0), !1 !== G[e] || f || (w = r, G[e] = !0);
1565
- const R = s ? "columnheader" : r === x && (o || a) ? "rowheader" : "cell", C = "cell" !== R && p && p.rowIndex === i && p.colIndex === r ? p.order : void 0;
1566
- let O;
1567
- if (b) {
1568
- for (;P < b.length && b[P].$col < r; ) P++;
1569
- P < b.length && (O = b[P]);
1554
+ $style: Z(o, e, s || r ? 0 : null, r ? "bottom" : "top", 4)
1555
+ }), W = t;
1556
+ } else o < 0 && (W = G);
1557
+ const w = n >= 0 && i === o, z = s || r || i === k || i >= h && i <= f, $ = w ? K : null, N = i * c, R = J && J.get(i), I = R && R.$cells, P = [];
1558
+ let x = 0, F = !e.$isMeasurable(i) && null, C = i + 1, T = !1;
1559
+ for (let e = 0; e < M; e++) {
1560
+ const r = O[e], n = r < m, o = r >= d, u = n || o || r >= g && r <= S, p = _.get(N + r);
1561
+ if (p ? p.rowIndex === i && p.colIndex === r : z && u) {
1562
+ const u = p ? X(p, a) : i + 1, m = p ? Y(p, c) : r + 1, d = u - i, h = m - r, f = d > 1, g = h > 1, S = f || g;
1563
+ let y, z;
1564
+ C = b(C, u);
1565
+ const $ = n ? t.$getItemOffset(r) : null, N = o ? t.$getTotalSize() - t.$getItemOffset(m - 1) - t.$getItemSize(m - 1) : null;
1566
+ !1 !== F || f || (y = i, F = !0), !1 !== L[e] || g || (z = r, L[e] = !0);
1567
+ const R = s ? "columnheader" : r === v && (n || w) ? "rowheader" : "cell", q = S ? d : void 0, k = S ? h : void 0, O = "cell" !== R && l && l.rowIndex === i && l.colIndex === r ? l.order : void 0;
1568
+ let M;
1569
+ if (I) {
1570
+ const e = I.length;
1571
+ for (;x < e && I[x].$col < r; ) x++;
1572
+ x < e && I[x].$col === r && (M = I[x]);
1570
1573
  }
1571
- if (!O || O.$col !== r || O.$rowSpan !== S || O.$colSpan !== y || O.$start !== z || O.$end !== $ || O.$measureRow !== v || O.$measureCol !== w || O.$role !== R || O.$sort !== C) {
1572
- const e = {
1574
+ if (!M || M.$rowSpan !== q || M.$colSpan !== k || M.$start !== $ || M.$end !== N || M.$measureRow !== y || M.$measureCol !== z || M.$role !== R || M.$sort !== O) {
1575
+ let e = "1/l" + r;
1576
+ S && (e += "/l" + u + "/l" + m);
1577
+ const t = {
1573
1578
  contain: "layout style",
1574
1579
  display: "grid",
1575
- gridArea: g ? "1/l" + r + "/l" + n + "/l" + c : "1/l" + r
1580
+ gridArea: e
1576
1581
  };
1577
- u && (e.height = "0px", e.minHeight = "100%", e.zIndex = 1), f && (e.width = "0px",
1578
- e.minWidth = "100%"), (o || l) && (o ? e.insetInlineStart = z + "px" : e.insetInlineEnd = $ + "px",
1579
- e.position = "sticky", e.zIndex = 2), O = {
1582
+ f && (t.height = "0px", t.minHeight = "100%", t.zIndex = 1), g && (t.width = "0px",
1583
+ t.minWidth = "100%"), (n || o) && (t[n ? "insetInlineStart" : "insetInlineEnd"] = (n ? $ : N) + "px",
1584
+ t.position = "sticky", t.zIndex = 2), M = {
1580
1585
  $col: r,
1581
- $rowSpan: S,
1582
- $colSpan: y,
1583
- $measureRow: v,
1584
- $measureCol: w,
1586
+ $rowSpan: q,
1587
+ $colSpan: k,
1588
+ $measureRow: y,
1589
+ $measureCol: z,
1585
1590
  $role: R,
1586
- $sort: C,
1587
- $style: e,
1588
- $start: z,
1589
- $end: $
1590
- }, k = !0;
1591
+ $sort: O,
1592
+ $style: t,
1593
+ $start: $,
1594
+ $end: N
1595
+ }, T = !0;
1591
1596
  }
1592
- I.push(O);
1597
+ P.push(M);
1593
1598
  }
1594
1599
  }
1595
- if (W.push(q), I.length) {
1596
- const e = z && !k && z.$cells.length === I.length && z.$top === c ? z : {
1600
+ if (D.push(F), P.length) {
1601
+ const e = R && !T && R.$cells.length === P.length && R.$top === $ ? R : {
1597
1602
  $row: i,
1598
- $cells: I,
1599
- $style: Z(i, F, c, "top", 3),
1600
- $top: c
1603
+ $cells: P,
1604
+ $style: Z(i, C, $, "top", 3),
1605
+ $top: $
1601
1606
  };
1602
- re.set(i, e), ie.push(e);
1607
+ ee.set(i, e), W.push(e);
1603
1608
  }
1604
1609
  }
1605
- return H.set(e, re), {
1606
- $rowTemplate: U(e, M, W, P(D), "max-content", m),
1607
- $colTemplate: U(t, _, G, P(K), "minmax(max-content,auto)", d),
1608
- $groups: te
1610
+ return H.set(e, ee), {
1611
+ $rowTemplate: U(e, C, D, P(V), "max-content", a),
1612
+ $colTemplate: U(t, O, L, P(E), "minmax(max-content,auto)", c),
1613
+ $groups: G
1609
1614
  };
1610
- })(this.q, this.F, this.I.$getRange(this.bufferSize()), this.P.$getRange(this.bufferSize()), this.headerRows(), this.sectionRows(), this.footerRows(), this.headerCols(), this.footerCols(), this.spans(), this.keepMounted(), this.ariaSort())));
1615
+ })(this.q, this.F, this.I.$getRange(this.bufferSize()), this.P.$getRange(this.bufferSize()), this.sectionRows(), this.spans(), this.keepMounted(), this.ariaSort())));
1611
1616
  rowItem(e) {
1612
1617
  return K(this.rows(), e);
1613
1618
  }
1614
1619
  containerStyle=u(() => {
1615
- this.$();
1620
+ this.N();
1616
1621
  const {$rowTemplate: e, $colTemplate: t} = this.plan(), i = this.I.$getItemOffset(0), s = this.P.$getItemOffset(0);
1617
1622
  return {
1618
1623
  contain: "size style",
@@ -1630,9 +1635,9 @@ var pe = class t {
1630
1635
  });
1631
1636
  constructor() {
1632
1637
  m(() => {
1633
- const e = this.rows(), t = this.cols(), i = this.rowHeight(), s = this.colWidth();
1638
+ const e = this.rows(), t = this.cols(), i = this.rowHeight(), s = this.colWidth(), r = this.headerRows(), n = this.footerRows(), o = this.headerCols(), l = this.footerCols();
1634
1639
  this.I && S(() => {
1635
- W(this.I, this.q, e, i), W(this.P, this.F, t, s);
1640
+ W(this.I, this.q, e, i, r, n), W(this.P, this.F, t, s, o, l);
1636
1641
  });
1637
1642
  }), a({
1638
1643
  read: () => {
@@ -1640,7 +1645,7 @@ var pe = class t {
1640
1645
  }
1641
1646
  }), c({
1642
1647
  read: () => {
1643
- this.$(), this.driver.$effect();
1648
+ this.N(), this.driver.$effect();
1644
1649
  }
1645
1650
  }), d(s).onDestroy(() => {
1646
1651
  this.I?.$dispose(), this.P?.$dispose(), this.driver?.$dispose();
@@ -1689,7 +1694,7 @@ var pe = class t {
1689
1694
  };
1690
1695
  })(r, n);
1691
1696
  const o = e => {
1692
- this.$.set(r.$getStateVersion() + n.$getStateVersion()), e && this.N.tick();
1697
+ this.N.set(r.$getStateVersion() + n.$getStateVersion()), e && this.$.tick();
1693
1698
  };
1694
1699
  r.$subscribe(1, o), n.$subscribe(1, o);
1695
1700
  let l = !1;
@@ -1740,9 +1745,9 @@ var pe = class t {
1740
1745
  return this.P.$getItemSize(e);
1741
1746
  }
1742
1747
  scrollToIndex(e) {
1743
- ((e, t, i, s = 0, r = z, n = 0, o = 0, l = 0, {rowIndex: a, colIndex: c, rowAlign: u, colAlign: p}) => {
1744
- null != a && re(e, t, s, r, n, a, u, !1), null != c && re(e, i, o, z, l, c, p, !0);
1745
- })(this.driver, this.I, this.P, this.headerRows(), this.sectionRows(), this.footerRows(), this.headerCols(), this.footerCols(), e);
1748
+ ((e, t, i, s, r, n = z, {rowIndex: o, colIndex: l, rowAlign: a, colAlign: c}) => {
1749
+ null != o && re(e, t, s, n, o, a, !1), null != l && re(e, i, r, z, l, c, !0);
1750
+ })(this.driver, this.I, this.P, this.q, this.F, this.sectionRows(), e);
1746
1751
  }
1747
1752
  scrollTo({vertical: e, horizontal: t}) {
1748
1753
  ((e, t, i) => {