virtua 0.52.9 → 0.53.0
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/README.md +286 -193
- package/lib/angular/VList.d.ts +3 -1
- package/lib/angular/VMasonry.d.ts +114 -0
- package/lib/angular/Virtualizer.d.ts +3 -1
- package/lib/angular/WindowVirtualizer.d.ts +3 -1
- package/lib/angular/index.d.ts +1 -0
- package/lib/angular/index.js +812 -429
- package/lib/angular/index.js.map +1 -1
- package/lib/core/index.cjs +215 -137
- package/lib/core/index.cjs.map +1 -1
- package/lib/core/index.d.ts +1 -0
- package/lib/core/index.js +282 -204
- package/lib/core/index.js.map +1 -1
- package/lib/core/layouts/masonry.d.ts +1 -0
- package/lib/index.cjs +595 -423
- package/lib/index.cjs.map +1 -1
- package/lib/index.js +594 -424
- package/lib/index.js.map +1 -1
- package/lib/react/VMasonry.d.ts +105 -0
- package/lib/react/Virtualizer.d.ts +3 -1
- package/lib/react/WindowVirtualizer.d.ts +3 -1
- package/lib/react/index.d.ts +2 -0
- package/lib/react/types.d.ts +1 -1
- package/lib/solid/VMasonry.d.ts +107 -0
- package/lib/solid/Virtualizer.d.ts +3 -1
- package/lib/solid/WindowVirtualizer.d.ts +3 -1
- package/lib/solid/index.cjs +749 -541
- package/lib/solid/index.cjs.map +1 -1
- package/lib/solid/index.d.ts +2 -0
- package/lib/solid/index.js +704 -505
- package/lib/solid/index.js.map +1 -1
- package/lib/solid/index.jsx +345 -8
- package/lib/solid/index.jsx.map +1 -1
- package/lib/solid/types.d.ts +1 -1
- package/lib/svelte/MasonryItem.svelte +49 -0
- package/lib/svelte/VGrid.svelte +1 -1
- package/lib/svelte/VList.svelte +1 -1
- package/lib/svelte/VMasonry.svelte +182 -0
- package/lib/svelte/VMasonry.type.d.ts +104 -0
- package/lib/svelte/Virtualizer.svelte +1 -1
- package/lib/svelte/Virtualizer.type.d.ts +3 -1
- package/lib/svelte/WindowVirtualizer.svelte +1 -1
- package/lib/svelte/WindowVirtualizer.type.d.ts +3 -1
- package/lib/svelte/index.d.ts +2 -0
- package/lib/svelte/index.js +2 -1
- package/lib/svelte/types.d.ts +2 -2
- package/lib/vue/VMasonry.d.ts +110 -0
- package/lib/vue/Virtualizer.d.ts +3 -1
- package/lib/vue/WindowVirtualizer.d.ts +3 -1
- package/lib/vue/index.cjs +666 -442
- package/lib/vue/index.cjs.map +1 -1
- package/lib/vue/index.d.ts +2 -0
- package/lib/vue/index.js +695 -476
- package/lib/vue/index.js.map +1 -1
- package/package.json +6 -16
package/lib/core/index.cjs
CHANGED
|
@@ -48,7 +48,7 @@ t), m = (t, e, o) => {
|
|
|
48
48
|
v(l, t, c, s, r);
|
|
49
49
|
for (let t = s; t < e; t++) l.push(t);
|
|
50
50
|
return l;
|
|
51
|
-
}, I = (t, e) => o(t.rowIndex + (t.rowSpan || 1), e),
|
|
51
|
+
}, I = (t, e) => o(t.rowIndex + (t.rowSpan || 1), e), z = (t, e) => o(t.colIndex + (t.colSpan || 1), e), k = (t, e, n, r, s, l) => {
|
|
52
52
|
const c = e.length, i = r.length;
|
|
53
53
|
let f = "[l0]", u = 0, a = 0, $ = 0;
|
|
54
54
|
for (;u < l; ) {
|
|
@@ -86,7 +86,7 @@ t), m = (t, e, o) => {
|
|
|
86
86
|
e && e.disconnect();
|
|
87
87
|
}
|
|
88
88
|
};
|
|
89
|
-
},
|
|
89
|
+
}, L = (t, e, o, n, r, s, l) => {
|
|
90
90
|
let c, a, $ = 0, p = !1, g = !1, m = !1, x = !1;
|
|
91
91
|
const w = Date.now, h = n ? "scrollLeft" : "scrollTop", b = n ? "left" : "top", S = t => r ? -t : t, v = () => S(o[h]), y = (t, e) => {
|
|
92
92
|
o.scrollTo({
|
|
@@ -94,34 +94,35 @@ t), m = (t, e, o) => {
|
|
|
94
94
|
behavior: e ? "smooth" : "instant"
|
|
95
95
|
});
|
|
96
96
|
}, I = () => {
|
|
97
|
-
if (p || g) return p = !1, void
|
|
97
|
+
if (p || g) return p = !1, void z();
|
|
98
98
|
m = !1, t.$update(2);
|
|
99
|
-
}, k = () => {
|
|
100
|
-
f(a), a = i(I, 150);
|
|
101
99
|
}, z = () => {
|
|
102
|
-
|
|
100
|
+
f(a), a = i(I, 150);
|
|
101
|
+
}, k = () => {
|
|
102
|
+
$ = w(), m && (x = !0), l && t.$update(6, l()), t.$update(1, v()), z();
|
|
103
103
|
}, M = e => {
|
|
104
104
|
if (p || !t.$isScrolling() || e.ctrlKey) return;
|
|
105
105
|
const o = w() - $;
|
|
106
106
|
150 > o && 50 < o && (n ? e.deltaX : e.deltaY) && (p = !0);
|
|
107
107
|
}, T = () => {
|
|
108
108
|
g = !0, m = x = !1;
|
|
109
|
-
},
|
|
109
|
+
}, L = () => {
|
|
110
110
|
g = !1, d() && (m = !0);
|
|
111
111
|
};
|
|
112
|
-
return e.addEventListener("scroll",
|
|
112
|
+
return e.addEventListener("scroll", k), e.addEventListener("wheel", M, {
|
|
113
113
|
passive: !0
|
|
114
114
|
}), e.addEventListener("touchstart", T, {
|
|
115
115
|
passive: !0
|
|
116
|
-
}), e.addEventListener("touchend",
|
|
116
|
+
}), e.addEventListener("touchend", L, {
|
|
117
117
|
passive: !0
|
|
118
118
|
}), {
|
|
119
|
+
i: k,
|
|
119
120
|
l: () => {
|
|
120
|
-
e.removeEventListener("scroll",
|
|
121
|
-
e.removeEventListener("touchend",
|
|
121
|
+
e.removeEventListener("scroll", k), e.removeEventListener("wheel", M), e.removeEventListener("touchstart", T),
|
|
122
|
+
e.removeEventListener("touchend", L), f(a);
|
|
122
123
|
},
|
|
123
|
-
|
|
124
|
-
const [e, n] = t
|
|
124
|
+
u: () => {
|
|
125
|
+
const [e, n] = t.$();
|
|
125
126
|
if (!e) return;
|
|
126
127
|
x && s && s(), x = !1;
|
|
127
128
|
const r = t.$getScrollOffset(), l = r + e, i = t.$getStartSpacerSize() + t.$getTotalSize() - t.$getViewportSize();
|
|
@@ -130,7 +131,7 @@ t), m = (t, e, o) => {
|
|
|
130
131
|
behavior: "instant"
|
|
131
132
|
}), n && (c && c(), t.$getViewportSize() > t.$getTotalSize() && t.$update(1, v()));
|
|
132
133
|
},
|
|
133
|
-
|
|
134
|
+
p: (e, o) => {
|
|
134
135
|
let n, r, s;
|
|
135
136
|
c && c();
|
|
136
137
|
const l = c = () => {
|
|
@@ -143,7 +144,8 @@ t), m = (t, e, o) => {
|
|
|
143
144
|
}
|
|
144
145
|
t.$update(7), y(e(), o);
|
|
145
146
|
}
|
|
146
|
-
}
|
|
147
|
+
};
|
|
148
|
+
o && t.$update(8, e()), (() => {
|
|
147
149
|
if (n) return;
|
|
148
150
|
let e;
|
|
149
151
|
s = t.$subscribe(2, () => {
|
|
@@ -151,11 +153,10 @@ t), m = (t, e, o) => {
|
|
|
151
153
|
e = !1, a();
|
|
152
154
|
}));
|
|
153
155
|
}), a();
|
|
154
|
-
};
|
|
155
|
-
o ? (t.$update(8, e()), u($)) : $();
|
|
156
|
+
})();
|
|
156
157
|
}
|
|
157
158
|
};
|
|
158
|
-
},
|
|
159
|
+
}, R = (t, e) => {
|
|
159
160
|
t.$scroll(() => e);
|
|
160
161
|
}, O = (t, e, r, s, c, i, f) => {
|
|
161
162
|
const u = e.$getItemsLength(), a = r.$getPinnedStart(), $ = r.$getTrailStart();
|
|
@@ -183,82 +184,82 @@ t), m = (t, e, o) => {
|
|
|
183
184
|
exports.ACTION_ITEMS_LENGTH_CHANGE = 5, exports.ACTION_RELAYOUT = 9, exports.ACTION_START_OFFSET_CHANGE = 6,
|
|
184
185
|
exports.UPDATE_SCROLL_END_EVENT = 8, exports.UPDATE_SCROLL_EVENT = 4, exports.UPDATE_VIRTUAL_STATE = 1,
|
|
185
186
|
exports.createContainerDriver = (t, e) => {
|
|
186
|
-
let o, n, r = a();
|
|
187
|
-
const
|
|
188
|
-
const
|
|
189
|
-
for (const {target:
|
|
190
|
-
|
|
191
|
-
|
|
187
|
+
let o, n, r = a(), s = !0;
|
|
188
|
+
const l = /* @__PURE__ */ new WeakMap, c = T(r => {
|
|
189
|
+
const c = [];
|
|
190
|
+
for (const {target: i, contentRect: {width: f, height: u}} of r) if (i === o) f || u ? (s || n.i(),
|
|
191
|
+
s = !0, t.$update(4, e ? f : u)) : s = !1; else if (i.offsetParent) {
|
|
192
|
+
const t = l.get(i);
|
|
193
|
+
null != t && c.push([ t, e ? f : u ]);
|
|
192
194
|
}
|
|
193
|
-
|
|
195
|
+
c.length && t.$update(3, c);
|
|
194
196
|
});
|
|
195
197
|
return {
|
|
196
|
-
$observe(s,
|
|
197
|
-
|
|
198
|
-
const t = e ? "overflowX" : "overflowY", o =
|
|
198
|
+
$observe(s, l = s.parentElement) {
|
|
199
|
+
c.t(o = l), n = L(t, l, l, e, e && "rtl" === getComputedStyle(l).direction, () => {
|
|
200
|
+
const t = e ? "overflowX" : "overflowY", o = l.style, n = o[t];
|
|
199
201
|
o[t] = "hidden", i(() => {
|
|
200
202
|
o[t] = n;
|
|
201
203
|
});
|
|
202
204
|
}), r[1](!0);
|
|
203
205
|
},
|
|
204
206
|
$dispose() {
|
|
205
|
-
|
|
207
|
+
c.l(), n && n.l(), r[1](!1), r = a();
|
|
206
208
|
},
|
|
207
|
-
$observeItem: (t, e) => (
|
|
208
|
-
|
|
209
|
+
$observeItem: (t, e) => (l.set(t, e), c.t(t), () => {
|
|
210
|
+
l.delete(t), c.o(t);
|
|
209
211
|
}),
|
|
210
212
|
async $scroll(t, e) {
|
|
211
|
-
await r[0] && n
|
|
213
|
+
await r[0] && n.p(t, e);
|
|
212
214
|
},
|
|
213
215
|
$effect() {
|
|
214
|
-
n && n.
|
|
216
|
+
n && n.u();
|
|
215
217
|
},
|
|
216
218
|
$getBaseOffset: t.$getStartSpacerSize
|
|
217
219
|
};
|
|
218
220
|
}, exports.createContainerGridDriver = (t, e) => {
|
|
219
|
-
let o, n, r, s = a();
|
|
220
|
-
const
|
|
221
|
-
const
|
|
222
|
-
for (const {target:
|
|
223
|
-
e.$update(4,
|
|
224
|
-
const t =
|
|
225
|
-
null != t &&
|
|
221
|
+
let o, n, r, s = a(), l = !0;
|
|
222
|
+
const c = /* @__PURE__ */ new WeakMap, f = /* @__PURE__ */ new WeakMap, u = T(s => {
|
|
223
|
+
const i = [], u = [];
|
|
224
|
+
for (const {target: a, contentRect: {width: $, height: p}} of s) if (a === o) $ || p ? (l || (n.i(),
|
|
225
|
+
r.i()), l = !0, t.$update(4, p), e.$update(4, $)) : l = !1; else if (a.offsetParent) {
|
|
226
|
+
const t = c.get(a), e = f.get(a);
|
|
227
|
+
null != t && i.push([ t, p ]), null != e && u.push([ e, $ ]);
|
|
226
228
|
}
|
|
227
|
-
|
|
229
|
+
i.length && t.$update(3, i), u.length && e.$update(3, u);
|
|
228
230
|
});
|
|
229
231
|
return {
|
|
230
232
|
async $scroll(t, e) {
|
|
231
|
-
await s[0] && (t ? r : n)
|
|
233
|
+
await s[0] && (t ? r : n).p(e);
|
|
232
234
|
},
|
|
233
|
-
$observe(l) {
|
|
234
|
-
|
|
235
|
-
f
|
|
236
|
-
const u = (t, e) => R(t, c, c, e, e && "rtl" === getComputedStyle(c).direction, () => {
|
|
235
|
+
$observe(l, c = l.parentElement) {
|
|
236
|
+
u.t(o = c);
|
|
237
|
+
const f = (t, e) => L(t, c, c, e, e && "rtl" === getComputedStyle(c).direction, () => {
|
|
237
238
|
const t = e ? "overflowX" : "overflowY", o = c.style, n = o[t];
|
|
238
239
|
o[t] = "hidden", i(() => {
|
|
239
240
|
o[t] = n;
|
|
240
241
|
});
|
|
241
242
|
});
|
|
242
|
-
n =
|
|
243
|
+
n = f(t, !1), r = f(e, !0), s[1](!0);
|
|
243
244
|
},
|
|
244
245
|
$dispose() {
|
|
245
|
-
|
|
246
|
+
u.l(), n && n.l(), r && r.l(), s[1](!1), s = a();
|
|
246
247
|
},
|
|
247
|
-
$observeItem: (t, e, o) => (null != e &&
|
|
248
|
-
|
|
249
|
-
|
|
248
|
+
$observeItem: (t, e, o) => (null != e && c.set(t, e), null != o && f.set(t, o),
|
|
249
|
+
u.t(t), () => {
|
|
250
|
+
c.delete(t), f.delete(t), u.o(t);
|
|
250
251
|
}),
|
|
251
252
|
$effect() {
|
|
252
|
-
n && n.
|
|
253
|
+
n && n.u(), r && r.u();
|
|
253
254
|
}
|
|
254
255
|
};
|
|
255
256
|
}, exports.createGridLayout = (t, e, r = 0) => {
|
|
256
257
|
let i = w(t);
|
|
257
258
|
const f = "number" == typeof e, u = "auto" === e;
|
|
258
259
|
let a = (f ? e : 40) + r, $ = -1, p = 0, g = u, d = 0, h = 0, b = null;
|
|
259
|
-
const S = [], v = [], y = [], I = t => u || !!y[t],
|
|
260
|
+
const S = [], v = [], y = [], I = t => u || !!y[t], z = () => {
|
|
260
261
|
S.length || m(S, i);
|
|
261
|
-
},
|
|
262
|
+
}, k = t => {
|
|
262
263
|
const e = S[t];
|
|
263
264
|
return -1 === e ? a : e;
|
|
264
265
|
}, M = t => {
|
|
@@ -267,25 +268,25 @@ exports.createContainerDriver = (t, e) => {
|
|
|
267
268
|
if ($ >= t) return v[t];
|
|
268
269
|
$ < 0 && (v[0] = 0, $ = 0);
|
|
269
270
|
let e = $, o = v[e];
|
|
270
|
-
for (;e < t; ) o +=
|
|
271
|
+
for (;e < t; ) o += k(e), v[++e] = o;
|
|
271
272
|
return $ = t, o;
|
|
272
273
|
}, T = (t, e) => {
|
|
273
274
|
S[t] = e, $ = o(t, $);
|
|
274
|
-
},
|
|
275
|
+
}, L = t => S.length ? x(M, i, t) : a ? l(s(t / a), 0, i - 1) : 0, R = () => o(d, i), O = () => n(i - h, R()), E = t => (S.length ? k(t) : a) - r;
|
|
275
276
|
return {
|
|
276
277
|
$getRange: (t, e) => {
|
|
277
|
-
const o = M(
|
|
278
|
-
return [
|
|
278
|
+
const o = M(R()), s = M(i) - M(O()), l = t + (o ? o - r : 0);
|
|
279
|
+
return [ L(l), L(n(l, e - (s ? s - r : 0))) ];
|
|
279
280
|
},
|
|
280
|
-
$findIndex:
|
|
281
|
+
$findIndex: L,
|
|
281
282
|
$getItemOffset: M,
|
|
282
|
-
$getItemSize:
|
|
283
|
+
$getItemSize: E,
|
|
283
284
|
$resize: (t, e, o, s) => {
|
|
284
|
-
let l = t.reduce((t, [o, n]) => I(o) && e(o) ? t + (n -
|
|
285
|
-
for (const [e, o] of t) I(e) && (
|
|
285
|
+
let l = t.reduce((t, [o, n]) => I(o) && e(o) ? t + (n - E(o)) : t, 0);
|
|
286
|
+
for (const [e, o] of t) I(e) && (z(), p += -1 === S[e] ? o : o - E(e), T(e, o + r));
|
|
286
287
|
if (g && s && p > s) {
|
|
287
288
|
let t = 0;
|
|
288
|
-
const e =
|
|
289
|
+
const e = L(o + l), r = [];
|
|
289
290
|
S.forEach((o, n) => {
|
|
290
291
|
-1 !== o && (o && r.push(o), n < e && t++);
|
|
291
292
|
}), $ = -1, c(r);
|
|
@@ -309,7 +310,7 @@ exports.createContainerDriver = (t, e) => {
|
|
|
309
310
|
$setPinned: (t = 0, e = 0) => {
|
|
310
311
|
d = t, h = e;
|
|
311
312
|
},
|
|
312
|
-
$getPinnedStart:
|
|
313
|
+
$getPinnedStart: R,
|
|
313
314
|
$getTrailStart: O,
|
|
314
315
|
$getSizes: (t, e) => "number" == typeof e ? f ? e : null : f || u || "auto" === e ? null : t.map(t => null != t ? t[e] : null),
|
|
315
316
|
$relayout: (t, e) => {
|
|
@@ -317,12 +318,12 @@ exports.createContainerDriver = (t, e) => {
|
|
|
317
318
|
if ("number" == typeof t) {
|
|
318
319
|
const o = t + r;
|
|
319
320
|
if (o === a) return;
|
|
320
|
-
const n =
|
|
321
|
+
const n = L(e) * (o - a);
|
|
321
322
|
return a = o, n;
|
|
322
323
|
}
|
|
323
324
|
if (t === b && i === y.length) return;
|
|
324
|
-
b = t, y.length = i,
|
|
325
|
-
const o =
|
|
325
|
+
b = t, y.length = i, z();
|
|
326
|
+
const o = L(e), n = M(o);
|
|
326
327
|
let s;
|
|
327
328
|
for (let e = 0; e < i; e++) {
|
|
328
329
|
const o = t[e], n = "number" != typeof o;
|
|
@@ -338,30 +339,30 @@ exports.createContainerDriver = (t, e) => {
|
|
|
338
339
|
}, exports.createGridPlan = (t, r, [s, i], [f, u], a, $ = e, p = e, g) => {
|
|
339
340
|
const d = t.$getLength(), m = r.$getLength(), x = t.$getPinnedStart(), w = t.$getTrailStart(), v = r.$getPinnedStart(), T = r.$getTrailStart();
|
|
340
341
|
s = l(s, x, w), i = o(i, w - 1), f = l(f, v, T), u = o(u, T - 1);
|
|
341
|
-
const
|
|
342
|
-
for (const t of p) t.rowIndex < d && t.colIndex < m && (
|
|
343
|
-
const
|
|
342
|
+
const L = b($, x, w), R = n(v - 1, 0), O = [], E = [], _ = [];
|
|
343
|
+
for (const t of p) t.rowIndex < d && t.colIndex < m && (_.push(t), O.push(t.rowIndex));
|
|
344
|
+
const q = _.length, C = S(L, s, w), P = C < 0 ? -1 : L[C];
|
|
344
345
|
P >= 0 && O.push(P);
|
|
345
346
|
const W = y(c(O), d, x, s, i, w);
|
|
346
347
|
for (let t = 0; t < W.length; t++) for (const r of a.get(W[t]) || e) {
|
|
347
|
-
const {rowIndex: e, colIndex: l} = r, c = I(r, d), a =
|
|
348
|
+
const {rowIndex: e, colIndex: l} = r, c = I(r, d), a = z(r, m);
|
|
348
349
|
if ((t < 1 || W[t - 1] < e) && l < m && (c - e > 1 || a - l > 1)) {
|
|
349
350
|
let t = (e < x || n(e, s) < o(c, i + 1) || w < c || P >= e && P < c) && (l < v || n(l, f) < o(a, u + 1) || T < a);
|
|
350
|
-
for (let o = 0; !t && o <
|
|
351
|
-
const n =
|
|
351
|
+
for (let o = 0; !t && o < q; o++) {
|
|
352
|
+
const n = _[o];
|
|
352
353
|
t = n.rowIndex >= e && n.rowIndex < c && n.colIndex >= l && n.colIndex < a;
|
|
353
354
|
}
|
|
354
|
-
t &&
|
|
355
|
+
t && _.push(r);
|
|
355
356
|
}
|
|
356
357
|
}
|
|
357
|
-
for (const {rowIndex: t, colIndex: e} of
|
|
358
|
-
const o = S(
|
|
359
|
-
O.push(t), o >= 0 && O.push(
|
|
358
|
+
for (const {rowIndex: t, colIndex: e} of _) {
|
|
359
|
+
const o = S(L, t, w);
|
|
360
|
+
O.push(t), o >= 0 && O.push(L[o]), E.push(e);
|
|
360
361
|
}
|
|
361
|
-
c(O), c(
|
|
362
|
-
const A = y(O, d, x, s, i, w), B = y(
|
|
363
|
-
for (const t of
|
|
364
|
-
const e = I(t, d), o =
|
|
362
|
+
c(O), c(E);
|
|
363
|
+
const A = y(O, d, x, s, i, w), B = y(E, m, v, f, u, T), J = A.length, V = B.length, X = /* @__PURE__ */ new Map, Y = [], j = [];
|
|
364
|
+
for (const t of _) {
|
|
365
|
+
const e = I(t, d), o = z(t, m);
|
|
365
366
|
Y.push(e), j.push(o);
|
|
366
367
|
const n = B.indexOf(t.colIndex);
|
|
367
368
|
for (let r = A.indexOf(t.rowIndex); r < J && A[r] < e; r++) {
|
|
@@ -371,39 +372,39 @@ exports.createContainerDriver = (t, e) => {
|
|
|
371
372
|
}
|
|
372
373
|
const D = [];
|
|
373
374
|
for (const t of B) D.push(!r.$isMeasurable(t) && null);
|
|
374
|
-
const
|
|
375
|
-
let
|
|
375
|
+
const G = [], U = t.$getItemOffset(x), Z = [];
|
|
376
|
+
let F = Z;
|
|
376
377
|
const H = h.get(t), K = /* @__PURE__ */ new Map;
|
|
377
378
|
for (const e of A) {
|
|
378
|
-
const o = e < x, l = e >= w, c = S(
|
|
379
|
+
const o = e < x, l = e >= w, c = S(L, e, w), a = o ? 0 : l ? w : c < 0 ? -1 : L[c];
|
|
379
380
|
if (e === a) {
|
|
380
|
-
const t = o ? x : l ? d : c + 1 <
|
|
381
|
+
const t = o ? x : l ? d : c + 1 < L.length ? L[c + 1] : w;
|
|
381
382
|
Y.push(t);
|
|
382
383
|
const e = [];
|
|
383
|
-
|
|
384
|
+
Z.push({
|
|
384
385
|
$key: o ? -1 : l ? -2 : -3 - a,
|
|
385
386
|
$rows: e,
|
|
386
387
|
$style: M(a, t, o || l ? 0 : null, l ? "bottom" : "top", 4)
|
|
387
|
-
}),
|
|
388
|
-
} else a < 0 && (
|
|
389
|
-
const $ = c >= 0 && e === a, p = o || l || e === P || e >= s && e <= i, h = $ ?
|
|
390
|
-
let
|
|
388
|
+
}), F = e;
|
|
389
|
+
} else a < 0 && (F = Z);
|
|
390
|
+
const $ = c >= 0 && e === a, p = o || l || e === P || e >= s && e <= i, h = $ ? U : null, b = e * m, y = H && H.get(e), k = y && y.$cells, O = [];
|
|
391
|
+
let E = 0, _ = !t.$isMeasurable(e) && null, q = e + 1, C = !1;
|
|
391
392
|
for (let t = 0; t < V; t++) {
|
|
392
393
|
const s = B[t], l = s < v, c = s >= T, i = l || c || s >= f && s <= u, a = X.get(b + s);
|
|
393
394
|
if (a ? a.rowIndex === e && a.colIndex === s : p && i) {
|
|
394
|
-
const i = a ? I(a, d) : e + 1, f = a ?
|
|
395
|
+
const i = a ? I(a, d) : e + 1, f = a ? z(a, m) : s + 1, u = i - e, p = f - s, x = u > 1, w = p > 1, h = x || w;
|
|
395
396
|
let b, S;
|
|
396
|
-
|
|
397
|
+
q = n(q, i);
|
|
397
398
|
const v = l ? r.$getItemOffset(s) : null, y = c ? r.$getItemOffset(m) - r.$getItemOffset(f) : null;
|
|
398
|
-
!1 !==
|
|
399
|
-
const M = o ? "columnheader" : s ===
|
|
399
|
+
!1 !== _ || x || (b = e, _ = !0), !1 !== D[t] || w || (S = s, D[t] = !0);
|
|
400
|
+
const M = o ? "columnheader" : s === R && (l || $) ? "rowheader" : "cell", T = h ? u : void 0, L = h ? p : void 0, P = "cell" !== M && g && g.rowIndex === e && g.colIndex === s ? g.order : void 0;
|
|
400
401
|
let W;
|
|
401
|
-
if (
|
|
402
|
-
const t =
|
|
403
|
-
for (;
|
|
404
|
-
|
|
402
|
+
if (k) {
|
|
403
|
+
const t = k.length;
|
|
404
|
+
for (;E < t && k[E].$col < s; ) E++;
|
|
405
|
+
E < t && k[E].$col === s && (W = k[E]);
|
|
405
406
|
}
|
|
406
|
-
if (!W || W.$rowSpan !== T || W.$colSpan !==
|
|
407
|
+
if (!W || W.$rowSpan !== T || W.$colSpan !== L || W.$start !== v || W.$end !== y || W.$measureRow !== b || W.$measureCol !== S || W.$role !== M || W.$sort !== P) {
|
|
407
408
|
let t = "1/l" + s;
|
|
408
409
|
h && (t += "/l" + i + "/l" + f);
|
|
409
410
|
const e = {
|
|
@@ -416,7 +417,7 @@ exports.createContainerDriver = (t, e) => {
|
|
|
416
417
|
e.position = "sticky", e.zIndex = 2), W = {
|
|
417
418
|
$col: s,
|
|
418
419
|
$rowSpan: T,
|
|
419
|
-
$colSpan:
|
|
420
|
+
$colSpan: L,
|
|
420
421
|
$measureRow: b,
|
|
421
422
|
$measureCol: S,
|
|
422
423
|
$role: M,
|
|
@@ -424,25 +425,25 @@ exports.createContainerDriver = (t, e) => {
|
|
|
424
425
|
$style: e,
|
|
425
426
|
$start: v,
|
|
426
427
|
$end: y
|
|
427
|
-
},
|
|
428
|
+
}, C = !0;
|
|
428
429
|
}
|
|
429
430
|
O.push(W);
|
|
430
431
|
}
|
|
431
432
|
}
|
|
432
|
-
if (
|
|
433
|
-
const t = y && !
|
|
433
|
+
if (G.push(_), O.length) {
|
|
434
|
+
const t = y && !C && y.$cells.length === O.length && y.$top === h ? y : {
|
|
434
435
|
$row: e,
|
|
435
436
|
$cells: O,
|
|
436
|
-
$style: M(e,
|
|
437
|
+
$style: M(e, q, h, "top", 3),
|
|
437
438
|
$top: h
|
|
438
439
|
};
|
|
439
|
-
K.set(e, t),
|
|
440
|
+
K.set(e, t), F.push(t);
|
|
440
441
|
}
|
|
441
442
|
}
|
|
442
443
|
return h.set(t, K), {
|
|
443
|
-
$rowTemplate:
|
|
444
|
-
$colTemplate:
|
|
445
|
-
$groups:
|
|
444
|
+
$rowTemplate: k(t, A, G, c(Y), "max-content", d),
|
|
445
|
+
$colTemplate: k(r, B, D, c(j), "minmax(max-content,auto)", m),
|
|
446
|
+
$groups: Z
|
|
446
447
|
};
|
|
447
448
|
}, exports.createGridSpanIndex = (t = e) => {
|
|
448
449
|
const o = /* @__PURE__ */ new Map;
|
|
@@ -501,19 +502,96 @@ exports.createContainerDriver = (t, e) => {
|
|
|
501
502
|
$isEstimating: () => f,
|
|
502
503
|
$snapshot: () => [ $.slice(), s ]
|
|
503
504
|
};
|
|
505
|
+
}, exports.createMasonryLayout = (t, e, r = 0, s, l) => {
|
|
506
|
+
let i = n(e, 1), f = i, u = r, a = l && l[1] || s || 40, $ = -1, p = s ? void 0 : /* @__PURE__ */ new Set, g = !s;
|
|
507
|
+
const d = l && l[0], w = d ? m(d.slice(0, o(t, d.length)), n(0, t - d.length)) : m([], t), h = [], b = [], S = [], v = t => {
|
|
508
|
+
const e = w[t];
|
|
509
|
+
return -1 === e ? a : e;
|
|
510
|
+
}, y = e => {
|
|
511
|
+
if (e = o(e, t - 1), $ >= e) return;
|
|
512
|
+
const s = [], l = [];
|
|
513
|
+
for (let t = 0; t < i; t++) s.push(0), l.push(-1);
|
|
514
|
+
for (let t = $, e = i; t >= 0 && e; t--) {
|
|
515
|
+
const o = b[t];
|
|
516
|
+
-1 === l[o] && (l[o] = t, s[o] = h[t] + v(t), e--);
|
|
517
|
+
}
|
|
518
|
+
for (;$ < e; ) {
|
|
519
|
+
const t = ++$;
|
|
520
|
+
let e = 0, o = 1 / 0, c = 1 / 0;
|
|
521
|
+
for (let t = 0; t < i; t++) {
|
|
522
|
+
const n = s[t] + (l[t] >= 0 ? r : 0);
|
|
523
|
+
(n < o || n === o && l[t] < c) && (e = t, o = n, c = l[t]);
|
|
524
|
+
}
|
|
525
|
+
h[t] = o, b[t] = e, s[e] = o + v(t), l[e] = t, S[t] = n(t ? S[t - 1] : 0, s[e]);
|
|
526
|
+
}
|
|
527
|
+
}, I = e => e >= t ? k() : (y(e), h[e]), z = t => (y(t), S[t]), k = () => t ? z(t - 1) : 0, M = e => {
|
|
528
|
+
if (!t) return 0;
|
|
529
|
+
const o = x(z, t, e);
|
|
530
|
+
return z(o) <= e ? o + 1 : o;
|
|
531
|
+
};
|
|
532
|
+
return {
|
|
533
|
+
$getRange: (e, n) => {
|
|
534
|
+
const r = x(I, t, n);
|
|
535
|
+
return [ o(M(e), r), r ];
|
|
536
|
+
},
|
|
537
|
+
$findIndex: e => x(I, t, e),
|
|
538
|
+
$getItemOffset: I,
|
|
539
|
+
$getItemSize: v,
|
|
540
|
+
$isSizeEqual: (t, e = -1) => w[t] === e,
|
|
541
|
+
$resize: (e, n, s, l) => {
|
|
542
|
+
let f = M(s);
|
|
543
|
+
for (;f > 0 && !n(f - 1); ) f--;
|
|
544
|
+
for (;f < t && n(f); ) f++;
|
|
545
|
+
const u = I(f);
|
|
546
|
+
for (const [t, n] of e) w[t] = n, p && p.add(t), $ = o(t - 1, $);
|
|
547
|
+
let d = I(f) - u;
|
|
548
|
+
if (p && l) {
|
|
549
|
+
const t = [];
|
|
550
|
+
let e = 0;
|
|
551
|
+
if (p.forEach(o => {
|
|
552
|
+
const n = w[o];
|
|
553
|
+
n > 0 && (t.push(n), e += n + r);
|
|
554
|
+
}), e > l * i) {
|
|
555
|
+
c(t);
|
|
556
|
+
const e = t.length, o = e / 2 | 0, n = e % 2 == 0 ? (t[o - 1] + t[o]) / 2 : t[o], r = M(s + d), l = I(r);
|
|
557
|
+
a = n, $ = -1, d += I(r) - l, p = void 0, g = !1;
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
return d;
|
|
561
|
+
},
|
|
562
|
+
$getTotalSize: k,
|
|
563
|
+
$getLength: () => t,
|
|
564
|
+
$setLength: e => {
|
|
565
|
+
const n = e - t;
|
|
566
|
+
return $ = o(e - 1, $), t = e, n > 0 ? m(w, n) : w.splice(n), 0;
|
|
567
|
+
},
|
|
568
|
+
$relayout: (t, e) => {
|
|
569
|
+
if (f === i && u === r) return;
|
|
570
|
+
const o = M(e), n = I(o);
|
|
571
|
+
return i = f, r = u, $ = -1, p = s ? void 0 : /* @__PURE__ */ new Set, I(o) - n;
|
|
572
|
+
},
|
|
573
|
+
$setOptions: (t, e = 0) => {
|
|
574
|
+
f = n(t, 1), u = e;
|
|
575
|
+
},
|
|
576
|
+
$isEstimating: () => g,
|
|
577
|
+
$snapshot: () => [ w.slice(), a ],
|
|
578
|
+
$getLanes: () => i,
|
|
579
|
+
$getGap: () => r,
|
|
580
|
+
$getItemLane: t => (y(t), b[t])
|
|
581
|
+
};
|
|
504
582
|
}, exports.createVirtualStore = ({$getRange: t, $findIndex: e, $getItemOffset: s, $getItemSize: l, $isSizeEqual: c, $getTotalSize: i, $getLength: f, $setLength: u, $isEstimating: a, $resize: $, $relayout: p}, g = 0) => {
|
|
505
|
-
let m = !!g, x = 1, w = 0, h = 0, b = 0, S = 0, v = 0, y = 0, I = 0,
|
|
506
|
-
const
|
|
507
|
-
if (2 ===
|
|
508
|
-
if (
|
|
509
|
-
const e =
|
|
510
|
-
return 1 !== I && 0 ===
|
|
511
|
-
},
|
|
512
|
-
t && (d() && 0 !== I ||
|
|
583
|
+
let m = !!g, x = 1, w = 0, h = 0, b = 0, S = 0, v = 0, y = 0, I = 0, z = 0, k = null, M = [ 0, m ? n(g - 1, 0) : -1 ], T = !1;
|
|
584
|
+
const L = /* @__PURE__ */ new Set, R = () => b - h, O = () => R() + v + S, E = t => s(t) - v, _ = t => {
|
|
585
|
+
if (2 === z) return !0;
|
|
586
|
+
if (k && 1 === z) return t < k[0];
|
|
587
|
+
const e = R(), o = E(t), n = l(t);
|
|
588
|
+
return 1 !== I && 0 === z ? o + n <= e : o < e && o + n < e + w;
|
|
589
|
+
}, q = t => {
|
|
590
|
+
t && (d() && 0 !== I || k && 1 === z ? v += t : S += t);
|
|
513
591
|
};
|
|
514
592
|
return {
|
|
515
593
|
$dispose: () => {
|
|
516
|
-
|
|
594
|
+
L.clear();
|
|
517
595
|
},
|
|
518
596
|
$getStateVersion: () => x,
|
|
519
597
|
$getRange: (e = 200) => {
|
|
@@ -522,13 +600,13 @@ exports.createContainerDriver = (t, e) => {
|
|
|
522
600
|
if (y) [r, s] = M; else {
|
|
523
601
|
let l = n(0, O()), c = l + w;
|
|
524
602
|
a() || (e = n(0, e), 1 !== I && (l -= e), 2 !== I && (c += e)), [r, s] = M = t(n(0, l), n(0, c)),
|
|
525
|
-
|
|
603
|
+
k && (r = o(r, k[0]), s = n(s, k[1]));
|
|
526
604
|
}
|
|
527
605
|
return [ n(r, 0), o(s, f() - 1) ];
|
|
528
606
|
},
|
|
529
607
|
$findItemIndex: t => e(t - h),
|
|
530
608
|
$isUnmeasuredItem: c,
|
|
531
|
-
$getItemOffset:
|
|
609
|
+
$getItemOffset: E,
|
|
532
610
|
$getItemSize: l,
|
|
533
611
|
$getItemsLength: f,
|
|
534
612
|
$getScrollOffset: () => b,
|
|
@@ -536,11 +614,11 @@ exports.createContainerDriver = (t, e) => {
|
|
|
536
614
|
$getViewportSize: () => w,
|
|
537
615
|
$getStartSpacerSize: () => h,
|
|
538
616
|
$getTotalSize: i,
|
|
539
|
-
|
|
617
|
+
$: () => (y = S, S = 0, [ y, 2 === z ]),
|
|
540
618
|
$subscribe: (t, e) => {
|
|
541
619
|
const o = [ t, e ];
|
|
542
|
-
return
|
|
543
|
-
|
|
620
|
+
return L.add(o), () => {
|
|
621
|
+
L.delete(o);
|
|
544
622
|
};
|
|
545
623
|
},
|
|
546
624
|
$update: (e, o) => {
|
|
@@ -548,25 +626,25 @@ exports.createContainerDriver = (t, e) => {
|
|
|
548
626
|
switch (e) {
|
|
549
627
|
case 1:
|
|
550
628
|
{
|
|
551
|
-
if (o === b && 0 ===
|
|
629
|
+
if (o === b && 0 === z) break;
|
|
552
630
|
const t = y;
|
|
553
631
|
y = 0;
|
|
554
632
|
const e = o - b, n = r(e);
|
|
555
|
-
t && n < r(t) + 1 || 0 !==
|
|
556
|
-
const c =
|
|
633
|
+
t && n < r(t) + 1 || 0 !== z || (I = e < 0 ? 2 : 1), m && (m = !1), b = o, l = 4;
|
|
634
|
+
const c = R();
|
|
557
635
|
c >= -w && c <= i() && (l += 1, s = n > w);
|
|
558
636
|
break;
|
|
559
637
|
}
|
|
560
638
|
|
|
561
639
|
case 2:
|
|
562
|
-
l = 8, 0 !== I && (n = !0, l += 1), I = 0,
|
|
640
|
+
l = 8, 0 !== I && (n = !0, l += 1), I = 0, z = 0, k = null;
|
|
563
641
|
break;
|
|
564
642
|
|
|
565
643
|
case 3:
|
|
566
644
|
{
|
|
567
645
|
const t = o.filter(([t, e]) => !c(t, e));
|
|
568
646
|
if (!t.length) break;
|
|
569
|
-
|
|
647
|
+
q($(t, _, O(), w)), l = 3, s = !0;
|
|
570
648
|
break;
|
|
571
649
|
}
|
|
572
650
|
|
|
@@ -575,7 +653,7 @@ exports.createContainerDriver = (t, e) => {
|
|
|
575
653
|
break;
|
|
576
654
|
|
|
577
655
|
case 5:
|
|
578
|
-
o[1] ? (
|
|
656
|
+
o[1] ? (q(u(o[0], !0)), z = 2, l = 1) : (u(o[0]), l = 1);
|
|
579
657
|
break;
|
|
580
658
|
|
|
581
659
|
case 6:
|
|
@@ -583,20 +661,20 @@ exports.createContainerDriver = (t, e) => {
|
|
|
583
661
|
break;
|
|
584
662
|
|
|
585
663
|
case 7:
|
|
586
|
-
|
|
664
|
+
z = 1;
|
|
587
665
|
break;
|
|
588
666
|
|
|
589
667
|
case 9:
|
|
590
668
|
{
|
|
591
669
|
const t = p(o, O());
|
|
592
|
-
null != t && (
|
|
670
|
+
null != t && (q(t), l = 3);
|
|
593
671
|
break;
|
|
594
672
|
}
|
|
595
673
|
|
|
596
674
|
case 8:
|
|
597
|
-
|
|
675
|
+
k = t(o, o + w), l = 1;
|
|
598
676
|
}
|
|
599
|
-
l && (x = 1 + (2147483647 & x), n && v && (S += v, v = 0),
|
|
677
|
+
l && (x = 1 + (2147483647 & x), n && v && (S += v, v = 0), L.forEach(([t, e]) => {
|
|
600
678
|
l & t && e(s);
|
|
601
679
|
}));
|
|
602
680
|
}
|
|
@@ -621,7 +699,7 @@ exports.createContainerDriver = (t, e) => {
|
|
|
621
699
|
};
|
|
622
700
|
a.addEventListener("resize", w), f.t($), r = () => {
|
|
623
701
|
a.removeEventListener("resize", w);
|
|
624
|
-
}, n =
|
|
702
|
+
}, n = L(t, a, $, e, d, null, x), c[1](!0);
|
|
625
703
|
},
|
|
626
704
|
$dispose() {
|
|
627
705
|
r && r(), f.l(), n && n.l(), c[1](!1), c = a();
|
|
@@ -630,10 +708,10 @@ exports.createContainerDriver = (t, e) => {
|
|
|
630
708
|
i.delete(t), f.o(t);
|
|
631
709
|
}),
|
|
632
710
|
async $scroll(t, e) {
|
|
633
|
-
await c[0] && n
|
|
711
|
+
await c[0] && n.p(t, e);
|
|
634
712
|
},
|
|
635
713
|
$effect() {
|
|
636
|
-
n && n.
|
|
714
|
+
n && n.u();
|
|
637
715
|
},
|
|
638
716
|
$getBaseOffset: () => s()
|
|
639
717
|
};
|
|
@@ -656,8 +734,8 @@ exports.getScrollSize = t => n(t.$getTotalSize(), t.$getViewportSize()), exports
|
|
|
656
734
|
for (const o in t) e += o.replace(/[A-Z]/g, t => "-" + t.toLowerCase()) + ":" + t[o] + ";";
|
|
657
735
|
return e;
|
|
658
736
|
}, exports.isBrowser = $, exports.microtask = u, exports.scrollBy = (t, e, o) => {
|
|
659
|
-
|
|
660
|
-
}, exports.scrollTo =
|
|
737
|
+
R(t, o + e.$getScrollOffset());
|
|
738
|
+
}, exports.scrollTo = R, exports.scrollToIndex = (t, e, o, {align: n, smooth: r, offset: s = 0} = {}) => {
|
|
661
739
|
if (o = l(o, 0, e.$getItemsLength() - 1), "nearest" === n) {
|
|
662
740
|
const t = e.$getItemOffset(o), r = e.$getScrollOffset();
|
|
663
741
|
if (t < r) n = "start"; else {
|