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