virtua 0.50.2 → 0.50.3

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.
@@ -1,69 +1,69 @@
1
1
  import * as e from "@angular/core";
2
2
 
3
- import { ApplicationRef as t, ChangeDetectionStrategy as i, DestroyRef as s, ElementRef as n, TemplateRef as r, afterNextRender as o, afterRenderEffect as l, computed as a, contentChild as c, effect as u, inject as m, input as h, output as p, signal as f, untracked as d, viewChild as g } from "@angular/core";
3
+ import { ApplicationRef as t, ChangeDetectionStrategy as i, DestroyRef as s, ElementRef as r, InjectionToken as n, TemplateRef as o, afterNextRender as l, afterRenderEffect as a, computed as c, contentChild as u, effect as m, inject as p, input as h, output as f, signal as d, untracked as g, viewChild as S } from "@angular/core";
4
4
 
5
5
  import { NgTemplateOutlet as y } from "@angular/common";
6
6
 
7
- var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I = e => [ ...e ].sort((e, t) => e - t), P = "function" == typeof queueMicrotask ? queueMicrotask : e => {
7
+ var {min: v, max: z, abs: b, floor: N} = Math, P = (e, t, i) => v(i, z(t, e)), I = e => [ ...e ].sort((e, t) => e - t), x = setTimeout, R = "function" == typeof queueMicrotask ? queueMicrotask : e => {
8
8
  Promise.resolve().then(e);
9
- }, R = () => {
9
+ }, k = () => {
10
10
  let e;
11
11
  return [ new Promise(t => {
12
12
  e = t;
13
13
  }), e ];
14
- }, x = e => {
14
+ }, q = e => {
15
15
  let t;
16
16
  return () => (e && (t = e(), e = void 0), t);
17
- }, k = (e, t, i) => {
17
+ }, $ = (e, t, i) => {
18
18
  const s = i ? "unshift" : "push";
19
19
  for (let i = 0; i < t; i++) e[s](-1);
20
20
  return e;
21
- }, q = (e, t) => {
21
+ }, F = (e, t) => {
22
22
  const i = e.t[t];
23
23
  return -1 === i ? e.i : i;
24
- }, $ = (e, t, i) => {
24
+ }, w = (e, t, i) => {
25
25
  const s = -1 === e.t[t];
26
- return e.t[t] = i, e.o = S(t, e.o), s;
27
- }, F = (e, t) => {
26
+ return e.t[t] = i, e.o = v(t, e.o), s;
27
+ }, O = (e, t) => {
28
28
  if (!e.l) return 0;
29
29
  if (e.o >= t) return e.u[t];
30
30
  e.o < 0 && (e.u[0] = 0, e.o = 0);
31
31
  let i = e.o, s = e.u[i];
32
- for (;i < t; ) s += q(e, i), e.u[++i] = s;
32
+ for (;i < t; ) s += F(e, i), e.u[++i] = s;
33
33
  return e.o = t, s;
34
34
  }, T = (e, t, i = 0, s = e.l - 1) => {
35
- let n = i;
35
+ let r = i;
36
36
  for (;i <= s; ) {
37
- const r = b((i + s) / 2);
38
- F(e, r) <= t ? (n = r, i = r + 1) : s = r - 1;
37
+ const n = N((i + s) / 2);
38
+ O(e, n) <= t ? (r = n, i = n + 1) : s = n - 1;
39
39
  }
40
- return N(n, 0, e.l - 1);
41
- }, w = (e, t, i) => {
40
+ return P(r, 0, e.l - 1);
41
+ }, _ = (e, t, i) => {
42
42
  const s = t - e.l;
43
- return e.o = i ? -1 : S(t - 1, e.o), e.l = t, s > 0 ? (k(e.u, s), k(e.t, s, i),
43
+ return e.o = i ? -1 : v(t - 1, e.o), e.l = t, s > 0 ? ($(e.u, s), $(e.t, s, i),
44
44
  e.i * s) : (e.u.splice(s), (i ? e.t.splice(0, -s) : e.t.splice(s)).reduce((t, i) => t - (-1 === i ? e.i : i), 0));
45
- }, O = e => e.documentElement, C = e => e.ownerDocument, _ = e => e.defaultView, M = /*#__PURE__*/ x(() => !!/iP(hone|od|ad)/.test(navigator.userAgent) || "MacIntel" === navigator.platform && navigator.maxTouchPoints > 0), V = /*#__PURE__*/ x(() => "scrollBehavior" in O(document).style), K = (e, t = 40, i = 0, s, n = !1) => {
46
- let r = !!i, o = 1, l = 0, a = 0, c = 0, u = 0, m = 0, h = 0, p = 0, f = 0, d = null, g = [ 0, r ? z(i - 1, 0) : -1 ], y = 0, b = !1;
45
+ }, C = e => e.documentElement, M = e => e.ownerDocument, K = e => e.defaultView, V = /*#__PURE__*/ q(() => !!/iP(hone|od|ad)/.test(navigator.userAgent) || "MacIntel" === navigator.platform && navigator.maxTouchPoints > 0), E = /*#__PURE__*/ q(() => "scrollBehavior" in C(document).style), D = (e, t = 40, i = 0, s, r = !1) => {
46
+ let n = !!i, o = 1, l = 0, a = 0, c = 0, u = 0, m = 0, p = 0, h = 0, f = 0, d = null, g = [ 0, n ? z(i - 1, 0) : -1 ], S = 0, y = !1;
47
47
  const N = ((e, t, i) => ({
48
48
  i: t,
49
- t: i ? k(i.slice(0, S(e, i.length)), z(0, e - i.length)) : k([], e),
49
+ t: i ? $(i.slice(0, v(e, i.length)), z(0, e - i.length)) : $([], e),
50
50
  l: e,
51
51
  o: -1,
52
- u: k([], e + 1)
53
- }))(e, s ? s[1] : t, s && s[0]), P = /* @__PURE__ */ new Set, R = () => c - a, x = () => R() + m + u, O = (e, t) => ((e, t, i, s) => {
54
- if (s = S(s, e.l - 1), F(e, s) <= t) {
55
- const n = T(e, i, s);
56
- return [ T(e, t, s, n), n ];
52
+ u: $([], e + 1)
53
+ }))(e, s && s[1] || t, s && s[0]), P = /* @__PURE__ */ new Set, x = () => c - a, R = () => x() + m + u, k = (e, t) => ((e, t, i, s) => {
54
+ if (s = v(s, e.l - 1), O(e, s) <= t) {
55
+ const r = T(e, i, s);
56
+ return [ T(e, t, s, r), r ];
57
57
  }
58
58
  {
59
- const n = T(e, t, void 0, s);
60
- return [ n, T(e, i, n) ];
59
+ const r = T(e, t, void 0, s);
60
+ return [ r, T(e, i, r) ];
61
61
  }
62
- })(N, e, t, g[0]), C = () => F(N, N.l), _ = (e, t) => {
63
- const i = F(N, e) - m;
64
- return t ? C() - i - V(e) : i;
65
- }, V = e => q(N, e), K = (e, t = -1) => N.t[e] === t, E = e => {
66
- e && (M() && 0 !== p || d && 1 === f ? m += e : u += e);
62
+ })(N, e, t, g[0]), q = () => O(N, N.l), C = (e, t) => {
63
+ const i = O(N, e) - m;
64
+ return t ? q() - i - M(e) : i;
65
+ }, M = e => F(N, e), K = (e, t = -1) => N.t[e] === t, E = e => {
66
+ e && (V() && 0 !== h || d && 1 === f ? m += e : u += e);
67
67
  };
68
68
  return {
69
69
  $dispose: () => {
@@ -72,26 +72,26 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
72
72
  $getStateVersion: () => o,
73
73
  $getCacheSnapshot: () => (e => [ e.t.slice(), e.i ])(N),
74
74
  $getRange: (e = 200) => {
75
- if (!b || r) return g;
75
+ if (!y || n) return g;
76
76
  let t, i;
77
- if (h) [t, i] = g; else {
78
- let s = z(0, x()), r = s + l;
79
- n || (e = z(0, e), 1 !== p && (s -= e), 2 !== p && (r += e)), [t, i] = g = O(z(0, s), z(0, r)),
80
- d && (t = S(t, d[0]), i = z(i, d[1]));
77
+ if (p) [t, i] = g; else {
78
+ let s = z(0, R()), n = s + l;
79
+ r || (e = z(0, e), 1 !== h && (s -= e), 2 !== h && (n += e)), [t, i] = g = k(z(0, s), z(0, n)),
80
+ d && (t = v(t, d[0]), i = z(i, d[1]));
81
81
  }
82
- return [ z(t, 0), S(i, N.l - 1) ];
82
+ return [ z(t, 0), v(i, N.l - 1) ];
83
83
  },
84
84
  $findItemIndex: e => T(N, e - a),
85
85
  $isUnmeasuredItem: K,
86
- $getItemOffset: _,
87
- $getItemSize: V,
86
+ $getItemOffset: C,
87
+ $getItemSize: M,
88
88
  $getItemsLength: () => N.l,
89
89
  $getScrollOffset: () => c,
90
- $isScrolling: () => 0 !== p,
90
+ $isScrolling: () => 0 !== h,
91
91
  $getViewportSize: () => l,
92
92
  $getStartSpacerSize: () => a,
93
- $getTotalSize: C,
94
- m: () => (h = u, u = 0, [ h, 2 === f ]),
93
+ $getTotalSize: q,
94
+ m: () => (p = u, u = 0, [ p, 2 === f ]),
95
95
  $subscribe: (e, t) => {
96
96
  const i = [ e, t ];
97
97
  return P.add(i), () => {
@@ -104,17 +104,17 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
104
104
  case 1:
105
105
  {
106
106
  if (t === c && 0 === f) break;
107
- const e = h;
108
- h = 0;
109
- const i = t - c, n = v(i);
110
- e && n < v(e) + 1 || 0 !== f || (p = i < 0 ? 2 : 1), r && (r = !1), c = t, g = 4;
111
- const o = R();
112
- o >= -l && o <= C() && (g += 1, s = n > l);
107
+ const e = p;
108
+ p = 0;
109
+ const i = t - c, r = b(i);
110
+ e && r < b(e) + 1 || 0 !== f || (h = i < 0 ? 2 : 1), n && (n = !1), c = t, g = 4;
111
+ const o = x();
112
+ o >= -l && o <= q() && (g += 1, s = r > l);
113
113
  break;
114
114
  }
115
115
 
116
116
  case 2:
117
- g = 8, 0 !== p && (i = !0, g += 1), p = 0, f = 0, d = null;
117
+ g = 8, 0 !== h && (i = !0, g += 1), h = 0, f = 0, d = null;
118
118
  break;
119
119
 
120
120
  case 3:
@@ -124,33 +124,33 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
124
124
  E(e.reduce((e, [t, i]) => {
125
125
  let s;
126
126
  if (2 === f) s = !0; else if (d && 1 === f) s = t < d[0]; else {
127
- const e = R(), i = _(t), n = V(t);
128
- s = 1 !== p && 0 === f ? i + n <= e : i < e && i + n < e + l;
127
+ const e = x(), i = C(t), r = M(t);
128
+ s = 1 !== h && 0 === f ? i + r <= e : i < e && i + r < e + l;
129
129
  }
130
- return s && (e += i - V(t)), e;
130
+ return s && (e += i - M(t)), e;
131
131
  }, 0));
132
132
  for (const [t, i] of e) {
133
- const e = V(t), s = $(N, t, i);
134
- n && (y += s ? i : i - e);
133
+ const e = M(t), s = w(N, t, i);
134
+ r && (S += s ? i : i - e);
135
135
  }
136
- n && l && y > l && (E(((e, t) => {
136
+ r && l && S > l && (E(((e, t) => {
137
137
  let i = 0;
138
138
  const s = [];
139
- e.t.forEach((e, n) => {
140
- -1 !== e && (s.push(e), n < t && i++);
139
+ e.t.forEach((e, r) => {
140
+ -1 !== e && (s.push(e), r < t && i++);
141
141
  }), e.o = -1;
142
- const n = I(s), r = n.length, o = r / 2 | 0, l = r % 2 == 0 ? (n[o - 1] + n[o]) / 2 : n[o], a = e.i;
142
+ const r = I(s), n = r.length, o = n / 2 | 0, l = n % 2 == 0 ? (r[o - 1] + r[o]) / 2 : r[o], a = e.i;
143
143
  return ((e.i = l) - a) * z(t - i, 0);
144
- })(N, T(N, x()))), n = !1), g = 3, s = !0;
144
+ })(N, T(N, R()))), r = !1), g = 3, s = !0;
145
145
  break;
146
146
  }
147
147
 
148
148
  case 4:
149
- l !== t && (l || (b = s = !0), l = t, g = 3);
149
+ l !== t && (l || (y = s = !0), l = t, g = 3);
150
150
  break;
151
151
 
152
152
  case 5:
153
- t[1] ? (E(w(N, t[0], !0)), f = 2, g = 1) : (w(N, t[0]), g = 1);
153
+ t[1] ? (E(_(N, t[0], !0)), f = 2, g = 1) : (_(N, t[0]), g = 1);
154
154
  break;
155
155
 
156
156
  case 6:
@@ -162,31 +162,44 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
162
162
  break;
163
163
 
164
164
  case 8:
165
- d = O(t, t + l), g = 1;
165
+ d = k(t, t + l), g = 1;
166
166
  }
167
167
  g && (o = 1 + (2147483647 & o), i && m && (u += m, m = 0), P.forEach(([e, t]) => {
168
168
  g & e && t(s);
169
169
  }));
170
170
  }
171
171
  };
172
- }, E = setTimeout, D = (e, t) => t ? -e : e, L = (e, t, i, s, n, r) => {
172
+ }, L = e => {
173
+ let t;
174
+ return {
175
+ p(i) {
176
+ (t || (t = new (K(M(i)).ResizeObserver)(e))).observe(i);
177
+ },
178
+ h(e) {
179
+ t.unobserve(e);
180
+ },
181
+ S() {
182
+ t && t.disconnect();
183
+ }
184
+ };
185
+ }, B = (e, t) => t ? -e : e, J = (e, t, i, s, r, n) => {
173
186
  const o = Date.now;
174
187
  let l = 0, a = !1, c = !1, u = !1, m = !1;
175
- const h = (() => {
188
+ const p = (() => {
176
189
  let t;
177
190
  const i = () => {
178
191
  null != t && clearTimeout(t);
179
192
  }, s = () => {
180
- i(), t = E(() => {
193
+ i(), t = x(() => {
181
194
  t = null, (() => {
182
- if (a || c) return a = !1, void h();
195
+ if (a || c) return a = !1, void p();
183
196
  u = !1, e.$update(2);
184
197
  })();
185
198
  }, 150);
186
199
  };
187
- return s.h = i, s;
188
- })(), p = () => {
189
- l = o(), u && (m = !0), r && e.$update(6, r()), e.$update(1, s()), h();
200
+ return s.v = i, s;
201
+ })(), h = () => {
202
+ l = o(), u && (m = !0), n && e.$update(6, n()), e.$update(1, s()), p();
190
203
  }, f = t => {
191
204
  if (a || !e.$isScrolling() || t.ctrlKey) return;
192
205
  const s = o() - l;
@@ -194,38 +207,38 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
194
207
  }, d = () => {
195
208
  c = !0, u = m = !1;
196
209
  }, g = () => {
197
- c = !1, M() && (u = !0);
210
+ c = !1, V() && (u = !0);
198
211
  };
199
- return t.addEventListener("scroll", p), t.addEventListener("wheel", f, {
212
+ return t.addEventListener("scroll", h), t.addEventListener("wheel", f, {
200
213
  passive: !0
201
214
  }), t.addEventListener("touchstart", d, {
202
215
  passive: !0
203
216
  }), t.addEventListener("touchend", g, {
204
217
  passive: !0
205
218
  }), {
206
- p: () => {
207
- t.removeEventListener("scroll", p), t.removeEventListener("wheel", f), t.removeEventListener("touchstart", d),
208
- t.removeEventListener("touchend", g), h.h();
209
- },
210
219
  S: () => {
220
+ t.removeEventListener("scroll", h), t.removeEventListener("wheel", f), t.removeEventListener("touchstart", d),
221
+ t.removeEventListener("touchend", g), p.v();
222
+ },
223
+ N: () => {
211
224
  const [t, i] = e.m();
212
- t && (n(t, i, m), m = !1, i && e.$getViewportSize() > e.$getTotalSize() && e.$update(1, s()));
225
+ t && (r(t, i, m), m = !1, i && e.$getViewportSize() > e.$getTotalSize() && e.$update(1, s()));
213
226
  }
214
227
  };
215
- }, B = (e, t, i) => {
228
+ }, W = (e, t, i) => {
216
229
  let s;
217
- return [ async (n, r) => {
230
+ return [ async (r, n) => {
218
231
  if (!await t()) return;
219
232
  s && s();
220
233
  const o = () => {
221
- const [t, i] = R();
234
+ const [t, i] = k();
222
235
  return s = () => {
223
236
  i(!1);
224
- }, e.$getViewportSize() && E(s, 150), [ t, e.$subscribe(2, () => {
237
+ }, e.$getViewportSize() && x(s, 150), [ t, e.$subscribe(2, () => {
225
238
  i(!0);
226
239
  }) ];
227
240
  };
228
- if (r && V()) e.$update(8, n()), P(async () => {
241
+ if (n && E()) e.$update(8, r()), R(async () => {
229
242
  for (;;) {
230
243
  let t = !0;
231
244
  for (let [i, s] = e.$getRange(); i <= s; i++) if (e.$isUnmeasuredItem(i)) {
@@ -240,11 +253,11 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
240
253
  s();
241
254
  }
242
255
  }
243
- e.$update(7), i(n(), r);
256
+ e.$update(7), i(r(), n);
244
257
  }); else for (;;) {
245
258
  const [t, s] = o();
246
259
  try {
247
- if (e.$update(7), i(n()), !await t) return;
260
+ if (e.$update(7), i(r()), !await t) return;
248
261
  } finally {
249
262
  s();
250
263
  }
@@ -252,27 +265,25 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
252
265
  }, () => {
253
266
  s && s();
254
267
  } ];
255
- }, J = e => {
256
- let t;
257
- return {
258
- v(i) {
259
- (t || (t = new (_(C(i)).ResizeObserver)(e))).observe(i);
260
- },
261
- N(e) {
262
- t.unobserve(e);
263
- },
264
- p() {
265
- t && t.disconnect();
268
+ }, j = (e, t) => {
269
+ e.$scheduleScroll(() => t);
270
+ }, X = (e, t, i, {align: s, smooth: r, offset: n = 0} = {}) => {
271
+ if (i = P(i, 0, t.$getItemsLength() - 1), "nearest" === s) {
272
+ const e = t.$getItemOffset(i), r = t.$getScrollOffset();
273
+ if (e < r) s = "start"; else {
274
+ if (!(e + t.$getItemSize(i) > r + t.$getViewportSize())) return;
275
+ s = "end";
266
276
  }
267
- };
268
- }, W = class t {
277
+ }
278
+ e.$scheduleScroll(() => n + 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), r);
279
+ }, Y = class t {
269
280
  index=h.required();
270
281
  offset=h.required();
271
282
  hide=h.required();
272
283
  horizontal=h.required();
273
284
  resizer=h.required();
274
285
  attrs=h();
275
- style=a(() => {
286
+ style=c(() => {
276
287
  const e = this.horizontal(), t = {
277
288
  contain: "layout style",
278
289
  position: "absolute",
@@ -285,21 +296,21 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
285
296
  return e && (t.display = "inline-flex"), t;
286
297
  });
287
298
  constructor() {
288
- const e = m(n).nativeElement;
299
+ const e = p(r).nativeElement;
289
300
  let t;
290
- l({
301
+ a({
291
302
  read: () => {
292
303
  const i = this.index();
293
- t && t(), t = d(this.resizer)(e, i);
304
+ t && t(), t = g(this.resizer)(e, i);
294
305
  }
295
306
  });
296
307
  let i = [];
297
- u(() => {
308
+ m(() => {
298
309
  const t = this.attrs();
299
310
  for (const t of i) e.removeAttribute(t);
300
311
  i = [];
301
312
  for (const s in t) "style" !== s && "class" !== s && (e.setAttribute(s, t[s]), i.push(s));
302
- }), m(s).onDestroy(() => {
313
+ }), p(s).onDestroy(() => {
303
314
  t && t();
304
315
  });
305
316
  }
@@ -369,9 +380,9 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
369
380
  },
370
381
  ngImport: e
371
382
  });
372
- }, j = (e, t) => "_" + t, X = class i {
383
+ }, Q = (e, t) => "_" + t, U = new n("virtua-item-template"), A = class i {
373
384
  data=h.required();
374
- getKey=h(j);
385
+ getKey=h(Q);
375
386
  itemProps=h();
376
387
  bufferSize=h();
377
388
  scrollRef=h();
@@ -380,48 +391,51 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
380
391
  shift=h(!1);
381
392
  horizontal=h(!1);
382
393
  keepMounted=h();
383
- cache=h();
394
+ cacheProp=h(void 0, {
395
+ alias: "cache"
396
+ });
384
397
  startMargin=h(0);
385
- scroll=p();
386
- scrollEnd=p();
387
- itemTemplate=h();
388
- contentTemplate=c(r);
389
- template=a(() => this.itemTemplate() ?? this.contentTemplate());
398
+ scroll=f();
399
+ scrollEnd=f();
400
+ contentTemplate=u(o);
401
+ P=p(U, {
402
+ optional: !0
403
+ });
404
+ template=c(() => this.P?.() ?? this.contentTemplate());
390
405
  I;
391
- resizer;
392
- P;
393
- R=m(n).nativeElement;
394
- k=m(t);
395
- q=f(void 0);
396
- $=a(() => {
406
+ driver;
407
+ R=p(r).nativeElement;
408
+ k=p(t);
409
+ q=d(void 0);
410
+ $=c(() => {
397
411
  this.q();
398
- const e = this.data().length, [t, i] = this.I.$getRange(this.bufferSize()), s = this.keepMounted(), n = [];
412
+ const e = this.data().length, [t, i] = this.I.$getRange(this.bufferSize()), s = this.keepMounted(), r = [];
399
413
  if (s) {
400
- const r = new Set(s);
401
- for (let e = t; e <= i; e++) r.add(e);
402
- for (const t of I([ ...r ])) t < e && n.push(t);
403
- } else for (let s = t; s <= i; s++) s < e && n.push(s);
404
- return n;
414
+ const n = new Set(s);
415
+ for (let e = t; e <= i; e++) n.add(e);
416
+ for (const t of I([ ...n ])) t < e && r.push(t);
417
+ } else for (let s = t; s <= i; s++) s < e && r.push(s);
418
+ return r;
405
419
  });
406
- items=a(() => {
420
+ items=c(() => {
407
421
  this.q();
408
- const e = this.I, t = this.data(), i = this.getKey(), s = this.itemProps(), n = this.P.$isNegative();
409
- return this.$().map(r => {
410
- const o = t[r];
422
+ const e = this.I, t = this.data(), i = this.getKey(), s = this.itemProps(), r = this.driver.$isNegative();
423
+ return this.$().map(n => {
424
+ const o = t[n];
411
425
  return {
412
- key: i(o, r),
413
- index: r,
426
+ key: i(o, n),
427
+ index: n,
414
428
  data: o,
415
- offset: e.$getItemOffset(r, n),
416
- hide: e.$isUnmeasuredItem(r),
429
+ offset: e.$getItemOffset(n, r),
430
+ hide: e.$isUnmeasuredItem(n),
417
431
  attrs: s?.({
418
432
  item: o,
419
- index: r
433
+ index: n
420
434
  })
421
435
  };
422
436
  });
423
437
  });
424
- containerStyle=a(() => {
438
+ containerStyle=c(() => {
425
439
  this.q();
426
440
  const e = this.horizontal(), t = this.I.$getTotalSize();
427
441
  return {
@@ -436,89 +450,66 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
436
450
  };
437
451
  });
438
452
  constructor() {
439
- u(() => {
453
+ m(() => {
440
454
  const e = this.data().length;
441
- this.I && e !== this.I.$getItemsLength() && this.I.$update(5, [ e, d(this.shift) ]);
442
- }), u(() => {
455
+ this.I && e !== this.I.$getItemsLength() && this.I.$update(5, [ e, g(this.shift) ]);
456
+ }), m(() => {
443
457
  const e = this.startMargin();
444
458
  this.I && e !== this.I.$getStartSpacerSize() && this.I.$update(6, e);
445
- }), o({
459
+ }), l({
446
460
  read: () => {
447
- const e = this.scrollRef() ?? this.R.parentElement;
448
- this.resizer.$observeRoot(e), this.P.$observe(this.R, e);
461
+ this.driver.$observe(this.R, this.scrollRef());
449
462
  }
450
- }), l({
463
+ }), a({
451
464
  read: () => {
452
- this.q(), this.P.$fixScrollJump();
465
+ this.q(), this.driver.$fixScrollJump();
453
466
  }
454
- }), m(s).onDestroy(() => {
455
- this.I?.$dispose(), this.resizer?.$dispose(), this.P?.$dispose();
467
+ }), p(s).onDestroy(() => {
468
+ this.I?.$dispose(), this.driver?.$dispose();
456
469
  });
457
470
  }
458
471
  ngOnInit() {
459
- const e = this.itemSize(), t = this.I = K(this.data().length, e, this.ssrCount(), this.cache(), !e);
460
- this.resizer = (e => {
461
- let t;
462
- const i = this.horizontal() ? "width" : "height", s = /* @__PURE__ */ new WeakMap, n = J(n => {
463
- const r = [];
464
- for (const {target: o, contentRect: l} of n) if (o.offsetParent) if (o === t) e.$update(4, l[i]); else {
465
- const e = s.get(o);
466
- null != e && r.push([ e, l[i] ]);
467
- }
468
- r.length && e.$update(3, r);
469
- });
470
- return {
471
- $observeRoot(e) {
472
- n.v(t = e);
473
- },
474
- $observeItem: (e, t) => (s.set(e, t), n.v(e), () => {
475
- s.delete(e), n.N(e);
476
- }),
477
- $dispose: n.p
478
- };
479
- })(t), this.P = ((e, t) => {
480
- let i, s, n = R(), r = !1;
481
- const o = t ? "scrollLeft" : "scrollTop", l = t ? "overflowX" : "overflowY", [a, c] = B(e, () => n[0], (e, s) => {
482
- e = D(e, r), s ? i.scrollTo({
472
+ const e = this.itemSize(), t = this.I = D(this.data().length, e, this.ssrCount(), this.cacheProp(), !e);
473
+ this.driver = ((e, t) => {
474
+ let i, s, r = k(), n = !1;
475
+ const o = t ? "scrollLeft" : "scrollTop", l = t ? "overflowX" : "overflowY", [a, c] = W(e, () => r[0], (e, s) => {
476
+ e = B(e, n), s ? i.scrollTo({
483
477
  [t ? "left" : "top"]: e,
484
478
  behavior: "smooth"
485
479
  }) : i[o] = e;
480
+ }), u = t ? "width" : "height", m = /* @__PURE__ */ new WeakMap, p = L(t => {
481
+ const s = [];
482
+ for (const {target: r, contentRect: n} of t) if (r.offsetParent) if (r === i) e.$update(4, n[u]); else {
483
+ const e = m.get(r);
484
+ null != e && s.push([ e, n[u] ]);
485
+ }
486
+ s.length && e.$update(3, s);
486
487
  });
487
488
  return {
488
- $observe(a, u) {
489
- i = u, t && (r = "rtl" === getComputedStyle(u).direction), s = L(e, u, t, () => D(u[o], r), (t, i, s) => {
489
+ $observe(a, u = a.parentElement) {
490
+ p.p(i = u), t && (n = "rtl" === getComputedStyle(u).direction), s = J(e, u, t, () => B(u[o], n), (t, i, s) => {
490
491
  if (s) {
491
492
  const e = u.style, t = e[l];
492
- e[l] = "hidden", E(() => {
493
+ e[l] = "hidden", x(() => {
493
494
  e[l] = t;
494
495
  });
495
496
  }
496
- u[o] = D(e.$getScrollOffset() + t, r), i && c();
497
- }), n[1](!0);
497
+ u[o] = B(e.$getScrollOffset() + t, n), i && c();
498
+ }), r[1](!0);
498
499
  },
499
500
  $dispose() {
500
- s && s.p(), n[1](!1), n = R();
501
- },
502
- $isNegative: () => r,
503
- $scrollTo(e) {
504
- a(() => e);
505
- },
506
- $scrollBy(t) {
507
- t += e.$getScrollOffset(), a(() => t);
501
+ p.S(), s && s.S(), r[1](!1), r = k();
508
502
  },
509
- $scrollToIndex(t, {align: i, smooth: s, offset: n = 0} = {}) {
510
- if (t = N(t, 0, e.$getItemsLength() - 1), "nearest" === i) {
511
- const s = e.$getItemOffset(t), n = e.$getScrollOffset();
512
- if (s < n) i = "start"; else {
513
- if (!(s + e.$getItemSize(t) > n + e.$getViewportSize())) return;
514
- i = "end";
515
- }
516
- }
517
- a(() => n + e.$getStartSpacerSize() + e.$getItemOffset(t) + ("end" === i ? e.$getItemSize(t) - e.$getViewportSize() : "center" === i ? (e.$getItemSize(t) - e.$getViewportSize()) / 2 : 0), s);
503
+ $observeItem: (e, t) => (m.set(e, t), p.p(e), () => {
504
+ m.delete(e), p.h(e);
505
+ }),
506
+ $isNegative: () => n,
507
+ $scheduleScroll: a,
508
+ $fixScrollJump() {
509
+ s && s.N();
518
510
  },
519
- $fixScrollJump: () => {
520
- s && s.S();
521
- }
511
+ $getBaseOffset: e.$getStartSpacerSize,
512
+ $getScrollbarSize: () => 0
522
513
  };
523
514
  })(t, this.horizontal()), t.$subscribe(1, e => {
524
515
  this.q.set(t.$getStateVersion()), e && this.k.tick();
@@ -528,17 +519,17 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
528
519
  this.scrollEnd.emit();
529
520
  }), this.q.set(t.$getStateVersion());
530
521
  }
531
- getCache() {
522
+ get cache() {
532
523
  return this.I.$getCacheSnapshot();
533
524
  }
534
- getScrollOffset() {
525
+ get scrollOffset() {
535
526
  return this.I.$getScrollOffset();
536
527
  }
537
- getScrollSize() {
528
+ get scrollSize() {
538
529
  return e = this.I, z(e.$getTotalSize(), e.$getViewportSize());
539
530
  var e;
540
531
  }
541
- getViewportSize() {
532
+ get viewportSize() {
542
533
  return this.I.$getViewportSize();
543
534
  }
544
535
  findItemIndex(e) {
@@ -551,13 +542,15 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
551
542
  return this.I.$getItemSize(e);
552
543
  }
553
544
  scrollToIndex(e, t) {
554
- this.P.$scrollToIndex(e, t);
545
+ X(this.driver, this.I, e, t);
555
546
  }
556
547
  scrollTo(e) {
557
- this.P.$scrollTo(e);
548
+ j(this.driver, e);
558
549
  }
559
550
  scrollBy(e) {
560
- this.P.$scrollBy(e);
551
+ ((e, t, i) => {
552
+ j(e, i + t.$getScrollOffset());
553
+ })(this.driver, this.I, e);
561
554
  }
562
555
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
563
556
  minVersion: "12.0.0",
@@ -644,8 +637,8 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
644
637
  isRequired: !1,
645
638
  transformFunction: null
646
639
  },
647
- cache: {
648
- classPropertyName: "cache",
640
+ cacheProp: {
641
+ classPropertyName: "cacheProp",
649
642
  publicName: "cache",
650
643
  isSignal: !0,
651
644
  isRequired: !1,
@@ -657,13 +650,6 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
657
650
  isSignal: !0,
658
651
  isRequired: !1,
659
652
  transformFunction: null
660
- },
661
- itemTemplate: {
662
- classPropertyName: "itemTemplate",
663
- publicName: "itemTemplate",
664
- isSignal: !0,
665
- isRequired: !1,
666
- transformFunction: null
667
653
  }
668
654
  },
669
655
  outputs: {
@@ -678,17 +664,17 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
678
664
  queries: [ {
679
665
  propertyName: "contentTemplate",
680
666
  first: !0,
681
- predicate: r,
667
+ predicate: o,
682
668
  emitDistinctChangesOnly: !1,
683
669
  descendants: !0,
684
670
  isSignal: !0
685
671
  } ],
686
672
  ngImport: e,
687
- template: '\n @for (item of items(); track item.key) {\n <div\n virtuaListItem\n [index]="item.index"\n [offset]="item.offset"\n [hide]="item.hide"\n [attrs]="item.attrs"\n [horizontal]="horizontal()"\n [resizer]="resizer.$observeItem"\n >\n <ng-container\n [ngTemplateOutlet]="template()"\n [ngTemplateOutletContext]="{\n $implicit: item.data,\n index: item.index,\n }"\n />\n </div>\n }\n ',
673
+ template: '\n @for (item of items(); track item.key) {\n <div\n virtuaListItem\n [index]="item.index"\n [offset]="item.offset"\n [hide]="item.hide"\n [attrs]="item.attrs"\n [horizontal]="horizontal()"\n [resizer]="driver.$observeItem"\n >\n <ng-container\n [ngTemplateOutlet]="template()"\n [ngTemplateOutletContext]="{\n $implicit: item.data,\n index: item.index,\n }"\n />\n </div>\n }\n ',
688
674
  isInline: !0,
689
675
  dependencies: [ {
690
676
  kind: "directive",
691
- type: e.forwardRef(() => W),
677
+ type: e.forwardRef(() => Y),
692
678
  selector: "div[virtuaListItem]",
693
679
  inputs: [ "index", "offset", "hide", "horizontal", "resizer", "attrs" ]
694
680
  }, {
@@ -703,9 +689,9 @@ var {min: S, max: z, abs: v, floor: b} = Math, N = (e, t, i) => S(i, z(t, e)), I
703
689
 
704
690
  i.OnPush;
705
691
 
706
- var Y = class t {
692
+ var G = class t {
707
693
  data=h.required();
708
- getKey=h(j);
694
+ getKey=h(Q);
709
695
  itemProps=h();
710
696
  bufferSize=h();
711
697
  itemSize=h();
@@ -713,27 +699,29 @@ var Y = class t {
713
699
  shift=h(!1);
714
700
  horizontal=h(!1);
715
701
  keepMounted=h();
716
- cache=h();
717
- scroll=p();
718
- scrollEnd=p();
719
- template=c.required(r);
720
- virtualizer=g.required(X);
721
- R=m(n).nativeElement;
702
+ cacheProp=h(void 0, {
703
+ alias: "cache"
704
+ });
705
+ scroll=f();
706
+ scrollEnd=f();
707
+ template=u.required(o);
708
+ virtualizer=S.required(A);
709
+ R=p(r).nativeElement;
722
710
  ngOnInit() {
723
711
  const e = this.horizontal(), t = this.R;
724
712
  t.setAttribute("style", `display:${e ? "inline-block" : "block"};${e ? "overflow-x" : "overflow-y"}:auto;contain:strict;width:100%;height:100%;` + (t.getAttribute("style") || ""));
725
713
  }
726
- getCache() {
727
- return this.virtualizer().getCache();
714
+ get cache() {
715
+ return this.virtualizer().cache;
728
716
  }
729
- getScrollOffset() {
730
- return this.virtualizer().getScrollOffset();
717
+ get scrollOffset() {
718
+ return this.virtualizer().scrollOffset;
731
719
  }
732
- getScrollSize() {
733
- return this.virtualizer().getScrollSize();
720
+ get scrollSize() {
721
+ return this.virtualizer().scrollSize;
734
722
  }
735
- getViewportSize() {
736
- return this.virtualizer().getViewportSize();
723
+ get viewportSize() {
724
+ return this.virtualizer().viewportSize;
737
725
  }
738
726
  findItemIndex(e) {
739
727
  return this.virtualizer().findItemIndex(e);
@@ -831,8 +819,8 @@ var Y = class t {
831
819
  isRequired: !1,
832
820
  transformFunction: null
833
821
  },
834
- cache: {
835
- classPropertyName: "cache",
822
+ cacheProp: {
823
+ classPropertyName: "cacheProp",
836
824
  publicName: "cache",
837
825
  isSignal: !0,
838
826
  isRequired: !1,
@@ -846,7 +834,7 @@ var Y = class t {
846
834
  queries: [ {
847
835
  propertyName: "template",
848
836
  first: !0,
849
- predicate: r,
837
+ predicate: o,
850
838
  emitDistinctChangesOnly: !1,
851
839
  descendants: !0,
852
840
  isSignal: !0
@@ -854,21 +842,25 @@ var Y = class t {
854
842
  viewQueries: [ {
855
843
  propertyName: "virtualizer",
856
844
  first: !0,
857
- predicate: X,
845
+ predicate: A,
858
846
  emitDistinctChangesOnly: !1,
859
847
  descendants: !0,
860
848
  isSignal: !0
861
849
  } ],
862
850
  ngImport: e,
863
- 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]="cache()"\n [itemTemplate]="template()"\n (scroll)="scroll.emit($event)"\n (scrollEnd)="scrollEnd.emit()"\n ></div>\n ',
851
+ 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 (scroll)="scroll.emit($event)"\n (scrollEnd)="scrollEnd.emit()"\n ></div>\n ',
864
852
  isInline: !0,
865
853
  dependencies: [ {
866
854
  kind: "directive",
867
- type: e.forwardRef(() => X),
855
+ type: e.forwardRef(() => A),
868
856
  selector: "virtua-virtualizer",
869
- inputs: [ "data", "getKey", "itemProps", "bufferSize", "scrollRef", "itemSize", "ssrCount", "shift", "horizontal", "keepMounted", "cache", "startMargin", "itemTemplate" ],
857
+ inputs: [ "data", "getKey", "itemProps", "bufferSize", "scrollRef", "itemSize", "ssrCount", "shift", "horizontal", "keepMounted", "cache", "startMargin" ],
870
858
  outputs: [ "scroll", "scrollEnd" ]
871
859
  } ],
860
+ viewProviders: [ {
861
+ provide: U,
862
+ useFactory: () => p(t).template
863
+ } ],
872
864
  changeDetection: e.ChangeDetectionStrategy.OnPush
873
865
  });
874
866
  };
@@ -877,37 +869,38 @@ i.OnPush;
877
869
 
878
870
  var H = class i {
879
871
  data=h.required();
880
- getKey=h(j);
872
+ getKey=h(Q);
881
873
  bufferSize=h();
882
874
  itemSize=h();
883
875
  shift=h(!1);
884
876
  horizontal=h(!1);
885
- cache=h();
886
- scroll=p();
887
- scrollEnd=p();
888
- template=c.required(r);
877
+ cacheProp=h(void 0, {
878
+ alias: "cache"
879
+ });
880
+ scroll=f();
881
+ scrollEnd=f();
882
+ template=u.required(o);
889
883
  I;
890
- resizer;
891
- P;
892
- R=m(n).nativeElement;
893
- k=m(t);
894
- q=f(void 0);
895
- items=a(() => {
884
+ driver;
885
+ R=p(r).nativeElement;
886
+ k=p(t);
887
+ q=d(void 0);
888
+ items=c(() => {
896
889
  this.q();
897
- const e = this.I, t = this.data(), i = this.getKey(), s = this.P.$isNegative(), [n, r] = e.$getRange(this.bufferSize()), o = [];
898
- for (let l = n; l <= r && l < t.length; l++) {
899
- const n = t[l];
890
+ const e = this.I, t = this.data(), i = this.getKey(), s = this.driver.$isNegative(), [r, n] = e.$getRange(this.bufferSize()), o = [];
891
+ for (let l = r; l <= n && l < t.length; l++) {
892
+ const r = t[l];
900
893
  o.push({
901
- key: i(n, l),
894
+ key: i(r, l),
902
895
  index: l,
903
- data: n,
896
+ data: r,
904
897
  offset: e.$getItemOffset(l, s),
905
898
  hide: e.$isUnmeasuredItem(l)
906
899
  });
907
900
  }
908
901
  return o;
909
902
  });
910
- containerStyle=a(() => {
903
+ containerStyle=c(() => {
911
904
  this.q();
912
905
  const e = this.horizontal(), t = this.I.$getTotalSize();
913
906
  return {
@@ -922,95 +915,80 @@ var H = class i {
922
915
  };
923
916
  });
924
917
  constructor() {
925
- u(() => {
918
+ m(() => {
926
919
  const e = this.data().length;
927
- this.I && e !== this.I.$getItemsLength() && this.I.$update(5, [ e, d(this.shift) ]);
928
- }), o({
920
+ this.I && e !== this.I.$getItemsLength() && this.I.$update(5, [ e, g(this.shift) ]);
921
+ }), l({
929
922
  read: () => {
930
- this.resizer.$observeRoot(this.R), this.P.$observe(this.R);
923
+ this.driver.$observe(this.R);
931
924
  }
932
- }), l({
925
+ }), a({
933
926
  read: () => {
934
- this.q(), this.P.$fixScrollJump();
927
+ this.q(), this.driver.$fixScrollJump();
935
928
  }
936
- }), m(s).onDestroy(() => {
937
- this.I?.$dispose(), this.resizer?.$dispose(), this.P?.$dispose();
929
+ }), p(s).onDestroy(() => {
930
+ this.I?.$dispose(), this.driver?.$dispose();
938
931
  });
939
932
  }
940
933
  ngOnInit() {
941
- const e = this.itemSize(), t = this.I = K(this.data().length, e, void 0, this.cache(), !e);
942
- this.resizer = ((e, t) => {
943
- const i = t ? "width" : "height", s = t ? "innerWidth" : "innerHeight", n = /* @__PURE__ */ new WeakMap, r = J(t => {
944
- const s = [];
945
- for (const {target: e, contentRect: r} of t) {
946
- if (!e.offsetParent) continue;
947
- const t = n.get(e);
948
- null != t && s.push([ t, r[i] ]);
949
- }
950
- s.length && e.$update(3, s);
951
- });
952
- let o;
953
- return {
954
- $observeRoot(t) {
955
- const i = _(C(t)), n = () => {
956
- e.$update(4, i[s]);
957
- };
958
- i.addEventListener("resize", n), P(n), o = () => {
959
- i.removeEventListener("resize", n);
960
- };
961
- },
962
- $observeItem: (e, t) => (n.set(e, t), r.v(e), () => {
963
- n.delete(e), r.N(e);
964
- }),
965
- $dispose() {
966
- o && o(), r.p();
967
- }
968
- };
969
- })(t, this.horizontal()), this.P = ((e, t) => {
970
- let i, s, n = R(), r = !1;
971
- const o = t ? "left" : "top", [l] = B(e, () => n[0], (e, t) => {
972
- e = D(e, r);
973
- const s = _(C(i));
934
+ const e = this.itemSize(), t = this.I = D(this.data().length, e, void 0, this.cacheProp(), !e);
935
+ this.driver = ((e, t) => {
936
+ let i, s, r, n = k(), o = !1;
937
+ const l = t ? "left" : "top", [a] = W(e, () => n[0], (e, t) => {
938
+ e = B(e, o);
939
+ const s = K(M(i));
974
940
  t ? s.scroll({
975
- [o]: e,
941
+ [l]: e,
976
942
  behavior: "smooth"
977
943
  }) : s.scroll({
978
- [o]: e
944
+ [l]: e
979
945
  });
980
- }), a = (e, t, i, s, n = 0) => {
981
- const o = s ? "offsetLeft" : "offsetTop", l = n + (s && r ? i.innerWidth - e[o] - e.offsetWidth : e[o]), c = e.offsetParent;
982
- return e !== t && c ? a(c, t, i, s, l) : l;
946
+ }), c = t ? "width" : "height", u = /* @__PURE__ */ new WeakMap, m = L(t => {
947
+ const i = [];
948
+ for (const {target: e, contentRect: s} of t) {
949
+ if (!e.offsetParent) continue;
950
+ const t = u.get(e);
951
+ null != t && i.push([ t, s[c] ]);
952
+ }
953
+ i.length && e.$update(3, i);
954
+ }), p = (e, t, i, s, r = 0) => {
955
+ const n = s ? "offsetLeft" : "offsetTop", l = r + (s && o ? i.innerWidth - e[n] - e.offsetWidth : e[n]), a = e.offsetParent;
956
+ return e !== t && a ? p(a, t, i, s, l) : l;
983
957
  };
984
958
  return {
985
- $observe(l) {
986
- i = l;
987
- const c = t ? "scrollX" : "scrollY", u = C(l), m = _(u);
988
- t && (r = "rtl" === getComputedStyle(O(u)).direction), s = L(e, m, t, () => D(m[c], r), (t, i) => {
959
+ $observe(a) {
960
+ i = a;
961
+ const c = t ? "scrollX" : "scrollY", u = M(a), m = K(u), h = () => {
962
+ e.$update(4, m[t ? "innerWidth" : "innerHeight"]);
963
+ };
964
+ m.addEventListener("resize", h), R(h), r = () => {
965
+ m.removeEventListener("resize", h);
966
+ }, t && (o = "rtl" === getComputedStyle(C(u)).direction), s = J(e, m, t, () => B(m[c], o), (t, i) => {
989
967
  i ? m.scroll({
990
- [o]: D(e.$getScrollOffset() + t, r)
968
+ [l]: B(e.$getScrollOffset() + t, o)
991
969
  }) : m.scrollBy({
992
- [o]: D(t, r)
970
+ [l]: B(t, o)
993
971
  });
994
- }, () => a(l, u.body, m, t)), n[1](!0);
972
+ }, () => p(a, u.body, m, t)), n[1](!0);
995
973
  },
996
974
  $dispose() {
997
- s && s.p(), i = void 0, n[1](!1), n = R();
975
+ r && r(), m.S(), s && s.S(), i = void 0, n[1](!1), n = k();
998
976
  },
999
- $isNegative: () => r,
1000
- $fixScrollJump: () => {
1001
- s && s.S();
977
+ $observeItem: (e, t) => (u.set(e, t), m.p(e), () => {
978
+ u.delete(e), m.h(e);
979
+ }),
980
+ $isNegative: () => o,
981
+ $scheduleScroll: a,
982
+ $fixScrollJump() {
983
+ s && s.N();
1002
984
  },
1003
- $scrollToIndex(s, {align: n, smooth: r, offset: o = 0} = {}) {
1004
- if (!i) return;
1005
- if (s = N(s, 0, e.$getItemsLength() - 1), "nearest" === n) {
1006
- const t = e.$getItemOffset(s), i = e.$getScrollOffset();
1007
- if (t < i) n = "start"; else {
1008
- if (!(t + e.$getItemSize(s) > i + e.$getViewportSize())) return;
1009
- n = "end";
1010
- }
1011
- }
1012
- const c = C(i), u = _(c), m = O(c), h = () => e.$getViewportSize() - (t ? m.clientWidth : m.clientHeight);
1013
- l(() => o + a(i, c.body, u, t) + e.$getItemOffset(s) + ("end" === n ? e.$getItemSize(s) - (e.$getViewportSize() - h()) : "center" === n ? (e.$getItemSize(s) - (e.$getViewportSize() - h())) / 2 : 0), r);
985
+ $getBaseOffset() {
986
+ const e = M(i);
987
+ return p(i, e.body, K(e), t);
988
+ },
989
+ $getScrollbarSize() {
990
+ const s = C(M(i));
991
+ return e.$getViewportSize() - (t ? s.clientWidth : s.clientHeight);
1014
992
  }
1015
993
  };
1016
994
  })(t, this.horizontal()), t.$subscribe(1, e => {
@@ -1021,13 +999,13 @@ var H = class i {
1021
999
  this.scrollEnd.emit();
1022
1000
  }), this.q.set(t.$getStateVersion());
1023
1001
  }
1024
- getCache() {
1002
+ get cache() {
1025
1003
  return this.I.$getCacheSnapshot();
1026
1004
  }
1027
- getScrollOffset() {
1005
+ get scrollOffset() {
1028
1006
  return this.I.$getScrollOffset();
1029
1007
  }
1030
- getViewportSize() {
1008
+ get viewportSize() {
1031
1009
  return this.I.$getViewportSize();
1032
1010
  }
1033
1011
  findItemIndex(e) {
@@ -1040,7 +1018,7 @@ var H = class i {
1040
1018
  return this.I.$getItemSize(e);
1041
1019
  }
1042
1020
  scrollToIndex(e, t) {
1043
- this.P.$scrollToIndex(e, t);
1021
+ X(this.driver, this.I, e, t);
1044
1022
  }
1045
1023
  static ɵfac=/*@__PURE__*/ e.ɵɵngDeclareFactory({
1046
1024
  minVersion: "12.0.0",
@@ -1099,8 +1077,8 @@ var H = class i {
1099
1077
  isRequired: !1,
1100
1078
  transformFunction: null
1101
1079
  },
1102
- cache: {
1103
- classPropertyName: "cache",
1080
+ cacheProp: {
1081
+ classPropertyName: "cacheProp",
1104
1082
  publicName: "cache",
1105
1083
  isSignal: !0,
1106
1084
  isRequired: !1,
@@ -1119,17 +1097,17 @@ var H = class i {
1119
1097
  queries: [ {
1120
1098
  propertyName: "template",
1121
1099
  first: !0,
1122
- predicate: r,
1100
+ predicate: o,
1123
1101
  emitDistinctChangesOnly: !1,
1124
1102
  descendants: !0,
1125
1103
  isSignal: !0
1126
1104
  } ],
1127
1105
  ngImport: e,
1128
- template: '\n @for (item of items(); track item.key) {\n <div\n virtuaListItem\n [index]="item.index"\n [offset]="item.offset"\n [hide]="item.hide"\n [horizontal]="horizontal()"\n [resizer]="resizer.$observeItem"\n >\n <ng-container\n [ngTemplateOutlet]="template()"\n [ngTemplateOutletContext]="{\n $implicit: item.data,\n index: item.index,\n }"\n />\n </div>\n }\n ',
1106
+ template: '\n @for (item of items(); track item.key) {\n <div\n virtuaListItem\n [index]="item.index"\n [offset]="item.offset"\n [hide]="item.hide"\n [horizontal]="horizontal()"\n [resizer]="driver.$observeItem"\n >\n <ng-container\n [ngTemplateOutlet]="template()"\n [ngTemplateOutletContext]="{\n $implicit: item.data,\n index: item.index,\n }"\n />\n </div>\n }\n ',
1129
1107
  isInline: !0,
1130
1108
  dependencies: [ {
1131
1109
  kind: "directive",
1132
- type: e.forwardRef(() => W),
1110
+ type: e.forwardRef(() => Y),
1133
1111
  selector: "div[virtuaListItem]",
1134
1112
  inputs: [ "index", "offset", "hide", "horizontal", "resizer", "attrs" ]
1135
1113
  }, {
@@ -1144,5 +1122,5 @@ var H = class i {
1144
1122
 
1145
1123
  i.OnPush;
1146
1124
 
1147
- export { Y as VList, X as Virtualizer, H as WindowVirtualizer };
1125
+ export { G as VList, A as Virtualizer, H as WindowVirtualizer };
1148
1126
  //# sourceMappingURL=index.js.map