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.
@@ -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,53 +194,59 @@ 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);
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);
235
248
  }, 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;
249
+ if (t < s || b(t, r) < $(i, n + 1) || o < i) return !0;
237
250
  for (const s of e) if (s >= t && s < i) return !0;
238
251
  return !1;
239
252
  }, B = (e, t, i) => {
@@ -251,41 +264,38 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
251
264
  }, J = (e, t, i, s) => {
252
265
  const r = j(t, i, s);
253
266
  r >= 0 && e.push(t[r]);
254
- }, Q = (e, t, i, s, r, n) => {
267
+ }, Q = (e, t, i, s, r) => {
268
+ const n = t.length;
269
+ for (;i < n && t[i] < s; i++) {
270
+ const s = t[i];
271
+ s > r && (e.push(s), r = s);
272
+ }
273
+ return i;
274
+ }, X = (e, t, i, s, r, n) => {
255
275
  const o = [];
256
276
  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
- }
277
+ const l = Q(o, e, 0, s, i - 1);
263
278
  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
- }
279
+ Q(o, e, l, n, r);
268
280
  for (let e = n; e < t; e++) o.push(e);
269
281
  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) => {
282
+ }, Y = (e, t) => $(e.rowIndex + (e.rowSpan || 1), t), U = (e, t) => $(e.colIndex + (e.colSpan || 1), t), Z = (e, t, i, s, r, n) => {
271
283
  const o = t.length, l = s.length;
272
284
  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
- }
285
+ for (;c < n; ) {
286
+ for (;p < l && s[p] <= c; ) p++;
287
+ const m = u < o ? t[u] : n;
288
+ let d, h;
289
+ if (m === c) {
290
+ d = c + 1;
291
+ const t = i[u];
292
+ h = null == t ? e.$getItemSize(c) + "px" : t ? r : "minmax(" + e.$getItemSize(c) + "px,auto)",
293
+ u++;
294
+ } else d = $(m, p < l ? s[p] : n), h = "minmax(" + (e.$getItemOffset(d - 1) + e.$getItemSize(d - 1) - e.$getItemOffset(c)) + "px,auto)";
295
+ a += " " + h + " [l" + d + "]", c = d;
285
296
  }
286
- return c < n && (a += " minmax(" + (e.$getTotalSize() - e.$getItemOffset(c)) + "px,auto) [l" + n + "]"),
287
- a;
288
- }, Z = (e, t, i, s, r) => {
297
+ return a;
298
+ }, ee = (e, t, i, s, r) => {
289
299
  const n = {
290
300
  display: "grid",
291
301
  gridTemplateRows: "subgrid",
@@ -294,7 +304,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
294
304
  gridRow: "l" + e + "/l" + t
295
305
  };
296
306
  return null != i && (n.position = "sticky", n[s] = i + "px", n.zIndex = r), n;
297
- }, ee = e => {
307
+ }, te = e => {
298
308
  let t;
299
309
  return {
300
310
  i(i) {
@@ -307,7 +317,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
307
317
  t && t.disconnect();
308
318
  }
309
319
  };
310
- }, te = (e, t, i, s, r, n, o) => {
320
+ }, ie = (e, t, i, s, r, n, o) => {
311
321
  let l, a, c = 0, u = !1, p = !1, m = !1, d = !1;
312
322
  const h = Date.now, f = s ? "scrollLeft" : "scrollTop", g = s ? "left" : "top", S = e => r ? -e : e, y = () => S(i[f]), v = (e, t) => {
313
323
  i.scrollTo({
@@ -319,26 +329,26 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
319
329
  m = !1, e.$update(2);
320
330
  }, z = () => {
321
331
  q(a), a = x(w, 150);
322
- }, b = () => {
332
+ }, $ = () => {
323
333
  c = h(), m && (d = !0), o && e.$update(6, o()), e.$update(1, y()), z();
324
- }, N = t => {
334
+ }, b = t => {
325
335
  if (u || !e.$isScrolling() || t.ctrlKey) return;
326
336
  const i = h() - c;
327
337
  150 > i && 50 < i && (s ? t.deltaX : t.deltaY) && (u = !0);
328
- }, $ = () => {
338
+ }, N = () => {
329
339
  p = !0, m = d = !1;
330
340
  }, R = () => {
331
341
  p = !1, T() && (m = !0);
332
342
  };
333
- return t.addEventListener("scroll", b), t.addEventListener("wheel", N, {
343
+ return t.addEventListener("scroll", $), t.addEventListener("wheel", b, {
334
344
  passive: !0
335
- }), t.addEventListener("touchstart", $, {
345
+ }), t.addEventListener("touchstart", N, {
336
346
  passive: !0
337
347
  }), t.addEventListener("touchend", R, {
338
348
  passive: !0
339
349
  }), {
340
350
  l: () => {
341
- t.removeEventListener("scroll", b), t.removeEventListener("wheel", N), t.removeEventListener("touchstart", $),
351
+ t.removeEventListener("scroll", $), t.removeEventListener("wheel", b), t.removeEventListener("touchstart", N),
342
352
  t.removeEventListener("touchend", R), q(a);
343
353
  },
344
354
  u: () => {
@@ -376,9 +386,9 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
376
386
  i ? (e.$update(8, t()), F(c)) : c();
377
387
  }
378
388
  };
379
- }, ie = (e, t) => {
389
+ }, se = (e, t) => {
380
390
  e.$scroll(() => t);
381
- }, se = (e, t, i, {align: s, smooth: r, offset: n = 0} = {}) => {
391
+ }, re = (e, t, i, {align: s, smooth: r, offset: n = 0} = {}) => {
382
392
  if (i = I(i, 0, t.$getItemsLength() - 1), "nearest" === s) {
383
393
  const e = t.$getItemOffset(i), r = t.$getScrollOffset();
384
394
  if (e < r) s = "start"; else {
@@ -387,28 +397,28 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
387
397
  }
388
398
  }
389
399
  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));
400
+ }, ne = (e, t, i, s, r, n, o) => {
401
+ const l = t.$getItemsLength(), a = i.$getPinnedStart(), c = i.$getTrailStart();
402
+ r = I(r, 0, l - 1);
403
+ 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 : t.$getItemOffset(m + 1) - t.$getItemOffset(m)), h = () => i.$getItemOffset(l) - i.$getItemOffset(c);
404
+ if ("nearest" === n) {
405
+ if (r < a || r >= c) return;
406
+ const e = d(), i = t.$getScrollOffset() + e, s = t.$getViewportSize() - e - h(), o = t.$getItemSize(r);
407
+ let l = t.$getItemOffset(r);
408
+ if (m === r) {
409
+ const e = (p + 1 < u.length ? u[p + 1] : c) - 1;
410
+ l = b(l, $(i, t.$getItemOffset(e) + t.$getItemSize(e) - o));
401
411
  }
402
- if (l < s + e) o = "start"; else {
403
- if (!(l + r > s + t.$getViewportSize() - i)) return;
404
- o = "end";
412
+ if (l < i) n = "start"; else {
413
+ if (!(l + o > i + s)) return;
414
+ n = "end";
405
415
  }
406
416
  }
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);
417
+ e.$scroll(o, () => {
418
+ const e = d(), i = t.$getItemSize(r) - (t.$getViewportSize() - e - h());
419
+ return t.$getItemOffset(r) - e + ("end" === n ? i : "center" === n ? i / 2 : 0);
410
420
  });
411
- }, ne = class t {
421
+ }, oe = class t {
412
422
  index=h.required();
413
423
  offset=h.required();
414
424
  hide=h.required();
@@ -520,9 +530,9 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
520
530
  },
521
531
  ngImport: e
522
532
  });
523
- }, oe = (e, t) => "_" + t, le = /*#__PURE__*/ new o("virtua-item-template"), ae = class i {
533
+ }, le = (e, t) => "_" + t, ae = /*#__PURE__*/ new o("virtua-item-template"), ce = class i {
524
534
  data=h.required();
525
- getKey=h(oe);
535
+ getKey=h(le);
526
536
  itemProps=h();
527
537
  bufferSize=h();
528
538
  scrollRef=h();
@@ -538,7 +548,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
538
548
  scrolled=f();
539
549
  scrollEnded=f();
540
550
  contentTemplate=p(l);
541
- m=d(le, {
551
+ m=d(ae, {
542
552
  optional: !0
543
553
  });
544
554
  template=u(() => this.m?.() ?? this.contentTemplate());
@@ -546,11 +556,11 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
546
556
  S;
547
557
  driver;
548
558
  v=d(r).nativeElement;
549
- N=d(t);
550
- $=g(void 0);
559
+ $=d(t);
560
+ N=g(void 0);
551
561
  isSSR=g(!1);
552
562
  R=u(() => {
553
- this.$();
563
+ this.N();
554
564
  const e = this.data().length, [t, i] = this.h.$getRange(this.bufferSize()), s = this.keepMounted(), r = [];
555
565
  if (s) {
556
566
  const n = new Set(s);
@@ -560,7 +570,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
560
570
  return r;
561
571
  });
562
572
  items=u(() => {
563
- this.$();
573
+ this.N();
564
574
  const e = this.h, t = this.data(), i = this.getKey(), s = this.itemProps();
565
575
  return this.R().map(r => {
566
576
  const n = t[r];
@@ -578,7 +588,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
578
588
  });
579
589
  });
580
590
  containerStyle=u(() => {
581
- this.$();
591
+ this.N();
582
592
  const e = this.horizontal(), t = this.h.$getTotalSize();
583
593
  return {
584
594
  display: "block",
@@ -604,7 +614,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
604
614
  }
605
615
  }), c({
606
616
  read: () => {
607
- this.$(), this.driver.$effect();
617
+ this.N(), this.driver.$effect();
608
618
  }
609
619
  }), d(s).onDestroy(() => {
610
620
  this.h?.$dispose(), this.driver?.$dispose();
@@ -616,7 +626,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
616
626
  const i = this.S = L(this.data().length, e, this.cacheProp()), s = this.h = _(i, t);
617
627
  this.driver = ((e, t) => {
618
628
  let i, s, r = k();
619
- const n = /* @__PURE__ */ new WeakMap, o = ee(s => {
629
+ const n = /* @__PURE__ */ new WeakMap, o = te(s => {
620
630
  const r = [];
621
631
  for (const {target: o, contentRect: {width: l, height: a}} of s) if (o === i) (l || a) && e.$update(4, t ? l : a); else if (o.offsetParent) {
622
632
  const e = n.get(o);
@@ -626,7 +636,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
626
636
  });
627
637
  return {
628
638
  $observe(n, l = n.parentElement) {
629
- o.i(i = l), s = te(e, l, l, t, t && "rtl" === getComputedStyle(l).direction, () => {
639
+ o.i(i = l), s = ie(e, l, l, t, t && "rtl" === getComputedStyle(l).direction, () => {
630
640
  const e = t ? "overflowX" : "overflowY", i = l.style, s = i[e];
631
641
  i[e] = "hidden", x(() => {
632
642
  i[e] = s;
@@ -648,12 +658,12 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
648
658
  $getBaseOffset: e.$getStartSpacerSize
649
659
  };
650
660
  })(s, this.horizontal()), s.$subscribe(1, e => {
651
- this.$.set(s.$getStateVersion()), e && this.N.tick();
661
+ this.N.set(s.$getStateVersion()), e && this.$.tick();
652
662
  }), s.$subscribe(4, () => {
653
663
  this.scrolled.emit(s.$getScrollOffset());
654
664
  }), s.$subscribe(8, () => {
655
665
  this.scrollEnded.emit();
656
- }), this.$.set(s.$getStateVersion());
666
+ }), this.N.set(s.$getStateVersion());
657
667
  }
658
668
  get cache() {
659
669
  return this.S.$snapshot();
@@ -677,14 +687,14 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
677
687
  return this.h.$getItemSize(e);
678
688
  }
679
689
  scrollToIndex(e, t) {
680
- se(this.driver, this.h, e, t);
690
+ re(this.driver, this.h, e, t);
681
691
  }
682
692
  scrollTo(e) {
683
- ie(this.driver, e);
693
+ se(this.driver, e);
684
694
  }
685
695
  scrollBy(e) {
686
696
  ((e, t, i) => {
687
- ie(e, i + t.$getScrollOffset());
697
+ se(e, i + t.$getScrollOffset());
688
698
  })(this.driver, this.h, e);
689
699
  }
690
700
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
@@ -809,7 +819,7 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
809
819
  isInline: !0,
810
820
  dependencies: [ {
811
821
  kind: "directive",
812
- type: e.forwardRef(() => ne),
822
+ type: e.forwardRef(() => oe),
813
823
  selector: "div[virtuaListItem]",
814
824
  inputs: [ "index", "offset", "hide", "horizontal", "isSSR", "resizer", "attrs" ]
815
825
  }, {
@@ -824,9 +834,9 @@ w), M = e => N(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
824
834
 
825
835
  i.OnPush;
826
836
 
827
- var ce = class t {
837
+ var ue = class t {
828
838
  data=h.required();
829
- getKey=h(oe);
839
+ getKey=h(le);
830
840
  itemProps=h();
831
841
  bufferSize=h();
832
842
  itemSize=h();
@@ -840,7 +850,7 @@ var ce = class t {
840
850
  scrolled=f();
841
851
  scrollEnded=f();
842
852
  template=p.required(l);
843
- virtualizer=y.required(ae);
853
+ virtualizer=y.required(ce);
844
854
  v=d(r).nativeElement;
845
855
  ngOnInit() {
846
856
  const e = this.horizontal(), t = this.v;
@@ -977,7 +987,7 @@ var ce = class t {
977
987
  viewQueries: [ {
978
988
  propertyName: "virtualizer",
979
989
  first: !0,
980
- predicate: ae,
990
+ predicate: ce,
981
991
  emitDistinctChangesOnly: !1,
982
992
  descendants: !0,
983
993
  isSignal: !0
@@ -987,13 +997,13 @@ var ce = class t {
987
997
  isInline: !0,
988
998
  dependencies: [ {
989
999
  kind: "directive",
990
- type: e.forwardRef(() => ae),
1000
+ type: e.forwardRef(() => ce),
991
1001
  selector: "virtua-virtualizer",
992
1002
  inputs: [ "data", "getKey", "itemProps", "bufferSize", "scrollRef", "itemSize", "ssrCount", "shift", "horizontal", "keepMounted", "cache", "startMargin" ],
993
1003
  outputs: [ "scrolled", "scrollEnded" ]
994
1004
  } ],
995
1005
  viewProviders: [ {
996
- provide: le,
1006
+ provide: ae,
997
1007
  useFactory: () => d(t).template
998
1008
  } ],
999
1009
  changeDetection: e.ChangeDetectionStrategy.OnPush
@@ -1002,9 +1012,9 @@ var ce = class t {
1002
1012
 
1003
1013
  i.OnPush;
1004
1014
 
1005
- var ue = class i {
1015
+ var pe = class i {
1006
1016
  data=h.required();
1007
- getKey=h(oe);
1017
+ getKey=h(le);
1008
1018
  bufferSize=h();
1009
1019
  itemSize=h();
1010
1020
  ssrCount=h();
@@ -1020,11 +1030,11 @@ var ue = class i {
1020
1030
  S;
1021
1031
  driver;
1022
1032
  v=d(r).nativeElement;
1023
- N=d(t);
1024
- $=g(void 0);
1033
+ $=d(t);
1034
+ N=g(void 0);
1025
1035
  isSSR=g(!1);
1026
1036
  items=u(() => {
1027
- this.$();
1037
+ this.N();
1028
1038
  const e = this.h, t = this.data(), i = this.getKey(), [s, r] = e.$getRange(this.bufferSize()), n = [];
1029
1039
  for (let o = s; o <= r; o++) {
1030
1040
  const s = t[o];
@@ -1039,7 +1049,7 @@ var ue = class i {
1039
1049
  return n;
1040
1050
  });
1041
1051
  containerStyle=u(() => {
1042
- this.$();
1052
+ this.N();
1043
1053
  const e = this.horizontal(), t = this.h.$getTotalSize();
1044
1054
  return {
1045
1055
  display: "block",
@@ -1062,7 +1072,7 @@ var ue = class i {
1062
1072
  }
1063
1073
  }), c({
1064
1074
  read: () => {
1065
- this.$(), this.driver.$effect();
1075
+ this.N(), this.driver.$effect();
1066
1076
  }
1067
1077
  }), d(s).onDestroy(() => {
1068
1078
  this.h?.$dispose(), this.driver?.$dispose();
@@ -1074,7 +1084,7 @@ var ue = class i {
1074
1084
  const i = this.S = L(this.data().length, e, this.cacheProp()), s = this.h = _(i, t);
1075
1085
  this.driver = ((e, t) => {
1076
1086
  let i, s, r, n, o, l = k();
1077
- const a = /* @__PURE__ */ new WeakMap, c = ee(s => {
1087
+ const a = /* @__PURE__ */ new WeakMap, c = te(s => {
1078
1088
  const r = [];
1079
1089
  for (const {target: e, contentRect: {width: n, height: l}} of s) if (e === i) o && o(); else if (e.offsetParent) {
1080
1090
  const i = a.get(e);
@@ -1092,7 +1102,7 @@ var ue = class i {
1092
1102
  };
1093
1103
  p.addEventListener("resize", g), c.i(m), r = () => {
1094
1104
  p.removeEventListener("resize", g);
1095
- }, s = te(e, p, m, t, d, null, f), l[1](!0);
1105
+ }, s = ie(e, p, m, t, d, null, f), l[1](!0);
1096
1106
  },
1097
1107
  $dispose() {
1098
1108
  r && r(), c.l(), s && s.l(), l[1](!1), l = k();
@@ -1109,12 +1119,12 @@ var ue = class i {
1109
1119
  $getBaseOffset: () => n()
1110
1120
  };
1111
1121
  })(s, this.horizontal()), s.$subscribe(1, e => {
1112
- this.$.set(s.$getStateVersion()), e && this.N.tick();
1122
+ this.N.set(s.$getStateVersion()), e && this.$.tick();
1113
1123
  }), s.$subscribe(4, () => {
1114
1124
  this.scrolled.emit();
1115
1125
  }), s.$subscribe(8, () => {
1116
1126
  this.scrollEnded.emit();
1117
- }), this.$.set(s.$getStateVersion());
1127
+ }), this.N.set(s.$getStateVersion());
1118
1128
  }
1119
1129
  get cache() {
1120
1130
  return this.S.$snapshot();
@@ -1135,7 +1145,7 @@ var ue = class i {
1135
1145
  return this.h.$getItemSize(e);
1136
1146
  }
1137
1147
  scrollToIndex(e, t) {
1138
- se(this.driver, this.h, e, t);
1148
+ re(this.driver, this.h, e, t);
1139
1149
  }
1140
1150
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
1141
1151
  minVersion: "12.0.0",
@@ -1231,7 +1241,7 @@ var ue = class i {
1231
1241
  isInline: !0,
1232
1242
  dependencies: [ {
1233
1243
  kind: "directive",
1234
- type: e.forwardRef(() => ne),
1244
+ type: e.forwardRef(() => oe),
1235
1245
  selector: "div[virtuaListItem]",
1236
1246
  inputs: [ "index", "offset", "hide", "horizontal", "isSSR", "resizer", "attrs" ]
1237
1247
  }, {
@@ -1246,7 +1256,7 @@ var ue = class i {
1246
1256
 
1247
1257
  i.OnPush;
1248
1258
 
1249
- var pe = class t {
1259
+ var me = class t {
1250
1260
  state=h.required();
1251
1261
  resizer=h.required();
1252
1262
  constructor() {
@@ -1303,7 +1313,7 @@ var pe = class t {
1303
1313
  },
1304
1314
  ngImport: e
1305
1315
  });
1306
- }, me = class t {
1316
+ }, de = class t {
1307
1317
  state=h.required();
1308
1318
  template=h.required();
1309
1319
  row=h.required();
@@ -1377,7 +1387,7 @@ var pe = class t {
1377
1387
  isInline: !0,
1378
1388
  dependencies: [ {
1379
1389
  kind: "directive",
1380
- type: e.forwardRef(() => pe),
1390
+ type: e.forwardRef(() => me),
1381
1391
  selector: "div[virtuaGridCell]",
1382
1392
  inputs: [ "state", "resizer" ]
1383
1393
  }, {
@@ -1388,7 +1398,7 @@ var pe = class t {
1388
1398
  } ],
1389
1399
  changeDetection: e.ChangeDetectionStrategy.OnPush
1390
1400
  });
1391
- }, de = class t {
1401
+ }, he = class t {
1392
1402
  state=h.required();
1393
1403
  template=h.required();
1394
1404
  rows=h.required();
@@ -1461,13 +1471,13 @@ var pe = class t {
1461
1471
  isInline: !0,
1462
1472
  dependencies: [ {
1463
1473
  kind: "directive",
1464
- type: e.forwardRef(() => me),
1474
+ type: e.forwardRef(() => de),
1465
1475
  selector: "div[virtuaGridRow]",
1466
1476
  inputs: [ "state", "template", "row", "cols", "resizer" ]
1467
1477
  } ],
1468
1478
  changeDetection: e.ChangeDetectionStrategy.OnPush
1469
1479
  });
1470
- }, he = class i {
1480
+ }, fe = class i {
1471
1481
  rows=h.required();
1472
1482
  cols=h.required();
1473
1483
  rowHeight=h.required();
@@ -1493,124 +1503,132 @@ var pe = class t {
1493
1503
  F;
1494
1504
  driver;
1495
1505
  v=d(r).nativeElement;
1496
- N=d(t);
1497
- $=g(void 0);
1506
+ $=d(t);
1507
+ N=g(void 0);
1498
1508
  ariaRowCount=d(new n("aria-rowcount"), {
1499
1509
  optional: !0
1500
1510
  });
1501
1511
  ariaColCount=d(new n("aria-colcount"), {
1502
1512
  optional: !0
1503
1513
  });
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;
1514
+ rowCount=u(() => this.N() && this.I.$getItemsLength());
1515
+ colCount=u(() => this.N() && this.P.$getItemsLength());
1516
+ plan=u(() => (this.N(), ((e, t, i, s, r = z, n = z, o = z, l) => {
1517
+ 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 = [];
1518
+ for (const e of o) e.rowIndex < a && e.colIndex < c && R.push(e);
1519
+ const x = y.length;
1520
+ x && (J(w, y, h, p), N.push(v));
1521
+ let q = n, F = 0;
1512
1522
  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);
1523
+ for (;F < R.length; F++) {
1524
+ const {rowIndex: e, colIndex: t} = R[F];
1525
+ w.push(e), J(w, y, e, p), N.push(t);
1516
1526
  }
1517
1527
  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);
1528
+ for (const t of q) {
1529
+ const i = t.rowIndex, s = t.colIndex, r = Y(t, a), n = U(t, c);
1530
+ if (i < a && s < c && (r - i > 1 || n - s > 1)) {
1531
+ const o = A(w, i, r, u, h, f, p);
1532
+ if (o && A(N, s, n, m, g, S, d)) R.push(t); else if (o) {
1533
+ const s = j(y, r - 1, p);
1534
+ (i < u || s >= 0 && y[s] >= i) && e.push(t);
1535
+ } else s < m && e.push(t);
1536
+ }
1524
1537
  }
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);
1538
+ q = e;
1539
+ } while (F < R.length);
1540
+ P(w), P(N);
1541
+ const k = X(w, a, u, h, f, p), C = X(N, c, m, g, S, d), O = k.length, T = C.length, M = /* @__PURE__ */ new Map, _ = [], V = [];
1542
+ for (const e of R) {
1543
+ const t = Y(e, a), i = U(e, c);
1544
+ _.push(t), V.push(i);
1545
+ const s = C.indexOf(e.colIndex);
1546
+ for (let r = k.indexOf(e.rowIndex); r < O && k[r] < t; r++) {
1547
+ const t = k[r] * c;
1548
+ for (let r = s; r < T && C[r] < i; r++) M.set(t + C[r], e);
1536
1549
  }
1537
1550
  }
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);
1551
+ const E = [];
1552
+ for (const e of C) E.push(!t.$isMeasurable(e) && null);
1553
+ const L = [], D = e.$getItemOffset(u), K = [];
1554
+ let G = K;
1555
+ const W = H.get(e), Q = /* @__PURE__ */ new Map;
1556
+ for (const i of k) {
1557
+ const s = i < u, r = i >= p, n = r || i >= h && i <= f, o = j(y, i, p), w = s ? 0 : r ? p : o < 0 ? -1 : y[o];
1558
+ if (i === w) {
1559
+ const e = s ? u : r ? a : o + 1 < x ? y[o + 1] : p;
1560
+ _.push(e);
1548
1561
  const t = [];
1549
- te.push({
1550
- $key: s ? -1 : r ? -2 : -3 - l,
1562
+ K.push({
1563
+ $key: s ? -1 : r ? -2 : -3 - w,
1551
1564
  $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)) continue;
1560
- const f = h ? X(h, m) : i + 1, y = h ? Y(h, d) : r + 1, v = f - i > 1, z = y - r > 1, R = v || z, C = R ? f - i : void 0, O = R ? y - r : void 0;
1561
- let T, M;
1562
- F = N(F, f);
1563
- const V = o ? t.$getItemOffset(r) : null, E = l ? t.$getTotalSize() - t.$getItemOffset(y - 1) - t.$getItemSize(y - 1) : null;
1564
- !1 !== q || v || (T = i, q = !0), !1 !== G[e] || z || (M = r, G[e] = !0);
1565
- const D = s ? "columnheader" : r === x && (o || a) ? "rowheader" : "cell", K = "cell" !== D && p && p.rowIndex === i && p.colIndex === r ? p.order : void 0;
1566
- let W;
1567
- if (b) {
1568
- for (;P < b.length && b[P].$col < r; ) P++;
1569
- P < b.length && (W = b[P]);
1570
- }
1571
- if (!W || W.$col !== r || W.$rowSpan !== C || W.$colSpan !== O || W.$start !== V || W.$end !== E || W.$measureRow !== T || W.$measureCol !== M || W.$role !== D || W.$sort !== K) {
1572
- const e = {
1573
- contain: "layout style",
1574
- display: "grid",
1575
- gridArea: R ? "1/l" + r + "/l" + f + "/l" + y : "1/l" + r
1576
- };
1577
- v && (e.height = "0px", e.minHeight = "100%", e.zIndex = 1), z && (e.width = "0px",
1578
- e.minWidth = "100%"), (o || l) && (o ? e.insetInlineStart = V + "px" : e.insetInlineEnd = E + "px",
1579
- e.position = "sticky", e.zIndex = 2), W = {
1580
- $col: r,
1581
- $rowSpan: C,
1582
- $colSpan: O,
1583
- $measureRow: T,
1584
- $measureCol: M,
1585
- $role: D,
1586
- $sort: K,
1587
- $style: e,
1588
- $start: V,
1589
- $end: E
1590
- }, k = !0;
1565
+ $style: ee(w, e, s || r ? 0 : null, r ? "bottom" : "top", 4)
1566
+ }), G = t;
1567
+ } else w < 0 && (G = K);
1568
+ const z = o >= 0 && i === w, $ = z ? D : null, N = i * c, R = W && W.get(i), I = R && R.$cells, P = [];
1569
+ let q = 0, F = !e.$isMeasurable(i) && null, k = i + 1, O = !1;
1570
+ for (let e = 0; e < T; e++) {
1571
+ const r = C[e], o = r < m, u = r >= d, p = u || r >= g && r <= S, h = M.get(N + r);
1572
+ if (h ? h.rowIndex === i && h.colIndex === r : n && p || s || z || o) {
1573
+ const n = h ? Y(h, a) : i + 1, p = h ? U(h, c) : r + 1, m = n - i, d = p - r, f = m > 1, g = d > 1, S = f || g;
1574
+ let y, w;
1575
+ k = b(k, n);
1576
+ const $ = o ? t.$getItemOffset(r) : null, N = u ? t.$getTotalSize() - t.$getItemOffset(p - 1) - t.$getItemSize(p - 1) : null;
1577
+ !1 !== F || f || (y = i, F = !0), !1 !== E[e] || g || (w = r, E[e] = !0);
1578
+ const R = s ? "columnheader" : r === v && (o || z) ? "rowheader" : "cell", x = S ? m : void 0, C = S ? d : void 0, T = "cell" !== R && l && l.rowIndex === i && l.colIndex === r ? l.order : void 0;
1579
+ let M;
1580
+ if (I) {
1581
+ const e = I.length;
1582
+ for (;q < e && I[q].$col < r; ) q++;
1583
+ q < e && I[q].$col === r && (M = I[q]);
1584
+ }
1585
+ if (!M || M.$rowSpan !== x || M.$colSpan !== C || M.$start !== $ || M.$end !== N || M.$measureRow !== y || M.$measureCol !== w || M.$role !== R || M.$sort !== T) {
1586
+ let e = "1/l" + r;
1587
+ S && (e += "/l" + n + "/l" + p);
1588
+ const t = {
1589
+ contain: "layout style",
1590
+ display: "grid",
1591
+ gridArea: e
1592
+ };
1593
+ f && (t.height = "0px", t.minHeight = "100%", t.zIndex = 1), g && (t.width = "0px",
1594
+ t.minWidth = "100%"), (o || u) && (t[o ? "insetInlineStart" : "insetInlineEnd"] = (o ? $ : N) + "px",
1595
+ t.position = "sticky", t.zIndex = 2), M = {
1596
+ $col: r,
1597
+ $rowSpan: x,
1598
+ $colSpan: C,
1599
+ $measureRow: y,
1600
+ $measureCol: w,
1601
+ $role: R,
1602
+ $sort: T,
1603
+ $style: t,
1604
+ $start: $,
1605
+ $end: N
1606
+ }, O = !0;
1607
+ }
1608
+ P.push(M);
1591
1609
  }
1592
- I.push(W);
1593
1610
  }
1594
- if (W.push(q), !I.length) continue;
1595
- const O = z && !k && z.$cells.length === I.length && z.$top === c ? z : {
1596
- $row: i,
1597
- $cells: I,
1598
- $style: Z(i, F, c, "top", 3),
1599
- $top: c
1600
- };
1601
- re.set(i, O), ie.push(O);
1611
+ if (L.push(F), P.length) {
1612
+ const e = R && !O && R.$cells.length === P.length && R.$top === $ ? R : {
1613
+ $row: i,
1614
+ $cells: P,
1615
+ $style: ee(i, k, $, "top", 3),
1616
+ $top: $
1617
+ };
1618
+ Q.set(i, e), G.push(e);
1619
+ }
1602
1620
  }
1603
- return H.set(e, re), {
1604
- $rowTemplate: U(e, M, W, P(D), "max-content", m),
1605
- $colTemplate: U(t, _, G, P(K), "minmax(max-content,auto)", d),
1606
- $groups: te
1621
+ return H.set(e, Q), {
1622
+ $rowTemplate: Z(e, k, L, P(_), "max-content", a),
1623
+ $colTemplate: Z(t, C, E, P(V), "minmax(max-content,auto)", c),
1624
+ $groups: K
1607
1625
  };
1608
- })(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())));
1626
+ })(this.q, this.F, this.I.$getRange(this.bufferSize()), this.P.$getRange(this.bufferSize()), this.sectionRows(), this.spans(), this.keepMounted(), this.ariaSort())));
1609
1627
  rowItem(e) {
1610
1628
  return K(this.rows(), e);
1611
1629
  }
1612
1630
  containerStyle=u(() => {
1613
- this.$();
1631
+ this.N();
1614
1632
  const {$rowTemplate: e, $colTemplate: t} = this.plan(), i = this.I.$getItemOffset(0), s = this.P.$getItemOffset(0);
1615
1633
  return {
1616
1634
  contain: "size style",
@@ -1628,9 +1646,9 @@ var pe = class t {
1628
1646
  });
1629
1647
  constructor() {
1630
1648
  m(() => {
1631
- const e = this.rows(), t = this.cols(), i = this.rowHeight(), s = this.colWidth();
1649
+ 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();
1632
1650
  this.I && S(() => {
1633
- W(this.I, this.q, e, i), W(this.P, this.F, t, s);
1651
+ W(this.I, this.q, e, i, r, n), W(this.P, this.F, t, s, o, l);
1634
1652
  });
1635
1653
  }), a({
1636
1654
  read: () => {
@@ -1638,7 +1656,7 @@ var pe = class t {
1638
1656
  }
1639
1657
  }), c({
1640
1658
  read: () => {
1641
- this.$(), this.driver.$effect();
1659
+ this.N(), this.driver.$effect();
1642
1660
  }
1643
1661
  }), d(s).onDestroy(() => {
1644
1662
  this.I?.$dispose(), this.P?.$dispose(), this.driver?.$dispose();
@@ -1650,7 +1668,7 @@ var pe = class t {
1650
1668
  const t = this.gap(), i = this.q = G(this.rows(), this.rowHeight(), t), s = this.F = G(this.cols(), this.colWidth(), t), r = this.I = _(i), n = this.P = _(s);
1651
1669
  this.driver = ((e, t) => {
1652
1670
  let i, s, r, n = k();
1653
- const o = /* @__PURE__ */ new WeakMap, l = /* @__PURE__ */ new WeakMap, a = ee(s => {
1671
+ const o = /* @__PURE__ */ new WeakMap, l = /* @__PURE__ */ new WeakMap, a = te(s => {
1654
1672
  const r = [], n = [];
1655
1673
  for (const {target: a, contentRect: {width: c, height: u}} of s) if (a === i) (c || u) && (e.$update(4, u),
1656
1674
  t.$update(4, c)); else if (a.offsetParent) {
@@ -1666,7 +1684,7 @@ var pe = class t {
1666
1684
  $observe(o) {
1667
1685
  const l = i = o.parentElement;
1668
1686
  a.i(l);
1669
- const c = (e, t) => te(e, l, l, t, t && "rtl" === getComputedStyle(l).direction, () => {
1687
+ const c = (e, t) => ie(e, l, l, t, t && "rtl" === getComputedStyle(l).direction, () => {
1670
1688
  const e = t ? "overflowX" : "overflowY", i = l.style, s = i[e];
1671
1689
  i[e] = "hidden", x(() => {
1672
1690
  i[e] = s;
@@ -1687,7 +1705,7 @@ var pe = class t {
1687
1705
  };
1688
1706
  })(r, n);
1689
1707
  const o = e => {
1690
- this.$.set(r.$getStateVersion() + n.$getStateVersion()), e && this.N.tick();
1708
+ this.N.set(r.$getStateVersion() + n.$getStateVersion()), e && this.$.tick();
1691
1709
  };
1692
1710
  r.$subscribe(1, o), n.$subscribe(1, o);
1693
1711
  let l = !1;
@@ -1738,9 +1756,9 @@ var pe = class t {
1738
1756
  return this.P.$getItemSize(e);
1739
1757
  }
1740
1758
  scrollToIndex(e) {
1741
- ((e, t, i, s = 0, r = z, n = 0, o = 0, l = 0, {rowIndex: a, colIndex: c, rowAlign: u, colAlign: p}) => {
1742
- null != a && re(e, t, s, r, n, a, u, !1), null != c && re(e, i, o, z, l, c, p, !0);
1743
- })(this.driver, this.I, this.P, this.headerRows(), this.sectionRows(), this.footerRows(), this.headerCols(), this.footerCols(), e);
1759
+ ((e, t, i, s, r, n = z, {rowIndex: o, colIndex: l, rowAlign: a, colAlign: c}) => {
1760
+ null != o && ne(e, t, s, n, o, a, !1), null != l && ne(e, i, r, z, l, c, !0);
1761
+ })(this.driver, this.I, this.P, this.q, this.F, this.sectionRows(), e);
1744
1762
  }
1745
1763
  scrollTo({vertical: e, horizontal: t}) {
1746
1764
  ((e, t, i) => {
@@ -1908,12 +1926,12 @@ var pe = class t {
1908
1926
  isInline: !0,
1909
1927
  dependencies: [ {
1910
1928
  kind: "directive",
1911
- type: e.forwardRef(() => de),
1929
+ type: e.forwardRef(() => he),
1912
1930
  selector: "div[virtuaGridRowGroup]",
1913
1931
  inputs: [ "state", "template", "rows", "cols", "resizer" ]
1914
1932
  }, {
1915
1933
  kind: "directive",
1916
- type: e.forwardRef(() => me),
1934
+ type: e.forwardRef(() => de),
1917
1935
  selector: "div[virtuaGridRow]",
1918
1936
  inputs: [ "state", "template", "row", "cols", "resizer" ]
1919
1937
  } ],
@@ -1923,5 +1941,5 @@ var pe = class t {
1923
1941
 
1924
1942
  i.OnPush, i.OnPush, i.OnPush;
1925
1943
 
1926
- export { he as VGrid, ce as VList, ae as Virtualizer, ue as WindowVirtualizer };
1944
+ export { fe as VGrid, ue as VList, ce as Virtualizer, pe as WindowVirtualizer };
1927
1945
  //# sourceMappingURL=index.js.map