@wyxos/vibe 1.6.20 → 1.6.22
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/index.js +961 -836
- package/lib/vibe.css +1 -1
- package/package.json +1 -1
- package/src/Masonry.vue +1646 -1566
- package/src/components/MasonryItem.vue +4 -1
- package/src/pages.json +16472 -16472
- package/src/useMasonryScroll.ts +60 -60
- package/src/useMasonryTransitions.ts +52 -1
- package/src/useSwipeMode.ts +233 -0
- package/src/utils/errorHandler.ts +8 -0
package/lib/index.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { nextTick as
|
|
2
|
-
let
|
|
3
|
-
function
|
|
4
|
-
if (
|
|
1
|
+
import { nextTick as U, ref as H, computed as ae, defineComponent as ft, onMounted as dt, onUnmounted as ht, watch as se, createElementBlock as R, openBlock as j, createCommentVNode as ie, createElementVNode as q, normalizeStyle as He, renderSlot as K, normalizeClass as me, withModifiers as nt, toDisplayString as qe, unref as ye, Fragment as lt, renderList as ot, createVNode as Re, withCtx as Ie, mergeProps as Ee, TransitionGroup as Ht } from "vue";
|
|
2
|
+
let je = null;
|
|
3
|
+
function St() {
|
|
4
|
+
if (je != null) return je;
|
|
5
5
|
const t = document.createElement("div");
|
|
6
6
|
t.style.visibility = "hidden", t.style.overflow = "scroll", t.style.msOverflowStyle = "scrollbar", t.style.width = "100px", t.style.height = "100px", document.body.appendChild(t);
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
return document.body.removeChild(t),
|
|
7
|
+
const c = document.createElement("div");
|
|
8
|
+
c.style.width = "100%", t.appendChild(c);
|
|
9
|
+
const v = t.offsetWidth - c.offsetWidth;
|
|
10
|
+
return document.body.removeChild(t), je = v, v;
|
|
11
11
|
}
|
|
12
|
-
function
|
|
12
|
+
function rt(t, c, v, r = {}) {
|
|
13
13
|
const {
|
|
14
|
-
gutterX:
|
|
15
|
-
gutterY:
|
|
16
|
-
header:
|
|
17
|
-
footer:
|
|
14
|
+
gutterX: E = 0,
|
|
15
|
+
gutterY: w = 0,
|
|
16
|
+
header: y = 0,
|
|
17
|
+
footer: f = 0,
|
|
18
18
|
paddingLeft: x = 0,
|
|
19
|
-
paddingRight:
|
|
20
|
-
sizes:
|
|
19
|
+
paddingRight: M = 0,
|
|
20
|
+
sizes: s = {
|
|
21
21
|
base: 1,
|
|
22
22
|
sm: 2,
|
|
23
23
|
md: 3,
|
|
@@ -25,195 +25,195 @@ function Qe(t, v, c, i = {}) {
|
|
|
25
25
|
xl: 5,
|
|
26
26
|
"2xl": 6
|
|
27
27
|
},
|
|
28
|
-
placement:
|
|
29
|
-
} =
|
|
30
|
-
let
|
|
28
|
+
placement: T = "masonry"
|
|
29
|
+
} = r;
|
|
30
|
+
let p = 0, b = 0;
|
|
31
31
|
try {
|
|
32
|
-
if (
|
|
33
|
-
const
|
|
34
|
-
|
|
32
|
+
if (c && c.nodeType === 1 && typeof window < "u" && window.getComputedStyle) {
|
|
33
|
+
const $ = window.getComputedStyle(c);
|
|
34
|
+
p = parseFloat($.paddingLeft) || 0, b = parseFloat($.paddingRight) || 0;
|
|
35
35
|
}
|
|
36
36
|
} catch {
|
|
37
37
|
}
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
return Math.round(
|
|
38
|
+
const i = (x || 0) + p, L = (M || 0) + b, l = c.offsetWidth - c.clientWidth, h = l > 0 ? l + 2 : St() + 2, k = c.offsetWidth - h - i - L, P = E * (v - 1), W = Math.floor((k - P) / v), I = t.map(($) => {
|
|
39
|
+
const C = $.width, B = $.height;
|
|
40
|
+
return Math.round(W * B / C) + f + y;
|
|
41
41
|
});
|
|
42
|
-
if (
|
|
43
|
-
const
|
|
44
|
-
if (
|
|
45
|
-
const
|
|
46
|
-
let
|
|
47
|
-
const
|
|
48
|
-
let
|
|
49
|
-
for (let
|
|
50
|
-
const
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
else if (
|
|
42
|
+
if (T === "sequential-balanced") {
|
|
43
|
+
const $ = I.length;
|
|
44
|
+
if ($ === 0) return [];
|
|
45
|
+
const C = (N, G, Z) => N + (G > 0 ? w : 0) + Z;
|
|
46
|
+
let B = Math.max(...I), a = I.reduce((N, G) => N + G, 0) + w * Math.max(0, $ - 1);
|
|
47
|
+
const d = (N) => {
|
|
48
|
+
let G = 1, Z = 0, ve = 0;
|
|
49
|
+
for (let ee = 0; ee < $; ee++) {
|
|
50
|
+
const ge = I[ee], le = C(Z, ve, ge);
|
|
51
|
+
if (le <= N)
|
|
52
|
+
Z = le, ve++;
|
|
53
|
+
else if (G++, Z = ge, ve = 1, ge > N || G > v) return !1;
|
|
54
54
|
}
|
|
55
|
-
return
|
|
55
|
+
return G <= v;
|
|
56
56
|
};
|
|
57
|
-
for (;
|
|
58
|
-
const
|
|
59
|
-
|
|
57
|
+
for (; B < a; ) {
|
|
58
|
+
const N = Math.floor((B + a) / 2);
|
|
59
|
+
d(N) ? a = N : B = N + 1;
|
|
60
60
|
}
|
|
61
|
-
const
|
|
62
|
-
let
|
|
63
|
-
for (let
|
|
64
|
-
const
|
|
65
|
-
!(
|
|
61
|
+
const _ = a, D = new Array(v).fill(0);
|
|
62
|
+
let ne = v - 1, X = 0, A = 0;
|
|
63
|
+
for (let N = $ - 1; N >= 0; N--) {
|
|
64
|
+
const G = I[N], Z = N < ne;
|
|
65
|
+
!(C(X, A, G) <= _) || Z ? (D[ne] = N + 1, ne--, X = G, A = 1) : (X = C(X, A, G), A++);
|
|
66
66
|
}
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
for (let
|
|
70
|
-
const
|
|
71
|
-
for (let
|
|
72
|
-
const
|
|
73
|
-
...t[
|
|
74
|
-
columnWidth:
|
|
67
|
+
D[0] = 0;
|
|
68
|
+
const ue = [], ce = new Array(v).fill(0);
|
|
69
|
+
for (let N = 0; N < v; N++) {
|
|
70
|
+
const G = D[N], Z = N + 1 < v ? D[N + 1] : $, ve = N * (W + E);
|
|
71
|
+
for (let ee = G; ee < Z; ee++) {
|
|
72
|
+
const le = {
|
|
73
|
+
...t[ee],
|
|
74
|
+
columnWidth: W,
|
|
75
75
|
imageHeight: 0,
|
|
76
76
|
columnHeight: 0,
|
|
77
77
|
left: 0,
|
|
78
78
|
top: 0
|
|
79
79
|
};
|
|
80
|
-
|
|
80
|
+
le.imageHeight = I[ee] - (f + y), le.columnHeight = I[ee], le.left = ve, le.top = ce[N], ce[N] += le.columnHeight + (ee + 1 < Z ? w : 0), ue.push(le);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
return
|
|
83
|
+
return ue;
|
|
84
84
|
}
|
|
85
|
-
const
|
|
86
|
-
for (let
|
|
87
|
-
const
|
|
88
|
-
...
|
|
85
|
+
const m = new Array(v).fill(0), z = [];
|
|
86
|
+
for (let $ = 0; $ < t.length; $++) {
|
|
87
|
+
const C = t[$], B = {
|
|
88
|
+
...C,
|
|
89
89
|
columnWidth: 0,
|
|
90
90
|
imageHeight: 0,
|
|
91
91
|
columnHeight: 0,
|
|
92
92
|
left: 0,
|
|
93
93
|
top: 0
|
|
94
|
-
},
|
|
95
|
-
|
|
94
|
+
}, a = m.indexOf(Math.min(...m)), d = C.width, _ = C.height;
|
|
95
|
+
B.columnWidth = W, B.left = a * (W + E), B.imageHeight = Math.round(W * _ / d), B.columnHeight = B.imageHeight + f + y, B.top = m[a], m[a] += B.columnHeight + w, z.push(B);
|
|
96
96
|
}
|
|
97
97
|
return z;
|
|
98
98
|
}
|
|
99
|
-
var
|
|
100
|
-
function
|
|
101
|
-
var
|
|
99
|
+
var Pt = typeof global == "object" && global && global.Object === Object && global, $t = typeof self == "object" && self && self.Object === Object && self, mt = Pt || $t || Function("return this")(), $e = mt.Symbol, gt = Object.prototype, Nt = gt.hasOwnProperty, Ft = gt.toString, Le = $e ? $e.toStringTag : void 0;
|
|
100
|
+
function Wt(t) {
|
|
101
|
+
var c = Nt.call(t, Le), v = t[Le];
|
|
102
102
|
try {
|
|
103
|
-
t[
|
|
104
|
-
var
|
|
103
|
+
t[Le] = void 0;
|
|
104
|
+
var r = !0;
|
|
105
105
|
} catch {
|
|
106
106
|
}
|
|
107
|
-
var
|
|
108
|
-
return
|
|
107
|
+
var E = Ft.call(t);
|
|
108
|
+
return r && (c ? t[Le] = v : delete t[Le]), E;
|
|
109
109
|
}
|
|
110
|
-
var
|
|
111
|
-
function
|
|
112
|
-
return
|
|
110
|
+
var Bt = Object.prototype, Dt = Bt.toString;
|
|
111
|
+
function At(t) {
|
|
112
|
+
return Dt.call(t);
|
|
113
113
|
}
|
|
114
|
-
var
|
|
115
|
-
function
|
|
116
|
-
return t == null ? t === void 0 ?
|
|
114
|
+
var zt = "[object Null]", Ot = "[object Undefined]", it = $e ? $e.toStringTag : void 0;
|
|
115
|
+
function Rt(t) {
|
|
116
|
+
return t == null ? t === void 0 ? Ot : zt : it && it in Object(t) ? Wt(t) : At(t);
|
|
117
117
|
}
|
|
118
|
-
function
|
|
118
|
+
function jt(t) {
|
|
119
119
|
return t != null && typeof t == "object";
|
|
120
120
|
}
|
|
121
|
-
var
|
|
122
|
-
function
|
|
123
|
-
return typeof t == "symbol" ||
|
|
121
|
+
var Ct = "[object Symbol]";
|
|
122
|
+
function qt(t) {
|
|
123
|
+
return typeof t == "symbol" || jt(t) && Rt(t) == Ct;
|
|
124
124
|
}
|
|
125
|
-
var
|
|
126
|
-
function
|
|
127
|
-
for (var
|
|
125
|
+
var Vt = /\s/;
|
|
126
|
+
function Yt(t) {
|
|
127
|
+
for (var c = t.length; c-- && Vt.test(t.charAt(c)); )
|
|
128
128
|
;
|
|
129
|
-
return
|
|
129
|
+
return c;
|
|
130
130
|
}
|
|
131
|
-
var
|
|
132
|
-
function
|
|
133
|
-
return t && t.slice(0,
|
|
131
|
+
var Ut = /^\s+/;
|
|
132
|
+
function _t(t) {
|
|
133
|
+
return t && t.slice(0, Yt(t) + 1).replace(Ut, "");
|
|
134
134
|
}
|
|
135
|
-
function
|
|
136
|
-
var
|
|
137
|
-
return t != null && (
|
|
135
|
+
function Ve(t) {
|
|
136
|
+
var c = typeof t;
|
|
137
|
+
return t != null && (c == "object" || c == "function");
|
|
138
138
|
}
|
|
139
|
-
var
|
|
140
|
-
function
|
|
139
|
+
var st = NaN, Xt = /^[-+]0x[0-9a-f]+$/i, Gt = /^0b[01]+$/i, Jt = /^0o[0-7]+$/i, Kt = parseInt;
|
|
140
|
+
function ut(t) {
|
|
141
141
|
if (typeof t == "number")
|
|
142
142
|
return t;
|
|
143
|
-
if (
|
|
144
|
-
return
|
|
145
|
-
if (
|
|
146
|
-
var
|
|
147
|
-
t =
|
|
143
|
+
if (qt(t))
|
|
144
|
+
return st;
|
|
145
|
+
if (Ve(t)) {
|
|
146
|
+
var c = typeof t.valueOf == "function" ? t.valueOf() : t;
|
|
147
|
+
t = Ve(c) ? c + "" : c;
|
|
148
148
|
}
|
|
149
149
|
if (typeof t != "string")
|
|
150
150
|
return t === 0 ? t : +t;
|
|
151
|
-
t =
|
|
152
|
-
var
|
|
153
|
-
return
|
|
151
|
+
t = _t(t);
|
|
152
|
+
var v = Gt.test(t);
|
|
153
|
+
return v || Jt.test(t) ? Kt(t.slice(2), v ? 2 : 8) : Xt.test(t) ? st : +t;
|
|
154
154
|
}
|
|
155
|
-
var
|
|
156
|
-
return
|
|
157
|
-
},
|
|
158
|
-
function
|
|
159
|
-
var
|
|
155
|
+
var Ce = function() {
|
|
156
|
+
return mt.Date.now();
|
|
157
|
+
}, Qt = "Expected a function", Zt = Math.max, ea = Math.min;
|
|
158
|
+
function ct(t, c, v) {
|
|
159
|
+
var r, E, w, y, f, x, M = 0, s = !1, T = !1, p = !0;
|
|
160
160
|
if (typeof t != "function")
|
|
161
|
-
throw new TypeError(
|
|
162
|
-
|
|
163
|
-
function
|
|
164
|
-
var z =
|
|
165
|
-
return
|
|
161
|
+
throw new TypeError(Qt);
|
|
162
|
+
c = ut(c) || 0, Ve(v) && (s = !!v.leading, T = "maxWait" in v, w = T ? Zt(ut(v.maxWait) || 0, c) : w, p = "trailing" in v ? !!v.trailing : p);
|
|
163
|
+
function b(m) {
|
|
164
|
+
var z = r, $ = E;
|
|
165
|
+
return r = E = void 0, M = m, y = t.apply($, z), y;
|
|
166
166
|
}
|
|
167
|
-
function
|
|
168
|
-
return
|
|
167
|
+
function i(m) {
|
|
168
|
+
return M = m, f = setTimeout(h, c), s ? b(m) : y;
|
|
169
169
|
}
|
|
170
|
-
function
|
|
171
|
-
var z =
|
|
172
|
-
return
|
|
170
|
+
function L(m) {
|
|
171
|
+
var z = m - x, $ = m - M, C = c - z;
|
|
172
|
+
return T ? ea(C, w - $) : C;
|
|
173
173
|
}
|
|
174
|
-
function
|
|
175
|
-
var z =
|
|
176
|
-
return x === void 0 || z >=
|
|
174
|
+
function l(m) {
|
|
175
|
+
var z = m - x, $ = m - M;
|
|
176
|
+
return x === void 0 || z >= c || z < 0 || T && $ >= w;
|
|
177
177
|
}
|
|
178
|
-
function
|
|
179
|
-
var
|
|
180
|
-
if (
|
|
181
|
-
return
|
|
182
|
-
|
|
178
|
+
function h() {
|
|
179
|
+
var m = Ce();
|
|
180
|
+
if (l(m))
|
|
181
|
+
return k(m);
|
|
182
|
+
f = setTimeout(h, L(m));
|
|
183
183
|
}
|
|
184
|
-
function
|
|
185
|
-
return
|
|
184
|
+
function k(m) {
|
|
185
|
+
return f = void 0, p && r ? b(m) : (r = E = void 0, y);
|
|
186
186
|
}
|
|
187
|
-
function
|
|
188
|
-
|
|
187
|
+
function P() {
|
|
188
|
+
f !== void 0 && clearTimeout(f), M = 0, r = x = E = f = void 0;
|
|
189
189
|
}
|
|
190
|
-
function
|
|
191
|
-
return
|
|
190
|
+
function W() {
|
|
191
|
+
return f === void 0 ? y : k(Ce());
|
|
192
192
|
}
|
|
193
|
-
function
|
|
194
|
-
var
|
|
195
|
-
if (
|
|
196
|
-
if (
|
|
197
|
-
return
|
|
198
|
-
if (
|
|
199
|
-
return clearTimeout(
|
|
193
|
+
function I() {
|
|
194
|
+
var m = Ce(), z = l(m);
|
|
195
|
+
if (r = arguments, E = this, x = m, z) {
|
|
196
|
+
if (f === void 0)
|
|
197
|
+
return i(x);
|
|
198
|
+
if (T)
|
|
199
|
+
return clearTimeout(f), f = setTimeout(h, c), b(x);
|
|
200
200
|
}
|
|
201
|
-
return
|
|
201
|
+
return f === void 0 && (f = setTimeout(h, c)), y;
|
|
202
202
|
}
|
|
203
|
-
return
|
|
203
|
+
return I.cancel = P, I.flush = W, I;
|
|
204
204
|
}
|
|
205
|
-
function
|
|
206
|
-
const
|
|
207
|
-
return
|
|
205
|
+
function we(t, c) {
|
|
206
|
+
const v = c ?? (typeof window < "u" ? window.innerWidth : 1024), r = t.sizes;
|
|
207
|
+
return v >= 1536 && r["2xl"] ? r["2xl"] : v >= 1280 && r.xl ? r.xl : v >= 1024 && r.lg ? r.lg : v >= 768 && r.md ? r.md : v >= 640 && r.sm ? r.sm : r.base;
|
|
208
208
|
}
|
|
209
|
-
function
|
|
210
|
-
const
|
|
211
|
-
return
|
|
209
|
+
function ta(t) {
|
|
210
|
+
const c = t ?? (typeof window < "u" ? window.innerWidth : 1024);
|
|
211
|
+
return c >= 1536 ? "2xl" : c >= 1280 ? "xl" : c >= 1024 ? "lg" : c >= 768 ? "md" : c >= 640 ? "sm" : "base";
|
|
212
212
|
}
|
|
213
|
-
function
|
|
214
|
-
return t.reduce((
|
|
213
|
+
function aa(t) {
|
|
214
|
+
return t.reduce((v, r) => Math.max(v, r.top + r.columnHeight), 0) + 500;
|
|
215
215
|
}
|
|
216
|
-
function
|
|
216
|
+
function na(t) {
|
|
217
217
|
return {
|
|
218
218
|
transform: `translate3d(${t.left}px, ${t.top}px, 0)`,
|
|
219
219
|
top: "0px",
|
|
@@ -222,114 +222,226 @@ function ra(t) {
|
|
|
222
222
|
height: `${t.columnHeight}px`
|
|
223
223
|
};
|
|
224
224
|
}
|
|
225
|
-
function
|
|
225
|
+
function la(t, c = 0) {
|
|
226
226
|
return {
|
|
227
|
-
style:
|
|
227
|
+
style: na(t),
|
|
228
228
|
"data-top": t.top,
|
|
229
229
|
"data-left": t.left,
|
|
230
230
|
"data-id": `${t.page}-${t.id}`,
|
|
231
|
-
"data-index":
|
|
231
|
+
"data-index": c
|
|
232
232
|
};
|
|
233
233
|
}
|
|
234
|
-
function
|
|
235
|
-
if (!t.length ||
|
|
236
|
-
return new Array(Math.max(1,
|
|
237
|
-
const
|
|
238
|
-
for (let
|
|
239
|
-
const
|
|
240
|
-
for (const
|
|
241
|
-
const
|
|
242
|
-
|
|
234
|
+
function Ye(t, c) {
|
|
235
|
+
if (!t.length || c <= 0)
|
|
236
|
+
return new Array(Math.max(1, c)).fill(0);
|
|
237
|
+
const r = Array.from(new Set(t.map((y) => y.left))).sort((y, f) => y - f).slice(0, c), E = /* @__PURE__ */ new Map();
|
|
238
|
+
for (let y = 0; y < r.length; y++) E.set(r[y], y);
|
|
239
|
+
const w = new Array(r.length).fill(0);
|
|
240
|
+
for (const y of t) {
|
|
241
|
+
const f = E.get(y.left);
|
|
242
|
+
f != null && (w[f] = Math.max(w[f], y.top + y.columnHeight));
|
|
243
243
|
}
|
|
244
|
-
for (;
|
|
245
|
-
return
|
|
244
|
+
for (; w.length < c; ) w.push(0);
|
|
245
|
+
return w;
|
|
246
246
|
}
|
|
247
|
-
function
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
247
|
+
function oa(t, c) {
|
|
248
|
+
let v = 0, r = 0;
|
|
249
|
+
const E = 1e3;
|
|
250
|
+
function w(s, T) {
|
|
251
|
+
var i;
|
|
252
|
+
const p = (i = t.container) == null ? void 0 : i.value;
|
|
253
|
+
if (p) {
|
|
254
|
+
const L = p.scrollTop, l = p.clientHeight;
|
|
255
|
+
v = L - E, r = L + l + E;
|
|
256
|
+
}
|
|
257
|
+
return s + T >= v && s <= r;
|
|
258
|
+
}
|
|
259
|
+
function y(s, T) {
|
|
260
|
+
const p = parseInt(s.dataset.left || "0", 10), b = parseInt(s.dataset.top || "0", 10), i = parseInt(s.dataset.index || "0", 10), L = s.offsetHeight || parseInt(getComputedStyle(s).height || "200", 10) || 200;
|
|
261
|
+
if (!w(b, L)) {
|
|
262
|
+
s.style.opacity = "1", s.style.transform = `translate3d(${p}px, ${b}px, 0) scale(1)`, s.style.transition = "none", T();
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
const l = Math.min(i * 20, 160), h = s.style.getPropertyValue("--masonry-opacity-delay");
|
|
266
|
+
s.style.setProperty("--masonry-opacity-delay", `${l}ms`), requestAnimationFrame(() => {
|
|
267
|
+
s.style.opacity = "1", s.style.transform = `translate3d(${p}px, ${b}px, 0) scale(1)`;
|
|
268
|
+
const k = () => {
|
|
269
|
+
h ? s.style.setProperty("--masonry-opacity-delay", h) : s.style.removeProperty("--masonry-opacity-delay"), s.removeEventListener("transitionend", k), T();
|
|
254
270
|
};
|
|
255
|
-
|
|
271
|
+
s.addEventListener("transitionend", k);
|
|
256
272
|
});
|
|
257
273
|
}
|
|
258
|
-
function
|
|
259
|
-
const
|
|
260
|
-
|
|
274
|
+
function f(s) {
|
|
275
|
+
const T = parseInt(s.dataset.left || "0", 10), p = parseInt(s.dataset.top || "0", 10);
|
|
276
|
+
s.style.opacity = "0", s.style.transform = `translate3d(${T}px, ${p + 10}px, 0) scale(0.985)`;
|
|
261
277
|
}
|
|
262
|
-
function
|
|
263
|
-
const
|
|
264
|
-
|
|
265
|
-
|
|
278
|
+
function x(s) {
|
|
279
|
+
const T = parseInt(s.dataset.left || "0", 10), p = parseInt(s.dataset.top || "0", 10), b = s.offsetHeight || parseInt(getComputedStyle(s).height || "200", 10) || 200;
|
|
280
|
+
if (!w(p, b)) {
|
|
281
|
+
s.style.transition = "none";
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
s.style.transition = "none", s.style.opacity = "1", s.style.transform = `translate3d(${T}px, ${p}px, 0) scale(1)`, s.style.removeProperty("--masonry-opacity-delay"), requestAnimationFrame(() => {
|
|
285
|
+
s.style.transition = "";
|
|
266
286
|
});
|
|
267
287
|
}
|
|
268
|
-
function
|
|
269
|
-
const
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
k = Number.isFinite(P) && P > 0 ? P : 200;
|
|
288
|
+
function M(s, T) {
|
|
289
|
+
const p = parseInt(s.dataset.left || "0", 10), b = parseInt(s.dataset.top || "0", 10), i = s.offsetHeight || parseInt(getComputedStyle(s).height || "200", 10) || 200;
|
|
290
|
+
if (!w(b, i)) {
|
|
291
|
+
s.style.transition = "none", s.style.opacity = "0", T();
|
|
292
|
+
return;
|
|
274
293
|
}
|
|
275
|
-
const
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
294
|
+
const L = typeof (c == null ? void 0 : c.leaveDurationMs) == "number" ? c.leaveDurationMs : NaN;
|
|
295
|
+
let l = Number.isFinite(L) && L > 0 ? L : NaN;
|
|
296
|
+
if (!Number.isFinite(l)) {
|
|
297
|
+
const m = getComputedStyle(s).getPropertyValue("--masonry-leave-duration") || "", z = parseFloat(m);
|
|
298
|
+
l = Number.isFinite(z) && z > 0 ? z : 200;
|
|
299
|
+
}
|
|
300
|
+
const h = s.style.transitionDuration, k = () => {
|
|
301
|
+
s.removeEventListener("transitionend", P), clearTimeout(W), s.style.transitionDuration = h || "";
|
|
302
|
+
}, P = (I) => {
|
|
303
|
+
(!I || I.target === s) && (k(), T());
|
|
304
|
+
}, W = setTimeout(() => {
|
|
305
|
+
k(), T();
|
|
306
|
+
}, l + 100);
|
|
282
307
|
requestAnimationFrame(() => {
|
|
283
|
-
|
|
308
|
+
s.style.transitionDuration = `${l}ms`, s.style.opacity = "0", s.style.transform = `translate3d(${p}px, ${b + 10}px, 0) scale(0.985)`, s.addEventListener("transitionend", P);
|
|
284
309
|
});
|
|
285
310
|
}
|
|
286
311
|
return {
|
|
287
|
-
onEnter:
|
|
288
|
-
onBeforeEnter:
|
|
289
|
-
onBeforeLeave:
|
|
290
|
-
onLeave:
|
|
312
|
+
onEnter: y,
|
|
313
|
+
onBeforeEnter: f,
|
|
314
|
+
onBeforeLeave: x,
|
|
315
|
+
onLeave: M
|
|
291
316
|
};
|
|
292
317
|
}
|
|
293
|
-
function
|
|
318
|
+
function ra({
|
|
294
319
|
container: t,
|
|
295
|
-
masonry:
|
|
296
|
-
columns:
|
|
297
|
-
containerHeight:
|
|
298
|
-
isLoading:
|
|
299
|
-
pageSize:
|
|
300
|
-
refreshLayout:
|
|
301
|
-
setItemsRaw:
|
|
320
|
+
masonry: c,
|
|
321
|
+
columns: v,
|
|
322
|
+
containerHeight: r,
|
|
323
|
+
isLoading: E,
|
|
324
|
+
pageSize: w,
|
|
325
|
+
refreshLayout: y,
|
|
326
|
+
setItemsRaw: f,
|
|
302
327
|
loadNext: x,
|
|
303
|
-
loadThresholdPx:
|
|
328
|
+
loadThresholdPx: M
|
|
304
329
|
}) {
|
|
305
|
-
let
|
|
306
|
-
async function
|
|
330
|
+
let s = 0;
|
|
331
|
+
async function T(p) {
|
|
307
332
|
if (!t.value) return;
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
const
|
|
311
|
-
if (
|
|
312
|
-
await x(), await
|
|
333
|
+
const b = p ?? Ye(c.value, v.value), i = b.length ? Math.max(...b) : 0, L = t.value.scrollTop + t.value.clientHeight, l = t.value.scrollTop > s + 1;
|
|
334
|
+
s = t.value.scrollTop;
|
|
335
|
+
const h = typeof M == "number" ? M : 200, k = h >= 0 ? Math.max(0, i - h) : Math.max(0, i + h);
|
|
336
|
+
if (L >= k && l && !E.value) {
|
|
337
|
+
await x(), await U();
|
|
313
338
|
return;
|
|
314
339
|
}
|
|
315
340
|
}
|
|
316
341
|
return {
|
|
317
|
-
handleScroll:
|
|
342
|
+
handleScroll: T
|
|
318
343
|
};
|
|
319
344
|
}
|
|
320
|
-
|
|
345
|
+
function ia(t) {
|
|
346
|
+
const { useSwipeMode: c, masonry: v, isLoading: r, loadNext: E, loadPage: w, paginationHistory: y } = t, f = H(0), x = H(0), M = H(!1), s = H(0), T = H(0), p = H(null), b = ae(() => {
|
|
347
|
+
if (!c.value || v.value.length === 0) return null;
|
|
348
|
+
const a = Math.max(0, Math.min(f.value, v.value.length - 1));
|
|
349
|
+
return v.value[a] || null;
|
|
350
|
+
}), i = ae(() => {
|
|
351
|
+
if (!c.value || !b.value) return null;
|
|
352
|
+
const a = f.value + 1;
|
|
353
|
+
return a >= v.value.length ? null : v.value[a] || null;
|
|
354
|
+
}), L = ae(() => {
|
|
355
|
+
if (!c.value || !b.value) return null;
|
|
356
|
+
const a = f.value - 1;
|
|
357
|
+
return a < 0 ? null : v.value[a] || null;
|
|
358
|
+
});
|
|
359
|
+
function l() {
|
|
360
|
+
if (!p.value) return;
|
|
361
|
+
const a = p.value.clientHeight;
|
|
362
|
+
x.value = -f.value * a;
|
|
363
|
+
}
|
|
364
|
+
function h() {
|
|
365
|
+
if (!i.value) {
|
|
366
|
+
E();
|
|
367
|
+
return;
|
|
368
|
+
}
|
|
369
|
+
f.value++, l(), f.value >= v.value.length - 5 && E();
|
|
370
|
+
}
|
|
371
|
+
function k() {
|
|
372
|
+
L.value && (f.value--, l());
|
|
373
|
+
}
|
|
374
|
+
function P(a) {
|
|
375
|
+
c.value && (M.value = !0, s.value = a.touches[0].clientY, T.value = x.value, a.preventDefault());
|
|
376
|
+
}
|
|
377
|
+
function W(a) {
|
|
378
|
+
if (!c.value || !M.value) return;
|
|
379
|
+
const d = a.touches[0].clientY - s.value;
|
|
380
|
+
x.value = T.value + d, a.preventDefault();
|
|
381
|
+
}
|
|
382
|
+
function I(a) {
|
|
383
|
+
if (!c.value || !M.value) return;
|
|
384
|
+
M.value = !1;
|
|
385
|
+
const d = x.value - T.value;
|
|
386
|
+
Math.abs(d) > 100 ? d > 0 && L.value ? k() : d < 0 && i.value ? h() : l() : l(), a.preventDefault();
|
|
387
|
+
}
|
|
388
|
+
function m(a) {
|
|
389
|
+
c.value && (M.value = !0, s.value = a.clientY, T.value = x.value, a.preventDefault());
|
|
390
|
+
}
|
|
391
|
+
function z(a) {
|
|
392
|
+
if (!c.value || !M.value) return;
|
|
393
|
+
const d = a.clientY - s.value;
|
|
394
|
+
x.value = T.value + d, a.preventDefault();
|
|
395
|
+
}
|
|
396
|
+
function $(a) {
|
|
397
|
+
if (!c.value || !M.value) return;
|
|
398
|
+
M.value = !1;
|
|
399
|
+
const d = x.value - T.value;
|
|
400
|
+
Math.abs(d) > 100 ? d > 0 && L.value ? k() : d < 0 && i.value ? h() : l() : l(), a.preventDefault();
|
|
401
|
+
}
|
|
402
|
+
function C() {
|
|
403
|
+
!c.value && f.value > 0 && (f.value = 0, x.value = 0), c.value && v.value.length === 0 && !r.value && w(y.value[0]), c.value && l();
|
|
404
|
+
}
|
|
405
|
+
function B() {
|
|
406
|
+
f.value = 0, x.value = 0, M.value = !1;
|
|
407
|
+
}
|
|
408
|
+
return {
|
|
409
|
+
// State
|
|
410
|
+
currentSwipeIndex: f,
|
|
411
|
+
swipeOffset: x,
|
|
412
|
+
isDragging: M,
|
|
413
|
+
swipeContainer: p,
|
|
414
|
+
// Computed
|
|
415
|
+
currentItem: b,
|
|
416
|
+
nextItem: i,
|
|
417
|
+
previousItem: L,
|
|
418
|
+
// Functions
|
|
419
|
+
handleTouchStart: P,
|
|
420
|
+
handleTouchMove: W,
|
|
421
|
+
handleTouchEnd: I,
|
|
422
|
+
handleMouseDown: m,
|
|
423
|
+
handleMouseMove: z,
|
|
424
|
+
handleMouseUp: $,
|
|
425
|
+
goToNextItem: h,
|
|
426
|
+
goToPreviousItem: k,
|
|
427
|
+
snapToCurrentItem: l,
|
|
428
|
+
handleWindowResize: C,
|
|
429
|
+
reset: B
|
|
430
|
+
};
|
|
431
|
+
}
|
|
432
|
+
const sa = { class: "flex-1 relative min-h-0" }, ua = { class: "w-full h-full rounded-xl overflow-hidden shadow-sm transition-all duration-300 bg-white relative" }, ca = {
|
|
321
433
|
key: 0,
|
|
322
434
|
class: "absolute inset-0 flex flex-col items-center justify-center bg-slate-100 text-slate-400 text-sm p-4 text-center"
|
|
323
|
-
},
|
|
435
|
+
}, va = {
|
|
324
436
|
key: 1,
|
|
325
437
|
class: "relative w-full h-full"
|
|
326
|
-
},
|
|
438
|
+
}, fa = ["src"], da = ["src", "autoplay", "controls"], ha = { class: "w-12 h-12 rounded-full bg-white/80 backdrop-blur-sm flex items-center justify-center shadow-sm" }, ma = {
|
|
327
439
|
key: 3,
|
|
328
440
|
class: "absolute bottom-2 left-1/2 transform -translate-x-1/2 flex items-center justify-center z-10"
|
|
329
|
-
},
|
|
441
|
+
}, ga = {
|
|
330
442
|
key: 4,
|
|
331
443
|
class: "absolute inset-0 flex flex-col items-center justify-center bg-slate-50 text-slate-400 text-sm p-4 text-center"
|
|
332
|
-
},
|
|
444
|
+
}, Ne = /* @__PURE__ */ ft({
|
|
333
445
|
__name: "MasonryItem",
|
|
334
446
|
props: {
|
|
335
447
|
item: {},
|
|
@@ -342,276 +454,282 @@ const ua = { class: "flex-1 relative min-h-0" }, va = { class: "w-full h-full ro
|
|
|
342
454
|
inSwipeMode: { type: Boolean, default: !1 }
|
|
343
455
|
},
|
|
344
456
|
emits: ["preload:success", "preload:error", "mouse-enter", "mouse-leave"],
|
|
345
|
-
setup(t, { emit:
|
|
346
|
-
const
|
|
347
|
-
let
|
|
348
|
-
const
|
|
349
|
-
var
|
|
350
|
-
return
|
|
351
|
-
}),
|
|
352
|
-
var
|
|
353
|
-
return
|
|
354
|
-
}),
|
|
355
|
-
function
|
|
356
|
-
|
|
457
|
+
setup(t, { emit: c }) {
|
|
458
|
+
const v = t, r = c, E = H(!1), w = H(!1), y = H(null), f = H(!1), x = H(!1), M = H(null), s = H(!1), T = H(!1), p = H(!1), b = H(null), i = H(null);
|
|
459
|
+
let L = null;
|
|
460
|
+
const l = ae(() => {
|
|
461
|
+
var a;
|
|
462
|
+
return v.type ?? ((a = v.item) == null ? void 0 : a.type) ?? "image";
|
|
463
|
+
}), h = ae(() => {
|
|
464
|
+
var a;
|
|
465
|
+
return v.notFound ?? ((a = v.item) == null ? void 0 : a.notFound) ?? !1;
|
|
466
|
+
}), k = ae(() => !!v.inSwipeMode);
|
|
467
|
+
function P(a) {
|
|
468
|
+
r("mouse-enter", { item: v.item, type: a });
|
|
357
469
|
}
|
|
358
|
-
function
|
|
359
|
-
|
|
470
|
+
function W(a) {
|
|
471
|
+
r("mouse-leave", { item: v.item, type: a });
|
|
360
472
|
}
|
|
361
|
-
function
|
|
362
|
-
if (
|
|
363
|
-
const
|
|
364
|
-
|
|
473
|
+
function I(a) {
|
|
474
|
+
if (k.value) return;
|
|
475
|
+
const d = a.target;
|
|
476
|
+
d && (d.paused ? d.play() : d.pause());
|
|
365
477
|
}
|
|
366
|
-
function
|
|
367
|
-
const
|
|
368
|
-
|
|
478
|
+
function m(a) {
|
|
479
|
+
const d = a.target;
|
|
480
|
+
d && (k.value || d.play(), P("video"));
|
|
369
481
|
}
|
|
370
|
-
function z(
|
|
371
|
-
const
|
|
372
|
-
|
|
482
|
+
function z(a) {
|
|
483
|
+
const d = a.target;
|
|
484
|
+
d && (k.value || d.pause(), W("video"));
|
|
373
485
|
}
|
|
374
|
-
function
|
|
375
|
-
return new Promise((
|
|
376
|
-
if (!
|
|
377
|
-
const
|
|
378
|
-
|
|
486
|
+
function $(a) {
|
|
487
|
+
return new Promise((d, _) => {
|
|
488
|
+
if (!a) {
|
|
489
|
+
const A = new Error("No image source provided");
|
|
490
|
+
r("preload:error", { item: v.item, type: "image", src: a, error: A }), _(A);
|
|
379
491
|
return;
|
|
380
492
|
}
|
|
381
|
-
const
|
|
382
|
-
|
|
383
|
-
const
|
|
493
|
+
const D = new Image(), ne = Date.now(), X = 300;
|
|
494
|
+
D.onload = () => {
|
|
495
|
+
const A = Date.now() - ne, ue = Math.max(0, X - A);
|
|
384
496
|
setTimeout(async () => {
|
|
385
|
-
|
|
386
|
-
},
|
|
387
|
-
},
|
|
388
|
-
|
|
389
|
-
const
|
|
390
|
-
|
|
391
|
-
},
|
|
497
|
+
E.value = !0, w.value = !1, T.value = !1, await U(), await new Promise((ce) => setTimeout(ce, 100)), p.value = !0, r("preload:success", { item: v.item, type: "image", src: a }), d();
|
|
498
|
+
}, ue);
|
|
499
|
+
}, D.onerror = () => {
|
|
500
|
+
w.value = !0, E.value = !1, T.value = !1;
|
|
501
|
+
const A = new Error("Failed to load image");
|
|
502
|
+
r("preload:error", { item: v.item, type: "image", src: a, error: A }), _(A);
|
|
503
|
+
}, D.src = a;
|
|
392
504
|
});
|
|
393
505
|
}
|
|
394
|
-
function
|
|
395
|
-
return new Promise((
|
|
396
|
-
if (!
|
|
397
|
-
const
|
|
398
|
-
|
|
506
|
+
function C(a) {
|
|
507
|
+
return new Promise((d, _) => {
|
|
508
|
+
if (!a) {
|
|
509
|
+
const A = new Error("No video source provided");
|
|
510
|
+
r("preload:error", { item: v.item, type: "video", src: a, error: A }), _(A);
|
|
399
511
|
return;
|
|
400
512
|
}
|
|
401
|
-
const
|
|
402
|
-
|
|
403
|
-
const
|
|
513
|
+
const D = document.createElement("video"), ne = Date.now(), X = 300;
|
|
514
|
+
D.preload = "metadata", D.muted = !0, D.onloadedmetadata = () => {
|
|
515
|
+
const A = Date.now() - ne, ue = Math.max(0, X - A);
|
|
404
516
|
setTimeout(async () => {
|
|
405
|
-
|
|
406
|
-
},
|
|
407
|
-
},
|
|
408
|
-
x.value = !0,
|
|
409
|
-
const
|
|
410
|
-
|
|
411
|
-
},
|
|
517
|
+
f.value = !0, x.value = !1, T.value = !1, await U(), await new Promise((ce) => setTimeout(ce, 100)), p.value = !0, r("preload:success", { item: v.item, type: "video", src: a }), d();
|
|
518
|
+
}, ue);
|
|
519
|
+
}, D.onerror = () => {
|
|
520
|
+
x.value = !0, f.value = !1, T.value = !1;
|
|
521
|
+
const A = new Error("Failed to load video");
|
|
522
|
+
r("preload:error", { item: v.item, type: "video", src: a, error: A }), _(A);
|
|
523
|
+
}, D.src = a;
|
|
412
524
|
});
|
|
413
525
|
}
|
|
414
|
-
async function
|
|
415
|
-
var
|
|
416
|
-
if (!
|
|
526
|
+
async function B() {
|
|
527
|
+
var d;
|
|
528
|
+
if (!s.value || T.value || h.value || l.value === "video" && f.value || l.value === "image" && E.value)
|
|
417
529
|
return;
|
|
418
|
-
const
|
|
419
|
-
if (
|
|
420
|
-
if (
|
|
421
|
-
|
|
530
|
+
const a = (d = v.item) == null ? void 0 : d.src;
|
|
531
|
+
if (a)
|
|
532
|
+
if (T.value = !0, p.value = !1, l.value === "video") {
|
|
533
|
+
M.value = a, f.value = !1, x.value = !1;
|
|
422
534
|
try {
|
|
423
|
-
await
|
|
535
|
+
await C(a);
|
|
424
536
|
} catch {
|
|
425
537
|
}
|
|
426
538
|
} else {
|
|
427
|
-
|
|
539
|
+
y.value = a, E.value = !1, w.value = !1;
|
|
428
540
|
try {
|
|
429
|
-
await
|
|
541
|
+
await $(a);
|
|
430
542
|
} catch {
|
|
431
543
|
}
|
|
432
544
|
}
|
|
433
545
|
}
|
|
434
|
-
return
|
|
435
|
-
|
|
436
|
-
(
|
|
437
|
-
|
|
438
|
-
|
|
546
|
+
return dt(() => {
|
|
547
|
+
b.value && (L = new IntersectionObserver(
|
|
548
|
+
(a) => {
|
|
549
|
+
a.forEach((d) => {
|
|
550
|
+
d.isIntersecting && d.intersectionRatio >= 1 ? s.value || (s.value = !0, B()) : d.isIntersecting;
|
|
439
551
|
});
|
|
440
552
|
},
|
|
441
553
|
{
|
|
442
554
|
// Only trigger when item is 100% visible (full height in view)
|
|
443
555
|
threshold: [1]
|
|
444
556
|
}
|
|
445
|
-
),
|
|
446
|
-
}),
|
|
447
|
-
|
|
448
|
-
}),
|
|
557
|
+
), L.observe(b.value));
|
|
558
|
+
}), ht(() => {
|
|
559
|
+
L && (L.disconnect(), L = null);
|
|
560
|
+
}), se(
|
|
449
561
|
() => {
|
|
450
|
-
var
|
|
451
|
-
return (
|
|
562
|
+
var a;
|
|
563
|
+
return (a = v.item) == null ? void 0 : a.src;
|
|
452
564
|
},
|
|
453
|
-
async (
|
|
454
|
-
if (!(!
|
|
455
|
-
if (
|
|
456
|
-
if (
|
|
457
|
-
|
|
565
|
+
async (a) => {
|
|
566
|
+
if (!(!a || h.value)) {
|
|
567
|
+
if (l.value === "video") {
|
|
568
|
+
if (a !== M.value && (f.value = !1, x.value = !1, M.value = a, s.value)) {
|
|
569
|
+
T.value = !0;
|
|
458
570
|
try {
|
|
459
|
-
await
|
|
571
|
+
await C(a);
|
|
460
572
|
} catch {
|
|
461
573
|
}
|
|
462
574
|
}
|
|
463
|
-
} else if (
|
|
464
|
-
|
|
575
|
+
} else if (a !== y.value && (E.value = !1, w.value = !1, y.value = a, s.value)) {
|
|
576
|
+
T.value = !0;
|
|
465
577
|
try {
|
|
466
|
-
await
|
|
578
|
+
await $(a);
|
|
467
579
|
} catch {
|
|
468
580
|
}
|
|
469
581
|
}
|
|
470
582
|
}
|
|
471
583
|
}
|
|
472
|
-
),
|
|
473
|
-
() =>
|
|
474
|
-
(
|
|
475
|
-
!
|
|
584
|
+
), se(
|
|
585
|
+
() => v.isActive,
|
|
586
|
+
(a) => {
|
|
587
|
+
!k.value || !i.value || (a ? i.value.play() : i.value.pause());
|
|
476
588
|
}
|
|
477
|
-
), (
|
|
589
|
+
), (a, d) => (j(), R("div", {
|
|
478
590
|
ref_key: "containerRef",
|
|
479
|
-
ref:
|
|
591
|
+
ref: b,
|
|
480
592
|
class: "relative w-full h-full flex flex-col"
|
|
481
593
|
}, [
|
|
482
|
-
|
|
594
|
+
a.headerHeight > 0 ? (j(), R("div", {
|
|
483
595
|
key: 0,
|
|
484
596
|
class: "relative z-10",
|
|
485
|
-
style:
|
|
597
|
+
style: He({ height: `${a.headerHeight}px` })
|
|
486
598
|
}, [
|
|
487
|
-
|
|
488
|
-
item:
|
|
489
|
-
remove:
|
|
490
|
-
imageLoaded:
|
|
491
|
-
imageError:
|
|
492
|
-
videoLoaded:
|
|
599
|
+
K(a.$slots, "header", {
|
|
600
|
+
item: a.item,
|
|
601
|
+
remove: a.remove,
|
|
602
|
+
imageLoaded: E.value,
|
|
603
|
+
imageError: w.value,
|
|
604
|
+
videoLoaded: f.value,
|
|
493
605
|
videoError: x.value,
|
|
494
|
-
showNotFound:
|
|
495
|
-
isLoading:
|
|
496
|
-
mediaType:
|
|
606
|
+
showNotFound: h.value,
|
|
607
|
+
isLoading: T.value,
|
|
608
|
+
mediaType: l.value
|
|
497
609
|
})
|
|
498
|
-
], 4)) :
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
item:
|
|
502
|
-
remove:
|
|
503
|
-
imageLoaded:
|
|
504
|
-
imageError:
|
|
505
|
-
videoLoaded:
|
|
610
|
+
], 4)) : ie("", !0),
|
|
611
|
+
q("div", sa, [
|
|
612
|
+
K(a.$slots, "default", {
|
|
613
|
+
item: a.item,
|
|
614
|
+
remove: a.remove,
|
|
615
|
+
imageLoaded: E.value,
|
|
616
|
+
imageError: w.value,
|
|
617
|
+
videoLoaded: f.value,
|
|
506
618
|
videoError: x.value,
|
|
507
|
-
showNotFound:
|
|
508
|
-
isLoading:
|
|
509
|
-
mediaType:
|
|
510
|
-
imageSrc:
|
|
511
|
-
videoSrc:
|
|
512
|
-
showMedia:
|
|
619
|
+
showNotFound: h.value,
|
|
620
|
+
isLoading: T.value,
|
|
621
|
+
mediaType: l.value,
|
|
622
|
+
imageSrc: y.value,
|
|
623
|
+
videoSrc: M.value,
|
|
624
|
+
showMedia: p.value
|
|
513
625
|
}, () => [
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
]))) : (
|
|
520
|
-
|
|
626
|
+
q("div", ua, [
|
|
627
|
+
h.value ? (j(), R("div", ca, d[3] || (d[3] = [
|
|
628
|
+
q("i", { class: "fas fa-search text-3xl mb-3 opacity-50" }, null, -1),
|
|
629
|
+
q("span", { class: "font-medium" }, "Not Found", -1),
|
|
630
|
+
q("span", { class: "text-xs mt-1 opacity-75" }, "This item could not be located", -1)
|
|
631
|
+
]))) : (j(), R("div", va, [
|
|
632
|
+
l.value === "image" && y.value ? (j(), R("img", {
|
|
521
633
|
key: 0,
|
|
522
|
-
src:
|
|
523
|
-
class:
|
|
634
|
+
src: y.value,
|
|
635
|
+
class: me([
|
|
524
636
|
"w-full h-full object-cover transition-opacity duration-700 ease-in-out",
|
|
525
|
-
|
|
637
|
+
E.value && p.value ? "opacity-100" : "opacity-0"
|
|
526
638
|
]),
|
|
527
639
|
style: { position: "absolute", top: "0", left: "0" },
|
|
528
640
|
loading: "lazy",
|
|
529
641
|
decoding: "async",
|
|
530
642
|
alt: "",
|
|
531
|
-
onMouseenter:
|
|
532
|
-
onMouseleave:
|
|
533
|
-
}, null, 42,
|
|
534
|
-
|
|
643
|
+
onMouseenter: d[0] || (d[0] = (_) => P("image")),
|
|
644
|
+
onMouseleave: d[1] || (d[1] = (_) => W("image"))
|
|
645
|
+
}, null, 42, fa)) : ie("", !0),
|
|
646
|
+
l.value === "video" && M.value ? (j(), R("video", {
|
|
535
647
|
key: 1,
|
|
536
648
|
ref_key: "videoEl",
|
|
537
|
-
ref:
|
|
538
|
-
src:
|
|
539
|
-
class:
|
|
649
|
+
ref: i,
|
|
650
|
+
src: M.value,
|
|
651
|
+
class: me([
|
|
540
652
|
"w-full h-full object-cover transition-opacity duration-700 ease-in-out",
|
|
541
|
-
|
|
653
|
+
f.value && p.value ? "opacity-100" : "opacity-0"
|
|
542
654
|
]),
|
|
543
655
|
style: { position: "absolute", top: "0", left: "0" },
|
|
544
656
|
muted: "",
|
|
545
657
|
loop: "",
|
|
546
658
|
playsinline: "",
|
|
547
|
-
autoplay:
|
|
548
|
-
controls:
|
|
549
|
-
onClick:
|
|
550
|
-
onTouchend:
|
|
551
|
-
onMouseenter:
|
|
659
|
+
autoplay: k.value && v.isActive,
|
|
660
|
+
controls: k.value,
|
|
661
|
+
onClick: nt(I, ["stop"]),
|
|
662
|
+
onTouchend: nt(I, ["stop", "prevent"]),
|
|
663
|
+
onMouseenter: m,
|
|
552
664
|
onMouseleave: z,
|
|
553
|
-
onError:
|
|
554
|
-
}, null, 42,
|
|
555
|
-
!
|
|
665
|
+
onError: d[2] || (d[2] = (_) => x.value = !0)
|
|
666
|
+
}, null, 42, da)) : ie("", !0),
|
|
667
|
+
!E.value && !f.value && !w.value && !x.value ? (j(), R("div", {
|
|
556
668
|
key: 2,
|
|
557
|
-
class:
|
|
669
|
+
class: me([
|
|
558
670
|
"absolute inset-0 bg-slate-100 flex items-center justify-center transition-opacity duration-500",
|
|
559
|
-
|
|
671
|
+
p.value ? "opacity-0 pointer-events-none" : "opacity-100"
|
|
560
672
|
])
|
|
561
673
|
}, [
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
674
|
+
q("div", ha, [
|
|
675
|
+
K(a.$slots, "placeholder-icon", { mediaType: l.value }, () => [
|
|
676
|
+
q("i", {
|
|
677
|
+
class: me(l.value === "video" ? "fas fa-video text-xl text-slate-400" : "fas fa-image text-xl text-slate-400")
|
|
678
|
+
}, null, 2)
|
|
679
|
+
])
|
|
566
680
|
])
|
|
567
|
-
], 2)) :
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
681
|
+
], 2)) : ie("", !0),
|
|
682
|
+
T.value ? (j(), R("div", ma, d[4] || (d[4] = [
|
|
683
|
+
q("div", { class: "bg-white/90 backdrop-blur-sm rounded-full px-3 py-1.5 shadow-sm" }, [
|
|
684
|
+
q("div", { class: "animate-spin rounded-full h-4 w-4 border-b-2 border-blue-500" })
|
|
571
685
|
], -1)
|
|
572
|
-
]))) :
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
class:
|
|
686
|
+
]))) : ie("", !0),
|
|
687
|
+
l.value === "image" && w.value || l.value === "video" && x.value ? (j(), R("div", ga, [
|
|
688
|
+
q("i", {
|
|
689
|
+
class: me(l.value === "video" ? "fas fa-video text-2xl mb-2 opacity-50" : "fas fa-image text-2xl mb-2 opacity-50")
|
|
576
690
|
}, null, 2),
|
|
577
|
-
|
|
578
|
-
])) :
|
|
691
|
+
q("span", null, "Failed to load " + qe(l.value), 1)
|
|
692
|
+
])) : ie("", !0)
|
|
579
693
|
]))
|
|
580
694
|
])
|
|
581
695
|
])
|
|
582
696
|
]),
|
|
583
|
-
|
|
697
|
+
a.footerHeight > 0 ? (j(), R("div", {
|
|
584
698
|
key: 1,
|
|
585
699
|
class: "relative z-10",
|
|
586
|
-
style:
|
|
700
|
+
style: He({ height: `${a.footerHeight}px` })
|
|
587
701
|
}, [
|
|
588
|
-
|
|
589
|
-
item:
|
|
590
|
-
remove:
|
|
591
|
-
imageLoaded:
|
|
592
|
-
imageError:
|
|
593
|
-
videoLoaded:
|
|
702
|
+
K(a.$slots, "footer", {
|
|
703
|
+
item: a.item,
|
|
704
|
+
remove: a.remove,
|
|
705
|
+
imageLoaded: E.value,
|
|
706
|
+
imageError: w.value,
|
|
707
|
+
videoLoaded: f.value,
|
|
594
708
|
videoError: x.value,
|
|
595
|
-
showNotFound:
|
|
596
|
-
isLoading:
|
|
597
|
-
mediaType:
|
|
709
|
+
showNotFound: h.value,
|
|
710
|
+
isLoading: T.value,
|
|
711
|
+
mediaType: l.value
|
|
598
712
|
})
|
|
599
|
-
], 4)) :
|
|
713
|
+
], 4)) : ie("", !0)
|
|
600
714
|
], 512));
|
|
601
715
|
}
|
|
602
|
-
})
|
|
716
|
+
});
|
|
717
|
+
function ke(t) {
|
|
718
|
+
return t instanceof Error ? t : new Error(String(t));
|
|
719
|
+
}
|
|
720
|
+
const pa = { class: "w-full h-full flex items-center justify-center p-4" }, ya = { class: "w-full h-full max-w-full max-h-full relative" }, wa = {
|
|
603
721
|
key: 0,
|
|
604
722
|
class: "w-full py-8 text-center"
|
|
605
|
-
},
|
|
723
|
+
}, xa = {
|
|
606
724
|
key: 1,
|
|
607
725
|
class: "w-full py-8 text-center"
|
|
608
|
-
},
|
|
726
|
+
}, ba = { class: "text-red-500 dark:text-red-400" }, Ma = {
|
|
609
727
|
key: 0,
|
|
610
728
|
class: "w-full py-8 text-center"
|
|
611
729
|
}, Ta = {
|
|
612
730
|
key: 1,
|
|
613
731
|
class: "w-full py-8 text-center"
|
|
614
|
-
}, Ia = { class: "text-red-500 dark:text-red-400" },
|
|
732
|
+
}, Ia = { class: "text-red-500 dark:text-red-400" }, Ea = /* @__PURE__ */ ft({
|
|
615
733
|
__name: "Masonry",
|
|
616
734
|
props: {
|
|
617
735
|
getNextPage: {
|
|
@@ -729,8 +847,8 @@ const ua = { class: "flex-1 relative min-h-0" }, va = { class: "w-full h-full ro
|
|
|
729
847
|
"item:mouse-enter",
|
|
730
848
|
"item:mouse-leave"
|
|
731
849
|
],
|
|
732
|
-
setup(t, { expose:
|
|
733
|
-
const
|
|
850
|
+
setup(t, { expose: c, emit: v }) {
|
|
851
|
+
const r = t, E = {
|
|
734
852
|
sizes: { base: 1, sm: 2, md: 3, lg: 4, xl: 5, "2xl": 6 },
|
|
735
853
|
gutterX: 10,
|
|
736
854
|
gutterY: 10,
|
|
@@ -739,19 +857,19 @@ const ua = { class: "flex-1 relative min-h-0" }, va = { class: "w-full h-full ro
|
|
|
739
857
|
paddingLeft: 0,
|
|
740
858
|
paddingRight: 0,
|
|
741
859
|
placement: "masonry"
|
|
742
|
-
},
|
|
860
|
+
}, w = ae(() => {
|
|
743
861
|
var e;
|
|
744
862
|
return {
|
|
745
|
-
...
|
|
746
|
-
...
|
|
863
|
+
...E,
|
|
864
|
+
...r.layout,
|
|
747
865
|
sizes: {
|
|
748
|
-
...
|
|
749
|
-
...((e =
|
|
866
|
+
...E.sizes,
|
|
867
|
+
...((e = r.layout) == null ? void 0 : e.sizes) || {}
|
|
750
868
|
}
|
|
751
869
|
};
|
|
752
|
-
}),
|
|
753
|
-
let
|
|
754
|
-
function
|
|
870
|
+
}), y = H(null), f = H(typeof window < "u" ? window.innerWidth : 1024), x = H(typeof window < "u" ? window.innerHeight : 768), M = H(null);
|
|
871
|
+
let s = null;
|
|
872
|
+
function T(e) {
|
|
755
873
|
return {
|
|
756
874
|
sm: 640,
|
|
757
875
|
md: 768,
|
|
@@ -760,48 +878,36 @@ const ua = { class: "flex-1 relative min-h-0" }, va = { class: "w-full h-full ro
|
|
|
760
878
|
"2xl": 1536
|
|
761
879
|
}[e] || 768;
|
|
762
880
|
}
|
|
763
|
-
const
|
|
764
|
-
if (
|
|
765
|
-
if (
|
|
766
|
-
const e = typeof
|
|
767
|
-
return
|
|
768
|
-
}),
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
if (!d.value || !A.value) return null;
|
|
774
|
-
const e = n.value + 1;
|
|
775
|
-
return e >= o.value.length ? null : o.value[e] || null;
|
|
776
|
-
}), U = te(() => {
|
|
777
|
-
if (!d.value || !A.value) return null;
|
|
778
|
-
const e = n.value - 1;
|
|
779
|
-
return e < 0 ? null : o.value[e] || null;
|
|
780
|
-
}), g = c, o = te({
|
|
781
|
-
get: () => i.items,
|
|
782
|
-
set: (e) => g("update:items", e)
|
|
783
|
-
}), P = T(7), y = T(null), b = T([]), H = T(null), h = T(!1), z = T(0), w = T(!1), M = T(null), q = te(() => na(u.value)), n = T(0), f = T(0), $ = T(!1), R = T(0), X = T(0), Y = T(null), N = T(/* @__PURE__ */ new Set());
|
|
784
|
-
function ie(e) {
|
|
881
|
+
const p = ae(() => {
|
|
882
|
+
if (r.layoutMode === "masonry") return !1;
|
|
883
|
+
if (r.layoutMode === "swipe") return !0;
|
|
884
|
+
const e = typeof r.mobileBreakpoint == "string" ? T(r.mobileBreakpoint) : r.mobileBreakpoint;
|
|
885
|
+
return f.value < e;
|
|
886
|
+
}), b = v, i = ae({
|
|
887
|
+
get: () => r.items,
|
|
888
|
+
set: (e) => b("update:items", e)
|
|
889
|
+
}), L = H(7), l = H(null), h = H([]), k = H(null), P = H(!1), W = H(0), I = H(!1), m = H(null), z = ae(() => ta(f.value)), $ = H(/* @__PURE__ */ new Set());
|
|
890
|
+
function C(e) {
|
|
785
891
|
return typeof e == "number" && Number.isFinite(e) && e > 0;
|
|
786
892
|
}
|
|
787
|
-
function
|
|
893
|
+
function B(e, n) {
|
|
788
894
|
try {
|
|
789
895
|
if (!Array.isArray(e) || e.length === 0) return;
|
|
790
|
-
const
|
|
791
|
-
if (
|
|
792
|
-
const
|
|
793
|
-
for (const
|
|
794
|
-
const F = (
|
|
795
|
-
|
|
896
|
+
const o = e.filter((u) => !C(u == null ? void 0 : u.width) || !C(u == null ? void 0 : u.height));
|
|
897
|
+
if (o.length === 0) return;
|
|
898
|
+
const g = [];
|
|
899
|
+
for (const u of o) {
|
|
900
|
+
const F = (u == null ? void 0 : u.id) ?? `idx:${e.indexOf(u)}`;
|
|
901
|
+
$.value.has(F) || ($.value.add(F), g.push(F));
|
|
796
902
|
}
|
|
797
|
-
if (
|
|
798
|
-
const
|
|
903
|
+
if (g.length > 0) {
|
|
904
|
+
const u = g.slice(0, 10);
|
|
799
905
|
console.warn(
|
|
800
906
|
"[Masonry] Items missing width/height detected:",
|
|
801
907
|
{
|
|
802
|
-
context:
|
|
803
|
-
count:
|
|
804
|
-
sampleIds:
|
|
908
|
+
context: n,
|
|
909
|
+
count: g.length,
|
|
910
|
+
sampleIds: u,
|
|
805
911
|
hint: "Ensure each item has positive width and height. Consider providing fallbacks (e.g., 512x512) at the data layer."
|
|
806
912
|
}
|
|
807
913
|
);
|
|
@@ -809,515 +915,534 @@ const ua = { class: "flex-1 relative min-h-0" }, va = { class: "w-full h-full ro
|
|
|
809
915
|
} catch {
|
|
810
916
|
}
|
|
811
917
|
}
|
|
812
|
-
const
|
|
918
|
+
const a = H(0), d = H(0), _ = r.virtualBufferPx, D = H(!1), ne = H({
|
|
813
919
|
distanceToTrigger: 0,
|
|
814
920
|
isNearTrigger: !1
|
|
815
|
-
}),
|
|
816
|
-
if (!
|
|
817
|
-
const { scrollTop:
|
|
818
|
-
|
|
819
|
-
distanceToTrigger: Math.round(
|
|
820
|
-
isNearTrigger:
|
|
921
|
+
}), X = (e) => {
|
|
922
|
+
if (!l.value) return;
|
|
923
|
+
const { scrollTop: n, clientHeight: o } = l.value, g = n + o, u = e ?? Ye(i.value, L.value), F = u.length ? Math.max(...u) : 0, S = typeof r.loadThresholdPx == "number" ? r.loadThresholdPx : 200, O = S >= 0 ? Math.max(0, F - S) : Math.max(0, F + S), Q = Math.max(0, O - g), re = Q <= 100;
|
|
924
|
+
ne.value = {
|
|
925
|
+
distanceToTrigger: Math.round(Q),
|
|
926
|
+
isNearTrigger: re
|
|
821
927
|
};
|
|
822
|
-
}, { onEnter:
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
928
|
+
}, { onEnter: A, onBeforeEnter: ue, onBeforeLeave: ce, onLeave: N } = oa(
|
|
929
|
+
{ container: l },
|
|
930
|
+
{ leaveDurationMs: r.leaveDurationMs }
|
|
931
|
+
);
|
|
932
|
+
function G(e, n) {
|
|
933
|
+
if (D.value) {
|
|
934
|
+
const o = parseInt(e.dataset.left || "0", 10), g = parseInt(e.dataset.top || "0", 10);
|
|
935
|
+
e.style.transition = "none", e.style.opacity = "1", e.style.transform = `translate3d(${o}px, ${g}px, 0) scale(1)`, e.style.removeProperty("--masonry-opacity-delay"), requestAnimationFrame(() => {
|
|
936
|
+
e.style.transition = "", n();
|
|
828
937
|
});
|
|
829
938
|
} else
|
|
830
|
-
|
|
939
|
+
A(e, n);
|
|
831
940
|
}
|
|
832
|
-
function
|
|
833
|
-
if (
|
|
834
|
-
const
|
|
835
|
-
e.style.transition = "none", e.style.opacity = "1", e.style.transform = `translate3d(${
|
|
941
|
+
function Z(e) {
|
|
942
|
+
if (D.value) {
|
|
943
|
+
const n = parseInt(e.dataset.left || "0", 10), o = parseInt(e.dataset.top || "0", 10);
|
|
944
|
+
e.style.transition = "none", e.style.opacity = "1", e.style.transform = `translate3d(${n}px, ${o}px, 0) scale(1)`, e.style.removeProperty("--masonry-opacity-delay");
|
|
836
945
|
} else
|
|
837
|
-
|
|
946
|
+
ue(e);
|
|
838
947
|
}
|
|
839
|
-
function
|
|
840
|
-
|
|
948
|
+
function ve(e) {
|
|
949
|
+
D.value || ce(e);
|
|
841
950
|
}
|
|
842
|
-
function
|
|
843
|
-
|
|
951
|
+
function ee(e, n) {
|
|
952
|
+
D.value ? n() : N(e, n);
|
|
844
953
|
}
|
|
845
|
-
const
|
|
846
|
-
const e =
|
|
847
|
-
return !
|
|
848
|
-
|
|
849
|
-
|
|
954
|
+
const ge = ae(() => {
|
|
955
|
+
const e = a.value - _, n = a.value + d.value + _, o = i.value;
|
|
956
|
+
return !o || o.length === 0 ? [] : o.filter((u) => {
|
|
957
|
+
if (typeof u.top != "number" || typeof u.columnHeight != "number")
|
|
958
|
+
return !0;
|
|
959
|
+
const F = u.top;
|
|
960
|
+
return u.top + u.columnHeight >= e && F <= n;
|
|
850
961
|
});
|
|
851
|
-
}), { handleScroll:
|
|
852
|
-
container:
|
|
853
|
-
masonry:
|
|
854
|
-
columns:
|
|
855
|
-
containerHeight:
|
|
856
|
-
isLoading:
|
|
857
|
-
pageSize:
|
|
858
|
-
refreshLayout:
|
|
962
|
+
}), { handleScroll: le } = ra({
|
|
963
|
+
container: l,
|
|
964
|
+
masonry: i,
|
|
965
|
+
columns: L,
|
|
966
|
+
containerHeight: W,
|
|
967
|
+
isLoading: P,
|
|
968
|
+
pageSize: r.pageSize,
|
|
969
|
+
refreshLayout: J,
|
|
859
970
|
setItemsRaw: (e) => {
|
|
860
|
-
|
|
971
|
+
i.value = e;
|
|
861
972
|
},
|
|
862
|
-
loadNext:
|
|
863
|
-
loadThresholdPx:
|
|
973
|
+
loadNext: xe,
|
|
974
|
+
loadThresholdPx: r.loadThresholdPx
|
|
864
975
|
});
|
|
865
|
-
function
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
})) :
|
|
976
|
+
function pt(e) {
|
|
977
|
+
M.value = e, e ? (e.width !== void 0 && (f.value = e.width), e.height !== void 0 && (x.value = e.height), !p.value && l.value && i.value.length > 0 && U(() => {
|
|
978
|
+
L.value = we(w.value, f.value), J(i.value), X();
|
|
979
|
+
})) : y.value && (f.value = y.value.clientWidth, x.value = y.value.clientHeight);
|
|
869
980
|
}
|
|
870
|
-
|
|
871
|
-
isLoading:
|
|
872
|
-
refreshLayout:
|
|
981
|
+
c({
|
|
982
|
+
isLoading: P,
|
|
983
|
+
refreshLayout: J,
|
|
873
984
|
// Container dimensions (wrapper element)
|
|
874
|
-
containerWidth:
|
|
985
|
+
containerWidth: f,
|
|
875
986
|
containerHeight: x,
|
|
876
987
|
// Masonry content height (for backward compatibility, old containerHeight)
|
|
877
|
-
contentHeight:
|
|
988
|
+
contentHeight: W,
|
|
878
989
|
// Current page
|
|
879
|
-
currentPage:
|
|
990
|
+
currentPage: k,
|
|
880
991
|
// End of list tracking
|
|
881
|
-
hasReachedEnd:
|
|
992
|
+
hasReachedEnd: I,
|
|
882
993
|
// Load error tracking
|
|
883
|
-
loadError:
|
|
994
|
+
loadError: m,
|
|
884
995
|
// Set fixed dimensions (overrides ResizeObserver)
|
|
885
|
-
setFixedDimensions:
|
|
886
|
-
remove:
|
|
887
|
-
removeMany:
|
|
888
|
-
removeAll:
|
|
889
|
-
restore:
|
|
890
|
-
restoreMany:
|
|
891
|
-
loadNext:
|
|
892
|
-
loadPage:
|
|
893
|
-
refreshCurrentPage:
|
|
894
|
-
reset:
|
|
996
|
+
setFixedDimensions: pt,
|
|
997
|
+
remove: Me,
|
|
998
|
+
removeMany: wt,
|
|
999
|
+
removeAll: Tt,
|
|
1000
|
+
restore: xt,
|
|
1001
|
+
restoreMany: bt,
|
|
1002
|
+
loadNext: xe,
|
|
1003
|
+
loadPage: We,
|
|
1004
|
+
refreshCurrentPage: ze,
|
|
1005
|
+
reset: Et,
|
|
895
1006
|
destroy: Lt,
|
|
896
|
-
init:
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
1007
|
+
init: et,
|
|
1008
|
+
restoreItems: tt,
|
|
1009
|
+
paginationHistory: h,
|
|
1010
|
+
cancelLoad: Oe,
|
|
1011
|
+
scrollToTop: Ke,
|
|
1012
|
+
scrollTo: Mt,
|
|
1013
|
+
totalItems: ae(() => i.value.length),
|
|
1014
|
+
currentBreakpoint: z
|
|
902
1015
|
});
|
|
903
|
-
function
|
|
904
|
-
const
|
|
905
|
-
let
|
|
906
|
-
if (
|
|
907
|
-
const { scrollTop:
|
|
908
|
-
|
|
1016
|
+
function Fe(e) {
|
|
1017
|
+
const n = aa(e);
|
|
1018
|
+
let o = 0;
|
|
1019
|
+
if (l.value) {
|
|
1020
|
+
const { scrollTop: g, clientHeight: u } = l.value;
|
|
1021
|
+
o = g + u + 100;
|
|
909
1022
|
}
|
|
910
|
-
|
|
1023
|
+
W.value = Math.max(n, o);
|
|
911
1024
|
}
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
1025
|
+
let fe = [];
|
|
1026
|
+
function J(e) {
|
|
1027
|
+
var u, F;
|
|
1028
|
+
if (p.value) {
|
|
1029
|
+
i.value = e;
|
|
915
1030
|
return;
|
|
916
1031
|
}
|
|
917
|
-
if (!
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
1032
|
+
if (!l.value) return;
|
|
1033
|
+
if (B(e, "refreshLayout"), e.length > 1e3 && fe.length > e.length && fe.length - e.length < 100) {
|
|
1034
|
+
let S = !0;
|
|
1035
|
+
for (let O = 0; O < e.length; O++)
|
|
1036
|
+
if (((u = e[O]) == null ? void 0 : u.id) !== ((F = fe[O]) == null ? void 0 : F.id)) {
|
|
1037
|
+
S = !1;
|
|
1038
|
+
break;
|
|
1039
|
+
}
|
|
1040
|
+
if (S) {
|
|
1041
|
+
const O = e.map((Q, re) => ({
|
|
1042
|
+
...fe[re],
|
|
1043
|
+
originalIndex: re
|
|
1044
|
+
}));
|
|
1045
|
+
Fe(O), i.value = O, fe = O;
|
|
1046
|
+
return;
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
const o = e.map((S, O) => ({
|
|
1050
|
+
...S,
|
|
1051
|
+
originalIndex: O
|
|
1052
|
+
})), g = l.value;
|
|
1053
|
+
if (M.value && M.value.width !== void 0) {
|
|
1054
|
+
const S = g.style.width, O = g.style.boxSizing;
|
|
1055
|
+
g.style.boxSizing = "border-box", g.style.width = `${M.value.width}px`, g.offsetWidth;
|
|
1056
|
+
const Q = rt(o, g, L.value, w.value);
|
|
1057
|
+
g.style.width = S, g.style.boxSizing = O, Fe(Q), i.value = Q, fe = Q;
|
|
928
1058
|
} else {
|
|
929
|
-
const
|
|
930
|
-
|
|
1059
|
+
const S = rt(o, g, L.value, w.value);
|
|
1060
|
+
Fe(S), i.value = S, fe = S;
|
|
931
1061
|
}
|
|
932
1062
|
}
|
|
933
|
-
function
|
|
934
|
-
return new Promise((
|
|
935
|
-
const
|
|
936
|
-
|
|
1063
|
+
function Ue(e, n) {
|
|
1064
|
+
return new Promise((o) => {
|
|
1065
|
+
const g = Math.max(0, e | 0), u = Date.now();
|
|
1066
|
+
n(g, g);
|
|
937
1067
|
const F = setInterval(() => {
|
|
938
|
-
if (
|
|
939
|
-
clearInterval(F),
|
|
1068
|
+
if (V.value) {
|
|
1069
|
+
clearInterval(F), o();
|
|
940
1070
|
return;
|
|
941
1071
|
}
|
|
942
|
-
const
|
|
943
|
-
|
|
1072
|
+
const S = Date.now() - u, O = Math.max(0, g - S);
|
|
1073
|
+
n(O, g), O <= 0 && (clearInterval(F), o());
|
|
944
1074
|
}, 100);
|
|
945
1075
|
});
|
|
946
1076
|
}
|
|
947
|
-
async function
|
|
1077
|
+
async function Se(e) {
|
|
948
1078
|
try {
|
|
949
|
-
const
|
|
950
|
-
return
|
|
951
|
-
} catch (
|
|
952
|
-
throw
|
|
1079
|
+
const n = await yt(() => r.getNextPage(e));
|
|
1080
|
+
return J([...i.value, ...n.items]), n;
|
|
1081
|
+
} catch (n) {
|
|
1082
|
+
throw n;
|
|
953
1083
|
}
|
|
954
1084
|
}
|
|
955
|
-
async function
|
|
956
|
-
let
|
|
957
|
-
const
|
|
958
|
-
let
|
|
1085
|
+
async function yt(e) {
|
|
1086
|
+
let n = 0;
|
|
1087
|
+
const o = r.retryMaxAttempts;
|
|
1088
|
+
let g = r.retryInitialDelayMs;
|
|
959
1089
|
for (; ; )
|
|
960
1090
|
try {
|
|
961
|
-
const
|
|
962
|
-
return
|
|
963
|
-
} catch (
|
|
964
|
-
if (
|
|
965
|
-
throw
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
}),
|
|
1091
|
+
const u = await e();
|
|
1092
|
+
return n > 0 && b("retry:stop", { attempt: n, success: !0 }), u;
|
|
1093
|
+
} catch (u) {
|
|
1094
|
+
if (n++, n > o)
|
|
1095
|
+
throw b("retry:stop", { attempt: n - 1, success: !1 }), u;
|
|
1096
|
+
b("retry:start", { attempt: n, max: o, totalMs: g }), await Ue(g, (F, S) => {
|
|
1097
|
+
b("retry:tick", { attempt: n, remainingMs: F, totalMs: S });
|
|
1098
|
+
}), g += r.retryBackoffStepMs;
|
|
969
1099
|
}
|
|
970
1100
|
}
|
|
971
|
-
async function
|
|
972
|
-
if (!
|
|
973
|
-
|
|
1101
|
+
async function We(e) {
|
|
1102
|
+
if (!P.value) {
|
|
1103
|
+
V.value = !1, P.value = !0, I.value = !1, m.value = null;
|
|
974
1104
|
try {
|
|
975
|
-
const
|
|
976
|
-
if (
|
|
977
|
-
const
|
|
978
|
-
return
|
|
979
|
-
} catch (
|
|
980
|
-
throw
|
|
1105
|
+
const n = i.value.length;
|
|
1106
|
+
if (V.value) return;
|
|
1107
|
+
const o = await Se(e);
|
|
1108
|
+
return V.value ? void 0 : (m.value = null, k.value = e, h.value.push(o.nextPage), o.nextPage == null && (I.value = !0), await Te(n), o);
|
|
1109
|
+
} catch (n) {
|
|
1110
|
+
throw m.value = ke(n), n;
|
|
981
1111
|
} finally {
|
|
982
|
-
|
|
1112
|
+
P.value = !1;
|
|
983
1113
|
}
|
|
984
1114
|
}
|
|
985
1115
|
}
|
|
986
|
-
async function
|
|
987
|
-
if (!
|
|
988
|
-
|
|
1116
|
+
async function xe() {
|
|
1117
|
+
if (!P.value && !I.value) {
|
|
1118
|
+
V.value = !1, P.value = !0, m.value = null;
|
|
989
1119
|
try {
|
|
990
|
-
const e =
|
|
991
|
-
if (
|
|
992
|
-
const
|
|
993
|
-
if (
|
|
994
|
-
|
|
1120
|
+
const e = i.value.length;
|
|
1121
|
+
if (V.value) return;
|
|
1122
|
+
const n = h.value[h.value.length - 1];
|
|
1123
|
+
if (n == null) {
|
|
1124
|
+
I.value = !0, P.value = !1;
|
|
995
1125
|
return;
|
|
996
1126
|
}
|
|
997
|
-
const
|
|
998
|
-
return
|
|
1127
|
+
const o = await Se(n);
|
|
1128
|
+
return V.value ? void 0 : (m.value = null, k.value = n, h.value.push(o.nextPage), o.nextPage == null && (I.value = !0), await Te(e), o);
|
|
999
1129
|
} catch (e) {
|
|
1000
|
-
throw
|
|
1130
|
+
throw m.value = ke(e), e;
|
|
1001
1131
|
} finally {
|
|
1002
|
-
|
|
1132
|
+
P.value = !1;
|
|
1003
1133
|
}
|
|
1004
1134
|
}
|
|
1005
1135
|
}
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1136
|
+
const te = ia({
|
|
1137
|
+
useSwipeMode: p,
|
|
1138
|
+
masonry: i,
|
|
1139
|
+
isLoading: P,
|
|
1140
|
+
loadNext: xe,
|
|
1141
|
+
loadPage: We,
|
|
1142
|
+
paginationHistory: h
|
|
1143
|
+
}), pe = te.currentSwipeIndex, be = te.swipeOffset, Pe = te.isDragging, de = te.swipeContainer, _e = te.handleTouchStart, Xe = te.handleTouchMove, Ge = te.handleTouchEnd, Je = te.handleMouseDown, Be = te.handleMouseMove, De = te.handleMouseUp, Ae = te.snapToCurrentItem;
|
|
1144
|
+
async function ze() {
|
|
1145
|
+
if (!P.value) {
|
|
1146
|
+
V.value = !1, P.value = !0;
|
|
1009
1147
|
try {
|
|
1010
|
-
const e =
|
|
1148
|
+
const e = k.value;
|
|
1011
1149
|
if (e == null) {
|
|
1012
|
-
console.warn("[Masonry] No current page to refresh - currentPage:",
|
|
1150
|
+
console.warn("[Masonry] No current page to refresh - currentPage:", k.value, "paginationHistory:", h.value);
|
|
1013
1151
|
return;
|
|
1014
1152
|
}
|
|
1015
|
-
|
|
1016
|
-
const
|
|
1017
|
-
if (
|
|
1018
|
-
|
|
1019
|
-
const
|
|
1020
|
-
return await
|
|
1153
|
+
i.value = [], W.value = 0, I.value = !1, m.value = null, h.value = [e], await U();
|
|
1154
|
+
const n = await Se(e);
|
|
1155
|
+
if (V.value) return;
|
|
1156
|
+
m.value = null, k.value = e, h.value.push(n.nextPage), n.nextPage == null && (I.value = !0);
|
|
1157
|
+
const o = i.value.length;
|
|
1158
|
+
return await Te(o), n;
|
|
1021
1159
|
} catch (e) {
|
|
1022
|
-
throw
|
|
1160
|
+
throw m.value = ke(e), e;
|
|
1023
1161
|
} finally {
|
|
1024
|
-
|
|
1162
|
+
P.value = !1;
|
|
1025
1163
|
}
|
|
1026
1164
|
}
|
|
1027
1165
|
}
|
|
1028
|
-
async function
|
|
1029
|
-
const
|
|
1030
|
-
if (
|
|
1031
|
-
if (
|
|
1032
|
-
await
|
|
1166
|
+
async function Me(e) {
|
|
1167
|
+
const n = i.value.filter((o) => o.id !== e.id);
|
|
1168
|
+
if (i.value = n, await U(), n.length === 0 && h.value.length > 0) {
|
|
1169
|
+
if (r.autoRefreshOnEmpty)
|
|
1170
|
+
await ze();
|
|
1033
1171
|
else
|
|
1034
1172
|
try {
|
|
1035
|
-
await
|
|
1173
|
+
await xe(), await Te(0, !0);
|
|
1036
1174
|
} catch {
|
|
1037
1175
|
}
|
|
1038
1176
|
return;
|
|
1039
1177
|
}
|
|
1040
|
-
await new Promise((
|
|
1041
|
-
|
|
1178
|
+
await new Promise((o) => requestAnimationFrame(() => o())), requestAnimationFrame(() => {
|
|
1179
|
+
J(n);
|
|
1042
1180
|
});
|
|
1043
1181
|
}
|
|
1044
|
-
async function
|
|
1182
|
+
async function wt(e) {
|
|
1045
1183
|
if (!e || e.length === 0) return;
|
|
1046
|
-
const
|
|
1047
|
-
if (
|
|
1048
|
-
if (
|
|
1049
|
-
await
|
|
1184
|
+
const n = new Set(e.map((g) => g.id)), o = i.value.filter((g) => !n.has(g.id));
|
|
1185
|
+
if (i.value = o, await U(), o.length === 0 && h.value.length > 0) {
|
|
1186
|
+
if (r.autoRefreshOnEmpty)
|
|
1187
|
+
await ze();
|
|
1050
1188
|
else
|
|
1051
1189
|
try {
|
|
1052
|
-
await
|
|
1190
|
+
await xe(), await Te(0, !0);
|
|
1053
1191
|
} catch {
|
|
1054
1192
|
}
|
|
1055
1193
|
return;
|
|
1056
1194
|
}
|
|
1057
|
-
await new Promise((
|
|
1058
|
-
|
|
1195
|
+
await new Promise((g) => requestAnimationFrame(() => g())), requestAnimationFrame(() => {
|
|
1196
|
+
J(o);
|
|
1059
1197
|
});
|
|
1060
1198
|
}
|
|
1061
|
-
async function
|
|
1199
|
+
async function xt(e, n) {
|
|
1062
1200
|
if (!e) return;
|
|
1063
|
-
const
|
|
1064
|
-
if (
|
|
1065
|
-
const
|
|
1066
|
-
|
|
1067
|
-
|
|
1201
|
+
const o = i.value;
|
|
1202
|
+
if (o.findIndex((S) => S.id === e.id) !== -1) return;
|
|
1203
|
+
const u = [...o], F = Math.min(n, u.length);
|
|
1204
|
+
u.splice(F, 0, e), i.value = u, await U(), p.value || (await new Promise((S) => requestAnimationFrame(() => S())), requestAnimationFrame(() => {
|
|
1205
|
+
J(u);
|
|
1068
1206
|
}));
|
|
1069
1207
|
}
|
|
1070
|
-
async function
|
|
1071
|
-
var
|
|
1208
|
+
async function bt(e, n) {
|
|
1209
|
+
var at;
|
|
1072
1210
|
if (!e || e.length === 0) return;
|
|
1073
|
-
if (!
|
|
1211
|
+
if (!n || n.length !== e.length) {
|
|
1074
1212
|
console.warn("[Masonry] restoreMany: items and indices arrays must have the same length");
|
|
1075
1213
|
return;
|
|
1076
1214
|
}
|
|
1077
|
-
const
|
|
1078
|
-
for (let
|
|
1079
|
-
|
|
1080
|
-
if (
|
|
1215
|
+
const o = i.value, g = new Set(o.map((Y) => Y.id)), u = [];
|
|
1216
|
+
for (let Y = 0; Y < e.length; Y++)
|
|
1217
|
+
g.has((at = e[Y]) == null ? void 0 : at.id) || u.push({ item: e[Y], index: n[Y] });
|
|
1218
|
+
if (u.length === 0) return;
|
|
1081
1219
|
const F = /* @__PURE__ */ new Map();
|
|
1082
|
-
for (const { item:
|
|
1083
|
-
F.set(
|
|
1084
|
-
const
|
|
1085
|
-
let
|
|
1086
|
-
for (let
|
|
1087
|
-
F.has(
|
|
1088
|
-
for (;
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1220
|
+
for (const { item: Y, index: kt } of u)
|
|
1221
|
+
F.set(kt, Y);
|
|
1222
|
+
const S = u.length > 0 ? Math.max(...u.map(({ index: Y }) => Y)) : -1, O = Math.max(o.length - 1, S), Q = [];
|
|
1223
|
+
let re = 0;
|
|
1224
|
+
for (let Y = 0; Y <= O; Y++)
|
|
1225
|
+
F.has(Y) ? Q.push(F.get(Y)) : re < o.length && (Q.push(o[re]), re++);
|
|
1226
|
+
for (; re < o.length; )
|
|
1227
|
+
Q.push(o[re]), re++;
|
|
1228
|
+
i.value = Q, await U(), p.value || (await new Promise((Y) => requestAnimationFrame(() => Y())), requestAnimationFrame(() => {
|
|
1229
|
+
J(Q);
|
|
1092
1230
|
}));
|
|
1093
1231
|
}
|
|
1094
|
-
function
|
|
1095
|
-
|
|
1232
|
+
function Ke(e) {
|
|
1233
|
+
l.value && l.value.scrollTo({
|
|
1096
1234
|
top: 0,
|
|
1097
1235
|
behavior: (e == null ? void 0 : e.behavior) ?? "smooth",
|
|
1098
1236
|
...e
|
|
1099
1237
|
});
|
|
1100
1238
|
}
|
|
1101
|
-
|
|
1102
|
-
|
|
1239
|
+
function Mt(e) {
|
|
1240
|
+
l.value && (l.value.scrollTo({
|
|
1241
|
+
top: e.top ?? l.value.scrollTop,
|
|
1242
|
+
left: e.left ?? l.value.scrollLeft,
|
|
1243
|
+
behavior: e.behavior ?? "auto"
|
|
1244
|
+
}), l.value && (a.value = l.value.scrollTop, d.value = l.value.clientHeight || window.innerHeight));
|
|
1245
|
+
}
|
|
1246
|
+
async function Tt() {
|
|
1247
|
+
Ke({ behavior: "smooth" }), i.value = [], x.value = 0, await U(), b("remove-all:complete");
|
|
1103
1248
|
}
|
|
1104
|
-
function
|
|
1105
|
-
|
|
1249
|
+
function It() {
|
|
1250
|
+
L.value = we(w.value, f.value), J(i.value), l.value && (a.value = l.value.scrollTop, d.value = l.value.clientHeight);
|
|
1106
1251
|
}
|
|
1107
|
-
let
|
|
1108
|
-
const
|
|
1109
|
-
async function
|
|
1110
|
-
if (!
|
|
1111
|
-
const
|
|
1112
|
-
if (!
|
|
1113
|
-
if (
|
|
1114
|
-
|
|
1252
|
+
let oe = !1;
|
|
1253
|
+
const V = H(!1);
|
|
1254
|
+
async function Te(e, n = !1) {
|
|
1255
|
+
if (!n && !r.backfillEnabled || oe || V.value || I.value) return;
|
|
1256
|
+
const o = (e || 0) + (r.pageSize || 0);
|
|
1257
|
+
if (!r.pageSize || r.pageSize <= 0) return;
|
|
1258
|
+
if (h.value[h.value.length - 1] == null) {
|
|
1259
|
+
I.value = !0;
|
|
1115
1260
|
return;
|
|
1116
1261
|
}
|
|
1117
|
-
if (!(
|
|
1118
|
-
|
|
1262
|
+
if (!(i.value.length >= o)) {
|
|
1263
|
+
oe = !0, P.value = !0;
|
|
1119
1264
|
try {
|
|
1120
|
-
let
|
|
1121
|
-
for (
|
|
1122
|
-
|
|
1123
|
-
fetched:
|
|
1124
|
-
target:
|
|
1125
|
-
calls:
|
|
1126
|
-
remainingMs:
|
|
1127
|
-
totalMs:
|
|
1265
|
+
let u = 0;
|
|
1266
|
+
for (b("backfill:start", { target: o, fetched: i.value.length, calls: u }); i.value.length < o && u < r.backfillMaxCalls && h.value[h.value.length - 1] != null && !V.value && !I.value && oe && (await Ue(r.backfillDelayMs, (S, O) => {
|
|
1267
|
+
b("backfill:tick", {
|
|
1268
|
+
fetched: i.value.length,
|
|
1269
|
+
target: o,
|
|
1270
|
+
calls: u,
|
|
1271
|
+
remainingMs: S,
|
|
1272
|
+
totalMs: O
|
|
1128
1273
|
});
|
|
1129
|
-
}), !
|
|
1130
|
-
const F =
|
|
1274
|
+
}), !(V.value || !oe)); ) {
|
|
1275
|
+
const F = h.value[h.value.length - 1];
|
|
1131
1276
|
if (F == null) {
|
|
1132
|
-
|
|
1277
|
+
I.value = !0;
|
|
1133
1278
|
break;
|
|
1134
1279
|
}
|
|
1135
1280
|
try {
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1281
|
+
if (V.value || !oe) break;
|
|
1282
|
+
const S = await Se(F);
|
|
1283
|
+
if (V.value || !oe) break;
|
|
1284
|
+
m.value = null, h.value.push(S.nextPage), S.nextPage == null && (I.value = !0);
|
|
1285
|
+
} catch (S) {
|
|
1286
|
+
if (V.value || !oe) break;
|
|
1287
|
+
m.value = ke(S);
|
|
1141
1288
|
}
|
|
1142
|
-
|
|
1289
|
+
u++;
|
|
1143
1290
|
}
|
|
1144
|
-
|
|
1291
|
+
b("backfill:stop", { fetched: i.value.length, calls: u });
|
|
1145
1292
|
} finally {
|
|
1146
|
-
|
|
1293
|
+
oe = !1, P.value = !1;
|
|
1147
1294
|
}
|
|
1148
1295
|
}
|
|
1149
1296
|
}
|
|
1150
|
-
function
|
|
1151
|
-
|
|
1297
|
+
function Oe() {
|
|
1298
|
+
const e = oe;
|
|
1299
|
+
V.value = !0, P.value = !1, oe = !1, e && b("backfill:stop", { fetched: i.value.length, calls: 0, cancelled: !0 });
|
|
1152
1300
|
}
|
|
1153
|
-
function
|
|
1154
|
-
|
|
1301
|
+
function Et() {
|
|
1302
|
+
Oe(), V.value = !1, l.value && l.value.scrollTo({
|
|
1155
1303
|
top: 0,
|
|
1156
1304
|
behavior: "smooth"
|
|
1157
|
-
}),
|
|
1305
|
+
}), i.value = [], x.value = 0, k.value = r.loadAtPage, h.value = [r.loadAtPage], I.value = !1, m.value = null, ne.value = {
|
|
1158
1306
|
distanceToTrigger: 0,
|
|
1159
1307
|
isNearTrigger: !1
|
|
1160
1308
|
};
|
|
1161
1309
|
}
|
|
1162
1310
|
function Lt() {
|
|
1163
|
-
|
|
1311
|
+
Oe(), i.value = [], W.value = 0, k.value = null, h.value = [], I.value = !1, m.value = null, P.value = !1, oe = !1, V.value = !1, pe.value = 0, be.value = 0, Pe.value = !1, a.value = 0, d.value = 0, D.value = !1, ne.value = {
|
|
1164
1312
|
distanceToTrigger: 0,
|
|
1165
1313
|
isNearTrigger: !1
|
|
1166
|
-
},
|
|
1314
|
+
}, $.value.clear(), l.value && l.value.scrollTo({
|
|
1167
1315
|
top: 0,
|
|
1168
1316
|
behavior: "auto"
|
|
1169
1317
|
// Instant scroll for destroy
|
|
1170
1318
|
});
|
|
1171
1319
|
}
|
|
1172
|
-
const
|
|
1173
|
-
if (
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
f.value = X.value + a, e.preventDefault();
|
|
1185
|
-
}
|
|
1186
|
-
function qe(e) {
|
|
1187
|
-
if (!d.value || !$.value) return;
|
|
1188
|
-
$.value = !1;
|
|
1189
|
-
const a = f.value - X.value;
|
|
1190
|
-
Math.abs(a) > 100 ? a > 0 && U.value ? Ue() : a < 0 && C.value ? Ve() : re() : re(), e.preventDefault();
|
|
1191
|
-
}
|
|
1192
|
-
function Ye(e) {
|
|
1193
|
-
d.value && ($.value = !0, R.value = e.clientY, X.value = f.value, e.preventDefault());
|
|
1194
|
-
}
|
|
1195
|
-
function Se(e) {
|
|
1196
|
-
if (!d.value || !$.value) return;
|
|
1197
|
-
const a = e.clientY - R.value;
|
|
1198
|
-
f.value = X.value + a, e.preventDefault();
|
|
1320
|
+
const he = ct(async () => {
|
|
1321
|
+
if (p.value) return;
|
|
1322
|
+
if (l.value) {
|
|
1323
|
+
const n = l.value.scrollTop, o = l.value.clientHeight || window.innerHeight, g = o > 0 ? o : window.innerHeight;
|
|
1324
|
+
a.value = n, d.value = g;
|
|
1325
|
+
}
|
|
1326
|
+
D.value = !0, await U(), await new Promise((n) => requestAnimationFrame(() => n())), D.value = !1;
|
|
1327
|
+
const e = Ye(i.value, L.value);
|
|
1328
|
+
le(e), X(e);
|
|
1329
|
+
}, 200), Qe = ct(It, 200);
|
|
1330
|
+
function Ze() {
|
|
1331
|
+
te.handleWindowResize();
|
|
1199
1332
|
}
|
|
1200
|
-
function
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
Math.abs(a) > 100 ? a > 0 && U.value ? Ue() : a < 0 && C.value ? Ve() : re() : re(), e.preventDefault();
|
|
1333
|
+
function et(e, n, o) {
|
|
1334
|
+
k.value = n, h.value = [n], h.value.push(o), I.value = o == null, B(e, "init"), p.value ? (i.value = [...i.value, ...e], pe.value === 0 && i.value.length > 0 && (be.value = 0)) : (J([...i.value, ...e]), l.value && (a.value = l.value.scrollTop, d.value = l.value.clientHeight || window.innerHeight), U(() => {
|
|
1335
|
+
l.value && (a.value = l.value.scrollTop, d.value = l.value.clientHeight || window.innerHeight, X());
|
|
1336
|
+
}));
|
|
1205
1337
|
}
|
|
1206
|
-
function
|
|
1207
|
-
if (!
|
|
1208
|
-
|
|
1338
|
+
async function tt(e, n, o) {
|
|
1339
|
+
if (!r.skipInitialLoad) {
|
|
1340
|
+
et(e, n, o);
|
|
1209
1341
|
return;
|
|
1210
1342
|
}
|
|
1211
|
-
n.value
|
|
1212
|
-
}
|
|
1213
|
-
function Ue() {
|
|
1214
|
-
U.value && (n.value--, re());
|
|
1215
|
-
}
|
|
1216
|
-
function re() {
|
|
1217
|
-
if (!Y.value) return;
|
|
1218
|
-
const e = Y.value.clientHeight;
|
|
1219
|
-
f.value = -n.value * e;
|
|
1220
|
-
}
|
|
1221
|
-
function _e() {
|
|
1222
|
-
!d.value && n.value > 0 && (n.value = 0, f.value = 0), d.value && o.value.length === 0 && !h.value && Le(b.value[0]), d.value && re();
|
|
1343
|
+
k.value = n, h.value = [n], o != null && h.value.push(o), I.value = o == null, m.value = null, B(e, "restoreItems"), p.value ? (i.value = e, pe.value === 0 && i.value.length > 0 && (be.value = 0)) : (J(e), l.value && (a.value = l.value.scrollTop, d.value = l.value.clientHeight || window.innerHeight), await U(), l.value && (a.value = l.value.scrollTop, d.value = l.value.clientHeight || window.innerHeight, X()));
|
|
1223
1344
|
}
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
}
|
|
1227
|
-
return oe(
|
|
1228
|
-
p,
|
|
1345
|
+
return se(
|
|
1346
|
+
w,
|
|
1229
1347
|
() => {
|
|
1230
|
-
|
|
1348
|
+
p.value || l.value && (L.value = we(w.value, f.value), J(i.value));
|
|
1231
1349
|
},
|
|
1232
1350
|
{ deep: !0 }
|
|
1233
|
-
),
|
|
1234
|
-
|
|
1235
|
-
}),
|
|
1236
|
-
e && !
|
|
1237
|
-
}, { immediate: !0 }),
|
|
1238
|
-
|
|
1239
|
-
e ? (document.addEventListener("mousemove",
|
|
1351
|
+
), se(() => r.layoutMode, () => {
|
|
1352
|
+
M.value && M.value.width !== void 0 ? f.value = M.value.width : y.value && (f.value = y.value.clientWidth);
|
|
1353
|
+
}), se(l, (e) => {
|
|
1354
|
+
e && !p.value ? (e.removeEventListener("scroll", he), e.addEventListener("scroll", he, { passive: !0 })) : e && e.removeEventListener("scroll", he);
|
|
1355
|
+
}, { immediate: !0 }), se(p, (e, n) => {
|
|
1356
|
+
n === void 0 && e === !1 || U(() => {
|
|
1357
|
+
e ? (document.addEventListener("mousemove", Be), document.addEventListener("mouseup", De), l.value && l.value.removeEventListener("scroll", he), pe.value = 0, be.value = 0, i.value.length > 0 && Ae()) : (document.removeEventListener("mousemove", Be), document.removeEventListener("mouseup", De), l.value && y.value && (M.value && M.value.width !== void 0 ? f.value = M.value.width : f.value = y.value.clientWidth, l.value.removeEventListener("scroll", he), l.value.addEventListener("scroll", he, { passive: !0 }), i.value.length > 0 && (L.value = we(w.value, f.value), J(i.value), a.value = l.value.scrollTop, d.value = l.value.clientHeight, X())));
|
|
1240
1358
|
});
|
|
1241
|
-
}, { immediate: !0 }),
|
|
1242
|
-
e && (e.addEventListener("touchstart",
|
|
1243
|
-
}),
|
|
1244
|
-
|
|
1245
|
-
}),
|
|
1246
|
-
|
|
1247
|
-
if (!
|
|
1248
|
-
for (const
|
|
1249
|
-
const
|
|
1250
|
-
|
|
1359
|
+
}, { immediate: !0 }), se(de, (e) => {
|
|
1360
|
+
e && (e.addEventListener("touchstart", _e, { passive: !1 }), e.addEventListener("touchmove", Xe, { passive: !1 }), e.addEventListener("touchend", Ge), e.addEventListener("mousedown", Je));
|
|
1361
|
+
}), se(() => i.value.length, (e, n) => {
|
|
1362
|
+
p.value && e > 0 && n === 0 && (pe.value = 0, U(() => Ae()));
|
|
1363
|
+
}), se(y, (e) => {
|
|
1364
|
+
s && (s.disconnect(), s = null), e && typeof ResizeObserver < "u" ? (s = new ResizeObserver((n) => {
|
|
1365
|
+
if (!M.value)
|
|
1366
|
+
for (const o of n) {
|
|
1367
|
+
const g = o.contentRect.width, u = o.contentRect.height;
|
|
1368
|
+
f.value !== g && (f.value = g), x.value !== u && (x.value = u);
|
|
1251
1369
|
}
|
|
1252
|
-
}),
|
|
1253
|
-
}, { immediate: !0 }),
|
|
1254
|
-
e !==
|
|
1255
|
-
|
|
1370
|
+
}), s.observe(e), M.value || (f.value = e.clientWidth, x.value = e.clientHeight)) : e && (M.value || (f.value = e.clientWidth, x.value = e.clientHeight));
|
|
1371
|
+
}, { immediate: !0 }), se(f, (e, n) => {
|
|
1372
|
+
e !== n && e > 0 && !p.value && l.value && i.value.length > 0 && U(() => {
|
|
1373
|
+
L.value = we(w.value, e), J(i.value), X();
|
|
1256
1374
|
});
|
|
1257
|
-
}),
|
|
1375
|
+
}), dt(async () => {
|
|
1258
1376
|
try {
|
|
1259
|
-
await
|
|
1260
|
-
const e =
|
|
1261
|
-
|
|
1377
|
+
await U(), y.value && !s && (f.value = y.value.clientWidth, x.value = y.value.clientHeight), p.value || (L.value = we(w.value, f.value), l.value && (a.value = l.value.scrollTop, d.value = l.value.clientHeight));
|
|
1378
|
+
const e = r.loadAtPage;
|
|
1379
|
+
if (h.value = [e], !r.skipInitialLoad)
|
|
1380
|
+
await We(h.value[0]);
|
|
1381
|
+
else if (r.items && r.items.length > 0) {
|
|
1382
|
+
const n = r.items[0], o = r.items[r.items.length - 1], g = (n == null ? void 0 : n.page) ?? e ?? 1, u = (o == null ? void 0 : o.next) ?? null;
|
|
1383
|
+
await tt(r.items, g, u);
|
|
1384
|
+
} else
|
|
1385
|
+
k.value = e, h.value = [e];
|
|
1386
|
+
p.value ? U(() => Ae()) : X();
|
|
1262
1387
|
} catch (e) {
|
|
1263
|
-
console.error("Error during component initialization:", e),
|
|
1388
|
+
m.value || (console.error("Error during component initialization:", e), m.value = ke(e)), P.value = !1;
|
|
1264
1389
|
}
|
|
1265
|
-
window.addEventListener("resize",
|
|
1266
|
-
}),
|
|
1390
|
+
window.addEventListener("resize", Qe), window.addEventListener("resize", Ze);
|
|
1391
|
+
}), ht(() => {
|
|
1267
1392
|
var e;
|
|
1268
|
-
|
|
1269
|
-
}), (e,
|
|
1393
|
+
s && (s.disconnect(), s = null), (e = l.value) == null || e.removeEventListener("scroll", he), window.removeEventListener("resize", Qe), window.removeEventListener("resize", Ze), de.value && (de.value.removeEventListener("touchstart", _e), de.value.removeEventListener("touchmove", Xe), de.value.removeEventListener("touchend", Ge), de.value.removeEventListener("mousedown", Je)), document.removeEventListener("mousemove", Be), document.removeEventListener("mouseup", De);
|
|
1394
|
+
}), (e, n) => (j(), R("div", {
|
|
1270
1395
|
ref_key: "wrapper",
|
|
1271
|
-
ref:
|
|
1396
|
+
ref: y,
|
|
1272
1397
|
class: "w-full h-full flex flex-col relative"
|
|
1273
1398
|
}, [
|
|
1274
|
-
|
|
1399
|
+
p.value ? (j(), R("div", {
|
|
1275
1400
|
key: 0,
|
|
1276
|
-
class:
|
|
1401
|
+
class: me(["overflow-hidden w-full flex-1 swipe-container touch-none select-none", { "force-motion": r.forceMotion, "cursor-grab": !ye(Pe), "cursor-grabbing": ye(Pe) }]),
|
|
1277
1402
|
ref_key: "swipeContainer",
|
|
1278
|
-
ref:
|
|
1403
|
+
ref: de,
|
|
1279
1404
|
style: { height: "100%", "max-height": "100%", position: "relative" }
|
|
1280
1405
|
}, [
|
|
1281
|
-
|
|
1406
|
+
q("div", {
|
|
1282
1407
|
class: "relative w-full",
|
|
1283
|
-
style:
|
|
1284
|
-
transform: `translateY(${
|
|
1285
|
-
transition:
|
|
1286
|
-
height: `${
|
|
1408
|
+
style: He({
|
|
1409
|
+
transform: `translateY(${ye(be)}px)`,
|
|
1410
|
+
transition: ye(Pe) ? "none" : `transform ${t.transitionDurationMs}ms ${t.transitionEasing}`,
|
|
1411
|
+
height: `${i.value.length * 100}%`
|
|
1287
1412
|
})
|
|
1288
1413
|
}, [
|
|
1289
|
-
(
|
|
1290
|
-
key: `${
|
|
1414
|
+
(j(!0), R(lt, null, ot(i.value, (o, g) => (j(), R("div", {
|
|
1415
|
+
key: `${o.page}-${o.id}`,
|
|
1291
1416
|
class: "absolute top-0 left-0 w-full",
|
|
1292
|
-
style:
|
|
1293
|
-
top: `${
|
|
1294
|
-
height: `${100 /
|
|
1417
|
+
style: He({
|
|
1418
|
+
top: `${g * (100 / i.value.length)}%`,
|
|
1419
|
+
height: `${100 / i.value.length}%`
|
|
1295
1420
|
})
|
|
1296
1421
|
}, [
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
item:
|
|
1301
|
-
remove:
|
|
1302
|
-
index:
|
|
1422
|
+
q("div", pa, [
|
|
1423
|
+
q("div", ya, [
|
|
1424
|
+
K(e.$slots, "default", {
|
|
1425
|
+
item: o,
|
|
1426
|
+
remove: Me,
|
|
1427
|
+
index: o.originalIndex ?? r.items.indexOf(o)
|
|
1303
1428
|
}, () => [
|
|
1304
|
-
|
|
1305
|
-
item:
|
|
1306
|
-
remove:
|
|
1307
|
-
"header-height":
|
|
1308
|
-
"footer-height":
|
|
1429
|
+
Re(Ne, {
|
|
1430
|
+
item: o,
|
|
1431
|
+
remove: Me,
|
|
1432
|
+
"header-height": w.value.header,
|
|
1433
|
+
"footer-height": w.value.footer,
|
|
1309
1434
|
"in-swipe-mode": !0,
|
|
1310
|
-
"is-active":
|
|
1311
|
-
"onPreload:success":
|
|
1312
|
-
"onPreload:error":
|
|
1313
|
-
onMouseEnter:
|
|
1314
|
-
onMouseLeave:
|
|
1435
|
+
"is-active": g === ye(pe),
|
|
1436
|
+
"onPreload:success": n[0] || (n[0] = (u) => b("item:preload:success", u)),
|
|
1437
|
+
"onPreload:error": n[1] || (n[1] = (u) => b("item:preload:error", u)),
|
|
1438
|
+
onMouseEnter: n[2] || (n[2] = (u) => b("item:mouse-enter", u)),
|
|
1439
|
+
onMouseLeave: n[3] || (n[3] = (u) => b("item:mouse-leave", u))
|
|
1315
1440
|
}, {
|
|
1316
|
-
header:
|
|
1317
|
-
|
|
1441
|
+
header: Ie((u) => [
|
|
1442
|
+
K(e.$slots, "item-header", Ee({ ref_for: !0 }, u), void 0, !0)
|
|
1318
1443
|
]),
|
|
1319
|
-
footer:
|
|
1320
|
-
|
|
1444
|
+
footer: Ie((u) => [
|
|
1445
|
+
K(e.$slots, "item-footer", Ee({ ref_for: !0 }, u), void 0, !0)
|
|
1321
1446
|
]),
|
|
1322
1447
|
_: 2
|
|
1323
1448
|
}, 1032, ["item", "header-height", "footer-height", "is-active"])
|
|
@@ -1326,62 +1451,62 @@ const ua = { class: "flex-1 relative min-h-0" }, va = { class: "w-full h-full ro
|
|
|
1326
1451
|
])
|
|
1327
1452
|
], 4))), 128))
|
|
1328
1453
|
], 4),
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1454
|
+
I.value && i.value.length > 0 ? (j(), R("div", wa, [
|
|
1455
|
+
K(e.$slots, "end-message", {}, () => [
|
|
1456
|
+
n[8] || (n[8] = q("p", { class: "text-gray-500 dark:text-gray-400" }, "You've reached the end", -1))
|
|
1332
1457
|
], !0)
|
|
1333
|
-
])) :
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1458
|
+
])) : ie("", !0),
|
|
1459
|
+
m.value && i.value.length > 0 ? (j(), R("div", xa, [
|
|
1460
|
+
K(e.$slots, "error-message", { error: m.value }, () => [
|
|
1461
|
+
q("p", ba, "Failed to load content: " + qe(m.value.message), 1)
|
|
1337
1462
|
], !0)
|
|
1338
|
-
])) :
|
|
1339
|
-
], 2)) : (
|
|
1463
|
+
])) : ie("", !0)
|
|
1464
|
+
], 2)) : (j(), R("div", {
|
|
1340
1465
|
key: 1,
|
|
1341
|
-
class:
|
|
1466
|
+
class: me(["overflow-auto w-full flex-1 masonry-container", { "force-motion": r.forceMotion }]),
|
|
1342
1467
|
ref_key: "container",
|
|
1343
|
-
ref:
|
|
1468
|
+
ref: l
|
|
1344
1469
|
}, [
|
|
1345
|
-
|
|
1470
|
+
q("div", {
|
|
1346
1471
|
class: "relative",
|
|
1347
|
-
style:
|
|
1472
|
+
style: He({ height: `${W.value}px`, "--masonry-duration": `${t.transitionDurationMs}ms`, "--masonry-leave-duration": `${t.leaveDurationMs}ms`, "--masonry-ease": t.transitionEasing })
|
|
1348
1473
|
}, [
|
|
1349
|
-
|
|
1474
|
+
Re(Ht, {
|
|
1350
1475
|
name: "masonry",
|
|
1351
1476
|
css: !1,
|
|
1352
|
-
onEnter:
|
|
1353
|
-
onBeforeEnter:
|
|
1354
|
-
onLeave:
|
|
1355
|
-
onBeforeLeave:
|
|
1477
|
+
onEnter: G,
|
|
1478
|
+
onBeforeEnter: Z,
|
|
1479
|
+
onLeave: ee,
|
|
1480
|
+
onBeforeLeave: ve
|
|
1356
1481
|
}, {
|
|
1357
|
-
default:
|
|
1358
|
-
(
|
|
1359
|
-
key: `${
|
|
1482
|
+
default: Ie(() => [
|
|
1483
|
+
(j(!0), R(lt, null, ot(ge.value, (o, g) => (j(), R("div", Ee({
|
|
1484
|
+
key: `${o.page}-${o.id}`,
|
|
1360
1485
|
class: "absolute masonry-item",
|
|
1361
1486
|
ref_for: !0
|
|
1362
|
-
},
|
|
1363
|
-
|
|
1364
|
-
item:
|
|
1365
|
-
remove:
|
|
1366
|
-
index:
|
|
1487
|
+
}, ye(la)(o, g)), [
|
|
1488
|
+
K(e.$slots, "default", {
|
|
1489
|
+
item: o,
|
|
1490
|
+
remove: Me,
|
|
1491
|
+
index: o.originalIndex ?? t.items.indexOf(o)
|
|
1367
1492
|
}, () => [
|
|
1368
|
-
|
|
1369
|
-
item:
|
|
1370
|
-
remove:
|
|
1371
|
-
"header-height":
|
|
1372
|
-
"footer-height":
|
|
1493
|
+
Re(Ne, {
|
|
1494
|
+
item: o,
|
|
1495
|
+
remove: Me,
|
|
1496
|
+
"header-height": w.value.header,
|
|
1497
|
+
"footer-height": w.value.footer,
|
|
1373
1498
|
"in-swipe-mode": !1,
|
|
1374
1499
|
"is-active": !1,
|
|
1375
|
-
"onPreload:success":
|
|
1376
|
-
"onPreload:error":
|
|
1377
|
-
onMouseEnter:
|
|
1378
|
-
onMouseLeave:
|
|
1500
|
+
"onPreload:success": n[4] || (n[4] = (u) => b("item:preload:success", u)),
|
|
1501
|
+
"onPreload:error": n[5] || (n[5] = (u) => b("item:preload:error", u)),
|
|
1502
|
+
onMouseEnter: n[6] || (n[6] = (u) => b("item:mouse-enter", u)),
|
|
1503
|
+
onMouseLeave: n[7] || (n[7] = (u) => b("item:mouse-leave", u))
|
|
1379
1504
|
}, {
|
|
1380
|
-
header:
|
|
1381
|
-
|
|
1505
|
+
header: Ie((u) => [
|
|
1506
|
+
K(e.$slots, "item-header", Ee({ ref_for: !0 }, u), void 0, !0)
|
|
1382
1507
|
]),
|
|
1383
|
-
footer:
|
|
1384
|
-
|
|
1508
|
+
footer: Ie((u) => [
|
|
1509
|
+
K(e.$slots, "item-footer", Ee({ ref_for: !0 }, u), void 0, !0)
|
|
1385
1510
|
]),
|
|
1386
1511
|
_: 2
|
|
1387
1512
|
}, 1032, ["item", "header-height", "footer-height"])
|
|
@@ -1391,31 +1516,31 @@ const ua = { class: "flex-1 relative min-h-0" }, va = { class: "w-full h-full ro
|
|
|
1391
1516
|
_: 3
|
|
1392
1517
|
})
|
|
1393
1518
|
], 4),
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1519
|
+
I.value && i.value.length > 0 ? (j(), R("div", Ma, [
|
|
1520
|
+
K(e.$slots, "end-message", {}, () => [
|
|
1521
|
+
n[9] || (n[9] = q("p", { class: "text-gray-500 dark:text-gray-400" }, "You've reached the end", -1))
|
|
1397
1522
|
], !0)
|
|
1398
|
-
])) :
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1523
|
+
])) : ie("", !0),
|
|
1524
|
+
m.value && i.value.length > 0 ? (j(), R("div", Ta, [
|
|
1525
|
+
K(e.$slots, "error-message", { error: m.value }, () => [
|
|
1526
|
+
q("p", Ia, "Failed to load content: " + qe(m.value.message), 1)
|
|
1402
1527
|
], !0)
|
|
1403
|
-
])) :
|
|
1528
|
+
])) : ie("", !0)
|
|
1404
1529
|
], 2))
|
|
1405
1530
|
], 512));
|
|
1406
1531
|
}
|
|
1407
|
-
}),
|
|
1408
|
-
const
|
|
1409
|
-
for (const [
|
|
1410
|
-
|
|
1411
|
-
return
|
|
1412
|
-
},
|
|
1532
|
+
}), La = (t, c) => {
|
|
1533
|
+
const v = t.__vccOpts || t;
|
|
1534
|
+
for (const [r, E] of c)
|
|
1535
|
+
v[r] = E;
|
|
1536
|
+
return v;
|
|
1537
|
+
}, vt = /* @__PURE__ */ La(Ea, [["__scopeId", "data-v-a07e2350"]]), Ha = {
|
|
1413
1538
|
install(t) {
|
|
1414
|
-
t.component("WyxosMasonry",
|
|
1539
|
+
t.component("WyxosMasonry", vt), t.component("WMasonry", vt), t.component("WyxosMasonryItem", Ne), t.component("WMasonryItem", Ne);
|
|
1415
1540
|
}
|
|
1416
1541
|
};
|
|
1417
1542
|
export {
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1543
|
+
vt as Masonry,
|
|
1544
|
+
Ne as MasonryItem,
|
|
1545
|
+
Ha as default
|
|
1421
1546
|
};
|