virtua 0.53.1 → 0.53.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.
Files changed (55) hide show
  1. package/lib/angular/VGrid.d.ts +5 -1
  2. package/lib/angular/VList.d.ts +5 -1
  3. package/lib/angular/VMasonry.d.ts +5 -1
  4. package/lib/angular/Virtualizer.d.ts +5 -1
  5. package/lib/angular/WindowVirtualizer.d.ts +5 -1
  6. package/lib/angular/index.js +368 -352
  7. package/lib/angular/index.js.map +1 -1
  8. package/lib/core/index.cjs +101 -108
  9. package/lib/core/index.cjs.map +1 -1
  10. package/lib/core/index.d.ts +1 -1
  11. package/lib/core/index.js +193 -200
  12. package/lib/core/index.js.map +1 -1
  13. package/lib/index.cjs +413 -404
  14. package/lib/index.cjs.map +1 -1
  15. package/lib/index.js +416 -408
  16. package/lib/index.js.map +1 -1
  17. package/lib/react/VGrid.d.ts +4 -0
  18. package/lib/react/VList.d.ts +1 -1
  19. package/lib/react/VMasonry.d.ts +4 -0
  20. package/lib/react/Virtualizer.d.ts +4 -0
  21. package/lib/react/WindowVirtualizer.d.ts +4 -0
  22. package/lib/react/types.d.ts +1 -1
  23. package/lib/solid/VGrid.d.ts +4 -0
  24. package/lib/solid/VList.d.ts +1 -1
  25. package/lib/solid/VMasonry.d.ts +4 -0
  26. package/lib/solid/Virtualizer.d.ts +4 -0
  27. package/lib/solid/WindowVirtualizer.d.ts +4 -0
  28. package/lib/solid/index.cjs +446 -436
  29. package/lib/solid/index.cjs.map +1 -1
  30. package/lib/solid/index.js +410 -400
  31. package/lib/solid/index.js.map +1 -1
  32. package/lib/solid/index.jsx +38 -22
  33. package/lib/solid/index.jsx.map +1 -1
  34. package/lib/solid/types.d.ts +1 -1
  35. package/lib/svelte/VGrid.svelte +26 -6
  36. package/lib/svelte/VGrid.type.d.ts +4 -0
  37. package/lib/svelte/VList.svelte +2 -0
  38. package/lib/svelte/VList.type.d.ts +1 -1
  39. package/lib/svelte/VMasonry.svelte +9 -2
  40. package/lib/svelte/VMasonry.type.d.ts +4 -0
  41. package/lib/svelte/Virtualizer.svelte +9 -2
  42. package/lib/svelte/Virtualizer.type.d.ts +4 -0
  43. package/lib/svelte/WindowVirtualizer.svelte +9 -2
  44. package/lib/svelte/WindowVirtualizer.type.d.ts +4 -0
  45. package/lib/svelte/types.d.ts +1 -1
  46. package/lib/vue/VGrid.d.ts +4 -0
  47. package/lib/vue/VList.d.ts +1 -1
  48. package/lib/vue/VMasonry.d.ts +4 -0
  49. package/lib/vue/Virtualizer.d.ts +4 -0
  50. package/lib/vue/WindowVirtualizer.d.ts +4 -0
  51. package/lib/vue/index.cjs +619 -609
  52. package/lib/vue/index.cjs.map +1 -1
  53. package/lib/vue/index.js +599 -589
  54. package/lib/vue/index.js.map +1 -1
  55. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
1
  import * as e from "@angular/core";
2
2
 
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";
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";
4
4
 
5
5
  import { NgTemplateOutlet as v } from "@angular/common";
6
6
 
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 => {
7
+ var z, N = [], {min: w, max: b, abs: $, floor: R} = Math, P = (e, t, i) => w(i, b(t, e)), I = 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,103 +12,100 @@ var z, N = [], {min: w, max: b, abs: $, floor: R} = Math, I = (e, t, i) => w(i,
12
12
  e = t;
13
13
  }), e ];
14
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);
15
+ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $getItemOffset: t, $getItemSize: i, $isSizeEqual: s, $getTotalSize: r, $getLength: n, $setLength: o, $isEstimating: l, $resize: a}, c = 0) => {
16
+ let u = !!c, p = 1, m = 0, d = 0, h = 0, f = 0, g = 0, S = 0, y = 0, v = 0, z = null, N = [ 0, u ? b(c - 1, 0) : -1 ], R = !1;
17
+ const P = /* @__PURE__ */ new Set, I = () => h - d, x = () => I() + g + f, q = e => t(e) - g, F = e => {
18
+ if (2 === v) return !0;
19
+ if (z && 1 === v) return e < z[0];
20
+ const t = I(), s = q(e), r = i(e);
21
+ return 1 !== y && 0 === v ? s + r <= t : s < t && s + r < t + m;
22
+ }, k = e => {
23
+ e && (T() && 0 !== y || z && 1 === v ? g += e : f += e);
24
24
  };
25
25
  return {
26
26
  $dispose: () => {
27
- x.clear();
27
+ P.clear();
28
28
  },
29
- $getStateVersion: () => d,
29
+ $getStateVersion: () => p,
30
30
  $getRange: (t = 200) => {
31
- if (!P || m) return I;
31
+ if (!R || u) return N;
32
32
  let i, s;
33
- if (v) [i, s] = I; else {
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]));
33
+ if (S) [i, s] = N; else {
34
+ let r = b(0, x()), n = r + m;
35
+ l() || (t = b(0, t), 1 !== y && (r -= t), 2 !== y && (n += t)), [i, s] = N = e(b(0, r), b(0, n)),
36
+ z && (i = w(i, z[0]), s = b(s, z[1]));
37
37
  }
38
- return [ b(i, 0), w(s, o() - 1) ];
38
+ return [ b(i, 0), w(s, n() - 1) ];
39
39
  },
40
- $findItemIndex: e => t(e - f),
41
- $isUnmeasuredItem: n,
42
- $getItemOffset: k,
43
- $getItemSize: s,
44
- $getItemsLength: o,
45
- $getScrollOffset: () => g,
46
- $isScrolling: () => 0 !== z,
47
- $getViewportSize: () => h,
48
- $getStartSpacerSize: () => f,
40
+ $isUnmeasuredItem: s,
41
+ $getItemOffset: q,
42
+ $getItemSize: i,
43
+ $getItemsLength: n,
44
+ $getScrollOffset: () => h,
45
+ $getVisibleOffset: x,
46
+ $isScrolling: () => 0 !== y,
47
+ $getViewportSize: () => m,
48
+ $getStartSpacerSize: () => d,
49
49
  $getTotalSize: r,
50
- t: () => (v = S, S = 0, [ v, 2 === N ]),
50
+ t: () => (S = f, f = 0, [ S, 2 === v ]),
51
51
  $subscribe: (e, t) => {
52
52
  const i = [ e, t ];
53
- return x.add(i), () => {
54
- x.delete(i);
53
+ return P.add(i), () => {
54
+ P.delete(i);
55
55
  };
56
56
  },
57
57
  $update: (t, i) => {
58
- let s, o, a = 0;
58
+ let n, l, c = 0;
59
59
  switch (t) {
60
60
  case 1:
61
61
  {
62
- if (i === g && 0 === N) break;
63
- const e = v;
64
- v = 0;
65
- const t = i - g, s = $(t);
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);
62
+ if (i === h && 0 === v) break;
63
+ const e = S;
64
+ S = 0;
65
+ const t = i - h, s = $(t);
66
+ e && s < $(e) + 1 || 0 !== v || (y = t < 0 ? 2 : 1), u && (u = !1), h = i, c = 4;
67
+ const n = I();
68
+ n >= -m && n <= r() && (c += 1, l = s > m);
69
69
  break;
70
70
  }
71
71
 
72
72
  case 2:
73
- a = 8, 0 !== z && (s = !0, a += 1), z = 0, N = 0, R = null;
73
+ c = 8, 0 !== y && (n = !0, c += 1), y = 0, v = 0, z = null;
74
74
  break;
75
75
 
76
76
  case 3:
77
77
  {
78
- const e = i.filter(([e, t]) => !n(e, t));
78
+ const e = i.filter(([e, t]) => !s(e, t));
79
79
  if (!e.length) break;
80
- C(c(e, O, F(), h)), a = 3, o = !0;
80
+ k(a(e, F, x(), m)), c = 3, l = !0;
81
81
  break;
82
82
  }
83
83
 
84
84
  case 4:
85
- h !== i && (h || (P = o = !0), h = i, a = 3);
85
+ m !== i && (m || (R = l = !0), m = i, c = 3);
86
86
  break;
87
87
 
88
88
  case 5:
89
- i[1] ? (C(l(i[0], !0)), N = 2, a = 1) : (l(i[0]), a = 1);
89
+ i[1] ? (k(o(i[0], !0)), v = 2, c = 1) : (o(i[0]), c = 1);
90
90
  break;
91
91
 
92
92
  case 6:
93
- f = i;
93
+ d = i;
94
94
  break;
95
95
 
96
96
  case 7:
97
- N = 1;
97
+ v = 1;
98
98
  break;
99
99
 
100
100
  case 9:
101
- {
102
- const e = u(i, F());
103
- null != e && (C(e), a = 3);
104
- break;
105
- }
101
+ null != i && (k(i), c = 3);
102
+ break;
106
103
 
107
104
  case 8:
108
- R = e(i, i + h), a = 1;
105
+ z = e(i, i + m), c = 1;
109
106
  }
110
- a && (d = 1 + (2147483647 & d), s && y && (S += y, y = 0), x.forEach(([e, t]) => {
111
- a & e && t(o);
107
+ c && (p = 1 + (2147483647 & p), n && g && (f += g, g = 0), P.forEach(([e, t]) => {
108
+ c & e && t(l);
112
109
  }));
113
110
  }
114
111
  };
@@ -116,31 +113,31 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
116
113
  const s = i ? "unshift" : "push";
117
114
  for (let i = 0; i < t; i++) e[s](-1);
118
115
  return e;
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;
116
+ }, E = (e, t, i, s = 0, r = t - 1) => {
117
+ let n = s;
118
+ for (;s <= r; ) {
119
+ const t = R((s + r) / 2);
120
+ e(t) <= i ? (n = t, s = t + 1) : r = t - 1;
124
121
  }
125
- return I(r, 0, t - 1);
122
+ return P(n, 0, t - 1);
126
123
  }, L = (e, t, i) => {
127
- let s = i && i[1] || t || 40, n = -1, r = 0, o = !t, l = 0;
124
+ let s = i && i[1] || t || 40, r = -1, n = 0, o = !t, l = 0;
128
125
  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
126
  const t = c[e];
130
127
  return -1 === t ? s : t;
131
128
  }, m = t => {
132
129
  if (!e) return 0;
133
- if (n >= t) return u[t];
134
- n < 0 && (u[0] = 0, n = 0);
135
- let i = n, s = u[i];
130
+ if (r >= t) return u[t];
131
+ r < 0 && (u[0] = 0, r = 0);
132
+ let i = r, s = u[i];
136
133
  for (;i < t; ) s += p(i), u[++i] = s;
137
- return n = t, s;
134
+ return r = t, s;
138
135
  };
139
136
  return {
140
137
  $getRange: (t, i) => {
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 ];
138
+ let s, r;
139
+ return l = w(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),
140
+ r = E(m, e, i, s)), l = s, [ s, r ];
144
141
  },
145
142
  $findIndex: t => E(m, e, t),
146
143
  $getItemOffset: m,
@@ -148,14 +145,14 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
148
145
  $isSizeEqual: (e, t = -1) => c[e] === t,
149
146
  $resize: (t, i, l, a) => {
150
147
  let u = t.reduce((e, [t, s]) => i(t) ? e + (s - p(t)) : e, 0);
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) {
148
+ for (const [e, i] of t) n += -1 === c[e] ? i : i - p(e), c[e] = i, r = w(e, r);
149
+ if (o && a && n > a) {
153
150
  let t = 0;
154
- const i = E(m, e, l + u), r = [];
151
+ const i = E(m, e, l + u), n = [];
155
152
  c.forEach((e, 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;
153
+ -1 !== e && (e && n.push(e), s < i && t++);
154
+ }), r = -1, I(n);
155
+ const a = n.length, p = a / 2 | 0, d = a % 2 == 0 ? (n[p - 1] + n[p]) / 2 : n[p], h = s;
159
156
  u += ((s = d) - h) * b(i - t, 0), o = !1;
160
157
  }
161
158
  return u;
@@ -163,18 +160,18 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
163
160
  $getTotalSize: () => m(e),
164
161
  $getLength: () => e,
165
162
  $setLength: (t, i) => {
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));
163
+ const n = t - e;
164
+ return r = i ? -1 : w(t - 1, r), e = t, n > 0 ? (V(u, n), V(c, n, i), s * n) : (u.splice(n),
165
+ (i ? c.splice(0, -n) : c.splice(n)).reduce((e, t) => e - (-1 === t ? s : t), 0));
169
166
  },
170
167
  $isEstimating: () => o,
171
168
  $snapshot: () => [ c.slice(), s ]
172
169
  };
173
170
  }, K = e => "number" == typeof e ? e : e.length, D = (e, t) => "number" == typeof e ? t : e[t], G = (e, t, i = 0) => {
174
171
  let s = K(e);
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 = () => {
172
+ const r = "number" == typeof t, n = "auto" === t;
173
+ let o = (r ? t : 40) + i, l = -1, a = 0, c = n, u = 0, p = 0, m = null;
174
+ const d = [], h = [], f = [], g = e => n || !!f[e], S = () => {
178
175
  d.length || V(d, s);
179
176
  }, y = e => {
180
177
  const t = d[e];
@@ -189,28 +186,28 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
189
186
  return l = e, i;
190
187
  }, z = (e, t) => {
191
188
  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;
189
+ }, N = e => d.length ? E(v, s, e) : o ? P(R(e / o), 0, s - 1) : 0, $ = () => w(u, s), x = () => b(s - p, $()), q = e => (d.length ? y(e) : o) - i;
193
190
  return {
194
191
  $getRange: (e, t) => {
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))) ];
192
+ const r = v($()), n = v(s) - v(x()), o = e + (r ? r - i : 0);
193
+ return [ N(o), N(b(o, t - (n ? n - i : 0))) ];
197
194
  },
198
195
  $findIndex: N,
199
196
  $getItemOffset: v,
200
197
  $getItemSize: q,
201
- $resize: (e, t, s, n) => {
202
- let r = e.reduce((e, [i, s]) => g(i) && t(i) ? e + (s - q(i)) : e, 0);
198
+ $resize: (e, t, s, r) => {
199
+ let n = e.reduce((e, [i, s]) => g(i) && t(i) ? e + (s - q(i)) : e, 0);
203
200
  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) {
201
+ if (c && r && a > r) {
205
202
  let e = 0;
206
- const t = N(s + r), i = [];
207
- d.forEach((s, n) => {
208
- -1 !== s && (s && i.push(s), n < t && e++);
209
- }), l = -1, P(i);
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;
203
+ const t = N(s + n), i = [];
204
+ d.forEach((s, r) => {
205
+ -1 !== s && (s && i.push(s), r < t && e++);
206
+ }), l = -1, I(i);
207
+ const r = i.length, a = r / 2 | 0, u = r % 2 == 0 ? (i[a - 1] + i[a]) / 2 : i[a], p = o;
208
+ n += ((o = u) - p) * b(t - e, 0), c = !1;
212
209
  }
213
- return r;
210
+ return n;
214
211
  },
215
212
  $isSizeEqual: (e, t = -1) => {
216
213
  const s = d.length ? d[e] : -1;
@@ -229,82 +226,82 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
229
226
  },
230
227
  $getPinnedStart: $,
231
228
  $getTrailStart: x,
232
- $getSizes: (e, t) => "number" == typeof t ? n ? t : null : n || r || "auto" === t ? null : e.map(e => null != e ? e[t] : null),
229
+ $getSizes: (e, t) => "number" == typeof t ? r ? t : null : r || n || "auto" === t ? null : e.map(e => null != e ? e[t] : null),
233
230
  $relayout: (e, t) => {
234
231
  if (null == e) return;
235
232
  if ("number" == typeof e) {
236
233
  const s = e + i;
237
234
  if (s === o) return;
238
- const n = N(t) * (s - o);
239
- return o = s, n;
235
+ const r = N(t) * (s - o);
236
+ return o = s, r;
240
237
  }
241
238
  if (e === m && s === f.length) return;
242
239
  m = e, f.length = s, S();
243
- const n = N(t), r = v(n);
240
+ const r = N(t), n = v(r);
244
241
  let l;
245
242
  for (let t = 0; t < s; t++) {
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;
243
+ const s = e[t], r = "number" != typeof s;
244
+ if (!r || !f[t]) {
245
+ f[t] = r;
246
+ const e = r ? -1 : s + i;
250
247
  d[t] !== e && (z(t, e), l = !0);
251
248
  }
252
249
  }
253
- return l ? v(n) - r : void 0;
250
+ return l ? v(r) - n : void 0;
254
251
  }
255
252
  };
256
253
  }, W = /*#__PURE__*/ new WeakMap, B = (e, t, i) => {
257
254
  const s = [];
258
- for (const n of e) n >= t && n < i && s.push(n);
259
- return P(s);
255
+ for (const r of e) r >= t && r < i && s.push(r);
256
+ return I(s);
260
257
  }, H = (e, t, i) => {
261
258
  if (t >= i) return -1;
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;
259
+ let s = 0, r = e.length;
260
+ for (;s < r; ) {
261
+ const i = s + r >> 1;
262
+ e[i] <= t ? s = i + 1 : r = i;
266
263
  }
267
264
  return s - 1;
268
- }, j = (e, t, i, s, n) => {
269
- const r = t.length;
270
- for (;i < r && t[i] < s; i++) {
265
+ }, j = (e, t, i, s, r) => {
266
+ const n = t.length;
267
+ for (;i < n && t[i] < s; i++) {
271
268
  const s = t[i];
272
- s > n && (e.push(s), n = s);
269
+ s > r && (e.push(s), r = s);
273
270
  }
274
271
  return i;
275
- }, A = (e, t, i, s, n, r) => {
272
+ }, A = (e, t, i, s, r, n) => {
276
273
  const o = [];
277
274
  for (let e = 0; e < i; e++) o.push(e);
278
275
  const l = j(o, e, 0, s, i - 1);
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);
276
+ for (let e = s; e <= r; e++) o.push(e);
277
+ j(o, e, l, n, r);
278
+ for (let e = n; e < t; e++) o.push(e);
282
279
  return o;
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) => {
280
+ }, 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, r, n) => {
284
281
  const o = t.length, l = s.length;
285
282
  let a = "[l0]", c = 0, u = 0, p = 0;
286
- for (;c < r; ) {
283
+ for (;c < n; ) {
287
284
  for (;p < l && s[p] <= c; ) p++;
288
- const m = u < o ? t[u] : r;
285
+ const m = u < o ? t[u] : n;
289
286
  let d, h;
290
287
  if (m === c) {
291
288
  d = c + 1;
292
289
  const t = i[u];
293
- h = null == t ? e.$getItemSize(c) + "px" : t ? n : "minmax(" + e.$getItemSize(c) + "px,auto)",
290
+ h = null == t ? e.$getItemSize(c) + "px" : t ? r : "minmax(" + e.$getItemSize(c) + "px,auto)",
294
291
  u++;
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)";
292
+ } else d = w(m, p < l ? s[p] : n), h = "minmax(" + (e.$getItemOffset(d - 1) + e.$getItemSize(d - 1) - e.$getItemOffset(c)) + "px,auto)";
296
293
  a += " " + h + " [l" + d + "]", c = d;
297
294
  }
298
295
  return a;
299
- }, Y = (e, t, i, s, n) => {
300
- const r = {
296
+ }, Y = (e, t, i, s, r) => {
297
+ const n = {
301
298
  display: "grid",
302
299
  gridTemplateRows: "subgrid",
303
300
  gridTemplateColumns: "subgrid",
304
301
  gridColumn: "1/-1",
305
302
  gridRow: "l" + e + "/l" + t
306
303
  };
307
- return null != i && (r.position = "sticky", r[s] = i + "px", r.zIndex = n), r;
304
+ return null != i && (n.position = "sticky", n[s] = i + "px", n.zIndex = r), n;
308
305
  }, U = e => {
309
306
  let t;
310
307
  return {
@@ -318,9 +315,9 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
318
315
  t && t.disconnect();
319
316
  }
320
317
  };
321
- }, Z = (e, t, i, s, n, r, o) => {
318
+ }, Z = (e, t, i, s, r, n, o) => {
322
319
  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 => n ? -e : e, y = () => S(i[f]), v = (e, t) => {
320
+ const h = Date.now, f = s ? "scrollLeft" : "scrollTop", g = s ? "left" : "top", S = e => r ? -e : e, y = () => S(i[f]), v = (e, t) => {
324
321
  i.scrollTo({
325
322
  [g]: S(e),
326
323
  behavior: t ? "smooth" : "instant"
@@ -356,21 +353,21 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
356
353
  p: () => {
357
354
  const [t, s] = e.t();
358
355
  if (!t) return;
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({
356
+ d && n && n(), d = !1;
357
+ const r = e.$getScrollOffset(), o = r + t, a = e.$getStartSpacerSize() + e.$getTotalSize() - e.$getViewportSize();
358
+ o <= 0 || o >= a || r >= a ? v(o) : i.scrollBy({
362
359
  [g]: S(t),
363
360
  behavior: "instant"
364
361
  }), s && (l && l(), e.$getViewportSize() > e.$getTotalSize() && e.$update(1, y()));
365
362
  },
366
363
  m: (t, i) => {
367
- let s, n, r;
364
+ let s, r, n;
368
365
  l && l();
369
366
  const o = l = () => {
370
- s = !0, q(n), r && r();
367
+ s = !0, q(r), n && n();
371
368
  }, a = () => {
372
369
  if (!s) {
373
- if (e.$getViewportSize() && (q(n), n = x(o, 150)), i) {
370
+ if (e.$getViewportSize() && (q(r), r = x(o, 150)), i) {
374
371
  for (let [t, i] = e.$getRange(0); t <= i; t++) if (e.$isUnmeasuredItem(t)) return;
375
372
  o();
376
373
  }
@@ -380,7 +377,7 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
380
377
  i && e.$update(8, t()), (() => {
381
378
  if (s) return;
382
379
  let t;
383
- r = e.$subscribe(2, () => {
380
+ n = e.$subscribe(2, () => {
384
381
  t || (t = !0, F(() => {
385
382
  t = !1, a();
386
383
  }));
@@ -389,33 +386,33 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
389
386
  }
390
387
  };
391
388
  }, ee = (e, t) => {
392
- let i, s, n = k(), r = !0;
393
- const o = /* @__PURE__ */ new WeakMap, l = U(n => {
389
+ let i, s, r = k(), n = !0;
390
+ const o = /* @__PURE__ */ new WeakMap, l = U(r => {
394
391
  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) {
392
+ for (const {target: a, contentRect: {width: c, height: u}} of r) if (a === i) c || u ? (n || s.u(),
393
+ n = !0, e.$update(4, t ? c : u)) : n = !1; else if (a.offsetParent) {
397
394
  const e = o.get(a);
398
395
  null != e && l.push([ e, t ? c : u ]);
399
396
  }
400
397
  l.length && e.$update(3, l);
401
398
  });
402
399
  return {
403
- $observe(r, o = r.parentElement) {
400
+ $observe(n, o = n.parentElement) {
404
401
  l.i(i = o), s = Z(e, o, o, t, t && "rtl" === getComputedStyle(o).direction, () => {
405
402
  const e = t ? "overflowX" : "overflowY", i = o.style, s = i[e];
406
403
  i[e] = "hidden", x(() => {
407
404
  i[e] = s;
408
405
  });
409
- }), n[1](!0);
406
+ }), r[1](!0);
410
407
  },
411
408
  $dispose() {
412
- l.l(), s && s.l(), n[1](!1), n = k();
409
+ l.l(), s && s.l(), r[1](!1), r = k();
413
410
  },
414
411
  $observeItem: (e, t) => (o.set(e, t), l.i(e), () => {
415
412
  o.delete(e), l.o(e);
416
413
  }),
417
414
  async $scroll(e, t) {
418
- await n[0] && s.m(e, t);
415
+ await r[0] && s.m(e, t);
419
416
  },
420
417
  $effect() {
421
418
  s && s.p();
@@ -426,37 +423,37 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
426
423
  e.$scroll(() => t);
427
424
  }, ie = (e, t, i) => {
428
425
  te(e, i + t.$getScrollOffset());
429
- }, se = (e, t, i, {align: s, smooth: n, offset: r = 0} = {}) => {
430
- if (i = I(i, 0, t.$getItemsLength() - 1), "nearest" === s) {
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;
426
+ }, se = (e, t, i, {align: s, smooth: r, offset: n = 0} = {}) => {
427
+ if (i = P(i, 0, t.$getItemsLength() - 1), "nearest" === s) {
428
+ const e = t.$getItemOffset(i), r = t.$getScrollOffset();
429
+ if (e < r) s = "start"; else {
430
+ if (!(e + t.$getItemSize(i) > r + t.$getViewportSize())) return;
434
431
  s = "end";
435
432
  }
436
433
  }
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) => {
434
+ 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);
435
+ }, re = (e, t, i, s, r, n, o) => {
439
436
  const l = t.$getItemsLength(), a = i.$getPinnedStart(), c = i.$getTrailStart();
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) {
437
+ r = P(r, 0, l - 1);
438
+ const u = B(s, a, c), p = H(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);
439
+ if ("nearest" === n) {
440
+ if (r < a || r >= c) return;
441
+ const e = d(), i = t.$getScrollOffset() + e, s = t.$getViewportSize() - e - h(), o = t.$getItemSize(r);
442
+ let l = t.$getItemOffset(r);
443
+ if (m === r) {
447
444
  const e = (p + 1 < u.length ? u[p + 1] : c) - 1;
448
445
  l = b(l, w(i, t.$getItemOffset(e) + t.$getItemSize(e) - o));
449
446
  }
450
- if (l < i) r = "start"; else {
447
+ if (l < i) n = "start"; else {
451
448
  if (!(l + o > i + s)) return;
452
- r = "end";
449
+ n = "end";
453
450
  }
454
451
  }
455
452
  e.$scroll(o, () => {
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);
453
+ const e = d(), i = t.$getItemSize(r) - (t.$getViewportSize() - e - h());
454
+ return t.$getItemOffset(r) - e + ("end" === n ? i : "center" === n ? i / 2 : 0);
458
455
  });
459
- }, re = class t {
456
+ }, ne = class t {
460
457
  index=h.required();
461
458
  offset=h.required();
462
459
  hide=h.required();
@@ -477,7 +474,7 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
477
474
  return e && (s.display = "inline-flex"), s;
478
475
  });
479
476
  constructor() {
480
- const e = d(n).nativeElement;
477
+ const e = d(r).nativeElement;
481
478
  let t;
482
479
  c({
483
480
  read: () => {
@@ -585,6 +582,7 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
585
582
  startMargin=h(0);
586
583
  scrolled=f();
587
584
  scrollEnded=f();
585
+ resized=f();
588
586
  contentTemplate=p(l);
589
587
  h=d(le, {
590
588
  optional: !0
@@ -593,34 +591,34 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
593
591
  S;
594
592
  v;
595
593
  driver;
596
- N=d(n).nativeElement;
594
+ N=d(r).nativeElement;
597
595
  $=d(t);
598
596
  R=g(void 0);
599
597
  isSSR=g(!1);
600
- I=u(() => {
598
+ P=u(() => {
601
599
  this.R();
602
- const e = this.data().length, [t, i] = this.S.$getRange(this.bufferSize()), s = this.keepMounted(), n = [];
600
+ const e = this.data().length, [t, i] = this.S.$getRange(this.bufferSize()), s = this.keepMounted(), r = [];
603
601
  if (s) {
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;
602
+ const n = new Set(s);
603
+ for (let e = t; e <= i; e++) n.add(e);
604
+ for (const t of I([ ...n ])) t < e && r.push(t);
605
+ } else for (let e = t; e <= i; e++) r.push(e);
606
+ return r;
609
607
  });
610
608
  items=u(() => {
611
609
  this.R();
612
610
  const e = this.S, t = this.data(), i = this.getKey(), s = this.itemProps();
613
- return this.I().map(n => {
614
- const r = t[n];
611
+ return this.P().map(r => {
612
+ const n = t[r];
615
613
  return {
616
- key: i(r, n),
617
- index: n,
618
- data: r,
619
- offset: e.$getItemOffset(n),
620
- hide: e.$isUnmeasuredItem(n),
614
+ key: i(n, r),
615
+ index: r,
616
+ data: n,
617
+ offset: e.$getItemOffset(r),
618
+ hide: e.$isUnmeasuredItem(r),
621
619
  attrs: s?.({
622
- item: r,
623
- index: n
620
+ item: n,
621
+ index: r
624
622
  })
625
623
  };
626
624
  });
@@ -668,6 +666,8 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
668
666
  this.scrolled.emit(s.$getScrollOffset());
669
667
  }), s.$subscribe(8, () => {
670
668
  this.scrollEnded.emit();
669
+ }), s.$subscribe(2, () => {
670
+ this.resized.emit();
671
671
  }), this.R.set(s.$getStateVersion());
672
672
  }
673
673
  get cache() {
@@ -683,7 +683,7 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
683
683
  return this.S.$getViewportSize();
684
684
  }
685
685
  findItemIndex(e) {
686
- return this.S.$findItemIndex(e);
686
+ return this.v.$findIndex(e - this.S.$getStartSpacerSize());
687
687
  }
688
688
  getItemOffset(e) {
689
689
  return this.S.$getItemOffset(e);
@@ -802,7 +802,8 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
802
802
  },
803
803
  outputs: {
804
804
  scrolled: "scrolled",
805
- scrollEnded: "scrollEnded"
805
+ scrollEnded: "scrollEnded",
806
+ resized: "resized"
806
807
  },
807
808
  host: {
808
809
  properties: {
@@ -822,7 +823,7 @@ z), M = e => b(e.$getTotalSize(), e.$getViewportSize()), _ = ({$getRange: e, $fi
822
823
  isInline: !0,
823
824
  dependencies: [ {
824
825
  kind: "directive",
825
- type: e.forwardRef(() => re),
826
+ type: e.forwardRef(() => ne),
826
827
  selector: "div[virtuaListItem]",
827
828
  inputs: [ "index", "offset", "hide", "horizontal", "isSSR", "resizer", "attrs" ]
828
829
  }, {
@@ -852,9 +853,10 @@ var ce = class t {
852
853
  });
853
854
  scrolled=f();
854
855
  scrollEnded=f();
856
+ resized=f();
855
857
  template=p.required(l);
856
858
  virtualizer=y.required(ae);
857
- N=d(n).nativeElement;
859
+ N=d(r).nativeElement;
858
860
  ngOnInit() {
859
861
  const e = this.horizontal(), t = this.N;
860
862
  t.setAttribute("style", `display:block;${e ? "overflow-x" : "overflow-y"}:auto;contain:strict;width:100%;height:100%;` + (t.getAttribute("style") || ""));
@@ -977,7 +979,8 @@ var ce = class t {
977
979
  },
978
980
  outputs: {
979
981
  scrolled: "scrolled",
980
- scrollEnded: "scrollEnded"
982
+ scrollEnded: "scrollEnded",
983
+ resized: "resized"
981
984
  },
982
985
  queries: [ {
983
986
  propertyName: "template",
@@ -996,14 +999,14 @@ var ce = class t {
996
999
  isSignal: !0
997
1000
  } ],
998
1001
  ngImport: e,
999
- template: '\n <div\n virtuaVirtualizer\n [data]="data()"\n [getKey]="getKey()"\n [itemProps]="itemProps()"\n [bufferSize]="bufferSize()"\n [itemSize]="itemSize()"\n [ssrCount]="ssrCount()"\n [shift]="shift()"\n [horizontal]="horizontal()"\n [keepMounted]="keepMounted()"\n [cache]="cacheProp()"\n (scrolled)="scrolled.emit($event)"\n (scrollEnded)="scrollEnded.emit()"\n ></div>\n ',
1002
+ template: '\n <div\n virtuaVirtualizer\n [data]="data()"\n [getKey]="getKey()"\n [itemProps]="itemProps()"\n [bufferSize]="bufferSize()"\n [itemSize]="itemSize()"\n [ssrCount]="ssrCount()"\n [shift]="shift()"\n [horizontal]="horizontal()"\n [keepMounted]="keepMounted()"\n [cache]="cacheProp()"\n (scrolled)="scrolled.emit($event)"\n (scrollEnded)="scrollEnded.emit()"\n (resized)="resized.emit()"\n ></div>\n ',
1000
1003
  isInline: !0,
1001
1004
  dependencies: [ {
1002
1005
  kind: "directive",
1003
1006
  type: e.forwardRef(() => ae),
1004
1007
  selector: "virtua-virtualizer",
1005
1008
  inputs: [ "data", "getKey", "itemProps", "bufferSize", "scrollRef", "itemSize", "ssrCount", "shift", "horizontal", "keepMounted", "cache", "startMargin" ],
1006
- outputs: [ "scrolled", "scrollEnded" ]
1009
+ outputs: [ "scrolled", "scrollEnded", "resized" ]
1007
1010
  } ],
1008
1011
  viewProviders: [ {
1009
1012
  provide: le,
@@ -1028,20 +1031,21 @@ var ue = class i {
1028
1031
  });
1029
1032
  scrolled=f();
1030
1033
  scrollEnded=f();
1034
+ resized=f();
1031
1035
  template=p.required(l);
1032
1036
  S;
1033
1037
  v;
1034
1038
  driver;
1035
- N=d(n).nativeElement;
1039
+ N=d(r).nativeElement;
1036
1040
  $=d(t);
1037
1041
  R=g(void 0);
1038
1042
  isSSR=g(!1);
1039
1043
  items=u(() => {
1040
1044
  this.R();
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++) {
1045
+ const e = this.S, t = this.data(), i = this.getKey(), [s, r] = e.$getRange(this.bufferSize()), n = [];
1046
+ for (let o = s; o <= r; o++) {
1043
1047
  const s = t[o];
1044
- r.push({
1048
+ n.push({
1045
1049
  key: i(s, o),
1046
1050
  index: o,
1047
1051
  data: s,
@@ -1049,7 +1053,7 @@ var ue = class i {
1049
1053
  hide: e.$isUnmeasuredItem(o)
1050
1054
  });
1051
1055
  }
1052
- return r;
1056
+ return n;
1053
1057
  });
1054
1058
  containerStyle=u(() => {
1055
1059
  this.R();
@@ -1086,29 +1090,29 @@ var ue = class i {
1086
1090
  this.isSSR.set(!!t);
1087
1091
  const i = this.v = L(this.data().length, e, this.cacheProp()), s = this.S = _(i, t);
1088
1092
  this.driver = ((e, t) => {
1089
- let i, s, n, r, o, l = k();
1093
+ let i, s, r, n, o, l = k();
1090
1094
  const a = /* @__PURE__ */ new WeakMap, c = U(s => {
1091
- const n = [];
1092
- for (const {target: e, contentRect: {width: r, height: l}} of s) if (e === i) o && o(); else if (e.offsetParent) {
1095
+ const r = [];
1096
+ for (const {target: e, contentRect: {width: n, height: l}} of s) if (e === i) o && o(); else if (e.offsetParent) {
1093
1097
  const i = a.get(e);
1094
- null != i && n.push([ i, t ? r : l ]);
1098
+ null != i && r.push([ i, t ? n : l ]);
1095
1099
  }
1096
- n.length && e.$update(3, n);
1100
+ r.length && e.$update(3, r);
1097
1101
  });
1098
1102
  return {
1099
1103
  $observe(a) {
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;
1104
+ const u = O(a), p = C(u), m = i = u.scrollingElement, d = t && "rtl" === getComputedStyle(m).direction, h = (e, t, i, s, r = 0) => {
1105
+ const n = s ? "offsetLeft" : "offsetTop", o = r + (d ? t.clientWidth - e[n] - e.offsetWidth : e[n]), l = e.offsetParent;
1102
1106
  return e !== i && l ? h(l, t, i, s, o) : o;
1103
- }, f = r = () => h(a, m, u.body, t), g = o = () => {
1107
+ }, f = n = () => h(a, m, u.body, t), g = o = () => {
1104
1108
  e.$update(4, m[t ? "clientWidth" : "clientHeight"]);
1105
1109
  };
1106
- p.addEventListener("resize", g), c.i(m), n = () => {
1110
+ p.addEventListener("resize", g), c.i(m), r = () => {
1107
1111
  p.removeEventListener("resize", g);
1108
1112
  }, s = Z(e, p, m, t, d, null, f), l[1](!0);
1109
1113
  },
1110
1114
  $dispose() {
1111
- n && n(), c.l(), s && s.l(), l[1](!1), l = k();
1115
+ r && r(), c.l(), s && s.l(), l[1](!1), l = k();
1112
1116
  },
1113
1117
  $observeItem: (e, t) => (a.set(e, t), c.i(e), () => {
1114
1118
  a.delete(e), c.o(e);
@@ -1119,7 +1123,7 @@ var ue = class i {
1119
1123
  $effect() {
1120
1124
  s && s.p();
1121
1125
  },
1122
- $getBaseOffset: () => r()
1126
+ $getBaseOffset: () => n()
1123
1127
  };
1124
1128
  })(s, this.horizontal()), s.$subscribe(1, e => {
1125
1129
  this.R.set(s.$getStateVersion()), e && this.$.tick();
@@ -1127,6 +1131,8 @@ var ue = class i {
1127
1131
  this.scrolled.emit();
1128
1132
  }), s.$subscribe(8, () => {
1129
1133
  this.scrollEnded.emit();
1134
+ }), s.$subscribe(2, () => {
1135
+ this.resized.emit();
1130
1136
  }), this.R.set(s.$getStateVersion());
1131
1137
  }
1132
1138
  get cache() {
@@ -1139,7 +1145,7 @@ var ue = class i {
1139
1145
  return this.S.$getViewportSize();
1140
1146
  }
1141
1147
  findItemIndex(e) {
1142
- return this.S.$findItemIndex(e);
1148
+ return this.v.$findIndex(e - this.S.$getStartSpacerSize());
1143
1149
  }
1144
1150
  getItemOffset(e) {
1145
1151
  return this.S.$getItemOffset(e);
@@ -1224,7 +1230,8 @@ var ue = class i {
1224
1230
  },
1225
1231
  outputs: {
1226
1232
  scrolled: "scrolled",
1227
- scrollEnded: "scrollEnded"
1233
+ scrollEnded: "scrollEnded",
1234
+ resized: "resized"
1228
1235
  },
1229
1236
  host: {
1230
1237
  properties: {
@@ -1244,7 +1251,7 @@ var ue = class i {
1244
1251
  isInline: !0,
1245
1252
  dependencies: [ {
1246
1253
  kind: "directive",
1247
- type: e.forwardRef(() => re),
1254
+ type: e.forwardRef(() => ne),
1248
1255
  selector: "div[virtuaListItem]",
1249
1256
  inputs: [ "index", "offset", "hide", "horizontal", "isSSR", "resizer", "attrs" ]
1250
1257
  }, {
@@ -1263,15 +1270,15 @@ var pe = class t {
1263
1270
  state=h.required();
1264
1271
  resizer=h.required();
1265
1272
  constructor() {
1266
- const e = d(n).nativeElement, t = u(() => this.state().$measureRow), i = u(() => this.state().$measureCol);
1267
- let r;
1273
+ const e = d(r).nativeElement, t = u(() => this.state().$measureRow), i = u(() => this.state().$measureCol);
1274
+ let n;
1268
1275
  c({
1269
1276
  read: () => {
1270
- const s = t(), n = i();
1271
- r && r(), r = null == s && null == n ? void 0 : S(this.resizer)(e, s, n);
1277
+ const s = t(), r = i();
1278
+ n && n(), n = null == s && null == r ? void 0 : S(this.resizer)(e, s, r);
1272
1279
  }
1273
1280
  }), d(s).onDestroy(() => {
1274
- r && r();
1281
+ n && n();
1275
1282
  });
1276
1283
  }
1277
1284
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
@@ -1498,23 +1505,24 @@ var pe = class t {
1498
1505
  verticalScrolled=f();
1499
1506
  horizontalScrolled=f();
1500
1507
  scrollEnded=f();
1508
+ resized=f();
1501
1509
  template=p.required(l);
1502
1510
  container=y.required("container");
1503
- P;
1511
+ I;
1504
1512
  q;
1505
1513
  F;
1506
1514
  k;
1507
1515
  driver;
1508
- N=d(n).nativeElement;
1516
+ N=d(r).nativeElement;
1509
1517
  $=d(t);
1510
1518
  R=g(void 0);
1511
- ariaRowCount=d(new r("aria-rowcount"), {
1519
+ ariaRowCount=d(new n("aria-rowcount"), {
1512
1520
  optional: !0
1513
1521
  });
1514
- ariaColCount=d(new r("aria-colcount"), {
1522
+ ariaColCount=d(new n("aria-colcount"), {
1515
1523
  optional: !0
1516
1524
  });
1517
- rowCount=u(() => this.R() && this.P.$getItemsLength());
1525
+ rowCount=u(() => this.R() && this.I.$getItemsLength());
1518
1526
  colCount=u(() => this.R() && this.q.$getItemsLength());
1519
1527
  O=u(() => this.F.$getSizes(this.rows(), this.rowHeight()));
1520
1528
  C=u(() => this.k.$getSizes(this.cols(), this.colWidth()));
@@ -1529,18 +1537,18 @@ var pe = class t {
1529
1537
  }
1530
1538
  return t;
1531
1539
  })(this.spans()));
1532
- plan=u(() => (this.R(), ((e, t, [i, s], [n, r], o, l = N, a = N, c) => {
1540
+ plan=u(() => (this.R(), ((e, t, [i, s], [r, n], o, l = N, a = N, c) => {
1533
1541
  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 = w(s, d - 1), n = I(n, h, f), r = w(r, f - 1);
1542
+ i = P(i, m, d), s = w(s, d - 1), r = P(r, h, f), n = w(n, f - 1);
1535
1543
  const g = B(l, m, d), S = b(h - 1, 0), y = [], v = [], z = [];
1536
1544
  for (const e of a) e.rowIndex < u && e.colIndex < p && (z.push(e), y.push(e.rowIndex));
1537
1545
  const $ = z.length, R = H(g, i, d), x = R < 0 ? -1 : g[R];
1538
1546
  x >= 0 && y.push(x);
1539
- const q = A(P(y), u, m, i, s, d);
1547
+ const q = A(I(y), u, m, i, s, d);
1540
1548
  for (let e = 0; e < q.length; e++) for (const t of o.get(q[e]) || N) {
1541
1549
  const {rowIndex: o, colIndex: l} = t, a = Q(t, u), c = J(t, p);
1542
1550
  if ((e < 1 || q[e - 1] < o) && l < p && (a - o > 1 || c - l > 1)) {
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);
1551
+ let e = (o < m || b(o, i) < w(a, s + 1) || d < a || x >= o && x < a) && (l < h || b(l, r) < w(c, n + 1) || f < c);
1544
1552
  for (let t = 0; !e && t < $; t++) {
1545
1553
  const i = z[t];
1546
1554
  e = i.rowIndex >= o && i.rowIndex < a && i.colIndex >= l && i.colIndex < c;
@@ -1552,15 +1560,15 @@ var pe = class t {
1552
1560
  const i = H(g, e, d);
1553
1561
  y.push(e), i >= 0 && y.push(g[i]), v.push(t);
1554
1562
  }
1555
- P(y), P(v);
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 = [], _ = [];
1563
+ I(y), I(v);
1564
+ const F = A(y, u, m, i, s, d), k = A(v, p, h, r, n, f), O = F.length, C = k.length, T = /* @__PURE__ */ new Map, M = [], _ = [];
1557
1565
  for (const e of z) {
1558
1566
  const t = Q(e, u), i = J(e, p);
1559
1567
  M.push(t), _.push(i);
1560
1568
  const s = k.indexOf(e.colIndex);
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);
1569
+ for (let r = F.indexOf(e.rowIndex); r < O && F[r] < t; r++) {
1570
+ const t = F[r] * p;
1571
+ for (let r = s; r < C && k[r] < i; r++) T.set(t + k[r], e);
1564
1572
  }
1565
1573
  }
1566
1574
  const V = [];
@@ -1580,26 +1588,26 @@ var pe = class t {
1580
1588
  $style: Y(v, e, l || a ? 0 : null, a ? "bottom" : "top", 4)
1581
1589
  }), D = t;
1582
1590
  } 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 = [];
1591
+ 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), P = R && R.$cells, I = [];
1584
1592
  let q = 0, F = !e.$isMeasurable(o) && null, O = o + 1, _ = !1;
1585
1593
  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);
1594
+ const i = k[e], s = i < h, a = i >= f, m = s || a || i >= r && i <= n, d = T.get($ + i);
1587
1595
  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;
1596
+ const r = d ? Q(d, u) : o + 1, n = d ? J(d, p) : i + 1, m = r - o, h = n - i, f = m > 1, g = h > 1, y = f || g;
1589
1597
  let v, N;
1590
- O = b(O, n);
1591
- const w = s ? t.$getItemOffset(i) : null, $ = a ? t.$getItemOffset(p) - t.$getItemOffset(r) : null;
1598
+ O = b(O, r);
1599
+ const w = s ? t.$getItemOffset(i) : null, $ = a ? t.$getItemOffset(p) - t.$getItemOffset(n) : null;
1592
1600
  !1 !== F || f || (v = o, F = !0), !1 !== V[e] || g || (N = i, V[e] = !0);
1593
1601
  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
1602
  let T;
1595
- if (I) {
1596
- const e = I.length;
1597
- for (;q < e && I[q].$col < i; ) q++;
1598
- q < e && I[q].$col === i && (T = I[q]);
1603
+ if (P) {
1604
+ const e = P.length;
1605
+ for (;q < e && P[q].$col < i; ) q++;
1606
+ q < e && P[q].$col === i && (T = P[q]);
1599
1607
  }
1600
1608
  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
1609
  let e = "1/l" + i;
1602
- y && (e += "/l" + n + "/l" + r);
1610
+ y && (e += "/l" + r + "/l" + n);
1603
1611
  const t = {
1604
1612
  contain: "layout style",
1605
1613
  display: "grid",
@@ -1620,13 +1628,13 @@ var pe = class t {
1620
1628
  $end: $
1621
1629
  }, _ = !0;
1622
1630
  }
1623
- P.push(T);
1631
+ I.push(T);
1624
1632
  }
1625
1633
  }
1626
- if (E.push(F), P.length) {
1627
- const e = R && !_ && R.$cells.length === P.length && R.$top === w ? R : {
1634
+ if (E.push(F), I.length) {
1635
+ const e = R && !_ && R.$cells.length === I.length && R.$top === w ? R : {
1628
1636
  $row: o,
1629
- $cells: P,
1637
+ $cells: I,
1630
1638
  $style: Y(o, O, w, "top", 3),
1631
1639
  $top: w
1632
1640
  };
@@ -1634,17 +1642,17 @@ var pe = class t {
1634
1642
  }
1635
1643
  }
1636
1644
  return W.set(e, j), {
1637
- $rowTemplate: X(e, F, E, P(M), "max-content", u),
1638
- $colTemplate: X(t, k, V, P(_), "minmax(max-content,auto)", p),
1645
+ $rowTemplate: X(e, F, E, I(M), "max-content", u),
1646
+ $colTemplate: X(t, k, V, I(_), "minmax(max-content,auto)", p),
1639
1647
  $groups: K
1640
1648
  };
1641
- })(this.F, this.k, this.P.$getRange(this.bufferSize()), this.q.$getRange(this.bufferSize()), this.T(), this.sectionRows(), this.keepMounted(), this.ariaSort())));
1649
+ })(this.F, this.k, this.I.$getRange(this.bufferSize()), this.q.$getRange(this.bufferSize()), this.T(), this.sectionRows(), this.keepMounted(), this.ariaSort())));
1642
1650
  rowItem(e) {
1643
1651
  return D(this.rows(), e);
1644
1652
  }
1645
1653
  containerStyle=u(() => {
1646
1654
  this.R();
1647
- const {$rowTemplate: e, $colTemplate: t} = this.plan(), i = this.P.$getItemOffset(0), s = this.q.$getItemOffset(0);
1655
+ const {$rowTemplate: e, $colTemplate: t} = this.plan(), i = this.I.$getItemOffset(0), s = this.q.$getItemOffset(0);
1648
1656
  return {
1649
1657
  contain: "size style",
1650
1658
  "overflow-anchor": "none",
@@ -1655,20 +1663,20 @@ var pe = class t {
1655
1663
  gap: this.gap() + "px",
1656
1664
  "margin-top": i + "px",
1657
1665
  "margin-inline-start": s + "px",
1658
- height: M(this.P) - i + "px",
1659
- "pointer-events": this.P.$isScrolling() || this.q.$isScrolling() ? "none" : void 0
1666
+ height: M(this.I) - i + "px",
1667
+ "pointer-events": this.I.$isScrolling() || this.q.$isScrolling() ? "none" : void 0
1660
1668
  };
1661
1669
  });
1662
1670
  constructor() {
1663
1671
  m(() => {
1664
- const e = this.rows(), t = this.cols(), i = this.headerRows(), s = this.footerRows(), n = this.headerCols(), r = this.footerCols();
1665
- if (!this.P) return;
1672
+ const e = this.rows(), t = this.cols(), i = this.headerRows(), s = this.footerRows(), r = this.headerCols(), n = this.footerCols();
1673
+ if (!this.I) return;
1666
1674
  const o = this.O(), l = this.C();
1667
1675
  S(() => {
1668
- this.F.$setPinned(i, s), this.k.$setPinned(n, r);
1676
+ this.F.$setPinned(i, s), this.k.$setPinned(r, n);
1669
1677
  const a = K(e), c = K(t);
1670
- a !== this.P.$getItemsLength() && this.P.$update(5, [ a ]), c !== this.q.$getItemsLength() && this.q.$update(5, [ c ]),
1671
- this.P.$update(9, o), this.q.$update(9, l);
1678
+ a !== this.I.$getItemsLength() && this.I.$update(5, [ a ]), c !== this.q.$getItemsLength() && this.q.$update(5, [ c ]),
1679
+ this.I.$update(9, this.F.$relayout(o, this.I.$getVisibleOffset())), this.q.$update(9, this.k.$relayout(l, this.q.$getVisibleOffset()));
1672
1680
  });
1673
1681
  }), a({
1674
1682
  read: () => {
@@ -1679,19 +1687,19 @@ var pe = class t {
1679
1687
  this.R(), this.driver.$effect();
1680
1688
  }
1681
1689
  }), d(s).onDestroy(() => {
1682
- this.P?.$dispose(), this.q?.$dispose(), this.driver?.$dispose();
1690
+ this.I?.$dispose(), this.q?.$dispose(), this.driver?.$dispose();
1683
1691
  });
1684
1692
  }
1685
1693
  ngOnInit() {
1686
1694
  const e = this.N;
1687
1695
  e.setAttribute("style", "display:block;overflow:auto;contain:strict;width:100%;height:100%;" + (e.getAttribute("style") || ""));
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);
1696
+ const t = this.gap(), i = this.F = G(this.rows(), this.rowHeight(), t), s = this.k = G(this.cols(), this.colWidth(), t), r = this.I = _(i), n = this.q = _(s);
1689
1697
  this.driver = ((e, t) => {
1690
- let i, s, n, r = k(), o = !0;
1691
- const l = /* @__PURE__ */ new WeakMap, a = /* @__PURE__ */ new WeakMap, c = U(r => {
1698
+ let i, s, r, n = k(), o = !0;
1699
+ const l = /* @__PURE__ */ new WeakMap, a = /* @__PURE__ */ new WeakMap, c = U(n => {
1692
1700
  const c = [], u = [];
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) {
1701
+ for (const {target: p, contentRect: {width: m, height: d}} of n) if (p === i) m || d ? (o || (s.u(),
1702
+ r.u()), o = !0, e.$update(4, d), t.$update(4, m)) : o = !1; else if (p.offsetParent) {
1695
1703
  const e = l.get(p), t = a.get(p);
1696
1704
  null != e && c.push([ e, d ]), null != t && u.push([ t, m ]);
1697
1705
  }
@@ -1699,7 +1707,7 @@ var pe = class t {
1699
1707
  });
1700
1708
  return {
1701
1709
  async $scroll(e, t) {
1702
- await r[0] && (e ? n : s).m(t);
1710
+ await n[0] && (e ? r : s).m(t);
1703
1711
  },
1704
1712
  $observe(o, l = o.parentElement) {
1705
1713
  c.i(i = l);
@@ -1709,75 +1717,82 @@ var pe = class t {
1709
1717
  i[e] = s;
1710
1718
  });
1711
1719
  });
1712
- s = a(e, !1), n = a(t, !0), r[1](!0);
1720
+ s = a(e, !1), r = a(t, !0), n[1](!0);
1713
1721
  },
1714
1722
  $dispose() {
1715
- c.l(), s && s.l(), n && n.l(), r[1](!1), r = k();
1723
+ c.l(), s && s.l(), r && r.l(), n[1](!1), n = k();
1716
1724
  },
1717
1725
  $observeItem: (e, t, i) => (null != t && l.set(e, t), null != i && a.set(e, i),
1718
1726
  c.i(e), () => {
1719
1727
  l.delete(e), a.delete(e), c.o(e);
1720
1728
  }),
1721
1729
  $effect() {
1722
- s && s.p(), n && n.p();
1730
+ s && s.p(), r && r.p();
1723
1731
  }
1724
1732
  };
1725
- })(n, r);
1733
+ })(r, n);
1726
1734
  const o = e => {
1727
- this.R.set(n.$getStateVersion() + r.$getStateVersion()), e && this.$.tick();
1735
+ this.R.set(r.$getStateVersion() + n.$getStateVersion()), e && this.$.tick();
1728
1736
  };
1729
- n.$subscribe(1, o), r.$subscribe(1, o);
1737
+ r.$subscribe(1, o), n.$subscribe(1, o);
1730
1738
  let l = !1;
1731
- n.$subscribe(4, () => {
1732
- l = !0, this.verticalScrolled.emit(n.$getScrollOffset());
1733
- }), r.$subscribe(4, () => {
1734
- l = !0, this.horizontalScrolled.emit(r.$getScrollOffset());
1739
+ r.$subscribe(4, () => {
1740
+ l = !0, this.verticalScrolled.emit(r.$getScrollOffset());
1741
+ }), n.$subscribe(4, () => {
1742
+ l = !0, this.horizontalScrolled.emit(n.$getScrollOffset());
1735
1743
  });
1736
1744
  const a = () => {
1737
- !l || n.$isScrolling() || r.$isScrolling() || (l = !1, this.scrollEnded.emit());
1745
+ !l || r.$isScrolling() || n.$isScrolling() || (l = !1, this.scrollEnded.emit());
1746
+ };
1747
+ let c;
1748
+ r.$subscribe(8, a), n.$subscribe(8, a);
1749
+ const u = () => {
1750
+ c || (c = !0, F(() => {
1751
+ c = !1, this.resized.emit();
1752
+ }));
1738
1753
  };
1739
- n.$subscribe(8, a), r.$subscribe(8, a), o();
1754
+ r.$subscribe(2, u), n.$subscribe(2, u), o();
1740
1755
  }
1741
1756
  get verticalScrollOffset() {
1742
- return this.P.$getScrollOffset();
1757
+ return this.I.$getScrollOffset();
1743
1758
  }
1744
1759
  get horizontalScrollOffset() {
1745
1760
  return this.q.$getScrollOffset();
1746
1761
  }
1747
1762
  get scrollHeight() {
1748
- return M(this.P);
1763
+ return M(this.I);
1749
1764
  }
1750
1765
  get scrollWidth() {
1751
1766
  return M(this.q);
1752
1767
  }
1753
1768
  get viewportHeight() {
1754
- return this.P.$getViewportSize();
1769
+ return this.I.$getViewportSize();
1755
1770
  }
1756
1771
  get viewportWidth() {
1757
1772
  return this.q.$getViewportSize();
1758
1773
  }
1759
1774
  findRowIndex(e) {
1760
- return this.P.$findItemIndex(e);
1775
+ return this.F.$findIndex(e);
1761
1776
  }
1762
1777
  findColIndex(e) {
1763
- return this.q.$findItemIndex(e);
1778
+ return this.k.$findIndex(e);
1764
1779
  }
1765
1780
  getRowOffset(e) {
1766
- return this.P.$getItemOffset(e);
1781
+ return this.I.$getItemOffset(e);
1767
1782
  }
1768
1783
  getColOffset(e) {
1769
1784
  return this.q.$getItemOffset(e);
1770
1785
  }
1771
1786
  getRowSize(e) {
1772
- return this.P.$getItemSize(e);
1787
+ return this.I.$getItemSize(e);
1773
1788
  }
1774
1789
  getColSize(e) {
1775
1790
  return this.q.$getItemSize(e);
1776
1791
  }
1777
1792
  scrollToIndex(e) {
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);
1780
- })(this.driver, this.P, this.q, this.F, this.k, this.sectionRows(), e);
1793
+ ((e, t, i, s, r, n = N, {rowIndex: o, colIndex: l, rowAlign: a, colAlign: c}) => {
1794
+ null != o && re(e, t, s, n, o, a, !1), null != l && re(e, i, r, N, l, c, !0);
1795
+ })(this.driver, this.I, this.q, this.F, this.k, this.sectionRows(), e);
1781
1796
  }
1782
1797
  scrollTo({vertical: e, horizontal: t}) {
1783
1798
  ((e, t, i) => {
@@ -1785,16 +1800,16 @@ var pe = class t {
1785
1800
  })(this.driver, e, t);
1786
1801
  }
1787
1802
  scrollBy({vertical: e, horizontal: t}) {
1788
- ((e, t, i, s, n) => {
1803
+ ((e, t, i, s, r) => {
1789
1804
  if (null != s) {
1790
1805
  const i = s + t.$getScrollOffset();
1791
1806
  e.$scroll(!1, () => i);
1792
1807
  }
1793
- if (null != n) {
1794
- const t = n + i.$getScrollOffset();
1808
+ if (null != r) {
1809
+ const t = r + i.$getScrollOffset();
1795
1810
  e.$scroll(!0, () => t);
1796
1811
  }
1797
- })(this.driver, this.P, this.q, e, t);
1812
+ })(this.driver, this.I, this.q, e, t);
1798
1813
  }
1799
1814
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
1800
1815
  minVersion: "12.0.0",
@@ -1913,7 +1928,8 @@ var pe = class t {
1913
1928
  outputs: {
1914
1929
  verticalScrolled: "verticalScrolled",
1915
1930
  horizontalScrolled: "horizontalScrolled",
1916
- scrollEnded: "scrollEnded"
1931
+ scrollEnded: "scrollEnded",
1932
+ resized: "resized"
1917
1933
  },
1918
1934
  host: {
1919
1935
  attributes: {
@@ -1976,7 +1992,7 @@ var fe = (e, t) => t ? `calc(${100 * e}% + ${t}px)` : 100 * e + "%", ge = class
1976
1992
  visibility: this.hide() ? "hidden" : void 0
1977
1993
  }));
1978
1994
  constructor() {
1979
- const e = d(n).nativeElement;
1995
+ const e = d(r).nativeElement;
1980
1996
  let t;
1981
1997
  c({
1982
1998
  read: () => {
@@ -2065,35 +2081,36 @@ var fe = (e, t) => t ? `calc(${100 * e}% + ${t}px)` : 100 * e + "%", ge = class
2065
2081
  });
2066
2082
  scrolled=f();
2067
2083
  scrollEnded=f();
2084
+ resized=f();
2068
2085
  template=p.required(l);
2069
2086
  container=y.required("container");
2070
2087
  S;
2071
2088
  v;
2072
2089
  driver;
2073
- N=d(n).nativeElement;
2090
+ N=d(r).nativeElement;
2074
2091
  $=d(t);
2075
2092
  R=g(void 0);
2076
- I=u(() => {
2093
+ P=u(() => {
2077
2094
  this.R();
2078
- const e = this.data().length, [t, i] = this.S.$getRange(this.bufferSize()), s = this.keepMounted(), n = [];
2095
+ const e = this.data().length, [t, i] = this.S.$getRange(this.bufferSize()), s = this.keepMounted(), r = [];
2079
2096
  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;
2097
+ const n = new Set(s);
2098
+ for (let e = t; e <= i; e++) n.add(e);
2099
+ for (const t of I([ ...n ])) t < e && r.push(t);
2100
+ } else for (let e = t; e <= i; e++) r.push(e);
2101
+ return r;
2085
2102
  });
2086
2103
  items=u(() => {
2087
2104
  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()) {
2105
+ const e = this.S, t = this.v, i = this.data(), s = this.getKey(), r = t.$getGap(), n = t.$getLanes(), o = fe(1 / n, r / n - r), l = [];
2106
+ for (const a of this.P()) {
2090
2107
  const c = i[a], u = t.$getItemLane(a);
2091
2108
  l.push({
2092
2109
  key: s(c, a),
2093
2110
  index: a,
2094
2111
  data: c,
2095
2112
  offset: e.$getItemOffset(a),
2096
- crossOffset: fe(u / r, u * n / r),
2113
+ crossOffset: fe(u / n, u * r / n),
2097
2114
  crossSize: o,
2098
2115
  hide: e.$isUnmeasuredItem(a)
2099
2116
  });
@@ -2118,7 +2135,7 @@ var fe = (e, t) => t ? `calc(${100 * e}% + ${t}px)` : 100 * e + "%", ge = class
2118
2135
  }), m(() => {
2119
2136
  const e = this.lanes(), t = this.gap();
2120
2137
  this.S && S(() => {
2121
- this.v.$setOptions(e, t), this.S.$update(9, void 0);
2138
+ this.S.$update(9, this.v.$relayout(e, t, this.S.$getVisibleOffset()));
2122
2139
  });
2123
2140
  }), a({
2124
2141
  read: () => {
@@ -2135,82 +2152,78 @@ var fe = (e, t) => t ? `calc(${100 * e}% + ${t}px)` : 100 * e + "%", ge = class
2135
2152
  ngOnInit() {
2136
2153
  const e = this.N;
2137
2154
  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--);
2155
+ const t = this.v = ((e, t, i = 0, s, r) => {
2156
+ let n = b(t, 1), o = r && r[1] || s || 40, l = -1, a = s ? void 0 : /* @__PURE__ */ new Set, c = !s;
2157
+ const u = r && r[0], p = u ? V(u.slice(0, w(e, u.length)), b(0, e - u.length)) : V([], e), m = [], d = [], h = [], f = e => {
2158
+ const t = p[e];
2159
+ return -1 === t ? o : t;
2160
+ }, g = t => {
2161
+ if (t = w(t, e - 1), l >= t) return;
2162
+ const s = [], r = [];
2163
+ for (let e = 0; e < n; e++) s.push(0), r.push(-1);
2164
+ for (let e = l, t = n; e >= 0 && t; e--) {
2165
+ const i = d[e];
2166
+ -1 === r[i] && (r[i] = e, s[i] = m[e] + f(e), t--);
2150
2167
  }
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]);
2168
+ for (;l < t; ) {
2169
+ const e = ++l;
2170
+ let t = 0, o = 1 / 0, a = 1 / 0;
2171
+ for (let e = 0; e < n; e++) {
2172
+ const n = s[e] + (r[e] >= 0 ? i : 0);
2173
+ (n < o || n === o && r[e] < a) && (t = e, o = n, a = r[e]);
2157
2174
  }
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]);
2175
+ m[e] = o, d[e] = t, s[t] = o + f(e), r[t] = e, h[e] = b(e ? h[e - 1] : 0, s[t]);
2159
2176
  }
2160
- }, v = t => t >= e ? N() : (y(t), h[t]), z = e => (y(e), g[e]), N = () => e ? z(e - 1) : 0, $ = t => {
2177
+ }, S = t => t >= e ? v() : (g(t), m[t]), y = e => (g(e), h[e]), v = () => e ? y(e - 1) : 0, z = t => {
2161
2178
  if (!e) return 0;
2162
- const i = E(z, e, t);
2163
- return z(i) <= t ? i + 1 : i;
2179
+ const i = E(y, e, t);
2180
+ return y(i) <= t ? i + 1 : i;
2164
2181
  };
2165
2182
  return {
2166
2183
  $getRange: (t, i) => {
2167
- const s = E(v, e, i);
2168
- return [ w($(t), s), s ];
2184
+ const s = E(S, e, i);
2185
+ return [ w(z(t), s), s ];
2169
2186
  },
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) {
2187
+ $getItemOffset: S,
2188
+ $getItemSize: f,
2189
+ $isSizeEqual: (e, t = -1) => p[e] === t,
2190
+ $resize: (t, s, r, u) => {
2191
+ let m = z(r);
2192
+ for (;m > 0 && !s(m - 1); ) m--;
2193
+ for (;m < e && s(m); ) m++;
2194
+ const d = S(m);
2195
+ for (const [e, i] of t) p[e] = i, a && a.add(e), l = w(e - 1, l);
2196
+ let h = S(m) - d;
2197
+ if (a && u) {
2182
2198
  const e = [];
2183
2199
  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;
2200
+ if (a.forEach(s => {
2201
+ const r = p[s];
2202
+ r > 0 && (e.push(r), t += r + i);
2203
+ }), t > u * n) {
2204
+ I(e);
2205
+ const t = e.length, i = t / 2 | 0, s = t % 2 == 0 ? (e[i - 1] + e[i]) / 2 : e[i], n = z(r + h), u = S(n);
2206
+ o = s, l = -1, h += S(n) - u, a = void 0, c = !1;
2191
2207
  }
2192
2208
  }
2193
2209
  return h;
2194
2210
  },
2195
- $getTotalSize: N,
2211
+ $getTotalSize: v,
2196
2212
  $getLength: () => e,
2197
2213
  $setLength: t => {
2198
2214
  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;
2215
+ return l = w(t - 1, l), e = t, i > 0 ? V(p, i) : p.splice(i), 0;
2205
2216
  },
2206
- $setOptions: (e, t = 0) => {
2207
- o = b(e, 1), l = t;
2217
+ $relayout: (e, t = 0, r) => {
2218
+ if ((e = b(e, 1)) === n && t === i) return;
2219
+ const o = z(r), c = S(o);
2220
+ return n = e, i = t, l = -1, a = s ? void 0 : /* @__PURE__ */ new Set, S(o) - c;
2208
2221
  },
2209
- $isEstimating: () => p,
2210
- $snapshot: () => [ d.slice(), a ],
2211
- $getLanes: () => r,
2222
+ $isEstimating: () => c,
2223
+ $snapshot: () => [ p.slice(), o ],
2224
+ $getLanes: () => n,
2212
2225
  $getGap: () => i,
2213
- $getItemLane: e => (y(e), f[e])
2226
+ $getItemLane: e => (g(e), d[e])
2214
2227
  };
2215
2228
  })(this.data().length, this.lanes(), this.gap(), this.itemSize(), this.cacheProp()), i = this.S = _(t);
2216
2229
  this.driver = ee(i, !1), i.$subscribe(1, e => {
@@ -2219,6 +2232,8 @@ var fe = (e, t) => t ? `calc(${100 * e}% + ${t}px)` : 100 * e + "%", ge = class
2219
2232
  this.scrolled.emit(i.$getScrollOffset());
2220
2233
  }), i.$subscribe(8, () => {
2221
2234
  this.scrollEnded.emit();
2235
+ }), i.$subscribe(2, () => {
2236
+ this.resized.emit();
2222
2237
  }), this.R.set(i.$getStateVersion());
2223
2238
  }
2224
2239
  get cache() {
@@ -2322,7 +2337,8 @@ var fe = (e, t) => t ? `calc(${100 * e}% + ${t}px)` : 100 * e + "%", ge = class
2322
2337
  },
2323
2338
  outputs: {
2324
2339
  scrolled: "scrolled",
2325
- scrollEnded: "scrollEnded"
2340
+ scrollEnded: "scrollEnded",
2341
+ resized: "resized"
2326
2342
  },
2327
2343
  queries: [ {
2328
2344
  propertyName: "template",