virtua 0.52.10 → 0.53.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +286 -193
  2. package/lib/angular/VList.d.ts +3 -1
  3. package/lib/angular/VMasonry.d.ts +119 -0
  4. package/lib/angular/Virtualizer.d.ts +3 -1
  5. package/lib/angular/WindowVirtualizer.d.ts +3 -1
  6. package/lib/angular/index.d.ts +1 -0
  7. package/lib/angular/index.js +732 -333
  8. package/lib/angular/index.js.map +1 -1
  9. package/lib/core/index.cjs +180 -104
  10. package/lib/core/index.cjs.map +1 -1
  11. package/lib/core/index.d.ts +1 -0
  12. package/lib/core/index.js +257 -181
  13. package/lib/core/index.js.map +1 -1
  14. package/lib/core/layouts/masonry.d.ts +1 -0
  15. package/lib/index.cjs +562 -385
  16. package/lib/index.cjs.map +1 -1
  17. package/lib/index.js +579 -404
  18. package/lib/index.js.map +1 -1
  19. package/lib/react/VMasonry.d.ts +109 -0
  20. package/lib/react/Virtualizer.d.ts +3 -1
  21. package/lib/react/WindowVirtualizer.d.ts +3 -1
  22. package/lib/react/index.d.ts +2 -0
  23. package/lib/react/types.d.ts +1 -1
  24. package/lib/solid/VMasonry.d.ts +111 -0
  25. package/lib/solid/Virtualizer.d.ts +3 -1
  26. package/lib/solid/WindowVirtualizer.d.ts +3 -1
  27. package/lib/solid/index.cjs +726 -514
  28. package/lib/solid/index.cjs.map +1 -1
  29. package/lib/solid/index.d.ts +2 -0
  30. package/lib/solid/index.js +697 -494
  31. package/lib/solid/index.js.map +1 -1
  32. package/lib/solid/index.jsx +343 -8
  33. package/lib/solid/index.jsx.map +1 -1
  34. package/lib/solid/types.d.ts +1 -1
  35. package/lib/svelte/MasonryItem.svelte +49 -0
  36. package/lib/svelte/VGrid.svelte +1 -1
  37. package/lib/svelte/VList.svelte +1 -1
  38. package/lib/svelte/VMasonry.svelte +196 -0
  39. package/lib/svelte/VMasonry.type.d.ts +108 -0
  40. package/lib/svelte/Virtualizer.svelte +1 -1
  41. package/lib/svelte/Virtualizer.type.d.ts +3 -1
  42. package/lib/svelte/WindowVirtualizer.svelte +1 -1
  43. package/lib/svelte/WindowVirtualizer.type.d.ts +3 -1
  44. package/lib/svelte/index.d.ts +2 -0
  45. package/lib/svelte/index.js +2 -1
  46. package/lib/svelte/types.d.ts +2 -2
  47. package/lib/vue/VMasonry.d.ts +114 -0
  48. package/lib/vue/Virtualizer.d.ts +3 -1
  49. package/lib/vue/WindowVirtualizer.d.ts +3 -1
  50. package/lib/vue/index.cjs +632 -403
  51. package/lib/vue/index.cjs.map +1 -1
  52. package/lib/vue/index.d.ts +2 -0
  53. package/lib/vue/index.js +679 -455
  54. package/lib/vue/index.js.map +1 -1
  55. package/package.json +6 -16
@@ -1,26 +1,26 @@
1
1
  import * as e from "@angular/core";
2
2
 
3
- import { ApplicationRef as t, ChangeDetectionStrategy as i, DestroyRef as s, ElementRef as r, HostAttributeToken as n, InjectionToken as o, TemplateRef as l, afterNextRender as a, afterRenderEffect as c, computed as u, contentChild as p, effect as m, inject as d, input as h, output as f, signal as g, untracked as S, viewChild as y } from "@angular/core";
3
+ import { ApplicationRef as t, ChangeDetectionStrategy as i, DestroyRef as s, ElementRef as n, HostAttributeToken as r, InjectionToken as o, TemplateRef as l, afterNextRender as a, afterRenderEffect as c, computed as u, contentChild as p, effect as m, inject as d, input as h, output as f, signal as g, untracked as S, viewChild as y } from "@angular/core";
4
4
 
5
5
  import { NgTemplateOutlet as v } from "@angular/common";
6
6
 
7
- var w, z = [], {min: N, max: b, abs: $, floor: R} = Math, I = (e, t, i) => N(i, b(t, e)), P = e => e.sort((e, t) => e - t), x = setTimeout, q = clearTimeout, F = "function" == typeof queueMicrotask ? queueMicrotask : e => {
7
+ var z, N = [], {min: w, max: b, abs: $, floor: R} = Math, I = (e, t, i) => w(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;
11
11
  return [ new Promise(t => {
12
12
  e = t;
13
13
  }), e ];
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 => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $findIndex: t, $getItemOffset: i, $getItemSize: s, $isSizeEqual: r, $getTotalSize: n, $getLength: o, $setLength: l, $isEstimating: a, $resize: c, $relayout: u}, p = 0) => {
16
- let m = !!p, d = 1, h = 0, f = 0, g = 0, S = 0, y = 0, v = 0, w = 0, z = 0, R = null, I = [ 0, m ? b(p - 1, 0) : -1 ], P = !1;
17
- const x = /* @__PURE__ */ new Set, q = () => g - f, F = () => q() + y + S, k = e => i(e) - y, C = e => {
18
- if (2 === z) return !0;
19
- if (R && 1 === z) return e < R[0];
20
- const t = q(), i = k(e), r = s(e);
21
- return 1 !== w && 0 === z ? i + r <= t : i < t && i + r < t + h;
22
- }, O = e => {
23
- e && (T() && 0 !== w || R && 1 === z ? y += e : S += e);
14
+ }, O = e => e.ownerDocument, C = e => e.defaultView, T = () => (null == z && (z = /iP(hone|od|ad)/.test(navigator.userAgent) || "MacIntel" === navigator.platform && navigator.maxTouchPoints > 0),
15
+ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $findIndex: t, $getItemOffset: i, $getItemSize: s, $isSizeEqual: n, $getTotalSize: r, $getLength: o, $setLength: l, $isEstimating: a, $resize: c, $relayout: u}, p = 0) => {
16
+ let m = !!p, d = 1, h = 0, f = 0, g = 0, S = 0, y = 0, v = 0, z = 0, N = 0, R = null, I = [ 0, m ? b(p - 1, 0) : -1 ], P = !1;
17
+ const x = /* @__PURE__ */ new Set, q = () => g - f, F = () => q() + y + S, k = e => i(e) - y, O = e => {
18
+ if (2 === N) return !0;
19
+ if (R && 1 === N) return e < R[0];
20
+ const t = q(), i = k(e), n = s(e);
21
+ return 1 !== z && 0 === N ? i + n <= t : i < t && i + n < t + h;
22
+ }, C = e => {
23
+ e && (T() && 0 !== z || R && 1 === N ? y += e : S += e);
24
24
  };
25
25
  return {
26
26
  $dispose: () => {
@@ -31,23 +31,23 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
31
31
  if (!P || m) return I;
32
32
  let i, s;
33
33
  if (v) [i, s] = I; else {
34
- let r = b(0, F()), n = r + h;
35
- a() || (t = b(0, t), 1 !== w && (r -= t), 2 !== w && (n += t)), [i, s] = I = e(b(0, r), b(0, n)),
36
- R && (i = N(i, R[0]), s = b(s, R[1]));
34
+ let n = b(0, F()), r = n + h;
35
+ a() || (t = b(0, t), 1 !== z && (n -= t), 2 !== z && (r += t)), [i, s] = I = e(b(0, n), b(0, r)),
36
+ R && (i = w(i, R[0]), s = b(s, R[1]));
37
37
  }
38
- return [ b(i, 0), N(s, o() - 1) ];
38
+ return [ b(i, 0), w(s, o() - 1) ];
39
39
  },
40
40
  $findItemIndex: e => t(e - f),
41
- $isUnmeasuredItem: r,
41
+ $isUnmeasuredItem: n,
42
42
  $getItemOffset: k,
43
43
  $getItemSize: s,
44
44
  $getItemsLength: o,
45
45
  $getScrollOffset: () => g,
46
- $isScrolling: () => 0 !== w,
46
+ $isScrolling: () => 0 !== z,
47
47
  $getViewportSize: () => h,
48
48
  $getStartSpacerSize: () => f,
49
- $getTotalSize: n,
50
- t: () => (v = S, S = 0, [ v, 2 === z ]),
49
+ $getTotalSize: r,
50
+ t: () => (v = S, S = 0, [ v, 2 === N ]),
51
51
  $subscribe: (e, t) => {
52
52
  const i = [ e, t ];
53
53
  return x.add(i), () => {
@@ -59,25 +59,25 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
59
59
  switch (t) {
60
60
  case 1:
61
61
  {
62
- if (i === g && 0 === z) break;
62
+ if (i === g && 0 === N) break;
63
63
  const e = v;
64
64
  v = 0;
65
65
  const t = i - g, s = $(t);
66
- e && s < $(e) + 1 || 0 !== z || (w = t < 0 ? 2 : 1), m && (m = !1), g = i, a = 4;
67
- const r = q();
68
- r >= -h && r <= n() && (a += 1, o = s > h);
66
+ e && s < $(e) + 1 || 0 !== N || (z = t < 0 ? 2 : 1), m && (m = !1), g = i, a = 4;
67
+ const n = q();
68
+ n >= -h && n <= r() && (a += 1, o = s > h);
69
69
  break;
70
70
  }
71
71
 
72
72
  case 2:
73
- a = 8, 0 !== w && (s = !0, a += 1), w = 0, z = 0, R = null;
73
+ a = 8, 0 !== z && (s = !0, a += 1), z = 0, N = 0, R = null;
74
74
  break;
75
75
 
76
76
  case 3:
77
77
  {
78
- const e = i.filter(([e, t]) => !r(e, t));
78
+ const e = i.filter(([e, t]) => !n(e, t));
79
79
  if (!e.length) break;
80
- O(c(e, C, F(), h)), a = 3, o = !0;
80
+ C(c(e, O, F(), h)), a = 3, o = !0;
81
81
  break;
82
82
  }
83
83
 
@@ -86,7 +86,7 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
86
86
  break;
87
87
 
88
88
  case 5:
89
- i[1] ? (O(l(i[0], !0)), z = 2, a = 1) : (l(i[0]), a = 1);
89
+ i[1] ? (C(l(i[0], !0)), N = 2, a = 1) : (l(i[0]), a = 1);
90
90
  break;
91
91
 
92
92
  case 6:
@@ -94,13 +94,13 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
94
94
  break;
95
95
 
96
96
  case 7:
97
- z = 1;
97
+ N = 1;
98
98
  break;
99
99
 
100
100
  case 9:
101
101
  {
102
102
  const e = u(i, F());
103
- null != e && (O(e), a = 3);
103
+ null != e && (C(e), a = 3);
104
104
  break;
105
105
  }
106
106
 
@@ -116,31 +116,31 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
116
116
  const s = i ? "unshift" : "push";
117
117
  for (let i = 0; i < t; i++) e[s](-1);
118
118
  return e;
119
- }, E = (e, t, i, s = 0, r = t - 1) => {
120
- let n = s;
121
- for (;s <= r; ) {
122
- const t = R((s + r) / 2);
123
- e(t) <= i ? (n = t, s = t + 1) : r = t - 1;
119
+ }, E = (e, t, i, s = 0, n = t - 1) => {
120
+ let r = s;
121
+ for (;s <= n; ) {
122
+ const t = R((s + n) / 2);
123
+ e(t) <= i ? (r = t, s = t + 1) : n = t - 1;
124
124
  }
125
- return I(n, 0, t - 1);
125
+ return I(r, 0, t - 1);
126
126
  }, L = (e, t, i) => {
127
- let s = i && i[1] || t || 40, r = -1, n = 0, o = !t, l = 0;
128
- const a = i && i[0], c = a ? V(a.slice(0, N(e, a.length)), b(0, e - a.length)) : V([], e), u = V([], e + 1), p = e => {
127
+ let s = i && i[1] || t || 40, n = -1, r = 0, o = !t, l = 0;
128
+ const a = i && i[0], c = a ? V(a.slice(0, w(e, a.length)), b(0, e - a.length)) : V([], e), u = V([], e + 1), p = e => {
129
129
  const t = c[e];
130
130
  return -1 === t ? s : t;
131
131
  }, m = t => {
132
132
  if (!e) return 0;
133
- if (r >= t) return u[t];
134
- r < 0 && (u[0] = 0, r = 0);
135
- let i = r, s = u[i];
133
+ if (n >= t) return u[t];
134
+ n < 0 && (u[0] = 0, n = 0);
135
+ let i = n, s = u[i];
136
136
  for (;i < t; ) s += p(i), u[++i] = s;
137
- return r = t, s;
137
+ return n = t, s;
138
138
  };
139
139
  return {
140
140
  $getRange: (t, i) => {
141
- let s, r;
142
- return l = N(l, e - 1), m(l) <= t ? (r = E(m, e, i, l), s = E(m, e, t, l, r)) : (s = E(m, e, t, void 0, l),
143
- r = E(m, e, i, s)), l = s, [ s, r ];
141
+ let s, n;
142
+ return l = w(l, e - 1), m(l) <= t ? (n = E(m, e, i, l), s = E(m, e, t, l, n)) : (s = E(m, e, t, void 0, l),
143
+ n = E(m, e, i, s)), l = s, [ s, n ];
144
144
  },
145
145
  $findIndex: t => E(m, e, t),
146
146
  $getItemOffset: m,
@@ -148,14 +148,14 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
148
148
  $isSizeEqual: (e, t = -1) => c[e] === t,
149
149
  $resize: (t, i, l, a) => {
150
150
  let u = t.reduce((e, [t, s]) => i(t) ? e + (s - p(t)) : e, 0);
151
- for (const [e, i] of t) n += -1 === c[e] ? i : i - p(e), c[e] = i, r = N(e, r);
152
- if (o && a && n > a) {
151
+ for (const [e, i] of t) r += -1 === c[e] ? i : i - p(e), c[e] = i, n = w(e, n);
152
+ if (o && a && r > a) {
153
153
  let t = 0;
154
- const i = E(m, e, l + u), n = [];
154
+ const i = E(m, e, l + u), r = [];
155
155
  c.forEach((e, s) => {
156
- -1 !== e && (e && n.push(e), s < i && t++);
157
- }), r = -1, P(n);
158
- const a = n.length, p = a / 2 | 0, d = a % 2 == 0 ? (n[p - 1] + n[p]) / 2 : n[p], h = s;
156
+ -1 !== e && (e && r.push(e), s < i && t++);
157
+ }), n = -1, P(r);
158
+ const a = r.length, p = a / 2 | 0, d = a % 2 == 0 ? (r[p - 1] + r[p]) / 2 : r[p], h = s;
159
159
  u += ((s = d) - h) * b(i - t, 0), o = !1;
160
160
  }
161
161
  return u;
@@ -163,18 +163,18 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
163
163
  $getTotalSize: () => m(e),
164
164
  $getLength: () => e,
165
165
  $setLength: (t, i) => {
166
- const n = t - e;
167
- return r = i ? -1 : N(t - 1, r), e = t, n > 0 ? (V(u, n), V(c, n, i), s * n) : (u.splice(n),
168
- (i ? c.splice(0, -n) : c.splice(n)).reduce((e, t) => e - (-1 === t ? s : t), 0));
166
+ const r = t - e;
167
+ return n = i ? -1 : w(t - 1, n), e = t, r > 0 ? (V(u, r), V(c, r, i), s * r) : (u.splice(r),
168
+ (i ? c.splice(0, -r) : c.splice(r)).reduce((e, t) => e - (-1 === t ? s : t), 0));
169
169
  },
170
170
  $isEstimating: () => o,
171
171
  $snapshot: () => [ c.slice(), s ]
172
172
  };
173
- }, K = e => "number" == typeof e ? e : e.length, G = (e, t) => "number" == typeof e ? t : e[t], D = (e, t, i = 0) => {
173
+ }, K = e => "number" == typeof e ? e : e.length, D = (e, t) => "number" == typeof e ? t : e[t], G = (e, t, i = 0) => {
174
174
  let s = K(e);
175
- const r = "number" == typeof t, n = "auto" === t;
176
- let o = (r ? t : 40) + i, l = -1, a = 0, c = n, u = 0, p = 0, m = null;
177
- const d = [], h = [], f = [], g = e => n || !!f[e], S = () => {
175
+ const n = "number" == typeof t, r = "auto" === t;
176
+ let o = (n ? t : 40) + i, l = -1, a = 0, c = r, u = 0, p = 0, m = null;
177
+ const d = [], h = [], f = [], g = e => r || !!f[e], S = () => {
178
178
  d.length || V(d, s);
179
179
  }, y = e => {
180
180
  const t = d[e];
@@ -187,30 +187,30 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
187
187
  let t = l, i = h[t];
188
188
  for (;t < e; ) i += y(t), h[++t] = i;
189
189
  return l = e, i;
190
- }, w = (e, t) => {
191
- d[e] = t, l = N(e, l);
192
- }, z = e => d.length ? E(v, s, e) : o ? I(R(e / o), 0, s - 1) : 0, $ = () => N(u, s), x = () => b(s - p, $()), q = e => (d.length ? y(e) : o) - i;
190
+ }, z = (e, t) => {
191
+ d[e] = t, l = w(e, l);
192
+ }, N = e => d.length ? E(v, s, e) : o ? I(R(e / o), 0, s - 1) : 0, $ = () => w(u, s), x = () => b(s - p, $()), q = e => (d.length ? y(e) : o) - i;
193
193
  return {
194
194
  $getRange: (e, t) => {
195
- const r = v($()), n = v(s) - v(x()), o = e + (r ? r - i : 0);
196
- return [ z(o), z(b(o, t - (n ? n - i : 0))) ];
195
+ const n = v($()), r = v(s) - v(x()), o = e + (n ? n - i : 0);
196
+ return [ N(o), N(b(o, t - (r ? r - i : 0))) ];
197
197
  },
198
- $findIndex: z,
198
+ $findIndex: N,
199
199
  $getItemOffset: v,
200
200
  $getItemSize: q,
201
- $resize: (e, t, s, r) => {
202
- let n = e.reduce((e, [i, s]) => g(i) && t(i) ? e + (s - q(i)) : e, 0);
203
- for (const [t, s] of e) g(t) && (S(), a += -1 === d[t] ? s : s - q(t), w(t, s + i));
204
- if (c && r && a > r) {
201
+ $resize: (e, t, s, n) => {
202
+ let r = e.reduce((e, [i, s]) => g(i) && t(i) ? e + (s - q(i)) : e, 0);
203
+ for (const [t, s] of e) g(t) && (S(), a += -1 === d[t] ? s : s - q(t), z(t, s + i));
204
+ if (c && n && a > n) {
205
205
  let e = 0;
206
- const t = z(s + n), i = [];
207
- d.forEach((s, r) => {
208
- -1 !== s && (s && i.push(s), r < t && e++);
206
+ const t = N(s + r), i = [];
207
+ d.forEach((s, n) => {
208
+ -1 !== s && (s && i.push(s), n < t && e++);
209
209
  }), l = -1, P(i);
210
- const r = i.length, a = r / 2 | 0, u = r % 2 == 0 ? (i[a - 1] + i[a]) / 2 : i[a], p = o;
211
- n += ((o = u) - p) * b(t - e, 0), c = !1;
210
+ const n = i.length, a = n / 2 | 0, u = n % 2 == 0 ? (i[a - 1] + i[a]) / 2 : i[a], p = o;
211
+ r += ((o = u) - p) * b(t - e, 0), c = !1;
212
212
  }
213
- return n;
213
+ return r;
214
214
  },
215
215
  $isSizeEqual: (e, t = -1) => {
216
216
  const s = d.length ? d[e] : -1;
@@ -220,7 +220,7 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
220
220
  $getLength: () => s,
221
221
  $setLength: e => {
222
222
  const t = e - s;
223
- return l = N(e - 1, l), s = e, d.length && (t > 0 ? V(d, t) : d.splice(t)), 0;
223
+ return l = w(e - 1, l), s = e, d.length && (t > 0 ? V(d, t) : d.splice(t)), 0;
224
224
  },
225
225
  $isEstimating: () => c,
226
226
  $isMeasurable: g,
@@ -229,87 +229,87 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
229
229
  },
230
230
  $getPinnedStart: $,
231
231
  $getTrailStart: x,
232
- $getSizes: (e, t) => "number" == typeof t ? r ? t : null : r || n || "auto" === t ? null : e.map(e => null != e ? e[t] : null),
232
+ $getSizes: (e, t) => "number" == typeof t ? n ? t : null : n || r || "auto" === t ? null : e.map(e => null != e ? e[t] : null),
233
233
  $relayout: (e, t) => {
234
234
  if (null == e) return;
235
235
  if ("number" == typeof e) {
236
236
  const s = e + i;
237
237
  if (s === o) return;
238
- const r = z(t) * (s - o);
239
- return o = s, r;
238
+ const n = N(t) * (s - o);
239
+ return o = s, n;
240
240
  }
241
241
  if (e === m && s === f.length) return;
242
242
  m = e, f.length = s, S();
243
- const r = z(t), n = v(r);
243
+ const n = N(t), r = v(n);
244
244
  let l;
245
245
  for (let t = 0; t < s; t++) {
246
- const s = e[t], r = "number" != typeof s;
247
- if (!r || !f[t]) {
248
- f[t] = r;
249
- const e = r ? -1 : s + i;
250
- d[t] !== e && (w(t, e), l = !0);
246
+ const s = e[t], n = "number" != typeof s;
247
+ if (!n || !f[t]) {
248
+ f[t] = n;
249
+ const e = n ? -1 : s + i;
250
+ d[t] !== e && (z(t, e), l = !0);
251
251
  }
252
252
  }
253
- return l ? v(r) - n : void 0;
253
+ return l ? v(n) - r : void 0;
254
254
  }
255
255
  };
256
- }, W = /*#__PURE__*/ new WeakMap, H = (e, t, i) => {
256
+ }, W = /*#__PURE__*/ new WeakMap, B = (e, t, i) => {
257
257
  const s = [];
258
- for (const r of e) r >= t && r < i && s.push(r);
258
+ for (const n of e) n >= t && n < i && s.push(n);
259
259
  return P(s);
260
- }, B = (e, t, i) => {
260
+ }, H = (e, t, i) => {
261
261
  if (t >= i) return -1;
262
- let s = 0, r = e.length;
263
- for (;s < r; ) {
264
- const i = s + r >> 1;
265
- e[i] <= t ? s = i + 1 : r = i;
262
+ let s = 0, n = e.length;
263
+ for (;s < n; ) {
264
+ const i = s + n >> 1;
265
+ e[i] <= t ? s = i + 1 : n = i;
266
266
  }
267
267
  return s - 1;
268
- }, j = (e, t, i, s, r) => {
269
- const n = t.length;
270
- for (;i < n && t[i] < s; i++) {
268
+ }, j = (e, t, i, s, n) => {
269
+ const r = t.length;
270
+ for (;i < r && t[i] < s; i++) {
271
271
  const s = t[i];
272
- s > r && (e.push(s), r = s);
272
+ s > n && (e.push(s), n = s);
273
273
  }
274
274
  return i;
275
- }, A = (e, t, i, s, r, n) => {
275
+ }, A = (e, t, i, s, n, r) => {
276
276
  const o = [];
277
277
  for (let e = 0; e < i; e++) o.push(e);
278
278
  const l = j(o, e, 0, s, i - 1);
279
- for (let e = s; e <= r; e++) o.push(e);
280
- j(o, e, l, n, r);
281
- for (let e = n; e < t; e++) o.push(e);
279
+ for (let e = s; e <= n; e++) o.push(e);
280
+ j(o, e, l, r, n);
281
+ for (let e = r; e < t; e++) o.push(e);
282
282
  return o;
283
- }, J = (e, t) => N(e.rowIndex + (e.rowSpan || 1), t), Q = (e, t) => N(e.colIndex + (e.colSpan || 1), t), X = (e, t, i, s, r, n) => {
283
+ }, Q = (e, t) => w(e.rowIndex + (e.rowSpan || 1), t), J = (e, t) => w(e.colIndex + (e.colSpan || 1), t), X = (e, t, i, s, n, r) => {
284
284
  const o = t.length, l = s.length;
285
285
  let a = "[l0]", c = 0, u = 0, p = 0;
286
- for (;c < n; ) {
286
+ for (;c < r; ) {
287
287
  for (;p < l && s[p] <= c; ) p++;
288
- const m = u < o ? t[u] : n;
288
+ const m = u < o ? t[u] : r;
289
289
  let d, h;
290
290
  if (m === c) {
291
291
  d = c + 1;
292
292
  const t = i[u];
293
- h = null == t ? e.$getItemSize(c) + "px" : t ? r : "minmax(" + e.$getItemSize(c) + "px,auto)",
293
+ h = null == t ? e.$getItemSize(c) + "px" : t ? n : "minmax(" + e.$getItemSize(c) + "px,auto)",
294
294
  u++;
295
- } else d = N(m, p < l ? s[p] : n), h = "minmax(" + (e.$getItemOffset(d - 1) + e.$getItemSize(d - 1) - e.$getItemOffset(c)) + "px,auto)";
295
+ } else d = w(m, p < l ? s[p] : r), h = "minmax(" + (e.$getItemOffset(d - 1) + e.$getItemSize(d - 1) - e.$getItemOffset(c)) + "px,auto)";
296
296
  a += " " + h + " [l" + d + "]", c = d;
297
297
  }
298
298
  return a;
299
- }, Y = (e, t, i, s, r) => {
300
- const n = {
299
+ }, Y = (e, t, i, s, n) => {
300
+ const r = {
301
301
  display: "grid",
302
302
  gridTemplateRows: "subgrid",
303
303
  gridTemplateColumns: "subgrid",
304
304
  gridColumn: "1/-1",
305
305
  gridRow: "l" + e + "/l" + t
306
306
  };
307
- return null != i && (n.position = "sticky", n[s] = i + "px", n.zIndex = r), n;
307
+ return null != i && (r.position = "sticky", r[s] = i + "px", r.zIndex = n), r;
308
308
  }, U = e => {
309
309
  let t;
310
310
  return {
311
311
  i(i) {
312
- (t || (t = new (O(C(i)).ResizeObserver)(e))).observe(i);
312
+ (t || (t = new (C(O(i)).ResizeObserver)(e))).observe(i);
313
313
  },
314
314
  o(e) {
315
315
  t.unobserve(e);
@@ -318,20 +318,20 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
318
318
  t && t.disconnect();
319
319
  }
320
320
  };
321
- }, Z = (e, t, i, s, r, n, o) => {
321
+ }, Z = (e, t, i, s, n, r, o) => {
322
322
  let l, a, c = 0, u = !1, p = !1, m = !1, d = !1;
323
- const h = Date.now, f = s ? "scrollLeft" : "scrollTop", g = s ? "left" : "top", S = e => r ? -e : e, y = () => S(i[f]), v = (e, t) => {
323
+ const h = Date.now, f = s ? "scrollLeft" : "scrollTop", g = s ? "left" : "top", S = e => n ? -e : e, y = () => S(i[f]), v = (e, t) => {
324
324
  i.scrollTo({
325
325
  [g]: S(e),
326
326
  behavior: t ? "smooth" : "instant"
327
327
  });
328
- }, w = () => {
329
- if (u || p) return u = !1, void z();
330
- m = !1, e.$update(2);
331
328
  }, z = () => {
332
- q(a), a = x(w, 150);
329
+ if (u || p) return u = !1, void N();
330
+ m = !1, e.$update(2);
333
331
  }, N = () => {
334
- c = h(), m && (d = !0), o && e.$update(6, o()), e.$update(1, y()), z();
332
+ q(a), a = x(z, 150);
333
+ }, w = () => {
334
+ c = h(), m && (d = !0), o && e.$update(6, o()), e.$update(1, y()), N();
335
335
  }, b = t => {
336
336
  if (u || !e.$isScrolling() || t.ctrlKey) return;
337
337
  const i = h() - c;
@@ -341,86 +341,122 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
341
341
  }, R = () => {
342
342
  p = !1, T() && (m = !0);
343
343
  };
344
- return t.addEventListener("scroll", N), t.addEventListener("wheel", b, {
344
+ return t.addEventListener("scroll", w), t.addEventListener("wheel", b, {
345
345
  passive: !0
346
346
  }), t.addEventListener("touchstart", $, {
347
347
  passive: !0
348
348
  }), t.addEventListener("touchend", R, {
349
349
  passive: !0
350
350
  }), {
351
- u: N,
351
+ u: w,
352
352
  l: () => {
353
- t.removeEventListener("scroll", N), t.removeEventListener("wheel", b), t.removeEventListener("touchstart", $),
353
+ t.removeEventListener("scroll", w), t.removeEventListener("wheel", b), t.removeEventListener("touchstart", $),
354
354
  t.removeEventListener("touchend", R), q(a);
355
355
  },
356
356
  p: () => {
357
357
  const [t, s] = e.t();
358
358
  if (!t) return;
359
- d && n && n(), d = !1;
360
- const r = e.$getScrollOffset(), o = r + t, a = e.$getStartSpacerSize() + e.$getTotalSize() - e.$getViewportSize();
361
- o <= 0 || o >= a || r >= a ? v(o) : i.scrollBy({
359
+ d && r && r(), d = !1;
360
+ const n = e.$getScrollOffset(), o = n + t, a = e.$getStartSpacerSize() + e.$getTotalSize() - e.$getViewportSize();
361
+ o <= 0 || o >= a || n >= a ? v(o) : i.scrollBy({
362
362
  [g]: S(t),
363
363
  behavior: "instant"
364
364
  }), s && (l && l(), e.$getViewportSize() > e.$getTotalSize() && e.$update(1, y()));
365
365
  },
366
366
  m: (t, i) => {
367
- let s, r, n;
367
+ let s, n, r;
368
368
  l && l();
369
369
  const o = l = () => {
370
- s = !0, q(r), n && n();
370
+ s = !0, q(n), r && r();
371
371
  }, a = () => {
372
372
  if (!s) {
373
- if (e.$getViewportSize() && (q(r), r = x(o, 150)), i) {
373
+ if (e.$getViewportSize() && (q(n), n = x(o, 150)), i) {
374
374
  for (let [t, i] = e.$getRange(0); t <= i; t++) if (e.$isUnmeasuredItem(t)) return;
375
375
  o();
376
376
  }
377
377
  e.$update(7), v(t(), i);
378
378
  }
379
- }, c = () => {
379
+ };
380
+ i && e.$update(8, t()), (() => {
380
381
  if (s) return;
381
382
  let t;
382
- n = e.$subscribe(2, () => {
383
+ r = e.$subscribe(2, () => {
383
384
  t || (t = !0, F(() => {
384
385
  t = !1, a();
385
386
  }));
386
387
  }), a();
387
- };
388
- i ? (e.$update(8, t()), F(c)) : c();
388
+ })();
389
389
  }
390
390
  };
391
391
  }, ee = (e, t) => {
392
+ let i, s, n = k(), r = !0;
393
+ const o = /* @__PURE__ */ new WeakMap, l = U(n => {
394
+ const l = [];
395
+ for (const {target: a, contentRect: {width: c, height: u}} of n) if (a === i) c || u ? (r || s.u(),
396
+ r = !0, e.$update(4, t ? c : u)) : r = !1; else if (a.offsetParent) {
397
+ const e = o.get(a);
398
+ null != e && l.push([ e, t ? c : u ]);
399
+ }
400
+ l.length && e.$update(3, l);
401
+ });
402
+ return {
403
+ $observe(r, o = r.parentElement) {
404
+ l.i(i = o), s = Z(e, o, o, t, t && "rtl" === getComputedStyle(o).direction, () => {
405
+ const e = t ? "overflowX" : "overflowY", i = o.style, s = i[e];
406
+ i[e] = "hidden", x(() => {
407
+ i[e] = s;
408
+ });
409
+ }), n[1](!0);
410
+ },
411
+ $dispose() {
412
+ l.l(), s && s.l(), n[1](!1), n = k();
413
+ },
414
+ $observeItem: (e, t) => (o.set(e, t), l.i(e), () => {
415
+ o.delete(e), l.o(e);
416
+ }),
417
+ async $scroll(e, t) {
418
+ await n[0] && s.m(e, t);
419
+ },
420
+ $effect() {
421
+ s && s.p();
422
+ },
423
+ $getBaseOffset: e.$getStartSpacerSize
424
+ };
425
+ }, te = (e, t) => {
392
426
  e.$scroll(() => t);
393
- }, te = (e, t, i, {align: s, smooth: r, offset: n = 0} = {}) => {
427
+ }, ie = (e, t, i) => {
428
+ te(e, i + t.$getScrollOffset());
429
+ }, se = (e, t, i, {align: s, smooth: n, offset: r = 0} = {}) => {
394
430
  if (i = I(i, 0, t.$getItemsLength() - 1), "nearest" === s) {
395
- const e = t.$getItemOffset(i), r = t.$getScrollOffset();
396
- if (e < r) s = "start"; else {
397
- if (!(e + t.$getItemSize(i) > r + t.$getViewportSize())) return;
431
+ const e = t.$getItemOffset(i), n = t.$getScrollOffset();
432
+ if (e < n) s = "start"; else {
433
+ if (!(e + t.$getItemSize(i) > n + t.$getViewportSize())) return;
398
434
  s = "end";
399
435
  }
400
436
  }
401
- 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);
402
- }, ie = (e, t, i, s, r, n, o) => {
437
+ e.$scroll(() => r + e.$getBaseOffset() + t.$getItemOffset(i) + ("end" === s ? t.$getItemSize(i) - t.$getViewportSize() : "center" === s ? (t.$getItemSize(i) - t.$getViewportSize()) / 2 : 0), n);
438
+ }, ne = (e, t, i, s, n, r, o) => {
403
439
  const l = t.$getItemsLength(), a = i.$getPinnedStart(), c = i.$getTrailStart();
404
- r = I(r, 0, l - 1);
405
- const u = H(s, a, c), p = B(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);
406
- if ("nearest" === n) {
407
- if (r < a || r >= c) return;
408
- const e = d(), i = t.$getScrollOffset() + e, s = t.$getViewportSize() - e - h(), o = t.$getItemSize(r);
409
- let l = t.$getItemOffset(r);
410
- if (m === r) {
440
+ n = I(n, 0, l - 1);
441
+ const u = B(s, a, c), p = H(u, n, c), m = p < 0 ? -1 : u[p], d = () => i.$getItemOffset(a) + (m < 0 || m === n ? 0 : i.$getItemOffset(m + 1) - i.$getItemOffset(m)), h = () => i.$getItemOffset(l) - i.$getItemOffset(c);
442
+ if ("nearest" === r) {
443
+ if (n < a || n >= c) return;
444
+ const e = d(), i = t.$getScrollOffset() + e, s = t.$getViewportSize() - e - h(), o = t.$getItemSize(n);
445
+ let l = t.$getItemOffset(n);
446
+ if (m === n) {
411
447
  const e = (p + 1 < u.length ? u[p + 1] : c) - 1;
412
- l = b(l, N(i, t.$getItemOffset(e) + t.$getItemSize(e) - o));
448
+ l = b(l, w(i, t.$getItemOffset(e) + t.$getItemSize(e) - o));
413
449
  }
414
- if (l < i) n = "start"; else {
450
+ if (l < i) r = "start"; else {
415
451
  if (!(l + o > i + s)) return;
416
- n = "end";
452
+ r = "end";
417
453
  }
418
454
  }
419
455
  e.$scroll(o, () => {
420
- const e = d(), i = t.$getItemSize(r) - (t.$getViewportSize() - e - h());
421
- return t.$getItemOffset(r) - e + ("end" === n ? i : "center" === n ? i / 2 : 0);
456
+ const e = d(), i = t.$getItemSize(n) - (t.$getViewportSize() - e - h());
457
+ return t.$getItemOffset(n) - e + ("end" === r ? i : "center" === r ? i / 2 : 0);
422
458
  });
423
- }, se = class t {
459
+ }, re = class t {
424
460
  index=h.required();
425
461
  offset=h.required();
426
462
  hide=h.required();
@@ -441,7 +477,7 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
441
477
  return e && (s.display = "inline-flex"), s;
442
478
  });
443
479
  constructor() {
444
- const e = d(r).nativeElement;
480
+ const e = d(n).nativeElement;
445
481
  let t;
446
482
  c({
447
483
  read: () => {
@@ -532,9 +568,9 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
532
568
  },
533
569
  ngImport: e
534
570
  });
535
- }, re = (e, t) => "_" + t, ne = /*#__PURE__*/ new o("virtua-item-template"), oe = class i {
571
+ }, oe = (e, t) => "_" + t, le = /*#__PURE__*/ new o("virtua-item-template"), ae = class i {
536
572
  data=h.required();
537
- getKey=h(re);
573
+ getKey=h(oe);
538
574
  itemProps=h();
539
575
  bufferSize=h();
540
576
  scrollRef=h();
@@ -550,41 +586,41 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
550
586
  scrolled=f();
551
587
  scrollEnded=f();
552
588
  contentTemplate=p(l);
553
- h=d(ne, {
589
+ h=d(le, {
554
590
  optional: !0
555
591
  });
556
592
  template=u(() => this.h?.() ?? this.contentTemplate());
557
593
  S;
558
594
  v;
559
595
  driver;
560
- N=d(r).nativeElement;
596
+ N=d(n).nativeElement;
561
597
  $=d(t);
562
598
  R=g(void 0);
563
599
  isSSR=g(!1);
564
600
  I=u(() => {
565
601
  this.R();
566
- const e = this.data().length, [t, i] = this.S.$getRange(this.bufferSize()), s = this.keepMounted(), r = [];
602
+ const e = this.data().length, [t, i] = this.S.$getRange(this.bufferSize()), s = this.keepMounted(), n = [];
567
603
  if (s) {
568
- const n = new Set(s);
569
- for (let e = t; e <= i; e++) n.add(e);
570
- for (const t of P([ ...n ])) t < e && r.push(t);
571
- } else for (let e = t; e <= i; e++) r.push(e);
572
- return r;
604
+ const r = new Set(s);
605
+ for (let e = t; e <= i; e++) r.add(e);
606
+ for (const t of P([ ...r ])) t < e && n.push(t);
607
+ } else for (let e = t; e <= i; e++) n.push(e);
608
+ return n;
573
609
  });
574
610
  items=u(() => {
575
611
  this.R();
576
612
  const e = this.S, t = this.data(), i = this.getKey(), s = this.itemProps();
577
- return this.I().map(r => {
578
- const n = t[r];
613
+ return this.I().map(n => {
614
+ const r = t[n];
579
615
  return {
580
- key: i(n, r),
581
- index: r,
582
- data: n,
583
- offset: e.$getItemOffset(r),
584
- hide: e.$isUnmeasuredItem(r),
616
+ key: i(r, n),
617
+ index: n,
618
+ data: r,
619
+ offset: e.$getItemOffset(n),
620
+ hide: e.$isUnmeasuredItem(n),
585
621
  attrs: s?.({
586
- item: n,
587
- index: r
622
+ item: r,
623
+ index: n
588
624
  })
589
625
  };
590
626
  });
@@ -626,41 +662,7 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
626
662
  const e = this.itemSize(), t = this.ssrCount();
627
663
  this.isSSR.set(!!t);
628
664
  const i = this.v = L(this.data().length, e, this.cacheProp()), s = this.S = _(i, t);
629
- this.driver = ((e, t) => {
630
- let i, s, r = k(), n = !0;
631
- const o = /* @__PURE__ */ new WeakMap, l = U(r => {
632
- const l = [];
633
- for (const {target: a, contentRect: {width: c, height: u}} of r) if (a === i) c || u ? (n || s.u(),
634
- n = !0, e.$update(4, t ? c : u)) : n = !1; else if (a.offsetParent) {
635
- const e = o.get(a);
636
- null != e && l.push([ e, t ? c : u ]);
637
- }
638
- l.length && e.$update(3, l);
639
- });
640
- return {
641
- $observe(n, o = n.parentElement) {
642
- l.i(i = o), s = Z(e, o, o, t, t && "rtl" === getComputedStyle(o).direction, () => {
643
- const e = t ? "overflowX" : "overflowY", i = o.style, s = i[e];
644
- i[e] = "hidden", x(() => {
645
- i[e] = s;
646
- });
647
- }), r[1](!0);
648
- },
649
- $dispose() {
650
- l.l(), s && s.l(), r[1](!1), r = k();
651
- },
652
- $observeItem: (e, t) => (o.set(e, t), l.i(e), () => {
653
- o.delete(e), l.o(e);
654
- }),
655
- async $scroll(e, t) {
656
- await r[0] && s.m(e, t);
657
- },
658
- $effect() {
659
- s && s.p();
660
- },
661
- $getBaseOffset: e.$getStartSpacerSize
662
- };
663
- })(s, this.horizontal()), s.$subscribe(1, e => {
665
+ this.driver = ee(s, this.horizontal()), s.$subscribe(1, e => {
664
666
  this.R.set(s.$getStateVersion()), e && this.$.tick();
665
667
  }), s.$subscribe(4, () => {
666
668
  this.scrolled.emit(s.$getScrollOffset());
@@ -690,15 +692,13 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
690
692
  return this.S.$getItemSize(e);
691
693
  }
692
694
  scrollToIndex(e, t) {
693
- te(this.driver, this.S, e, t);
695
+ se(this.driver, this.S, e, t);
694
696
  }
695
697
  scrollTo(e) {
696
- ee(this.driver, e);
698
+ te(this.driver, e);
697
699
  }
698
700
  scrollBy(e) {
699
- ((e, t, i) => {
700
- ee(e, i + t.$getScrollOffset());
701
- })(this.driver, this.S, e);
701
+ ie(this.driver, this.S, e);
702
702
  }
703
703
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
704
704
  minVersion: "12.0.0",
@@ -822,7 +822,7 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
822
822
  isInline: !0,
823
823
  dependencies: [ {
824
824
  kind: "directive",
825
- type: e.forwardRef(() => se),
825
+ type: e.forwardRef(() => re),
826
826
  selector: "div[virtuaListItem]",
827
827
  inputs: [ "index", "offset", "hide", "horizontal", "isSSR", "resizer", "attrs" ]
828
828
  }, {
@@ -837,9 +837,9 @@ w), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
837
837
 
838
838
  i.OnPush;
839
839
 
840
- var le = class t {
840
+ var ce = class t {
841
841
  data=h.required();
842
- getKey=h(re);
842
+ getKey=h(oe);
843
843
  itemProps=h();
844
844
  bufferSize=h();
845
845
  itemSize=h();
@@ -853,11 +853,11 @@ var le = class t {
853
853
  scrolled=f();
854
854
  scrollEnded=f();
855
855
  template=p.required(l);
856
- virtualizer=y.required(oe);
857
- N=d(r).nativeElement;
856
+ virtualizer=y.required(ae);
857
+ N=d(n).nativeElement;
858
858
  ngOnInit() {
859
859
  const e = this.horizontal(), t = this.N;
860
- t.setAttribute("style", `display:${e ? "inline-block" : "block"};${e ? "overflow-x" : "overflow-y"}:auto;contain:strict;width:100%;height:100%;` + (t.getAttribute("style") || ""));
860
+ t.setAttribute("style", `display:block;${e ? "overflow-x" : "overflow-y"}:auto;contain:strict;width:100%;height:100%;` + (t.getAttribute("style") || ""));
861
861
  }
862
862
  get cache() {
863
863
  return this.virtualizer().cache;
@@ -990,7 +990,7 @@ var le = class t {
990
990
  viewQueries: [ {
991
991
  propertyName: "virtualizer",
992
992
  first: !0,
993
- predicate: oe,
993
+ predicate: ae,
994
994
  emitDistinctChangesOnly: !1,
995
995
  descendants: !0,
996
996
  isSignal: !0
@@ -1000,13 +1000,13 @@ var le = class t {
1000
1000
  isInline: !0,
1001
1001
  dependencies: [ {
1002
1002
  kind: "directive",
1003
- type: e.forwardRef(() => oe),
1003
+ type: e.forwardRef(() => ae),
1004
1004
  selector: "virtua-virtualizer",
1005
1005
  inputs: [ "data", "getKey", "itemProps", "bufferSize", "scrollRef", "itemSize", "ssrCount", "shift", "horizontal", "keepMounted", "cache", "startMargin" ],
1006
1006
  outputs: [ "scrolled", "scrollEnded" ]
1007
1007
  } ],
1008
1008
  viewProviders: [ {
1009
- provide: ne,
1009
+ provide: le,
1010
1010
  useFactory: () => d(t).template
1011
1011
  } ],
1012
1012
  changeDetection: e.ChangeDetectionStrategy.OnPush
@@ -1015,9 +1015,9 @@ var le = class t {
1015
1015
 
1016
1016
  i.OnPush;
1017
1017
 
1018
- var ae = class i {
1018
+ var ue = class i {
1019
1019
  data=h.required();
1020
- getKey=h(re);
1020
+ getKey=h(oe);
1021
1021
  bufferSize=h();
1022
1022
  itemSize=h();
1023
1023
  ssrCount=h();
@@ -1032,16 +1032,16 @@ var ae = class i {
1032
1032
  S;
1033
1033
  v;
1034
1034
  driver;
1035
- N=d(r).nativeElement;
1035
+ N=d(n).nativeElement;
1036
1036
  $=d(t);
1037
1037
  R=g(void 0);
1038
1038
  isSSR=g(!1);
1039
1039
  items=u(() => {
1040
1040
  this.R();
1041
- const e = this.S, t = this.data(), i = this.getKey(), [s, r] = e.$getRange(this.bufferSize()), n = [];
1042
- for (let o = s; o <= r; o++) {
1041
+ const e = this.S, t = this.data(), i = this.getKey(), [s, n] = e.$getRange(this.bufferSize()), r = [];
1042
+ for (let o = s; o <= n; o++) {
1043
1043
  const s = t[o];
1044
- n.push({
1044
+ r.push({
1045
1045
  key: i(s, o),
1046
1046
  index: o,
1047
1047
  data: s,
@@ -1049,7 +1049,7 @@ var ae = class i {
1049
1049
  hide: e.$isUnmeasuredItem(o)
1050
1050
  });
1051
1051
  }
1052
- return n;
1052
+ return r;
1053
1053
  });
1054
1054
  containerStyle=u(() => {
1055
1055
  this.R();
@@ -1086,29 +1086,29 @@ var ae = class i {
1086
1086
  this.isSSR.set(!!t);
1087
1087
  const i = this.v = L(this.data().length, e, this.cacheProp()), s = this.S = _(i, t);
1088
1088
  this.driver = ((e, t) => {
1089
- let i, s, r, n, o, l = k();
1089
+ let i, s, n, r, o, l = k();
1090
1090
  const a = /* @__PURE__ */ new WeakMap, c = U(s => {
1091
- const r = [];
1092
- for (const {target: e, contentRect: {width: n, height: l}} of s) if (e === i) o && o(); else if (e.offsetParent) {
1091
+ const n = [];
1092
+ for (const {target: e, contentRect: {width: r, height: l}} of s) if (e === i) o && o(); else if (e.offsetParent) {
1093
1093
  const i = a.get(e);
1094
- null != i && r.push([ i, t ? n : l ]);
1094
+ null != i && n.push([ i, t ? r : l ]);
1095
1095
  }
1096
- r.length && e.$update(3, r);
1096
+ n.length && e.$update(3, n);
1097
1097
  });
1098
1098
  return {
1099
1099
  $observe(a) {
1100
- const u = C(a), p = O(u), m = i = u.scrollingElement, d = t && "rtl" === getComputedStyle(m).direction, h = (e, t, i, s, r = 0) => {
1101
- const n = s ? "offsetLeft" : "offsetTop", o = r + (d ? t.clientWidth - e[n] - e.offsetWidth : e[n]), l = e.offsetParent;
1100
+ const u = O(a), p = C(u), m = i = u.scrollingElement, d = t && "rtl" === getComputedStyle(m).direction, h = (e, t, i, s, n = 0) => {
1101
+ const r = s ? "offsetLeft" : "offsetTop", o = n + (d ? t.clientWidth - e[r] - e.offsetWidth : e[r]), l = e.offsetParent;
1102
1102
  return e !== i && l ? h(l, t, i, s, o) : o;
1103
- }, f = n = () => h(a, m, u.body, t), g = o = () => {
1103
+ }, f = r = () => h(a, m, u.body, t), g = o = () => {
1104
1104
  e.$update(4, m[t ? "clientWidth" : "clientHeight"]);
1105
1105
  };
1106
- p.addEventListener("resize", g), c.i(m), r = () => {
1106
+ p.addEventListener("resize", g), c.i(m), n = () => {
1107
1107
  p.removeEventListener("resize", g);
1108
1108
  }, s = Z(e, p, m, t, d, null, f), l[1](!0);
1109
1109
  },
1110
1110
  $dispose() {
1111
- r && r(), c.l(), s && s.l(), l[1](!1), l = k();
1111
+ n && n(), c.l(), s && s.l(), l[1](!1), l = k();
1112
1112
  },
1113
1113
  $observeItem: (e, t) => (a.set(e, t), c.i(e), () => {
1114
1114
  a.delete(e), c.o(e);
@@ -1119,7 +1119,7 @@ var ae = class i {
1119
1119
  $effect() {
1120
1120
  s && s.p();
1121
1121
  },
1122
- $getBaseOffset: () => n()
1122
+ $getBaseOffset: () => r()
1123
1123
  };
1124
1124
  })(s, this.horizontal()), s.$subscribe(1, e => {
1125
1125
  this.R.set(s.$getStateVersion()), e && this.$.tick();
@@ -1148,7 +1148,7 @@ var ae = class i {
1148
1148
  return this.S.$getItemSize(e);
1149
1149
  }
1150
1150
  scrollToIndex(e, t) {
1151
- te(this.driver, this.S, e, t);
1151
+ se(this.driver, this.S, e, t);
1152
1152
  }
1153
1153
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
1154
1154
  minVersion: "12.0.0",
@@ -1244,7 +1244,7 @@ var ae = class i {
1244
1244
  isInline: !0,
1245
1245
  dependencies: [ {
1246
1246
  kind: "directive",
1247
- type: e.forwardRef(() => se),
1247
+ type: e.forwardRef(() => re),
1248
1248
  selector: "div[virtuaListItem]",
1249
1249
  inputs: [ "index", "offset", "hide", "horizontal", "isSSR", "resizer", "attrs" ]
1250
1250
  }, {
@@ -1259,19 +1259,19 @@ var ae = class i {
1259
1259
 
1260
1260
  i.OnPush;
1261
1261
 
1262
- var ce = class t {
1262
+ var pe = class t {
1263
1263
  state=h.required();
1264
1264
  resizer=h.required();
1265
1265
  constructor() {
1266
- const e = d(r).nativeElement, t = u(() => this.state().$measureRow), i = u(() => this.state().$measureCol);
1267
- let n;
1266
+ const e = d(n).nativeElement, t = u(() => this.state().$measureRow), i = u(() => this.state().$measureCol);
1267
+ let r;
1268
1268
  c({
1269
1269
  read: () => {
1270
- const s = t(), r = i();
1271
- n && n(), n = null == s && null == r ? void 0 : S(this.resizer)(e, s, r);
1270
+ const s = t(), n = i();
1271
+ r && r(), r = null == s && null == n ? void 0 : S(this.resizer)(e, s, n);
1272
1272
  }
1273
1273
  }), d(s).onDestroy(() => {
1274
- n && n();
1274
+ r && r();
1275
1275
  });
1276
1276
  }
1277
1277
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
@@ -1316,14 +1316,14 @@ var ce = class t {
1316
1316
  },
1317
1317
  ngImport: e
1318
1318
  });
1319
- }, ue = class t {
1319
+ }, me = class t {
1320
1320
  state=h.required();
1321
1321
  template=h.required();
1322
1322
  row=h.required();
1323
1323
  cols=h.required();
1324
1324
  resizer=h.required();
1325
1325
  colItem(e) {
1326
- return G(this.cols(), e);
1326
+ return D(this.cols(), e);
1327
1327
  }
1328
1328
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
1329
1329
  minVersion: "12.0.0",
@@ -1390,7 +1390,7 @@ var ce = class t {
1390
1390
  isInline: !0,
1391
1391
  dependencies: [ {
1392
1392
  kind: "directive",
1393
- type: e.forwardRef(() => ce),
1393
+ type: e.forwardRef(() => pe),
1394
1394
  selector: "div[virtuaGridCell]",
1395
1395
  inputs: [ "state", "resizer" ]
1396
1396
  }, {
@@ -1401,14 +1401,14 @@ var ce = class t {
1401
1401
  } ],
1402
1402
  changeDetection: e.ChangeDetectionStrategy.OnPush
1403
1403
  });
1404
- }, pe = class t {
1404
+ }, de = class t {
1405
1405
  state=h.required();
1406
1406
  template=h.required();
1407
1407
  rows=h.required();
1408
1408
  cols=h.required();
1409
1409
  resizer=h.required();
1410
1410
  rowItem(e) {
1411
- return G(this.rows(), e);
1411
+ return D(this.rows(), e);
1412
1412
  }
1413
1413
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
1414
1414
  minVersion: "12.0.0",
@@ -1474,13 +1474,13 @@ var ce = class t {
1474
1474
  isInline: !0,
1475
1475
  dependencies: [ {
1476
1476
  kind: "directive",
1477
- type: e.forwardRef(() => ue),
1477
+ type: e.forwardRef(() => me),
1478
1478
  selector: "div[virtuaGridRow]",
1479
1479
  inputs: [ "state", "template", "row", "cols", "resizer" ]
1480
1480
  } ],
1481
1481
  changeDetection: e.ChangeDetectionStrategy.OnPush
1482
1482
  });
1483
- }, me = class i {
1483
+ }, he = class i {
1484
1484
  rows=h.required();
1485
1485
  cols=h.required();
1486
1486
  rowHeight=h.required();
@@ -1505,20 +1505,20 @@ var ce = class t {
1505
1505
  F;
1506
1506
  k;
1507
1507
  driver;
1508
- N=d(r).nativeElement;
1508
+ N=d(n).nativeElement;
1509
1509
  $=d(t);
1510
1510
  R=g(void 0);
1511
- ariaRowCount=d(new n("aria-rowcount"), {
1511
+ ariaRowCount=d(new r("aria-rowcount"), {
1512
1512
  optional: !0
1513
1513
  });
1514
- ariaColCount=d(new n("aria-colcount"), {
1514
+ ariaColCount=d(new r("aria-colcount"), {
1515
1515
  optional: !0
1516
1516
  });
1517
1517
  rowCount=u(() => this.R() && this.P.$getItemsLength());
1518
1518
  colCount=u(() => this.R() && this.q.$getItemsLength());
1519
- C=u(() => this.F.$getSizes(this.rows(), this.rowHeight()));
1520
- O=u(() => this.k.$getSizes(this.cols(), this.colWidth()));
1521
- T=u(() => ((e = z) => {
1519
+ O=u(() => this.F.$getSizes(this.rows(), this.rowHeight()));
1520
+ C=u(() => this.k.$getSizes(this.cols(), this.colWidth()));
1521
+ T=u(() => ((e = N) => {
1522
1522
  const t = /* @__PURE__ */ new Map;
1523
1523
  for (const i of e) {
1524
1524
  const e = i.rowIndex + (i.rowSpan || 1);
@@ -1529,47 +1529,47 @@ var ce = class t {
1529
1529
  }
1530
1530
  return t;
1531
1531
  })(this.spans()));
1532
- plan=u(() => (this.R(), ((e, t, [i, s], [r, n], o, l = z, a = z, c) => {
1532
+ plan=u(() => (this.R(), ((e, t, [i, s], [n, r], o, l = N, a = N, c) => {
1533
1533
  const u = e.$getLength(), p = t.$getLength(), m = e.$getPinnedStart(), d = e.$getTrailStart(), h = t.$getPinnedStart(), f = t.$getTrailStart();
1534
- i = I(i, m, d), s = N(s, d - 1), r = I(r, h, f), n = N(n, f - 1);
1535
- const g = H(l, m, d), S = b(h - 1, 0), y = [], v = [], w = [];
1536
- for (const e of a) e.rowIndex < u && e.colIndex < p && (w.push(e), y.push(e.rowIndex));
1537
- const $ = w.length, R = B(g, i, d), x = R < 0 ? -1 : g[R];
1534
+ i = I(i, m, d), s = w(s, d - 1), n = I(n, h, f), r = w(r, f - 1);
1535
+ const g = B(l, m, d), S = b(h - 1, 0), y = [], v = [], z = [];
1536
+ for (const e of a) e.rowIndex < u && e.colIndex < p && (z.push(e), y.push(e.rowIndex));
1537
+ const $ = z.length, R = H(g, i, d), x = R < 0 ? -1 : g[R];
1538
1538
  x >= 0 && y.push(x);
1539
1539
  const q = A(P(y), u, m, i, s, d);
1540
- for (let e = 0; e < q.length; e++) for (const t of o.get(q[e]) || z) {
1541
- const {rowIndex: o, colIndex: l} = t, a = J(t, u), c = Q(t, p);
1540
+ for (let e = 0; e < q.length; e++) for (const t of o.get(q[e]) || N) {
1541
+ const {rowIndex: o, colIndex: l} = t, a = Q(t, u), c = J(t, p);
1542
1542
  if ((e < 1 || q[e - 1] < o) && l < p && (a - o > 1 || c - l > 1)) {
1543
- let e = (o < m || b(o, i) < N(a, s + 1) || d < a || x >= o && x < a) && (l < h || b(l, r) < N(c, n + 1) || f < c);
1543
+ let e = (o < m || b(o, i) < w(a, s + 1) || d < a || x >= o && x < a) && (l < h || b(l, n) < w(c, r + 1) || f < c);
1544
1544
  for (let t = 0; !e && t < $; t++) {
1545
- const i = w[t];
1545
+ const i = z[t];
1546
1546
  e = i.rowIndex >= o && i.rowIndex < a && i.colIndex >= l && i.colIndex < c;
1547
1547
  }
1548
- e && w.push(t);
1548
+ e && z.push(t);
1549
1549
  }
1550
1550
  }
1551
- for (const {rowIndex: e, colIndex: t} of w) {
1552
- const i = B(g, e, d);
1551
+ for (const {rowIndex: e, colIndex: t} of z) {
1552
+ const i = H(g, e, d);
1553
1553
  y.push(e), i >= 0 && y.push(g[i]), v.push(t);
1554
1554
  }
1555
1555
  P(y), P(v);
1556
- const F = A(y, u, m, i, s, d), k = A(v, p, h, r, n, f), C = F.length, O = k.length, T = /* @__PURE__ */ new Map, M = [], _ = [];
1557
- for (const e of w) {
1558
- const t = J(e, u), i = Q(e, p);
1556
+ const F = A(y, u, m, i, s, d), k = A(v, p, h, n, r, f), O = F.length, C = k.length, T = /* @__PURE__ */ new Map, M = [], _ = [];
1557
+ for (const e of z) {
1558
+ const t = Q(e, u), i = J(e, p);
1559
1559
  M.push(t), _.push(i);
1560
1560
  const s = k.indexOf(e.colIndex);
1561
- for (let r = F.indexOf(e.rowIndex); r < C && F[r] < t; r++) {
1562
- const t = F[r] * p;
1563
- for (let r = s; r < O && k[r] < i; r++) T.set(t + k[r], e);
1561
+ for (let n = F.indexOf(e.rowIndex); n < O && F[n] < t; n++) {
1562
+ const t = F[n] * p;
1563
+ for (let n = s; n < C && k[n] < i; n++) T.set(t + k[n], e);
1564
1564
  }
1565
1565
  }
1566
1566
  const V = [];
1567
1567
  for (const e of k) V.push(!t.$isMeasurable(e) && null);
1568
1568
  const E = [], L = e.$getItemOffset(m), K = [];
1569
- let G = K;
1570
- const D = W.get(e), j = /* @__PURE__ */ new Map;
1569
+ let D = K;
1570
+ const G = W.get(e), j = /* @__PURE__ */ new Map;
1571
1571
  for (const o of F) {
1572
- const l = o < m, a = o >= d, y = B(g, o, d), v = l ? 0 : a ? d : y < 0 ? -1 : g[y];
1572
+ const l = o < m, a = o >= d, y = H(g, o, d), v = l ? 0 : a ? d : y < 0 ? -1 : g[y];
1573
1573
  if (o === v) {
1574
1574
  const e = l ? m : a ? u : y + 1 < g.length ? g[y + 1] : d;
1575
1575
  M.push(e);
@@ -1578,45 +1578,45 @@ var ce = class t {
1578
1578
  $key: l ? -1 : a ? -2 : -3 - v,
1579
1579
  $rows: t,
1580
1580
  $style: Y(v, e, l || a ? 0 : null, a ? "bottom" : "top", 4)
1581
- }), G = t;
1582
- } else v < 0 && (G = K);
1583
- const w = y >= 0 && o === v, z = l || a || o === x || o >= i && o <= s, N = w ? L : null, $ = o * p, R = D && D.get(o), I = R && R.$cells, P = [];
1584
- let q = 0, F = !e.$isMeasurable(o) && null, C = o + 1, _ = !1;
1585
- for (let e = 0; e < O; e++) {
1586
- const i = k[e], s = i < h, a = i >= f, m = s || a || i >= r && i <= n, d = T.get($ + i);
1587
- if (d ? d.rowIndex === o && d.colIndex === i : z && m) {
1588
- const r = d ? J(d, u) : o + 1, n = d ? Q(d, p) : i + 1, m = r - o, h = n - i, f = m > 1, g = h > 1, y = f || g;
1589
- let v, z;
1590
- C = b(C, r);
1591
- const N = s ? t.$getItemOffset(i) : null, $ = a ? t.$getItemOffset(p) - t.$getItemOffset(n) : null;
1592
- !1 !== F || f || (v = o, F = !0), !1 !== V[e] || g || (z = i, V[e] = !0);
1593
- const R = l ? "columnheader" : i === S && (s || w) ? "rowheader" : "cell", x = y ? m : void 0, k = y ? h : void 0, O = "cell" !== R && c && c.rowIndex === o && c.colIndex === i ? c.order : void 0;
1581
+ }), D = t;
1582
+ } else v < 0 && (D = K);
1583
+ const z = y >= 0 && o === v, N = l || a || o === x || o >= i && o <= s, w = z ? L : null, $ = o * p, R = G && G.get(o), I = R && R.$cells, P = [];
1584
+ let q = 0, F = !e.$isMeasurable(o) && null, O = o + 1, _ = !1;
1585
+ for (let e = 0; e < C; e++) {
1586
+ const i = k[e], s = i < h, a = i >= f, m = s || a || i >= n && i <= r, d = T.get($ + i);
1587
+ if (d ? d.rowIndex === o && d.colIndex === i : N && m) {
1588
+ const n = d ? Q(d, u) : o + 1, r = d ? J(d, p) : i + 1, m = n - o, h = r - i, f = m > 1, g = h > 1, y = f || g;
1589
+ let v, N;
1590
+ O = b(O, n);
1591
+ const w = s ? t.$getItemOffset(i) : null, $ = a ? t.$getItemOffset(p) - t.$getItemOffset(r) : null;
1592
+ !1 !== F || f || (v = o, F = !0), !1 !== V[e] || g || (N = i, V[e] = !0);
1593
+ const R = l ? "columnheader" : i === S && (s || z) ? "rowheader" : "cell", x = y ? m : void 0, k = y ? h : void 0, C = "cell" !== R && c && c.rowIndex === o && c.colIndex === i ? c.order : void 0;
1594
1594
  let T;
1595
1595
  if (I) {
1596
1596
  const e = I.length;
1597
1597
  for (;q < e && I[q].$col < i; ) q++;
1598
1598
  q < e && I[q].$col === i && (T = I[q]);
1599
1599
  }
1600
- if (!T || T.$rowSpan !== x || T.$colSpan !== k || T.$start !== N || T.$end !== $ || T.$measureRow !== v || T.$measureCol !== z || T.$role !== R || T.$sort !== O) {
1600
+ if (!T || T.$rowSpan !== x || T.$colSpan !== k || T.$start !== w || T.$end !== $ || T.$measureRow !== v || T.$measureCol !== N || T.$role !== R || T.$sort !== C) {
1601
1601
  let e = "1/l" + i;
1602
- y && (e += "/l" + r + "/l" + n);
1602
+ y && (e += "/l" + n + "/l" + r);
1603
1603
  const t = {
1604
1604
  contain: "layout style",
1605
1605
  display: "grid",
1606
1606
  gridArea: e
1607
1607
  };
1608
1608
  f && (t.height = "0px", t.minHeight = "100%", t.zIndex = 1), g && (t.width = "0px",
1609
- t.minWidth = "100%"), (s || a) && (t[s ? "insetInlineStart" : "insetInlineEnd"] = (s ? N : $) + "px",
1609
+ t.minWidth = "100%"), (s || a) && (t[s ? "insetInlineStart" : "insetInlineEnd"] = (s ? w : $) + "px",
1610
1610
  t.position = "sticky", t.zIndex = 2), T = {
1611
1611
  $col: i,
1612
1612
  $rowSpan: x,
1613
1613
  $colSpan: k,
1614
1614
  $measureRow: v,
1615
- $measureCol: z,
1615
+ $measureCol: N,
1616
1616
  $role: R,
1617
- $sort: O,
1617
+ $sort: C,
1618
1618
  $style: t,
1619
- $start: N,
1619
+ $start: w,
1620
1620
  $end: $
1621
1621
  }, _ = !0;
1622
1622
  }
@@ -1624,13 +1624,13 @@ var ce = class t {
1624
1624
  }
1625
1625
  }
1626
1626
  if (E.push(F), P.length) {
1627
- const e = R && !_ && R.$cells.length === P.length && R.$top === N ? R : {
1627
+ const e = R && !_ && R.$cells.length === P.length && R.$top === w ? R : {
1628
1628
  $row: o,
1629
1629
  $cells: P,
1630
- $style: Y(o, C, N, "top", 3),
1631
- $top: N
1630
+ $style: Y(o, O, w, "top", 3),
1631
+ $top: w
1632
1632
  };
1633
- j.set(o, e), G.push(e);
1633
+ j.set(o, e), D.push(e);
1634
1634
  }
1635
1635
  }
1636
1636
  return W.set(e, j), {
@@ -1640,7 +1640,7 @@ var ce = class t {
1640
1640
  };
1641
1641
  })(this.F, this.k, this.P.$getRange(this.bufferSize()), this.q.$getRange(this.bufferSize()), this.T(), this.sectionRows(), this.keepMounted(), this.ariaSort())));
1642
1642
  rowItem(e) {
1643
- return G(this.rows(), e);
1643
+ return D(this.rows(), e);
1644
1644
  }
1645
1645
  containerStyle=u(() => {
1646
1646
  this.R();
@@ -1661,11 +1661,11 @@ var ce = class t {
1661
1661
  });
1662
1662
  constructor() {
1663
1663
  m(() => {
1664
- const e = this.rows(), t = this.cols(), i = this.headerRows(), s = this.footerRows(), r = this.headerCols(), n = this.footerCols();
1664
+ const e = this.rows(), t = this.cols(), i = this.headerRows(), s = this.footerRows(), n = this.headerCols(), r = this.footerCols();
1665
1665
  if (!this.P) return;
1666
- const o = this.C(), l = this.O();
1666
+ const o = this.O(), l = this.C();
1667
1667
  S(() => {
1668
- this.F.$setPinned(i, s), this.k.$setPinned(r, n);
1668
+ this.F.$setPinned(i, s), this.k.$setPinned(n, r);
1669
1669
  const a = K(e), c = K(t);
1670
1670
  a !== this.P.$getItemsLength() && this.P.$update(5, [ a ]), c !== this.q.$getItemsLength() && this.q.$update(5, [ c ]),
1671
1671
  this.P.$update(9, o), this.q.$update(9, l);
@@ -1685,13 +1685,13 @@ var ce = class t {
1685
1685
  ngOnInit() {
1686
1686
  const e = this.N;
1687
1687
  e.setAttribute("style", "display:block;overflow:auto;contain:strict;width:100%;height:100%;" + (e.getAttribute("style") || ""));
1688
- const t = this.gap(), i = this.F = D(this.rows(), this.rowHeight(), t), s = this.k = D(this.cols(), this.colWidth(), t), r = this.P = _(i), n = this.q = _(s);
1688
+ const t = this.gap(), i = this.F = G(this.rows(), this.rowHeight(), t), s = this.k = G(this.cols(), this.colWidth(), t), n = this.P = _(i), r = this.q = _(s);
1689
1689
  this.driver = ((e, t) => {
1690
- let i, s, r, n = k(), o = !0;
1691
- const l = /* @__PURE__ */ new WeakMap, a = /* @__PURE__ */ new WeakMap, c = U(n => {
1690
+ let i, s, n, r = k(), o = !0;
1691
+ const l = /* @__PURE__ */ new WeakMap, a = /* @__PURE__ */ new WeakMap, c = U(r => {
1692
1692
  const c = [], u = [];
1693
- for (const {target: p, contentRect: {width: m, height: d}} of n) if (p === i) m || d ? (o || (s.u(),
1694
- r.u()), o = !0, e.$update(4, d), t.$update(4, m)) : o = !1; else if (p.offsetParent) {
1693
+ for (const {target: p, contentRect: {width: m, height: d}} of r) if (p === i) m || d ? (o || (s.u(),
1694
+ n.u()), o = !0, e.$update(4, d), t.$update(4, m)) : o = !1; else if (p.offsetParent) {
1695
1695
  const e = l.get(p), t = a.get(p);
1696
1696
  null != e && c.push([ e, d ]), null != t && u.push([ t, m ]);
1697
1697
  }
@@ -1699,45 +1699,44 @@ var ce = class t {
1699
1699
  });
1700
1700
  return {
1701
1701
  async $scroll(e, t) {
1702
- await n[0] && (e ? r : s).m(t);
1702
+ await r[0] && (e ? n : s).m(t);
1703
1703
  },
1704
- $observe(o) {
1705
- const l = i = o.parentElement;
1706
- c.i(l);
1704
+ $observe(o, l = o.parentElement) {
1705
+ c.i(i = l);
1707
1706
  const a = (e, t) => Z(e, l, l, t, t && "rtl" === getComputedStyle(l).direction, () => {
1708
1707
  const e = t ? "overflowX" : "overflowY", i = l.style, s = i[e];
1709
1708
  i[e] = "hidden", x(() => {
1710
1709
  i[e] = s;
1711
1710
  });
1712
1711
  });
1713
- s = a(e, !1), r = a(t, !0), n[1](!0);
1712
+ s = a(e, !1), n = a(t, !0), r[1](!0);
1714
1713
  },
1715
1714
  $dispose() {
1716
- c.l(), s && s.l(), r && r.l(), n[1](!1), n = k();
1715
+ c.l(), s && s.l(), n && n.l(), r[1](!1), r = k();
1717
1716
  },
1718
1717
  $observeItem: (e, t, i) => (null != t && l.set(e, t), null != i && a.set(e, i),
1719
1718
  c.i(e), () => {
1720
1719
  l.delete(e), a.delete(e), c.o(e);
1721
1720
  }),
1722
1721
  $effect() {
1723
- s && s.p(), r && r.p();
1722
+ s && s.p(), n && n.p();
1724
1723
  }
1725
1724
  };
1726
- })(r, n);
1725
+ })(n, r);
1727
1726
  const o = e => {
1728
- this.R.set(r.$getStateVersion() + n.$getStateVersion()), e && this.$.tick();
1727
+ this.R.set(n.$getStateVersion() + r.$getStateVersion()), e && this.$.tick();
1729
1728
  };
1730
- r.$subscribe(1, o), n.$subscribe(1, o);
1729
+ n.$subscribe(1, o), r.$subscribe(1, o);
1731
1730
  let l = !1;
1732
- r.$subscribe(4, () => {
1733
- l = !0, this.verticalScrolled.emit(r.$getScrollOffset());
1734
- }), n.$subscribe(4, () => {
1735
- l = !0, this.horizontalScrolled.emit(n.$getScrollOffset());
1731
+ n.$subscribe(4, () => {
1732
+ l = !0, this.verticalScrolled.emit(n.$getScrollOffset());
1733
+ }), r.$subscribe(4, () => {
1734
+ l = !0, this.horizontalScrolled.emit(r.$getScrollOffset());
1736
1735
  });
1737
1736
  const a = () => {
1738
- !l || r.$isScrolling() || n.$isScrolling() || (l = !1, this.scrollEnded.emit());
1737
+ !l || n.$isScrolling() || r.$isScrolling() || (l = !1, this.scrollEnded.emit());
1739
1738
  };
1740
- r.$subscribe(8, a), n.$subscribe(8, a), o();
1739
+ n.$subscribe(8, a), r.$subscribe(8, a), o();
1741
1740
  }
1742
1741
  get verticalScrollOffset() {
1743
1742
  return this.P.$getScrollOffset();
@@ -1776,8 +1775,8 @@ var ce = class t {
1776
1775
  return this.q.$getItemSize(e);
1777
1776
  }
1778
1777
  scrollToIndex(e) {
1779
- ((e, t, i, s, r, n = z, {rowIndex: o, colIndex: l, rowAlign: a, colAlign: c}) => {
1780
- null != o && ie(e, t, s, n, o, a, !1), null != l && ie(e, i, r, z, l, c, !0);
1778
+ ((e, t, i, s, n, r = N, {rowIndex: o, colIndex: l, rowAlign: a, colAlign: c}) => {
1779
+ null != o && ne(e, t, s, r, o, a, !1), null != l && ne(e, i, n, N, l, c, !0);
1781
1780
  })(this.driver, this.P, this.q, this.F, this.k, this.sectionRows(), e);
1782
1781
  }
1783
1782
  scrollTo({vertical: e, horizontal: t}) {
@@ -1786,13 +1785,13 @@ var ce = class t {
1786
1785
  })(this.driver, e, t);
1787
1786
  }
1788
1787
  scrollBy({vertical: e, horizontal: t}) {
1789
- ((e, t, i, s, r) => {
1788
+ ((e, t, i, s, n) => {
1790
1789
  if (null != s) {
1791
1790
  const i = s + t.$getScrollOffset();
1792
1791
  e.$scroll(!1, () => i);
1793
1792
  }
1794
- if (null != r) {
1795
- const t = r + i.$getScrollOffset();
1793
+ if (null != n) {
1794
+ const t = n + i.$getScrollOffset();
1796
1795
  e.$scroll(!0, () => t);
1797
1796
  }
1798
1797
  })(this.driver, this.P, this.q, e, t);
@@ -1946,12 +1945,12 @@ var ce = class t {
1946
1945
  isInline: !0,
1947
1946
  dependencies: [ {
1948
1947
  kind: "directive",
1949
- type: e.forwardRef(() => pe),
1948
+ type: e.forwardRef(() => de),
1950
1949
  selector: "div[virtuaGridRowGroup]",
1951
1950
  inputs: [ "state", "template", "rows", "cols", "resizer" ]
1952
1951
  }, {
1953
1952
  kind: "directive",
1954
- type: e.forwardRef(() => ue),
1953
+ type: e.forwardRef(() => me),
1955
1954
  selector: "div[virtuaGridRow]",
1956
1955
  inputs: [ "state", "template", "row", "cols", "resizer" ]
1957
1956
  } ],
@@ -1961,5 +1960,405 @@ var ce = class t {
1961
1960
 
1962
1961
  i.OnPush, i.OnPush, i.OnPush;
1963
1962
 
1964
- export { me as VGrid, le as VList, oe as Virtualizer, ae as WindowVirtualizer };
1963
+ var fe = (e, t) => t ? `calc(${100 * e}% + ${t}px)` : 100 * e + "%", ge = class t {
1964
+ index=h.required();
1965
+ offset=h.required();
1966
+ crossOffset=h.required();
1967
+ crossSize=h.required();
1968
+ hide=h.required();
1969
+ resizer=h.required();
1970
+ style=u(() => ({
1971
+ contain: "layout style",
1972
+ position: "absolute",
1973
+ top: this.offset() + "px",
1974
+ "inset-inline-start": this.crossOffset(),
1975
+ width: this.crossSize(),
1976
+ visibility: this.hide() ? "hidden" : void 0
1977
+ }));
1978
+ constructor() {
1979
+ const e = d(n).nativeElement;
1980
+ let t;
1981
+ c({
1982
+ read: () => {
1983
+ const i = this.index();
1984
+ t && t(), t = S(this.resizer)(e, i);
1985
+ }
1986
+ }), d(s).onDestroy(() => {
1987
+ t && t();
1988
+ });
1989
+ }
1990
+ static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
1991
+ minVersion: "12.0.0",
1992
+ version: "22.1.7",
1993
+ ngImport: e,
1994
+ type: t,
1995
+ deps: [],
1996
+ target: e.ɵɵFactoryTarget.Directive
1997
+ });
1998
+ static ɵdir=/*@__PURE__*/ e.ɵɵngDeclareDirective({
1999
+ minVersion: "17.1.0",
2000
+ version: "22.1.7",
2001
+ type: t,
2002
+ isStandalone: !0,
2003
+ selector: "div[virtuaMasonryItem]",
2004
+ inputs: {
2005
+ index: {
2006
+ classPropertyName: "index",
2007
+ publicName: "index",
2008
+ isSignal: !0,
2009
+ isRequired: !0,
2010
+ transformFunction: null
2011
+ },
2012
+ offset: {
2013
+ classPropertyName: "offset",
2014
+ publicName: "offset",
2015
+ isSignal: !0,
2016
+ isRequired: !0,
2017
+ transformFunction: null
2018
+ },
2019
+ crossOffset: {
2020
+ classPropertyName: "crossOffset",
2021
+ publicName: "crossOffset",
2022
+ isSignal: !0,
2023
+ isRequired: !0,
2024
+ transformFunction: null
2025
+ },
2026
+ crossSize: {
2027
+ classPropertyName: "crossSize",
2028
+ publicName: "crossSize",
2029
+ isSignal: !0,
2030
+ isRequired: !0,
2031
+ transformFunction: null
2032
+ },
2033
+ hide: {
2034
+ classPropertyName: "hide",
2035
+ publicName: "hide",
2036
+ isSignal: !0,
2037
+ isRequired: !0,
2038
+ transformFunction: null
2039
+ },
2040
+ resizer: {
2041
+ classPropertyName: "resizer",
2042
+ publicName: "resizer",
2043
+ isSignal: !0,
2044
+ isRequired: !0,
2045
+ transformFunction: null
2046
+ }
2047
+ },
2048
+ host: {
2049
+ properties: {
2050
+ style: "style()"
2051
+ }
2052
+ },
2053
+ ngImport: e
2054
+ });
2055
+ }, Se = class i {
2056
+ data=h.required();
2057
+ getKey=h(oe);
2058
+ lanes=h.required();
2059
+ gap=h();
2060
+ itemSize=h();
2061
+ bufferSize=h();
2062
+ keepMounted=h();
2063
+ cacheProp=h(void 0, {
2064
+ alias: "cache"
2065
+ });
2066
+ scrolled=f();
2067
+ scrollEnded=f();
2068
+ template=p.required(l);
2069
+ container=y.required("container");
2070
+ S;
2071
+ v;
2072
+ driver;
2073
+ N=d(n).nativeElement;
2074
+ $=d(t);
2075
+ R=g(void 0);
2076
+ I=u(() => {
2077
+ this.R();
2078
+ const e = this.data().length, [t, i] = this.S.$getRange(this.bufferSize()), s = this.keepMounted(), n = [];
2079
+ if (s) {
2080
+ const r = new Set(s);
2081
+ for (let e = t; e <= i; e++) r.add(e);
2082
+ for (const t of P([ ...r ])) t < e && n.push(t);
2083
+ } else for (let e = t; e <= i; e++) n.push(e);
2084
+ return n;
2085
+ });
2086
+ items=u(() => {
2087
+ this.R();
2088
+ const e = this.S, t = this.v, i = this.data(), s = this.getKey(), n = t.$getGap(), r = t.$getLanes(), o = fe(1 / r, n / r - n), l = [];
2089
+ for (const a of this.I()) {
2090
+ const c = i[a], u = t.$getItemLane(a);
2091
+ l.push({
2092
+ key: s(c, a),
2093
+ index: a,
2094
+ data: c,
2095
+ offset: e.$getItemOffset(a),
2096
+ crossOffset: fe(u / r, u * n / r),
2097
+ crossSize: o,
2098
+ hide: e.$isUnmeasuredItem(a)
2099
+ });
2100
+ }
2101
+ return l;
2102
+ });
2103
+ containerStyle=u(() => (this.R(), {
2104
+ contain: "size style",
2105
+ "overflow-anchor": "none",
2106
+ flex: "none",
2107
+ position: "relative",
2108
+ width: "100%",
2109
+ height: this.S.$getTotalSize() + "px",
2110
+ "pointer-events": this.S.$isScrolling() ? "none" : void 0
2111
+ }));
2112
+ constructor() {
2113
+ m(() => {
2114
+ const e = this.data();
2115
+ this.S && S(() => {
2116
+ e.length !== this.S.$getItemsLength() && this.S.$update(5, [ e.length ]);
2117
+ });
2118
+ }), m(() => {
2119
+ const e = this.lanes(), t = this.gap();
2120
+ this.S && S(() => {
2121
+ this.v.$setOptions(e, t), this.S.$update(9, void 0);
2122
+ });
2123
+ }), a({
2124
+ read: () => {
2125
+ this.driver.$observe(this.container().nativeElement);
2126
+ }
2127
+ }), c({
2128
+ read: () => {
2129
+ this.R(), this.driver.$effect();
2130
+ }
2131
+ }), d(s).onDestroy(() => {
2132
+ this.S?.$dispose(), this.driver?.$dispose();
2133
+ });
2134
+ }
2135
+ ngOnInit() {
2136
+ const e = this.N;
2137
+ e.setAttribute("style", "display:block;overflow-y:auto;contain:strict;width:100%;height:100%;" + (e.getAttribute("style") || ""));
2138
+ const t = this.v = ((e, t, i = 0, s, n) => {
2139
+ let r = b(t, 1), o = r, l = i, a = n && n[1] || s || 40, c = -1, u = s ? void 0 : /* @__PURE__ */ new Set, p = !s;
2140
+ const m = n && n[0], d = m ? V(m.slice(0, w(e, m.length)), b(0, e - m.length)) : V([], e), h = [], f = [], g = [], S = e => {
2141
+ const t = d[e];
2142
+ return -1 === t ? a : t;
2143
+ }, y = t => {
2144
+ if (t = w(t, e - 1), c >= t) return;
2145
+ const s = [], n = [];
2146
+ for (let e = 0; e < r; e++) s.push(0), n.push(-1);
2147
+ for (let e = c, t = r; e >= 0 && t; e--) {
2148
+ const i = f[e];
2149
+ -1 === n[i] && (n[i] = e, s[i] = h[e] + S(e), t--);
2150
+ }
2151
+ for (;c < t; ) {
2152
+ const e = ++c;
2153
+ let t = 0, o = 1 / 0, l = 1 / 0;
2154
+ for (let e = 0; e < r; e++) {
2155
+ const r = s[e] + (n[e] >= 0 ? i : 0);
2156
+ (r < o || r === o && n[e] < l) && (t = e, o = r, l = n[e]);
2157
+ }
2158
+ h[e] = o, f[e] = t, s[t] = o + S(e), n[t] = e, g[e] = b(e ? g[e - 1] : 0, s[t]);
2159
+ }
2160
+ }, v = t => t >= e ? N() : (y(t), h[t]), z = e => (y(e), g[e]), N = () => e ? z(e - 1) : 0, $ = t => {
2161
+ if (!e) return 0;
2162
+ const i = E(z, e, t);
2163
+ return z(i) <= t ? i + 1 : i;
2164
+ };
2165
+ return {
2166
+ $getRange: (t, i) => {
2167
+ const s = E(v, e, i);
2168
+ return [ w($(t), s), s ];
2169
+ },
2170
+ $findIndex: t => E(v, e, t),
2171
+ $getItemOffset: v,
2172
+ $getItemSize: S,
2173
+ $isSizeEqual: (e, t = -1) => d[e] === t,
2174
+ $resize: (t, s, n, o) => {
2175
+ let l = $(n);
2176
+ for (;l > 0 && !s(l - 1); ) l--;
2177
+ for (;l < e && s(l); ) l++;
2178
+ const m = v(l);
2179
+ for (const [e, i] of t) d[e] = i, u && u.add(e), c = w(e - 1, c);
2180
+ let h = v(l) - m;
2181
+ if (u && o) {
2182
+ const e = [];
2183
+ let t = 0;
2184
+ if (u.forEach(s => {
2185
+ const n = d[s];
2186
+ n > 0 && (e.push(n), t += n + i);
2187
+ }), t > o * r) {
2188
+ P(e);
2189
+ const t = e.length, i = t / 2 | 0, s = t % 2 == 0 ? (e[i - 1] + e[i]) / 2 : e[i], r = $(n + h), o = v(r);
2190
+ a = s, c = -1, h += v(r) - o, u = void 0, p = !1;
2191
+ }
2192
+ }
2193
+ return h;
2194
+ },
2195
+ $getTotalSize: N,
2196
+ $getLength: () => e,
2197
+ $setLength: t => {
2198
+ const i = t - e;
2199
+ return c = w(t - 1, c), e = t, i > 0 ? V(d, i) : d.splice(i), 0;
2200
+ },
2201
+ $relayout: (e, t) => {
2202
+ if (o === r && l === i) return;
2203
+ const n = $(t), a = v(n);
2204
+ return r = o, i = l, c = -1, u = s ? void 0 : /* @__PURE__ */ new Set, v(n) - a;
2205
+ },
2206
+ $setOptions: (e, t = 0) => {
2207
+ o = b(e, 1), l = t;
2208
+ },
2209
+ $isEstimating: () => p,
2210
+ $snapshot: () => [ d.slice(), a ],
2211
+ $getLanes: () => r,
2212
+ $getGap: () => i,
2213
+ $getItemLane: e => (y(e), f[e])
2214
+ };
2215
+ })(this.data().length, this.lanes(), this.gap(), this.itemSize(), this.cacheProp()), i = this.S = _(t);
2216
+ this.driver = ee(i, !1), i.$subscribe(1, e => {
2217
+ this.R.set(i.$getStateVersion()), e && this.$.tick();
2218
+ }), i.$subscribe(4, () => {
2219
+ this.scrolled.emit(i.$getScrollOffset());
2220
+ }), i.$subscribe(8, () => {
2221
+ this.scrollEnded.emit();
2222
+ }), this.R.set(i.$getStateVersion());
2223
+ }
2224
+ get cache() {
2225
+ return this.v.$snapshot();
2226
+ }
2227
+ get scrollOffset() {
2228
+ return this.S.$getScrollOffset();
2229
+ }
2230
+ get scrollSize() {
2231
+ return M(this.S);
2232
+ }
2233
+ get viewportSize() {
2234
+ return this.S.$getViewportSize();
2235
+ }
2236
+ getItemOffset(e) {
2237
+ return this.S.$getItemOffset(e);
2238
+ }
2239
+ getItemSize(e) {
2240
+ return this.S.$getItemSize(e);
2241
+ }
2242
+ scrollToIndex(e, t) {
2243
+ se(this.driver, this.S, e, t);
2244
+ }
2245
+ scrollTo(e) {
2246
+ te(this.driver, e);
2247
+ }
2248
+ scrollBy(e) {
2249
+ ie(this.driver, this.S, e);
2250
+ }
2251
+ static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
2252
+ minVersion: "12.0.0",
2253
+ version: "22.1.7",
2254
+ ngImport: e,
2255
+ type: i,
2256
+ deps: [],
2257
+ target: e.ɵɵFactoryTarget.Component
2258
+ });
2259
+ static ɵcmp=/*@__PURE__*/ e.ɵɵngDeclareComponent({
2260
+ minVersion: "17.0.0",
2261
+ version: "22.1.7",
2262
+ type: i,
2263
+ isStandalone: !0,
2264
+ selector: "virtua-vmasonry",
2265
+ inputs: {
2266
+ data: {
2267
+ classPropertyName: "data",
2268
+ publicName: "data",
2269
+ isSignal: !0,
2270
+ isRequired: !0,
2271
+ transformFunction: null
2272
+ },
2273
+ getKey: {
2274
+ classPropertyName: "getKey",
2275
+ publicName: "getKey",
2276
+ isSignal: !0,
2277
+ isRequired: !1,
2278
+ transformFunction: null
2279
+ },
2280
+ lanes: {
2281
+ classPropertyName: "lanes",
2282
+ publicName: "lanes",
2283
+ isSignal: !0,
2284
+ isRequired: !0,
2285
+ transformFunction: null
2286
+ },
2287
+ gap: {
2288
+ classPropertyName: "gap",
2289
+ publicName: "gap",
2290
+ isSignal: !0,
2291
+ isRequired: !1,
2292
+ transformFunction: null
2293
+ },
2294
+ itemSize: {
2295
+ classPropertyName: "itemSize",
2296
+ publicName: "itemSize",
2297
+ isSignal: !0,
2298
+ isRequired: !1,
2299
+ transformFunction: null
2300
+ },
2301
+ bufferSize: {
2302
+ classPropertyName: "bufferSize",
2303
+ publicName: "bufferSize",
2304
+ isSignal: !0,
2305
+ isRequired: !1,
2306
+ transformFunction: null
2307
+ },
2308
+ keepMounted: {
2309
+ classPropertyName: "keepMounted",
2310
+ publicName: "keepMounted",
2311
+ isSignal: !0,
2312
+ isRequired: !1,
2313
+ transformFunction: null
2314
+ },
2315
+ cacheProp: {
2316
+ classPropertyName: "cacheProp",
2317
+ publicName: "cache",
2318
+ isSignal: !0,
2319
+ isRequired: !1,
2320
+ transformFunction: null
2321
+ }
2322
+ },
2323
+ outputs: {
2324
+ scrolled: "scrolled",
2325
+ scrollEnded: "scrollEnded"
2326
+ },
2327
+ queries: [ {
2328
+ propertyName: "template",
2329
+ first: !0,
2330
+ predicate: l,
2331
+ emitDistinctChangesOnly: !1,
2332
+ descendants: !0,
2333
+ isSignal: !0
2334
+ } ],
2335
+ viewQueries: [ {
2336
+ propertyName: "container",
2337
+ first: !0,
2338
+ predicate: [ "container" ],
2339
+ emitDistinctChangesOnly: !1,
2340
+ descendants: !0,
2341
+ isSignal: !0
2342
+ } ],
2343
+ ngImport: e,
2344
+ template: '\n <div #container [style]="containerStyle()">\n @for (item of items(); track item.key) {\n <div\n virtuaMasonryItem\n [index]="item.index"\n [offset]="item.offset"\n [crossOffset]="item.crossOffset"\n [crossSize]="item.crossSize"\n [hide]="item.hide"\n [resizer]="driver.$observeItem"\n >\n <ng-container\n [ngTemplateOutlet]="template()"\n [ngTemplateOutletContext]="{\n $implicit: item.data,\n index: item.index,\n }"\n />\n </div>\n }\n </div>\n ',
2345
+ isInline: !0,
2346
+ dependencies: [ {
2347
+ kind: "directive",
2348
+ type: e.forwardRef(() => ge),
2349
+ selector: "div[virtuaMasonryItem]",
2350
+ inputs: [ "index", "offset", "crossOffset", "crossSize", "hide", "resizer" ]
2351
+ }, {
2352
+ kind: "directive",
2353
+ type: e.forwardRef(() => v),
2354
+ selector: "[ngTemplateOutlet]",
2355
+ inputs: [ "ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector" ]
2356
+ } ],
2357
+ changeDetection: e.ChangeDetectionStrategy.OnPush
2358
+ });
2359
+ };
2360
+
2361
+ i.OnPush;
2362
+
2363
+ export { he as VGrid, ce as VList, Se as VMasonry, ae as Virtualizer, ue as WindowVirtualizer };
1965
2364
  //# sourceMappingURL=index.js.map