@wyxos/vibe 3.1.23 → 3.1.26
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/components/viewer-core/masonryLayout.d.ts +27 -0
- package/lib/components/viewer-core/masonryLayoutState.d.ts +22 -0
- package/lib/components/viewer-core/masonryPendingAppend.d.ts +2 -0
- package/lib/components/viewer-core/useEdgeBoundary.d.ts +2 -1
- package/lib/index.cjs +1 -1
- package/lib/index.js +1322 -1215
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Comment as e, Fragment as t, Text as n, Transition as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createSlots as l, createVNode as u, defineComponent as d, getCurrentScope as f, guardReactiveProps as p, h as m, isVNode as h, mergeProps as g, nextTick as _, normalizeClass as v, normalizeProps as y, normalizeStyle as b, onBeforeUnmount as x, onMounted as S, onScopeDispose as C, openBlock as w, reactive as T, readonly as E, ref as D, renderList as O, renderSlot as k, resolveDynamicComponent as A,
|
|
1
|
+
import { Comment as e, Fragment as t, Text as n, Transition as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createSlots as l, createVNode as u, defineComponent as d, getCurrentScope as f, guardReactiveProps as p, h as m, isVNode as h, mergeProps as g, nextTick as _, normalizeClass as v, normalizeProps as y, normalizeStyle as b, onBeforeUnmount as x, onMounted as S, onScopeDispose as C, openBlock as w, reactive as T, readonly as E, ref as D, renderList as O, renderSlot as k, resolveDynamicComponent as A, shallowRef as j, toDisplayString as M, toRef as N, triggerRef as P, unref as F, useAttrs as I, useSlots as L, vShow as R, watch as z, watchEffect as ee, withCtx as B, withDirectives as V, withModifiers as H } from "vue";
|
|
2
2
|
//#region node_modules/lucide-vue-next/dist/esm/shared/src/utils/hasA11yProp.js
|
|
3
|
-
var
|
|
3
|
+
var U = (e) => {
|
|
4
4
|
for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
|
|
5
5
|
return !1;
|
|
6
|
-
},
|
|
7
|
-
let t =
|
|
6
|
+
}, te = (e) => e === "", W = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), G = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), K = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), q = (e) => {
|
|
7
|
+
let t = K(e);
|
|
8
8
|
return t.charAt(0).toUpperCase() + t.slice(1);
|
|
9
|
-
},
|
|
9
|
+
}, J = {
|
|
10
10
|
xmlns: "http://www.w3.org/2000/svg",
|
|
11
11
|
width: 24,
|
|
12
12
|
height: 24,
|
|
@@ -16,27 +16,27 @@ var B = (e) => {
|
|
|
16
16
|
"stroke-width": 2,
|
|
17
17
|
"stroke-linecap": "round",
|
|
18
18
|
"stroke-linejoin": "round"
|
|
19
|
-
},
|
|
20
|
-
...
|
|
19
|
+
}, ne = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width": r, strokeWidth: i, "stroke-width": a, size: o = J.width, color: s = J.stroke, ...c }, { slots: l }) => m("svg", {
|
|
20
|
+
...J,
|
|
21
21
|
...c,
|
|
22
22
|
width: o,
|
|
23
23
|
height: o,
|
|
24
24
|
stroke: s,
|
|
25
|
-
"stroke-width":
|
|
26
|
-
class:
|
|
27
|
-
...!l.default && !
|
|
28
|
-
}, [...t.map((e) => m(...e)), ...l.default ? [l.default()] : []]),
|
|
25
|
+
"stroke-width": te(n) || te(r) || n === !0 || r === !0 ? Number(i || a || J["stroke-width"]) * 24 / Number(o) : i || a || J["stroke-width"],
|
|
26
|
+
class: W("lucide", c.class, ...e ? [`lucide-${G(q(e))}-icon`, `lucide-${G(e)}`] : ["lucide-icon"]),
|
|
27
|
+
...!l.default && !U(c) && { "aria-hidden": "true" }
|
|
28
|
+
}, [...t.map((e) => m(...e)), ...l.default ? [l.default()] : []]), Y = (e, t) => (n, { slots: r, attrs: i }) => m(ne, {
|
|
29
29
|
...i,
|
|
30
30
|
...n,
|
|
31
31
|
iconNode: t,
|
|
32
32
|
name: e
|
|
33
|
-
}, r),
|
|
33
|
+
}, r), X = Y("arrow-left", [["path", {
|
|
34
34
|
d: "m12 19-7-7 7-7",
|
|
35
35
|
key: "1l729n"
|
|
36
36
|
}], ["path", {
|
|
37
37
|
d: "M19 12H5",
|
|
38
38
|
key: "x3x0zl"
|
|
39
|
-
}]]),
|
|
39
|
+
}]]), re = Y("audio-lines", [
|
|
40
40
|
["path", {
|
|
41
41
|
d: "M2 10v3",
|
|
42
42
|
key: "1fnikh"
|
|
@@ -61,7 +61,7 @@ var B = (e) => {
|
|
|
61
61
|
d: "M22 10v3",
|
|
62
62
|
key: "154ddg"
|
|
63
63
|
}]
|
|
64
|
-
]),
|
|
64
|
+
]), ie = Y("clapperboard", [
|
|
65
65
|
["path", {
|
|
66
66
|
d: "m12.296 3.464 3.02 3.956",
|
|
67
67
|
key: "qash78"
|
|
@@ -78,13 +78,13 @@ var B = (e) => {
|
|
|
78
78
|
d: "m6.18 5.276 3.1 3.899",
|
|
79
79
|
key: "zjj9t3"
|
|
80
80
|
}]
|
|
81
|
-
]),
|
|
81
|
+
]), ae = Y("file", [["path", {
|
|
82
82
|
d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
|
|
83
83
|
key: "1oefj6"
|
|
84
84
|
}], ["path", {
|
|
85
85
|
d: "M14 2v5a1 1 0 0 0 1 1h5",
|
|
86
86
|
key: "wfsgrz"
|
|
87
|
-
}]]),
|
|
87
|
+
}]]), Z = Y("image-plus", [
|
|
88
88
|
["path", {
|
|
89
89
|
d: "M16 5h6",
|
|
90
90
|
key: "1vod17"
|
|
@@ -107,10 +107,10 @@ var B = (e) => {
|
|
|
107
107
|
r: "2",
|
|
108
108
|
key: "af1f0g"
|
|
109
109
|
}]
|
|
110
|
-
]), oe =
|
|
110
|
+
]), oe = Y("loader-circle", [["path", {
|
|
111
111
|
d: "M21 12a9 9 0 1 1-6.219-8.56",
|
|
112
112
|
key: "13zald"
|
|
113
|
-
}]]), se =
|
|
113
|
+
}]]), se = Y("pause", [["rect", {
|
|
114
114
|
x: "14",
|
|
115
115
|
y: "3",
|
|
116
116
|
width: "5",
|
|
@@ -124,10 +124,10 @@ var B = (e) => {
|
|
|
124
124
|
height: "18",
|
|
125
125
|
rx: "1",
|
|
126
126
|
key: "1wsw3u"
|
|
127
|
-
}]]), ce =
|
|
127
|
+
}]]), ce = Y("play", [["path", {
|
|
128
128
|
d: "M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",
|
|
129
129
|
key: "10ikf1"
|
|
130
|
-
}]]), le =
|
|
130
|
+
}]]), le = Y("triangle-alert", [
|
|
131
131
|
["path", {
|
|
132
132
|
d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
|
|
133
133
|
key: "wmoenq"
|
|
@@ -140,13 +140,13 @@ var B = (e) => {
|
|
|
140
140
|
d: "M12 17h.01",
|
|
141
141
|
key: "p32p05"
|
|
142
142
|
}]
|
|
143
|
-
]), ue =
|
|
143
|
+
]), ue = Y("volume-1", [["path", {
|
|
144
144
|
d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",
|
|
145
145
|
key: "uqj9uw"
|
|
146
146
|
}], ["path", {
|
|
147
147
|
d: "M16 9a5 5 0 0 1 0 6",
|
|
148
148
|
key: "1q6k2b"
|
|
149
|
-
}]]),
|
|
149
|
+
}]]), de = Y("volume-2", [
|
|
150
150
|
["path", {
|
|
151
151
|
d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",
|
|
152
152
|
key: "uqj9uw"
|
|
@@ -159,7 +159,7 @@ var B = (e) => {
|
|
|
159
159
|
d: "M19.364 18.364a9 9 0 0 0 0-12.728",
|
|
160
160
|
key: "ijwkga"
|
|
161
161
|
}]
|
|
162
|
-
]),
|
|
162
|
+
]), fe = Y("volume-x", [
|
|
163
163
|
["path", {
|
|
164
164
|
d: "M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",
|
|
165
165
|
key: "uqj9uw"
|
|
@@ -179,13 +179,13 @@ var B = (e) => {
|
|
|
179
179
|
key: "5ykzw1"
|
|
180
180
|
}]
|
|
181
181
|
]);
|
|
182
|
-
function fe(e, t = 150) {
|
|
183
|
-
return me(e, (e) => `${e.surface}|${e.occurrenceKey}|${e.url}|${e.kind}`, t);
|
|
184
|
-
}
|
|
185
182
|
function pe(e, t = 150) {
|
|
186
|
-
return
|
|
183
|
+
return he(e, (e) => `${e.surface}|${e.occurrenceKey}|${e.url}|${e.kind}`, t);
|
|
184
|
+
}
|
|
185
|
+
function me(e, t = 150) {
|
|
186
|
+
return he(e, (e) => `${e.surface}|${e.occurrenceKey}|${e.url}`, t);
|
|
187
187
|
}
|
|
188
|
-
function
|
|
188
|
+
function he(e, t, n) {
|
|
189
189
|
let r = [], i = /* @__PURE__ */ new Set(), a = null;
|
|
190
190
|
function o(e) {
|
|
191
191
|
let o = t(e);
|
|
@@ -209,69 +209,69 @@ function me(e, t, n) {
|
|
|
209
209
|
}
|
|
210
210
|
//#endregion
|
|
211
211
|
//#region src/components/viewer-core/dom.ts
|
|
212
|
-
function
|
|
212
|
+
function ge(e) {
|
|
213
213
|
return e instanceof HTMLElement && [
|
|
214
214
|
"INPUT",
|
|
215
215
|
"TEXTAREA",
|
|
216
216
|
"SELECT"
|
|
217
217
|
].includes(e.tagName);
|
|
218
218
|
}
|
|
219
|
-
function
|
|
219
|
+
function Q(e) {
|
|
220
220
|
return e instanceof HTMLElement && !!e.closest("[data-swipe-lock], input, textarea, select, a");
|
|
221
221
|
}
|
|
222
222
|
function _e(e) {
|
|
223
223
|
return e === "filling" || e === "initializing" || e === "loading" || e === "refreshing";
|
|
224
224
|
}
|
|
225
|
-
function
|
|
225
|
+
function ve(e) {
|
|
226
226
|
return !e || !Number.isFinite(e) || e < 1 ? 25 : Math.floor(e);
|
|
227
227
|
}
|
|
228
|
-
function
|
|
228
|
+
function ye(e) {
|
|
229
229
|
return e ?? "__vibe_initial_cursor__";
|
|
230
230
|
}
|
|
231
|
-
function
|
|
231
|
+
function be(e, t, n) {
|
|
232
232
|
return Math.min(Math.max(e, t), n);
|
|
233
233
|
}
|
|
234
234
|
//#endregion
|
|
235
235
|
//#region src/components/viewer-core/itemIdentity.ts
|
|
236
|
-
var
|
|
237
|
-
function
|
|
238
|
-
let t = e[
|
|
236
|
+
var xe = "__vibeOccurrenceKey";
|
|
237
|
+
function $(e) {
|
|
238
|
+
let t = e[xe];
|
|
239
239
|
return typeof t == "string" && t.length > 0 ? t : e.id;
|
|
240
240
|
}
|
|
241
|
-
function
|
|
241
|
+
function Se(e, t, n) {
|
|
242
242
|
let r = /* @__PURE__ */ new Map(), i = [], a = n;
|
|
243
243
|
for (let e of t) {
|
|
244
|
-
let t = r.get(e.id), n =
|
|
244
|
+
let t = r.get(e.id), n = $(e);
|
|
245
245
|
t ? t.push(n) : r.set(e.id, [n]);
|
|
246
246
|
}
|
|
247
247
|
for (let t of e) {
|
|
248
248
|
let e = r.get(t.id)?.shift() ?? `vibe-occurrence-${a += 1}`;
|
|
249
|
-
i.push(
|
|
249
|
+
i.push(Ce(t, e));
|
|
250
250
|
}
|
|
251
251
|
return {
|
|
252
252
|
items: i,
|
|
253
253
|
nextSequence: a
|
|
254
254
|
};
|
|
255
255
|
}
|
|
256
|
-
function
|
|
257
|
-
return
|
|
256
|
+
function Ce(e, t) {
|
|
257
|
+
return $(e) === t ? e : {
|
|
258
258
|
...e,
|
|
259
|
-
[
|
|
259
|
+
[xe]: t
|
|
260
260
|
};
|
|
261
261
|
}
|
|
262
262
|
//#endregion
|
|
263
263
|
//#region src/components/viewer-core/removalState.ts
|
|
264
|
-
function
|
|
264
|
+
function we() {
|
|
265
265
|
let e = D(/* @__PURE__ */ new Set()), t = D([]);
|
|
266
266
|
function n(n) {
|
|
267
|
-
let r =
|
|
267
|
+
let r = Te(n).filter((t) => !e.value.has(t));
|
|
268
268
|
if (!r.length) return { ids: [] };
|
|
269
269
|
let i = new Set(e.value);
|
|
270
270
|
for (let e of r) i.add(e);
|
|
271
271
|
return e.value = i, t.value = [...t.value, r], { ids: r };
|
|
272
272
|
}
|
|
273
273
|
function r(t) {
|
|
274
|
-
let n =
|
|
274
|
+
let n = Te(t).filter((t) => e.value.has(t));
|
|
275
275
|
if (!n.length) return { ids: [] };
|
|
276
276
|
let r = new Set(e.value);
|
|
277
277
|
for (let e of n) r.delete(e);
|
|
@@ -302,46 +302,46 @@ function $() {
|
|
|
302
302
|
undo: i
|
|
303
303
|
};
|
|
304
304
|
}
|
|
305
|
-
function
|
|
305
|
+
function Te(e) {
|
|
306
306
|
let t = Array.isArray(e) ? e : [e];
|
|
307
307
|
return Array.from(new Set(t.filter((e) => typeof e == "string" && e.length > 0)));
|
|
308
308
|
}
|
|
309
309
|
//#endregion
|
|
310
310
|
//#region src/components/viewer-core/autoBuckets.ts
|
|
311
|
-
function
|
|
311
|
+
function Ee(e) {
|
|
312
312
|
return e.flatMap((e) => e.items);
|
|
313
313
|
}
|
|
314
|
-
function
|
|
314
|
+
function De(e, t) {
|
|
315
315
|
return t.size ? e.filter((e) => !t.has(e.id)) : e;
|
|
316
316
|
}
|
|
317
|
-
function
|
|
318
|
-
return
|
|
317
|
+
function Oe(e, t) {
|
|
318
|
+
return De(e.items, t);
|
|
319
319
|
}
|
|
320
|
-
function
|
|
321
|
-
return
|
|
320
|
+
function ke(e, t) {
|
|
321
|
+
return Oe(e, t).length;
|
|
322
322
|
}
|
|
323
|
-
function
|
|
323
|
+
function Ae(e, t, n) {
|
|
324
324
|
if (n < 0) return null;
|
|
325
325
|
let r = 0;
|
|
326
326
|
for (let i of e) {
|
|
327
|
-
let e =
|
|
327
|
+
let e = Oe(i, t), a = r + e.length;
|
|
328
328
|
if (n < a) return i.cursor;
|
|
329
329
|
r = a;
|
|
330
330
|
}
|
|
331
331
|
return null;
|
|
332
332
|
}
|
|
333
|
-
function
|
|
333
|
+
function je(e, t, n) {
|
|
334
334
|
let r = [...e], i = r.findIndex((e) => e.cursor === t);
|
|
335
335
|
return i >= 0 && r.splice(i, 1, n), r;
|
|
336
336
|
}
|
|
337
|
-
function
|
|
338
|
-
let r =
|
|
337
|
+
function Me(e, t, n) {
|
|
338
|
+
let r = Se(e, t, n);
|
|
339
339
|
return {
|
|
340
340
|
items: r.items,
|
|
341
341
|
nextSequence: r.nextSequence
|
|
342
342
|
};
|
|
343
343
|
}
|
|
344
|
-
function
|
|
344
|
+
function Ne(e, t, n) {
|
|
345
345
|
let r = /* @__PURE__ */ new Map(), i = e.map((e) => ({
|
|
346
346
|
item: e,
|
|
347
347
|
matchIndex: null,
|
|
@@ -350,7 +350,7 @@ function je(e, t, n) {
|
|
|
350
350
|
for (let [e, n] of t.entries()) {
|
|
351
351
|
let t = r.get(n.id), i = {
|
|
352
352
|
index: e,
|
|
353
|
-
occurrenceKey:
|
|
353
|
+
occurrenceKey: $(n)
|
|
354
354
|
};
|
|
355
355
|
t ? t.push(i) : r.set(n.id, [i]);
|
|
356
356
|
}
|
|
@@ -360,10 +360,10 @@ function je(e, t, n) {
|
|
|
360
360
|
}
|
|
361
361
|
for (let e of i) {
|
|
362
362
|
if (e.matchIndex !== null && e.occurrenceKey) {
|
|
363
|
-
a.set(e.matchIndex,
|
|
363
|
+
a.set(e.matchIndex, Pe(e.item, e.occurrenceKey));
|
|
364
364
|
continue;
|
|
365
365
|
}
|
|
366
|
-
let t =
|
|
366
|
+
let t = Pe(e.item, `vibe-occurrence-${s += 1}`);
|
|
367
367
|
o.push(t);
|
|
368
368
|
}
|
|
369
369
|
let c = t.map((e, t) => a.get(t) ?? e);
|
|
@@ -373,19 +373,19 @@ function je(e, t, n) {
|
|
|
373
373
|
nextSequence: s
|
|
374
374
|
};
|
|
375
375
|
}
|
|
376
|
-
function
|
|
377
|
-
return
|
|
376
|
+
function Pe(e, t) {
|
|
377
|
+
return $(e) === t ? e : {
|
|
378
378
|
...e,
|
|
379
379
|
__vibeOccurrenceKey: t
|
|
380
380
|
};
|
|
381
381
|
}
|
|
382
382
|
//#endregion
|
|
383
383
|
//#region src/components/viewer-core/autoResolveState.ts
|
|
384
|
-
function
|
|
384
|
+
function Fe(e) {
|
|
385
385
|
return e instanceof DOMException && e.name === "AbortError" || e instanceof Error && (e.name === "AbortError" || e.name === "CanceledError") ? !0 : typeof e == "object" && !!e && "code" in e && e.code === "ERR_CANCELED";
|
|
386
386
|
}
|
|
387
|
-
function
|
|
388
|
-
let t =
|
|
387
|
+
function Ie(e) {
|
|
388
|
+
let t = Me(e.nextItems, e.previousItems, e.sequence);
|
|
389
389
|
return {
|
|
390
390
|
bucket: {
|
|
391
391
|
cursor: e.cursor,
|
|
@@ -397,8 +397,8 @@ function Pe(e) {
|
|
|
397
397
|
nextSequence: t.nextSequence
|
|
398
398
|
};
|
|
399
399
|
}
|
|
400
|
-
function
|
|
401
|
-
let t =
|
|
400
|
+
function Le(e) {
|
|
401
|
+
let t = Ne(e.nextItems, e.previousItems, e.sequence);
|
|
402
402
|
return {
|
|
403
403
|
bucket: {
|
|
404
404
|
cursor: e.cursor,
|
|
@@ -411,7 +411,7 @@ function Fe(e) {
|
|
|
411
411
|
nextSequence: t.nextSequence
|
|
412
412
|
};
|
|
413
413
|
}
|
|
414
|
-
function
|
|
414
|
+
function Re(e, t, n, r) {
|
|
415
415
|
if (!e.length) return r ? null : {
|
|
416
416
|
buckets: [],
|
|
417
417
|
canceled: r,
|
|
@@ -421,11 +421,11 @@ function Ie(e, t, n, r) {
|
|
|
421
421
|
return {
|
|
422
422
|
buckets: i,
|
|
423
423
|
canceled: r,
|
|
424
|
-
visibleCount: i.reduce((e, t) => e +
|
|
424
|
+
visibleCount: i.reduce((e, t) => e + ke(t, n), 0)
|
|
425
425
|
};
|
|
426
426
|
}
|
|
427
|
-
function
|
|
428
|
-
let t =
|
|
427
|
+
function ze(e) {
|
|
428
|
+
let t = Ie({
|
|
429
429
|
cursor: e.initialState.cursor,
|
|
430
430
|
nextCursor: e.initialState.nextCursor ?? null,
|
|
431
431
|
nextCursorExhausted: !1,
|
|
@@ -433,30 +433,30 @@ function Le(e) {
|
|
|
433
433
|
previousCursor: e.initialState.previousCursor ?? null,
|
|
434
434
|
previousItems: [],
|
|
435
435
|
sequence: e.sequence
|
|
436
|
-
}), n =
|
|
436
|
+
}), n = De(t.bucket.items, e.removedIds);
|
|
437
437
|
return {
|
|
438
|
-
activeIndex:
|
|
438
|
+
activeIndex: be(e.initialState.activeIndex ?? 0, 0, Math.max(0, n.length - 1)),
|
|
439
439
|
buckets: [t.bucket],
|
|
440
440
|
nextSequence: t.nextSequence
|
|
441
441
|
};
|
|
442
442
|
}
|
|
443
|
-
function
|
|
444
|
-
let n = e[
|
|
445
|
-
return n ?
|
|
443
|
+
function Be(e, t) {
|
|
444
|
+
let n = e[be(t, 0, Math.max(0, e.length - 1))];
|
|
445
|
+
return n ? $(n) : null;
|
|
446
446
|
}
|
|
447
|
-
function
|
|
447
|
+
function Ve(e, t, n = null) {
|
|
448
448
|
if (!e.length) return 0;
|
|
449
|
-
let r = n ? e.findIndex((e) =>
|
|
450
|
-
return r >= 0 ? r :
|
|
449
|
+
let r = n ? e.findIndex((e) => $(e) === n) : -1;
|
|
450
|
+
return r >= 0 ? r : be(t, 0, e.length - 1);
|
|
451
451
|
}
|
|
452
|
-
function
|
|
453
|
-
return e ?
|
|
452
|
+
function He(e, t, n) {
|
|
453
|
+
return e ? ke(e, t) < n : !1;
|
|
454
454
|
}
|
|
455
455
|
//#endregion
|
|
456
456
|
//#region src/components/viewer-core/autoResolveBucketFactory.ts
|
|
457
|
-
function
|
|
457
|
+
function Ue(e) {
|
|
458
458
|
return (t) => {
|
|
459
|
-
let n =
|
|
459
|
+
let n = Ie({
|
|
460
460
|
cursor: t.cursor,
|
|
461
461
|
nextCursor: t.nextCursor,
|
|
462
462
|
nextCursorExhausted: t.nextCursorExhausted ?? !1,
|
|
@@ -470,26 +470,26 @@ function Ve(e) {
|
|
|
470
470
|
}
|
|
471
471
|
//#endregion
|
|
472
472
|
//#region src/components/viewer-core/autoResolveCursors.ts
|
|
473
|
-
function
|
|
474
|
-
return e.find((e) =>
|
|
473
|
+
function We(e, t) {
|
|
474
|
+
return e.find((e) => ke(e, t) > 0) ?? e[0] ?? null;
|
|
475
475
|
}
|
|
476
|
-
function
|
|
476
|
+
function Ge(e, t) {
|
|
477
477
|
for (let n = e.length - 1; n >= 0; --n) {
|
|
478
478
|
let r = e[n];
|
|
479
|
-
if (
|
|
479
|
+
if (ke(r, t) > 0) return r;
|
|
480
480
|
}
|
|
481
481
|
return e[e.length - 1] ?? null;
|
|
482
482
|
}
|
|
483
|
-
function
|
|
483
|
+
function Ke(e) {
|
|
484
484
|
return !e?.nextCursor || !e.nextCursorExhausted ? null : e.nextCursor;
|
|
485
485
|
}
|
|
486
|
-
function
|
|
486
|
+
function qe(e, t, n, r) {
|
|
487
487
|
return t === void 0 || n === null ? e : e.map((e) => e.cursor !== t || e.nextCursor !== n ? e : {
|
|
488
488
|
...e,
|
|
489
489
|
nextCursorExhausted: r
|
|
490
490
|
});
|
|
491
491
|
}
|
|
492
|
-
function
|
|
492
|
+
function Je(e, t, n) {
|
|
493
493
|
return n || e !== "forward" || t === null ? {
|
|
494
494
|
cursor: n,
|
|
495
495
|
exhausted: !1
|
|
@@ -498,7 +498,7 @@ function Ke(e, t, n) {
|
|
|
498
498
|
exhausted: !0
|
|
499
499
|
};
|
|
500
500
|
}
|
|
501
|
-
function
|
|
501
|
+
function Ye(e, t) {
|
|
502
502
|
if (t) return {
|
|
503
503
|
cursor: t,
|
|
504
504
|
exhausted: !1
|
|
@@ -509,11 +509,11 @@ function qe(e, t) {
|
|
|
509
509
|
exhausted: !!n
|
|
510
510
|
};
|
|
511
511
|
}
|
|
512
|
-
function
|
|
513
|
-
let n = e.findIndex((e) =>
|
|
512
|
+
function Xe(e, t) {
|
|
513
|
+
let n = e.findIndex((e) => ke(e, t) > 0);
|
|
514
514
|
if (n < 0) return e;
|
|
515
515
|
let r = n;
|
|
516
|
-
for (let i = e.length - 1; i >= n; --i) if (
|
|
516
|
+
for (let i = e.length - 1; i >= n; --i) if (ke(e[i], t) > 0) {
|
|
517
517
|
r = i;
|
|
518
518
|
break;
|
|
519
519
|
}
|
|
@@ -521,7 +521,7 @@ function Je(e, t) {
|
|
|
521
521
|
}
|
|
522
522
|
//#endregion
|
|
523
523
|
//#region src/components/viewer-core/autoResolveFillUntil.ts
|
|
524
|
-
function
|
|
524
|
+
function Ze(e) {
|
|
525
525
|
async function t(t) {
|
|
526
526
|
if (typeof t == "number") {
|
|
527
527
|
await i(t);
|
|
@@ -536,7 +536,7 @@ function Ye(e) {
|
|
|
536
536
|
e.isFillUntilActive.value = !1, e.fillMode.value = "idle";
|
|
537
537
|
}
|
|
538
538
|
async function i(t) {
|
|
539
|
-
let n =
|
|
539
|
+
let n = Qe(t);
|
|
540
540
|
n <= 0 || await a("count", () => e.getHasNextPage() && n > 0, () => {
|
|
541
541
|
--n;
|
|
542
542
|
}, n);
|
|
@@ -562,7 +562,7 @@ function Ye(e) {
|
|
|
562
562
|
});
|
|
563
563
|
let r = e.getResolve();
|
|
564
564
|
if (!r) return !1;
|
|
565
|
-
let i =
|
|
565
|
+
let i = ye(t);
|
|
566
566
|
if (e.inFlightCursors.has(i)) return !1;
|
|
567
567
|
let a = e.nextOperationId(), s = typeof AbortController > "u" ? null : new AbortController();
|
|
568
568
|
e.inFlightCursors.add(i), e.setActiveResolveController(s), e.errorMessage.value = null, e.operationPhase.value = "filling", e.fillCollectedCount.value = e.getVisibleItemCount(), e.fillCursor.value = t, e.fillTargetCount.value = null, e.pendingAppendBuckets.value = [], e.isAwaitingAppendCommit.value = !1;
|
|
@@ -573,8 +573,8 @@ function Ye(e) {
|
|
|
573
573
|
signal: s?.signal
|
|
574
574
|
});
|
|
575
575
|
if (!e.getOperationIsCurrent(a)) return e.finishLoadPhase(), !1;
|
|
576
|
-
if (u(i.total), !i.items.length) return e.autoBuckets.value = i.nextPage ?
|
|
577
|
-
let o =
|
|
576
|
+
if (u(i.total), !i.items.length) return e.autoBuckets.value = i.nextPage ? et(e.autoBuckets.value, n, t, i.nextPage) : qe(e.autoBuckets.value, n, t, !0), c(), e.finishLoadPhase(), !0;
|
|
577
|
+
let o = Je("forward", t, i.nextPage);
|
|
578
578
|
return e.autoBuckets.value = [...e.autoBuckets.value, e.createBucket({
|
|
579
579
|
cursor: t,
|
|
580
580
|
nextCursor: o.cursor,
|
|
@@ -584,7 +584,7 @@ function Ye(e) {
|
|
|
584
584
|
previousItems: []
|
|
585
585
|
})], c(), e.finishLoadPhase(), !0;
|
|
586
586
|
} catch (t) {
|
|
587
|
-
return
|
|
587
|
+
return Fe(t) || !e.getOperationIsCurrent(a) ? (e.finishLoadPhase(), !1) : (e.errorMessage.value = t instanceof Error ? t.message : "The viewer could not load items.", e.operationPhase.value = "failed", e.fillCollectedCount.value = null, e.fillCursor.value = null, e.fillTargetCount.value = null, !1);
|
|
588
588
|
} finally {
|
|
589
589
|
e.clearActiveResolveController(s), e.inFlightCursors.delete(i);
|
|
590
590
|
}
|
|
@@ -598,7 +598,7 @@ function Ye(e) {
|
|
|
598
598
|
function l() {
|
|
599
599
|
if (e.fillMode.value === "count") {
|
|
600
600
|
let t = e.fillTargetCalls.value;
|
|
601
|
-
e.fillProgress.value = t && t > 0 ?
|
|
601
|
+
e.fillProgress.value = t && t > 0 ? $e(e.fillCompletedCalls.value / t) : null;
|
|
602
602
|
return;
|
|
603
603
|
}
|
|
604
604
|
if (e.fillMode.value === "end") {
|
|
@@ -607,7 +607,7 @@ function Ye(e) {
|
|
|
607
607
|
e.fillProgress.value = null;
|
|
608
608
|
return;
|
|
609
609
|
}
|
|
610
|
-
e.fillProgress.value = t <= 0 ? 1 :
|
|
610
|
+
e.fillProgress.value = t <= 0 ? 1 : $e(e.fillLoadedCount.value / t);
|
|
611
611
|
return;
|
|
612
612
|
}
|
|
613
613
|
e.fillProgress.value = null;
|
|
@@ -621,13 +621,13 @@ function Ye(e) {
|
|
|
621
621
|
fillUntilEnd: n
|
|
622
622
|
};
|
|
623
623
|
}
|
|
624
|
-
function
|
|
624
|
+
function Qe(e) {
|
|
625
625
|
return Number.isFinite(e) && e > 0 ? Math.floor(e) : 0;
|
|
626
626
|
}
|
|
627
|
-
function
|
|
627
|
+
function $e(e) {
|
|
628
628
|
return Math.min(Math.max(e, 0), 1);
|
|
629
629
|
}
|
|
630
|
-
function
|
|
630
|
+
function et(e, t, n, r) {
|
|
631
631
|
return t === void 0 ? e : e.map((e) => e.cursor === t && e.nextCursor === n ? {
|
|
632
632
|
...e,
|
|
633
633
|
nextCursor: r,
|
|
@@ -636,11 +636,11 @@ function Qe(e, t, n, r) {
|
|
|
636
636
|
}
|
|
637
637
|
//#endregion
|
|
638
638
|
//#region src/components/viewer-core/autoResolveLoading.ts
|
|
639
|
-
function
|
|
639
|
+
function tt(e) {
|
|
640
640
|
async function t(t) {
|
|
641
641
|
let n = e.getResolve(), r = e.getBoundaryBucket(t);
|
|
642
642
|
if (!n || !r) return null;
|
|
643
|
-
let i =
|
|
643
|
+
let i = ye(r.cursor);
|
|
644
644
|
if (e.inFlightCursors.has(i)) return null;
|
|
645
645
|
e.inFlightCursors.add(i), e.errorMessage.value = null, e.operationPhase.value = "refreshing", e.clearFillState();
|
|
646
646
|
let a = e.nextOperationId(), o = typeof AbortController > "u" ? null : new AbortController();
|
|
@@ -652,7 +652,7 @@ function $e(e) {
|
|
|
652
652
|
signal: o?.signal
|
|
653
653
|
});
|
|
654
654
|
if (!e.getOperationIsCurrent(a)) return e.finishLoadPhase(), null;
|
|
655
|
-
let s =
|
|
655
|
+
let s = Ye(r, i.nextPage), c = Le({
|
|
656
656
|
cursor: r.cursor,
|
|
657
657
|
nextCursor: s.cursor,
|
|
658
658
|
nextCursorExhausted: s.exhausted,
|
|
@@ -663,12 +663,12 @@ function $e(e) {
|
|
|
663
663
|
});
|
|
664
664
|
e.setSequence(c.nextSequence);
|
|
665
665
|
let l = e.getActiveOccurrenceKey();
|
|
666
|
-
return e.autoBuckets.value =
|
|
666
|
+
return e.autoBuckets.value = je(e.autoBuckets.value, r.cursor, c.bucket), e.syncActiveIndexAfterVisibilityChange(l), e.finishLoadPhase(), {
|
|
667
667
|
followCursor: t === "leading" ? i.previousPage ?? null : i.nextPage,
|
|
668
668
|
itemsInserted: c.insertedCount
|
|
669
669
|
};
|
|
670
670
|
} catch (t) {
|
|
671
|
-
return
|
|
671
|
+
return Fe(t) || !e.getOperationIsCurrent(a) ? (e.finishLoadPhase(), null) : (e.errorMessage.value = t instanceof Error ? t.message : "The viewer could not load items.", e.operationPhase.value = "failed", e.clearFillState(), null);
|
|
672
672
|
} finally {
|
|
673
673
|
e.clearActiveResolveController(o), e.inFlightCursors.delete(i);
|
|
674
674
|
}
|
|
@@ -678,9 +678,9 @@ function $e(e) {
|
|
|
678
678
|
if (!n) return null;
|
|
679
679
|
let r = e.nextOperationId(), i = /* @__PURE__ */ new Set(), a = [], o = t.cursor, s = 0;
|
|
680
680
|
for (e.errorMessage.value = null, e.operationPhase.value = t.phase, e.clearFillState();;) {
|
|
681
|
-
if (!e.getOperationIsCurrent(r)) return
|
|
682
|
-
if (a.length > 0 && e.isManualPageLoadingLocked.value) return
|
|
683
|
-
let c =
|
|
681
|
+
if (!e.getOperationIsCurrent(r)) return Re(a, t.direction, e.removedIds.value, !0);
|
|
682
|
+
if (a.length > 0 && e.isManualPageLoadingLocked.value) return Re(a, t.direction, e.removedIds.value, !1);
|
|
683
|
+
let c = ye(o);
|
|
684
684
|
if (i.has(c) || e.inFlightCursors.has(c)) break;
|
|
685
685
|
i.add(c), e.inFlightCursors.add(c);
|
|
686
686
|
let l = typeof AbortController > "u" ? null : new AbortController();
|
|
@@ -691,8 +691,8 @@ function $e(e) {
|
|
|
691
691
|
pageSize: e.getPageSize(),
|
|
692
692
|
signal: l?.signal
|
|
693
693
|
});
|
|
694
|
-
if (!e.getOperationIsCurrent(r)) return
|
|
695
|
-
let c =
|
|
694
|
+
if (!e.getOperationIsCurrent(r)) return Re(a, t.direction, e.removedIds.value, !0);
|
|
695
|
+
let c = Je(t.direction, o, i.nextPage), u = e.createBucket({
|
|
696
696
|
cursor: o,
|
|
697
697
|
nextCursor: c.cursor,
|
|
698
698
|
nextCursorExhausted: c.exhausted,
|
|
@@ -701,18 +701,18 @@ function $e(e) {
|
|
|
701
701
|
previousItems: []
|
|
702
702
|
});
|
|
703
703
|
a.push(u);
|
|
704
|
-
let d = a.reduce((t, n) => t +
|
|
705
|
-
if (!t.continueUntilFilled || d >= e.getPageSize() || !f) return e.fillCursor.value = null,
|
|
706
|
-
if (e.isManualPageLoadingLocked.value) return
|
|
707
|
-
if (e.operationPhase.value = "filling", e.fillCollectedCount.value = d, e.fillCursor.value = f, e.fillTargetCount.value = e.getPageSize(), s += 1, await e.waitFillDelay(e.getFillDelayMs(s)), !e.getOperationIsCurrent(r)) return
|
|
704
|
+
let d = a.reduce((t, n) => t + ke(n, e.removedIds.value), 0), f = t.direction === "forward" ? u.nextCursorExhausted ? null : u.nextCursor : u.previousCursor;
|
|
705
|
+
if (!t.continueUntilFilled || d >= e.getPageSize() || !f) return e.fillCursor.value = null, Re(a, t.direction, e.removedIds.value, !1);
|
|
706
|
+
if (e.isManualPageLoadingLocked.value) return Re(a, t.direction, e.removedIds.value, !1);
|
|
707
|
+
if (e.operationPhase.value = "filling", e.fillCollectedCount.value = d, e.fillCursor.value = f, e.fillTargetCount.value = e.getPageSize(), s += 1, await e.waitFillDelay(e.getFillDelayMs(s)), !e.getOperationIsCurrent(r)) return Re(a, t.direction, e.removedIds.value, !0);
|
|
708
708
|
o = f;
|
|
709
709
|
} catch (n) {
|
|
710
|
-
return
|
|
710
|
+
return Fe(n) || !e.getOperationIsCurrent(r) ? Re(a, t.direction, e.removedIds.value, !0) : (e.errorMessage.value = n instanceof Error ? n.message : "The viewer could not load items.", e.operationPhase.value = "failed", e.clearFillState(), null);
|
|
711
711
|
} finally {
|
|
712
712
|
e.clearActiveResolveController(l), e.inFlightCursors.delete(c);
|
|
713
713
|
}
|
|
714
714
|
}
|
|
715
|
-
return
|
|
715
|
+
return Re(a, t.direction, e.removedIds.value, !1);
|
|
716
716
|
}
|
|
717
717
|
return {
|
|
718
718
|
collectBuckets: n,
|
|
@@ -721,7 +721,7 @@ function $e(e) {
|
|
|
721
721
|
}
|
|
722
722
|
//#endregion
|
|
723
723
|
//#region src/components/viewer-core/fillProgress.ts
|
|
724
|
-
function
|
|
724
|
+
function nt(e) {
|
|
725
725
|
let t = {
|
|
726
726
|
fillCompletedCalls: D(0),
|
|
727
727
|
fillLoadedCount: D(0),
|
|
@@ -740,7 +740,7 @@ function et(e) {
|
|
|
740
740
|
}
|
|
741
741
|
//#endregion
|
|
742
742
|
//#region src/components/viewer-core/emptyVisiblePrefetch.ts
|
|
743
|
-
function
|
|
743
|
+
function rt(e) {
|
|
744
744
|
let t = null, n = !1, r = !1;
|
|
745
745
|
function i() {
|
|
746
746
|
t = null;
|
|
@@ -782,14 +782,14 @@ function tt(e) {
|
|
|
782
782
|
}
|
|
783
783
|
//#endregion
|
|
784
784
|
//#region src/components/viewer-core/fillDelay.ts
|
|
785
|
-
var
|
|
786
|
-
function
|
|
785
|
+
var it = 2e3, at = 1e3, ot = 100;
|
|
786
|
+
function st(e, t = it, n = at) {
|
|
787
787
|
return t + Math.max(0, e - 1) * n;
|
|
788
788
|
}
|
|
789
|
-
function
|
|
789
|
+
function ct(e, t) {
|
|
790
790
|
return !Number.isFinite(e) || e == null || e < 0 ? t : Math.floor(e);
|
|
791
791
|
}
|
|
792
|
-
function
|
|
792
|
+
function lt() {
|
|
793
793
|
let e = D(null), t = null, n = null, r = null;
|
|
794
794
|
function i(i = !1) {
|
|
795
795
|
if (t &&= (clearInterval(t), null), n &&= (clearTimeout(n), null), e.value = null, i && r) {
|
|
@@ -807,7 +807,7 @@ function st() {
|
|
|
807
807
|
let t = Math.max(0, a - (Date.now() - s));
|
|
808
808
|
e.value = t, t <= 0 && l();
|
|
809
809
|
};
|
|
810
|
-
t = setInterval(u,
|
|
810
|
+
t = setInterval(u, ot), n = setTimeout(l, a), u();
|
|
811
811
|
}));
|
|
812
812
|
}
|
|
813
813
|
return {
|
|
@@ -818,13 +818,13 @@ function st() {
|
|
|
818
818
|
}
|
|
819
819
|
//#endregion
|
|
820
820
|
//#region src/components/viewer-core/useAutoResolveSource.ts
|
|
821
|
-
function
|
|
822
|
-
let t = !!e.initialState?.items.length, n = D([]), r = D(0), a = D([]), o = D(!1), s = D(null), c = D(!t && typeof e.resolve == "function" ? "initializing" : "idle"), l = D(null), u = D(null), d =
|
|
821
|
+
function ut(e) {
|
|
822
|
+
let t = !!e.initialState?.items.length, n = D([]), r = D(0), a = D([]), o = D(!1), s = D(null), c = D(!t && typeof e.resolve == "function" ? "initializing" : "idle"), l = D(null), u = D(null), d = lt(), f = d.remainingMs, p = D(null), m = D(!1), h = D(!0), g = D(!1), _ = D(!1), v = /* @__PURE__ */ new Set(), y = null, b = null, C = 0, w = 0, T = Ue({
|
|
823
823
|
getSequence: () => w,
|
|
824
824
|
setSequence: (e) => {
|
|
825
825
|
w = e;
|
|
826
826
|
}
|
|
827
|
-
}), E = i(() =>
|
|
827
|
+
}), E = i(() => ct(e.fillDelayMs, it)), O = i(() => ct(e.fillDelayStepMs, at)), k = i(() => typeof e.resolve == "function"), A = i(() => ve(e.pageSize)), j = i(() => Ee(n.value)), M = nt(() => j.value.length), N = i(() => De(j.value, e.removedIds.value)), P = i(() => r.value), F = i(() => _e(c.value) || m.value), I = i(() => We(n.value, e.removedIds.value)), L = i(() => Ge(n.value, e.removedIds.value)), R = i(() => L.value?.nextCursor ?? null), ee = i(() => o.value ? null : I.value?.previousCursor ?? null), B = i(() => !!R.value && L.value?.nextCursorExhausted !== !0), V = i(() => !!ee.value), H = i(() => _.value || g.value), U = i(() => k.value && !!L.value?.items.length), te = i(() => De(Ee(a.value), e.removedIds.value)), W = i(() => Ae(n.value, e.removedIds.value, P.value)), G = i(() => !N.value.length && !F.value && !!s.value), K = Ze({
|
|
828
828
|
autoBuckets: n,
|
|
829
829
|
clearActiveResolveController(e) {
|
|
830
830
|
y === e && (y = null);
|
|
@@ -836,17 +836,17 @@ function ct(e) {
|
|
|
836
836
|
fillCursor: u,
|
|
837
837
|
fillTargetCount: p,
|
|
838
838
|
...M.refs,
|
|
839
|
-
finishLoadPhase:
|
|
840
|
-
getFillDelayMs: (e) =>
|
|
841
|
-
getHasNextPage: () =>
|
|
839
|
+
finishLoadPhase: Se,
|
|
840
|
+
getFillDelayMs: (e) => st(e, E.value, O.value),
|
|
841
|
+
getHasNextPage: () => B.value,
|
|
842
842
|
getIsLoading: () => F.value,
|
|
843
843
|
getIsManualPageLoadingLocked: () => _.value,
|
|
844
844
|
getLoadedItemCount: () => j.value.length,
|
|
845
|
-
getNextCursor: () =>
|
|
845
|
+
getNextCursor: () => R.value,
|
|
846
846
|
getOperationIsCurrent: (e) => e === C,
|
|
847
847
|
getPageSize: () => A.value,
|
|
848
848
|
getResolve: () => e.resolve,
|
|
849
|
-
getTrailingBoundaryBucket: () =>
|
|
849
|
+
getTrailingBoundaryBucket: () => L.value,
|
|
850
850
|
getVisibleItemCount: () => N.value.length,
|
|
851
851
|
inFlightCursors: v,
|
|
852
852
|
isAwaitingAppendCommit: m,
|
|
@@ -861,17 +861,17 @@ function ct(e) {
|
|
|
861
861
|
b = e;
|
|
862
862
|
},
|
|
863
863
|
waitFillDelay: (e) => d.wait(e)
|
|
864
|
-
}),
|
|
865
|
-
canRefreshTrailingBoundary:
|
|
866
|
-
hasNextPage:
|
|
867
|
-
isInitialLoading:
|
|
868
|
-
isPageLoadingLocked:
|
|
864
|
+
}), q = rt({
|
|
865
|
+
canRefreshTrailingBoundary: U,
|
|
866
|
+
hasNextPage: B,
|
|
867
|
+
isInitialLoading: Te,
|
|
868
|
+
isPageLoadingLocked: H,
|
|
869
869
|
items: N,
|
|
870
870
|
loading: F,
|
|
871
871
|
prefetchNextPage: Y,
|
|
872
872
|
removedIds: e.removedIds,
|
|
873
|
-
trailingBoundaryBucket:
|
|
874
|
-
}),
|
|
873
|
+
trailingBoundaryBucket: L
|
|
874
|
+
}), J = tt({
|
|
875
875
|
autoBuckets: n,
|
|
876
876
|
clearActiveResolveController(e) {
|
|
877
877
|
y === e && (y = null);
|
|
@@ -882,10 +882,10 @@ function ct(e) {
|
|
|
882
882
|
fillCollectedCount: l,
|
|
883
883
|
fillCursor: u,
|
|
884
884
|
fillTargetCount: p,
|
|
885
|
-
finishLoadPhase:
|
|
886
|
-
getActiveOccurrenceKey:
|
|
887
|
-
getBoundaryBucket: (e) => e === "leading" ? I.value :
|
|
888
|
-
getFillDelayMs: (e) =>
|
|
885
|
+
finishLoadPhase: Se,
|
|
886
|
+
getActiveOccurrenceKey: fe,
|
|
887
|
+
getBoundaryBucket: (e) => e === "leading" ? I.value : L.value,
|
|
888
|
+
getFillDelayMs: (e) => st(e, E.value, O.value),
|
|
889
889
|
getOperationIsCurrent: (e) => e === C,
|
|
890
890
|
getPageSize: () => A.value,
|
|
891
891
|
getResolve: () => e.resolve,
|
|
@@ -901,121 +901,121 @@ function ct(e) {
|
|
|
901
901
|
setSequence: (e) => {
|
|
902
902
|
w = e;
|
|
903
903
|
},
|
|
904
|
-
syncActiveIndexAfterVisibilityChange:
|
|
904
|
+
syncActiveIndexAfterVisibilityChange: pe,
|
|
905
905
|
waitFillDelay: (e) => d.wait(e)
|
|
906
906
|
});
|
|
907
|
-
|
|
907
|
+
z(() => N.value.length, (e) => {
|
|
908
908
|
if (e === 0) {
|
|
909
|
-
r.value = 0,
|
|
909
|
+
r.value = 0, q.schedule();
|
|
910
910
|
return;
|
|
911
911
|
}
|
|
912
|
-
|
|
913
|
-
}),
|
|
914
|
-
h.value &&
|
|
912
|
+
q.resetRefreshAttempt(), o.value &&= (ke(), !1), r.value > e - 1 && (r.value = e - 1);
|
|
913
|
+
}), z(() => r.value, () => {
|
|
914
|
+
h.value && he();
|
|
915
915
|
}), S(() => {
|
|
916
|
-
|
|
916
|
+
we() || e.resolve && ne();
|
|
917
917
|
}), x(() => {
|
|
918
918
|
y?.abort(), y = null, d.clear(!0);
|
|
919
919
|
});
|
|
920
|
-
async function
|
|
921
|
-
b =
|
|
922
|
-
let t = await
|
|
920
|
+
async function ne() {
|
|
921
|
+
b = ne;
|
|
922
|
+
let t = await xe({
|
|
923
923
|
continueUntilFilled: !0,
|
|
924
924
|
cursor: e.initialCursor ?? null,
|
|
925
925
|
direction: "forward",
|
|
926
926
|
phase: "initializing"
|
|
927
927
|
});
|
|
928
|
-
t && (n.value = t.buckets, r.value = 0,
|
|
928
|
+
t && (n.value = t.buckets, r.value = 0, Se());
|
|
929
929
|
}
|
|
930
930
|
async function Y() {
|
|
931
|
-
if (
|
|
932
|
-
let e = !N.value.length, t =
|
|
931
|
+
if (H.value || F.value) return;
|
|
932
|
+
let e = !N.value.length, t = L.value, n = {
|
|
933
933
|
commitImmediately: e,
|
|
934
934
|
originCursor: t?.cursor ?? null
|
|
935
|
-
}, r =
|
|
936
|
-
if (
|
|
937
|
-
if (!
|
|
938
|
-
let e = await
|
|
939
|
-
e?.followCursor && (e.itemsInserted === 0 ||
|
|
935
|
+
}, r = Ke(t);
|
|
936
|
+
if (Oe("trailing")) {
|
|
937
|
+
if (!U.value) return;
|
|
938
|
+
let e = await ye("trailing");
|
|
939
|
+
e?.followCursor && (e.itemsInserted === 0 || Oe("trailing")) && await ge(e.followCursor, n);
|
|
940
940
|
return;
|
|
941
941
|
}
|
|
942
942
|
if (r) {
|
|
943
943
|
if (t?.cursor === r) {
|
|
944
|
-
let e = await
|
|
945
|
-
e?.followCursor && e.itemsInserted === 0 && await
|
|
944
|
+
let e = await ye("trailing");
|
|
945
|
+
e?.followCursor && e.itemsInserted === 0 && await ge(e.followCursor, n);
|
|
946
946
|
return;
|
|
947
947
|
}
|
|
948
|
-
await
|
|
948
|
+
await ge(r, n);
|
|
949
949
|
return;
|
|
950
950
|
}
|
|
951
|
-
if (!
|
|
952
|
-
let e =
|
|
953
|
-
e?.followCursor && e.itemsInserted === 0 && await
|
|
951
|
+
if (!B.value) {
|
|
952
|
+
let e = U.value ? await ye("trailing") : null;
|
|
953
|
+
e?.followCursor && e.itemsInserted === 0 && await ge(e.followCursor, n);
|
|
954
954
|
return;
|
|
955
955
|
}
|
|
956
|
-
await
|
|
956
|
+
await ge(R.value, n);
|
|
957
957
|
}
|
|
958
|
-
async function
|
|
959
|
-
if (!(
|
|
960
|
-
if (
|
|
961
|
-
let e = await
|
|
962
|
-
e?.itemsInserted === 0 && e.followCursor && await
|
|
958
|
+
async function X() {
|
|
959
|
+
if (!(H.value || !V.value || F.value)) {
|
|
960
|
+
if (Oe("leading")) {
|
|
961
|
+
let e = await ye("leading");
|
|
962
|
+
e?.itemsInserted === 0 && e.followCursor && await Q(e.followCursor);
|
|
963
963
|
return;
|
|
964
964
|
}
|
|
965
|
-
await
|
|
965
|
+
await Q(ee.value);
|
|
966
966
|
}
|
|
967
967
|
}
|
|
968
|
-
async function
|
|
969
|
-
if (
|
|
970
|
-
if (n.value = [], r.value = 0, a.value = [], o.value = !1, s.value = null, c.value = k.value ? "initializing" : "idle", Ce(), M.reset(), m.value = !1, v.clear(), y?.abort(), y = null, d.clear(!0),
|
|
971
|
-
|
|
968
|
+
async function re() {
|
|
969
|
+
if (G.value) {
|
|
970
|
+
if (n.value = [], r.value = 0, a.value = [], o.value = !1, s.value = null, c.value = k.value ? "initializing" : "idle", Ce(), M.reset(), m.value = !1, v.clear(), y?.abort(), y = null, d.clear(!0), we()) {
|
|
971
|
+
Se();
|
|
972
972
|
return;
|
|
973
973
|
}
|
|
974
|
-
await
|
|
974
|
+
await ne();
|
|
975
975
|
}
|
|
976
976
|
}
|
|
977
|
-
async function
|
|
978
|
-
if (
|
|
979
|
-
|
|
977
|
+
async function ie() {
|
|
978
|
+
if (G.value) return re();
|
|
979
|
+
H.value || c.value !== "failed" || !b || (s.value = null, await b());
|
|
980
980
|
}
|
|
981
|
-
async function
|
|
982
|
-
if (!a.value.length) return m.value = !1,
|
|
983
|
-
n.value = [...n.value, ...a.value], a.value = [], m.value = !1,
|
|
981
|
+
async function ae() {
|
|
982
|
+
if (!a.value.length) return m.value = !1, Se();
|
|
983
|
+
n.value = [...n.value, ...a.value], a.value = [], m.value = !1, Se();
|
|
984
984
|
}
|
|
985
|
-
function
|
|
985
|
+
function Z(t) {
|
|
986
986
|
let n = N.value;
|
|
987
987
|
if (!n.length) return;
|
|
988
|
-
let i =
|
|
988
|
+
let i = be(t, 0, n.length - 1);
|
|
989
989
|
i !== r.value && (r.value = i, e.emit("update:activeIndex", i));
|
|
990
990
|
}
|
|
991
|
-
function
|
|
992
|
-
h.value = e,
|
|
991
|
+
function oe(e) {
|
|
992
|
+
h.value = e, q.schedule();
|
|
993
993
|
}
|
|
994
|
-
function
|
|
994
|
+
function se() {
|
|
995
995
|
_.value = !0, d.clear(!0);
|
|
996
996
|
}
|
|
997
|
-
function
|
|
998
|
-
_.value = !1,
|
|
997
|
+
function ce() {
|
|
998
|
+
_.value = !1, q.schedule();
|
|
999
999
|
}
|
|
1000
|
-
function
|
|
1001
|
-
|
|
1000
|
+
function le() {
|
|
1001
|
+
de(), s.value = null, Ce(), K.cancel(), a.value.length > 0 && (n.value = [...n.value, ...a.value], a.value = []), m.value = !1, o.value = !1, Se();
|
|
1002
1002
|
}
|
|
1003
|
-
function
|
|
1004
|
-
g.value && (
|
|
1003
|
+
function ue() {
|
|
1004
|
+
g.value && (de(), Ce(), K.cancel(), m.value = !1, Se());
|
|
1005
1005
|
}
|
|
1006
|
-
function
|
|
1006
|
+
function de() {
|
|
1007
1007
|
C += 1, y?.abort(), y = null, d.clear(!0), v.clear();
|
|
1008
1008
|
}
|
|
1009
|
-
function
|
|
1010
|
-
return
|
|
1009
|
+
function fe() {
|
|
1010
|
+
return Be(N.value, P.value);
|
|
1011
1011
|
}
|
|
1012
|
-
function
|
|
1012
|
+
function pe(e = null, t = {}) {
|
|
1013
1013
|
if (N.value.length === 0) {
|
|
1014
1014
|
r.value = 0, !t.preserveTrailingPlaceholder && n.value.length > 0 && (o.value = !0);
|
|
1015
1015
|
return;
|
|
1016
1016
|
}
|
|
1017
1017
|
if (e) {
|
|
1018
|
-
let t = N.value.findIndex((t) =>
|
|
1018
|
+
let t = N.value.findIndex((t) => $(t) === e);
|
|
1019
1019
|
if (t >= 0) {
|
|
1020
1020
|
r.value = t;
|
|
1021
1021
|
return;
|
|
@@ -1025,90 +1025,90 @@ function ct(e) {
|
|
|
1025
1025
|
r.value = N.value.length;
|
|
1026
1026
|
return;
|
|
1027
1027
|
}
|
|
1028
|
-
r.value =
|
|
1028
|
+
r.value = Ve(N.value, P.value, e);
|
|
1029
1029
|
}
|
|
1030
|
-
function
|
|
1031
|
-
a.value.length > 0 && (!
|
|
1030
|
+
function me() {
|
|
1031
|
+
a.value.length > 0 && (!te.value.length || !N.value.length) && ae();
|
|
1032
1032
|
}
|
|
1033
|
-
async function
|
|
1034
|
-
if (!(!h.value ||
|
|
1033
|
+
async function he() {
|
|
1034
|
+
if (!(!h.value || Te())) {
|
|
1035
1035
|
if (!N.value.length) {
|
|
1036
|
-
(
|
|
1036
|
+
(B.value || U.value) && await Y();
|
|
1037
1037
|
return;
|
|
1038
1038
|
}
|
|
1039
|
-
|
|
1039
|
+
V.value && r.value < 3 && await X(), B.value && r.value >= N.value.length - 3 && await Y();
|
|
1040
1040
|
}
|
|
1041
1041
|
}
|
|
1042
|
-
async function
|
|
1042
|
+
async function ge(e, t = {}) {
|
|
1043
1043
|
b = async () => {
|
|
1044
|
-
await
|
|
1044
|
+
await ge(e, t);
|
|
1045
1045
|
};
|
|
1046
|
-
let r = await
|
|
1046
|
+
let r = await xe({
|
|
1047
1047
|
continueUntilFilled: !0,
|
|
1048
1048
|
cursor: e,
|
|
1049
1049
|
direction: "forward",
|
|
1050
1050
|
phase: "loading"
|
|
1051
1051
|
});
|
|
1052
1052
|
if (r) {
|
|
1053
|
-
if (!r.visibleCount) return n.value =
|
|
1054
|
-
if (r.canceled) return n.value = [...n.value, ...r.buckets], a.value = [], m.value = !1,
|
|
1055
|
-
if (a.value = r.buckets, t.commitImmediately || !N.value.length || !
|
|
1053
|
+
if (!r.visibleCount) return n.value = qe(n.value, t.originCursor, e, !0), a.value = [], m.value = !1, Se();
|
|
1054
|
+
if (r.canceled) return n.value = [...n.value, ...r.buckets], a.value = [], m.value = !1, Se();
|
|
1055
|
+
if (a.value = r.buckets, t.commitImmediately || !N.value.length || !te.value.length) return n.value = [...n.value, ...a.value], a.value = [], m.value = !1, Se();
|
|
1056
1056
|
m.value = !0;
|
|
1057
1057
|
}
|
|
1058
1058
|
}
|
|
1059
|
-
async function
|
|
1059
|
+
async function Q(e) {
|
|
1060
1060
|
b = async () => {
|
|
1061
|
-
await
|
|
1061
|
+
await Q(e);
|
|
1062
1062
|
};
|
|
1063
|
-
let t = await
|
|
1063
|
+
let t = await xe({
|
|
1064
1064
|
continueUntilFilled: !0,
|
|
1065
1065
|
cursor: e,
|
|
1066
1066
|
direction: "backward",
|
|
1067
1067
|
phase: "loading"
|
|
1068
1068
|
});
|
|
1069
1069
|
if (!t) return;
|
|
1070
|
-
let r =
|
|
1071
|
-
n.value = [...t.buckets, ...n.value],
|
|
1070
|
+
let r = fe();
|
|
1071
|
+
n.value = [...t.buckets, ...n.value], pe(r), Se();
|
|
1072
1072
|
}
|
|
1073
|
-
async function
|
|
1073
|
+
async function ye(e) {
|
|
1074
1074
|
return b = async () => {
|
|
1075
|
-
await
|
|
1076
|
-
},
|
|
1075
|
+
await ye(e);
|
|
1076
|
+
}, J.reloadBoundaryBucket(e);
|
|
1077
1077
|
}
|
|
1078
|
-
function
|
|
1079
|
-
return
|
|
1078
|
+
function xe(e) {
|
|
1079
|
+
return J.collectBuckets(e);
|
|
1080
1080
|
}
|
|
1081
|
-
function
|
|
1082
|
-
c.value = "idle", Ce(), d.clear(),
|
|
1081
|
+
function Se() {
|
|
1082
|
+
c.value = "idle", Ce(), d.clear(), q.schedule();
|
|
1083
1083
|
}
|
|
1084
1084
|
function Ce() {
|
|
1085
1085
|
l.value = null, u.value = null, p.value = null;
|
|
1086
1086
|
}
|
|
1087
|
-
function
|
|
1087
|
+
function we() {
|
|
1088
1088
|
if (!e.initialState || !e.initialState.items.length) return !1;
|
|
1089
|
-
let t =
|
|
1089
|
+
let t = ze({
|
|
1090
1090
|
initialState: e.initialState,
|
|
1091
1091
|
removedIds: e.removedIds.value,
|
|
1092
1092
|
sequence: w
|
|
1093
1093
|
});
|
|
1094
1094
|
return n.value = t.buckets, r.value = t.activeIndex, w = t.nextSequence, o.value = !1, s.value = null, a.value = [], m.value = !1, !0;
|
|
1095
1095
|
}
|
|
1096
|
-
function
|
|
1096
|
+
function Te() {
|
|
1097
1097
|
return c.value === "initializing";
|
|
1098
1098
|
}
|
|
1099
|
-
function
|
|
1100
|
-
return
|
|
1099
|
+
function Oe(t) {
|
|
1100
|
+
return He(t === "leading" ? I.value : L.value, e.removedIds.value, A.value);
|
|
1101
1101
|
}
|
|
1102
|
-
function
|
|
1103
|
-
n.value =
|
|
1102
|
+
function ke() {
|
|
1103
|
+
n.value = Xe(n.value, e.removedIds.value);
|
|
1104
1104
|
}
|
|
1105
1105
|
return {
|
|
1106
1106
|
activeIndex: P,
|
|
1107
|
-
canRetryInitialLoad:
|
|
1108
|
-
cancel:
|
|
1109
|
-
cancelFill:
|
|
1110
|
-
canRefreshTrailingBoundary:
|
|
1111
|
-
commitPendingAppend:
|
|
1107
|
+
canRetryInitialLoad: G,
|
|
1108
|
+
cancel: le,
|
|
1109
|
+
cancelFill: ue,
|
|
1110
|
+
canRefreshTrailingBoundary: U,
|
|
1111
|
+
commitPendingAppend: ae,
|
|
1112
1112
|
currentCursor: W,
|
|
1113
1113
|
errorMessage: s,
|
|
1114
1114
|
fillCollectedCount: l,
|
|
@@ -1116,36 +1116,36 @@ function ct(e) {
|
|
|
1116
1116
|
fillDelayRemainingMs: f,
|
|
1117
1117
|
fillTargetCount: p,
|
|
1118
1118
|
...M.refs,
|
|
1119
|
-
fillUntil:
|
|
1120
|
-
fillUntilEnd:
|
|
1121
|
-
hasNextPage:
|
|
1122
|
-
hasPreviousPage:
|
|
1119
|
+
fillUntil: K.fillUntil,
|
|
1120
|
+
fillUntilEnd: K.fillUntilEnd,
|
|
1121
|
+
hasNextPage: B,
|
|
1122
|
+
hasPreviousPage: V,
|
|
1123
1123
|
isAutoPrefetchEnabled: h,
|
|
1124
|
-
isPageLoadingLocked:
|
|
1124
|
+
isPageLoadingLocked: H,
|
|
1125
1125
|
items: N,
|
|
1126
|
-
lockPageLoading:
|
|
1126
|
+
lockPageLoading: se,
|
|
1127
1127
|
loading: F,
|
|
1128
|
-
maybePrefetchAround:
|
|
1129
|
-
nextCursor:
|
|
1130
|
-
pendingAppendItems:
|
|
1128
|
+
maybePrefetchAround: he,
|
|
1129
|
+
nextCursor: R,
|
|
1130
|
+
pendingAppendItems: te,
|
|
1131
1131
|
phase: c,
|
|
1132
1132
|
prefetchNextPage: Y,
|
|
1133
|
-
prefetchPreviousPage:
|
|
1133
|
+
prefetchPreviousPage: X,
|
|
1134
1134
|
previousCursor: ee,
|
|
1135
|
-
retryInitialLoad:
|
|
1136
|
-
retry:
|
|
1137
|
-
setActiveIndex:
|
|
1138
|
-
setAutoPrefetchEnabled:
|
|
1139
|
-
syncActiveIndexAfterVisibilityChange:
|
|
1140
|
-
unlockPageLoading:
|
|
1141
|
-
getActiveOccurrenceKey:
|
|
1142
|
-
maybeCommitPendingAppendWhenFilteredOut:
|
|
1135
|
+
retryInitialLoad: re,
|
|
1136
|
+
retry: ie,
|
|
1137
|
+
setActiveIndex: Z,
|
|
1138
|
+
setAutoPrefetchEnabled: oe,
|
|
1139
|
+
syncActiveIndexAfterVisibilityChange: pe,
|
|
1140
|
+
unlockPageLoading: ce,
|
|
1141
|
+
getActiveOccurrenceKey: fe,
|
|
1142
|
+
maybeCommitPendingAppendWhenFilteredOut: me
|
|
1143
1143
|
};
|
|
1144
1144
|
}
|
|
1145
1145
|
//#endregion
|
|
1146
1146
|
//#region src/components/viewer-core/useDataSource.ts
|
|
1147
|
-
function
|
|
1148
|
-
let { clearRemoved: n, getRemovedIds: r, remove: a, removedIds: o, restore: s, undo: c } =
|
|
1147
|
+
function dt(e, t) {
|
|
1148
|
+
let { clearRemoved: n, getRemovedIds: r, remove: a, removedIds: o, restore: s, undo: c } = we(), l = ut({
|
|
1149
1149
|
emit: t,
|
|
1150
1150
|
fillDelayMs: e.fillDelayMs,
|
|
1151
1151
|
fillDelayStepMs: e.fillDelayStepMs,
|
|
@@ -1182,7 +1182,7 @@ function lt(e, t) {
|
|
|
1182
1182
|
return [...u.value];
|
|
1183
1183
|
}
|
|
1184
1184
|
function E(e) {
|
|
1185
|
-
return u.value.find((t) =>
|
|
1185
|
+
return u.value.find((t) => $(t) === e) ?? null;
|
|
1186
1186
|
}
|
|
1187
1187
|
function D(e, t, n) {
|
|
1188
1188
|
return Math.min(Math.max(e, t), n);
|
|
@@ -1252,9 +1252,9 @@ function lt(e, t) {
|
|
|
1252
1252
|
}
|
|
1253
1253
|
//#endregion
|
|
1254
1254
|
//#region src/components/viewer-core/useController.ts
|
|
1255
|
-
var
|
|
1256
|
-
function
|
|
1257
|
-
let n =
|
|
1255
|
+
var ft = 1024;
|
|
1256
|
+
function pt(e, t) {
|
|
1257
|
+
let n = dt(e, t), r = T({
|
|
1258
1258
|
nextBoundaryLoadProgress: 0,
|
|
1259
1259
|
previousBoundaryLoadProgress: 0
|
|
1260
1260
|
}), a = D(0), o = D("list"), s = T({
|
|
@@ -1284,23 +1284,23 @@ function dt(e, t) {
|
|
|
1284
1284
|
removedCount: 0,
|
|
1285
1285
|
removedIds: [],
|
|
1286
1286
|
surfaceMode: "list"
|
|
1287
|
-
}), c = i(() => a.value >=
|
|
1288
|
-
|
|
1287
|
+
}), c = i(() => a.value >= ft), l = i(() => c.value ? o.value : "fullscreen"), u = i(() => c.value && l.value === "fullscreen");
|
|
1288
|
+
z(c, (e) => {
|
|
1289
1289
|
e && h();
|
|
1290
|
-
}),
|
|
1290
|
+
}), z(() => e.surfaceMode, () => {
|
|
1291
1291
|
h();
|
|
1292
|
-
}),
|
|
1292
|
+
}), z([l, () => n.pendingAppendItems.value.length], ([e, t]) => {
|
|
1293
1293
|
e === "list" || t <= 0 || n.commitPendingAppend();
|
|
1294
|
-
}),
|
|
1294
|
+
}), z([
|
|
1295
1295
|
() => n.items.value.length,
|
|
1296
1296
|
() => n.loading.value,
|
|
1297
1297
|
() => n.hasNextPage.value,
|
|
1298
1298
|
() => n.pendingAppendItems.value.length
|
|
1299
1299
|
], ([e, n, r, i]) => {
|
|
1300
1300
|
!c.value || e > 0 || o.value === "list" || n || r || i > 0 || (o.value = "list", t("update:surfaceMode", "list"));
|
|
1301
|
-
}),
|
|
1301
|
+
}), z(l, (e) => {
|
|
1302
1302
|
n.setAutoPrefetchEnabled(e === "fullscreen");
|
|
1303
|
-
}, { immediate: !0 }),
|
|
1303
|
+
}, { immediate: !0 }), ee(() => {
|
|
1304
1304
|
s.activeIndex = n.activeIndex.value, s.currentCursor = n.currentCursor.value, s.errorMessage = n.errorMessage.value, s.fillCollectedCount = n.fillCollectedCount.value, s.fillCompletedCalls = n.fillCompletedCalls.value, s.fillCursor = n.fillCursor.value, s.fillDelayRemainingMs = n.fillDelayRemainingMs.value, s.fillLoadedCount = n.fillLoadedCount.value, s.fillMode = n.fillMode.value, s.fillProgress = n.fillProgress.value, s.fillTargetCalls = n.fillTargetCalls.value, s.fillTargetCount = n.fillTargetCount.value, s.fillTotalCount = n.fillTotalCount.value, s.hasNextPage = n.hasNextPage.value, s.hasPreviousPage = n.hasPreviousPage.value, s.itemCount = n.items.value.length, s.loadState = n.loading.value ? "loading" : n.errorMessage.value ? "failed" : "loaded", s.nextBoundaryLoadProgress = r.nextBoundaryLoadProgress, s.nextCursor = n.nextCursor.value, s.pageLoadingLocked = n.isPageLoadingLocked.value, s.phase = n.phase.value, s.previousBoundaryLoadProgress = r.previousBoundaryLoadProgress, s.previousCursor = n.previousCursor.value, s.removedCount = n.removedCount.value, s.removedIds = n.getRemovedIds(), s.surfaceMode = l.value;
|
|
1305
1305
|
}), S(() => {
|
|
1306
1306
|
m(), h(), window.addEventListener("keydown", p), window.addEventListener("resize", m);
|
|
@@ -1314,7 +1314,7 @@ function dt(e, t) {
|
|
|
1314
1314
|
!c.value || o.value === "list" || (o.value = "list", t("update:surfaceMode", "list"));
|
|
1315
1315
|
}
|
|
1316
1316
|
function p(e) {
|
|
1317
|
-
e.defaultPrevented || e.key !== "Escape" || !c.value || l.value !== "fullscreen" ||
|
|
1317
|
+
e.defaultPrevented || e.key !== "Escape" || !c.value || l.value !== "fullscreen" || ge(e.target) || (e.preventDefault(), f());
|
|
1318
1318
|
}
|
|
1319
1319
|
function m() {
|
|
1320
1320
|
a.value = window.innerWidth || 0;
|
|
@@ -1323,7 +1323,7 @@ function dt(e, t) {
|
|
|
1323
1323
|
!c.value || !e.surfaceMode || e.surfaceMode === o.value || (o.value = e.surfaceMode);
|
|
1324
1324
|
}
|
|
1325
1325
|
function g(e) {
|
|
1326
|
-
r.nextBoundaryLoadProgress =
|
|
1326
|
+
r.nextBoundaryLoadProgress = mt(e.nextBoundaryLoadProgress), r.previousBoundaryLoadProgress = mt(e.previousBoundaryLoadProgress);
|
|
1327
1327
|
}
|
|
1328
1328
|
return {
|
|
1329
1329
|
...n,
|
|
@@ -1342,26 +1342,26 @@ function dt(e, t) {
|
|
|
1342
1342
|
unlockPageLoading: n.unlockPageLoading
|
|
1343
1343
|
};
|
|
1344
1344
|
}
|
|
1345
|
-
function
|
|
1345
|
+
function mt(e) {
|
|
1346
1346
|
return Math.min(Math.max(e, 0), 1);
|
|
1347
1347
|
}
|
|
1348
1348
|
//#endregion
|
|
1349
1349
|
//#region src/components/FullscreenMediaBar.vue?vue&type=script&setup=true&lang.ts
|
|
1350
|
-
var
|
|
1350
|
+
var ht = {
|
|
1351
1351
|
"data-testid": "vibe-media-bar",
|
|
1352
1352
|
class: "absolute inset-x-0 bottom-0 z-[5] bg-[linear-gradient(180deg,transparent,rgba(0,0,0,0.42)_24%,rgba(0,0,0,0.78))] px-[clamp(1rem,2.6vw,2.25rem)] pt-4 pb-[1.15rem]"
|
|
1353
|
-
},
|
|
1353
|
+
}, gt = { class: "grid grid-cols-[auto_minmax(0,1fr)_auto_auto] items-center gap-3 border-t border-white/12 bg-black/70 px-4 py-3 backdrop-blur-[18px]" }, _t = { class: "text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74" }, vt = { class: "relative h-4 w-full" }, yt = [
|
|
1354
1354
|
"max",
|
|
1355
1355
|
"value",
|
|
1356
1356
|
"disabled"
|
|
1357
|
-
],
|
|
1357
|
+
], bt = { class: "text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74" }, xt = ["data-layout"], St = {
|
|
1358
1358
|
key: 0,
|
|
1359
1359
|
"data-testid": "vibe-media-volume-popover",
|
|
1360
1360
|
class: "absolute bottom-[calc(100%+0.8rem)] right-0 grid justify-items-center gap-3 border border-white/12 bg-black/82 px-3 py-4 shadow-[0_20px_50px_-20px_rgba(0,0,0,0.85)] backdrop-blur-[18px]"
|
|
1361
|
-
},
|
|
1361
|
+
}, Ct = { class: "relative flex h-28 w-4 items-center justify-center" }, wt = ["value"], Tt = { class: "flex items-center gap-3" }, Et = ["aria-label"], Dt = {
|
|
1362
1362
|
key: 0,
|
|
1363
1363
|
class: "relative h-4 w-24"
|
|
1364
|
-
},
|
|
1364
|
+
}, Ot = ["value"], kt = /* @__PURE__ */ d({
|
|
1365
1365
|
__name: "FullscreenMediaBar",
|
|
1366
1366
|
props: {
|
|
1367
1367
|
currentTime: {},
|
|
@@ -1379,8 +1379,8 @@ var pt = {
|
|
|
1379
1379
|
"volume-toggle"
|
|
1380
1380
|
],
|
|
1381
1381
|
setup(e, { emit: t }) {
|
|
1382
|
-
let n = e, r = t, l = D(null), u = D(!1), d = i(() => n.volumeControlLayout === "vertical"), f = i(() => C(n.volume, 0, 1)), p = i(() => Math.round(f.value * 100)), m = i(() => n.muted || f.value <= 0 ?
|
|
1383
|
-
|
|
1382
|
+
let n = e, r = t, l = D(null), u = D(!1), d = i(() => n.volumeControlLayout === "vertical"), f = i(() => C(n.volume, 0, 1)), p = i(() => Math.round(f.value * 100)), m = i(() => n.muted || f.value <= 0 ? fe : f.value < .5 ? ue : de), h = i(() => n.muted || f.value <= 0 ? "Unmute active media" : "Mute active media"), g = i(() => d.value && !u.value ? "Show volume controls" : h.value), _ = i(() => n.volumeControlLayout === "vertical" ? { height: `${p.value}%` } : { width: `${p.value}%` });
|
|
1383
|
+
z(d, (e) => {
|
|
1384
1384
|
e || (u.value = !1);
|
|
1385
1385
|
}), S(() => {
|
|
1386
1386
|
document.addEventListener("pointerdown", v);
|
|
@@ -1404,9 +1404,9 @@ var pt = {
|
|
|
1404
1404
|
function C(e, t, n) {
|
|
1405
1405
|
return Math.min(Math.max(e, t), n);
|
|
1406
1406
|
}
|
|
1407
|
-
return (e, t) => (w(), s("div",
|
|
1408
|
-
c("span",
|
|
1409
|
-
c("div",
|
|
1407
|
+
return (e, t) => (w(), s("div", ht, [c("div", gt, [
|
|
1408
|
+
c("span", _t, M(n.currentTimeLabel), 1),
|
|
1409
|
+
c("div", vt, [
|
|
1410
1410
|
t[3] ||= c("div", { class: "absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-white/12" }, null, -1),
|
|
1411
1411
|
c("div", {
|
|
1412
1412
|
class: "absolute left-0 top-1/2 h-px -translate-y-1/2 bg-[#f7f1ea]",
|
|
@@ -1423,16 +1423,16 @@ var pt = {
|
|
|
1423
1423
|
disabled: n.duration <= 0,
|
|
1424
1424
|
class: "vibe-media-slider absolute inset-0 z-10 h-4 w-full cursor-pointer bg-transparent disabled:cursor-default disabled:opacity-50",
|
|
1425
1425
|
onInput: t[0] ||= (e) => r("seek-input", e)
|
|
1426
|
-
}, null, 40,
|
|
1426
|
+
}, null, 40, yt)
|
|
1427
1427
|
]),
|
|
1428
|
-
c("span",
|
|
1428
|
+
c("span", bt, M(n.durationLabel), 1),
|
|
1429
1429
|
c("div", {
|
|
1430
1430
|
ref_key: "rootRef",
|
|
1431
1431
|
ref: l,
|
|
1432
1432
|
"data-testid": "vibe-media-volume",
|
|
1433
1433
|
"data-layout": n.volumeControlLayout,
|
|
1434
1434
|
class: "relative flex items-center justify-end"
|
|
1435
|
-
}, [d.value && u.value ? (w(), s("div",
|
|
1435
|
+
}, [d.value && u.value ? (w(), s("div", St, [c("div", Ct, [
|
|
1436
1436
|
t[4] ||= c("div", { class: "absolute bottom-0 left-1/2 h-full w-px -translate-x-1/2 bg-white/12" }, null, -1),
|
|
1437
1437
|
c("div", {
|
|
1438
1438
|
class: "absolute bottom-0 left-1/2 w-px -translate-x-1/2 bg-[#f7f1ea]",
|
|
@@ -1449,8 +1449,8 @@ var pt = {
|
|
|
1449
1449
|
value: f.value,
|
|
1450
1450
|
class: "vibe-media-slider absolute left-1/2 top-1/2 h-4 w-28 -translate-x-1/2 -translate-y-1/2 -rotate-90 bg-transparent",
|
|
1451
1451
|
onInput: t[1] ||= (e) => r("volume-input", e)
|
|
1452
|
-
}, null, 40,
|
|
1453
|
-
])])) : o("", !0), c("div",
|
|
1452
|
+
}, null, 40, wt)
|
|
1453
|
+
])])) : o("", !0), c("div", Tt, [c("button", {
|
|
1454
1454
|
type: "button",
|
|
1455
1455
|
"data-testid": "vibe-media-volume-button",
|
|
1456
1456
|
"aria-label": g.value,
|
|
@@ -1459,7 +1459,7 @@ var pt = {
|
|
|
1459
1459
|
}, [(w(), a(A(m.value), {
|
|
1460
1460
|
class: "h-4 w-4 stroke-[1.9]",
|
|
1461
1461
|
"aria-hidden": "true"
|
|
1462
|
-
}))], 8,
|
|
1462
|
+
}))], 8, Et), n.volumeControlLayout === "horizontal" ? (w(), s("div", Dt, [
|
|
1463
1463
|
t[5] ||= c("div", { class: "absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-white/12" }, null, -1),
|
|
1464
1464
|
c("div", {
|
|
1465
1465
|
class: "absolute left-0 top-1/2 h-px -translate-y-1/2 bg-[#f7f1ea]",
|
|
@@ -1476,24 +1476,24 @@ var pt = {
|
|
|
1476
1476
|
value: f.value,
|
|
1477
1477
|
class: "vibe-media-slider absolute inset-0 z-10 h-4 w-full cursor-pointer bg-transparent",
|
|
1478
1478
|
onInput: t[2] ||= (e) => r("volume-input", e)
|
|
1479
|
-
}, null, 40,
|
|
1480
|
-
])) : o("", !0)])], 8,
|
|
1479
|
+
}, null, 40, Ot)
|
|
1480
|
+
])) : o("", !0)])], 8, xt)
|
|
1481
1481
|
])]));
|
|
1482
1482
|
}
|
|
1483
|
-
}),
|
|
1483
|
+
}), At = { class: "pointer-events-none absolute inset-0 z-[3] flex flex-col justify-between p-[clamp(1.25rem,2.6vw,2.25rem)]" }, jt = { class: "grid gap-4" }, Mt = { class: "flex min-h-11 items-center justify-between gap-4" }, Nt = { class: "min-w-0 flex flex-1 items-center gap-3" }, Pt = {
|
|
1484
1484
|
key: 1,
|
|
1485
1485
|
"data-testid": "vibe-title",
|
|
1486
1486
|
class: "m-0 truncate text-left text-[0.82rem] leading-none tracking-[-0.04em] min-[721px]:text-[1.2rem]"
|
|
1487
|
-
},
|
|
1487
|
+
}, Ft = { class: "pointer-events-auto flex shrink-0 items-center gap-2" }, It = {
|
|
1488
1488
|
"data-testid": "vibe-pagination",
|
|
1489
1489
|
class: "inline-flex shrink-0 items-center gap-2 whitespace-nowrap border border-white/14 bg-black/40 px-3 py-2 text-[0.63rem] font-bold uppercase tracking-[0.12em] text-[#f7f1ea]/72 backdrop-blur-[18px] min-[721px]:gap-3 min-[721px]:px-4 min-[721px]:py-3 min-[721px]:text-[0.74rem] min-[721px]:tracking-[0.2em]"
|
|
1490
|
-
},
|
|
1490
|
+
}, Lt = { class: "whitespace-nowrap" }, Rt = {
|
|
1491
1491
|
key: 1,
|
|
1492
1492
|
class: "whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3"
|
|
1493
|
-
},
|
|
1493
|
+
}, zt = {
|
|
1494
1494
|
key: 0,
|
|
1495
1495
|
class: "grid gap-2 max-[720px]:justify-items-start"
|
|
1496
|
-
},
|
|
1496
|
+
}, Bt = /* @__PURE__ */ d({
|
|
1497
1497
|
__name: "FullscreenHeader",
|
|
1498
1498
|
props: {
|
|
1499
1499
|
currentIndex: {},
|
|
@@ -1507,47 +1507,47 @@ var pt = {
|
|
|
1507
1507
|
emits: ["back-to-list"],
|
|
1508
1508
|
setup(e, { emit: t }) {
|
|
1509
1509
|
let n = e, r = t;
|
|
1510
|
-
return (e, t) => (w(), s("div",
|
|
1510
|
+
return (e, t) => (w(), s("div", At, [c("div", jt, [c("div", Mt, [c("div", Nt, [n.showBackToList ? (w(), s("button", {
|
|
1511
1511
|
key: 0,
|
|
1512
1512
|
type: "button",
|
|
1513
1513
|
"data-testid": "vibe-back-to-list",
|
|
1514
1514
|
class: "pointer-events-auto inline-flex h-11 w-11 shrink-0 items-center justify-center border border-white/14 bg-black/40 text-[#f7f1ea]/78 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/55",
|
|
1515
1515
|
"aria-label": "Back to list",
|
|
1516
1516
|
onClick: t[0] ||= (e) => r("back-to-list")
|
|
1517
|
-
}, [u(
|
|
1517
|
+
}, [u(F(X), {
|
|
1518
1518
|
class: "h-4 w-4 stroke-[2.2]",
|
|
1519
1519
|
"aria-hidden": "true"
|
|
1520
|
-
})])) : o("", !0), n.title ? (w(), s("h2",
|
|
1521
|
-
n.loading ? (w(), a(
|
|
1520
|
+
})])) : o("", !0), n.title ? (w(), s("h2", Pt, M(n.title), 1)) : o("", !0)]), c("div", Ft, [c("span", It, [
|
|
1521
|
+
n.loading ? (w(), a(F(oe), {
|
|
1522
1522
|
key: 0,
|
|
1523
1523
|
"data-testid": "vibe-pagination-spinner",
|
|
1524
1524
|
class: "h-3.5 w-3.5 animate-spin stroke-[1.9]",
|
|
1525
1525
|
"aria-hidden": "true"
|
|
1526
1526
|
})) : o("", !0),
|
|
1527
|
-
c("span",
|
|
1528
|
-
n.paginationDetail ? (w(), s("span",
|
|
1529
|
-
]), k(e.$slots, "actions")])])]), n.showEndBadge ? (w(), s("div",
|
|
1530
|
-
}
|
|
1531
|
-
}),
|
|
1532
|
-
image:
|
|
1533
|
-
video:
|
|
1534
|
-
audio:
|
|
1535
|
-
other:
|
|
1536
|
-
},
|
|
1527
|
+
c("span", Lt, M(n.currentIndex + 1) + " / " + M(n.total), 1),
|
|
1528
|
+
n.paginationDetail ? (w(), s("span", Rt, M(n.paginationDetail), 1)) : o("", !0)
|
|
1529
|
+
]), k(e.$slots, "actions")])])]), n.showEndBadge ? (w(), s("div", zt, [...t[1] ||= [c("span", { class: "inline-flex items-center border border-amber-300/35 bg-black/40 px-4 py-3 text-[0.74rem] font-bold uppercase tracking-[0.2em] text-amber-200 backdrop-blur-[18px]" }, " End reached ", -1)]])) : o("", !0)]));
|
|
1530
|
+
}
|
|
1531
|
+
}), Vt = {
|
|
1532
|
+
image: Z,
|
|
1533
|
+
video: ie,
|
|
1534
|
+
audio: re,
|
|
1535
|
+
other: ae
|
|
1536
|
+
}, Ht = {
|
|
1537
1537
|
image: "Image",
|
|
1538
1538
|
video: "Video",
|
|
1539
1539
|
audio: "Audio",
|
|
1540
1540
|
other: "File"
|
|
1541
1541
|
};
|
|
1542
|
-
function
|
|
1543
|
-
return
|
|
1542
|
+
function Ut(e) {
|
|
1543
|
+
return Vt[e];
|
|
1544
1544
|
}
|
|
1545
|
-
function
|
|
1546
|
-
return
|
|
1545
|
+
function Wt(e) {
|
|
1546
|
+
return Ht[e];
|
|
1547
1547
|
}
|
|
1548
1548
|
//#endregion
|
|
1549
1549
|
//#region src/components/viewer-core/useAssetLoadQueue.ts
|
|
1550
|
-
function
|
|
1550
|
+
function Gt() {
|
|
1551
1551
|
let e = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), n = 0;
|
|
1552
1552
|
function r(r) {
|
|
1553
1553
|
let a = {
|
|
@@ -1570,7 +1570,7 @@ function Ut() {
|
|
|
1570
1570
|
function i() {
|
|
1571
1571
|
if (t.size === 0) return;
|
|
1572
1572
|
let n = [...t.values()].sort((e, t) => {
|
|
1573
|
-
let n =
|
|
1573
|
+
let n = qt(e) - qt(t);
|
|
1574
1574
|
return n === 0 ? e.enqueuedAt - t.enqueuedAt : n;
|
|
1575
1575
|
});
|
|
1576
1576
|
for (let r of n) {
|
|
@@ -1584,8 +1584,8 @@ function Ut() {
|
|
|
1584
1584
|
}
|
|
1585
1585
|
return { request: r };
|
|
1586
1586
|
}
|
|
1587
|
-
var
|
|
1588
|
-
function
|
|
1587
|
+
var Kt = Gt();
|
|
1588
|
+
function qt(e) {
|
|
1589
1589
|
try {
|
|
1590
1590
|
let t = e.getPriority();
|
|
1591
1591
|
return Number.isFinite(t) ? t : Infinity;
|
|
@@ -1595,20 +1595,20 @@ function Gt(e) {
|
|
|
1595
1595
|
}
|
|
1596
1596
|
//#endregion
|
|
1597
1597
|
//#region src/components/viewer-core/useFullscreenPreloadController.ts
|
|
1598
|
-
var
|
|
1598
|
+
var Jt = [
|
|
1599
1599
|
0,
|
|
1600
1600
|
1,
|
|
1601
1601
|
2,
|
|
1602
1602
|
3
|
|
1603
|
-
],
|
|
1603
|
+
], Yt = {
|
|
1604
1604
|
0: 0,
|
|
1605
1605
|
1: 1,
|
|
1606
1606
|
2: 2,
|
|
1607
1607
|
3: 3
|
|
1608
1608
|
};
|
|
1609
|
-
function
|
|
1610
|
-
let t = D({}), n =
|
|
1611
|
-
|
|
1609
|
+
function Xt(e) {
|
|
1610
|
+
let t = D({}), n = Gt(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Set();
|
|
1611
|
+
z([
|
|
1612
1612
|
e.active,
|
|
1613
1613
|
e.items,
|
|
1614
1614
|
e.resolvedActiveIndex
|
|
@@ -1628,14 +1628,14 @@ function Jt(e) {
|
|
|
1628
1628
|
}
|
|
1629
1629
|
function l(e, t) {
|
|
1630
1630
|
if (t instanceof HTMLImageElement) {
|
|
1631
|
-
i.set(e, t),
|
|
1631
|
+
i.set(e, t), Qt(t) && d(e);
|
|
1632
1632
|
return;
|
|
1633
1633
|
}
|
|
1634
1634
|
i.delete(e);
|
|
1635
1635
|
}
|
|
1636
1636
|
function u(e, t) {
|
|
1637
1637
|
if (t instanceof HTMLMediaElement) {
|
|
1638
|
-
a.set(e, t),
|
|
1638
|
+
a.set(e, t), $t(t) && d(e);
|
|
1639
1639
|
return;
|
|
1640
1640
|
}
|
|
1641
1641
|
a.delete(e);
|
|
@@ -1676,7 +1676,7 @@ function Jt(e) {
|
|
|
1676
1676
|
assetType: s.item.type === "image" ? "image" : "video",
|
|
1677
1677
|
getPriority: () => g(o.index),
|
|
1678
1678
|
onGrant: () => {
|
|
1679
|
-
y(s.key, !0), (e.isAssetReady(s.key, s.item) ||
|
|
1679
|
+
y(s.key, !0), (e.isAssetReady(s.key, s.item) || Zt(s.key, i, a)) && d(s.key);
|
|
1680
1680
|
},
|
|
1681
1681
|
url: s.item.url
|
|
1682
1682
|
})
|
|
@@ -1687,14 +1687,14 @@ function Jt(e) {
|
|
|
1687
1687
|
}
|
|
1688
1688
|
function h() {
|
|
1689
1689
|
let t = e.resolvedActiveIndex.value;
|
|
1690
|
-
return
|
|
1690
|
+
return Jt.map((e) => _(t + e)).filter((e) => !!e);
|
|
1691
1691
|
}
|
|
1692
1692
|
function g(t) {
|
|
1693
|
-
return e.active.value ?
|
|
1693
|
+
return e.active.value ? Yt[t - e.resolvedActiveIndex.value] ?? Infinity : Infinity;
|
|
1694
1694
|
}
|
|
1695
1695
|
function _(t) {
|
|
1696
1696
|
let n = e.items.value[t];
|
|
1697
|
-
return !n || !
|
|
1697
|
+
return !n || !en(n) ? null : {
|
|
1698
1698
|
index: t,
|
|
1699
1699
|
item: n,
|
|
1700
1700
|
key: e.getItemKey(n)
|
|
@@ -1743,26 +1743,26 @@ function Jt(e) {
|
|
|
1743
1743
|
shouldAttachSlideAsset: s
|
|
1744
1744
|
};
|
|
1745
1745
|
}
|
|
1746
|
-
function
|
|
1746
|
+
function Zt(e, t, n) {
|
|
1747
1747
|
let r = t.get(e);
|
|
1748
|
-
if (r) return
|
|
1748
|
+
if (r) return Qt(r);
|
|
1749
1749
|
let i = n.get(e);
|
|
1750
|
-
return i ?
|
|
1750
|
+
return i ? $t(i) : !1;
|
|
1751
1751
|
}
|
|
1752
|
-
function
|
|
1752
|
+
function Qt(e) {
|
|
1753
1753
|
return e.complete && !!(e.currentSrc || e.getAttribute("src"));
|
|
1754
1754
|
}
|
|
1755
|
-
function
|
|
1755
|
+
function $t(e) {
|
|
1756
1756
|
let t = typeof HTMLMediaElement > "u" ? 1 : HTMLMediaElement.HAVE_METADATA;
|
|
1757
1757
|
return e.readyState >= t;
|
|
1758
1758
|
}
|
|
1759
|
-
function
|
|
1759
|
+
function en(e) {
|
|
1760
1760
|
return e.type === "image" || e.type === "video" || e.type === "audio";
|
|
1761
1761
|
}
|
|
1762
1762
|
//#endregion
|
|
1763
1763
|
//#region src/components/viewer-core/useFullscreenSurfaceMedia.ts
|
|
1764
|
-
function
|
|
1765
|
-
let t =
|
|
1764
|
+
function tn(e) {
|
|
1765
|
+
let t = Xt({
|
|
1766
1766
|
active: e.active,
|
|
1767
1767
|
getItemKey: r,
|
|
1768
1768
|
isAssetReady: m,
|
|
@@ -1772,10 +1772,10 @@ function $t(e) {
|
|
|
1772
1772
|
});
|
|
1773
1773
|
function n(e, t) {
|
|
1774
1774
|
let n = t.title?.trim();
|
|
1775
|
-
return n ? `${e} ${n}` : `${e} ${
|
|
1775
|
+
return n ? `${e} ${n}` : `${e} ${Wt(t.type).toLowerCase()}`;
|
|
1776
1776
|
}
|
|
1777
1777
|
function r(e) {
|
|
1778
|
-
return
|
|
1778
|
+
return $(e);
|
|
1779
1779
|
}
|
|
1780
1780
|
function i(e) {
|
|
1781
1781
|
return t.shouldAttachSlideAsset(e);
|
|
@@ -1835,11 +1835,11 @@ function $t(e) {
|
|
|
1835
1835
|
}
|
|
1836
1836
|
//#endregion
|
|
1837
1837
|
//#region src/components/viewer-core/slotContent.ts
|
|
1838
|
-
function
|
|
1838
|
+
function nn(e) {
|
|
1839
1839
|
if (!Array.isArray(e)) return !1;
|
|
1840
1840
|
for (let t of e) {
|
|
1841
1841
|
if (Array.isArray(t)) {
|
|
1842
|
-
if (
|
|
1842
|
+
if (nn(t)) return !0;
|
|
1843
1843
|
continue;
|
|
1844
1844
|
}
|
|
1845
1845
|
if (!h(t)) {
|
|
@@ -1850,20 +1850,20 @@ function en(e) {
|
|
|
1850
1850
|
if (t != null && t !== !1) return !0;
|
|
1851
1851
|
continue;
|
|
1852
1852
|
}
|
|
1853
|
-
if (!
|
|
1853
|
+
if (!rn(t)) return !0;
|
|
1854
1854
|
}
|
|
1855
1855
|
return !1;
|
|
1856
1856
|
}
|
|
1857
|
-
function
|
|
1858
|
-
return r.type === e ? !0 : r.type === n ? typeof r.children == "string" ? r.children.trim().length === 0 : !0 : r.type === t ? !
|
|
1857
|
+
function rn(r) {
|
|
1858
|
+
return r.type === e ? !0 : r.type === n ? typeof r.children == "string" ? r.children.trim().length === 0 : !0 : r.type === t ? !nn(r.children) : !1;
|
|
1859
1859
|
}
|
|
1860
1860
|
//#endregion
|
|
1861
1861
|
//#region src/components/viewer-core/useSurfaceEmptyState.ts
|
|
1862
|
-
var
|
|
1863
|
-
function
|
|
1862
|
+
var an = "no items available";
|
|
1863
|
+
function on(e) {
|
|
1864
1864
|
let t = i(() => e.loading.value || e.itemCount.value > 0 || e.emptyStateMode.value === "hidden" ? null : {
|
|
1865
1865
|
loading: !!e.loading.value,
|
|
1866
|
-
message:
|
|
1866
|
+
message: an,
|
|
1867
1867
|
mode: e.emptyStateMode.value === "badge" ? "badge" : "inline",
|
|
1868
1868
|
surface: e.surface,
|
|
1869
1869
|
total: e.itemCount.value
|
|
@@ -1871,23 +1871,23 @@ function rn(e) {
|
|
|
1871
1871
|
return {
|
|
1872
1872
|
emptyStateProps: t,
|
|
1873
1873
|
showBadgeEmptyState: i(() => t.value?.mode === "badge"),
|
|
1874
|
-
showCustomEmptyState: i(() =>
|
|
1874
|
+
showCustomEmptyState: i(() => nn(n.value)),
|
|
1875
1875
|
showInlineEmptyState: i(() => t.value?.mode === "inline")
|
|
1876
1876
|
};
|
|
1877
1877
|
}
|
|
1878
1878
|
//#endregion
|
|
1879
1879
|
//#region src/components/viewer-core/format.ts
|
|
1880
|
-
function
|
|
1880
|
+
function sn(e) {
|
|
1881
1881
|
if (!Number.isFinite(e) || e <= 0) return "0:00";
|
|
1882
1882
|
let t = Math.floor(e), n = Math.floor(t / 3600), r = Math.floor(t % 3600 / 60), i = t % 60;
|
|
1883
1883
|
return n > 0 ? `${n}:${String(r).padStart(2, "0")}:${String(i).padStart(2, "0")}` : `${r}:${String(i).padStart(2, "0")}`;
|
|
1884
1884
|
}
|
|
1885
1885
|
//#endregion
|
|
1886
1886
|
//#region src/components/viewer-core/surfaceStatus.ts
|
|
1887
|
-
function
|
|
1887
|
+
function cn(e) {
|
|
1888
1888
|
return e.phase ? e.phase : e.loading ? e.itemCount > 0 ? "loading" : "initializing" : "idle";
|
|
1889
1889
|
}
|
|
1890
|
-
function
|
|
1890
|
+
function ln(e) {
|
|
1891
1891
|
return e.phase === "failed" ? {
|
|
1892
1892
|
kind: "failed",
|
|
1893
1893
|
message: e.errorMessage ?? (e.hasItems ? "The viewer could not load more items." : "The viewer could not load items.")
|
|
@@ -1910,9 +1910,9 @@ function sn(e) {
|
|
|
1910
1910
|
}
|
|
1911
1911
|
//#endregion
|
|
1912
1912
|
//#region src/components/viewer-core/useActivation.ts
|
|
1913
|
-
function
|
|
1913
|
+
function un(e) {
|
|
1914
1914
|
let t = !1;
|
|
1915
|
-
|
|
1915
|
+
z(e.enabled, async (t) => {
|
|
1916
1916
|
if (n(t), t) {
|
|
1917
1917
|
e.onResize(), await e.onEnable();
|
|
1918
1918
|
return;
|
|
@@ -1933,7 +1933,7 @@ function cn(e) {
|
|
|
1933
1933
|
}
|
|
1934
1934
|
//#endregion
|
|
1935
1935
|
//#region src/components/viewer-core/assetState.ts
|
|
1936
|
-
var
|
|
1936
|
+
var dn = {
|
|
1937
1937
|
currentTime: 0,
|
|
1938
1938
|
duration: 0,
|
|
1939
1939
|
errorKind: null,
|
|
@@ -1942,38 +1942,38 @@ var ln = {
|
|
|
1942
1942
|
ready: !1,
|
|
1943
1943
|
volume: 1
|
|
1944
1944
|
};
|
|
1945
|
-
function
|
|
1946
|
-
return { ...
|
|
1945
|
+
function fn() {
|
|
1946
|
+
return { ...dn };
|
|
1947
1947
|
}
|
|
1948
|
-
function
|
|
1948
|
+
function pn(e) {
|
|
1949
1949
|
return e.complete && !!(e.currentSrc || e.getAttribute("src"));
|
|
1950
1950
|
}
|
|
1951
|
-
function
|
|
1952
|
-
e.currentTime = Number.isFinite(t.currentTime) ? t.currentTime : 0, e.duration = Number.isFinite(t.duration) ? t.duration : 0, e.muted = t.muted, e.paused = t.paused, e.volume = Number.isFinite(t.volume) ? t.volume : e.volume, n && n !== "error" && (e.errorKind = null), e.ready =
|
|
1951
|
+
function mn(e, t, n) {
|
|
1952
|
+
e.currentTime = Number.isFinite(t.currentTime) ? t.currentTime : 0, e.duration = Number.isFinite(t.duration) ? t.duration : 0, e.muted = t.muted, e.paused = t.paused, e.volume = Number.isFinite(t.volume) ? t.volume : e.volume, n && n !== "error" && (e.errorKind = null), e.ready = hn(t, n);
|
|
1953
1953
|
}
|
|
1954
|
-
function
|
|
1954
|
+
function hn(e, t) {
|
|
1955
1955
|
return t === "error" || t === "loadstart" || t === "waiting" || t === "stalled" ? !1 : t === "canplay" || t === "canplaythrough" || t === "playing" ? !0 : e.readyState >= HTMLMediaElement.HAVE_CURRENT_DATA;
|
|
1956
1956
|
}
|
|
1957
1957
|
//#endregion
|
|
1958
1958
|
//#region src/components/viewer-core/loadError.ts
|
|
1959
|
-
var
|
|
1960
|
-
function
|
|
1959
|
+
var gn = /* @__PURE__ */ new Map();
|
|
1960
|
+
function _n(e) {
|
|
1961
1961
|
return e === "not-found" ? "404" : "Load error";
|
|
1962
1962
|
}
|
|
1963
|
-
function
|
|
1963
|
+
function vn(e) {
|
|
1964
1964
|
return e === "generic";
|
|
1965
1965
|
}
|
|
1966
|
-
function
|
|
1967
|
-
return
|
|
1966
|
+
function yn(e) {
|
|
1967
|
+
return bn(e).then((e) => e ?? "generic");
|
|
1968
1968
|
}
|
|
1969
|
-
function
|
|
1970
|
-
let t =
|
|
1969
|
+
function bn(e) {
|
|
1970
|
+
let t = gn.get(e);
|
|
1971
1971
|
if (t) return t;
|
|
1972
|
-
let n =
|
|
1973
|
-
return
|
|
1972
|
+
let n = xn(e);
|
|
1973
|
+
return gn.set(e, n), n;
|
|
1974
1974
|
}
|
|
1975
|
-
async function
|
|
1976
|
-
if (!
|
|
1975
|
+
async function xn(e) {
|
|
1976
|
+
if (!Sn(e)) return null;
|
|
1977
1977
|
try {
|
|
1978
1978
|
let t = await fetch(e, { method: "HEAD" });
|
|
1979
1979
|
return t.ok ? null : t.status === 404 ? "not-found" : "generic";
|
|
@@ -1981,12 +1981,12 @@ async function yn(e) {
|
|
|
1981
1981
|
return "generic";
|
|
1982
1982
|
}
|
|
1983
1983
|
}
|
|
1984
|
-
function
|
|
1984
|
+
function Sn(e) {
|
|
1985
1985
|
return /^(https?:\/\/|\/)/i.test(e);
|
|
1986
1986
|
}
|
|
1987
1987
|
//#endregion
|
|
1988
1988
|
//#region src/components/viewer-core/mediaPlayback.ts
|
|
1989
|
-
function
|
|
1989
|
+
function Cn(e) {
|
|
1990
1990
|
try {
|
|
1991
1991
|
let t = e.play();
|
|
1992
1992
|
t && typeof t.catch == "function" && t.catch(() => {});
|
|
@@ -1994,17 +1994,17 @@ function xn(e) {
|
|
|
1994
1994
|
}
|
|
1995
1995
|
//#endregion
|
|
1996
1996
|
//#region src/components/viewer-core/useMedia.ts
|
|
1997
|
-
function
|
|
1998
|
-
let t = D({}), n = D({}), r = D({}), a = D({}), o = D({}), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Set(), u = i(() => e.activeItem.value ?
|
|
1997
|
+
function wn(e) {
|
|
1998
|
+
let t = D({}), n = D({}), r = D({}), a = D({}), o = D({}), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Set(), u = i(() => e.activeItem.value ? $(e.activeItem.value) : null), d = i(() => e.activeMediaItem.value ? $(e.activeMediaItem.value) : null), f = i(() => {
|
|
1999
1999
|
let t = /* @__PURE__ */ new Map();
|
|
2000
|
-
for (let n of e.items.value) t.set(
|
|
2000
|
+
for (let n of e.items.value) t.set($(n), n);
|
|
2001
2001
|
return t;
|
|
2002
|
-
}), p = i(() => d.value ? r.value[d.value] ??
|
|
2003
|
-
|
|
2002
|
+
}), p = i(() => d.value ? r.value[d.value] ?? dn : dn), m = i(() => d.value ? p.value.duration : 0), h = i(() => m.value <= 0 ? 0 : Tn(p.value.currentTime / m.value * 100, 0, 100)), g = i(() => u.value ? L(u.value) : null);
|
|
2003
|
+
z(() => u.value, async () => {
|
|
2004
2004
|
await C();
|
|
2005
|
-
}),
|
|
2005
|
+
}), z(() => e.itemCount.value, async () => {
|
|
2006
2006
|
await C();
|
|
2007
|
-
}),
|
|
2007
|
+
}), z(() => e.loopFullscreenVideo.value, async () => {
|
|
2008
2008
|
await C();
|
|
2009
2009
|
});
|
|
2010
2010
|
function v(e, t) {
|
|
@@ -2022,10 +2022,10 @@ function Sn(e) {
|
|
|
2022
2022
|
c.delete(e);
|
|
2023
2023
|
}
|
|
2024
2024
|
function b(e, r) {
|
|
2025
|
-
r instanceof HTMLImageElement &&
|
|
2025
|
+
r instanceof HTMLImageElement && pn(r) && (t.value[e] = !0, n.value[e] = null, Y(e, r.currentSrc || r.src || re(e)));
|
|
2026
2026
|
}
|
|
2027
2027
|
function x() {
|
|
2028
|
-
|
|
2028
|
+
U(), a.value = {}, n.value = {}, t.value = {}, o.value = {}, r.value = {}, l.clear();
|
|
2029
2029
|
}
|
|
2030
2030
|
function S(e) {
|
|
2031
2031
|
delete t.value[e], delete n.value[e], delete o.value[e], delete r.value[e], l.forEach((t) => {
|
|
@@ -2034,24 +2034,24 @@ function Sn(e) {
|
|
|
2034
2034
|
}
|
|
2035
2035
|
async function C() {
|
|
2036
2036
|
if (!e.isEnabled.value) {
|
|
2037
|
-
|
|
2037
|
+
U();
|
|
2038
2038
|
return;
|
|
2039
2039
|
}
|
|
2040
2040
|
await _();
|
|
2041
2041
|
let t = u.value;
|
|
2042
2042
|
for (let [n, i] of s.entries()) {
|
|
2043
2043
|
if (n !== t || r.value[n]?.errorKind) {
|
|
2044
|
-
|
|
2044
|
+
H(i, n);
|
|
2045
2045
|
continue;
|
|
2046
2046
|
}
|
|
2047
|
-
i.muted = !1, i.loop = e.loopFullscreenVideo.value, i.playsInline = !0,
|
|
2047
|
+
i.muted = !1, i.loop = e.loopFullscreenVideo.value, i.playsInline = !0, Cn(i), W(n, i);
|
|
2048
2048
|
}
|
|
2049
2049
|
for (let [e, n] of c.entries()) {
|
|
2050
2050
|
if (e !== t || r.value[e]?.errorKind) {
|
|
2051
|
-
|
|
2051
|
+
H(n, e);
|
|
2052
2052
|
continue;
|
|
2053
2053
|
}
|
|
2054
|
-
|
|
2054
|
+
Cn(n), W(e, n);
|
|
2055
2055
|
}
|
|
2056
2056
|
}
|
|
2057
2057
|
function w(e, t) {
|
|
@@ -2060,16 +2060,16 @@ function Sn(e) {
|
|
|
2060
2060
|
let i = r.value[e]?.ready ?? !1;
|
|
2061
2061
|
W(e, n, t.type);
|
|
2062
2062
|
let a = r.value[e]?.ready ?? !1;
|
|
2063
|
-
!i && a && Y(e, n.currentSrc || n.src ||
|
|
2063
|
+
!i && a && Y(e, n.currentSrc || n.src || re(e));
|
|
2064
2064
|
}
|
|
2065
2065
|
}
|
|
2066
2066
|
function T(e, r) {
|
|
2067
2067
|
t.value[e] = !0, n.value[e] = null, Y(e, r);
|
|
2068
2068
|
}
|
|
2069
2069
|
async function E(r, i) {
|
|
2070
|
-
let a =
|
|
2070
|
+
let a = X(r) ?? e.activeItem.value;
|
|
2071
2071
|
t.value[r] = !1, n.value[r] = "generic";
|
|
2072
|
-
let o = await
|
|
2072
|
+
let o = await yn(i);
|
|
2073
2073
|
n.value[r] = o, a && e.onAssetError?.({
|
|
2074
2074
|
item: a,
|
|
2075
2075
|
occurrenceKey: r,
|
|
@@ -2079,7 +2079,7 @@ function Sn(e) {
|
|
|
2079
2079
|
});
|
|
2080
2080
|
}
|
|
2081
2081
|
async function O(t, n) {
|
|
2082
|
-
let r =
|
|
2082
|
+
let r = q(t), i = te(t), a = X(t) ?? e.activeMediaItem.value ?? e.activeItem.value;
|
|
2083
2083
|
if (r) {
|
|
2084
2084
|
r.pause();
|
|
2085
2085
|
try {
|
|
@@ -2087,7 +2087,7 @@ function Sn(e) {
|
|
|
2087
2087
|
} catch {}
|
|
2088
2088
|
}
|
|
2089
2089
|
i.currentTime = 0, i.duration = 0, i.paused = !0, i.ready = !1, i.errorKind = "generic";
|
|
2090
|
-
let o = await
|
|
2090
|
+
let o = await yn(n);
|
|
2091
2091
|
i.errorKind = o, a && e.onAssetError?.({
|
|
2092
2092
|
item: a,
|
|
2093
2093
|
occurrenceKey: t,
|
|
@@ -2097,28 +2097,28 @@ function Sn(e) {
|
|
|
2097
2097
|
});
|
|
2098
2098
|
}
|
|
2099
2099
|
function k(e, t, n) {
|
|
2100
|
-
e.button !== 0 || Date.now() < n ||
|
|
2100
|
+
e.button !== 0 || Date.now() < n || ne(s.get(t) ?? null);
|
|
2101
2101
|
}
|
|
2102
2102
|
function A(e, t, n) {
|
|
2103
|
-
e.button !== 0 || Date.now() < n ||
|
|
2103
|
+
e.button !== 0 || Date.now() < n || ne(q(t));
|
|
2104
2104
|
}
|
|
2105
2105
|
function j(e) {
|
|
2106
|
-
let t =
|
|
2106
|
+
let t = J(), n = d.value;
|
|
2107
2107
|
if (!t || !n || !(e.target instanceof HTMLInputElement)) return;
|
|
2108
2108
|
let r = Number.parseFloat(e.target.value);
|
|
2109
2109
|
if (!Number.isFinite(r)) return;
|
|
2110
|
-
let i =
|
|
2111
|
-
|
|
2110
|
+
let i = Tn(r, 0, m.value || 0);
|
|
2111
|
+
G(n, i, t), t.currentTime = i;
|
|
2112
2112
|
}
|
|
2113
2113
|
function M(e) {
|
|
2114
|
-
let t =
|
|
2114
|
+
let t = J(), n = d.value;
|
|
2115
2115
|
if (!t || !n || !(e.target instanceof HTMLInputElement)) return;
|
|
2116
|
-
let r =
|
|
2116
|
+
let r = Tn(Number.parseFloat(e.target.value), 0, 1);
|
|
2117
2117
|
t.volume = r, t.muted = r <= 0, r > 0 && (o.value[n] = r), W(n, t);
|
|
2118
2118
|
}
|
|
2119
2119
|
function N() {
|
|
2120
|
-
let e =
|
|
2121
|
-
!e || !t || (e.muted || e.volume <= 0 ? (e.volume =
|
|
2120
|
+
let e = J(), t = d.value;
|
|
2121
|
+
!e || !t || (e.muted || e.volume <= 0 ? (e.volume = K(t), e.muted = !1, o.value[t] = e.volume) : (o.value[t] = e.volume, e.muted = !0), W(t, e));
|
|
2122
2122
|
}
|
|
2123
2123
|
function P(e) {
|
|
2124
2124
|
return !!t.value[e] && !n.value[e];
|
|
@@ -2129,70 +2129,70 @@ function Sn(e) {
|
|
|
2129
2129
|
function I(e) {
|
|
2130
2130
|
return e.url;
|
|
2131
2131
|
}
|
|
2132
|
-
function
|
|
2132
|
+
function L(e) {
|
|
2133
2133
|
return n.value[e] ?? r.value[e]?.errorKind ?? null;
|
|
2134
2134
|
}
|
|
2135
|
-
function
|
|
2136
|
-
let t =
|
|
2137
|
-
return t ?
|
|
2135
|
+
function R(e) {
|
|
2136
|
+
let t = L(e);
|
|
2137
|
+
return t ? _n(t) : null;
|
|
2138
2138
|
}
|
|
2139
2139
|
function ee(e) {
|
|
2140
|
-
return
|
|
2140
|
+
return vn(L(e));
|
|
2141
2141
|
}
|
|
2142
|
-
function
|
|
2142
|
+
function B(e) {
|
|
2143
2143
|
return `${e}:${a.value[e] ?? 0}`;
|
|
2144
2144
|
}
|
|
2145
|
-
async function
|
|
2145
|
+
async function V(e) {
|
|
2146
2146
|
if (!ee(e)) return;
|
|
2147
2147
|
t.value[e] = !1, n.value[e] = null;
|
|
2148
|
-
let r =
|
|
2148
|
+
let r = te(e);
|
|
2149
2149
|
r.currentTime = 0, r.duration = 0, r.paused = !0, r.ready = !1, r.errorKind = null;
|
|
2150
|
-
let i =
|
|
2151
|
-
i &&
|
|
2150
|
+
let i = q(e);
|
|
2151
|
+
i && H(i, e), l.forEach((t) => {
|
|
2152
2152
|
t.startsWith(`${e}|`) && l.delete(t);
|
|
2153
2153
|
}), a.value[e] = (a.value[e] ?? 0) + 1, await _(), await C();
|
|
2154
2154
|
}
|
|
2155
|
-
function
|
|
2155
|
+
function H(e, t) {
|
|
2156
2156
|
e.pause();
|
|
2157
2157
|
try {
|
|
2158
2158
|
e.currentTime = 0;
|
|
2159
2159
|
} catch {}
|
|
2160
2160
|
W(t, e);
|
|
2161
2161
|
}
|
|
2162
|
-
function
|
|
2163
|
-
for (let [e, t] of s.entries())
|
|
2164
|
-
for (let [e, t] of c.entries())
|
|
2162
|
+
function U() {
|
|
2163
|
+
for (let [e, t] of s.entries()) H(t, e);
|
|
2164
|
+
for (let [e, t] of c.entries()) H(t, e);
|
|
2165
2165
|
}
|
|
2166
|
-
function
|
|
2167
|
-
return r.value[e] || (r.value[e] =
|
|
2166
|
+
function te(e) {
|
|
2167
|
+
return r.value[e] || (r.value[e] = fn()), r.value[e];
|
|
2168
2168
|
}
|
|
2169
2169
|
function W(e, t, n) {
|
|
2170
|
-
|
|
2170
|
+
mn(te(e), t, n), !t.muted && t.volume > 0 && (o.value[e] = t.volume);
|
|
2171
2171
|
}
|
|
2172
|
-
function
|
|
2173
|
-
let r =
|
|
2172
|
+
function G(e, t, n) {
|
|
2173
|
+
let r = te(e);
|
|
2174
2174
|
r.currentTime = t, r.duration = Number.isFinite(n.duration) ? n.duration : r.duration, r.muted = n.muted, r.paused = n.paused, r.volume = Number.isFinite(n.volume) ? n.volume : r.volume;
|
|
2175
2175
|
}
|
|
2176
|
-
function G(e) {
|
|
2177
|
-
return Cn(o.value[e] ?? 1, 0, 1);
|
|
2178
|
-
}
|
|
2179
2176
|
function K(e) {
|
|
2177
|
+
return Tn(o.value[e] ?? 1, 0, 1);
|
|
2178
|
+
}
|
|
2179
|
+
function q(e) {
|
|
2180
2180
|
return s.get(e) ?? c.get(e) ?? null;
|
|
2181
2181
|
}
|
|
2182
|
-
function
|
|
2183
|
-
return d.value ?
|
|
2182
|
+
function J() {
|
|
2183
|
+
return d.value ? q(d.value) : null;
|
|
2184
2184
|
}
|
|
2185
|
-
function
|
|
2185
|
+
function ne(e) {
|
|
2186
2186
|
if (e) {
|
|
2187
2187
|
if (e.paused) {
|
|
2188
|
-
|
|
2188
|
+
Cn(e);
|
|
2189
2189
|
return;
|
|
2190
2190
|
}
|
|
2191
2191
|
e.pause();
|
|
2192
2192
|
}
|
|
2193
2193
|
}
|
|
2194
2194
|
function Y(t, n) {
|
|
2195
|
-
let r =
|
|
2195
|
+
let r = X(t) ?? e.activeMediaItem.value ?? e.activeItem.value;
|
|
2196
2196
|
if (!r || !n) return;
|
|
2197
2197
|
let i = `${t}|${n}`;
|
|
2198
2198
|
l.has(i) || (l.add(i), e.onAssetLoad?.({
|
|
@@ -2202,20 +2202,20 @@ function Sn(e) {
|
|
|
2202
2202
|
url: n
|
|
2203
2203
|
}));
|
|
2204
2204
|
}
|
|
2205
|
-
function
|
|
2205
|
+
function X(e) {
|
|
2206
2206
|
return f.value.get(e) ?? null;
|
|
2207
2207
|
}
|
|
2208
|
-
function
|
|
2209
|
-
return
|
|
2208
|
+
function re(e) {
|
|
2209
|
+
return X(e)?.url ?? null;
|
|
2210
2210
|
}
|
|
2211
2211
|
return {
|
|
2212
2212
|
activeAssetErrorKind: g,
|
|
2213
2213
|
activeMediaDuration: m,
|
|
2214
2214
|
activeMediaProgress: h,
|
|
2215
2215
|
activeMediaState: p,
|
|
2216
|
-
getAssetErrorKind:
|
|
2217
|
-
getAssetErrorLabel:
|
|
2218
|
-
getAssetRenderKey:
|
|
2216
|
+
getAssetErrorKind: L,
|
|
2217
|
+
getAssetErrorLabel: R,
|
|
2218
|
+
getAssetRenderKey: B,
|
|
2219
2219
|
getImageSource: I,
|
|
2220
2220
|
isImageReady: P,
|
|
2221
2221
|
isMediaReady: F,
|
|
@@ -2235,20 +2235,20 @@ function Sn(e) {
|
|
|
2235
2235
|
registerVideoElement: v,
|
|
2236
2236
|
resetAssetState: S,
|
|
2237
2237
|
resetMediaState: x,
|
|
2238
|
-
retryAsset:
|
|
2238
|
+
retryAsset: V,
|
|
2239
2239
|
syncMediaPlayback: C
|
|
2240
2240
|
};
|
|
2241
2241
|
}
|
|
2242
|
-
function
|
|
2242
|
+
function Tn(e, t, n) {
|
|
2243
2243
|
return Math.min(Math.max(e, t), n);
|
|
2244
2244
|
}
|
|
2245
2245
|
//#endregion
|
|
2246
2246
|
//#region src/components/viewer-core/virtualization.ts
|
|
2247
|
-
var
|
|
2247
|
+
var En = {
|
|
2248
2248
|
backward: 1,
|
|
2249
2249
|
forward: 3
|
|
2250
2250
|
};
|
|
2251
|
-
function
|
|
2251
|
+
function Dn(e, t, n = En) {
|
|
2252
2252
|
return t <= 0 ? {
|
|
2253
2253
|
start: 0,
|
|
2254
2254
|
end: -1
|
|
@@ -2257,14 +2257,14 @@ function Tn(e, t, n = wn) {
|
|
|
2257
2257
|
end: Math.min(t - 1, e + n.forward)
|
|
2258
2258
|
};
|
|
2259
2259
|
}
|
|
2260
|
-
function
|
|
2261
|
-
let r =
|
|
2260
|
+
function On(e, t, n = En) {
|
|
2261
|
+
let r = Dn(t, e.length, n);
|
|
2262
2262
|
return r.end < r.start ? [] : e.slice(r.start, r.end + 1).map((e, t) => ({
|
|
2263
2263
|
item: e,
|
|
2264
2264
|
index: r.start + t
|
|
2265
2265
|
}));
|
|
2266
2266
|
}
|
|
2267
|
-
function
|
|
2267
|
+
function kn(e, t, n, r, i) {
|
|
2268
2268
|
return {
|
|
2269
2269
|
transform: `translate3d(0, ${(e - t) * n + r}px, 0)`,
|
|
2270
2270
|
transition: i ? "none" : "transform 320ms cubic-bezier(0.22, 1, 0.36, 1)"
|
|
@@ -2272,12 +2272,12 @@ function Dn(e, t, n, r, i) {
|
|
|
2272
2272
|
}
|
|
2273
2273
|
//#endregion
|
|
2274
2274
|
//#region src/components/viewer-core/useViewer.ts
|
|
2275
|
-
function
|
|
2276
|
-
let r = i(() => e.items), a = i(() => e.activeIndex ?? 0), o = i(() => e.errorMessage ?? null), s = i(() => e.loading ?? !1), c = i(() => e.hasNextPage ?? !1), l = i(() => e.loopFullscreenVideo ?? !0), u = i(() => e.paginationDetail ?? null), d = i(() =>
|
|
2275
|
+
function An(e, t, n = {}) {
|
|
2276
|
+
let r = i(() => e.items), a = i(() => e.activeIndex ?? 0), o = i(() => e.errorMessage ?? null), s = i(() => e.loading ?? !1), c = i(() => e.hasNextPage ?? !1), l = i(() => e.loopFullscreenVideo ?? !0), u = i(() => e.paginationDetail ?? null), d = i(() => cn({
|
|
2277
2277
|
itemCount: r.value.length,
|
|
2278
2278
|
loading: s.value,
|
|
2279
2279
|
phase: e.phase
|
|
2280
|
-
})), f = i(() => !1), p = D(null), m = D(0), h = D(!1), g = D(1), _ = n.enabled ?? i(() => !0), v = null, y = 0, b = 0, x = 0, S = i(() => r.value.length === 0 ? 0 : P(a.value, 0, r.value.length - 1)), C = i(() => r.value[S.value] ?? null), w = i(() => C.value?.type === "audio" || C.value?.type === "video" ? C.value : null), T =
|
|
2280
|
+
})), f = i(() => !1), p = D(null), m = D(0), h = D(!1), g = D(1), _ = n.enabled ?? i(() => !0), v = null, y = 0, b = 0, x = 0, S = i(() => r.value.length === 0 ? 0 : P(a.value, 0, r.value.length - 1)), C = i(() => r.value[S.value] ?? null), w = i(() => C.value?.type === "audio" || C.value?.type === "video" ? C.value : null), T = wn({
|
|
2281
2281
|
items: r,
|
|
2282
2282
|
activeItem: C,
|
|
2283
2283
|
activeMediaItem: w,
|
|
@@ -2286,17 +2286,17 @@ function On(e, t, n = {}) {
|
|
|
2286
2286
|
loopFullscreenVideo: l,
|
|
2287
2287
|
onAssetError: n.onAssetError,
|
|
2288
2288
|
onAssetLoad: n.onAssetLoad
|
|
2289
|
-
}), E = i(() => r.value.length > 0 && S.value === r.value.length - 1), O = i(() =>
|
|
2289
|
+
}), E = i(() => r.value.length > 0 && S.value === r.value.length - 1), O = i(() => ln({
|
|
2290
2290
|
errorMessage: o.value,
|
|
2291
2291
|
hasItems: r.value.length > 0,
|
|
2292
2292
|
hasNextPage: c.value,
|
|
2293
2293
|
phase: d.value,
|
|
2294
2294
|
surface: "fullscreen"
|
|
2295
|
-
})), k = i(() => O.value?.kind ?? null), A = i(() => O.value?.message ?? null), j = i(() => Math.min(96, g.value * .15 || 96)), M = i(() =>
|
|
2296
|
-
|
|
2295
|
+
})), k = i(() => O.value?.kind ?? null), A = i(() => O.value?.message ?? null), j = i(() => Math.min(96, g.value * .15 || 96)), M = i(() => Dn(S.value, r.value.length)), N = i(() => On(r.value, S.value));
|
|
2296
|
+
un({
|
|
2297
2297
|
enabled: _,
|
|
2298
2298
|
onDisable() {
|
|
2299
|
-
|
|
2299
|
+
U(), T.resetMediaState();
|
|
2300
2300
|
},
|
|
2301
2301
|
onEnable() {
|
|
2302
2302
|
return T.syncMediaPlayback();
|
|
@@ -2323,55 +2323,55 @@ function On(e, t, n = {}) {
|
|
|
2323
2323
|
return t && !I(-1) || n && !I(1) ? e * .24 : e;
|
|
2324
2324
|
}
|
|
2325
2325
|
function z(e) {
|
|
2326
|
-
!_.value || r.value.length === 0 || e.pointerType === "mouse" ||
|
|
2326
|
+
!_.value || r.value.length === 0 || e.pointerType === "mouse" || Q(e.target) || (v = e.pointerId, y = e.clientY, m.value = 0, h.value = !0, p.value?.setPointerCapture?.(e.pointerId));
|
|
2327
2327
|
}
|
|
2328
2328
|
function ee(e) {
|
|
2329
2329
|
!_.value || !h.value || v !== e.pointerId || (m.value = R(e.clientY - y));
|
|
2330
2330
|
}
|
|
2331
|
-
function te(e) {
|
|
2332
|
-
!_.value || v !== e.pointerId || (p.value?.releasePointerCapture?.(e.pointerId), V());
|
|
2333
|
-
}
|
|
2334
2331
|
function B(e) {
|
|
2335
2332
|
!_.value || v !== e.pointerId || (p.value?.releasePointerCapture?.(e.pointerId), H());
|
|
2336
2333
|
}
|
|
2337
|
-
function V() {
|
|
2338
|
-
|
|
2334
|
+
function V(e) {
|
|
2335
|
+
!_.value || v !== e.pointerId || (p.value?.releasePointerCapture?.(e.pointerId), U());
|
|
2339
2336
|
}
|
|
2340
2337
|
function H() {
|
|
2338
|
+
Math.abs(m.value) >= j.value && (x = Date.now() + 250, L(m.value < 0 ? 1 : -1)), U();
|
|
2339
|
+
}
|
|
2340
|
+
function U() {
|
|
2341
2341
|
m.value = 0, h.value = !1, v = null;
|
|
2342
2342
|
}
|
|
2343
|
-
function
|
|
2344
|
-
if (!_.value || r.value.length === 0 || h.value ||
|
|
2343
|
+
function te(e) {
|
|
2344
|
+
if (!_.value || r.value.length === 0 || h.value || Q(e.target) || Math.abs(e.deltaY) < Math.max(Math.abs(e.deltaX), 24)) return;
|
|
2345
2345
|
e.preventDefault();
|
|
2346
2346
|
let t = Date.now();
|
|
2347
2347
|
t < b || (b = t + 400, L(e.deltaY > 0 ? 1 : -1));
|
|
2348
2348
|
}
|
|
2349
2349
|
function W(e) {
|
|
2350
|
-
!_.value || r.value.length === 0 ||
|
|
2350
|
+
!_.value || r.value.length === 0 || ge(e.target) || ((e.key === "ArrowDown" || e.key === "PageDown") && (e.preventDefault(), L(1)), (e.key === "ArrowUp" || e.key === "PageUp") && (e.preventDefault(), L(-1)));
|
|
2351
2351
|
}
|
|
2352
|
-
function
|
|
2352
|
+
function G(e, t) {
|
|
2353
2353
|
T.onVideoClick(e, t, x);
|
|
2354
2354
|
}
|
|
2355
|
-
function
|
|
2355
|
+
function K(e, t) {
|
|
2356
2356
|
T.onAudioCoverClick(e, t, x);
|
|
2357
2357
|
}
|
|
2358
|
-
function
|
|
2358
|
+
function q(e) {
|
|
2359
2359
|
T.onMediaSeekInput(e);
|
|
2360
2360
|
}
|
|
2361
|
-
function
|
|
2361
|
+
function J(e) {
|
|
2362
2362
|
T.onMediaVolumeInput(e);
|
|
2363
2363
|
}
|
|
2364
|
-
function
|
|
2364
|
+
function ne() {
|
|
2365
2365
|
T.onMediaVolumeToggle();
|
|
2366
2366
|
}
|
|
2367
2367
|
function Y(e) {
|
|
2368
2368
|
return e.type === "image" || e.type === "video";
|
|
2369
2369
|
}
|
|
2370
|
-
function
|
|
2370
|
+
function X(e) {
|
|
2371
2371
|
return e.type === "audio";
|
|
2372
2372
|
}
|
|
2373
|
-
function
|
|
2374
|
-
return
|
|
2373
|
+
function re(e) {
|
|
2374
|
+
return kn(e, S.value, g.value, m.value, h.value);
|
|
2375
2375
|
}
|
|
2376
2376
|
return {
|
|
2377
2377
|
activeItem: C,
|
|
@@ -2386,32 +2386,32 @@ function On(e, t, n = {}) {
|
|
|
2386
2386
|
getAssetErrorKind: T.getAssetErrorKind,
|
|
2387
2387
|
getAssetErrorLabel: T.getAssetErrorLabel,
|
|
2388
2388
|
getAssetRenderKey: T.getAssetRenderKey,
|
|
2389
|
-
formatPlaybackTime:
|
|
2389
|
+
formatPlaybackTime: sn,
|
|
2390
2390
|
getImageSource: T.getImageSource,
|
|
2391
|
-
getSlideStyle:
|
|
2391
|
+
getSlideStyle: re,
|
|
2392
2392
|
hasNextPage: c,
|
|
2393
2393
|
isAtEnd: E,
|
|
2394
|
-
isAudio:
|
|
2394
|
+
isAudio: X,
|
|
2395
2395
|
isVisual: Y,
|
|
2396
2396
|
items: r,
|
|
2397
2397
|
loading: s,
|
|
2398
2398
|
mediaStates: T.mediaStates,
|
|
2399
2399
|
isImageReady: T.isImageReady,
|
|
2400
2400
|
isMediaReady: T.isMediaReady,
|
|
2401
|
-
onAudioCoverClick:
|
|
2401
|
+
onAudioCoverClick: K,
|
|
2402
2402
|
onImageError: T.onImageError,
|
|
2403
2403
|
onImageLoad: T.onImageLoad,
|
|
2404
2404
|
onMediaEvent: T.onMediaEvent,
|
|
2405
2405
|
onMediaError: T.onMediaError,
|
|
2406
|
-
onMediaSeekInput:
|
|
2407
|
-
onMediaVolumeInput:
|
|
2408
|
-
onMediaVolumeToggle:
|
|
2409
|
-
onPointerCancel:
|
|
2406
|
+
onMediaSeekInput: q,
|
|
2407
|
+
onMediaVolumeInput: J,
|
|
2408
|
+
onMediaVolumeToggle: ne,
|
|
2409
|
+
onPointerCancel: V,
|
|
2410
2410
|
onPointerDown: z,
|
|
2411
2411
|
onPointerMove: ee,
|
|
2412
|
-
onPointerUp:
|
|
2413
|
-
onVideoClick:
|
|
2414
|
-
onWheel:
|
|
2412
|
+
onPointerUp: B,
|
|
2413
|
+
onVideoClick: G,
|
|
2414
|
+
onWheel: te,
|
|
2415
2415
|
registerAudioElement: T.registerAudioElement,
|
|
2416
2416
|
registerImageElement: T.registerImageElement,
|
|
2417
2417
|
registerVideoElement: T.registerVideoElement,
|
|
@@ -2430,21 +2430,21 @@ function On(e, t, n = {}) {
|
|
|
2430
2430
|
}
|
|
2431
2431
|
//#endregion
|
|
2432
2432
|
//#region src/components/viewer-core/theme.ts
|
|
2433
|
-
var
|
|
2433
|
+
var jn = "bg-[linear-gradient(180deg,#0a0b10,#05060a)]", Mn = "bg-[linear-gradient(180deg,#0b0c11,#06070b)]", Nn = {
|
|
2434
2434
|
image: !0,
|
|
2435
2435
|
video: !0,
|
|
2436
2436
|
audio: !0,
|
|
2437
2437
|
other: !0
|
|
2438
2438
|
};
|
|
2439
|
-
function
|
|
2440
|
-
return
|
|
2439
|
+
function Pn(e) {
|
|
2440
|
+
return Nn[e], jn;
|
|
2441
2441
|
}
|
|
2442
|
-
function
|
|
2443
|
-
return
|
|
2442
|
+
function Fn(e) {
|
|
2443
|
+
return Nn[e], Mn;
|
|
2444
2444
|
}
|
|
2445
2445
|
//#endregion
|
|
2446
2446
|
//#region src/components/viewer-core/useFullscreenAssetEvents.ts
|
|
2447
|
-
function
|
|
2447
|
+
function In(e) {
|
|
2448
2448
|
function t(t, n) {
|
|
2449
2449
|
return e.fullscreenMedia.shouldHandleSlideAssetEvent(t, n) ? e.fullscreenMedia.getItemKey(n) : null;
|
|
2450
2450
|
}
|
|
@@ -2477,7 +2477,7 @@ function Pn(e) {
|
|
|
2477
2477
|
}
|
|
2478
2478
|
//#endregion
|
|
2479
2479
|
//#region src/components/viewer-core/dominantImageTone.ts
|
|
2480
|
-
function
|
|
2480
|
+
function Ln(e) {
|
|
2481
2481
|
if (e.naturalWidth <= 0 || e.naturalHeight <= 0) return null;
|
|
2482
2482
|
let t = document.createElement("canvas"), n = t.getContext("2d", { willReadFrequently: !0 });
|
|
2483
2483
|
if (!n) return null;
|
|
@@ -2492,20 +2492,20 @@ function Fn(e) {
|
|
|
2492
2492
|
r += d, i += s * d, a += c * d, o += l * d;
|
|
2493
2493
|
}
|
|
2494
2494
|
return r <= 0 ? null : {
|
|
2495
|
-
r:
|
|
2496
|
-
g:
|
|
2497
|
-
b:
|
|
2495
|
+
r: Rn(Math.round(i / r)),
|
|
2496
|
+
g: Rn(Math.round(a / r)),
|
|
2497
|
+
b: Rn(Math.round(o / r))
|
|
2498
2498
|
};
|
|
2499
2499
|
} catch {
|
|
2500
2500
|
return null;
|
|
2501
2501
|
}
|
|
2502
2502
|
}
|
|
2503
|
-
function
|
|
2503
|
+
function Rn(e) {
|
|
2504
2504
|
return Math.min(235, Math.max(26, e));
|
|
2505
2505
|
}
|
|
2506
2506
|
//#endregion
|
|
2507
2507
|
//#region src/components/viewer-core/useFullscreenDominantTone.ts
|
|
2508
|
-
function
|
|
2508
|
+
function zn(e) {
|
|
2509
2509
|
let t = D({}), n = i(() => e.activeItem.value ? e.getItemKey(e.activeItem.value) : null), r = i(() => !e.showDominantImageTone.value || e.activeItem.value?.type !== "image" || !n.value || !e.isImageReady(n.value) ? null : t.value[n.value] ?? null), a = i(() => {
|
|
2510
2510
|
if (!r.value) return;
|
|
2511
2511
|
let { r: e, g: t, b: n } = r.value;
|
|
@@ -2515,12 +2515,12 @@ function Ln(e) {
|
|
|
2515
2515
|
let { r: e, g: t, b: n } = r.value;
|
|
2516
2516
|
return { background: `radial-gradient(circle at center, rgba(${e},${t},${n},0.42) 0%, transparent 44%), linear-gradient(180deg,#0b0c11,#06070b)` };
|
|
2517
2517
|
});
|
|
2518
|
-
|
|
2518
|
+
z(() => e.showDominantImageTone.value, (e) => {
|
|
2519
2519
|
e || (t.value = {});
|
|
2520
2520
|
});
|
|
2521
2521
|
function s(n, r) {
|
|
2522
2522
|
if (!e.showDominantImageTone.value) return;
|
|
2523
|
-
let i =
|
|
2523
|
+
let i = Ln(r);
|
|
2524
2524
|
i && (t.value[n] = i);
|
|
2525
2525
|
}
|
|
2526
2526
|
return {
|
|
@@ -2531,7 +2531,7 @@ function Ln(e) {
|
|
|
2531
2531
|
}
|
|
2532
2532
|
//#endregion
|
|
2533
2533
|
//#region src/components/SurfaceEmptyState.vue?vue&type=script&setup=true&lang.ts
|
|
2534
|
-
var
|
|
2534
|
+
var Bn = ["data-surface"], Vn = ["data-surface"], Hn = /* @__PURE__ */ d({
|
|
2535
2535
|
inheritAttrs: !1,
|
|
2536
2536
|
__name: "SurfaceEmptyState",
|
|
2537
2537
|
props: {
|
|
@@ -2540,36 +2540,36 @@ var Rn = ["data-surface"], zn = ["data-surface"], Bn = /* @__PURE__ */ d({
|
|
|
2540
2540
|
surface: {}
|
|
2541
2541
|
},
|
|
2542
2542
|
setup(e) {
|
|
2543
|
-
let t =
|
|
2544
|
-
return (n, r) => e.mode === "inline" ? (w(), s("div", g({ key: 0 },
|
|
2543
|
+
let t = I();
|
|
2544
|
+
return (n, r) => e.mode === "inline" ? (w(), s("div", g({ key: 0 }, F(t), {
|
|
2545
2545
|
"data-testid": "vibe-empty-state-inline",
|
|
2546
2546
|
"data-surface": e.surface,
|
|
2547
2547
|
class: ["pointer-events-none absolute z-[4] text-center", e.surface === "grid" ? "inset-x-0 top-[clamp(6rem,22vh,11rem)] flex justify-center px-6" : "inset-0 grid place-items-center px-[clamp(2rem,4vw,3rem)] py-[clamp(2rem,4vw,3rem)]"]
|
|
2548
|
-
}), [k(n.$slots, "default", {}, () => [c("p", { class: v(["m-0 text-[0.82rem] font-medium tracking-[0.08em]", e.surface === "grid" ? "text-[#f7f1ea]/58" : "text-[#f7f1ea]/64"]) },
|
|
2548
|
+
}), [k(n.$slots, "default", {}, () => [c("p", { class: v(["m-0 text-[0.82rem] font-medium tracking-[0.08em]", e.surface === "grid" ? "text-[#f7f1ea]/58" : "text-[#f7f1ea]/64"]) }, M(e.message), 3)])], 16, Bn)) : (w(), s("div", g({ key: 1 }, F(t), { class: ["pointer-events-none absolute z-[4]", e.surface === "grid" ? "inset-x-0 bottom-0 flex justify-center px-6" : "bottom-[1.8rem] left-1/2 -translate-x-1/2 max-[720px]:bottom-[1.3rem]"] }), [k(n.$slots, "default", {}, () => [c("span", {
|
|
2549
2549
|
"data-testid": "vibe-empty-state-badge",
|
|
2550
2550
|
"data-surface": e.surface,
|
|
2551
2551
|
class: v(["inline-flex items-center border border-white/14 backdrop-blur-[18px]", e.surface === "grid" ? "bg-black/55 px-4 py-3 text-[0.82rem] font-medium tracking-[0.08em] text-[#f7f1ea]/72" : "w-auto bg-black/40 px-5 py-3 text-[0.82rem] font-medium tracking-[0.08em] text-[#f7f1ea]/74 max-[720px]:w-[calc(100%-2.5rem)] max-[720px]:justify-center"])
|
|
2552
|
-
},
|
|
2552
|
+
}, M(e.message), 11, Vn)])], 16));
|
|
2553
2553
|
}
|
|
2554
|
-
}),
|
|
2554
|
+
}), Un = { class: "relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]" }, Wn = {
|
|
2555
2555
|
key: 0,
|
|
2556
2556
|
class: "relative h-full min-h-0"
|
|
2557
|
-
},
|
|
2557
|
+
}, Gn = [
|
|
2558
2558
|
"data-item-id",
|
|
2559
2559
|
"data-occurrence-key",
|
|
2560
2560
|
"data-index",
|
|
2561
2561
|
"data-active",
|
|
2562
2562
|
"aria-hidden"
|
|
2563
|
-
],
|
|
2563
|
+
], Kn = {
|
|
2564
2564
|
key: 0,
|
|
2565
2565
|
"data-testid": "vibe-asset-spinner",
|
|
2566
2566
|
class: "pointer-events-none absolute inset-0 z-[2] grid place-items-center"
|
|
2567
|
-
},
|
|
2567
|
+
}, qn = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)] backdrop-blur-[18px]" }, Jn = ["data-kind"], Yn = { class: "grid justify-items-center gap-4 border border-white/14 bg-black/45 px-8 py-7 text-center backdrop-blur-[18px]" }, Xn = { class: "m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70" }, Zn = ["onClick"], Qn = [
|
|
2568
2568
|
"src",
|
|
2569
2569
|
"alt",
|
|
2570
2570
|
"onLoad",
|
|
2571
2571
|
"onError"
|
|
2572
|
-
],
|
|
2572
|
+
], $n = [
|
|
2573
2573
|
"loop",
|
|
2574
2574
|
"src",
|
|
2575
2575
|
"preload",
|
|
@@ -2588,15 +2588,15 @@ var Rn = ["data-surface"], zn = ["data-surface"], Bn = /* @__PURE__ */ d({
|
|
|
2588
2588
|
"onStalled",
|
|
2589
2589
|
"onTimeupdate",
|
|
2590
2590
|
"onWaiting"
|
|
2591
|
-
],
|
|
2591
|
+
], er = { class: "relative grid aspect-square w-[clamp(320px,46vw,560px)] max-w-[calc(100vw-2.5rem)] place-items-center" }, tr = [
|
|
2592
2592
|
"aria-label",
|
|
2593
2593
|
"disabled",
|
|
2594
2594
|
"onClick"
|
|
2595
|
-
],
|
|
2595
|
+
], nr = { class: "relative z-[1] inline-flex min-h-[4.25rem] min-w-[4.25rem] items-center justify-center border border-white/18 bg-emerald-500/12 p-4 backdrop-blur-[20px]" }, rr = { class: "pointer-events-none absolute bottom-4 right-4 inline-flex h-10 w-10 items-center justify-center border border-white/14 bg-black/50 backdrop-blur-[18px]" }, ir = {
|
|
2596
2596
|
key: 0,
|
|
2597
2597
|
"data-testid": "vibe-asset-spinner",
|
|
2598
2598
|
class: "pointer-events-none absolute inset-0 z-[3] grid place-items-center"
|
|
2599
|
-
},
|
|
2599
|
+
}, ar = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)] backdrop-blur-[18px]" }, or = ["data-kind"], sr = { class: "m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70" }, cr = ["onClick"], lr = [
|
|
2600
2600
|
"src",
|
|
2601
2601
|
"preload",
|
|
2602
2602
|
"onCanplay",
|
|
@@ -2612,26 +2612,26 @@ var Rn = ["data-surface"], zn = ["data-surface"], Bn = /* @__PURE__ */ d({
|
|
|
2612
2612
|
"onStalled",
|
|
2613
2613
|
"onTimeupdate",
|
|
2614
2614
|
"onWaiting"
|
|
2615
|
-
],
|
|
2615
|
+
], ur = {
|
|
2616
2616
|
key: 2,
|
|
2617
2617
|
class: "relative z-[1] grid w-full max-w-[1100px] justify-items-center gap-6 px-[clamp(2rem,4vw,3rem)] py-[clamp(2rem,4vw,3rem)] text-center"
|
|
2618
|
-
},
|
|
2618
|
+
}, dr = { class: "inline-flex min-h-[4.25rem] min-w-[4.25rem] items-center justify-center border border-white/18 bg-white/8 p-4 backdrop-blur-[20px]" }, fr = {
|
|
2619
2619
|
key: 0,
|
|
2620
2620
|
"data-testid": "vibe-fullscreen-overlay",
|
|
2621
2621
|
class: "pointer-events-none absolute inset-0 z-[6]"
|
|
2622
|
-
},
|
|
2622
|
+
}, pr = { class: "h-full w-full" }, mr = {
|
|
2623
2623
|
key: 1,
|
|
2624
2624
|
"data-testid": "vibe-forward-fill-placeholder",
|
|
2625
2625
|
class: "grid h-full min-h-0 place-items-center px-6 text-center"
|
|
2626
|
-
},
|
|
2626
|
+
}, hr = { class: "grid justify-items-center gap-4 border border-white/14 bg-black/40 px-8 py-7 backdrop-blur-[18px]" }, gr = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)]" }, _r = { class: "m-0 text-[0.78rem] font-bold uppercase tracking-[0.24em] text-[#f7f1ea]/72" }, vr = {
|
|
2627
2627
|
key: 0,
|
|
2628
2628
|
"data-testid": "vibe-fullscreen-aside",
|
|
2629
2629
|
class: "h-full min-h-0 overflow-hidden border-l border-white/10 bg-black/45 backdrop-blur-[18px]"
|
|
2630
|
-
},
|
|
2630
|
+
}, yr = { class: "h-full min-h-0 overflow-y-auto overscroll-y-contain" }, br = {
|
|
2631
2631
|
key: 0,
|
|
2632
2632
|
"data-testid": "vibe-fullscreen-aside",
|
|
2633
2633
|
class: "absolute inset-y-0 right-0 z-[6] w-full max-w-[22rem] overflow-hidden border-l border-white/10 bg-black/82 backdrop-blur-[18px]"
|
|
2634
|
-
},
|
|
2634
|
+
}, xr = { class: "h-full min-h-0 overflow-y-auto overscroll-y-contain" }, Sr = 1280, Cr = 768, wr = /* @__PURE__ */ d({
|
|
2635
2635
|
__name: "FullscreenSurface",
|
|
2636
2636
|
props: {
|
|
2637
2637
|
active: {
|
|
@@ -2683,27 +2683,27 @@ var Rn = ["data-surface"], zn = ["data-surface"], Bn = /* @__PURE__ */ d({
|
|
|
2683
2683
|
},
|
|
2684
2684
|
emits: ["back-to-list", "update:activeIndex"],
|
|
2685
2685
|
setup(e, { emit: n }) {
|
|
2686
|
-
let d = e, f =
|
|
2686
|
+
let d = e, f = L(), m = n, h = An(d, (e, t) => {
|
|
2687
2687
|
m("update:activeIndex", t);
|
|
2688
2688
|
}, {
|
|
2689
|
-
enabled:
|
|
2689
|
+
enabled: N(d, "active"),
|
|
2690
2690
|
onAssetError: d.reportAssetError ?? void 0,
|
|
2691
2691
|
onAssetLoad: d.reportAssetLoad ?? void 0
|
|
2692
|
-
}), _ = D(typeof window > "u" ?
|
|
2693
|
-
active:
|
|
2692
|
+
}), _ = D(typeof window > "u" ? Sr : window.innerWidth || Sr), C = tn({
|
|
2693
|
+
active: N(d, "active"),
|
|
2694
2694
|
items: h.items,
|
|
2695
2695
|
resolvedActiveIndex: h.resolvedActiveIndex,
|
|
2696
2696
|
viewer: h
|
|
2697
|
-
}), T = i(() =>
|
|
2697
|
+
}), T = i(() => Pn(h.activeItem.value?.type ?? "image")), { activeSlideToneStyle: E, activeStageToneStyle: j, updateFromImageElement: P } = zn({
|
|
2698
2698
|
activeItem: h.activeItem,
|
|
2699
2699
|
getItemKey: C.getItemKey,
|
|
2700
2700
|
isImageReady: h.isImageReady,
|
|
2701
|
-
showDominantImageTone:
|
|
2702
|
-
}),
|
|
2701
|
+
showDominantImageTone: N(d, "showDominantImageTone")
|
|
2702
|
+
}), I = In({
|
|
2703
2703
|
fullscreenMedia: C,
|
|
2704
|
-
updateDominantToneFromImageElement:
|
|
2704
|
+
updateDominantToneFromImageElement: _e,
|
|
2705
2705
|
viewer: h
|
|
2706
|
-
}), R = i(() => h.activeMediaItem.value && !h.activeAssetErrorKind.value ? "bottom-[5.8rem] max-[720px]:bottom-[7.4rem]" : "bottom-[1.8rem] max-[720px]:bottom-[1.3rem]"),
|
|
2706
|
+
}), R = i(() => h.activeMediaItem.value && !h.activeAssetErrorKind.value ? "bottom-[5.8rem] max-[720px]:bottom-[7.4rem]" : "bottom-[1.8rem] max-[720px]:bottom-[1.3rem]"), z = i(() => !!h.activeMediaItem.value && !h.activeAssetErrorKind.value), ee = i(() => _.value < Cr ? "vertical" : "horizontal"), V = i(() => z.value ? "pb-[5.75rem] max-[720px]:pb-[7rem]" : ""), U = i(() => d.activeIndex >= d.items.length && (d.loading || d.hasNextPage)), te = i(() => d.hasNextPage ? "Loading more items" : h.statusMessage.value ?? "Loading more items"), W = i(() => {
|
|
2707
2707
|
let e = h.activeItem.value;
|
|
2708
2708
|
return e ? {
|
|
2709
2709
|
hasNextPage: d.hasNextPage,
|
|
@@ -2713,46 +2713,46 @@ var Rn = ["data-surface"], zn = ["data-surface"], Bn = /* @__PURE__ */ d({
|
|
|
2713
2713
|
paginationDetail: d.paginationDetail,
|
|
2714
2714
|
total: d.items.length
|
|
2715
2715
|
} : null;
|
|
2716
|
-
}),
|
|
2716
|
+
}), G = i(() => !W.value || !f["fullscreen-header-actions"] ? [] : f["fullscreen-header-actions"](W.value)), K = i(() => !W.value || !f["fullscreen-aside"] ? [] : f["fullscreen-aside"](W.value)), q = i(() => !d.showStatusBadges || !W.value || !h.statusKind.value || !h.statusMessage.value ? null : {
|
|
2717
2717
|
...W.value,
|
|
2718
2718
|
kind: h.statusKind.value,
|
|
2719
2719
|
message: h.statusMessage.value
|
|
2720
|
-
}),
|
|
2721
|
-
gridTemplateColumns:
|
|
2720
|
+
}), J = i(() => !q.value || !f["fullscreen-status"] ? [] : f["fullscreen-status"](q.value)), ne = i(() => ({
|
|
2721
|
+
gridTemplateColumns: re.value ? "minmax(0, 1fr) 22rem" : "minmax(0, 1fr) 0rem",
|
|
2722
2722
|
transition: "grid-template-columns 320ms cubic-bezier(0.22, 1, 0.36, 1)"
|
|
2723
|
-
})), Y = i(() =>
|
|
2724
|
-
emptyStateMode:
|
|
2723
|
+
})), Y = i(() => nn(G.value)), X = i(() => nn(K.value)), re = i(() => X.value && _.value >= Sr), ie = i(() => X.value && !re.value), ae = i(() => nn(J.value)), { emptyStateProps: Z, showBadgeEmptyState: ue, showCustomEmptyState: de, showInlineEmptyState: fe } = on({
|
|
2724
|
+
emptyStateMode: N(d, "emptyStateMode"),
|
|
2725
2725
|
itemCount: i(() => d.items.length),
|
|
2726
|
-
loading:
|
|
2726
|
+
loading: N(d, "loading"),
|
|
2727
2727
|
renderSlot: f["empty-state"],
|
|
2728
2728
|
surface: "fullscreen"
|
|
2729
2729
|
});
|
|
2730
2730
|
S(() => {
|
|
2731
|
-
window.addEventListener("resize",
|
|
2731
|
+
window.addEventListener("resize", pe);
|
|
2732
2732
|
}), x(() => {
|
|
2733
|
-
window.removeEventListener("resize",
|
|
2733
|
+
window.removeEventListener("resize", pe);
|
|
2734
2734
|
});
|
|
2735
|
-
function
|
|
2736
|
-
_.value = window.innerWidth ||
|
|
2735
|
+
function pe() {
|
|
2736
|
+
_.value = window.innerWidth || Sr;
|
|
2737
2737
|
}
|
|
2738
|
-
function
|
|
2739
|
-
C.registerImageElement(e, t), h.registerImageElement(e, t), t instanceof HTMLImageElement &&
|
|
2738
|
+
function me(e, t) {
|
|
2739
|
+
C.registerImageElement(e, t), h.registerImageElement(e, t), t instanceof HTMLImageElement && _e(e, t);
|
|
2740
2740
|
}
|
|
2741
|
-
function
|
|
2741
|
+
function he(e, t) {
|
|
2742
2742
|
C.registerMediaElement(e, t), h.registerVideoElement(e, t);
|
|
2743
2743
|
}
|
|
2744
|
-
function
|
|
2744
|
+
function ge(e, t) {
|
|
2745
2745
|
C.registerMediaElement(e, t), h.registerAudioElement(e, t);
|
|
2746
2746
|
}
|
|
2747
|
-
function
|
|
2748
|
-
let r =
|
|
2747
|
+
function Q(e, t, n) {
|
|
2748
|
+
let r = I.onFullscreenMediaEvent(e, t, n), i = n.currentTarget, a = typeof HTMLMediaElement > "u" ? 1 : HTMLMediaElement.HAVE_METADATA;
|
|
2749
2749
|
r && i instanceof HTMLMediaElement && i.readyState >= a && C.settleAssetPreload(r);
|
|
2750
2750
|
}
|
|
2751
|
-
function
|
|
2752
|
-
|
|
2751
|
+
function _e(e, t) {
|
|
2752
|
+
P(e, t);
|
|
2753
2753
|
}
|
|
2754
|
-
function
|
|
2755
|
-
let r =
|
|
2754
|
+
function ve(e, t, n) {
|
|
2755
|
+
let r = I.getHandledItemKey(t, n);
|
|
2756
2756
|
if (!r || (h.onMediaEvent(r, e), !d.loopFullscreenVideo)) return;
|
|
2757
2757
|
let i = e.currentTarget;
|
|
2758
2758
|
if (!(i instanceof HTMLVideoElement)) return;
|
|
@@ -2762,182 +2762,182 @@ var Rn = ["data-surface"], zn = ["data-surface"], Bn = /* @__PURE__ */ d({
|
|
|
2762
2762
|
let a = i.play();
|
|
2763
2763
|
a && typeof a.catch == "function" && a.catch(() => {});
|
|
2764
2764
|
}
|
|
2765
|
-
return (e, n) => (w(), s("div",
|
|
2765
|
+
return (e, n) => (w(), s("div", Un, [
|
|
2766
2766
|
c("div", {
|
|
2767
2767
|
class: v(["absolute inset-0 transition-[background] duration-200", T.value]),
|
|
2768
|
-
style: b(
|
|
2768
|
+
style: b(F(j))
|
|
2769
2769
|
}, null, 6),
|
|
2770
2770
|
c("div", {
|
|
2771
2771
|
class: "relative z-[1] grid h-full min-h-0",
|
|
2772
|
-
style: b(
|
|
2772
|
+
style: b(ne.value)
|
|
2773
2773
|
}, [c("div", {
|
|
2774
2774
|
ref: "viewer.stageRef",
|
|
2775
2775
|
"data-testid": "vibe-stage",
|
|
2776
2776
|
class: "relative h-full min-h-0 touch-none overflow-hidden",
|
|
2777
|
-
onPointerdown: n[1] ||= (...e) =>
|
|
2778
|
-
onPointermove: n[2] ||= (...e) =>
|
|
2779
|
-
onPointerup: n[3] ||= (...e) =>
|
|
2780
|
-
onPointercancel: n[4] ||= (...e) =>
|
|
2781
|
-
onWheel: n[5] ||= (...e) =>
|
|
2782
|
-
}, [
|
|
2783
|
-
(w(!0), s(t, null, O(
|
|
2784
|
-
key:
|
|
2777
|
+
onPointerdown: n[1] ||= (...e) => F(h).onPointerDown && F(h).onPointerDown(...e),
|
|
2778
|
+
onPointermove: n[2] ||= (...e) => F(h).onPointerMove && F(h).onPointerMove(...e),
|
|
2779
|
+
onPointerup: n[3] ||= (...e) => F(h).onPointerUp && F(h).onPointerUp(...e),
|
|
2780
|
+
onPointercancel: n[4] ||= (...e) => F(h).onPointerCancel && F(h).onPointerCancel(...e),
|
|
2781
|
+
onWheel: n[5] ||= (...e) => F(h).onWheel && F(h).onWheel(...e)
|
|
2782
|
+
}, [F(h).activeItem.value ? (w(), s("div", Wn, [
|
|
2783
|
+
(w(!0), s(t, null, O(F(h).renderedItems.value, ({ item: r, index: i }) => (w(), s("article", {
|
|
2784
|
+
key: F(C).getItemKey(r),
|
|
2785
2785
|
"data-testid": "vibe-slide",
|
|
2786
2786
|
"data-item-id": r.id,
|
|
2787
|
-
"data-occurrence-key":
|
|
2787
|
+
"data-occurrence-key": F(C).getItemKey(r),
|
|
2788
2788
|
"data-index": i,
|
|
2789
|
-
"data-active": i ===
|
|
2790
|
-
"aria-hidden": i ===
|
|
2791
|
-
class: v(["absolute inset-0 flex h-full min-h-full items-center justify-center will-change-transform", i ===
|
|
2792
|
-
style: b(
|
|
2789
|
+
"data-active": i === F(h).resolvedActiveIndex.value,
|
|
2790
|
+
"aria-hidden": i === F(h).resolvedActiveIndex.value ? "false" : "true",
|
|
2791
|
+
class: v(["absolute inset-0 flex h-full min-h-full items-center justify-center will-change-transform", i === F(h).resolvedActiveIndex.value ? "pointer-events-auto" : "pointer-events-none"]),
|
|
2792
|
+
style: b(F(h).getSlideStyle(i))
|
|
2793
2793
|
}, [c("div", {
|
|
2794
|
-
class: v(["absolute inset-0 opacity-85",
|
|
2795
|
-
style: b(i ===
|
|
2796
|
-
}, null, 6),
|
|
2794
|
+
class: v(["absolute inset-0 opacity-85", F(Fn)(r.type)]),
|
|
2795
|
+
style: b(i === F(h).resolvedActiveIndex.value && r.type === "image" ? F(E) : void 0)
|
|
2796
|
+
}, null, 6), F(h).isVisual(r) ? (w(), s("div", {
|
|
2797
2797
|
key: 0,
|
|
2798
|
-
class: v(["relative z-[1] flex h-full w-full items-center justify-center overflow-hidden", i ===
|
|
2799
|
-
}, [
|
|
2798
|
+
class: v(["relative z-[1] flex h-full w-full items-center justify-center overflow-hidden", i === F(h).resolvedActiveIndex.value ? V.value : ""])
|
|
2799
|
+
}, [F(C).isAssetLoading(i, r) ? (w(), s("div", Kn, [c("span", qn, [u(F(oe), {
|
|
2800
2800
|
class: "h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78",
|
|
2801
2801
|
"aria-hidden": "true"
|
|
2802
|
-
})])])) : o("", !0),
|
|
2802
|
+
})])])) : o("", !0), F(C).isAssetErrored(i, r) ? (w(), s("div", {
|
|
2803
2803
|
key: 1,
|
|
2804
2804
|
"data-testid": "vibe-asset-error",
|
|
2805
|
-
"data-kind":
|
|
2805
|
+
"data-kind": F(C).getAssetErrorKind(r),
|
|
2806
2806
|
class: "grid h-full w-full place-items-center"
|
|
2807
|
-
}, [c("div",
|
|
2808
|
-
u(
|
|
2807
|
+
}, [c("div", Yn, [
|
|
2808
|
+
u(F(le), {
|
|
2809
2809
|
class: "h-7 w-7 stroke-[1.9] text-[#f7f1ea]/72",
|
|
2810
2810
|
"aria-hidden": "true"
|
|
2811
2811
|
}),
|
|
2812
|
-
c("p",
|
|
2813
|
-
|
|
2812
|
+
c("p", Xn, M(F(C).getAssetErrorLabel(r)), 1),
|
|
2813
|
+
F(h).canRetryAsset(F(C).getItemKey(r)) ? (w(), s("button", {
|
|
2814
2814
|
key: 0,
|
|
2815
2815
|
type: "button",
|
|
2816
2816
|
class: "inline-flex items-center justify-center border border-white/14 bg-black/35 px-4 py-2 text-[0.64rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/82 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/50",
|
|
2817
|
-
onClick:
|
|
2818
|
-
}, " Retry ", 8,
|
|
2819
|
-
])], 8,
|
|
2820
|
-
key:
|
|
2821
|
-
src:
|
|
2817
|
+
onClick: H((e) => F(h).retryAsset(F(C).getItemKey(r)), ["stop"])
|
|
2818
|
+
}, " Retry ", 8, Zn)) : o("", !0)
|
|
2819
|
+
])], 8, Jn)) : r.type === "image" ? (w(), s("img", {
|
|
2820
|
+
key: F(h).getAssetRenderKey(F(C).getItemKey(r)),
|
|
2821
|
+
src: F(C).getFullscreenImageSource(i, r),
|
|
2822
2822
|
alt: r.title ?? "",
|
|
2823
2823
|
crossorigin: "anonymous",
|
|
2824
2824
|
draggable: "false",
|
|
2825
|
-
class: v(["block h-auto max-h-full w-auto max-w-full object-contain shadow-[0_40px_120px_-60px_rgba(0,0,0,0.9)] transition-opacity duration-300",
|
|
2825
|
+
class: v(["block h-auto max-h-full w-auto max-w-full object-contain shadow-[0_40px_120px_-60px_rgba(0,0,0,0.9)] transition-opacity duration-300", F(h).isImageReady(F(C).getItemKey(r)) ? "opacity-100" : "opacity-0"]),
|
|
2826
2826
|
ref_for: !0,
|
|
2827
|
-
ref: (e) =>
|
|
2828
|
-
onLoad: (e) =>
|
|
2829
|
-
onError: (e) =>
|
|
2830
|
-
}, null, 42,
|
|
2831
|
-
key:
|
|
2832
|
-
class: v(["block h-auto max-h-full w-auto max-w-full cursor-pointer object-contain shadow-[0_40px_120px_-60px_rgba(0,0,0,0.9)] transition-opacity duration-300",
|
|
2827
|
+
ref: (e) => me(F(C).getItemKey(r), e),
|
|
2828
|
+
onLoad: (e) => F(I).onFullscreenImageLoad(e, i, r),
|
|
2829
|
+
onError: (e) => F(I).onFullscreenImageError(i, r)
|
|
2830
|
+
}, null, 42, Qn)) : (w(), s("video", {
|
|
2831
|
+
key: F(h).getAssetRenderKey(F(C).getItemKey(r)),
|
|
2832
|
+
class: v(["block h-auto max-h-full w-auto max-w-full cursor-pointer object-contain shadow-[0_40px_120px_-60px_rgba(0,0,0,0.9)] transition-opacity duration-300", F(h).isMediaReady(F(C).getItemKey(r)) ? "opacity-100" : "opacity-0"]),
|
|
2833
2833
|
playsinline: "",
|
|
2834
2834
|
loop: d.loopFullscreenVideo,
|
|
2835
|
-
src:
|
|
2836
|
-
preload:
|
|
2835
|
+
src: F(C).getFullscreenMediaSource(i, r),
|
|
2836
|
+
preload: F(C).getFullscreenMediaPreload(i),
|
|
2837
2837
|
ref_for: !0,
|
|
2838
|
-
ref: (e) =>
|
|
2839
|
-
onClick:
|
|
2840
|
-
onCanplay: (e) =>
|
|
2841
|
-
onDurationchange: (e) =>
|
|
2842
|
-
onEnded: (e) =>
|
|
2843
|
-
onError: (e) =>
|
|
2844
|
-
onLoadstart: (e) =>
|
|
2845
|
-
onLoadedmetadata: (e) =>
|
|
2846
|
-
onPause: (e) =>
|
|
2847
|
-
onPlay: (e) =>
|
|
2848
|
-
onPlaying: (e) =>
|
|
2849
|
-
onSeeking: (e) =>
|
|
2850
|
-
onSeeked: (e) =>
|
|
2851
|
-
onStalled: (e) =>
|
|
2852
|
-
onTimeupdate: (e) =>
|
|
2853
|
-
onWaiting: (e) =>
|
|
2854
|
-
}, null, 42,
|
|
2838
|
+
ref: (e) => he(F(C).getItemKey(r), e),
|
|
2839
|
+
onClick: H((e) => F(h).onVideoClick(e, F(C).getItemKey(r)), ["stop"]),
|
|
2840
|
+
onCanplay: (e) => Q(i, r, e),
|
|
2841
|
+
onDurationchange: (e) => Q(i, r, e),
|
|
2842
|
+
onEnded: (e) => ve(e, i, r),
|
|
2843
|
+
onError: (e) => F(I).onFullscreenMediaError(i, r),
|
|
2844
|
+
onLoadstart: (e) => Q(i, r, e),
|
|
2845
|
+
onLoadedmetadata: (e) => Q(i, r, e),
|
|
2846
|
+
onPause: (e) => Q(i, r, e),
|
|
2847
|
+
onPlay: (e) => Q(i, r, e),
|
|
2848
|
+
onPlaying: (e) => Q(i, r, e),
|
|
2849
|
+
onSeeking: (e) => Q(i, r, e),
|
|
2850
|
+
onSeeked: (e) => Q(i, r, e),
|
|
2851
|
+
onStalled: (e) => Q(i, r, e),
|
|
2852
|
+
onTimeupdate: (e) => Q(i, r, e),
|
|
2853
|
+
onWaiting: (e) => Q(i, r, e)
|
|
2854
|
+
}, null, 42, $n))], 2)) : F(h).isAudio(r) ? (w(), s("div", {
|
|
2855
2855
|
key: 1,
|
|
2856
|
-
class: v(["relative z-[1] grid w-full max-w-[1100px] justify-items-center gap-6 px-[clamp(2rem,4vw,3rem)] py-[clamp(2rem,4vw,3rem)] text-center", i ===
|
|
2857
|
-
}, [c("div",
|
|
2856
|
+
class: v(["relative z-[1] grid w-full max-w-[1100px] justify-items-center gap-6 px-[clamp(2rem,4vw,3rem)] py-[clamp(2rem,4vw,3rem)] text-center", i === F(h).resolvedActiveIndex.value ? V.value : ""])
|
|
2857
|
+
}, [c("div", er, [
|
|
2858
2858
|
c("button", {
|
|
2859
2859
|
type: "button",
|
|
2860
2860
|
class: "relative grid h-full w-full place-items-center border border-white/12 bg-[linear-gradient(180deg,rgba(255,255,255,0.04),rgba(255,255,255,0.02)),radial-gradient(circle_at_center,rgba(16,185,129,0.14),transparent_58%)] text-[#f7f1ea] transition-[border-color,background] duration-200 hover:border-white/30 hover:bg-[linear-gradient(180deg,rgba(255,255,255,0.07),rgba(255,255,255,0.03)),radial-gradient(circle_at_center,rgba(16,185,129,0.18),transparent_58%)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[#f7f1ea]",
|
|
2861
|
-
"aria-label":
|
|
2862
|
-
disabled: !!
|
|
2863
|
-
onClick: (e) =>
|
|
2861
|
+
"aria-label": F(h).mediaStates.value[F(C).getItemKey(r)]?.paused ?? !0 ? F(C).getMediaActionLabel("Play", r) : F(C).getMediaActionLabel("Pause", r),
|
|
2862
|
+
disabled: !!F(C).getAssetErrorKind(r),
|
|
2863
|
+
onClick: (e) => F(h).onAudioCoverClick(e, F(C).getItemKey(r))
|
|
2864
2864
|
}, [
|
|
2865
2865
|
n[6] ||= c("span", { class: "pointer-events-none absolute inset-0 border border-white/8 bg-[radial-gradient(circle,rgba(16,185,129,0.16),transparent_66%)]" }, null, -1),
|
|
2866
2866
|
n[7] ||= c("span", { class: "pointer-events-none absolute h-[clamp(220px,30vw,360px)] w-[clamp(220px,30vw,360px)] border border-white/8 bg-[radial-gradient(circle,rgba(255,255,255,0.08),transparent_62%)]" }, null, -1),
|
|
2867
|
-
c("span",
|
|
2868
|
-
icon:
|
|
2867
|
+
c("span", nr, [k(e.$slots, "item-icon", {
|
|
2868
|
+
icon: F(Ut)(r.type),
|
|
2869
2869
|
item: r
|
|
2870
|
-
}, () => [(w(), a(A(
|
|
2870
|
+
}, () => [(w(), a(A(F(Ut)(r.type)), {
|
|
2871
2871
|
class: "h-6 w-6 stroke-[1.9]",
|
|
2872
2872
|
"aria-hidden": "true"
|
|
2873
2873
|
}))])]),
|
|
2874
|
-
c("span",
|
|
2874
|
+
c("span", rr, [(w(), a(A(F(h).mediaStates.value[F(C).getItemKey(r)]?.paused ?? !0 ? F(ce) : F(se)), {
|
|
2875
2875
|
class: "h-4 w-4 stroke-2",
|
|
2876
2876
|
"aria-hidden": "true"
|
|
2877
2877
|
}))])
|
|
2878
|
-
], 8,
|
|
2879
|
-
|
|
2878
|
+
], 8, tr),
|
|
2879
|
+
F(C).isAssetLoading(i, r) ? (w(), s("div", ir, [c("span", ar, [u(F(oe), {
|
|
2880
2880
|
class: "h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78",
|
|
2881
2881
|
"aria-hidden": "true"
|
|
2882
2882
|
})])])) : o("", !0),
|
|
2883
|
-
|
|
2883
|
+
F(C).getAssetErrorKind(r) ? (w(), s(t, { key: 1 }, [n[8] ||= c("div", { class: "pointer-events-none absolute inset-0 border border-white/8 bg-[radial-gradient(circle,rgba(239,68,68,0.12),transparent_66%)]" }, null, -1), c("div", {
|
|
2884
2884
|
"data-testid": "vibe-asset-error",
|
|
2885
|
-
"data-kind":
|
|
2885
|
+
"data-kind": F(C).getAssetErrorKind(r),
|
|
2886
2886
|
class: "relative z-[1] grid justify-items-center gap-4"
|
|
2887
2887
|
}, [
|
|
2888
|
-
u(
|
|
2888
|
+
u(F(le), {
|
|
2889
2889
|
class: "h-7 w-7 stroke-[1.9] text-[#f7f1ea]/72",
|
|
2890
2890
|
"aria-hidden": "true"
|
|
2891
2891
|
}),
|
|
2892
|
-
c("p",
|
|
2893
|
-
|
|
2892
|
+
c("p", sr, M(F(C).getAssetErrorLabel(r)), 1),
|
|
2893
|
+
F(h).canRetryAsset(F(C).getItemKey(r)) ? (w(), s("button", {
|
|
2894
2894
|
key: 0,
|
|
2895
2895
|
type: "button",
|
|
2896
2896
|
class: "pointer-events-auto inline-flex items-center justify-center border border-white/14 bg-black/35 px-4 py-2 text-[0.64rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/82 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/50",
|
|
2897
|
-
onClick:
|
|
2898
|
-
}, " Retry ", 8,
|
|
2899
|
-
], 8,
|
|
2897
|
+
onClick: H((e) => F(h).retryAsset(F(C).getItemKey(r)), ["stop"])
|
|
2898
|
+
}, " Retry ", 8, cr)) : o("", !0)
|
|
2899
|
+
], 8, or)], 64)) : o("", !0)
|
|
2900
2900
|
]), (w(), s("audio", {
|
|
2901
|
-
key:
|
|
2902
|
-
src:
|
|
2903
|
-
preload:
|
|
2901
|
+
key: F(h).getAssetRenderKey(F(C).getItemKey(r)),
|
|
2902
|
+
src: F(C).getFullscreenMediaSource(i, r),
|
|
2903
|
+
preload: F(C).getFullscreenMediaPreload(i),
|
|
2904
2904
|
class: "pointer-events-none absolute h-px w-px opacity-0",
|
|
2905
2905
|
ref_for: !0,
|
|
2906
|
-
ref: (e) =>
|
|
2907
|
-
onCanplay: (e) =>
|
|
2908
|
-
onDurationchange: (e) =>
|
|
2909
|
-
onError: (e) =>
|
|
2910
|
-
onLoadstart: (e) =>
|
|
2911
|
-
onLoadedmetadata: (e) =>
|
|
2912
|
-
onPause: (e) =>
|
|
2913
|
-
onPlay: (e) =>
|
|
2914
|
-
onPlaying: (e) =>
|
|
2915
|
-
onSeeking: (e) =>
|
|
2916
|
-
onSeeked: (e) =>
|
|
2917
|
-
onStalled: (e) =>
|
|
2918
|
-
onTimeupdate: (e) =>
|
|
2919
|
-
onWaiting: (e) =>
|
|
2920
|
-
}, null, 40,
|
|
2921
|
-
icon:
|
|
2906
|
+
ref: (e) => ge(F(C).getItemKey(r), e),
|
|
2907
|
+
onCanplay: (e) => Q(i, r, e),
|
|
2908
|
+
onDurationchange: (e) => Q(i, r, e),
|
|
2909
|
+
onError: (e) => F(I).onFullscreenMediaError(i, r),
|
|
2910
|
+
onLoadstart: (e) => Q(i, r, e),
|
|
2911
|
+
onLoadedmetadata: (e) => Q(i, r, e),
|
|
2912
|
+
onPause: (e) => Q(i, r, e),
|
|
2913
|
+
onPlay: (e) => Q(i, r, e),
|
|
2914
|
+
onPlaying: (e) => Q(i, r, e),
|
|
2915
|
+
onSeeking: (e) => Q(i, r, e),
|
|
2916
|
+
onSeeked: (e) => Q(i, r, e),
|
|
2917
|
+
onStalled: (e) => Q(i, r, e),
|
|
2918
|
+
onTimeupdate: (e) => Q(i, r, e),
|
|
2919
|
+
onWaiting: (e) => Q(i, r, e)
|
|
2920
|
+
}, null, 40, lr))], 2)) : (w(), s("div", ur, [c("div", dr, [k(e.$slots, "item-icon", {
|
|
2921
|
+
icon: F(Ut)(r.type),
|
|
2922
2922
|
item: r
|
|
2923
|
-
}, () => [(w(), a(A(
|
|
2923
|
+
}, () => [(w(), a(A(F(Ut)(r.type)), {
|
|
2924
2924
|
class: "h-6 w-6 stroke-[1.9]",
|
|
2925
2925
|
"aria-hidden": "true"
|
|
2926
|
-
}))])])]))], 14,
|
|
2927
|
-
W.value && f["fullscreen-overlay"] ? (w(), s("div",
|
|
2928
|
-
|
|
2926
|
+
}))])])]))], 14, Gn))), 128)),
|
|
2927
|
+
W.value && f["fullscreen-overlay"] ? (w(), s("div", fr, [c("div", pr, [k(e.$slots, "fullscreen-overlay", y(p(W.value)))])])) : o("", !0),
|
|
2928
|
+
F(h).activeItem.value ? (w(), a(Bt, {
|
|
2929
2929
|
key: 1,
|
|
2930
|
-
"current-index":
|
|
2930
|
+
"current-index": F(h).resolvedActiveIndex.value,
|
|
2931
2931
|
loading: d.loading,
|
|
2932
|
-
"pagination-detail":
|
|
2932
|
+
"pagination-detail": F(h).paginationDetail.value,
|
|
2933
2933
|
"show-back-to-list": d.showBackToList,
|
|
2934
|
-
"show-end-badge": d.showEndBadge &&
|
|
2935
|
-
title:
|
|
2936
|
-
total:
|
|
2934
|
+
"show-end-badge": d.showEndBadge && F(h).isAtEnd.value && !F(h).hasNextPage.value && !F(h).loading.value,
|
|
2935
|
+
title: F(h).activeItem.value.title ?? null,
|
|
2936
|
+
total: F(h).items.value.length,
|
|
2937
2937
|
onBackToList: n[0] ||= (e) => m("back-to-list")
|
|
2938
2938
|
}, l({ _: 2 }, [Y.value && W.value ? {
|
|
2939
2939
|
name: "actions",
|
|
2940
|
-
fn:
|
|
2940
|
+
fn: B(() => [k(e.$slots, "fullscreen-header-actions", y(p(W.value)))]),
|
|
2941
2941
|
key: "0"
|
|
2942
2942
|
} : void 0]), 1032, [
|
|
2943
2943
|
"current-index",
|
|
@@ -2948,19 +2948,19 @@ var Rn = ["data-surface"], zn = ["data-surface"], Bn = /* @__PURE__ */ d({
|
|
|
2948
2948
|
"title",
|
|
2949
2949
|
"total"
|
|
2950
2950
|
])) : o("", !0),
|
|
2951
|
-
|
|
2951
|
+
z.value ? (w(), a(kt, {
|
|
2952
2952
|
key: 2,
|
|
2953
|
-
"current-time":
|
|
2954
|
-
"current-time-label":
|
|
2955
|
-
duration:
|
|
2956
|
-
"duration-label":
|
|
2957
|
-
muted:
|
|
2958
|
-
progress:
|
|
2959
|
-
volume:
|
|
2960
|
-
"volume-control-layout":
|
|
2961
|
-
onSeekInput:
|
|
2962
|
-
onVolumeInput:
|
|
2963
|
-
onVolumeToggle:
|
|
2953
|
+
"current-time": F(h).activeMediaState.value.currentTime,
|
|
2954
|
+
"current-time-label": F(h).formatPlaybackTime(F(h).activeMediaState.value.currentTime),
|
|
2955
|
+
duration: F(h).activeMediaDuration.value,
|
|
2956
|
+
"duration-label": F(h).formatPlaybackTime(F(h).activeMediaDuration.value),
|
|
2957
|
+
muted: F(h).activeMediaState.value.muted,
|
|
2958
|
+
progress: F(h).activeMediaProgress.value,
|
|
2959
|
+
volume: F(h).activeMediaState.value.volume,
|
|
2960
|
+
"volume-control-layout": ee.value,
|
|
2961
|
+
onSeekInput: F(h).onMediaSeekInput,
|
|
2962
|
+
onVolumeInput: F(h).onMediaVolumeInput,
|
|
2963
|
+
onVolumeToggle: F(h).onMediaVolumeToggle
|
|
2964
2964
|
}, null, 8, [
|
|
2965
2965
|
"current-time",
|
|
2966
2966
|
"current-time-label",
|
|
@@ -2974,36 +2974,36 @@ var Rn = ["data-surface"], zn = ["data-surface"], Bn = /* @__PURE__ */ d({
|
|
|
2974
2974
|
"onVolumeInput",
|
|
2975
2975
|
"onVolumeToggle"
|
|
2976
2976
|
])) : o("", !0),
|
|
2977
|
-
|
|
2977
|
+
q.value ? (w(), s("div", {
|
|
2978
2978
|
key: 3,
|
|
2979
2979
|
class: v(["absolute left-1/2 z-[4] -translate-x-1/2", R.value])
|
|
2980
|
-
}, [
|
|
2980
|
+
}, [ae.value ? k(e.$slots, "fullscreen-status", y(g({ key: 0 }, q.value))) : (w(), s("div", {
|
|
2981
2981
|
key: 1,
|
|
2982
2982
|
"data-testid": "vibe-fullscreen-status-badge",
|
|
2983
|
-
class: v(["inline-flex w-auto items-center border border-white/14 bg-black/40 px-5 py-3 text-[0.75rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74 backdrop-blur-[18px] max-[720px]:w-[calc(100%-2.5rem)] max-[720px]:justify-center",
|
|
2984
|
-
},
|
|
2985
|
-
])) :
|
|
2983
|
+
class: v(["inline-flex w-auto items-center border border-white/14 bg-black/40 px-5 py-3 text-[0.75rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74 backdrop-blur-[18px] max-[720px]:w-[calc(100%-2.5rem)] max-[720px]:justify-center", q.value.kind === "end" ? "border-amber-300/35 text-amber-200" : q.value.kind === "failed" ? "border-rose-400/45 text-rose-100" : ""])
|
|
2984
|
+
}, M(q.value.message), 3))], 2)) : o("", !0)
|
|
2985
|
+
])) : U.value ? (w(), s("div", mr, [c("div", hr, [c("span", gr, [u(F(oe), {
|
|
2986
2986
|
class: "h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78",
|
|
2987
2987
|
"aria-hidden": "true"
|
|
2988
|
-
})]), c("p",
|
|
2988
|
+
})]), c("p", _r, M(te.value), 1)])])) : F(fe) && F(Z) ? (w(), a(Hn, {
|
|
2989
2989
|
key: 2,
|
|
2990
|
-
message:
|
|
2991
|
-
mode:
|
|
2992
|
-
surface:
|
|
2990
|
+
message: F(Z).message,
|
|
2991
|
+
mode: F(Z).mode,
|
|
2992
|
+
surface: F(Z).surface
|
|
2993
2993
|
}, {
|
|
2994
|
-
default:
|
|
2994
|
+
default: B(() => [F(de) ? k(e.$slots, "empty-state", y(g({ key: 0 }, F(Z)))) : o("", !0)]),
|
|
2995
2995
|
_: 3
|
|
2996
2996
|
}, 8, [
|
|
2997
2997
|
"message",
|
|
2998
2998
|
"mode",
|
|
2999
2999
|
"surface"
|
|
3000
|
-
])) : o("", !0),
|
|
3000
|
+
])) : o("", !0), F(ue) && F(Z) ? (w(), a(Hn, {
|
|
3001
3001
|
key: 3,
|
|
3002
|
-
message:
|
|
3003
|
-
mode:
|
|
3004
|
-
surface:
|
|
3002
|
+
message: F(Z).message,
|
|
3003
|
+
mode: F(Z).mode,
|
|
3004
|
+
surface: F(Z).surface
|
|
3005
3005
|
}, {
|
|
3006
|
-
default:
|
|
3006
|
+
default: B(() => [F(de) ? k(e.$slots, "empty-state", y(g({ key: 0 }, F(Z)))) : o("", !0)]),
|
|
3007
3007
|
_: 3
|
|
3008
3008
|
}, 8, [
|
|
3009
3009
|
"message",
|
|
@@ -3017,7 +3017,7 @@ var Rn = ["data-surface"], zn = ["data-surface"], Bn = /* @__PURE__ */ d({
|
|
|
3017
3017
|
"leave-from-class": "translate-x-0 opacity-100",
|
|
3018
3018
|
"leave-to-class": "translate-x-full opacity-0"
|
|
3019
3019
|
}, {
|
|
3020
|
-
default:
|
|
3020
|
+
default: B(() => [re.value && W.value ? (w(), s("aside", vr, [c("div", yr, [k(e.$slots, "fullscreen-aside", y(p(W.value)))])])) : o("", !0)]),
|
|
3021
3021
|
_: 3
|
|
3022
3022
|
})], 4),
|
|
3023
3023
|
u(r, {
|
|
@@ -3028,29 +3028,29 @@ var Rn = ["data-surface"], zn = ["data-surface"], Bn = /* @__PURE__ */ d({
|
|
|
3028
3028
|
"leave-from-class": "translate-x-0 opacity-100",
|
|
3029
3029
|
"leave-to-class": "translate-x-full opacity-0"
|
|
3030
3030
|
}, {
|
|
3031
|
-
default:
|
|
3031
|
+
default: B(() => [ie.value && W.value ? (w(), s("aside", br, [c("div", xr, [k(e.$slots, "fullscreen-aside", y(p(W.value)))])])) : o("", !0)]),
|
|
3032
3032
|
_: 3
|
|
3033
3033
|
})
|
|
3034
3034
|
]));
|
|
3035
3035
|
}
|
|
3036
|
-
}),
|
|
3037
|
-
function
|
|
3036
|
+
}), Tr = 1, Er = .5;
|
|
3037
|
+
function Dr(e) {
|
|
3038
3038
|
if (e.type !== "image" && e.type !== "video") return {
|
|
3039
|
-
width:
|
|
3040
|
-
height:
|
|
3039
|
+
width: Tr,
|
|
3040
|
+
height: Tr,
|
|
3041
3041
|
source: "fallback"
|
|
3042
3042
|
};
|
|
3043
3043
|
let t = e.preview?.width, n = e.preview?.height;
|
|
3044
|
-
if (
|
|
3045
|
-
let r =
|
|
3044
|
+
if (Ir(t) && Ir(n)) {
|
|
3045
|
+
let r = Lr(e, t, n);
|
|
3046
3046
|
return {
|
|
3047
3047
|
width: r.width,
|
|
3048
3048
|
height: r.height,
|
|
3049
3049
|
source: "preview"
|
|
3050
3050
|
};
|
|
3051
3051
|
}
|
|
3052
|
-
if (
|
|
3053
|
-
let t =
|
|
3052
|
+
if (Ir(e.width) && Ir(e.height)) {
|
|
3053
|
+
let t = Lr(e, e.width, e.height);
|
|
3054
3054
|
return {
|
|
3055
3055
|
width: t.width,
|
|
3056
3056
|
height: t.height,
|
|
@@ -3058,50 +3058,70 @@ function Tr(e) {
|
|
|
3058
3058
|
};
|
|
3059
3059
|
}
|
|
3060
3060
|
return {
|
|
3061
|
-
width:
|
|
3062
|
-
height:
|
|
3061
|
+
width: Tr,
|
|
3062
|
+
height: Tr,
|
|
3063
3063
|
source: "fallback"
|
|
3064
3064
|
};
|
|
3065
3065
|
}
|
|
3066
|
-
function
|
|
3066
|
+
function Or(e, t) {
|
|
3067
3067
|
return !e || e <= 0 || !t || t <= 0 ? 1 : Math.max(1, Math.floor(e / t));
|
|
3068
3068
|
}
|
|
3069
|
-
function
|
|
3069
|
+
function kr(e, t, n, r = 0) {
|
|
3070
3070
|
if (!e || e <= 0 || !t || t <= 0) return n;
|
|
3071
3071
|
let i = typeof r == "number" && r > 0 ? r : 0, a = e - Math.max(0, t - 1) * i;
|
|
3072
3072
|
return !a || a <= 0 ? n : a / t;
|
|
3073
3073
|
}
|
|
3074
|
-
function
|
|
3075
|
-
let n =
|
|
3074
|
+
function Ar(e, t) {
|
|
3075
|
+
let n = Dr(e);
|
|
3076
3076
|
return n.height / n.width * t;
|
|
3077
3077
|
}
|
|
3078
|
-
function
|
|
3079
|
-
let n = Array.from({ length: t.columnCount }, () => 0), r =
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3078
|
+
function jr(e, t) {
|
|
3079
|
+
let n = Array.from({ length: t.columnCount }, () => 0), r = {
|
|
3080
|
+
positions: Array(e.length),
|
|
3081
|
+
heights: Array(e.length),
|
|
3082
|
+
buckets: /* @__PURE__ */ new Map(),
|
|
3083
|
+
contentHeight: 0,
|
|
3084
|
+
indexById: /* @__PURE__ */ new Map(),
|
|
3085
|
+
columnHeights: n
|
|
3086
|
+
};
|
|
3087
|
+
return Mr(r, e, {
|
|
3088
|
+
...t,
|
|
3089
|
+
startIndex: 0
|
|
3090
|
+
}), r;
|
|
3091
|
+
}
|
|
3092
|
+
function Mr(e, t, n) {
|
|
3093
|
+
for (let r = 0; r < t.length; r += 1) {
|
|
3094
|
+
let i = t[r], a = n.startIndex + r;
|
|
3095
|
+
e.indexById.set($(i), a);
|
|
3096
|
+
let o = 0;
|
|
3097
|
+
for (let t = 1; t < e.columnHeights.length; t += 1) e.columnHeights[t] < e.columnHeights[o] && (o = t);
|
|
3098
|
+
let s = o * (n.columnWidth + n.gapX), c = e.columnHeights[o], l = Ar(i, n.columnWidth);
|
|
3099
|
+
e.positions[a] = {
|
|
3100
|
+
x: s + (n.positionOffsetX ?? 0),
|
|
3101
|
+
y: c + (n.positionOffsetY ?? 0)
|
|
3102
|
+
}, e.heights[a] = l, e.columnHeights[o] = c + l + n.gapY, e.contentHeight = Math.max(e.contentHeight, c + l);
|
|
3103
|
+
let u = Math.floor(c / n.bucketPx), d = Math.floor((c + l) / n.bucketPx);
|
|
3104
|
+
for (let t = u; t <= d; t += 1) {
|
|
3105
|
+
let n = e.buckets.get(t);
|
|
3106
|
+
n ? e.buckets.set(t, [...n, a]) : e.buckets.set(t, [a]);
|
|
3094
3107
|
}
|
|
3095
3108
|
}
|
|
3096
|
-
return
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3109
|
+
return e;
|
|
3110
|
+
}
|
|
3111
|
+
function Nr(e, t) {
|
|
3112
|
+
let n = [...t.columnHeights], r = t.contentHeight;
|
|
3113
|
+
for (let i of e) {
|
|
3114
|
+
let e = 0;
|
|
3115
|
+
for (let t = 1; t < n.length; t += 1) n[t] < n[e] && (e = t);
|
|
3116
|
+
let a = n[e], o = Ar(i, t.columnWidth);
|
|
3117
|
+
n[e] = a + o + t.gapY, r = Math.max(r, a + o);
|
|
3118
|
+
}
|
|
3119
|
+
return r;
|
|
3120
|
+
}
|
|
3121
|
+
function Pr(e) {
|
|
3122
|
+
return e.addedItems.length === 0 || e.removedItemCount > 0 || e.isPrepend || e.previousItems.length === 0 || e.layoutItemCount !== e.previousItems.length || e.columnHeights.length !== e.columnCount || e.currentItems.length !== e.previousItems.length + e.addedItems.length ? !1 : e.previousItems.every((t, n) => $(t) === $(e.currentItems[n]));
|
|
3103
3123
|
}
|
|
3104
|
-
function
|
|
3124
|
+
function Fr(e) {
|
|
3105
3125
|
if (e.itemCount <= 0) return [];
|
|
3106
3126
|
if (e.viewportHeight <= 0) return Array.from({ length: e.itemCount }, (e, t) => t);
|
|
3107
3127
|
let t = Math.max(0, e.scrollTop - e.overscanPx), n = e.scrollTop + e.viewportHeight + e.overscanPx, r = Math.floor(t / e.bucketPx), i = Math.floor(n / e.bucketPx), a = /* @__PURE__ */ new Set();
|
|
@@ -3111,11 +3131,11 @@ function Ar(e) {
|
|
|
3111
3131
|
}
|
|
3112
3132
|
return Array.from(a).sort((e, t) => e - t);
|
|
3113
3133
|
}
|
|
3114
|
-
function
|
|
3134
|
+
function Ir(e) {
|
|
3115
3135
|
return typeof e == "number" && Number.isFinite(e) && e > 0;
|
|
3116
3136
|
}
|
|
3117
|
-
function
|
|
3118
|
-
return e.type !== "image" || n / t >=
|
|
3137
|
+
function Lr(e, t, n) {
|
|
3138
|
+
return e.type !== "image" || n / t >= Er ? {
|
|
3119
3139
|
width: t,
|
|
3120
3140
|
height: n
|
|
3121
3141
|
} : {
|
|
@@ -3124,47 +3144,113 @@ function Mr(e, t, n) {
|
|
|
3124
3144
|
};
|
|
3125
3145
|
}
|
|
3126
3146
|
//#endregion
|
|
3147
|
+
//#region src/components/viewer-core/masonryLayoutState.ts
|
|
3148
|
+
function Rr(e) {
|
|
3149
|
+
let t = j([]), n = j([]), r = j(/* @__PURE__ */ new Map()), i = j(0), a = j(/* @__PURE__ */ new Map()), o = j([]);
|
|
3150
|
+
function s(s, c, l) {
|
|
3151
|
+
let u = jr(s, {
|
|
3152
|
+
columnCount: c,
|
|
3153
|
+
columnWidth: l,
|
|
3154
|
+
gapX: e.gapPx,
|
|
3155
|
+
gapY: e.gapPx,
|
|
3156
|
+
bucketPx: e.bucketPx
|
|
3157
|
+
});
|
|
3158
|
+
t.value = u.positions.map(d), n.value = u.heights, r.value = u.buckets, i.value = u.contentHeight, a.value = u.indexById, o.value = u.columnHeights;
|
|
3159
|
+
}
|
|
3160
|
+
function c(s, c, l, d) {
|
|
3161
|
+
i.value = Mr(u(), s, {
|
|
3162
|
+
columnCount: l,
|
|
3163
|
+
columnWidth: d,
|
|
3164
|
+
gapX: e.gapPx,
|
|
3165
|
+
gapY: e.gapPx,
|
|
3166
|
+
bucketPx: e.bucketPx,
|
|
3167
|
+
startIndex: c,
|
|
3168
|
+
positionOffsetX: e.contentInsetPx,
|
|
3169
|
+
positionOffsetY: e.contentInsetPx
|
|
3170
|
+
}).contentHeight, P(t), P(n), P(r), P(a), P(o);
|
|
3171
|
+
}
|
|
3172
|
+
function l(e, n, r, i) {
|
|
3173
|
+
return Pr({
|
|
3174
|
+
addedItems: r.addedItems,
|
|
3175
|
+
columnCount: i,
|
|
3176
|
+
columnHeights: o.value,
|
|
3177
|
+
currentItems: e,
|
|
3178
|
+
isPrepend: r.isPrepend,
|
|
3179
|
+
layoutItemCount: t.value.length,
|
|
3180
|
+
previousItems: n,
|
|
3181
|
+
removedItemCount: r.removedItems.length
|
|
3182
|
+
});
|
|
3183
|
+
}
|
|
3184
|
+
function u() {
|
|
3185
|
+
return {
|
|
3186
|
+
positions: t.value,
|
|
3187
|
+
heights: n.value,
|
|
3188
|
+
buckets: r.value,
|
|
3189
|
+
contentHeight: i.value,
|
|
3190
|
+
indexById: a.value,
|
|
3191
|
+
columnHeights: o.value
|
|
3192
|
+
};
|
|
3193
|
+
}
|
|
3194
|
+
function d(t) {
|
|
3195
|
+
return {
|
|
3196
|
+
x: t.x + e.contentInsetPx,
|
|
3197
|
+
y: t.y + e.contentInsetPx
|
|
3198
|
+
};
|
|
3199
|
+
}
|
|
3200
|
+
return {
|
|
3201
|
+
append: c,
|
|
3202
|
+
buckets: r,
|
|
3203
|
+
canAppend: l,
|
|
3204
|
+
columnHeights: o,
|
|
3205
|
+
contentHeight: i,
|
|
3206
|
+
heights: n,
|
|
3207
|
+
indexById: a,
|
|
3208
|
+
positions: t,
|
|
3209
|
+
rebuild: s
|
|
3210
|
+
};
|
|
3211
|
+
}
|
|
3212
|
+
//#endregion
|
|
3127
3213
|
//#region src/components/viewer-core/useMasonryMotion.ts
|
|
3128
|
-
var
|
|
3129
|
-
function
|
|
3214
|
+
var zr = 300, Br = 600, Vr = 40, Hr = 300, Ur = 400;
|
|
3215
|
+
function Wr(e, t) {
|
|
3130
3216
|
return t === "top" ? [...e].reverse() : e;
|
|
3131
3217
|
}
|
|
3132
|
-
function
|
|
3133
|
-
return e <= 0 ?
|
|
3218
|
+
function Gr(e) {
|
|
3219
|
+
return e <= 0 ? Br : Br + Math.min((e - 1) * Vr, Ur);
|
|
3134
3220
|
}
|
|
3135
|
-
function
|
|
3136
|
-
return
|
|
3221
|
+
function Kr() {
|
|
3222
|
+
return Hr;
|
|
3137
3223
|
}
|
|
3138
|
-
function
|
|
3224
|
+
function qr(e) {
|
|
3139
3225
|
let t = e.itemHeight > 0 ? e.itemHeight : e.columnWidth;
|
|
3140
3226
|
return e.direction === "top" ? e.scrollTop - t : e.scrollTop + e.viewportHeight + t;
|
|
3141
3227
|
}
|
|
3142
|
-
function
|
|
3228
|
+
function Jr(e) {
|
|
3143
3229
|
let t = D(/* @__PURE__ */ new Set()), n = D(/* @__PURE__ */ new Set()), r = D(/* @__PURE__ */ new Map()), a = D(/* @__PURE__ */ new Map()), o = D(/* @__PURE__ */ new Map()), s = D(/* @__PURE__ */ new Set()), c = D(/* @__PURE__ */ new Map()), l = D(/* @__PURE__ */ new Map()), u = D(/* @__PURE__ */ new Set()), d = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Set(), p = i(() => Array.from(o.value.values()));
|
|
3144
|
-
|
|
3230
|
+
z(e.visibleIndices, (i) => {
|
|
3145
3231
|
if (!i.length) return;
|
|
3146
3232
|
let o = [];
|
|
3147
3233
|
for (let n of i) {
|
|
3148
|
-
let r = e.items.value[n] ?
|
|
3234
|
+
let r = e.items.value[n] ? $(e.items.value[n]) : null;
|
|
3149
3235
|
!r || !t.value.has(r) || d.has(r) || (d.add(r), o.push(r));
|
|
3150
3236
|
}
|
|
3151
3237
|
if (!o.length) return;
|
|
3152
|
-
let s =
|
|
3153
|
-
for (let e = 0; e < s.length; e += 1) c.set(s[e], Math.min(e *
|
|
3154
|
-
r.value = c,
|
|
3238
|
+
let s = Wr(o, a.value.get(o[0]) ?? "bottom"), c = new Map(r.value);
|
|
3239
|
+
for (let e = 0; e < s.length; e += 1) c.set(s[e], Math.min(e * Vr, Ur));
|
|
3240
|
+
r.value = c, Yr(() => {
|
|
3155
3241
|
let e = new Set(n.value);
|
|
3156
3242
|
for (let t of o) e.add(t);
|
|
3157
3243
|
n.value = e;
|
|
3158
|
-
}),
|
|
3244
|
+
}), Xr(() => {
|
|
3159
3245
|
let e = new Set(t.value);
|
|
3160
3246
|
for (let t of o) e.delete(t);
|
|
3161
3247
|
t.value = e, S(() => {
|
|
3162
3248
|
let e = new Set(n.value), t = new Map(r.value), i = new Map(a.value);
|
|
3163
3249
|
for (let n of o) e.delete(n), t.delete(n), i.delete(n), d.delete(n);
|
|
3164
3250
|
n.value = e, r.value = t, a.value = i;
|
|
3165
|
-
},
|
|
3251
|
+
}, Gr(o.length));
|
|
3166
3252
|
});
|
|
3167
|
-
}, { flush: "post" }),
|
|
3253
|
+
}, { flush: "post" }), z(() => e.items.value.map((e) => $(e)), (e) => {
|
|
3168
3254
|
if (!e.length || !o.value.size) return;
|
|
3169
3255
|
let t = new Set(e), n = null, r = null;
|
|
3170
3256
|
for (let e of o.value.keys()) t.has(e) && (n ||= new Map(o.value), r ||= new Set(s.value), n.delete(e), r.delete(e));
|
|
@@ -3177,7 +3263,7 @@ function Hr(e) {
|
|
|
3177
3263
|
if (!e.length) return;
|
|
3178
3264
|
let r = new Set(t.value), i = new Map(a.value);
|
|
3179
3265
|
for (let t of e) {
|
|
3180
|
-
let e =
|
|
3266
|
+
let e = $(t);
|
|
3181
3267
|
r.add(e), i.set(e, n);
|
|
3182
3268
|
}
|
|
3183
3269
|
t.value = r, a.value = i;
|
|
@@ -3186,10 +3272,10 @@ function Hr(e) {
|
|
|
3186
3272
|
if (!e.length) return;
|
|
3187
3273
|
let i = new Map(o.value), c = new Set(t.value), l = new Set(n.value), u = new Map(r.value), f = new Map(a.value), p = [];
|
|
3188
3274
|
for (let t of e) {
|
|
3189
|
-
let e =
|
|
3275
|
+
let e = $(t.item);
|
|
3190
3276
|
p.push(e), i.set(e, t), c.delete(e), l.delete(e), u.delete(e), f.delete(e), d.delete(e);
|
|
3191
3277
|
}
|
|
3192
|
-
o.value = i, t.value = c, n.value = l, r.value = u, a.value = f,
|
|
3278
|
+
o.value = i, t.value = c, n.value = l, r.value = u, a.value = f, Yr(() => {
|
|
3193
3279
|
let e = new Set(s.value);
|
|
3194
3280
|
for (let t of p) e.add(t);
|
|
3195
3281
|
s.value = e;
|
|
@@ -3197,9 +3283,9 @@ function Hr(e) {
|
|
|
3197
3283
|
let e = new Map(o.value), t = new Set(s.value);
|
|
3198
3284
|
for (let n of p) e.delete(n), t.delete(n);
|
|
3199
3285
|
o.value = e, s.value = t;
|
|
3200
|
-
},
|
|
3286
|
+
}, Hr);
|
|
3201
3287
|
}
|
|
3202
|
-
function g(t, n, r =
|
|
3288
|
+
function g(t, n, r = zr) {
|
|
3203
3289
|
if (!t.size) return;
|
|
3204
3290
|
let i = /* @__PURE__ */ new Map(), a = [];
|
|
3205
3291
|
for (let [r, o] of t.entries()) {
|
|
@@ -3218,8 +3304,8 @@ function Hr(e) {
|
|
|
3218
3304
|
c.value = i, u.value = /* @__PURE__ */ new Set();
|
|
3219
3305
|
let o = new Map(l.value);
|
|
3220
3306
|
for (let e of a) o.set(e, r);
|
|
3221
|
-
l.value = o,
|
|
3222
|
-
u.value = new Set(a),
|
|
3307
|
+
l.value = o, Yr(() => {
|
|
3308
|
+
u.value = new Set(a), Yr(() => {
|
|
3223
3309
|
c.value = /* @__PURE__ */ new Map();
|
|
3224
3310
|
});
|
|
3225
3311
|
}), S(() => {
|
|
@@ -3230,8 +3316,8 @@ function Hr(e) {
|
|
|
3230
3316
|
}, r);
|
|
3231
3317
|
}
|
|
3232
3318
|
function _(e) {
|
|
3233
|
-
if (n.value.has(e)) return `transform ${
|
|
3234
|
-
if (u.value.has(e)) return `transform ${l.value.get(e) ??
|
|
3319
|
+
if (n.value.has(e)) return `transform ${Br}ms ease-out`;
|
|
3320
|
+
if (u.value.has(e)) return `transform ${l.value.get(e) ?? zr}ms ease-out`;
|
|
3235
3321
|
}
|
|
3236
3322
|
function v(e) {
|
|
3237
3323
|
if (!n.value.has(e)) return;
|
|
@@ -3242,13 +3328,13 @@ function Hr(e) {
|
|
|
3242
3328
|
let r = e.items.value[n], i = e.positions.value[n] ?? {
|
|
3243
3329
|
x: 0,
|
|
3244
3330
|
y: 0
|
|
3245
|
-
}, o = e.heights.value[n] ?? e.columnWidth.value, s = r ?
|
|
3331
|
+
}, o = e.heights.value[n] ?? e.columnWidth.value, s = r ? $(r) : null, l = s ? c.value.get(s) ?? {
|
|
3246
3332
|
dx: 0,
|
|
3247
3333
|
dy: 0
|
|
3248
3334
|
} : {
|
|
3249
3335
|
dx: 0,
|
|
3250
3336
|
dy: 0
|
|
3251
|
-
}, u = s ? a.value.get(s) ?? "bottom" : "bottom", d = s && t.value.has(s) ?
|
|
3337
|
+
}, u = s ? a.value.get(s) ?? "bottom" : "bottom", d = s && t.value.has(s) ? qr({
|
|
3252
3338
|
columnWidth: e.columnWidth.value,
|
|
3253
3339
|
direction: u,
|
|
3254
3340
|
itemHeight: o,
|
|
@@ -3258,18 +3344,18 @@ function Hr(e) {
|
|
|
3258
3344
|
return `translate3d(${i.x + l.dx}px, ${d + l.dy}px, 0)`;
|
|
3259
3345
|
}
|
|
3260
3346
|
function b(t) {
|
|
3261
|
-
let n =
|
|
3347
|
+
let n = $(t), r = o.value.get(n);
|
|
3262
3348
|
if (!r) return {
|
|
3263
3349
|
opacity: "0",
|
|
3264
3350
|
transform: "translate3d(0, 0, 0) scale(0.96)",
|
|
3265
|
-
transition: `opacity ${
|
|
3351
|
+
transition: `opacity ${Hr}ms ease-out, transform ${Hr}ms ease-out`
|
|
3266
3352
|
};
|
|
3267
3353
|
let i = s.value.has(n);
|
|
3268
3354
|
return {
|
|
3269
3355
|
height: `${r.height}px`,
|
|
3270
3356
|
opacity: i ? "0" : "1",
|
|
3271
3357
|
transform: `translate3d(${r.position.x}px, ${r.position.y}px, 0) scale(${i ? "0.96" : "1"})`,
|
|
3272
|
-
transition: `opacity ${
|
|
3358
|
+
transition: `opacity ${Hr}ms ease-out, transform ${Hr}ms ease-out`,
|
|
3273
3359
|
width: `${e.columnWidth.value}px`
|
|
3274
3360
|
};
|
|
3275
3361
|
}
|
|
@@ -3290,28 +3376,28 @@ function Hr(e) {
|
|
|
3290
3376
|
playFlipMoveAnimation: g
|
|
3291
3377
|
};
|
|
3292
3378
|
}
|
|
3293
|
-
function
|
|
3379
|
+
function Yr(e) {
|
|
3294
3380
|
if (typeof requestAnimationFrame == "function") {
|
|
3295
3381
|
requestAnimationFrame(() => e());
|
|
3296
3382
|
return;
|
|
3297
3383
|
}
|
|
3298
3384
|
setTimeout(e, 0);
|
|
3299
3385
|
}
|
|
3300
|
-
function
|
|
3301
|
-
|
|
3386
|
+
function Xr(e) {
|
|
3387
|
+
Yr(() => Yr(e));
|
|
3302
3388
|
}
|
|
3303
3389
|
//#endregion
|
|
3304
3390
|
//#region src/components/viewer-core/masonryViewport.ts
|
|
3305
|
-
function
|
|
3391
|
+
function Zr(e, t) {
|
|
3306
3392
|
return e?.clientHeight || Math.round(e?.getBoundingClientRect().height ?? 0) || t || window.innerHeight || 1;
|
|
3307
3393
|
}
|
|
3308
|
-
function
|
|
3394
|
+
function Qr(e, t, n) {
|
|
3309
3395
|
return e?.clientWidth || Math.round(e?.getBoundingClientRect().width ?? 0) || t || window.innerWidth || n;
|
|
3310
3396
|
}
|
|
3311
|
-
function
|
|
3397
|
+
function $r(e, t, n, r) {
|
|
3312
3398
|
return Math.max(e?.scrollHeight ?? 0, r) - (t + n);
|
|
3313
3399
|
}
|
|
3314
|
-
function
|
|
3400
|
+
function ei(e, t) {
|
|
3315
3401
|
return {
|
|
3316
3402
|
height: `${e}px`,
|
|
3317
3403
|
transform: `translate3d(0, ${t}px, 0)`
|
|
@@ -3319,11 +3405,11 @@ function Jr(e, t) {
|
|
|
3319
3405
|
}
|
|
3320
3406
|
//#endregion
|
|
3321
3407
|
//#region src/components/viewer-core/masonryScrollBehavior.ts
|
|
3322
|
-
var
|
|
3323
|
-
function
|
|
3408
|
+
var ti = 24, ni = 48;
|
|
3409
|
+
function ri(e) {
|
|
3324
3410
|
let t = D(0), n = 0, r = 0;
|
|
3325
3411
|
function i(e) {
|
|
3326
|
-
if (t.value =
|
|
3412
|
+
if (t.value = ci(e), t.value <= 0) {
|
|
3327
3413
|
o();
|
|
3328
3414
|
return;
|
|
3329
3415
|
}
|
|
@@ -3343,7 +3429,7 @@ function Zr(e) {
|
|
|
3343
3429
|
let s = e.getViewport();
|
|
3344
3430
|
if (s && r > 0) {
|
|
3345
3431
|
let n = Math.min(Math.max(0, i - r), 250), a = t.value * n / 1e3;
|
|
3346
|
-
s.scrollTop =
|
|
3432
|
+
s.scrollTop = li(s.scrollTop + a, 0, e.getMaxScrollTop()), e.onScroll();
|
|
3347
3433
|
}
|
|
3348
3434
|
r = i, a();
|
|
3349
3435
|
}
|
|
@@ -3353,63 +3439,75 @@ function Zr(e) {
|
|
|
3353
3439
|
stop: o
|
|
3354
3440
|
};
|
|
3355
3441
|
}
|
|
3356
|
-
function
|
|
3442
|
+
function ii(e) {
|
|
3357
3443
|
if (!e.active || !e.triggerEnabled) return 0;
|
|
3358
3444
|
let t = Math.max(0, e.maxScrollTop - e.thresholdPx);
|
|
3359
|
-
return t <= 0 ? 1 :
|
|
3445
|
+
return t <= 0 ? 1 : li(1 - (e.progressDistancePx - e.thresholdPx) / t, 0, 1);
|
|
3360
3446
|
}
|
|
3361
|
-
function
|
|
3447
|
+
function ai(e) {
|
|
3362
3448
|
if (!e.active || !e.triggerEnabled) return 0;
|
|
3363
3449
|
let t = Math.max(0, e.maxScrollTop - e.thresholdPx);
|
|
3364
|
-
return t <= 0 ? 1 :
|
|
3450
|
+
return t <= 0 ? 1 : li(e.progressDistancePx / t, 0, 1);
|
|
3365
3451
|
}
|
|
3366
|
-
function
|
|
3367
|
-
let t = i(() => Math.max(0, e.viewportHeight.value -
|
|
3452
|
+
function oi(e) {
|
|
3453
|
+
let t = i(() => Math.max(0, e.viewportHeight.value - ti * 2)), n = i(() => e.containerHeight.value > e.viewportHeight.value + 1 && t.value > 0), r = i(() => {
|
|
3368
3454
|
if (!n.value) return 0;
|
|
3369
3455
|
let r = e.viewportHeight.value / e.containerHeight.value * t.value;
|
|
3370
|
-
return Math.min(t.value, Math.max(
|
|
3456
|
+
return Math.min(t.value, Math.max(ni, r));
|
|
3371
3457
|
}), a = i(() => {
|
|
3372
|
-
if (!n.value) return
|
|
3458
|
+
if (!n.value) return ti;
|
|
3373
3459
|
let i = Math.max(0, e.containerHeight.value - e.viewportHeight.value);
|
|
3374
|
-
return
|
|
3460
|
+
return ti + Math.max(0, t.value - r.value) * (i > 0 ? li(e.scrollTop.value / i, 0, 1) : 0);
|
|
3375
3461
|
});
|
|
3376
3462
|
return {
|
|
3377
|
-
getScrollbarThumbStyle: () =>
|
|
3463
|
+
getScrollbarThumbStyle: () => ei(r.value, a.value),
|
|
3378
3464
|
showScrollbar: n
|
|
3379
3465
|
};
|
|
3380
3466
|
}
|
|
3381
|
-
function
|
|
3467
|
+
function si(e) {
|
|
3382
3468
|
return typeof e == "number" && Number.isFinite(e) ? Math.max(0, e) : 0;
|
|
3383
3469
|
}
|
|
3384
|
-
function
|
|
3470
|
+
function ci(e) {
|
|
3385
3471
|
return Number.isFinite(e) ? Math.max(0, e) : 0;
|
|
3386
3472
|
}
|
|
3387
|
-
function
|
|
3473
|
+
function li(e, t, n) {
|
|
3388
3474
|
return Math.min(Math.max(e, t), n);
|
|
3389
3475
|
}
|
|
3390
3476
|
//#endregion
|
|
3391
3477
|
//#region src/components/viewer-core/useEdgeBoundary.ts
|
|
3392
|
-
var
|
|
3393
|
-
function
|
|
3394
|
-
let t = D(!1), n = D(!1), r = D(0), i = D(0), a = D(!1), o = D(!1), s =
|
|
3478
|
+
var ui = 250, di = 1e3;
|
|
3479
|
+
function fi(e) {
|
|
3480
|
+
let t = D(!1), n = D(!1), r = D(0), i = D(0), a = D(!1), o = D(!1), s = D(!1), c = 0, l = null;
|
|
3395
3481
|
x(() => {
|
|
3396
|
-
|
|
3482
|
+
S();
|
|
3397
3483
|
});
|
|
3398
|
-
function
|
|
3399
|
-
let
|
|
3484
|
+
function u(r = "layout") {
|
|
3485
|
+
let i = t.value;
|
|
3400
3486
|
if (t.value = e.isAtBoundary(), !t.value) {
|
|
3401
|
-
!a.value && !o.value && (n.value = !0);
|
|
3487
|
+
(!a.value && !o.value || r === "scroll") && (n.value = !0);
|
|
3402
3488
|
return;
|
|
3403
3489
|
}
|
|
3404
|
-
!
|
|
3490
|
+
if (!i && n.value) {
|
|
3491
|
+
if (r === "scroll" && a.value) {
|
|
3492
|
+
s.value = !0;
|
|
3493
|
+
return;
|
|
3494
|
+
}
|
|
3495
|
+
h();
|
|
3496
|
+
}
|
|
3405
3497
|
}
|
|
3406
|
-
function
|
|
3407
|
-
if (!
|
|
3498
|
+
function d(t) {
|
|
3499
|
+
if (!C(t) || !e.isAtBoundary()) return;
|
|
3408
3500
|
let n = Date.now();
|
|
3409
|
-
|
|
3501
|
+
if (!(n < c)) {
|
|
3502
|
+
if (c = n + ui, a.value) {
|
|
3503
|
+
s.value = !0;
|
|
3504
|
+
return;
|
|
3505
|
+
}
|
|
3506
|
+
h();
|
|
3507
|
+
}
|
|
3410
3508
|
}
|
|
3411
|
-
function
|
|
3412
|
-
if (!
|
|
3509
|
+
function f() {
|
|
3510
|
+
if (!_()) return;
|
|
3413
3511
|
let t = e.requestPage.value;
|
|
3414
3512
|
if (typeof t != "function") return;
|
|
3415
3513
|
i.value = r.value, n.value = !1, a.value = !0, o.value = !0;
|
|
@@ -3417,53 +3515,62 @@ function oi(e) {
|
|
|
3417
3515
|
try {
|
|
3418
3516
|
s = t();
|
|
3419
3517
|
} catch {
|
|
3420
|
-
|
|
3518
|
+
v();
|
|
3421
3519
|
return;
|
|
3422
3520
|
}
|
|
3423
3521
|
Promise.resolve(s).catch(() => {}).finally(() => {
|
|
3424
|
-
!e.loading.value && o.value &&
|
|
3522
|
+
!e.loading.value && o.value && v();
|
|
3425
3523
|
});
|
|
3426
3524
|
}
|
|
3427
|
-
function
|
|
3428
|
-
!e && o.value &&
|
|
3525
|
+
function p(e) {
|
|
3526
|
+
!e && o.value && v();
|
|
3429
3527
|
}
|
|
3430
|
-
function
|
|
3431
|
-
!o.value || t <= 0 || (o.value = !1,
|
|
3432
|
-
}
|
|
3433
|
-
function m() {
|
|
3434
|
-
h() && (r.value += 1);
|
|
3528
|
+
function m(t) {
|
|
3529
|
+
!o.value || t <= 0 || (o.value = !1, y(e.getAnimationLockMs(t)));
|
|
3435
3530
|
}
|
|
3436
3531
|
function h() {
|
|
3437
|
-
|
|
3532
|
+
g() && (r.value += 1);
|
|
3438
3533
|
}
|
|
3439
3534
|
function g() {
|
|
3440
|
-
return e.hasPage.value &&
|
|
3535
|
+
return e.hasPage.value && !e.interactionLocked?.value && !e.loading.value && !a.value && typeof e.requestPage.value == "function";
|
|
3441
3536
|
}
|
|
3442
3537
|
function _() {
|
|
3443
|
-
|
|
3538
|
+
return e.hasPage.value && t.value && r.value > i.value && !e.interactionLocked?.value && !e.loading.value && !a.value && typeof e.requestPage.value == "function";
|
|
3444
3539
|
}
|
|
3445
|
-
function v(
|
|
3446
|
-
|
|
3447
|
-
|
|
3540
|
+
function v() {
|
|
3541
|
+
o.value = !1, y(di);
|
|
3542
|
+
}
|
|
3543
|
+
function y(e) {
|
|
3544
|
+
S(), a.value = !0, l = setTimeout(() => {
|
|
3545
|
+
l = null, a.value = !1, b();
|
|
3448
3546
|
}, Math.max(0, e));
|
|
3449
3547
|
}
|
|
3450
|
-
function
|
|
3451
|
-
|
|
3548
|
+
function b() {
|
|
3549
|
+
if (s.value) {
|
|
3550
|
+
if (s.value = !1, !e.isAtBoundary()) {
|
|
3551
|
+
o.value || (n.value = !0);
|
|
3552
|
+
return;
|
|
3553
|
+
}
|
|
3554
|
+
t.value = !0, h(), f();
|
|
3555
|
+
}
|
|
3452
3556
|
}
|
|
3453
|
-
function
|
|
3557
|
+
function S() {
|
|
3558
|
+
l &&= (clearTimeout(l), null);
|
|
3559
|
+
}
|
|
3560
|
+
function C(t) {
|
|
3454
3561
|
return e.direction === "top" ? t.deltaY < 0 : t.deltaY > 0;
|
|
3455
3562
|
}
|
|
3456
3563
|
return {
|
|
3457
|
-
maybeRequestPage:
|
|
3458
|
-
onItemsMutated:
|
|
3459
|
-
onLoadingChange:
|
|
3460
|
-
onWheel:
|
|
3461
|
-
syncBoundary:
|
|
3564
|
+
maybeRequestPage: f,
|
|
3565
|
+
onItemsMutated: m,
|
|
3566
|
+
onLoadingChange: p,
|
|
3567
|
+
onWheel: d,
|
|
3568
|
+
syncBoundary: u
|
|
3462
3569
|
};
|
|
3463
3570
|
}
|
|
3464
3571
|
//#endregion
|
|
3465
3572
|
//#region src/components/viewer-core/masonryBoundaryLock.ts
|
|
3466
|
-
function
|
|
3573
|
+
function pi() {
|
|
3467
3574
|
let e = D(!1), t = null;
|
|
3468
3575
|
x(() => {
|
|
3469
3576
|
r();
|
|
@@ -3484,11 +3591,11 @@ function si() {
|
|
|
3484
3591
|
}
|
|
3485
3592
|
//#endregion
|
|
3486
3593
|
//#region src/components/viewer-core/masonryItemMutation.ts
|
|
3487
|
-
function
|
|
3488
|
-
let t = e.currentItems.map((e) =>
|
|
3594
|
+
function mi(e) {
|
|
3595
|
+
let t = e.currentItems.map((e) => $(e)), n = e.previousItems.map((e) => $(e)), r = gi(e.previousItems, e.layoutIndexById, e.layoutHeights), i = _i(e.previousItems, e.layoutIndexById, e.layoutPositions), a = new Set(n), o = new Set(t), s = e.currentItems.filter((e) => !a.has($(e))), c = hi(e.previousItems, o, r, i), l = t.length > n.length && n.length > 0 && t[0] !== n[0], u = e.scrollTop > e.contentInsetPx + e.gapPx, d = l && u ? e.currentItems[e.activeIndex] : null;
|
|
3489
3596
|
return {
|
|
3490
3597
|
addedItems: s,
|
|
3491
|
-
anchorId: d ?
|
|
3598
|
+
anchorId: d ? $(d) : null,
|
|
3492
3599
|
isPrepend: l,
|
|
3493
3600
|
oldPositionsById: i,
|
|
3494
3601
|
previousIds: n,
|
|
@@ -3497,9 +3604,9 @@ function ci(e) {
|
|
|
3497
3604
|
shouldResetScrollForEmptyRemoval: e.currentItems.length === 0 && e.previousItems.length > 0 && c.length > 0 && e.scrollTop > 0
|
|
3498
3605
|
};
|
|
3499
3606
|
}
|
|
3500
|
-
function
|
|
3607
|
+
function hi(e, t, n, r) {
|
|
3501
3608
|
return e.flatMap((e) => {
|
|
3502
|
-
let i =
|
|
3609
|
+
let i = $(e);
|
|
3503
3610
|
if (t.has(i)) return [];
|
|
3504
3611
|
let a = r.get(i), o = n.get(i);
|
|
3505
3612
|
return a && o != null ? [{
|
|
@@ -3509,25 +3616,25 @@ function li(e, t, n, r) {
|
|
|
3509
3616
|
}] : [];
|
|
3510
3617
|
});
|
|
3511
3618
|
}
|
|
3512
|
-
function
|
|
3619
|
+
function gi(e, t, n) {
|
|
3513
3620
|
let r = /* @__PURE__ */ new Map();
|
|
3514
3621
|
for (let i of e) {
|
|
3515
|
-
let e =
|
|
3622
|
+
let e = $(i), a = t.get(e), o = a == null ? void 0 : n[a];
|
|
3516
3623
|
o != null && r.set(e, o);
|
|
3517
3624
|
}
|
|
3518
3625
|
return r;
|
|
3519
3626
|
}
|
|
3520
|
-
function
|
|
3627
|
+
function _i(e, t, n) {
|
|
3521
3628
|
let r = /* @__PURE__ */ new Map();
|
|
3522
3629
|
for (let i of e) {
|
|
3523
|
-
let e =
|
|
3630
|
+
let e = $(i), a = t.get(e), o = a == null ? void 0 : n[a];
|
|
3524
3631
|
o && r.set(e, o);
|
|
3525
3632
|
}
|
|
3526
3633
|
return r;
|
|
3527
3634
|
}
|
|
3528
3635
|
//#endregion
|
|
3529
3636
|
//#region src/components/viewer-core/masonryPendingAppend.ts
|
|
3530
|
-
function
|
|
3637
|
+
function vi(e) {
|
|
3531
3638
|
let t = D(null), n = D(!1), r = null;
|
|
3532
3639
|
function i() {
|
|
3533
3640
|
o(), e.pendingAppendItems.value.length && (t.value = c([...e.items.value, ...e.pendingAppendItems.value]), s());
|
|
@@ -3550,7 +3657,12 @@ function fi(e) {
|
|
|
3550
3657
|
}, 300));
|
|
3551
3658
|
}
|
|
3552
3659
|
function c(t) {
|
|
3553
|
-
return t.length ?
|
|
3660
|
+
return t.length ? e.pendingAppendItems.value.length && e.columnHeights.value.length === e.columnCount.value ? Nr(e.pendingAppendItems.value, {
|
|
3661
|
+
columnHeights: e.columnHeights.value,
|
|
3662
|
+
columnWidth: e.columnWidth.value,
|
|
3663
|
+
contentHeight: e.contentHeight.value,
|
|
3664
|
+
gapY: e.gapPx
|
|
3665
|
+
}) + e.contentInsetPx * 2 : jr(t, {
|
|
3554
3666
|
bucketPx: e.bucketPx,
|
|
3555
3667
|
columnCount: e.columnCount.value,
|
|
3556
3668
|
columnWidth: e.columnWidth.value,
|
|
@@ -3567,242 +3679,237 @@ function fi(e) {
|
|
|
3567
3679
|
}
|
|
3568
3680
|
//#endregion
|
|
3569
3681
|
//#region src/components/viewer-core/useMasonryList.ts
|
|
3570
|
-
var
|
|
3571
|
-
function
|
|
3572
|
-
let t = D(null), n = D(0), r = D(typeof window > "u" ? 0 : window.innerHeight || 0), a = D(typeof window > "u" ? 0 : window.innerWidth ||
|
|
3682
|
+
var yi = 600, bi = 24, xi = 16, Si = 300, Ci = 200, wi = 0, Ti = 1, Ei = bi + xi, Di = 200, Oi = 500, ki = 1e3;
|
|
3683
|
+
function Ai(e) {
|
|
3684
|
+
let t = D(null), n = D(0), r = D(typeof window > "u" ? 0 : window.innerHeight || 0), a = D(typeof window > "u" ? 0 : window.innerWidth || Si), o = Rr({
|
|
3685
|
+
bucketPx: yi,
|
|
3686
|
+
contentInsetPx: bi,
|
|
3687
|
+
gapPx: xi
|
|
3688
|
+
}), { buckets: s, columnHeights: c, contentHeight: l, heights: u, indexById: d, positions: f } = o, p = D(null), m = pi(), h = i(() => Math.max(Si, a.value - bi * 2)), g = i(() => Or(h.value, Si)), v = i(() => kr(h.value, g.value, Si, xi)), y = i(() => si(e.bottomLoadBufferPx.value)), b = i(() => ji(e.activeIndex.value, 0, Math.max(0, e.items.value.length - 1))), C = i(() => Fr({
|
|
3573
3689
|
itemCount: e.items.value.length,
|
|
3574
3690
|
viewportHeight: r.value,
|
|
3575
3691
|
scrollTop: n.value,
|
|
3576
|
-
overscanPx:
|
|
3577
|
-
bucketPx:
|
|
3578
|
-
buckets:
|
|
3579
|
-
})),
|
|
3692
|
+
overscanPx: Ci,
|
|
3693
|
+
bucketPx: yi,
|
|
3694
|
+
buckets: s.value
|
|
3695
|
+
})), w = i(() => C.value.map((t) => ({
|
|
3580
3696
|
item: e.items.value[t],
|
|
3581
3697
|
index: t
|
|
3582
|
-
}))),
|
|
3583
|
-
let e = l.value +
|
|
3584
|
-
return Math.max(e, t, r.value) +
|
|
3585
|
-
}),
|
|
3698
|
+
}))), T = i(() => {
|
|
3699
|
+
let e = l.value + bi * 2, t = I.reservedContentHeight.value ?? 0;
|
|
3700
|
+
return Math.max(e, t, r.value) + Di + y.value;
|
|
3701
|
+
}), E = i(() => e.hasNextPage.value || e.allowExhaustedNextPageRefresh.value), O = i(() => ai({
|
|
3586
3702
|
active: e.active.value,
|
|
3587
|
-
maxScrollTop:
|
|
3703
|
+
maxScrollTop: X(),
|
|
3588
3704
|
progressDistancePx: n.value,
|
|
3589
|
-
thresholdPx:
|
|
3590
|
-
triggerEnabled:
|
|
3591
|
-
})),
|
|
3705
|
+
thresholdPx: wi,
|
|
3706
|
+
triggerEnabled: E.value
|
|
3707
|
+
})), k = i(() => e.items.value.length > 0 ? `${b.value + 1} / ${e.items.value.length}` : "0 / 0"), A = i(() => ii({
|
|
3592
3708
|
active: e.active.value,
|
|
3593
|
-
maxScrollTop:
|
|
3709
|
+
maxScrollTop: X(),
|
|
3594
3710
|
progressDistancePx: n.value,
|
|
3595
|
-
thresholdPx:
|
|
3711
|
+
thresholdPx: Ei,
|
|
3596
3712
|
triggerEnabled: e.hasPreviousPage.value
|
|
3597
|
-
})),
|
|
3598
|
-
containerHeight:
|
|
3713
|
+
})), j = oi({
|
|
3714
|
+
containerHeight: T,
|
|
3599
3715
|
scrollTop: n,
|
|
3600
3716
|
viewportHeight: r
|
|
3601
|
-
}),
|
|
3717
|
+
}), M = Jr({
|
|
3602
3718
|
items: e.items,
|
|
3603
|
-
visibleIndices:
|
|
3604
|
-
positions:
|
|
3605
|
-
heights:
|
|
3606
|
-
indexById:
|
|
3607
|
-
columnWidth:
|
|
3719
|
+
visibleIndices: C,
|
|
3720
|
+
positions: f,
|
|
3721
|
+
heights: u,
|
|
3722
|
+
indexById: d,
|
|
3723
|
+
columnWidth: v,
|
|
3608
3724
|
scrollTop: n,
|
|
3609
3725
|
viewportHeight: r
|
|
3610
|
-
}),
|
|
3726
|
+
}), N = fi({
|
|
3611
3727
|
direction: "top",
|
|
3612
3728
|
getAnimationLockMs(e) {
|
|
3613
|
-
return Math.max(
|
|
3729
|
+
return Math.max(Oi, Gr(e)) + ki;
|
|
3614
3730
|
},
|
|
3615
3731
|
hasPage: e.hasPreviousPage,
|
|
3616
|
-
interactionLocked:
|
|
3732
|
+
interactionLocked: m.isBoundaryInteractionLocked,
|
|
3617
3733
|
isAtBoundary() {
|
|
3618
|
-
return n.value <=
|
|
3734
|
+
return n.value <= Ei;
|
|
3619
3735
|
},
|
|
3620
3736
|
loading: e.loading,
|
|
3621
3737
|
requestPage: e.requestPreviousPage
|
|
3622
|
-
}),
|
|
3738
|
+
}), P = fi({
|
|
3623
3739
|
direction: "bottom",
|
|
3624
3740
|
getAnimationLockMs(e) {
|
|
3625
|
-
return
|
|
3741
|
+
return Gr(e) + ki;
|
|
3626
3742
|
},
|
|
3627
|
-
hasPage:
|
|
3628
|
-
interactionLocked:
|
|
3743
|
+
hasPage: E,
|
|
3744
|
+
interactionLocked: m.isBoundaryInteractionLocked,
|
|
3629
3745
|
isAtBoundary() {
|
|
3630
|
-
return
|
|
3746
|
+
return Y() <= Ti;
|
|
3631
3747
|
},
|
|
3632
3748
|
loading: e.loading,
|
|
3633
3749
|
requestPage: e.requestNextPage
|
|
3634
|
-
}),
|
|
3750
|
+
}), F = ri({
|
|
3635
3751
|
active: e.active,
|
|
3636
|
-
getMaxScrollTop:
|
|
3752
|
+
getMaxScrollTop: X,
|
|
3637
3753
|
getViewport: () => t.value,
|
|
3638
|
-
onScroll:
|
|
3639
|
-
}),
|
|
3640
|
-
bucketPx:
|
|
3641
|
-
|
|
3642
|
-
|
|
3754
|
+
onScroll: ee
|
|
3755
|
+
}), I = vi({
|
|
3756
|
+
bucketPx: yi,
|
|
3757
|
+
columnHeights: c,
|
|
3758
|
+
columnCount: g,
|
|
3759
|
+
columnWidth: v,
|
|
3643
3760
|
commitPendingAppend: e.commitPendingAppend,
|
|
3644
|
-
|
|
3645
|
-
|
|
3761
|
+
contentHeight: l,
|
|
3762
|
+
contentInsetPx: bi,
|
|
3763
|
+
gapPx: xi,
|
|
3646
3764
|
items: e.items,
|
|
3647
3765
|
pendingAppendItems: e.pendingAppendItems
|
|
3648
|
-
}),
|
|
3649
|
-
|
|
3766
|
+
}), L = null, R = 0;
|
|
3767
|
+
z([
|
|
3650
3768
|
() => e.items.value,
|
|
3651
|
-
|
|
3652
|
-
|
|
3769
|
+
g,
|
|
3770
|
+
v
|
|
3653
3771
|
], async ([t], [r = []]) => {
|
|
3654
|
-
let i =
|
|
3655
|
-
activeIndex:
|
|
3656
|
-
contentInsetPx:
|
|
3772
|
+
let i = mi({
|
|
3773
|
+
activeIndex: b.value,
|
|
3774
|
+
contentInsetPx: bi,
|
|
3657
3775
|
currentItems: t,
|
|
3658
|
-
gapPx:
|
|
3659
|
-
layoutHeights:
|
|
3660
|
-
layoutIndexById:
|
|
3661
|
-
layoutPositions:
|
|
3776
|
+
gapPx: xi,
|
|
3777
|
+
layoutHeights: u.value,
|
|
3778
|
+
layoutIndexById: d.value,
|
|
3779
|
+
layoutPositions: f.value,
|
|
3662
3780
|
previousItems: r ?? [],
|
|
3663
3781
|
scrollTop: n.value
|
|
3664
3782
|
});
|
|
3665
|
-
i.shouldLockBoundaryInteractionForRemoval &&
|
|
3666
|
-
|
|
3667
|
-
()
|
|
3668
|
-
|
|
3669
|
-
|
|
3783
|
+
i.shouldLockBoundaryInteractionForRemoval && m.lockBoundaryInteraction(Kr() + ki), i.shouldResetScrollForEmptyRemoval && te();
|
|
3784
|
+
let a = r ?? [];
|
|
3785
|
+
o.canAppend(t, a, i, g.value) ? o.append(i.addedItems, a.length, g.value, v.value) : o.rebuild(t, g.value, v.value), i.removedItems.length > 0 && M.markLeave(i.removedItems), i.addedItems.length > 0 && (M.markEnter(i.addedItems, i.isPrepend ? "top" : "bottom"), i.isPrepend ? N.onItemsMutated(i.addedItems.length) : P.onItemsMutated(i.addedItems.length)), M.playFlipMoveAnimation(i.oldPositionsById, new Set(i.addedItems.map((e) => $(e))), i.isPrepend ? Oi : void 0), i.anchorId ? (await _(), U(i.anchorId, i.oldPositionsById)) : e.active.value && i.previousIds.length > 0 && G();
|
|
3786
|
+
}, { immediate: !0 }), z([
|
|
3787
|
+
() => e.pendingAppendItems.value.map((e) => $(e)),
|
|
3788
|
+
g,
|
|
3789
|
+
v,
|
|
3670
3790
|
r
|
|
3671
|
-
], () =>
|
|
3791
|
+
], () => I.refreshReservedContentHeight(), { immediate: !0 }), z(() => e.active.value, async (e, i) => {
|
|
3672
3792
|
let a = t.value;
|
|
3673
3793
|
if (!e) {
|
|
3674
|
-
a && (
|
|
3794
|
+
a && (p.value = a.scrollTop), F.stop();
|
|
3675
3795
|
return;
|
|
3676
3796
|
}
|
|
3677
|
-
if (
|
|
3797
|
+
if (F.start(), !a || i !== !1 || p.value == null) return;
|
|
3678
3798
|
await _();
|
|
3679
|
-
let o = Math.max(0,
|
|
3680
|
-
a.scrollTop = s, n.value = s,
|
|
3681
|
-
}),
|
|
3682
|
-
|
|
3799
|
+
let o = Math.max(0, T.value - r.value), s = ji(p.value, 0, o);
|
|
3800
|
+
a.scrollTop = s, n.value = s, N.syncBoundary(), P.syncBoundary();
|
|
3801
|
+
}), z(() => e.loading.value, async (e) => {
|
|
3802
|
+
I.clearReservedHeightWhenIdle(e), N.onLoadingChange(e), P.onLoadingChange(e), await _();
|
|
3683
3803
|
}), S(async () => {
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
}), t.value &&
|
|
3804
|
+
q(), await _(), b.value > 0 ? H(b.value, "center") : W(), N.syncBoundary(), P.syncBoundary(), typeof ResizeObserver < "u" ? (L = new ResizeObserver(() => {
|
|
3805
|
+
q();
|
|
3806
|
+
}), t.value && L.observe(t.value)) : window.addEventListener("resize", q);
|
|
3687
3807
|
}), x(() => {
|
|
3688
|
-
|
|
3808
|
+
L?.disconnect(), L = null, window.removeEventListener("resize", q), I.clearAppendCommitTimer(), m.clearBoundaryInteractionReleaseTimer(), R &&= (cancelAnimationFrame(R), 0), F.stop();
|
|
3689
3809
|
});
|
|
3690
|
-
function
|
|
3691
|
-
|
|
3692
|
-
|
|
3693
|
-
columnWidth: h.value,
|
|
3694
|
-
gapX: hi,
|
|
3695
|
-
gapY: hi,
|
|
3696
|
-
bucketPx: pi
|
|
3697
|
-
});
|
|
3698
|
-
o.value = t.positions.map((e) => ({
|
|
3699
|
-
x: e.x + mi,
|
|
3700
|
-
y: e.y + mi
|
|
3701
|
-
})), s.value = t.heights, c.value = t.buckets, l.value = t.contentHeight, u.value = t.indexById;
|
|
3702
|
-
}
|
|
3703
|
-
function z() {
|
|
3704
|
-
e.active.value && (n.value = t.value?.scrollTop ?? 0, r.value = K(), j.syncBoundary(), M.syncBoundary(), ne(), !W() && (I ||= requestAnimationFrame(() => {
|
|
3705
|
-
I = 0, U();
|
|
3810
|
+
function ee() {
|
|
3811
|
+
e.active.value && (n.value = t.value?.scrollTop ?? 0, r.value = J(), N.syncBoundary("scroll"), P.syncBoundary("scroll"), K(), !G() && (R ||= requestAnimationFrame(() => {
|
|
3812
|
+
R = 0, W();
|
|
3706
3813
|
})));
|
|
3707
3814
|
}
|
|
3708
|
-
function
|
|
3709
|
-
e.active.value && (
|
|
3815
|
+
function B(t) {
|
|
3816
|
+
e.active.value && (N.onWheel(t), P.onWheel(t), K());
|
|
3710
3817
|
}
|
|
3711
|
-
function
|
|
3712
|
-
let n = e.items.value[t], r = n ?
|
|
3818
|
+
function V(t) {
|
|
3819
|
+
let n = e.items.value[t], r = n ? $(n) : "";
|
|
3713
3820
|
return {
|
|
3714
|
-
height: `${
|
|
3715
|
-
width: `${
|
|
3716
|
-
transition: r ?
|
|
3717
|
-
transitionDelay: r ?
|
|
3718
|
-
transform:
|
|
3821
|
+
height: `${u.value[t] ?? v.value}px`,
|
|
3822
|
+
width: `${v.value}px`,
|
|
3823
|
+
transition: r ? M.getCardTransition(r) : void 0,
|
|
3824
|
+
transitionDelay: r ? M.getCardTransitionDelay(r) : void 0,
|
|
3825
|
+
transform: M.getCardTransform(t)
|
|
3719
3826
|
};
|
|
3720
3827
|
}
|
|
3721
|
-
function
|
|
3722
|
-
let a = t.value,
|
|
3723
|
-
if (!a || !
|
|
3724
|
-
let
|
|
3725
|
-
i === "center" ?
|
|
3828
|
+
function H(e, i) {
|
|
3829
|
+
let a = t.value, o = f.value[e], s = u.value[e];
|
|
3830
|
+
if (!a || !o || !s) return;
|
|
3831
|
+
let c = a.scrollTop, l = Math.max(0, T.value - r.value);
|
|
3832
|
+
i === "center" ? c = o.y - (r.value - s) / 2 : o.y < a.scrollTop ? c = o.y - bi : o.y + s > a.scrollTop + r.value && (c = o.y + s - r.value + bi), a.scrollTop = ji(c, 0, l), n.value = a.scrollTop, W();
|
|
3726
3833
|
}
|
|
3727
|
-
function
|
|
3728
|
-
let i = t.value, a = r.get(e),
|
|
3729
|
-
if (!i || !a || !
|
|
3730
|
-
let
|
|
3731
|
-
i.scrollTop +=
|
|
3834
|
+
function U(e, r) {
|
|
3835
|
+
let i = t.value, a = r.get(e), o = d.value.get(e), s = o == null ? null : f.value[o];
|
|
3836
|
+
if (!i || !a || !s) return;
|
|
3837
|
+
let c = s.y - a.y;
|
|
3838
|
+
i.scrollTop += c, n.value = i.scrollTop;
|
|
3732
3839
|
}
|
|
3733
|
-
function
|
|
3840
|
+
function te() {
|
|
3734
3841
|
let e = t.value;
|
|
3735
3842
|
if (!e) {
|
|
3736
3843
|
n.value = 0;
|
|
3737
3844
|
return;
|
|
3738
3845
|
}
|
|
3739
|
-
e.scrollTop = 0, n.value = 0,
|
|
3846
|
+
e.scrollTop = 0, n.value = 0, N.syncBoundary(), P.syncBoundary();
|
|
3740
3847
|
}
|
|
3741
|
-
function
|
|
3742
|
-
if (!
|
|
3743
|
-
let t = n.value + r.value / 2, i =
|
|
3744
|
-
for (let e of
|
|
3745
|
-
let n =
|
|
3848
|
+
function W() {
|
|
3849
|
+
if (!C.value.length || G()) return;
|
|
3850
|
+
let t = n.value + r.value / 2, i = b.value, a = Infinity;
|
|
3851
|
+
for (let e of C.value) {
|
|
3852
|
+
let n = f.value[e], r = u.value[e];
|
|
3746
3853
|
if (!n || !r) continue;
|
|
3747
|
-
let
|
|
3748
|
-
|
|
3854
|
+
let o = n.y + r / 2, s = Math.abs(o - t);
|
|
3855
|
+
s < a && (a = s, i = e);
|
|
3749
3856
|
}
|
|
3750
3857
|
e.setActiveIndex(i);
|
|
3751
3858
|
}
|
|
3752
|
-
function W() {
|
|
3753
|
-
let t = n.value <= yi, r = J() <= vi;
|
|
3754
|
-
return t ? (e.setActiveIndex(0), !0) : r ? (e.setActiveIndex(Math.max(0, e.items.value.length - 1)), !0) : !1;
|
|
3755
|
-
}
|
|
3756
|
-
function ne() {
|
|
3757
|
-
j.maybeRequestPage(), M.maybeRequestPage();
|
|
3758
|
-
}
|
|
3759
3859
|
function G() {
|
|
3760
|
-
|
|
3860
|
+
let t = n.value <= Ei, r = Y() <= Ti;
|
|
3861
|
+
return t ? (e.setActiveIndex(0), !0) : r ? (e.setActiveIndex(Math.max(0, e.items.value.length - 1)), !0) : !1;
|
|
3761
3862
|
}
|
|
3762
3863
|
function K() {
|
|
3763
|
-
|
|
3864
|
+
N.maybeRequestPage(), P.maybeRequestPage();
|
|
3764
3865
|
}
|
|
3765
3866
|
function q() {
|
|
3766
|
-
|
|
3867
|
+
r.value = J(), a.value = ne();
|
|
3767
3868
|
}
|
|
3768
3869
|
function J() {
|
|
3769
|
-
return
|
|
3870
|
+
return Zr(t.value, r.value);
|
|
3871
|
+
}
|
|
3872
|
+
function ne() {
|
|
3873
|
+
return Qr(t.value, a.value, Si);
|
|
3770
3874
|
}
|
|
3771
3875
|
function Y() {
|
|
3772
|
-
|
|
3876
|
+
return $r(t.value, n.value, r.value, T.value);
|
|
3877
|
+
}
|
|
3878
|
+
function X() {
|
|
3879
|
+
let e = Math.max(t.value?.scrollHeight ?? 0, T.value);
|
|
3773
3880
|
return Math.max(0, e - r.value);
|
|
3774
3881
|
}
|
|
3775
3882
|
return {
|
|
3776
|
-
autoScroll:
|
|
3777
|
-
columnWidth:
|
|
3778
|
-
containerHeight:
|
|
3779
|
-
getCardStyle:
|
|
3780
|
-
getLeavingCardStyle:
|
|
3781
|
-
getScrollbarThumbStyle:
|
|
3782
|
-
leavingItems:
|
|
3783
|
-
nextBoundaryLoadProgress:
|
|
3784
|
-
onScroll:
|
|
3785
|
-
onWheel:
|
|
3786
|
-
paginationLabel:
|
|
3787
|
-
previousBoundaryLoadProgress:
|
|
3788
|
-
renderedItems:
|
|
3789
|
-
resolvedActiveIndex:
|
|
3790
|
-
scrollToIndex:
|
|
3791
|
-
showScrollbar:
|
|
3883
|
+
autoScroll: F.autoScroll,
|
|
3884
|
+
columnWidth: v,
|
|
3885
|
+
containerHeight: T,
|
|
3886
|
+
getCardStyle: V,
|
|
3887
|
+
getLeavingCardStyle: M.getLeavingCardStyle,
|
|
3888
|
+
getScrollbarThumbStyle: j.getScrollbarThumbStyle,
|
|
3889
|
+
leavingItems: M.leavingItems,
|
|
3890
|
+
nextBoundaryLoadProgress: O,
|
|
3891
|
+
onScroll: ee,
|
|
3892
|
+
onWheel: B,
|
|
3893
|
+
paginationLabel: k,
|
|
3894
|
+
previousBoundaryLoadProgress: A,
|
|
3895
|
+
renderedItems: w,
|
|
3896
|
+
resolvedActiveIndex: b,
|
|
3897
|
+
scrollToIndex: H,
|
|
3898
|
+
showScrollbar: j.showScrollbar,
|
|
3792
3899
|
scrollViewportRef: t
|
|
3793
3900
|
};
|
|
3794
3901
|
}
|
|
3795
|
-
function
|
|
3902
|
+
function ji(e, t, n) {
|
|
3796
3903
|
return Math.min(Math.max(e, t), n);
|
|
3797
3904
|
}
|
|
3798
3905
|
//#endregion
|
|
3799
3906
|
//#region src/components/viewer-core/listCardAsset.ts
|
|
3800
|
-
function
|
|
3907
|
+
function Mi(e) {
|
|
3801
3908
|
if (e) try {
|
|
3802
3909
|
e.removeAttribute("src"), e.src = "";
|
|
3803
3910
|
} catch {}
|
|
3804
3911
|
}
|
|
3805
|
-
function
|
|
3912
|
+
function Ni(e) {
|
|
3806
3913
|
if (e) {
|
|
3807
3914
|
try {
|
|
3808
3915
|
e.currentTime = 0;
|
|
@@ -3813,12 +3920,12 @@ function Ei(e) {
|
|
|
3813
3920
|
} catch {}
|
|
3814
3921
|
}
|
|
3815
3922
|
}
|
|
3816
|
-
function
|
|
3923
|
+
function Pi(e, t) {
|
|
3817
3924
|
if (t) return e.bottom > t.top && e.top < t.bottom;
|
|
3818
3925
|
let n = window.innerHeight || document.documentElement.clientHeight || 0;
|
|
3819
3926
|
return e.bottom > 0 && e.top < n;
|
|
3820
3927
|
}
|
|
3821
|
-
function
|
|
3928
|
+
function Fi(e) {
|
|
3822
3929
|
if (!e) return null;
|
|
3823
3930
|
try {
|
|
3824
3931
|
return new URL(e, window.location.href).href;
|
|
@@ -3828,9 +3935,9 @@ function Oi(e) {
|
|
|
3828
3935
|
}
|
|
3829
3936
|
//#endregion
|
|
3830
3937
|
//#region src/components/viewer-core/listPreview.ts
|
|
3831
|
-
var
|
|
3832
|
-
function
|
|
3833
|
-
let t =
|
|
3938
|
+
var Ii = /\.(avif|gif|jpe?g|png|svg|webp)(\?|#|$)/i, Li = /\.(m4v|mov|mp4|mpeg|ogg|ogv|webm)(\?|#|$)/i, Ri = /^(?:(?:https?:)?\/\/[^/]+)?\/api\/files\/[^/?#]+\/(?:preview|downloaded)(?:\?|#|$)/i;
|
|
3939
|
+
function zi(e) {
|
|
3940
|
+
let t = Bi(e), n = t?.url, r = Dr(e), i = e.title?.trim() || Wt(e.type);
|
|
3834
3941
|
return t?.mediaType === "video" && typeof n == "string" ? {
|
|
3835
3942
|
kind: "video",
|
|
3836
3943
|
url: n,
|
|
@@ -3849,13 +3956,13 @@ function Mi(e) {
|
|
|
3849
3956
|
width: r.width,
|
|
3850
3957
|
height: r.height,
|
|
3851
3958
|
label: i
|
|
3852
|
-
} : typeof n == "string" &&
|
|
3959
|
+
} : typeof n == "string" && Hi(e, n) ? {
|
|
3853
3960
|
kind: "video",
|
|
3854
3961
|
url: n,
|
|
3855
3962
|
width: r.width,
|
|
3856
3963
|
height: r.height,
|
|
3857
3964
|
label: i
|
|
3858
|
-
} : typeof n == "string" &&
|
|
3965
|
+
} : typeof n == "string" && Vi(e, n) ? {
|
|
3859
3966
|
kind: "image",
|
|
3860
3967
|
url: n,
|
|
3861
3968
|
width: r.width,
|
|
@@ -3869,31 +3976,31 @@ function Mi(e) {
|
|
|
3869
3976
|
label: i
|
|
3870
3977
|
};
|
|
3871
3978
|
}
|
|
3872
|
-
function
|
|
3979
|
+
function Bi(e) {
|
|
3873
3980
|
return e.preview?.url ? e.preview : typeof e.url != "string" || e.url.trim() === "" ? null : { url: e.url };
|
|
3874
3981
|
}
|
|
3875
|
-
function
|
|
3876
|
-
return e.type !== "image" || typeof t != "string" ? !1 :
|
|
3982
|
+
function Vi(e, t) {
|
|
3983
|
+
return e.type !== "image" || typeof t != "string" ? !1 : Ii.test(t) || Ui(t);
|
|
3877
3984
|
}
|
|
3878
|
-
function
|
|
3879
|
-
return e.type !== "video" || typeof t != "string" ? !1 :
|
|
3985
|
+
function Hi(e, t) {
|
|
3986
|
+
return e.type !== "video" || typeof t != "string" ? !1 : Li.test(t) || Wi(t);
|
|
3880
3987
|
}
|
|
3881
|
-
function
|
|
3988
|
+
function Ui(e) {
|
|
3882
3989
|
return /^(https?:\/\/|\/\/|\/(?!\/)|\.{1,2}\/|blob:|data:)/i.test(e);
|
|
3883
3990
|
}
|
|
3884
|
-
function
|
|
3885
|
-
return
|
|
3991
|
+
function Wi(e) {
|
|
3992
|
+
return Ri.test(e) || /^blob:/i.test(e) || /^data:video\//i.test(e);
|
|
3886
3993
|
}
|
|
3887
3994
|
//#endregion
|
|
3888
3995
|
//#region src/components/viewer-core/useListCardHealthCheck.ts
|
|
3889
|
-
function
|
|
3996
|
+
function Gi(e) {
|
|
3890
3997
|
let t = D(null), n = i(() => {
|
|
3891
|
-
let t = typeof e.item.value.healthCheck?.url == "string" ?
|
|
3998
|
+
let t = typeof e.item.value.healthCheck?.url == "string" ? Fi(e.item.value.healthCheck.url) : null;
|
|
3892
3999
|
return !t || t === e.attachedAssetUrl.value ? null : t;
|
|
3893
4000
|
}), r = null, a = 0, o = /* @__PURE__ */ new Map();
|
|
3894
|
-
|
|
4001
|
+
z(n, (e, n) => {
|
|
3895
4002
|
e !== n && (t.value = null, l(), a += 1);
|
|
3896
|
-
}),
|
|
4003
|
+
}), z([
|
|
3897
4004
|
n,
|
|
3898
4005
|
e.surfaceActive,
|
|
3899
4006
|
e.isInView,
|
|
@@ -3920,7 +4027,7 @@ function Ri(e) {
|
|
|
3920
4027
|
r.refresh();
|
|
3921
4028
|
return;
|
|
3922
4029
|
}
|
|
3923
|
-
r =
|
|
4030
|
+
r = Kt.request({
|
|
3924
4031
|
assetType: "probe",
|
|
3925
4032
|
getPriority: e.getPriority,
|
|
3926
4033
|
onGrant() {
|
|
@@ -3930,7 +4037,7 @@ function Ri(e) {
|
|
|
3930
4037
|
return;
|
|
3931
4038
|
}
|
|
3932
4039
|
let i = ++a;
|
|
3933
|
-
|
|
4040
|
+
bn(r).then((s) => {
|
|
3934
4041
|
if (!(i !== a || n.value !== r)) {
|
|
3935
4042
|
if (o.set(r, s ?? null), !s) {
|
|
3936
4043
|
t.value = null;
|
|
@@ -3938,7 +4045,7 @@ function Ri(e) {
|
|
|
3938
4045
|
}
|
|
3939
4046
|
t.value = s, e.reportAssetError?.({
|
|
3940
4047
|
item: e.item.value,
|
|
3941
|
-
occurrenceKey:
|
|
4048
|
+
occurrenceKey: $(e.item.value),
|
|
3942
4049
|
url: r,
|
|
3943
4050
|
kind: s,
|
|
3944
4051
|
surface: "grid"
|
|
@@ -3966,14 +4073,14 @@ function Ri(e) {
|
|
|
3966
4073
|
}
|
|
3967
4074
|
//#endregion
|
|
3968
4075
|
//#region src/components/ListCard.vue?vue&type=script&setup=true&lang.ts
|
|
3969
|
-
var
|
|
4076
|
+
var Ki = ["aria-label"], qi = {
|
|
3970
4077
|
key: 0,
|
|
3971
4078
|
"data-testid": "vibe-list-card-spinner",
|
|
3972
4079
|
class: "pointer-events-none absolute inset-0 z-[4] grid place-items-center bg-black/18"
|
|
3973
|
-
},
|
|
4080
|
+
}, Ji = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)] backdrop-blur-[18px]" }, Yi = ["src", "alt"], Xi = ["src"], Zi = ["data-kind"], Qi = { class: "grid justify-items-center gap-3 px-4 text-center" }, $i = { class: "text-[0.68rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/72" }, ea = {
|
|
3974
4081
|
key: 4,
|
|
3975
4082
|
class: "grid h-full w-full place-items-center bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.08),transparent_65%),linear-gradient(180deg,rgba(255,255,255,0.04),rgba(255,255,255,0.02))]"
|
|
3976
|
-
},
|
|
4083
|
+
}, ta = { class: "inline-flex h-14 w-14 items-center justify-center border border-white/16 bg-black/20" }, na = { class: "pointer-events-none absolute inset-0 z-[3]" }, ra = /* @__PURE__ */ d({
|
|
3977
4084
|
__name: "ListCard",
|
|
3978
4085
|
props: {
|
|
3979
4086
|
active: {
|
|
@@ -3997,74 +4104,74 @@ var zi = ["aria-label"], Bi = {
|
|
|
3997
4104
|
},
|
|
3998
4105
|
emits: ["open"],
|
|
3999
4106
|
setup(e, { emit: t }) {
|
|
4000
|
-
let n = e, r = t, l = i(() =>
|
|
4107
|
+
let n = e, r = t, l = i(() => zi(n.item)), d = D(!1), f = D(!1), p = D(!1), m = D(l.value.kind === "fallback"), h = D(!1), g = D(null), _ = D(null), y = D(null), b = D(null), C = D(null), T = D(l.value.kind === "fallback"), E = i(() => T.value ? n.surfaceActive ? d.value ? l.value.url : null : l.value.url : null), O = i(() => n.surfaceActive && d.value && (l.value.kind === "image" || l.value.kind === "video") && !!l.value.url), j = i(() => l.value.kind === "image" && !!E.value), N = i(() => l.value.kind === "video" && !!E.value), P = Gi({
|
|
4001
4108
|
attachedAssetUrl: E,
|
|
4002
|
-
getPriority:
|
|
4109
|
+
getPriority: se,
|
|
4003
4110
|
isInView: d,
|
|
4004
4111
|
isReady: m,
|
|
4005
4112
|
item: i(() => n.item),
|
|
4006
4113
|
loadErrorKind: g,
|
|
4007
4114
|
reportAssetError: n.reportAssetError,
|
|
4008
4115
|
surfaceActive: i(() => n.surfaceActive)
|
|
4009
|
-
}), I = i(() =>
|
|
4010
|
-
|
|
4116
|
+
}), I = i(() => P.errorKind.value ?? g.value), L = i(() => !!I.value), R = i(() => vn(I.value)), ee = i(() => O.value && !g.value && (!T.value || !m.value)), B = null, V = null, U = /* @__PURE__ */ new Set();
|
|
4117
|
+
z([E, () => l.value.kind], () => {
|
|
4011
4118
|
let e = l.value.kind === "fallback";
|
|
4012
4119
|
m.value = e, h.value = !1, g.value = null, e && (T.value = !0);
|
|
4013
|
-
}),
|
|
4014
|
-
|
|
4015
|
-
}),
|
|
4120
|
+
}), z(O, () => {
|
|
4121
|
+
q();
|
|
4122
|
+
}), z([
|
|
4016
4123
|
d,
|
|
4017
4124
|
m,
|
|
4018
4125
|
E
|
|
4019
4126
|
], () => {
|
|
4020
|
-
|
|
4021
|
-
}),
|
|
4127
|
+
J();
|
|
4128
|
+
}), z(() => n.surfaceActive, (e) => {
|
|
4022
4129
|
if (!e) {
|
|
4023
|
-
Y(),
|
|
4130
|
+
Y(), J();
|
|
4024
4131
|
return;
|
|
4025
4132
|
}
|
|
4026
4133
|
requestAnimationFrame(() => {
|
|
4027
|
-
|
|
4134
|
+
X(), q(), J();
|
|
4028
4135
|
});
|
|
4029
4136
|
}), S(() => {
|
|
4030
4137
|
if (!y.value || typeof IntersectionObserver > "u") {
|
|
4031
|
-
b.value = null, d.value = !0,
|
|
4138
|
+
b.value = null, d.value = !0, q();
|
|
4032
4139
|
return;
|
|
4033
4140
|
}
|
|
4034
4141
|
b.value = y.value.closest("[data-testid=\"vibe-list-scroll\"]"), B = new IntersectionObserver((e) => {
|
|
4035
|
-
for (let t of e) t.target === y.value && (n.surfaceActive &&
|
|
4142
|
+
for (let t of e) t.target === y.value && (n.surfaceActive && X(t), q(), J());
|
|
4036
4143
|
}, {
|
|
4037
4144
|
root: b.value,
|
|
4038
4145
|
threshold: [0, 1]
|
|
4039
4146
|
}), B.observe(y.value);
|
|
4040
4147
|
}), x(() => {
|
|
4041
|
-
|
|
4148
|
+
ne(), P.release(), B?.disconnect(), B = null;
|
|
4042
4149
|
});
|
|
4043
|
-
function
|
|
4044
|
-
|
|
4150
|
+
function te() {
|
|
4151
|
+
ce(_.value) && (m.value = !0, g.value = null, re(E.value ?? n.item.url), Y());
|
|
4045
4152
|
}
|
|
4046
4153
|
async function W() {
|
|
4047
|
-
if (!
|
|
4154
|
+
if (!ce(_.value)) return;
|
|
4048
4155
|
let e = E.value ?? n.item.url;
|
|
4049
4156
|
m.value = !1, g.value = "generic";
|
|
4050
|
-
let t = await
|
|
4157
|
+
let t = await yn(e);
|
|
4051
4158
|
g.value = t, n.reportAssetError?.({
|
|
4052
4159
|
item: n.item,
|
|
4053
|
-
occurrenceKey:
|
|
4160
|
+
occurrenceKey: $(n.item),
|
|
4054
4161
|
url: e,
|
|
4055
4162
|
kind: t,
|
|
4056
4163
|
surface: "grid"
|
|
4057
4164
|
}), Y();
|
|
4058
4165
|
}
|
|
4059
|
-
function ne() {
|
|
4060
|
-
X(C.value) && (h.value = !0, m.value = !0, g.value = null, ie(E.value ?? n.item.url), Y(), q());
|
|
4061
|
-
}
|
|
4062
4166
|
function G() {
|
|
4063
|
-
|
|
4167
|
+
ce(C.value) && (h.value = !0, m.value = !0, g.value = null, re(E.value ?? n.item.url), Y(), J());
|
|
4064
4168
|
}
|
|
4065
4169
|
function K() {
|
|
4170
|
+
ce(C.value) && (h.value || (m.value = !1));
|
|
4171
|
+
}
|
|
4172
|
+
function q() {
|
|
4066
4173
|
if (l.value.kind === "fallback") {
|
|
4067
|
-
|
|
4174
|
+
ne(!1);
|
|
4068
4175
|
return;
|
|
4069
4176
|
}
|
|
4070
4177
|
if (!n.surfaceActive) {
|
|
@@ -4072,23 +4179,23 @@ var zi = ["aria-label"], Bi = {
|
|
|
4072
4179
|
return;
|
|
4073
4180
|
}
|
|
4074
4181
|
if (!O.value) {
|
|
4075
|
-
|
|
4182
|
+
ne();
|
|
4076
4183
|
return;
|
|
4077
4184
|
}
|
|
4078
4185
|
if (T.value || V) {
|
|
4079
4186
|
V?.refresh();
|
|
4080
4187
|
return;
|
|
4081
4188
|
}
|
|
4082
|
-
V =
|
|
4189
|
+
V = Kt.request({
|
|
4083
4190
|
assetType: l.value.kind,
|
|
4084
|
-
getPriority:
|
|
4191
|
+
getPriority: se,
|
|
4085
4192
|
onGrant() {
|
|
4086
4193
|
T.value = !0, m.value = !1, g.value = null;
|
|
4087
4194
|
},
|
|
4088
4195
|
url: l.value.url ?? n.item.url
|
|
4089
4196
|
});
|
|
4090
4197
|
}
|
|
4091
|
-
function
|
|
4198
|
+
function J() {
|
|
4092
4199
|
let e = C.value;
|
|
4093
4200
|
if (!(!e || l.value.kind !== "video")) {
|
|
4094
4201
|
if (I.value) {
|
|
@@ -4096,7 +4203,7 @@ var zi = ["aria-label"], Bi = {
|
|
|
4096
4203
|
return;
|
|
4097
4204
|
}
|
|
4098
4205
|
if (E.value && d.value && m.value) {
|
|
4099
|
-
e.muted = !0, e.loop = !0, e.playsInline = !0,
|
|
4206
|
+
e.muted = !0, e.loop = !0, e.playsInline = !0, Cn(e);
|
|
4100
4207
|
return;
|
|
4101
4208
|
}
|
|
4102
4209
|
try {
|
|
@@ -4105,44 +4212,44 @@ var zi = ["aria-label"], Bi = {
|
|
|
4105
4212
|
e.pause();
|
|
4106
4213
|
}
|
|
4107
4214
|
}
|
|
4108
|
-
function
|
|
4109
|
-
T.value = l.value.kind === "fallback", g.value = null, m.value = l.value.kind === "fallback", e && (
|
|
4215
|
+
function ne(e = !0) {
|
|
4216
|
+
T.value = l.value.kind === "fallback", g.value = null, m.value = l.value.kind === "fallback", e && (ae(), Z()), Y();
|
|
4110
4217
|
}
|
|
4111
4218
|
function Y() {
|
|
4112
4219
|
V?.release(), V = null;
|
|
4113
4220
|
}
|
|
4114
|
-
function
|
|
4221
|
+
function X(e) {
|
|
4115
4222
|
let t = y.value;
|
|
4116
4223
|
if (!t) {
|
|
4117
4224
|
d.value = !0;
|
|
4118
4225
|
return;
|
|
4119
4226
|
}
|
|
4120
|
-
d.value =
|
|
4227
|
+
d.value = Pi(e?.boundingClientRect ?? t.getBoundingClientRect(), e?.rootBounds ?? b.value?.getBoundingClientRect() ?? null);
|
|
4121
4228
|
}
|
|
4122
|
-
function
|
|
4229
|
+
function re(e) {
|
|
4123
4230
|
if (!e) return;
|
|
4124
|
-
let t =
|
|
4125
|
-
|
|
4231
|
+
let t = $(n.item), r = `${t}|${e}`;
|
|
4232
|
+
U.has(r) || (U.add(r), n.reportAssetLoad?.({
|
|
4126
4233
|
item: n.item,
|
|
4127
4234
|
occurrenceKey: t,
|
|
4128
4235
|
surface: "grid",
|
|
4129
4236
|
url: e
|
|
4130
4237
|
}));
|
|
4131
4238
|
}
|
|
4132
|
-
function
|
|
4133
|
-
if (!
|
|
4134
|
-
let e =
|
|
4135
|
-
|
|
4136
|
-
t.startsWith(`${e}|`) &&
|
|
4137
|
-
}), g.value = null, m.value = !1, T.value = !1, Y(),
|
|
4239
|
+
function ie() {
|
|
4240
|
+
if (!R.value || P.retry()) return;
|
|
4241
|
+
let e = $(n.item);
|
|
4242
|
+
U.forEach((t) => {
|
|
4243
|
+
t.startsWith(`${e}|`) && U.delete(t);
|
|
4244
|
+
}), g.value = null, m.value = !1, T.value = !1, Y(), q();
|
|
4138
4245
|
}
|
|
4139
|
-
function
|
|
4140
|
-
|
|
4246
|
+
function ae() {
|
|
4247
|
+
Mi(_.value);
|
|
4141
4248
|
}
|
|
4142
|
-
function
|
|
4143
|
-
|
|
4249
|
+
function Z() {
|
|
4250
|
+
Ni(C.value);
|
|
4144
4251
|
}
|
|
4145
|
-
function
|
|
4252
|
+
function se() {
|
|
4146
4253
|
let e = y.value;
|
|
4147
4254
|
if (!e) return Infinity;
|
|
4148
4255
|
let t = e.getBoundingClientRect();
|
|
@@ -4153,17 +4260,17 @@ var zi = ["aria-label"], Bi = {
|
|
|
4153
4260
|
let n = window.innerHeight / 2;
|
|
4154
4261
|
return Math.abs((t.top + t.bottom) / 2 - n);
|
|
4155
4262
|
}
|
|
4156
|
-
function
|
|
4157
|
-
let t =
|
|
4158
|
-
return !e || !t ? !1 :
|
|
4263
|
+
function ce(e) {
|
|
4264
|
+
let t = Fi(E.value);
|
|
4265
|
+
return !e || !t ? !1 : Fi("currentSrc" in e && e.currentSrc || e.getAttribute("src")) === t;
|
|
4159
4266
|
}
|
|
4160
|
-
function
|
|
4267
|
+
function ue() {
|
|
4161
4268
|
r("open");
|
|
4162
4269
|
}
|
|
4163
|
-
function
|
|
4270
|
+
function de() {
|
|
4164
4271
|
f.value = !0;
|
|
4165
4272
|
}
|
|
4166
|
-
function
|
|
4273
|
+
function fe(e) {
|
|
4167
4274
|
let t = e.relatedTarget;
|
|
4168
4275
|
y.value && t instanceof Node && y.value.contains(t) || (f.value = !1);
|
|
4169
4276
|
}
|
|
@@ -4172,8 +4279,8 @@ var zi = ["aria-label"], Bi = {
|
|
|
4172
4279
|
ref: y,
|
|
4173
4280
|
"data-testid": "vibe-list-card-inner",
|
|
4174
4281
|
class: v(["group relative h-full w-full overflow-hidden border bg-[#0a0b0f] text-[#f7f1ea] transition-[border-color,transform] duration-300", n.active ? "border-white/28" : "border-white/12 hover:border-white/24"]),
|
|
4175
|
-
onFocusin:
|
|
4176
|
-
onFocusout:
|
|
4282
|
+
onFocusin: de,
|
|
4283
|
+
onFocusout: fe,
|
|
4177
4284
|
onPointerenter: t[0] ||= (e) => p.value = !0,
|
|
4178
4285
|
onPointerleave: t[1] ||= (e) => p.value = !1
|
|
4179
4286
|
}, [
|
|
@@ -4182,13 +4289,13 @@ var zi = ["aria-label"], Bi = {
|
|
|
4182
4289
|
"data-testid": "vibe-list-card-open",
|
|
4183
4290
|
class: "absolute inset-0 z-[1] block h-full w-full cursor-pointer text-left focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[#f7f1ea]",
|
|
4184
4291
|
"aria-label": n.item.title || `Open item ${n.index + 1}`,
|
|
4185
|
-
onClick:
|
|
4186
|
-
}, null, 8,
|
|
4187
|
-
ee.value ? (w(), s("div",
|
|
4292
|
+
onClick: ue
|
|
4293
|
+
}, null, 8, Ki),
|
|
4294
|
+
ee.value ? (w(), s("div", qi, [c("span", Ji, [u(F(oe), {
|
|
4188
4295
|
class: "h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78",
|
|
4189
4296
|
"aria-hidden": "true"
|
|
4190
4297
|
})])])) : o("", !0),
|
|
4191
|
-
|
|
4298
|
+
j.value && E.value && !L.value ? (w(), s("img", {
|
|
4192
4299
|
key: 1,
|
|
4193
4300
|
ref_key: "imageRef",
|
|
4194
4301
|
ref: _,
|
|
@@ -4196,9 +4303,9 @@ var zi = ["aria-label"], Bi = {
|
|
|
4196
4303
|
alt: l.value.label,
|
|
4197
4304
|
draggable: "false",
|
|
4198
4305
|
class: v(["block h-full w-full object-cover transition-opacity duration-300", m.value ? "pointer-events-none opacity-100" : "pointer-events-none opacity-0"]),
|
|
4199
|
-
onLoad:
|
|
4306
|
+
onLoad: te,
|
|
4200
4307
|
onError: W
|
|
4201
|
-
}, null, 42,
|
|
4308
|
+
}, null, 42, Yi)) : N.value && E.value && !L.value ? (w(), s("video", {
|
|
4202
4309
|
key: 2,
|
|
4203
4310
|
ref_key: "videoRef",
|
|
4204
4311
|
ref: C,
|
|
@@ -4208,64 +4315,64 @@ var zi = ["aria-label"], Bi = {
|
|
|
4208
4315
|
playsinline: "",
|
|
4209
4316
|
preload: "metadata",
|
|
4210
4317
|
class: v(["block h-full w-full object-cover transition-opacity duration-300", m.value ? "pointer-events-none opacity-100" : "pointer-events-none opacity-0"]),
|
|
4211
|
-
onCanplay:
|
|
4318
|
+
onCanplay: G,
|
|
4212
4319
|
onError: W,
|
|
4213
|
-
onLoadstart:
|
|
4214
|
-
onPlaying:
|
|
4215
|
-
onStalled:
|
|
4216
|
-
onWaiting:
|
|
4217
|
-
}, null, 42,
|
|
4320
|
+
onLoadstart: K,
|
|
4321
|
+
onPlaying: G,
|
|
4322
|
+
onStalled: K,
|
|
4323
|
+
onWaiting: K
|
|
4324
|
+
}, null, 42, Xi)) : L.value ? (w(), s("div", {
|
|
4218
4325
|
key: 3,
|
|
4219
4326
|
"data-testid": "vibe-list-card-error",
|
|
4220
4327
|
"data-kind": I.value,
|
|
4221
4328
|
class: "pointer-events-none relative z-[2] grid h-full w-full place-items-center bg-[radial-gradient(circle_at_center,rgba(239,68,68,0.12),transparent_65%),linear-gradient(180deg,rgba(255,255,255,0.04),rgba(255,255,255,0.02))]"
|
|
4222
|
-
}, [c("div",
|
|
4223
|
-
u(
|
|
4329
|
+
}, [c("div", Qi, [
|
|
4330
|
+
u(F(le), {
|
|
4224
4331
|
class: "h-6 w-6 stroke-[1.8] text-[#f7f1ea]/78",
|
|
4225
4332
|
"aria-hidden": "true"
|
|
4226
4333
|
}),
|
|
4227
|
-
c("span",
|
|
4228
|
-
|
|
4334
|
+
c("span", $i, M(F(_n)(I.value)), 1),
|
|
4335
|
+
R.value ? (w(), s("button", {
|
|
4229
4336
|
key: 0,
|
|
4230
4337
|
type: "button",
|
|
4231
4338
|
class: "pointer-events-auto inline-flex items-center justify-center border border-white/14 bg-black/35 px-3 py-2 text-[0.62rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/82 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/50",
|
|
4232
|
-
onClick:
|
|
4339
|
+
onClick: H(ie, ["stop"])
|
|
4233
4340
|
}, " Retry ")) : o("", !0)
|
|
4234
|
-
])], 8,
|
|
4235
|
-
icon:
|
|
4341
|
+
])], 8, Zi)) : (w(), s("div", ea, [c("div", ta, [k(e.$slots, "item-icon", {
|
|
4342
|
+
icon: F(Ut)(n.item.type),
|
|
4236
4343
|
item: n.item
|
|
4237
|
-
}, () => [(w(), a(A(
|
|
4344
|
+
}, () => [(w(), a(A(F(Ut)(n.item.type)), {
|
|
4238
4345
|
class: "h-6 w-6 stroke-[1.8] text-[#f7f1ea]/78",
|
|
4239
4346
|
"aria-hidden": "true"
|
|
4240
4347
|
}))])])])),
|
|
4241
|
-
c("div",
|
|
4348
|
+
c("div", na, [k(e.$slots, "grid-item-overlay", {
|
|
4242
4349
|
active: n.active,
|
|
4243
4350
|
focused: f.value,
|
|
4244
4351
|
hovered: p.value,
|
|
4245
4352
|
index: n.index,
|
|
4246
4353
|
item: n.item,
|
|
4247
|
-
openFullscreen:
|
|
4354
|
+
openFullscreen: ue
|
|
4248
4355
|
})])
|
|
4249
4356
|
], 34));
|
|
4250
4357
|
}
|
|
4251
|
-
}),
|
|
4358
|
+
}), ia = { class: "relative h-full min-h-0 bg-[radial-gradient(circle_at_top_center,rgba(255,255,255,0.04),transparent_28%),linear-gradient(180deg,#06070b,#05060a)]" }, aa = { class: "pointer-events-none absolute inset-x-0 top-0 z-[2] flex justify-end p-6" }, oa = {
|
|
4252
4359
|
"data-testid": "vibe-pagination",
|
|
4253
4360
|
class: "inline-flex shrink-0 items-center gap-2 whitespace-nowrap border border-white/14 bg-black/40 px-3 py-2 text-[0.63rem] font-bold uppercase tracking-[0.12em] text-[#f7f1ea]/72 backdrop-blur-[18px] min-[721px]:gap-3 min-[721px]:px-4 min-[721px]:py-3 min-[721px]:text-[0.74rem] min-[721px]:tracking-[0.2em]"
|
|
4254
|
-
},
|
|
4361
|
+
}, sa = { class: "whitespace-nowrap" }, ca = {
|
|
4255
4362
|
key: 0,
|
|
4256
4363
|
class: "whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3"
|
|
4257
|
-
},
|
|
4364
|
+
}, la = [
|
|
4258
4365
|
"data-active",
|
|
4259
4366
|
"data-index",
|
|
4260
4367
|
"data-item-id",
|
|
4261
4368
|
"data-occurrence-key"
|
|
4262
|
-
],
|
|
4369
|
+
], ua = ["data-item-id"], da = {
|
|
4263
4370
|
key: 0,
|
|
4264
4371
|
class: "pointer-events-none absolute inset-y-0 right-0 z-[3] hidden w-8 min-[1024px]:block"
|
|
4265
|
-
},
|
|
4372
|
+
}, fa = {
|
|
4266
4373
|
key: 1,
|
|
4267
4374
|
class: "pointer-events-none absolute inset-x-0 bottom-0 z-[2] px-5 pb-5 sm:px-6"
|
|
4268
|
-
},
|
|
4375
|
+
}, pa = { class: "mx-auto flex w-full justify-center" }, ma = /* @__PURE__ */ d({
|
|
4269
4376
|
__name: "ListSurface",
|
|
4270
4377
|
props: {
|
|
4271
4378
|
active: {
|
|
@@ -4327,30 +4434,30 @@ var zi = ["aria-label"], Bi = {
|
|
|
4327
4434
|
"update:activeIndex"
|
|
4328
4435
|
],
|
|
4329
4436
|
setup(e, { expose: n, emit: r }) {
|
|
4330
|
-
let d = e, f =
|
|
4331
|
-
active:
|
|
4332
|
-
allowExhaustedNextPageRefresh:
|
|
4333
|
-
bottomLoadBufferPx:
|
|
4334
|
-
items:
|
|
4335
|
-
activeIndex:
|
|
4336
|
-
loading:
|
|
4337
|
-
hasNextPage:
|
|
4338
|
-
hasPreviousPage:
|
|
4339
|
-
paginationDetail:
|
|
4340
|
-
pendingAppendItems:
|
|
4341
|
-
commitPendingAppend:
|
|
4342
|
-
requestNextPage:
|
|
4343
|
-
requestPreviousPage:
|
|
4437
|
+
let d = e, f = L(), p = r, m = Ai({
|
|
4438
|
+
active: N(d, "active"),
|
|
4439
|
+
allowExhaustedNextPageRefresh: N(d, "allowExhaustedNextPageRefresh"),
|
|
4440
|
+
bottomLoadBufferPx: N(d, "bottomLoadBufferPx"),
|
|
4441
|
+
items: N(d, "items"),
|
|
4442
|
+
activeIndex: N(d, "activeIndex"),
|
|
4443
|
+
loading: N(d, "loading"),
|
|
4444
|
+
hasNextPage: N(d, "hasNextPage"),
|
|
4445
|
+
hasPreviousPage: N(d, "hasPreviousPage"),
|
|
4446
|
+
paginationDetail: N(d, "paginationDetail"),
|
|
4447
|
+
pendingAppendItems: N(d, "pendingAppendItems"),
|
|
4448
|
+
commitPendingAppend: N(d, "commitPendingAppend"),
|
|
4449
|
+
requestNextPage: N(d, "requestNextPage"),
|
|
4450
|
+
requestPreviousPage: N(d, "requestPreviousPage"),
|
|
4344
4451
|
setActiveIndex(e) {
|
|
4345
4452
|
p("update:activeIndex", e);
|
|
4346
4453
|
}
|
|
4347
4454
|
});
|
|
4348
4455
|
n({ autoScroll: m.autoScroll });
|
|
4349
|
-
let h = i(() =>
|
|
4456
|
+
let h = i(() => cn({
|
|
4350
4457
|
itemCount: d.items.length,
|
|
4351
4458
|
loading: d.loading,
|
|
4352
4459
|
phase: d.phase
|
|
4353
|
-
})), _ = i(() =>
|
|
4460
|
+
})), _ = i(() => ln({
|
|
4354
4461
|
errorMessage: d.errorMessage,
|
|
4355
4462
|
hasItems: d.items.length > 0,
|
|
4356
4463
|
hasNextPage: d.hasNextPage,
|
|
@@ -4363,42 +4470,42 @@ var zi = ["aria-label"], Bi = {
|
|
|
4363
4470
|
message: _.value.message,
|
|
4364
4471
|
paginationDetail: d.paginationDetail,
|
|
4365
4472
|
total: d.items.length
|
|
4366
|
-
}), S = i(() => !x.value || !f["grid-status"] ? [] : f["grid-status"](x.value)), C = i(() =>
|
|
4367
|
-
emptyStateMode:
|
|
4473
|
+
}), S = i(() => !x.value || !f["grid-status"] ? [] : f["grid-status"](x.value)), C = i(() => nn(S.value)), T = i(() => d.items.length + m.leavingItems.value.length), { emptyStateProps: E, showBadgeEmptyState: D, showCustomEmptyState: A, showInlineEmptyState: j } = on({
|
|
4474
|
+
emptyStateMode: N(d, "emptyStateMode"),
|
|
4368
4475
|
itemCount: T,
|
|
4369
|
-
loading:
|
|
4476
|
+
loading: N(d, "loading"),
|
|
4370
4477
|
renderSlot: f["empty-state"],
|
|
4371
4478
|
surface: "grid"
|
|
4372
4479
|
});
|
|
4373
|
-
return
|
|
4480
|
+
return z([m.nextBoundaryLoadProgress, m.previousBoundaryLoadProgress], ([e, t]) => {
|
|
4374
4481
|
p("boundary-load-progress", {
|
|
4375
4482
|
nextBoundaryLoadProgress: e,
|
|
4376
4483
|
previousBoundaryLoadProgress: t
|
|
4377
4484
|
});
|
|
4378
|
-
}, { immediate: !0 }), (e, n) => (w(), s("div",
|
|
4379
|
-
c("div",
|
|
4485
|
+
}, { immediate: !0 }), (e, n) => (w(), s("div", ia, [
|
|
4486
|
+
c("div", aa, [c("span", oa, [c("span", sa, M(F(m).paginationLabel.value), 1), d.paginationDetail ? (w(), s("span", ca, M(d.paginationDetail), 1)) : o("", !0)])]),
|
|
4380
4487
|
c("div", {
|
|
4381
|
-
ref:
|
|
4488
|
+
ref: F(m).scrollViewportRef,
|
|
4382
4489
|
"data-testid": "vibe-list-scroll",
|
|
4383
4490
|
class: "h-full min-h-0 overflow-y-auto overflow-x-hidden [overflow-anchor:none] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",
|
|
4384
|
-
onScroll: n[0] ||= (...e) =>
|
|
4385
|
-
onWheel: n[1] ||= (...e) =>
|
|
4491
|
+
onScroll: n[0] ||= (...e) => F(m).onScroll && F(m).onScroll(...e),
|
|
4492
|
+
onWheel: n[1] ||= (...e) => F(m).onWheel && F(m).onWheel(...e)
|
|
4386
4493
|
}, [c("div", {
|
|
4387
4494
|
"data-testid": "vibe-list-content",
|
|
4388
4495
|
class: "relative",
|
|
4389
|
-
style: b({ height: `${
|
|
4496
|
+
style: b({ height: `${F(m).containerHeight.value}px` })
|
|
4390
4497
|
}, [
|
|
4391
|
-
(w(!0), s(t, null, O(
|
|
4392
|
-
key:
|
|
4498
|
+
(w(!0), s(t, null, O(F(m).renderedItems.value, ({ item: t, index: n }) => (w(), s("article", {
|
|
4499
|
+
key: F($)(t),
|
|
4393
4500
|
"data-testid": "vibe-list-card",
|
|
4394
|
-
"data-active": n ===
|
|
4501
|
+
"data-active": n === F(m).resolvedActiveIndex.value ? "true" : "false",
|
|
4395
4502
|
"data-index": n,
|
|
4396
4503
|
"data-item-id": t.id,
|
|
4397
|
-
"data-occurrence-key":
|
|
4504
|
+
"data-occurrence-key": F($)(t),
|
|
4398
4505
|
class: "absolute will-change-transform",
|
|
4399
|
-
style: b(
|
|
4400
|
-
}, [u(
|
|
4401
|
-
active: n ===
|
|
4506
|
+
style: b(F(m).getCardStyle(n))
|
|
4507
|
+
}, [u(ra, {
|
|
4508
|
+
active: n === F(m).resolvedActiveIndex.value,
|
|
4402
4509
|
index: n,
|
|
4403
4510
|
item: t,
|
|
4404
4511
|
"report-asset-error": d.reportAssetError,
|
|
@@ -4407,11 +4514,11 @@ var zi = ["aria-label"], Bi = {
|
|
|
4407
4514
|
onOpen: (e) => p("open-fullscreen", n)
|
|
4408
4515
|
}, l({ _: 2 }, [f["grid-item-overlay"] ? {
|
|
4409
4516
|
name: "grid-item-overlay",
|
|
4410
|
-
fn:
|
|
4517
|
+
fn: B((t) => [k(e.$slots, "grid-item-overlay", g({ ref_for: !0 }, t))]),
|
|
4411
4518
|
key: "0"
|
|
4412
4519
|
} : void 0, f["item-icon"] ? {
|
|
4413
4520
|
name: "item-icon",
|
|
4414
|
-
fn:
|
|
4521
|
+
fn: B((t) => [k(e.$slots, "item-icon", g({ ref_for: !0 }, t))]),
|
|
4415
4522
|
key: "1"
|
|
4416
4523
|
} : void 0]), 1032, [
|
|
4417
4524
|
"active",
|
|
@@ -4421,14 +4528,14 @@ var zi = ["aria-label"], Bi = {
|
|
|
4421
4528
|
"report-asset-load",
|
|
4422
4529
|
"surface-active",
|
|
4423
4530
|
"onOpen"
|
|
4424
|
-
])], 12,
|
|
4425
|
-
(w(!0), s(t, null, O(
|
|
4426
|
-
key: `leaving-${
|
|
4531
|
+
])], 12, la))), 128)),
|
|
4532
|
+
(w(!0), s(t, null, O(F(m).leavingItems.value, (t) => (w(), s("article", {
|
|
4533
|
+
key: `leaving-${F($)(t.item)}`,
|
|
4427
4534
|
"data-testid": "vibe-list-card-leaving",
|
|
4428
4535
|
"data-item-id": t.item.id,
|
|
4429
4536
|
class: "pointer-events-none absolute z-[2] will-change-[opacity,transform]",
|
|
4430
|
-
style: b(
|
|
4431
|
-
}, [u(
|
|
4537
|
+
style: b(F(m).getLeavingCardStyle(t.item))
|
|
4538
|
+
}, [u(ra, {
|
|
4432
4539
|
active: !1,
|
|
4433
4540
|
index: -1,
|
|
4434
4541
|
item: t.item,
|
|
@@ -4437,20 +4544,20 @@ var zi = ["aria-label"], Bi = {
|
|
|
4437
4544
|
"surface-active": !1
|
|
4438
4545
|
}, l({ _: 2 }, [f["item-icon"] ? {
|
|
4439
4546
|
name: "item-icon",
|
|
4440
|
-
fn:
|
|
4547
|
+
fn: B((t) => [k(e.$slots, "item-icon", g({ ref_for: !0 }, t))]),
|
|
4441
4548
|
key: "0"
|
|
4442
4549
|
} : void 0]), 1032, [
|
|
4443
4550
|
"item",
|
|
4444
4551
|
"report-asset-error",
|
|
4445
4552
|
"report-asset-load"
|
|
4446
|
-
])], 12,
|
|
4447
|
-
|
|
4553
|
+
])], 12, ua))), 128)),
|
|
4554
|
+
F(j) && F(E) ? (w(), a(Hn, {
|
|
4448
4555
|
key: 0,
|
|
4449
|
-
message:
|
|
4450
|
-
mode:
|
|
4451
|
-
surface:
|
|
4556
|
+
message: F(E).message,
|
|
4557
|
+
mode: F(E).mode,
|
|
4558
|
+
surface: F(E).surface
|
|
4452
4559
|
}, {
|
|
4453
|
-
default:
|
|
4560
|
+
default: B(() => [F(A) ? k(e.$slots, "empty-state", y(g({ key: 0 }, F(E)))) : o("", !0)]),
|
|
4454
4561
|
_: 3
|
|
4455
4562
|
}, 8, [
|
|
4456
4563
|
"message",
|
|
@@ -4458,12 +4565,12 @@ var zi = ["aria-label"], Bi = {
|
|
|
4458
4565
|
"surface"
|
|
4459
4566
|
])) : o("", !0)
|
|
4460
4567
|
], 4)], 544),
|
|
4461
|
-
|
|
4568
|
+
F(m).showScrollbar.value ? (w(), s("div", da, [n[2] ||= c("div", { class: "absolute bottom-6 right-3 top-6 w-px bg-white/8" }, null, -1), c("div", {
|
|
4462
4569
|
"data-testid": "vibe-list-scrollbar-thumb",
|
|
4463
4570
|
class: v(["absolute right-[0.625rem] w-1 bg-white/34 transition-[height,transform,background-color,opacity] duration-300 ease-out", d.loading ? "bg-white/52" : "bg-white/34"]),
|
|
4464
|
-
style: b(
|
|
4571
|
+
style: b(F(m).getScrollbarThumbStyle())
|
|
4465
4572
|
}, null, 6)])) : o("", !0),
|
|
4466
|
-
f["grid-footer"] ? (w(), s("div",
|
|
4573
|
+
f["grid-footer"] ? (w(), s("div", fa, [c("div", pa, [k(e.$slots, "grid-footer")])])) : o("", !0),
|
|
4467
4574
|
x.value ? (w(), s("div", {
|
|
4468
4575
|
key: 2,
|
|
4469
4576
|
class: v(["pointer-events-none absolute inset-x-0 bottom-0 z-[3] flex justify-center px-6", f["grid-footer"] ? "pb-24" : "pb-6"])
|
|
@@ -4471,15 +4578,15 @@ var zi = ["aria-label"], Bi = {
|
|
|
4471
4578
|
key: 1,
|
|
4472
4579
|
"data-testid": "vibe-grid-status-badge",
|
|
4473
4580
|
class: v(["inline-flex items-center border border-white/14 bg-black/55 px-4 py-3 text-[0.7rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/72 backdrop-blur-[18px]", x.value.kind === "end" ? "border-amber-300/35 text-amber-200" : x.value.kind === "failed" ? "border-rose-400/45 text-rose-100" : ""])
|
|
4474
|
-
},
|
|
4475
|
-
|
|
4581
|
+
}, M(x.value.message), 3))], 2)) : o("", !0),
|
|
4582
|
+
F(D) && F(E) ? (w(), a(Hn, {
|
|
4476
4583
|
key: 3,
|
|
4477
4584
|
class: v(["z-[3]", f["grid-footer"] ? "pb-24" : "pb-6"]),
|
|
4478
|
-
message:
|
|
4479
|
-
mode:
|
|
4480
|
-
surface:
|
|
4585
|
+
message: F(E).message,
|
|
4586
|
+
mode: F(E).mode,
|
|
4587
|
+
surface: F(E).surface
|
|
4481
4588
|
}, {
|
|
4482
|
-
default:
|
|
4589
|
+
default: B(() => [F(A) ? k(e.$slots, "empty-state", y(g({ key: 0 }, F(E)))) : o("", !0)]),
|
|
4483
4590
|
_: 3
|
|
4484
4591
|
}, 8, [
|
|
4485
4592
|
"class",
|
|
@@ -4489,13 +4596,13 @@ var zi = ["aria-label"], Bi = {
|
|
|
4489
4596
|
])) : o("", !0)
|
|
4490
4597
|
]));
|
|
4491
4598
|
}
|
|
4492
|
-
}),
|
|
4599
|
+
}), ha = ["data-surface-mode"], ga = {
|
|
4493
4600
|
key: 1,
|
|
4494
4601
|
class: "absolute left-5 top-5 z-30 border border-amber-400/45 bg-black/35 px-4 py-2 text-xs font-medium uppercase tracking-[0.24em] text-amber-100 backdrop-blur"
|
|
4495
|
-
},
|
|
4602
|
+
}, _a = ["data-visible", "inert"], va = ["data-visible", "inert"], ya = {
|
|
4496
4603
|
key: 3,
|
|
4497
4604
|
class: "relative z-[1] grid h-full w-full content-center justify-items-center gap-6 px-[clamp(2rem,4vw,3rem)] py-[clamp(2rem,4vw,3rem)] text-center"
|
|
4498
|
-
},
|
|
4605
|
+
}, ba = /* @__PURE__ */ d({
|
|
4499
4606
|
name: "VibeLayout",
|
|
4500
4607
|
__name: "Layout",
|
|
4501
4608
|
props: {
|
|
@@ -4522,14 +4629,14 @@ var zi = ["aria-label"], Bi = {
|
|
|
4522
4629
|
"update:surfaceMode"
|
|
4523
4630
|
],
|
|
4524
4631
|
setup(e, { expose: n, emit: i }) {
|
|
4525
|
-
let d = e, f =
|
|
4632
|
+
let d = e, f = L(), m = i, h = pt(d, m), g = D(null), _ = pe((e) => {
|
|
4526
4633
|
m("asset-errors", e);
|
|
4527
|
-
}), v =
|
|
4634
|
+
}), v = me((e) => {
|
|
4528
4635
|
m("asset-loads", e);
|
|
4529
4636
|
});
|
|
4530
4637
|
x(() => {
|
|
4531
4638
|
_.stop(), v.stop();
|
|
4532
|
-
}),
|
|
4639
|
+
}), z(() => h.items.value, (e) => {
|
|
4533
4640
|
m("items-change", [...e]);
|
|
4534
4641
|
});
|
|
4535
4642
|
function b(e) {
|
|
@@ -4556,14 +4663,14 @@ var zi = ["aria-label"], Bi = {
|
|
|
4556
4663
|
unlockPageLoading: h.unlockPageLoading
|
|
4557
4664
|
}), (e, n) => (w(), s("section", {
|
|
4558
4665
|
"data-testid": "vibe",
|
|
4559
|
-
"data-surface-mode":
|
|
4666
|
+
"data-surface-mode": F(h).surfaceMode.value,
|
|
4560
4667
|
class: "relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]"
|
|
4561
|
-
}, [
|
|
4668
|
+
}, [F(h).canRetryInitialLoad.value ? (w(), s("button", {
|
|
4562
4669
|
key: 0,
|
|
4563
4670
|
type: "button",
|
|
4564
4671
|
class: "absolute left-5 top-5 z-30 inline-flex items-center border border-rose-400/55 bg-rose-500/18 px-4 py-2 text-xs font-medium uppercase tracking-[0.24em] text-white backdrop-blur transition hover:bg-rose-500/28",
|
|
4565
|
-
onClick: n[0] ||= (...e) =>
|
|
4566
|
-
}, " Retry ")) :
|
|
4672
|
+
onClick: n[0] ||= (...e) => F(h).retryInitialLoad && F(h).retryInitialLoad(...e)
|
|
4673
|
+
}, " Retry ")) : F(h).errorMessage.value && F(h).items.value.length > 0 ? (w(), s("div", ga, M(F(h).errorMessage.value), 1)) : o("", !0), F(h).isDesktop.value ? (w(), s(t, { key: 2 }, [u(r, {
|
|
4567
4674
|
appear: "",
|
|
4568
4675
|
"enter-active-class": "transition-[opacity,transform] duration-300 ease-out",
|
|
4569
4676
|
"enter-from-class": "translate-y-3 opacity-0",
|
|
@@ -4572,60 +4679,60 @@ var zi = ["aria-label"], Bi = {
|
|
|
4572
4679
|
"leave-from-class": "translate-y-0 opacity-100",
|
|
4573
4680
|
"leave-to-class": "translate-y-3 opacity-0"
|
|
4574
4681
|
}, {
|
|
4575
|
-
default:
|
|
4682
|
+
default: B(() => [V(c("div", {
|
|
4576
4683
|
"data-testid": "vibe-list-surface",
|
|
4577
|
-
"data-visible":
|
|
4578
|
-
inert:
|
|
4684
|
+
"data-visible": F(h).surfaceMode.value === "list" ? "true" : "false",
|
|
4685
|
+
inert: F(h).surfaceMode.value !== "list",
|
|
4579
4686
|
class: "absolute inset-0 z-[2]"
|
|
4580
|
-
}, [u(
|
|
4687
|
+
}, [u(ma, {
|
|
4581
4688
|
ref_key: "listSurfaceRef",
|
|
4582
4689
|
ref: g,
|
|
4583
|
-
active:
|
|
4584
|
-
"allow-exhausted-next-page-refresh":
|
|
4690
|
+
active: F(h).surfaceMode.value === "list",
|
|
4691
|
+
"allow-exhausted-next-page-refresh": F(h).canRefreshExhaustedNextPage.value,
|
|
4585
4692
|
"bottom-load-buffer-px": d.bottomLoadBufferPx,
|
|
4586
|
-
items:
|
|
4587
|
-
"active-index":
|
|
4588
|
-
"error-message":
|
|
4589
|
-
loading:
|
|
4590
|
-
"has-next-page":
|
|
4591
|
-
"has-previous-page":
|
|
4592
|
-
"pending-append-items":
|
|
4593
|
-
phase:
|
|
4594
|
-
"commit-pending-append":
|
|
4595
|
-
"pagination-detail":
|
|
4596
|
-
"report-asset-error":
|
|
4597
|
-
"report-asset-load":
|
|
4598
|
-
"request-next-page":
|
|
4599
|
-
"request-previous-page":
|
|
4693
|
+
items: F(h).items.value,
|
|
4694
|
+
"active-index": F(h).activeIndex.value,
|
|
4695
|
+
"error-message": F(h).errorMessage.value,
|
|
4696
|
+
loading: F(h).loading.value,
|
|
4697
|
+
"has-next-page": F(h).hasNextPage.value,
|
|
4698
|
+
"has-previous-page": F(h).hasPreviousPage.value,
|
|
4699
|
+
"pending-append-items": F(h).pendingAppendItems.value,
|
|
4700
|
+
phase: F(h).phase.value,
|
|
4701
|
+
"commit-pending-append": F(h).commitPendingAppend,
|
|
4702
|
+
"pagination-detail": F(h).paginationDetail.value,
|
|
4703
|
+
"report-asset-error": F(_).report,
|
|
4704
|
+
"report-asset-load": F(v).report,
|
|
4705
|
+
"request-next-page": F(h).prefetchNextPage,
|
|
4706
|
+
"request-previous-page": F(h).prefetchPreviousPage,
|
|
4600
4707
|
"empty-state-mode": d.emptyStateMode,
|
|
4601
4708
|
"show-status-badges": d.showStatusBadges ?? !0,
|
|
4602
|
-
onBoundaryLoadProgress:
|
|
4603
|
-
onOpenFullscreen:
|
|
4604
|
-
"onUpdate:activeIndex":
|
|
4709
|
+
onBoundaryLoadProgress: F(h).setBoundaryLoadProgress,
|
|
4710
|
+
onOpenFullscreen: F(h).openFullscreen,
|
|
4711
|
+
"onUpdate:activeIndex": F(h).setActiveIndex
|
|
4605
4712
|
}, l({ _: 2 }, [
|
|
4606
4713
|
f["empty-state"] ? {
|
|
4607
4714
|
name: "empty-state",
|
|
4608
|
-
fn:
|
|
4715
|
+
fn: B((t) => [k(e.$slots, "empty-state", y(p(t)))]),
|
|
4609
4716
|
key: "0"
|
|
4610
4717
|
} : void 0,
|
|
4611
4718
|
f["grid-footer"] ? {
|
|
4612
4719
|
name: "grid-footer",
|
|
4613
|
-
fn:
|
|
4720
|
+
fn: B(() => [k(e.$slots, "grid-footer")]),
|
|
4614
4721
|
key: "1"
|
|
4615
4722
|
} : void 0,
|
|
4616
4723
|
f["grid-item-overlay"] ? {
|
|
4617
4724
|
name: "grid-item-overlay",
|
|
4618
|
-
fn:
|
|
4725
|
+
fn: B((t) => [k(e.$slots, "grid-item-overlay", y(p(t)))]),
|
|
4619
4726
|
key: "2"
|
|
4620
4727
|
} : void 0,
|
|
4621
4728
|
f["grid-status"] ? {
|
|
4622
4729
|
name: "grid-status",
|
|
4623
|
-
fn:
|
|
4730
|
+
fn: B((t) => [k(e.$slots, "grid-status", y(p(t)))]),
|
|
4624
4731
|
key: "3"
|
|
4625
4732
|
} : void 0,
|
|
4626
4733
|
f["item-icon"] ? {
|
|
4627
4734
|
name: "item-icon",
|
|
4628
|
-
fn:
|
|
4735
|
+
fn: B((t) => [k(e.$slots, "item-icon", y(p(t)))]),
|
|
4629
4736
|
key: "4"
|
|
4630
4737
|
} : void 0
|
|
4631
4738
|
]), 1032, [
|
|
@@ -4651,7 +4758,7 @@ var zi = ["aria-label"], Bi = {
|
|
|
4651
4758
|
"onBoundaryLoadProgress",
|
|
4652
4759
|
"onOpenFullscreen",
|
|
4653
4760
|
"onUpdate:activeIndex"
|
|
4654
|
-
])], 8,
|
|
4761
|
+
])], 8, _a), [[R, F(h).surfaceMode.value === "list"]])]),
|
|
4655
4762
|
_: 3
|
|
4656
4763
|
}), u(r, {
|
|
4657
4764
|
appear: "",
|
|
@@ -4662,59 +4769,59 @@ var zi = ["aria-label"], Bi = {
|
|
|
4662
4769
|
"leave-from-class": "translate-y-0 opacity-100",
|
|
4663
4770
|
"leave-to-class": "-translate-y-3 opacity-0"
|
|
4664
4771
|
}, {
|
|
4665
|
-
default:
|
|
4772
|
+
default: B(() => [V(c("div", {
|
|
4666
4773
|
"data-testid": "vibe-fullscreen-surface",
|
|
4667
|
-
"data-visible":
|
|
4668
|
-
inert:
|
|
4774
|
+
"data-visible": F(h).surfaceMode.value === "fullscreen" ? "true" : "false",
|
|
4775
|
+
inert: F(h).surfaceMode.value !== "fullscreen",
|
|
4669
4776
|
class: "absolute inset-0 z-[3]"
|
|
4670
|
-
}, [u(
|
|
4671
|
-
items:
|
|
4672
|
-
active:
|
|
4673
|
-
"active-index":
|
|
4674
|
-
"error-message":
|
|
4675
|
-
loading:
|
|
4676
|
-
"has-next-page":
|
|
4677
|
-
"pagination-detail":
|
|
4678
|
-
phase:
|
|
4679
|
-
"report-asset-error":
|
|
4680
|
-
"report-asset-load":
|
|
4777
|
+
}, [u(wr, {
|
|
4778
|
+
items: F(h).items.value,
|
|
4779
|
+
active: F(h).surfaceMode.value === "fullscreen",
|
|
4780
|
+
"active-index": F(h).activeIndex.value,
|
|
4781
|
+
"error-message": F(h).errorMessage.value,
|
|
4782
|
+
loading: F(h).loading.value,
|
|
4783
|
+
"has-next-page": F(h).hasNextPage.value,
|
|
4784
|
+
"pagination-detail": F(h).paginationDetail.value,
|
|
4785
|
+
phase: F(h).phase.value,
|
|
4786
|
+
"report-asset-error": F(_).report,
|
|
4787
|
+
"report-asset-load": F(v).report,
|
|
4681
4788
|
"empty-state-mode": d.emptyStateMode,
|
|
4682
4789
|
"loop-fullscreen-video": d.loopFullscreenVideo ?? !0,
|
|
4683
4790
|
"show-dominant-image-tone": d.showDominantImageTone ?? !0,
|
|
4684
4791
|
"show-end-badge": d.showEndBadge ?? !0,
|
|
4685
4792
|
"show-status-badges": d.showStatusBadges ?? !0,
|
|
4686
|
-
"show-back-to-list":
|
|
4687
|
-
onBackToList:
|
|
4688
|
-
"onUpdate:activeIndex":
|
|
4793
|
+
"show-back-to-list": F(h).showBackToList.value,
|
|
4794
|
+
onBackToList: F(h).returnToList,
|
|
4795
|
+
"onUpdate:activeIndex": F(h).setActiveIndex
|
|
4689
4796
|
}, l({ _: 2 }, [
|
|
4690
4797
|
f["empty-state"] ? {
|
|
4691
4798
|
name: "empty-state",
|
|
4692
|
-
fn:
|
|
4799
|
+
fn: B((t) => [k(e.$slots, "empty-state", y(p(t)))]),
|
|
4693
4800
|
key: "0"
|
|
4694
4801
|
} : void 0,
|
|
4695
4802
|
f["fullscreen-overlay"] ? {
|
|
4696
4803
|
name: "fullscreen-overlay",
|
|
4697
|
-
fn:
|
|
4804
|
+
fn: B((t) => [k(e.$slots, "fullscreen-overlay", y(p(t)))]),
|
|
4698
4805
|
key: "1"
|
|
4699
4806
|
} : void 0,
|
|
4700
4807
|
f["fullscreen-aside"] ? {
|
|
4701
4808
|
name: "fullscreen-aside",
|
|
4702
|
-
fn:
|
|
4809
|
+
fn: B((t) => [k(e.$slots, "fullscreen-aside", y(p(t)))]),
|
|
4703
4810
|
key: "2"
|
|
4704
4811
|
} : void 0,
|
|
4705
4812
|
f["fullscreen-header-actions"] ? {
|
|
4706
4813
|
name: "fullscreen-header-actions",
|
|
4707
|
-
fn:
|
|
4814
|
+
fn: B((t) => [k(e.$slots, "fullscreen-header-actions", y(p(t)))]),
|
|
4708
4815
|
key: "3"
|
|
4709
4816
|
} : void 0,
|
|
4710
4817
|
f["fullscreen-status"] ? {
|
|
4711
4818
|
name: "fullscreen-status",
|
|
4712
|
-
fn:
|
|
4819
|
+
fn: B((t) => [k(e.$slots, "fullscreen-status", y(p(t)))]),
|
|
4713
4820
|
key: "4"
|
|
4714
4821
|
} : void 0,
|
|
4715
4822
|
f["item-icon"] ? {
|
|
4716
4823
|
name: "item-icon",
|
|
4717
|
-
fn:
|
|
4824
|
+
fn: B((t) => [k(e.$slots, "item-icon", y(p(t)))]),
|
|
4718
4825
|
key: "5"
|
|
4719
4826
|
} : void 0
|
|
4720
4827
|
]), 1032, [
|
|
@@ -4736,60 +4843,60 @@ var zi = ["aria-label"], Bi = {
|
|
|
4736
4843
|
"show-back-to-list",
|
|
4737
4844
|
"onBackToList",
|
|
4738
4845
|
"onUpdate:activeIndex"
|
|
4739
|
-
])], 8,
|
|
4846
|
+
])], 8, va), [[R, F(h).surfaceMode.value === "fullscreen"]])]),
|
|
4740
4847
|
_: 3
|
|
4741
|
-
})], 64)) :
|
|
4848
|
+
})], 64)) : F(h).items.value.length === 0 && F(h).loading.value ? (w(), s("div", ya, [u(F(oe), {
|
|
4742
4849
|
class: "size-10 animate-spin text-[#f7f1ea]/82",
|
|
4743
4850
|
"aria-hidden": "true"
|
|
4744
|
-
}), n[1] ||= c("p", { class: "m-0 text-[0.9rem] font-semibold uppercase tracking-[0.22em] text-[#f7f1ea]/72" }, " Loading... ", -1)])) : (w(), a(
|
|
4851
|
+
}), n[1] ||= c("p", { class: "m-0 text-[0.9rem] font-semibold uppercase tracking-[0.22em] text-[#f7f1ea]/72" }, " Loading... ", -1)])) : (w(), a(wr, {
|
|
4745
4852
|
key: 4,
|
|
4746
|
-
items:
|
|
4853
|
+
items: F(h).items.value,
|
|
4747
4854
|
active: !0,
|
|
4748
|
-
"active-index":
|
|
4749
|
-
"error-message":
|
|
4750
|
-
loading:
|
|
4751
|
-
"has-next-page":
|
|
4752
|
-
"pagination-detail":
|
|
4753
|
-
phase:
|
|
4754
|
-
"report-asset-error":
|
|
4755
|
-
"report-asset-load":
|
|
4855
|
+
"active-index": F(h).activeIndex.value,
|
|
4856
|
+
"error-message": F(h).errorMessage.value,
|
|
4857
|
+
loading: F(h).loading.value,
|
|
4858
|
+
"has-next-page": F(h).hasNextPage.value,
|
|
4859
|
+
"pagination-detail": F(h).paginationDetail.value,
|
|
4860
|
+
phase: F(h).phase.value,
|
|
4861
|
+
"report-asset-error": F(_).report,
|
|
4862
|
+
"report-asset-load": F(v).report,
|
|
4756
4863
|
"empty-state-mode": d.emptyStateMode,
|
|
4757
4864
|
"loop-fullscreen-video": d.loopFullscreenVideo ?? !0,
|
|
4758
4865
|
"show-dominant-image-tone": d.showDominantImageTone ?? !0,
|
|
4759
4866
|
"show-end-badge": d.showEndBadge ?? !0,
|
|
4760
4867
|
"show-status-badges": d.showStatusBadges ?? !0,
|
|
4761
4868
|
"show-back-to-list": !1,
|
|
4762
|
-
onBackToList:
|
|
4763
|
-
"onUpdate:activeIndex":
|
|
4869
|
+
onBackToList: F(h).returnToList,
|
|
4870
|
+
"onUpdate:activeIndex": F(h).setActiveIndex
|
|
4764
4871
|
}, l({ _: 2 }, [
|
|
4765
4872
|
f["empty-state"] ? {
|
|
4766
4873
|
name: "empty-state",
|
|
4767
|
-
fn:
|
|
4874
|
+
fn: B((t) => [k(e.$slots, "empty-state", y(p(t)))]),
|
|
4768
4875
|
key: "0"
|
|
4769
4876
|
} : void 0,
|
|
4770
4877
|
f["fullscreen-overlay"] ? {
|
|
4771
4878
|
name: "fullscreen-overlay",
|
|
4772
|
-
fn:
|
|
4879
|
+
fn: B((t) => [k(e.$slots, "fullscreen-overlay", y(p(t)))]),
|
|
4773
4880
|
key: "1"
|
|
4774
4881
|
} : void 0,
|
|
4775
4882
|
f["fullscreen-aside"] ? {
|
|
4776
4883
|
name: "fullscreen-aside",
|
|
4777
|
-
fn:
|
|
4884
|
+
fn: B((t) => [k(e.$slots, "fullscreen-aside", y(p(t)))]),
|
|
4778
4885
|
key: "2"
|
|
4779
4886
|
} : void 0,
|
|
4780
4887
|
f["fullscreen-header-actions"] ? {
|
|
4781
4888
|
name: "fullscreen-header-actions",
|
|
4782
|
-
fn:
|
|
4889
|
+
fn: B((t) => [k(e.$slots, "fullscreen-header-actions", y(p(t)))]),
|
|
4783
4890
|
key: "3"
|
|
4784
4891
|
} : void 0,
|
|
4785
4892
|
f["fullscreen-status"] ? {
|
|
4786
4893
|
name: "fullscreen-status",
|
|
4787
|
-
fn:
|
|
4894
|
+
fn: B((t) => [k(e.$slots, "fullscreen-status", y(p(t)))]),
|
|
4788
4895
|
key: "4"
|
|
4789
4896
|
} : void 0,
|
|
4790
4897
|
f["item-icon"] ? {
|
|
4791
4898
|
name: "item-icon",
|
|
4792
|
-
fn:
|
|
4899
|
+
fn: B((t) => [k(e.$slots, "item-icon", y(p(t)))]),
|
|
4793
4900
|
key: "5"
|
|
4794
4901
|
} : void 0
|
|
4795
4902
|
]), 1032, [
|
|
@@ -4809,10 +4916,10 @@ var zi = ["aria-label"], Bi = {
|
|
|
4809
4916
|
"show-status-badges",
|
|
4810
4917
|
"onBackToList",
|
|
4811
4918
|
"onUpdate:activeIndex"
|
|
4812
|
-
]))], 8,
|
|
4919
|
+
]))], 8, ha));
|
|
4813
4920
|
}
|
|
4814
|
-
}),
|
|
4815
|
-
e.component("VibeLayout",
|
|
4921
|
+
}), xa = { install(e) {
|
|
4922
|
+
e.component("VibeLayout", ba);
|
|
4816
4923
|
} };
|
|
4817
4924
|
//#endregion
|
|
4818
|
-
export {
|
|
4925
|
+
export { ba as VibeLayout, xa as VibePlugin, xa as default };
|