156 lines
3.6 KiB
JavaScript
156 lines
3.6 KiB
JavaScript
|
import {
|
||
|
H as a,
|
||
|
I as o,
|
||
|
j as r,
|
||
|
ay as e,
|
||
|
c as l,
|
||
|
ag as s,
|
||
|
ah as i,
|
||
|
w as n,
|
||
|
X as t,
|
||
|
Z as d,
|
||
|
D as c,
|
||
|
a8 as u,
|
||
|
v,
|
||
|
J as g,
|
||
|
K as f,
|
||
|
a0 as h,
|
||
|
as as m,
|
||
|
aT as p,
|
||
|
aw as w,
|
||
|
P as y,
|
||
|
Q as b,
|
||
|
} from "./index-476be0bb.js";
|
||
|
const [z, L] = a("image");
|
||
|
const S = b(
|
||
|
o({
|
||
|
name: z,
|
||
|
props: {
|
||
|
src: String,
|
||
|
alt: String,
|
||
|
fit: String,
|
||
|
position: String,
|
||
|
round: Boolean,
|
||
|
block: Boolean,
|
||
|
width: g,
|
||
|
height: g,
|
||
|
radius: g,
|
||
|
lazyLoad: Boolean,
|
||
|
iconSize: g,
|
||
|
showError: f,
|
||
|
errorIcon: h("photo-fail"),
|
||
|
iconPrefix: String,
|
||
|
showLoading: f,
|
||
|
loadingIcon: h("photo"),
|
||
|
},
|
||
|
emits: ["load", "error"],
|
||
|
setup(a, { emit: o, slots: g }) {
|
||
|
const f = r(!1),
|
||
|
h = r(!0),
|
||
|
b = r(),
|
||
|
{ $Lazyload: z } = e().proxy,
|
||
|
S = l(() => {
|
||
|
const o = { width: s(a.width), height: s(a.height) };
|
||
|
return (
|
||
|
i(a.radius) &&
|
||
|
((o.overflow = "hidden"), (o.borderRadius = s(a.radius))),
|
||
|
o
|
||
|
);
|
||
|
});
|
||
|
n(
|
||
|
() => a.src,
|
||
|
() => {
|
||
|
(f.value = !1), (h.value = !0);
|
||
|
}
|
||
|
);
|
||
|
const x = (a) => {
|
||
|
h.value && ((h.value = !1), o("load", a));
|
||
|
},
|
||
|
I = () => {
|
||
|
const a = new Event("load");
|
||
|
Object.defineProperty(a, "target", {
|
||
|
value: b.value,
|
||
|
enumerable: !0,
|
||
|
}),
|
||
|
x(a);
|
||
|
},
|
||
|
P = (a) => {
|
||
|
(f.value = !0), (h.value = !1), o("error", a);
|
||
|
},
|
||
|
j = (o, r, e) =>
|
||
|
e
|
||
|
? e()
|
||
|
: v(
|
||
|
y,
|
||
|
{
|
||
|
name: o,
|
||
|
size: a.iconSize,
|
||
|
class: r,
|
||
|
classPrefix: a.iconPrefix,
|
||
|
},
|
||
|
null
|
||
|
),
|
||
|
$ = () => {
|
||
|
if (f.value || !a.src) return;
|
||
|
const o = {
|
||
|
alt: a.alt,
|
||
|
class: L("img"),
|
||
|
style: { objectFit: a.fit, objectPosition: a.position },
|
||
|
};
|
||
|
return a.lazyLoad
|
||
|
? m(v("img", w({ ref: b }, o), null), [[p("lazy"), a.src]])
|
||
|
: v(
|
||
|
"img",
|
||
|
w({ ref: b, src: a.src, onLoad: x, onError: P }, o),
|
||
|
null
|
||
|
);
|
||
|
},
|
||
|
E = ({ el: a }) => {
|
||
|
const o = () => {
|
||
|
a === b.value && h.value && I();
|
||
|
};
|
||
|
b.value ? o() : u(o);
|
||
|
},
|
||
|
k = ({ el: a }) => {
|
||
|
a !== b.value || f.value || P();
|
||
|
};
|
||
|
return (
|
||
|
z &&
|
||
|
t &&
|
||
|
(z.$on("loaded", E),
|
||
|
z.$on("error", k),
|
||
|
d(() => {
|
||
|
z.$off("loaded", E), z.$off("error", k);
|
||
|
})),
|
||
|
c(() => {
|
||
|
u(() => {
|
||
|
var o;
|
||
|
(null == (o = b.value) ? void 0 : o.complete) && !a.lazyLoad && I();
|
||
|
});
|
||
|
}),
|
||
|
() => {
|
||
|
var o;
|
||
|
return v(
|
||
|
"div",
|
||
|
{ class: L({ round: a.round, block: a.block }), style: S.value },
|
||
|
[
|
||
|
$(),
|
||
|
h.value && a.showLoading
|
||
|
? v("div", { class: L("loading") }, [
|
||
|
j(a.loadingIcon, L("loading-icon"), g.loading),
|
||
|
])
|
||
|
: f.value && a.showError
|
||
|
? v("div", { class: L("error") }, [
|
||
|
j(a.errorIcon, L("error-icon"), g.error),
|
||
|
])
|
||
|
: void 0,
|
||
|
null == (o = g.default) ? void 0 : o.call(g),
|
||
|
]
|
||
|
);
|
||
|
}
|
||
|
);
|
||
|
},
|
||
|
})
|
||
|
);
|
||
|
export { S as I };
|