virtua 0.50.6 → 0.51.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 (39) hide show
  1. package/README.md +10 -5
  2. package/lib/angular/Virtualizer.d.ts +2 -2
  3. package/lib/angular/WindowVirtualizer.d.ts +2 -2
  4. package/lib/angular/index.js +245 -270
  5. package/lib/angular/index.js.map +1 -1
  6. package/lib/core/index.cjs +261 -298
  7. package/lib/core/index.cjs.map +1 -1
  8. package/lib/core/index.js +276 -313
  9. package/lib/core/index.js.map +1 -1
  10. package/lib/index.cjs +460 -497
  11. package/lib/index.cjs.map +1 -1
  12. package/lib/index.js +461 -498
  13. package/lib/index.js.map +1 -1
  14. package/lib/react/VGrid.d.ts +3 -3
  15. package/lib/react/Virtualizer.d.ts +2 -2
  16. package/lib/react/WindowVirtualizer.d.ts +2 -2
  17. package/lib/solid/Virtualizer.d.ts +2 -2
  18. package/lib/solid/WindowVirtualizer.d.ts +2 -2
  19. package/lib/solid/index.cjs +262 -289
  20. package/lib/solid/index.cjs.map +1 -1
  21. package/lib/solid/index.js +273 -298
  22. package/lib/solid/index.js.map +1 -1
  23. package/lib/solid/index.jsx +160 -220
  24. package/lib/solid/index.jsx.map +1 -1
  25. package/lib/svelte/ListItem.svelte +1 -1
  26. package/lib/svelte/Virtualizer.svelte +12 -4
  27. package/lib/svelte/Virtualizer.type.d.ts +2 -2
  28. package/lib/svelte/WindowVirtualizer.svelte +12 -4
  29. package/lib/svelte/WindowVirtualizer.type.d.ts +2 -2
  30. package/lib/svelte/utils.d.ts +2 -0
  31. package/lib/svelte/utils.js +4 -1
  32. package/lib/svelte/utils.js.map +1 -1
  33. package/lib/vue/Virtualizer.d.ts +2 -2
  34. package/lib/vue/WindowVirtualizer.d.ts +2 -2
  35. package/lib/vue/index.cjs +365 -415
  36. package/lib/vue/index.cjs.map +1 -1
  37. package/lib/vue/index.js +316 -365
  38. package/lib/vue/index.js.map +1 -1
  39. package/package.json +3 -4
@@ -4,23 +4,18 @@ import { ApplicationRef as t, ChangeDetectionStrategy as i, DestroyRef as s, Ele
4
4
 
5
5
  import { NgTemplateOutlet as y } from "@angular/common";
6
6
 
7
- var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R = e => [ ...e ].sort((e, t) => e - t), $ = setTimeout, I = clearTimeout, q = "function" == typeof queueMicrotask ? queueMicrotask : e => {
7
+ var v, {min: z, max: b, abs: N, floor: P} = Math, R = (e, t, i) => z(i, b(t, e)), I = e => [ ...e ].sort((e, t) => e - t), $ = setTimeout, q = clearTimeout, x = "function" == typeof queueMicrotask ? queueMicrotask : e => {
8
8
  Promise.resolve().then(e);
9
- }, x = () => {
9
+ }, k = () => {
10
10
  let e;
11
11
  return [ new Promise(t => {
12
12
  e = t;
13
13
  }), e ];
14
- }, k = e => {
15
- let t;
16
- return () => (e && (t = e(), e = void 0), t);
17
- }, F = e => e.documentElement, w = e => e.ownerDocument, O = e => e.defaultView, T = /*#__PURE__*/ k(() => !!/iP(hone|od|ad)/.test(navigator.userAgent) || "MacIntel" === navigator.platform && navigator.maxTouchPoints > 0), C = /*#__PURE__*/ k(() => "scrollBehavior" in F(document).style), M = ({$getRange: e, $findIndex: t, $getItemOffset: i, $getItemSize: s, $setItemSize: n, $isSizeEqual: r, $getTotalSize: o, $getLength: a, $setLength: l, $estimateDefaultSize: c}, u = 0) => {
18
- let m = !!c, h = !!u, p = 1, f = 0, d = 0, g = 0, S = 0, y = 0, N = 0, P = 0, R = 0, $ = null, I = [ 0, h ? z(u - 1, 0) : -1 ], q = 0, x = !1;
19
- const k = /* @__PURE__ */ new Set, F = () => g - d, w = () => F() + y + S, O = (e, t) => {
20
- const n = i(e) - y;
21
- return t ? o() - n - s(e) : n;
22
- }, C = e => {
23
- e && (T() && 0 !== P || $ && 1 === R ? y += e : S += e);
14
+ }, F = e => e.ownerDocument, w = e => e.defaultView, O = () => (null == v && (v = /iP(hone|od|ad)/.test(navigator.userAgent) || "MacIntel" === navigator.platform && navigator.maxTouchPoints > 0),
15
+ v), T = ({$getRange: e, $findIndex: t, $getItemOffset: i, $getItemSize: s, $setItemSize: n, $isSizeEqual: r, $getTotalSize: o, $getLength: a, $setLength: l, $estimateDefaultSize: c}, u = 0) => {
16
+ let m = !!c, h = !!u, p = 1, f = 0, d = 0, g = 0, S = 0, y = 0, v = 0, P = 0, R = 0, I = null, $ = [ 0, h ? b(u - 1, 0) : -1 ], q = 0, x = !1;
17
+ const k = /* @__PURE__ */ new Set, F = () => g - d, w = () => F() + y + S, T = e => i(e) - y, C = e => {
18
+ e && (O() && 0 !== P || I && 1 === R ? y += e : S += e);
24
19
  };
25
20
  return {
26
21
  $dispose: () => {
@@ -28,18 +23,18 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
28
23
  },
29
24
  $getStateVersion: () => p,
30
25
  $getRange: (t = 200) => {
31
- if (!x || h) return I;
26
+ if (!x || h) return $;
32
27
  let i, s;
33
- if (N) [i, s] = I; else {
34
- let n = z(0, w()), r = n + f;
35
- m || (t = z(0, t), 1 !== P && (n -= t), 2 !== P && (r += t)), [i, s] = I = e(z(0, n), z(0, r)),
36
- $ && (i = v(i, $[0]), s = z(s, $[1]));
28
+ if (v) [i, s] = $; else {
29
+ let n = b(0, w()), r = n + f;
30
+ m || (t = b(0, t), 1 !== P && (n -= t), 2 !== P && (r += t)), [i, s] = $ = e(b(0, n), b(0, r)),
31
+ I && (i = z(i, I[0]), s = b(s, I[1]));
37
32
  }
38
- return [ z(i, 0), v(s, a() - 1) ];
33
+ return [ b(i, 0), z(s, a() - 1) ];
39
34
  },
40
35
  $findItemIndex: e => t(e - d),
41
36
  $isUnmeasuredItem: r,
42
- $getItemOffset: O,
37
+ $getItemOffset: T,
43
38
  $getItemSize: s,
44
39
  $getItemsLength: a,
45
40
  $getScrollOffset: () => g,
@@ -47,7 +42,7 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
47
42
  $getViewportSize: () => f,
48
43
  $getStartSpacerSize: () => d,
49
44
  $getTotalSize: o,
50
- t: () => (N = S, S = 0, [ N, 2 === R ]),
45
+ t: () => (v = S, S = 0, [ v, 2 === R ]),
51
46
  $subscribe: (e, t) => {
52
47
  const i = [ e, t ];
53
48
  return k.add(i), () => {
@@ -55,22 +50,22 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
55
50
  };
56
51
  },
57
52
  $update: (i, a) => {
58
- let u, v, z = 0;
53
+ let u, z, b = 0;
59
54
  switch (i) {
60
55
  case 1:
61
56
  {
62
57
  if (a === g && 0 === R) break;
63
- const e = N;
64
- N = 0;
65
- const t = a - g, i = b(t);
66
- e && i < b(e) + 1 || 0 !== R || (P = t < 0 ? 2 : 1), h && (h = !1), g = a, z = 4;
58
+ const e = v;
59
+ v = 0;
60
+ const t = a - g, i = N(t);
61
+ e && i < N(e) + 1 || 0 !== R || (P = t < 0 ? 2 : 1), h && (h = !1), g = a, b = 4;
67
62
  const s = F();
68
- s >= -f && s <= o() && (z += 1, v = i > f);
63
+ s >= -f && s <= o() && (b += 1, z = i > f);
69
64
  break;
70
65
  }
71
66
 
72
67
  case 2:
73
- z = 8, 0 !== P && (u = !0, z += 1), P = 0, R = 0, $ = null;
68
+ b = 8, 0 !== P && (u = !0, b += 1), P = 0, R = 0, I = null;
74
69
  break;
75
70
 
76
71
  case 3:
@@ -79,8 +74,8 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
79
74
  if (!e.length) break;
80
75
  C(e.reduce((e, [t, i]) => {
81
76
  let n;
82
- if (2 === R) n = !0; else if ($ && 1 === R) n = t < $[0]; else {
83
- const e = F(), i = O(t), r = s(t);
77
+ if (2 === R) n = !0; else if (I && 1 === R) n = t < I[0]; else {
78
+ const e = F(), i = T(t), r = s(t);
84
79
  n = 1 !== P && 0 === R ? i + r <= e : i < e && i + r < e + f;
85
80
  }
86
81
  return n && (e += i - s(t)), e;
@@ -89,16 +84,16 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
89
84
  const e = s(t), r = n(t, i);
90
85
  m && (q += r ? i : i - e);
91
86
  }
92
- m && f && q > f && (C(c(t(w()))), m = !1), z = 3, v = !0;
87
+ m && f && q > f && (C(c(t(w()))), m = !1), b = 3, z = !0;
93
88
  break;
94
89
  }
95
90
 
96
91
  case 4:
97
- f !== a && (f || (x = v = !0), f = a, z = 3);
92
+ f !== a && (f || (x = z = !0), f = a, b = 3);
98
93
  break;
99
94
 
100
95
  case 5:
101
- a[1] ? (C(l(a[0], !0)), R = 2, z = 1) : (l(a[0]), z = 1);
96
+ a[1] ? (C(l(a[0], !0)), R = 2, b = 1) : (l(a[0]), b = 1);
102
97
  break;
103
98
 
104
99
  case 6:
@@ -110,27 +105,27 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
110
105
  break;
111
106
 
112
107
  case 8:
113
- $ = e(a, a + f), z = 1;
108
+ I = e(a, a + f), b = 1;
114
109
  }
115
- z && (p = 1 + (2147483647 & p), u && y && (S += y, y = 0), k.forEach(([e, t]) => {
116
- z & e && t(v);
110
+ b && (p = 1 + (2147483647 & p), u && y && (S += y, y = 0), k.forEach(([e, t]) => {
111
+ b & e && t(z);
117
112
  }));
118
113
  }
119
114
  };
120
- }, _ = (e, t, i, s = 0, n = t - 1) => {
115
+ }, C = (e, t, i, s = 0, n = t - 1) => {
121
116
  let r = s;
122
117
  for (;s <= n; ) {
123
- const t = N((s + n) / 2);
118
+ const t = P((s + n) / 2);
124
119
  e(t) <= i ? (r = t, s = t + 1) : n = t - 1;
125
120
  }
126
- return P(r, 0, t - 1);
127
- }, K = (e, t, i) => {
121
+ return R(r, 0, t - 1);
122
+ }, M = (e, t, i) => {
128
123
  const s = i ? "unshift" : "push";
129
124
  for (let i = 0; i < t; i++) e[s](-1);
130
125
  return e;
131
- }, V = (e, t, i) => {
126
+ }, _ = (e, t, i) => {
132
127
  let s = i && i[1] || t || 40, n = -1, r = 0;
133
- const o = i && i[0], a = o ? K(o.slice(0, v(e, o.length)), z(0, e - o.length)) : K([], e), l = K([], e + 1), c = e => {
128
+ const o = i && i[0], a = o ? M(o.slice(0, z(e, o.length)), b(0, e - o.length)) : M([], e), l = M([], e + 1), c = e => {
134
129
  const t = a[e];
135
130
  return -1 === t ? s : t;
136
131
  }, u = t => {
@@ -144,22 +139,22 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
144
139
  return {
145
140
  $getRange: (t, i) => {
146
141
  let s, n;
147
- return r = v(r, e - 1), u(r) <= t ? (n = _(u, e, i, r), s = _(u, e, t, r, n)) : (s = _(u, e, t, void 0, r),
148
- n = _(u, e, i, s)), r = s, [ s, n ];
142
+ return r = z(r, e - 1), u(r) <= t ? (n = C(u, e, i, r), s = C(u, e, t, r, n)) : (s = C(u, e, t, void 0, r),
143
+ n = C(u, e, i, s)), r = s, [ s, n ];
149
144
  },
150
- $findIndex: t => _(u, e, t),
145
+ $findIndex: t => C(u, e, t),
151
146
  $getItemOffset: u,
152
147
  $getItemSize: c,
153
148
  $setItemSize: (e, t) => {
154
149
  const i = -1 === a[e];
155
- return a[e] = t, n = v(e, n), i;
150
+ return a[e] = t, n = z(e, n), i;
156
151
  },
157
152
  $isSizeEqual: (e, t = -1) => a[e] === t,
158
153
  $getTotalSize: () => u(e),
159
154
  $getLength: () => e,
160
155
  $setLength: (t, i) => {
161
156
  const r = t - e;
162
- return n = i ? -1 : v(t - 1, n), e = t, r > 0 ? (K(l, r), K(a, r, i), s * r) : (l.splice(r),
157
+ return n = i ? -1 : z(t - 1, n), e = t, r > 0 ? (M(l, r), M(a, r, i), s * r) : (l.splice(r),
163
158
  (i ? a.splice(0, -r) : a.splice(r)).reduce((e, t) => e - (-1 === t ? s : t), 0));
164
159
  },
165
160
  $estimateDefaultSize: t ? void 0 : e => {
@@ -168,16 +163,16 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
168
163
  a.forEach((s, n) => {
169
164
  -1 !== s && (s && i.push(s), n < e && t++);
170
165
  }), n = -1;
171
- const r = R(i), o = r.length, l = o / 2 | 0, c = o % 2 == 0 ? (r[l - 1] + r[l]) / 2 : r[l], u = s;
172
- return ((s = c) - u) * z(e - t, 0);
166
+ const r = I(i), o = r.length, l = o / 2 | 0, c = o % 2 == 0 ? (r[l - 1] + r[l]) / 2 : r[l], u = s;
167
+ return ((s = c) - u) * b(e - t, 0);
173
168
  },
174
169
  $snapshot: () => [ a.slice(), s ]
175
170
  };
176
- }, E = e => {
171
+ }, K = e => {
177
172
  let t;
178
173
  return {
179
174
  i(i) {
180
- (t || (t = new (O(w(i)).ResizeObserver)(e))).observe(i);
175
+ (t || (t = new (w(F(i)).ResizeObserver)(e))).observe(i);
181
176
  },
182
177
  o(e) {
183
178
  t.unobserve(e);
@@ -186,81 +181,87 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
186
181
  t && t.disconnect();
187
182
  }
188
183
  };
189
- }, L = (e, t) => t ? -e : e, D = (e, t, i, s, n, r) => {
190
- let o, a = 0, l = !1, c = !1, u = !1, m = !1;
191
- const h = Date.now, p = () => {
192
- if (l || c) return l = !1, void f();
193
- u = !1, e.$update(2);
194
- }, f = () => {
195
- I(o), o = $(p, 150);
196
- }, d = () => {
197
- a = h(), u && (m = !0), r && e.$update(6, r()), e.$update(1, s()), f();
198
- }, g = t => {
199
- if (l || !e.$isScrolling() || t.ctrlKey) return;
200
- const s = h() - a;
201
- 150 > s && 50 < s && (i ? t.deltaX : t.deltaY) && (l = !0);
202
- }, S = () => {
203
- c = !0, u = m = !1;
204
- }, y = () => {
205
- c = !1, T() && (u = !0);
184
+ }, V = (e, t, i, s, n, r, o) => {
185
+ let a, l, c = 0, u = !1, m = !1, h = !1, p = !1;
186
+ const f = Date.now, d = s ? "scrollLeft" : "scrollTop", g = s ? "left" : "top", S = e => n ? -e : e, y = () => S(i[d]), v = (e, t) => {
187
+ i.scrollTo({
188
+ [g]: S(e),
189
+ behavior: t ? "smooth" : "instant"
190
+ });
191
+ }, z = () => {
192
+ if (u || m) return u = !1, void b();
193
+ h = !1, e.$update(2);
194
+ }, b = () => {
195
+ q(l), l = $(z, 150);
196
+ }, N = () => {
197
+ c = f(), h && (p = !0), o && e.$update(6, o()), e.$update(1, y()), b();
198
+ }, P = t => {
199
+ if (u || !e.$isScrolling() || t.ctrlKey) return;
200
+ const i = f() - c;
201
+ 150 > i && 50 < i && (s ? t.deltaX : t.deltaY) && (u = !0);
202
+ }, R = () => {
203
+ m = !0, h = p = !1;
204
+ }, I = () => {
205
+ m = !1, O() && (h = !0);
206
206
  };
207
- return t.addEventListener("scroll", d), t.addEventListener("wheel", g, {
207
+ return t.addEventListener("scroll", N), t.addEventListener("wheel", P, {
208
208
  passive: !0
209
- }), t.addEventListener("touchstart", S, {
209
+ }), t.addEventListener("touchstart", R, {
210
210
  passive: !0
211
- }), t.addEventListener("touchend", y, {
211
+ }), t.addEventListener("touchend", I, {
212
212
  passive: !0
213
213
  }), {
214
214
  l: () => {
215
- t.removeEventListener("scroll", d), t.removeEventListener("wheel", g), t.removeEventListener("touchstart", S),
216
- t.removeEventListener("touchend", y), I(o);
215
+ t.removeEventListener("scroll", N), t.removeEventListener("wheel", P), t.removeEventListener("touchstart", R),
216
+ t.removeEventListener("touchend", I), q(l);
217
217
  },
218
218
  u: () => {
219
- const [t, i] = e.t();
220
- t && (n(t, i, m), m = !1, i && e.$getViewportSize() > e.$getTotalSize() && e.$update(1, s()));
219
+ const [t, s] = e.t();
220
+ if (!t) return;
221
+ p && r && r(), p = !1;
222
+ const n = e.$getScrollOffset() + t;
223
+ n <= 0 || n >= e.$getStartSpacerSize() + e.$getTotalSize() - e.$getViewportSize() ? v(n) : i.scrollBy({
224
+ [g]: S(t),
225
+ behavior: "instant"
226
+ }), s && (a && a(), e.$getViewportSize() > e.$getTotalSize() && e.$update(1, y()));
227
+ },
228
+ m: (t, i) => {
229
+ let s, n, r;
230
+ a && a();
231
+ const o = a = () => {
232
+ s = !0, q(n), r && r();
233
+ }, l = () => {
234
+ if (!s) {
235
+ if (e.$getViewportSize() && (q(n), n = $(o, 150)), i) {
236
+ for (let [t, i] = e.$getRange(0); t <= i; t++) if (e.$isUnmeasuredItem(t)) return;
237
+ o();
238
+ }
239
+ e.$update(7), v(t(), i);
240
+ }
241
+ }, c = () => {
242
+ if (s) return;
243
+ let t;
244
+ r = e.$subscribe(2, () => {
245
+ t || (t = !0, x(() => {
246
+ t = !1, l();
247
+ }));
248
+ }), l();
249
+ };
250
+ i ? (e.$update(8, t()), x(c)) : c();
221
251
  }
222
252
  };
223
- }, B = (e, t, i) => {
224
- let s;
225
- return [ async (n, r) => {
226
- if (!await t()) return;
227
- let o, a, l;
228
- s && s();
229
- const c = r && C(), u = s = () => {
230
- o = !0, I(a), l && l();
231
- }, m = () => {
232
- if (!o) {
233
- if (e.$getViewportSize() && (I(a), a = $(u, 150)), c) {
234
- for (let [t, i] = e.$getRange(0); t <= i; t++) if (e.$isUnmeasuredItem(t)) return;
235
- u();
236
- }
237
- e.$update(7), i(n(), c);
238
- }
239
- }, h = () => {
240
- if (o) return;
241
- let t;
242
- l = e.$subscribe(2, () => {
243
- t || (t = !0, q(() => {
244
- t = !1, m();
245
- }));
246
- }), m();
247
- };
248
- c ? (e.$update(8, n()), q(h)) : h();
249
- }, () => {
250
- s && s();
251
- } ];
252
- }, W = (e, t) => {
253
+ }, E = (e, t) => {
253
254
  e.$scroll(() => t);
254
- }, j = (e, t, i, {align: s, smooth: n, offset: r = 0} = {}) => {
255
- if (i = P(i, 0, t.$getItemsLength() - 1), "nearest" === s) {
255
+ }, L = (e, t, i, {align: s, smooth: n, offset: r = 0} = {}) => {
256
+ if (i = R(i, 0, t.$getItemsLength() - 1), "nearest" === s) {
256
257
  const e = t.$getItemOffset(i), n = t.$getScrollOffset();
257
258
  if (e < n) s = "start"; else {
258
259
  if (!(e + t.$getItemSize(i) > n + t.$getViewportSize())) return;
259
260
  s = "end";
260
261
  }
261
262
  }
262
- e.$scroll(() => r + e.$getBaseOffset() + t.$getItemOffset(i) + ("end" === s ? t.$getItemSize(i) - (t.$getViewportSize() - e.$getScrollbarSize()) : "center" === s ? (t.$getItemSize(i) - (t.$getViewportSize() - e.$getScrollbarSize())) / 2 : 0), n);
263
- }, J = class t {
263
+ 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);
264
+ }, D = class t {
264
265
  index=p.required();
265
266
  offset=p.required();
266
267
  hide=p.required();
@@ -274,7 +275,7 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
274
275
  position: t && i ? void 0 : "absolute",
275
276
  [e ? "height" : "width"]: "100%",
276
277
  [e ? "top" : "left"]: "0px",
277
- [e ? "left" : "top"]: this.offset() + "px",
278
+ [e ? "inset-inline-start" : "top"]: this.offset() + "px",
278
279
  visibility: !t || i ? void 0 : "hidden",
279
280
  ...this.attrs()?.style
280
281
  };
@@ -372,9 +373,9 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
372
373
  },
373
374
  ngImport: e
374
375
  });
375
- }, X = (e, t) => "_" + t, Y = new r("virtua-item-template"), Q = class i {
376
+ }, B = (e, t) => "_" + t, W = new r("virtua-item-template"), j = class i {
376
377
  data=p.required();
377
- getKey=p(X);
378
+ getKey=p(B);
378
379
  itemProps=p();
379
380
  bufferSize=p();
380
381
  scrollRef=p();
@@ -390,48 +391,48 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
390
391
  scroll=f();
391
392
  scrollEnd=f();
392
393
  contentTemplate=u(o);
393
- m=h(Y, {
394
+ h=h(W, {
394
395
  optional: !0
395
396
  });
396
- template=c(() => this.m?.() ?? this.contentTemplate());
397
- h;
397
+ template=c(() => this.h?.() ?? this.contentTemplate());
398
398
  p;
399
+ S;
399
400
  driver;
400
- S=h(n).nativeElement;
401
- v=h(t);
402
- N=d(void 0);
401
+ v=h(n).nativeElement;
402
+ N=h(t);
403
+ P=d(void 0);
403
404
  isSSR=d(!1);
404
- P=c(() => {
405
- this.N();
406
- const e = this.data().length, [t, i] = this.h.$getRange(this.bufferSize()), s = this.keepMounted(), n = [];
405
+ R=c(() => {
406
+ this.P();
407
+ const e = this.data().length, [t, i] = this.p.$getRange(this.bufferSize()), s = this.keepMounted(), n = [];
407
408
  if (s) {
408
409
  const r = new Set(s);
409
410
  for (let e = t; e <= i; e++) r.add(e);
410
- for (const t of R([ ...r ])) t < e && n.push(t);
411
+ for (const t of I([ ...r ])) t < e && n.push(t);
411
412
  } else for (let s = t; s <= i; s++) s < e && n.push(s);
412
413
  return n;
413
414
  });
414
415
  items=c(() => {
415
- this.N();
416
- const e = this.h, t = this.data(), i = this.getKey(), s = this.itemProps(), n = this.driver.$isNegative();
417
- return this.P().map(r => {
418
- const o = t[r];
416
+ this.P();
417
+ const e = this.p, t = this.data(), i = this.getKey(), s = this.itemProps();
418
+ return this.R().map(n => {
419
+ const r = t[n];
419
420
  return {
420
- key: i(o, r),
421
- index: r,
422
- data: o,
423
- offset: e.$getItemOffset(r, n),
424
- hide: e.$isUnmeasuredItem(r),
421
+ key: i(r, n),
422
+ index: n,
423
+ data: r,
424
+ offset: e.$getItemOffset(n),
425
+ hide: e.$isUnmeasuredItem(n),
425
426
  attrs: s?.({
426
- item: o,
427
- index: r
427
+ item: r,
428
+ index: n
428
429
  })
429
430
  };
430
431
  });
431
432
  });
432
433
  containerStyle=c(() => {
433
- this.N();
434
- const e = this.horizontal(), t = this.h.$getTotalSize();
434
+ this.P();
435
+ const e = this.horizontal(), t = this.p.$getTotalSize();
435
436
  return {
436
437
  display: "block",
437
438
  contain: "size style",
@@ -440,113 +441,105 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
440
441
  position: "relative",
441
442
  width: e ? t + "px" : "100%",
442
443
  height: e ? "100%" : t + "px",
443
- "pointer-events": this.h.$isScrolling() ? "none" : void 0
444
+ "pointer-events": this.p.$isScrolling() ? "none" : void 0
444
445
  };
445
446
  });
446
447
  constructor() {
447
448
  m(() => {
448
449
  const e = this.data().length;
449
- this.h && e !== this.h.$getItemsLength() && this.h.$update(5, [ e, g(this.shift) ]);
450
+ this.p && e !== this.p.$getItemsLength() && this.p.$update(5, [ e, g(this.shift) ]);
450
451
  }), m(() => {
451
452
  const e = this.startMargin();
452
- this.h && e !== this.h.$getStartSpacerSize() && this.h.$update(6, e);
453
+ this.p && e !== this.p.$getStartSpacerSize() && this.p.$update(6, e);
453
454
  }), a({
454
455
  read: () => {
455
- this.isSSR.set(!1), this.driver.$observe(this.S, this.scrollRef());
456
+ this.isSSR.set(!1), this.driver.$observe(this.v, this.scrollRef());
456
457
  }
457
458
  }), l({
458
459
  read: () => {
459
- this.N(), this.driver.$effect();
460
+ this.P(), this.driver.$effect();
460
461
  }
461
462
  }), h(s).onDestroy(() => {
462
- this.h?.$dispose(), this.driver?.$dispose();
463
+ this.p?.$dispose(), this.driver?.$dispose();
463
464
  });
464
465
  }
465
466
  ngOnInit() {
466
467
  const e = this.itemSize(), t = this.ssrCount();
467
468
  this.isSSR.set(!!t);
468
- const i = this.p = V(this.data().length, e, this.cacheProp()), s = this.h = M(i, t);
469
+ const i = this.S = _(this.data().length, e, this.cacheProp()), s = this.p = T(i, t);
469
470
  this.driver = ((e, t) => {
470
- let i, s, n = x(), r = !1;
471
- const o = t ? "scrollLeft" : "scrollTop", a = t ? "overflowX" : "overflowY", [l, c] = B(e, () => n[0], (e, s) => {
472
- e = L(e, r), s ? i.scrollTo({
473
- [t ? "left" : "top"]: e,
474
- behavior: "smooth"
475
- }) : i[o] = e;
476
- }), u = t ? "width" : "height", m = /* @__PURE__ */ new WeakMap, h = E(t => {
471
+ let i, s, n = k();
472
+ const r = t ? "width" : "height", o = /* @__PURE__ */ new WeakMap, a = K(t => {
477
473
  const s = [];
478
- for (const {target: n, contentRect: r} of t) if (n.offsetParent) if (n === i) e.$update(4, r[u]); else {
479
- const e = m.get(n);
480
- null != e && s.push([ e, r[u] ]);
474
+ for (const {target: n, contentRect: a} of t) if (n.offsetParent) if (n === i) e.$update(4, a[r]); else {
475
+ const e = o.get(n);
476
+ null != e && s.push([ e, a[r] ]);
481
477
  }
482
478
  s.length && e.$update(3, s);
483
479
  });
484
480
  return {
485
- $observe(l, u = l.parentElement) {
486
- h.i(i = u), t && (r = "rtl" === getComputedStyle(u).direction), s = D(e, u, t, () => L(u[o], r), (t, i, s) => {
487
- if (s) {
488
- const e = u.style, t = e[a];
489
- e[a] = "hidden", $(() => {
490
- e[a] = t;
491
- });
492
- }
493
- u[o] = L(e.$getScrollOffset() + t, r), i && c();
481
+ $observe(r, o = r.parentElement) {
482
+ a.i(i = o), s = V(e, o, o, t, t && "rtl" === getComputedStyle(o).direction, () => {
483
+ const e = t ? "overflowX" : "overflowY", i = o.style, s = i[e];
484
+ i[e] = "hidden", $(() => {
485
+ i[e] = s;
486
+ });
494
487
  }), n[1](!0);
495
488
  },
496
489
  $dispose() {
497
- h.l(), s && s.l(), n[1](!1), n = x();
490
+ a.l(), s && s.l(), n[1](!1), n = k();
498
491
  },
499
- $observeItem: (e, t) => (m.set(e, t), h.i(e), () => {
500
- m.delete(e), h.o(e);
492
+ $observeItem: (e, t) => (o.set(e, t), a.i(e), () => {
493
+ o.delete(e), a.o(e);
501
494
  }),
502
- $isNegative: () => r,
503
- $scroll: l,
495
+ async $scroll(e, t) {
496
+ await n[0] && s.m(e, t);
497
+ },
504
498
  $effect() {
505
499
  s && s.u();
506
500
  },
507
- $getBaseOffset: e.$getStartSpacerSize,
508
- $getScrollbarSize: () => 0
501
+ $getBaseOffset: e.$getStartSpacerSize
509
502
  };
510
503
  })(s, this.horizontal()), s.$subscribe(1, e => {
511
- this.N.set(s.$getStateVersion()), e && this.v.tick();
504
+ this.P.set(s.$getStateVersion()), e && this.N.tick();
512
505
  }), s.$subscribe(4, () => {
513
506
  this.scroll.emit(s.$getScrollOffset());
514
507
  }), s.$subscribe(8, () => {
515
508
  this.scrollEnd.emit();
516
- }), this.N.set(s.$getStateVersion());
509
+ }), this.P.set(s.$getStateVersion());
517
510
  }
518
511
  get cache() {
519
- return this.p.$snapshot();
512
+ return this.S.$snapshot();
520
513
  }
521
514
  get scrollOffset() {
522
- return this.h.$getScrollOffset();
515
+ return this.p.$getScrollOffset();
523
516
  }
524
517
  get scrollSize() {
525
- return e = this.h, z(e.$getTotalSize(), e.$getViewportSize());
518
+ return e = this.p, b(e.$getTotalSize(), e.$getViewportSize());
526
519
  var e;
527
520
  }
528
521
  get viewportSize() {
529
- return this.h.$getViewportSize();
522
+ return this.p.$getViewportSize();
530
523
  }
531
524
  findItemIndex(e) {
532
- return this.h.$findItemIndex(e);
525
+ return this.p.$findItemIndex(e);
533
526
  }
534
527
  getItemOffset(e) {
535
- return this.h.$getItemOffset(e);
528
+ return this.p.$getItemOffset(e);
536
529
  }
537
530
  getItemSize(e) {
538
- return this.h.$getItemSize(e);
531
+ return this.p.$getItemSize(e);
539
532
  }
540
533
  scrollToIndex(e, t) {
541
- j(this.driver, this.h, e, t);
534
+ L(this.driver, this.p, e, t);
542
535
  }
543
536
  scrollTo(e) {
544
- W(this.driver, e);
537
+ E(this.driver, e);
545
538
  }
546
539
  scrollBy(e) {
547
540
  ((e, t, i) => {
548
- W(e, i + t.$getScrollOffset());
549
- })(this.driver, this.h, e);
541
+ E(e, i + t.$getScrollOffset());
542
+ })(this.driver, this.p, e);
550
543
  }
551
544
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
552
545
  minVersion: "12.0.0",
@@ -670,7 +663,7 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
670
663
  isInline: !0,
671
664
  dependencies: [ {
672
665
  kind: "directive",
673
- type: e.forwardRef(() => J),
666
+ type: e.forwardRef(() => D),
674
667
  selector: "div[virtuaListItem]",
675
668
  inputs: [ "index", "offset", "hide", "horizontal", "isSSR", "resizer", "attrs" ]
676
669
  }, {
@@ -685,9 +678,9 @@ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), R
685
678
 
686
679
  i.OnPush;
687
680
 
688
- var U = class t {
681
+ var J = class t {
689
682
  data=p.required();
690
- getKey=p(X);
683
+ getKey=p(B);
691
684
  itemProps=p();
692
685
  bufferSize=p();
693
686
  itemSize=p();
@@ -701,10 +694,10 @@ var U = class t {
701
694
  scroll=f();
702
695
  scrollEnd=f();
703
696
  template=u.required(o);
704
- virtualizer=S.required(Q);
705
- S=h(n).nativeElement;
697
+ virtualizer=S.required(j);
698
+ v=h(n).nativeElement;
706
699
  ngOnInit() {
707
- const e = this.horizontal(), t = this.S;
700
+ const e = this.horizontal(), t = this.v;
708
701
  t.setAttribute("style", `display:${e ? "inline-block" : "block"};${e ? "overflow-x" : "overflow-y"}:auto;contain:strict;width:100%;height:100%;` + (t.getAttribute("style") || ""));
709
702
  }
710
703
  get cache() {
@@ -838,7 +831,7 @@ var U = class t {
838
831
  viewQueries: [ {
839
832
  propertyName: "virtualizer",
840
833
  first: !0,
841
- predicate: Q,
834
+ predicate: j,
842
835
  emitDistinctChangesOnly: !1,
843
836
  descendants: !0,
844
837
  isSignal: !0
@@ -848,13 +841,13 @@ var U = class t {
848
841
  isInline: !0,
849
842
  dependencies: [ {
850
843
  kind: "directive",
851
- type: e.forwardRef(() => Q),
844
+ type: e.forwardRef(() => j),
852
845
  selector: "virtua-virtualizer",
853
846
  inputs: [ "data", "getKey", "itemProps", "bufferSize", "scrollRef", "itemSize", "ssrCount", "shift", "horizontal", "keepMounted", "cache", "startMargin" ],
854
847
  outputs: [ "scroll", "scrollEnd" ]
855
848
  } ],
856
849
  viewProviders: [ {
857
- provide: Y,
850
+ provide: W,
858
851
  useFactory: () => h(t).template
859
852
  } ],
860
853
  changeDetection: e.ChangeDetectionStrategy.OnPush
@@ -863,9 +856,9 @@ var U = class t {
863
856
 
864
857
  i.OnPush;
865
858
 
866
- var A = class i {
859
+ var Q = class i {
867
860
  data=p.required();
868
- getKey=p(X);
861
+ getKey=p(B);
869
862
  bufferSize=p();
870
863
  itemSize=p();
871
864
  ssrCount=p();
@@ -877,31 +870,31 @@ var A = class i {
877
870
  scroll=f();
878
871
  scrollEnd=f();
879
872
  template=u.required(o);
880
- h;
881
873
  p;
874
+ S;
882
875
  driver;
883
- S=h(n).nativeElement;
884
- v=h(t);
885
- N=d(void 0);
876
+ v=h(n).nativeElement;
877
+ N=h(t);
878
+ P=d(void 0);
886
879
  isSSR=d(!1);
887
880
  items=c(() => {
888
- this.N();
889
- const e = this.h, t = this.data(), i = this.getKey(), s = this.driver.$isNegative(), [n, r] = e.$getRange(this.bufferSize()), o = [];
890
- for (let a = n; a <= r && a < t.length; a++) {
891
- const n = t[a];
892
- o.push({
893
- key: i(n, a),
894
- index: a,
895
- data: n,
896
- offset: e.$getItemOffset(a, s),
897
- hide: e.$isUnmeasuredItem(a)
881
+ this.P();
882
+ const e = this.p, t = this.data(), i = this.getKey(), [s, n] = e.$getRange(this.bufferSize()), r = [];
883
+ for (let o = s; o <= n && o < t.length; o++) {
884
+ const s = t[o];
885
+ r.push({
886
+ key: i(s, o),
887
+ index: o,
888
+ data: s,
889
+ offset: e.$getItemOffset(o),
890
+ hide: e.$isUnmeasuredItem(o)
898
891
  });
899
892
  }
900
- return o;
893
+ return r;
901
894
  });
902
895
  containerStyle=c(() => {
903
- this.N();
904
- const e = this.horizontal(), t = this.h.$getTotalSize();
896
+ this.P();
897
+ const e = this.horizontal(), t = this.p.$getTotalSize();
905
898
  return {
906
899
  display: "block",
907
900
  contain: "size style",
@@ -910,116 +903,98 @@ var A = class i {
910
903
  position: "relative",
911
904
  width: e ? t + "px" : "100%",
912
905
  height: e ? "100%" : t + "px",
913
- "pointer-events": this.h.$isScrolling() ? "none" : void 0
906
+ "pointer-events": this.p.$isScrolling() ? "none" : void 0
914
907
  };
915
908
  });
916
909
  constructor() {
917
910
  m(() => {
918
911
  const e = this.data().length;
919
- this.h && e !== this.h.$getItemsLength() && this.h.$update(5, [ e, g(this.shift) ]);
912
+ this.p && e !== this.p.$getItemsLength() && this.p.$update(5, [ e, g(this.shift) ]);
920
913
  }), a({
921
914
  read: () => {
922
- this.isSSR.set(!1), this.driver.$observe(this.S);
915
+ this.isSSR.set(!1), this.driver.$observe(this.v);
923
916
  }
924
917
  }), l({
925
918
  read: () => {
926
- this.N(), this.driver.$effect();
919
+ this.P(), this.driver.$effect();
927
920
  }
928
921
  }), h(s).onDestroy(() => {
929
- this.h?.$dispose(), this.driver?.$dispose();
922
+ this.p?.$dispose(), this.driver?.$dispose();
930
923
  });
931
924
  }
932
925
  ngOnInit() {
933
926
  const e = this.itemSize(), t = this.ssrCount();
934
927
  this.isSSR.set(!!t);
935
- const i = this.p = V(this.data().length, e, this.cacheProp()), s = this.h = M(i, t);
928
+ const i = this.S = _(this.data().length, e, this.cacheProp()), s = this.p = T(i, t);
936
929
  this.driver = ((e, t) => {
937
- let i, s, n, r = x(), o = !1;
938
- const a = t ? "left" : "top", [l] = B(e, () => r[0], (e, t) => {
939
- e = L(e, o);
940
- const s = O(w(i));
941
- t ? s.scroll({
942
- [a]: e,
943
- behavior: "smooth"
944
- }) : s.scroll({
945
- [a]: e
946
- });
947
- }), c = t ? "width" : "height", u = /* @__PURE__ */ new WeakMap, m = E(t => {
948
- const i = [];
949
- for (const {target: e, contentRect: s} of t) {
930
+ let i, s, n, r, o, a = k();
931
+ const l = t ? "width" : "height", c = /* @__PURE__ */ new WeakMap, u = K(t => {
932
+ const s = [];
933
+ for (const {target: e, contentRect: n} of t) {
934
+ if (e === i) {
935
+ o && o();
936
+ continue;
937
+ }
950
938
  if (!e.offsetParent) continue;
951
- const t = u.get(e);
952
- null != t && i.push([ t, s[c] ]);
939
+ const t = c.get(e);
940
+ null != t && s.push([ t, n[l] ]);
953
941
  }
954
- i.length && e.$update(3, i);
955
- }), h = (e, t, i, s, n = 0) => {
956
- const r = s ? "offsetLeft" : "offsetTop", a = n + (s && o ? i.innerWidth - e[r] - e.offsetWidth : e[r]), l = e.offsetParent;
957
- return e !== t && l ? h(l, t, i, s, a) : a;
958
- };
942
+ s.length && e.$update(3, s);
943
+ });
959
944
  return {
960
945
  $observe(l) {
961
- i = l;
962
- const c = t ? "scrollX" : "scrollY", u = w(l), m = O(u), p = () => {
963
- e.$update(4, m[t ? "innerWidth" : "innerHeight"]);
946
+ const c = F(l), m = w(c), h = i = c.scrollingElement, p = t && "rtl" === getComputedStyle(h).direction, f = (e, t, i, s, n = 0) => {
947
+ const r = s ? "offsetLeft" : "offsetTop", o = n + (p ? t.clientWidth - e[r] - e.offsetWidth : e[r]), a = e.offsetParent;
948
+ return e !== i && a ? f(a, t, i, s, o) : o;
949
+ }, d = r = () => f(l, h, c.body, t), g = o = () => {
950
+ e.$update(4, h[t ? "clientWidth" : "clientHeight"]);
964
951
  };
965
- m.addEventListener("resize", p), q(p), n = () => {
966
- m.removeEventListener("resize", p);
967
- }, t && (o = "rtl" === getComputedStyle(F(u)).direction), s = D(e, m, t, () => L(m[c], o), (t, i) => {
968
- i ? m.scroll({
969
- [a]: L(e.$getScrollOffset() + t, o)
970
- }) : m.scrollBy({
971
- [a]: L(t, o)
972
- });
973
- }, () => h(l, u.body, m, t)), r[1](!0);
952
+ m.addEventListener("resize", g), u.i(h), n = () => {
953
+ m.removeEventListener("resize", g);
954
+ }, s = V(e, m, h, t, p, null, d), a[1](!0);
974
955
  },
975
956
  $dispose() {
976
- n && n(), m.l(), s && s.l(), i = void 0, r[1](!1), r = x();
957
+ n && n(), u.l(), s && s.l(), i = void 0, a[1](!1), a = k();
977
958
  },
978
- $observeItem: (e, t) => (u.set(e, t), m.i(e), () => {
979
- u.delete(e), m.o(e);
959
+ $observeItem: (e, t) => (c.set(e, t), u.i(e), () => {
960
+ c.delete(e), u.o(e);
980
961
  }),
981
- $isNegative: () => o,
982
- $scroll: l,
962
+ async $scroll(e, t) {
963
+ await a[0] && s.m(e, t);
964
+ },
983
965
  $effect() {
984
966
  s && s.u();
985
967
  },
986
- $getBaseOffset() {
987
- const e = w(i);
988
- return h(i, e.body, O(e), t);
989
- },
990
- $getScrollbarSize() {
991
- const s = F(w(i));
992
- return e.$getViewportSize() - (t ? s.clientWidth : s.clientHeight);
993
- }
968
+ $getBaseOffset: () => r()
994
969
  };
995
970
  })(s, this.horizontal()), s.$subscribe(1, e => {
996
- this.N.set(s.$getStateVersion()), e && this.v.tick();
971
+ this.P.set(s.$getStateVersion()), e && this.N.tick();
997
972
  }), s.$subscribe(4, () => {
998
973
  this.scroll.emit();
999
974
  }), s.$subscribe(8, () => {
1000
975
  this.scrollEnd.emit();
1001
- }), this.N.set(s.$getStateVersion());
976
+ }), this.P.set(s.$getStateVersion());
1002
977
  }
1003
978
  get cache() {
1004
- return this.p.$snapshot();
979
+ return this.S.$snapshot();
1005
980
  }
1006
981
  get scrollOffset() {
1007
- return this.h.$getScrollOffset();
982
+ return this.p.$getScrollOffset();
1008
983
  }
1009
984
  get viewportSize() {
1010
- return this.h.$getViewportSize();
985
+ return this.p.$getViewportSize();
1011
986
  }
1012
987
  findItemIndex(e) {
1013
- return this.h.$findItemIndex(e);
988
+ return this.p.$findItemIndex(e);
1014
989
  }
1015
990
  getItemOffset(e) {
1016
- return this.h.$getItemOffset(e);
991
+ return this.p.$getItemOffset(e);
1017
992
  }
1018
993
  getItemSize(e) {
1019
- return this.h.$getItemSize(e);
994
+ return this.p.$getItemSize(e);
1020
995
  }
1021
996
  scrollToIndex(e, t) {
1022
- j(this.driver, this.h, e, t);
997
+ L(this.driver, this.p, e, t);
1023
998
  }
1024
999
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
1025
1000
  minVersion: "12.0.0",
@@ -1115,7 +1090,7 @@ var A = class i {
1115
1090
  isInline: !0,
1116
1091
  dependencies: [ {
1117
1092
  kind: "directive",
1118
- type: e.forwardRef(() => J),
1093
+ type: e.forwardRef(() => D),
1119
1094
  selector: "div[virtuaListItem]",
1120
1095
  inputs: [ "index", "offset", "hide", "horizontal", "isSSR", "resizer", "attrs" ]
1121
1096
  }, {
@@ -1130,5 +1105,5 @@ var A = class i {
1130
1105
 
1131
1106
  i.OnPush;
1132
1107
 
1133
- export { U as VList, Q as Virtualizer, A as WindowVirtualizer };
1108
+ export { J as VList, j as Virtualizer, Q as WindowVirtualizer };
1134
1109
  //# sourceMappingURL=index.js.map