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.
- package/lib/angular/VList.d.ts +7 -7
- package/lib/angular/Virtualizer.d.ts +11 -11
- package/lib/angular/WindowVirtualizer.d.ts +9 -9
- package/lib/angular/index.js +306 -328
- package/lib/angular/index.js.map +1 -1
- package/lib/core/index.cjs +283 -280
- package/lib/core/index.cjs.map +1 -1
- package/lib/core/index.d.ts +3 -2
- package/lib/core/index.js +317 -313
- package/lib/core/index.js.map +1 -1
- package/lib/core/scroll-to.d.ts +1 -0
- package/lib/core/types.d.ts +1 -5
- package/lib/index.cjs +514 -516
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +437 -439
- package/lib/index.js.map +1 -1
- package/lib/solid/index.cjs +296 -322
- package/lib/solid/index.cjs.map +1 -1
- package/lib/solid/index.js +261 -287
- package/lib/solid/index.js.map +1 -1
- package/lib/solid/index.jsx +230 -223
- package/lib/solid/index.jsx.map +1 -1
- package/lib/svelte/ListItem.svelte +2 -2
- package/lib/svelte/Virtualizer.svelte +18 -24
- package/lib/svelte/WindowVirtualizer.svelte +12 -13
- package/lib/vue/index.cjs +305 -332
- package/lib/vue/index.cjs.map +1 -1
- package/lib/vue/index.js +272 -299
- package/lib/vue/index.js.map +1 -1
- package/package.json +1 -1
- /package/lib/core/{resizer.d.ts → driver.d.ts} +0 -0
- /package/lib/core/{scroller.d.ts → observer.d.ts} +0 -0
package/lib/angular/index.js
CHANGED
|
@@ -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
|
|
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:
|
|
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
|
-
},
|
|
9
|
+
}, k = () => {
|
|
10
10
|
let e;
|
|
11
11
|
return [ new Promise(t => {
|
|
12
12
|
e = t;
|
|
13
13
|
}), e ];
|
|
14
|
-
},
|
|
14
|
+
}, q = e => {
|
|
15
15
|
let t;
|
|
16
16
|
return () => (e && (t = e(), e = void 0), t);
|
|
17
|
-
},
|
|
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
|
-
},
|
|
21
|
+
}, F = (e, t) => {
|
|
22
22
|
const i = e.t[t];
|
|
23
23
|
return -1 === i ? e.i : i;
|
|
24
|
-
},
|
|
24
|
+
}, w = (e, t, i) => {
|
|
25
25
|
const s = -1 === e.t[t];
|
|
26
|
-
return e.t[t] = i, e.o =
|
|
27
|
-
},
|
|
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 +=
|
|
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
|
|
35
|
+
let r = i;
|
|
36
36
|
for (;i <= s; ) {
|
|
37
|
-
const
|
|
38
|
-
|
|
37
|
+
const n = N((i + s) / 2);
|
|
38
|
+
O(e, n) <= t ? (r = n, i = n + 1) : s = n - 1;
|
|
39
39
|
}
|
|
40
|
-
return
|
|
41
|
-
},
|
|
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 :
|
|
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
|
-
},
|
|
46
|
-
let
|
|
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 ?
|
|
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:
|
|
53
|
-
}))(e, s
|
|
54
|
-
if (s =
|
|
55
|
-
const
|
|
56
|
-
return [ T(e, t, s,
|
|
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
|
|
60
|
-
return [
|
|
59
|
+
const r = T(e, t, void 0, s);
|
|
60
|
+
return [ r, T(e, i, r) ];
|
|
61
61
|
}
|
|
62
|
-
})(N, e, t, g[0]),
|
|
63
|
-
const i =
|
|
64
|
-
return t ?
|
|
65
|
-
},
|
|
66
|
-
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 (!
|
|
75
|
+
if (!y || n) return g;
|
|
76
76
|
let t, i;
|
|
77
|
-
if (
|
|
78
|
-
let s = z(0,
|
|
79
|
-
|
|
80
|
-
d && (t =
|
|
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),
|
|
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:
|
|
86
|
+
$getItemOffset: C,
|
|
87
|
+
$getItemSize: M,
|
|
88
88
|
$getItemsLength: () => N.l,
|
|
89
89
|
$getScrollOffset: () => c,
|
|
90
|
-
$isScrolling: () => 0 !==
|
|
90
|
+
$isScrolling: () => 0 !== h,
|
|
91
91
|
$getViewportSize: () => l,
|
|
92
92
|
$getStartSpacerSize: () => a,
|
|
93
|
-
$getTotalSize:
|
|
94
|
-
m: () => (
|
|
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 =
|
|
108
|
-
|
|
109
|
-
const i = t - c,
|
|
110
|
-
e &&
|
|
111
|
-
const o =
|
|
112
|
-
o >= -l && o <=
|
|
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 !==
|
|
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 =
|
|
128
|
-
s = 1 !==
|
|
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 -
|
|
130
|
+
return s && (e += i - M(t)), e;
|
|
131
131
|
}, 0));
|
|
132
132
|
for (const [t, i] of e) {
|
|
133
|
-
const e =
|
|
134
|
-
|
|
133
|
+
const e = M(t), s = w(N, t, i);
|
|
134
|
+
r && (S += s ? i : i - e);
|
|
135
135
|
}
|
|
136
|
-
|
|
136
|
+
r && l && S > l && (E(((e, t) => {
|
|
137
137
|
let i = 0;
|
|
138
138
|
const s = [];
|
|
139
|
-
e.t.forEach((e,
|
|
140
|
-
-1 !== e && (s.push(e),
|
|
139
|
+
e.t.forEach((e, r) => {
|
|
140
|
+
-1 !== e && (s.push(e), r < t && i++);
|
|
141
141
|
}), e.o = -1;
|
|
142
|
-
const
|
|
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,
|
|
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 || (
|
|
149
|
+
l !== t && (l || (y = s = !0), l = t, g = 3);
|
|
150
150
|
break;
|
|
151
151
|
|
|
152
152
|
case 5:
|
|
153
|
-
t[1] ? (E(
|
|
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 =
|
|
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
|
-
},
|
|
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
|
|
188
|
+
const p = (() => {
|
|
176
189
|
let t;
|
|
177
190
|
const i = () => {
|
|
178
191
|
null != t && clearTimeout(t);
|
|
179
192
|
}, s = () => {
|
|
180
|
-
i(), t =
|
|
193
|
+
i(), t = x(() => {
|
|
181
194
|
t = null, (() => {
|
|
182
|
-
if (a || c) return a = !1, void
|
|
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.
|
|
188
|
-
})(),
|
|
189
|
-
l = o(), u && (m = !0),
|
|
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,
|
|
210
|
+
c = !1, V() && (u = !0);
|
|
198
211
|
};
|
|
199
|
-
return t.addEventListener("scroll",
|
|
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 && (
|
|
225
|
+
t && (r(t, i, m), m = !1, i && e.$getViewportSize() > e.$getTotalSize() && e.$update(1, s()));
|
|
213
226
|
}
|
|
214
227
|
};
|
|
215
|
-
},
|
|
228
|
+
}, W = (e, t, i) => {
|
|
216
229
|
let s;
|
|
217
|
-
return [ async (
|
|
230
|
+
return [ async (r, n) => {
|
|
218
231
|
if (!await t()) return;
|
|
219
232
|
s && s();
|
|
220
233
|
const o = () => {
|
|
221
|
-
const [t, i] =
|
|
234
|
+
const [t, i] = k();
|
|
222
235
|
return s = () => {
|
|
223
236
|
i(!1);
|
|
224
|
-
}, e.$getViewportSize() &&
|
|
237
|
+
}, e.$getViewportSize() && x(s, 150), [ t, e.$subscribe(2, () => {
|
|
225
238
|
i(!0);
|
|
226
239
|
}) ];
|
|
227
240
|
};
|
|
228
|
-
if (
|
|
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(
|
|
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(
|
|
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
|
-
},
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
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
|
-
|
|
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=
|
|
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 =
|
|
299
|
+
const e = p(r).nativeElement;
|
|
289
300
|
let t;
|
|
290
|
-
|
|
301
|
+
a({
|
|
291
302
|
read: () => {
|
|
292
303
|
const i = this.index();
|
|
293
|
-
t && t(), t =
|
|
304
|
+
t && t(), t = g(this.resizer)(e, i);
|
|
294
305
|
}
|
|
295
306
|
});
|
|
296
307
|
let i = [];
|
|
297
|
-
|
|
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
|
-
}),
|
|
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
|
-
},
|
|
383
|
+
}, Q = (e, t) => "_" + t, U = new n("virtua-item-template"), A = class i {
|
|
373
384
|
data=h.required();
|
|
374
|
-
getKey=h(
|
|
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
|
-
|
|
394
|
+
cacheProp=h(void 0, {
|
|
395
|
+
alias: "cache"
|
|
396
|
+
});
|
|
384
397
|
startMargin=h(0);
|
|
385
|
-
scroll=
|
|
386
|
-
scrollEnd=
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
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
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
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(),
|
|
412
|
+
const e = this.data().length, [t, i] = this.I.$getRange(this.bufferSize()), s = this.keepMounted(), r = [];
|
|
399
413
|
if (s) {
|
|
400
|
-
const
|
|
401
|
-
for (let e = t; e <= i; e++)
|
|
402
|
-
for (const t of I([ ...
|
|
403
|
-
} else for (let s = t; s <= i; s++) s < e &&
|
|
404
|
-
return
|
|
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=
|
|
420
|
+
items=c(() => {
|
|
407
421
|
this.q();
|
|
408
|
-
const e = this.I, t = this.data(), i = this.getKey(), s = this.itemProps(),
|
|
409
|
-
return this.$().map(
|
|
410
|
-
const o = t[
|
|
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,
|
|
413
|
-
index:
|
|
426
|
+
key: i(o, n),
|
|
427
|
+
index: n,
|
|
414
428
|
data: o,
|
|
415
|
-
offset: e.$getItemOffset(
|
|
416
|
-
hide: e.$isUnmeasuredItem(
|
|
429
|
+
offset: e.$getItemOffset(n, r),
|
|
430
|
+
hide: e.$isUnmeasuredItem(n),
|
|
417
431
|
attrs: s?.({
|
|
418
432
|
item: o,
|
|
419
|
-
index:
|
|
433
|
+
index: n
|
|
420
434
|
})
|
|
421
435
|
};
|
|
422
436
|
});
|
|
423
437
|
});
|
|
424
|
-
containerStyle=
|
|
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
|
-
|
|
453
|
+
m(() => {
|
|
440
454
|
const e = this.data().length;
|
|
441
|
-
this.I && e !== this.I.$getItemsLength() && this.I.$update(5, [ e,
|
|
442
|
-
}),
|
|
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
|
-
}),
|
|
459
|
+
}), l({
|
|
446
460
|
read: () => {
|
|
447
|
-
|
|
448
|
-
this.resizer.$observeRoot(e), this.P.$observe(this.R, e);
|
|
461
|
+
this.driver.$observe(this.R, this.scrollRef());
|
|
449
462
|
}
|
|
450
|
-
}),
|
|
463
|
+
}), a({
|
|
451
464
|
read: () => {
|
|
452
|
-
this.q(), this.
|
|
465
|
+
this.q(), this.driver.$fixScrollJump();
|
|
453
466
|
}
|
|
454
|
-
}),
|
|
455
|
-
this.I?.$dispose(), this.
|
|
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 =
|
|
460
|
-
this.
|
|
461
|
-
let
|
|
462
|
-
const
|
|
463
|
-
|
|
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 && (
|
|
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",
|
|
493
|
+
e[l] = "hidden", x(() => {
|
|
493
494
|
e[l] = t;
|
|
494
495
|
});
|
|
495
496
|
}
|
|
496
|
-
u[o] =
|
|
497
|
-
}),
|
|
497
|
+
u[o] = B(e.$getScrollOffset() + t, n), i && c();
|
|
498
|
+
}), r[1](!0);
|
|
498
499
|
},
|
|
499
500
|
$dispose() {
|
|
500
|
-
s && s.
|
|
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
|
-
$
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
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
|
-
$
|
|
520
|
-
|
|
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
|
-
|
|
522
|
+
get cache() {
|
|
532
523
|
return this.I.$getCacheSnapshot();
|
|
533
524
|
}
|
|
534
|
-
|
|
525
|
+
get scrollOffset() {
|
|
535
526
|
return this.I.$getScrollOffset();
|
|
536
527
|
}
|
|
537
|
-
|
|
528
|
+
get scrollSize() {
|
|
538
529
|
return e = this.I, z(e.$getTotalSize(), e.$getViewportSize());
|
|
539
530
|
var e;
|
|
540
531
|
}
|
|
541
|
-
|
|
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.
|
|
545
|
+
X(this.driver, this.I, e, t);
|
|
555
546
|
}
|
|
556
547
|
scrollTo(e) {
|
|
557
|
-
this.
|
|
548
|
+
j(this.driver, e);
|
|
558
549
|
}
|
|
559
550
|
scrollBy(e) {
|
|
560
|
-
|
|
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
|
-
|
|
648
|
-
classPropertyName: "
|
|
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:
|
|
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]="
|
|
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(() =>
|
|
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
|
|
692
|
+
var G = class t {
|
|
707
693
|
data=h.required();
|
|
708
|
-
getKey=h(
|
|
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
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
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
|
-
|
|
727
|
-
return this.virtualizer().
|
|
714
|
+
get cache() {
|
|
715
|
+
return this.virtualizer().cache;
|
|
728
716
|
}
|
|
729
|
-
|
|
730
|
-
return this.virtualizer().
|
|
717
|
+
get scrollOffset() {
|
|
718
|
+
return this.virtualizer().scrollOffset;
|
|
731
719
|
}
|
|
732
|
-
|
|
733
|
-
return this.virtualizer().
|
|
720
|
+
get scrollSize() {
|
|
721
|
+
return this.virtualizer().scrollSize;
|
|
734
722
|
}
|
|
735
|
-
|
|
736
|
-
return this.virtualizer().
|
|
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
|
-
|
|
835
|
-
classPropertyName: "
|
|
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:
|
|
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:
|
|
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]="
|
|
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(() =>
|
|
855
|
+
type: e.forwardRef(() => A),
|
|
868
856
|
selector: "virtua-virtualizer",
|
|
869
|
-
inputs: [ "data", "getKey", "itemProps", "bufferSize", "scrollRef", "itemSize", "ssrCount", "shift", "horizontal", "keepMounted", "cache", "startMargin"
|
|
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(
|
|
872
|
+
getKey=h(Q);
|
|
881
873
|
bufferSize=h();
|
|
882
874
|
itemSize=h();
|
|
883
875
|
shift=h(!1);
|
|
884
876
|
horizontal=h(!1);
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
877
|
+
cacheProp=h(void 0, {
|
|
878
|
+
alias: "cache"
|
|
879
|
+
});
|
|
880
|
+
scroll=f();
|
|
881
|
+
scrollEnd=f();
|
|
882
|
+
template=u.required(o);
|
|
889
883
|
I;
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
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.
|
|
898
|
-
for (let l =
|
|
899
|
-
const
|
|
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(
|
|
894
|
+
key: i(r, l),
|
|
902
895
|
index: l,
|
|
903
|
-
data:
|
|
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=
|
|
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
|
-
|
|
918
|
+
m(() => {
|
|
926
919
|
const e = this.data().length;
|
|
927
|
-
this.I && e !== this.I.$getItemsLength() && this.I.$update(5, [ e,
|
|
928
|
-
}),
|
|
920
|
+
this.I && e !== this.I.$getItemsLength() && this.I.$update(5, [ e, g(this.shift) ]);
|
|
921
|
+
}), l({
|
|
929
922
|
read: () => {
|
|
930
|
-
this.
|
|
923
|
+
this.driver.$observe(this.R);
|
|
931
924
|
}
|
|
932
|
-
}),
|
|
925
|
+
}), a({
|
|
933
926
|
read: () => {
|
|
934
|
-
this.q(), this.
|
|
927
|
+
this.q(), this.driver.$fixScrollJump();
|
|
935
928
|
}
|
|
936
|
-
}),
|
|
937
|
-
this.I?.$dispose(), this.
|
|
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 =
|
|
942
|
-
this.
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
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
|
-
[
|
|
941
|
+
[l]: e,
|
|
976
942
|
behavior: "smooth"
|
|
977
943
|
}) : s.scroll({
|
|
978
|
-
[
|
|
944
|
+
[l]: e
|
|
979
945
|
});
|
|
980
|
-
}),
|
|
981
|
-
const
|
|
982
|
-
|
|
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(
|
|
986
|
-
i =
|
|
987
|
-
const c = t ? "scrollX" : "scrollY", u =
|
|
988
|
-
|
|
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
|
-
[
|
|
968
|
+
[l]: B(e.$getScrollOffset() + t, o)
|
|
991
969
|
}) : m.scrollBy({
|
|
992
|
-
[
|
|
970
|
+
[l]: B(t, o)
|
|
993
971
|
});
|
|
994
|
-
}, () => a
|
|
972
|
+
}, () => p(a, u.body, m, t)), n[1](!0);
|
|
995
973
|
},
|
|
996
974
|
$dispose() {
|
|
997
|
-
s && s.
|
|
975
|
+
r && r(), m.S(), s && s.S(), i = void 0, n[1](!1), n = k();
|
|
998
976
|
},
|
|
999
|
-
$
|
|
1000
|
-
|
|
1001
|
-
|
|
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
|
-
$
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
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
|
-
|
|
1002
|
+
get cache() {
|
|
1025
1003
|
return this.I.$getCacheSnapshot();
|
|
1026
1004
|
}
|
|
1027
|
-
|
|
1005
|
+
get scrollOffset() {
|
|
1028
1006
|
return this.I.$getScrollOffset();
|
|
1029
1007
|
}
|
|
1030
|
-
|
|
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.
|
|
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
|
-
|
|
1103
|
-
classPropertyName: "
|
|
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:
|
|
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]="
|
|
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(() =>
|
|
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 {
|
|
1125
|
+
export { G as VList, A as Virtualizer, H as WindowVirtualizer };
|
|
1148
1126
|
//# sourceMappingURL=index.js.map
|