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