vue-lazyload-imgs
Version:
This Vue component vue-lazyload-imgs is used to implement lazy loading of images in Vue2 (Vue>=2.6.0) and Vue3 framework environments. The difference from some lazy loading image instructions is that this component can lazily load any number of images at
809 lines (808 loc) • 46.6 kB
JavaScript
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
import t from "vue";
var e, n = function(t2, e2) {
return n = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t3, e3) {
t3.__proto__ = e3;
} || function(t3, e3) {
for (var n2 in e3)
Object.prototype.hasOwnProperty.call(e3, n2) && (t3[n2] = e3[n2]);
}, n(t2, e2);
};
function r(t2) {
var e2 = "function" == typeof Symbol && Symbol.iterator, n2 = e2 && t2[e2], r2 = 0;
if (n2)
return n2.call(t2);
if (t2 && "number" == typeof t2.length)
return { next: function() {
return t2 && r2 >= t2.length && (t2 = void 0), { value: t2 && t2[r2++], done: !t2 };
} };
throw new TypeError(e2 ? "Object is not iterable." : "Symbol.iterator is not defined.");
}
var A = [], o = function() {
function t2(t3) {
this.active = true, this.effects = [], this.cleanups = [], this.vm = t3;
}
return t2.prototype.run = function(t3) {
if (this.active)
try {
return this.on(), t3();
} finally {
this.off();
}
}, t2.prototype.on = function() {
this.active && (A.push(this), e = this);
}, t2.prototype.off = function() {
this.active && (A.pop(), e = A[A.length - 1]);
}, t2.prototype.stop = function() {
this.active && (this.vm.$destroy(), this.effects.forEach(function(t3) {
return t3.stop();
}), this.cleanups.forEach(function(t3) {
return t3();
}), this.active = false);
}, t2;
}();
!function(t2) {
function r2(n2) {
void 0 === n2 && (n2 = false);
var r3, A2 = void 0;
return function(t3) {
var e2 = l;
l = false;
try {
t3();
} finally {
l = e2;
}
}(function() {
A2 = R(f());
}), r3 = t2.call(this, A2) || this, n2 || function(t3, n3) {
var r4;
if ((n3 = n3 || e) && n3.active)
return void n3.effects.push(t3);
var A3 = null === (r4 = d()) || void 0 === r4 ? void 0 : r4.proxy;
A3 && A3.$on("hook:destroyed", function() {
return t3.stop();
});
}(r3), r3;
}
(function(t3, e2) {
if ("function" != typeof e2 && null !== e2)
throw new TypeError("Class extends value " + String(e2) + " is not a constructor or null");
function r3() {
this.constructor = t3;
}
n(t3, e2), t3.prototype = null === e2 ? Object.create(e2) : (r3.prototype = e2.prototype, new r3());
})(r2, t2);
}(o);
var i = void 0;
try {
var a = require("vue");
a && g(a) ? i = a : a && "default" in a && g(a.default) && (i = a.default);
} catch (t2) {
}
var c = null, s = null, l = true, u = "__composition_api_installed__";
function g(t2) {
return t2 && k(t2) && "Vue" === t2.name;
}
function f() {
return c;
}
function I(t2) {
if (l) {
var e2 = s;
null == e2 || e2.scope.off(), null == (s = t2) || s.scope.on();
}
}
function d() {
return s;
}
var p = /* @__PURE__ */ new WeakMap();
function y(t2) {
if (p.has(t2))
return p.get(t2);
var e2 = { proxy: t2, update: t2.$forceUpdate, type: t2.$options, uid: t2._uid, emit: t2.$emit.bind(t2), parent: null, root: null };
!function(t3) {
if (!t3.scope) {
var e3 = new o(t3.proxy);
t3.scope = e3, t3.proxy.$on("hook:destroyed", function() {
return e3.stop();
});
}
t3.scope;
}(e2);
return ["data", "props", "attrs", "refs", "vnode", "slots"].forEach(function(n2) {
Q(e2, n2, { get: function() {
return t2["$".concat(n2)];
} });
}), Q(e2, "isMounted", { get: function() {
return t2._isMounted;
} }), Q(e2, "isUnmounted", { get: function() {
return t2._isDestroyed;
} }), Q(e2, "isDeactivated", { get: function() {
return t2._inactive;
} }), Q(e2, "emitted", { get: function() {
return t2._events;
} }), p.set(t2, e2), t2.$parent && (e2.parent = y(t2.$parent)), t2.$root && (e2.root = y(t2.$root)), e2;
}
function E(t2) {
return "function" == typeof t2 && /native code/.test(t2.toString());
}
var v = "undefined" != typeof Symbol && E(Symbol) && "undefined" != typeof Reflect && E(Reflect.ownKeys), h = function(t2) {
return t2;
};
function Q(t2, e2, n2) {
var r2 = n2.get, A2 = n2.set;
Object.defineProperty(t2, e2, { enumerable: true, configurable: true, get: r2 || h, set: A2 || h });
}
function B(t2, e2, n2, r2) {
Object.defineProperty(t2, e2, { value: n2, enumerable: !!r2, writable: true, configurable: true });
}
function b(t2, e2) {
return Object.hasOwnProperty.call(t2, e2);
}
function C(t2) {
return Array.isArray(t2);
}
function m(t2) {
return null !== t2 && "object" == typeof t2;
}
function S(t2) {
return "[object Object]" === function(t3) {
return Object.prototype.toString.call(t3);
}(t2);
}
function k(t2) {
return "function" == typeof t2;
}
function R(t2, e2) {
void 0 === e2 && (e2 = {});
var n2 = t2.config.silent;
t2.config.silent = true;
var r2 = new t2(e2);
return t2.config.silent = n2, r2;
}
function H(t2, e2) {
return function() {
for (var n2 = [], r2 = 0; r2 < arguments.length; r2++)
n2[r2] = arguments[r2];
if (t2.$scopedSlots[e2])
return t2.$scopedSlots[e2].apply(t2, n2);
};
}
var M = "composition-api.refKey", O = /* @__PURE__ */ new WeakMap(), U = /* @__PURE__ */ new WeakMap();
function D(t2, e2, n2) {
var r2 = f().util;
r2.warn;
var A2 = r2.defineReactive, o2 = t2.__ob__;
function i2() {
o2 && m(n2) && !b(n2, "__ob__") && J(n2);
}
if (C(t2)) {
if (function(t3) {
var e3 = parseFloat(String(t3));
return e3 >= 0 && Math.floor(e3) === e3 && isFinite(t3) && e3 <= 4294967295;
}(e2))
return t2.length = Math.max(t2.length, e2), t2.splice(e2, 1, n2), i2(), n2;
if ("length" === e2 && n2 !== t2.length)
return t2.length = n2, null == o2 || o2.dep.notify(), n2;
}
return e2 in t2 && !(e2 in Object.prototype) ? (t2[e2] = n2, i2(), n2) : t2._isVue || o2 && o2.vmCount ? n2 : o2 ? (A2(o2.value, e2, n2), W(t2, e2, n2), i2(), o2.dep.notify(), n2) : (t2[e2] = n2, n2);
}
var j = function(t2) {
Q(this, "value", { get: t2.get, set: t2.set });
};
function P(t2, e2, n2) {
void 0 === e2 && (e2 = false), void 0 === n2 && (n2 = false);
var r2 = new j(t2);
n2 && (r2.effect = true);
var A2 = Object.seal(r2);
return e2 && U.set(A2, true), A2;
}
function x(t2) {
var e2;
if (w(t2))
return t2;
var n2 = K(((e2 = {})[M] = t2, e2));
return P({ get: function() {
return n2[M];
}, set: function(t3) {
return n2[M] = t3;
} });
}
function w(t2) {
return t2 instanceof j;
}
function G(t2, e2) {
e2 in t2 || D(t2, e2, void 0);
var n2 = t2[e2];
return w(n2) ? n2 : P({ get: function() {
return t2[e2];
}, set: function(n3) {
return t2[e2] = n3;
} });
}
var T = "__v_skip";
function N(t2) {
var e2;
return Boolean(t2 && b(t2, "__ob__") && "object" == typeof t2.__ob__ && (null === (e2 = t2.__ob__) || void 0 === e2 ? void 0 : e2[T]));
}
function q(t2) {
var e2;
return Boolean(t2 && b(t2, "__ob__") && "object" == typeof t2.__ob__ && !(null === (e2 = t2.__ob__) || void 0 === e2 ? void 0 : e2[T]));
}
function L(t2) {
if (!(!S(t2) || N(t2) || C(t2) || w(t2) || function(t3) {
var e3 = f();
return e3 && t3 instanceof e3;
}(t2) || O.has(t2))) {
O.set(t2, true);
for (var e2 = Object.keys(t2), n2 = 0; n2 < e2.length; n2++)
W(t2, e2[n2]);
}
}
function W(t2, e2, n2) {
if ("__ob__" !== e2 && !N(t2[e2])) {
var r2, A2, o2 = Object.getOwnPropertyDescriptor(t2, e2);
if (o2) {
if (false === o2.configurable)
return;
r2 = o2.get, A2 = o2.set, r2 && !A2 || 2 !== arguments.length || (n2 = t2[e2]);
}
L(n2), Q(t2, e2, { get: function() {
var A3 = r2 ? r2.call(t2) : n2;
return e2 !== M && w(A3) ? A3.value : A3;
}, set: function(o3) {
r2 && !A2 || (e2 !== M && w(n2) && !w(o3) ? n2.value = o3 : A2 ? (A2.call(t2, o3), n2 = o3) : n2 = o3, L(o3));
} });
}
}
function Y(t2) {
var e2, n2 = c || i;
n2.observable ? e2 = n2.observable(t2) : e2 = R(n2, { data: { $$state: t2 } })._data.$$state;
return b(e2, "__ob__") || J(e2), e2;
}
function J(t2, e2) {
var n2, A2;
if (void 0 === e2 && (e2 = /* @__PURE__ */ new Set()), !e2.has(t2) && !b(t2, "__ob__") && Object.isExtensible(t2)) {
B(t2, "__ob__", function(t3) {
void 0 === t3 && (t3 = {});
return { value: t3, dep: { notify: h, depend: h, addSub: h, removeSub: h } };
}(t2)), e2.add(t2);
try {
for (var o2 = r(Object.keys(t2)), i2 = o2.next(); !i2.done; i2 = o2.next()) {
var a = t2[i2.value];
(S(a) || C(a)) && !N(a) && Object.isExtensible(a) && J(a, e2);
}
} catch (t3) {
n2 = { error: t3 };
} finally {
try {
i2 && !i2.done && (A2 = o2.return) && A2.call(o2);
} finally {
if (n2)
throw n2.error;
}
}
}
}
function K(t2) {
if (!m(t2))
return t2;
if (!S(t2) && !C(t2) || N(t2) || !Object.isExtensible(t2))
return t2;
var e2 = Y(t2);
return L(e2), e2;
}
function V(t2) {
return function(e2, n2) {
var r2, A2 = function(t3, e3) {
return e3 || d();
}("on".concat((r2 = t2)[0].toUpperCase() + r2.slice(1)), n2);
return A2 && function(t3, e3, n3, r3) {
var A3 = e3.proxy.$options, o2 = t3.config.optionMergeStrategies[n3], i2 = function(t4, e4) {
return function() {
for (var n4 = [], r4 = 0; r4 < arguments.length; r4++)
n4[r4] = arguments[r4];
var A4 = d();
I(t4);
try {
return e4.apply(void 0, function(t5, e5, n5) {
if (n5 || 2 === arguments.length)
for (var r5, A5 = 0, o3 = e5.length; A5 < o3; A5++)
!r5 && A5 in e5 || (r5 || (r5 = Array.prototype.slice.call(e5, 0, A5)), r5[A5] = e5[A5]);
return t5.concat(r5 || Array.prototype.slice.call(e5));
}([], function(t5, e5) {
var n5 = "function" == typeof Symbol && t5[Symbol.iterator];
if (!n5)
return t5;
var r5, A5, o3 = n5.call(t5), i3 = [];
try {
for (; (void 0 === e5 || e5-- > 0) && !(r5 = o3.next()).done; )
i3.push(r5.value);
} catch (t6) {
A5 = { error: t6 };
} finally {
try {
r5 && !r5.done && (n5 = o3.return) && n5.call(o3);
} finally {
if (A5)
throw A5.error;
}
}
return i3;
}(n4), false));
} finally {
I(A4);
}
};
}(e3, r3);
return A3[n3] = o2(A3[n3], i2), i2;
}(f(), A2, t2, e2);
};
}
var _ = V("beforeMount"), Z = V("mounted"), F = V("beforeUpdate"), z = V("updated"), X = V("beforeDestroy"), $ = V("destroyed");
function tt() {
return d().setupContext.slots;
}
var et = { set: function(t2, e2, n2) {
(t2.__composition_api_state__ = t2.__composition_api_state__ || {})[e2] = n2;
}, get: function(t2, e2) {
return (t2.__composition_api_state__ || {})[e2];
} };
function nt(t2) {
var e2 = et.get(t2, "rawBindings") || {};
if (e2 && Object.keys(e2).length) {
for (var n2 = t2.$refs, r2 = et.get(t2, "refs") || [], A2 = 0; A2 < r2.length; A2++) {
var o2 = e2[c2 = r2[A2]];
!n2[c2] && o2 && w(o2) && (o2.value = null);
}
var i2 = Object.keys(n2), a = [];
for (A2 = 0; A2 < i2.length; A2++) {
var c2;
o2 = e2[c2 = i2[A2]];
n2[c2] && o2 && w(o2) && (o2.value = n2[c2], a.push(c2));
}
et.set(t2, "refs", a);
}
}
function rt(t2) {
for (var e2 = [t2._vnode]; e2.length; ) {
var n2 = e2.pop();
if (n2 && (n2.context && nt(n2.context), n2.children))
for (var r2 = 0; r2 < n2.children.length; ++r2)
e2.push(n2.children[r2]);
}
}
function At(t2, e2) {
var n2, A2;
if (t2) {
var o2 = et.get(t2, "attrBindings");
if (o2 || e2) {
if (!o2) {
var i2 = K({});
o2 = { ctx: e2, data: i2 }, et.set(t2, "attrBindings", o2), Q(e2, "attrs", { get: function() {
return null == o2 ? void 0 : o2.data;
}, set: function() {
} });
}
var a = t2.$attrs, c2 = function(e3) {
b(o2.data, e3) || Q(o2.data, e3, { get: function() {
return t2.$attrs[e3];
} });
};
try {
for (var s2 = r(Object.keys(a)), l2 = s2.next(); !l2.done; l2 = s2.next()) {
c2(l2.value);
}
} catch (t3) {
n2 = { error: t3 };
} finally {
try {
l2 && !l2.done && (A2 = s2.return) && A2.call(s2);
} finally {
if (n2)
throw n2.error;
}
}
}
}
}
function ot(t2, e2) {
var n2 = t2.$options._parentVnode;
if (n2) {
for (var r2 = et.get(t2, "slots") || [], A2 = function(t3, e3) {
var n3;
if (t3) {
if (t3._normalized)
return t3._normalized;
for (var r3 in n3 = {}, t3)
t3[r3] && "$" !== r3[0] && (n3[r3] = true);
} else
n3 = {};
for (var r3 in e3)
r3 in n3 || (n3[r3] = true);
return n3;
}(n2.data.scopedSlots, t2.$slots), o2 = 0; o2 < r2.length; o2++) {
A2[a = r2[o2]] || delete e2[a];
}
var i2 = Object.keys(A2);
for (o2 = 0; o2 < i2.length; o2++) {
var a;
e2[a = i2[o2]] || (e2[a] = H(t2, a));
}
et.set(t2, "slots", i2);
}
}
function it(t2, e2, n2) {
var r2 = d();
I(t2);
try {
return e2(t2);
} catch (t3) {
if (!n2)
throw t3;
n2(t3);
} finally {
I(r2);
}
}
function at(t2) {
function e2(t3, n3) {
if (void 0 === n3 && (n3 = /* @__PURE__ */ new Set()), !n3.has(t3) && S(t3) && !w(t3) && !q(t3) && !N(t3)) {
var r2 = f().util.defineReactive;
Object.keys(t3).forEach(function(A2) {
var o2 = t3[A2];
r2(t3, A2, o2), o2 && (n3.add(o2), e2(o2, n3));
});
}
}
function n2(t3, e3) {
return void 0 === e3 && (e3 = /* @__PURE__ */ new Map()), e3.has(t3) ? e3.get(t3) : (e3.set(t3, false), C(t3) && q(t3) ? (e3.set(t3, true), true) : !(!S(t3) || N(t3) || w(t3)) && Object.keys(t3).some(function(r2) {
return n2(t3[r2], e3);
}));
}
t2.mixin({ beforeCreate: function() {
var t3 = this, r2 = t3.$options, A2 = r2.setup, o2 = r2.render;
o2 && (r2.render = function() {
for (var e3 = this, n3 = [], r3 = 0; r3 < arguments.length; r3++)
n3[r3] = arguments[r3];
return it(y(t3), function() {
return o2.apply(e3, n3);
});
});
if (!A2)
return;
if (!k(A2))
return;
var i2 = r2.data;
r2.data = function() {
return function(t4, r3) {
void 0 === r3 && (r3 = {});
var A3, o3 = t4.$options.setup, i3 = function(t5) {
var e3 = { slots: {} }, n3 = ["emit"];
return ["root", "parent", "refs", "listeners", "isServer", "ssrContext"].forEach(function(n4) {
var r4 = "$".concat(n4);
Q(e3, n4, { get: function() {
return t5[r4];
}, set: function() {
} });
}), At(t5, e3), n3.forEach(function(n4) {
var r4 = "$".concat(n4);
Q(e3, n4, { get: function() {
return function() {
for (var e4 = [], n5 = 0; n5 < arguments.length; n5++)
e4[n5] = arguments[n5];
t5[r4].apply(t5, e4);
};
} });
}), e3;
}(t4), a = y(t4);
if (a.setupContext = i3, B(r3, "__ob__", function() {
return Y({}).__ob__;
}()), ot(t4, i3.slots), it(a, function() {
A3 = o3(r3, i3);
}), !A3)
return;
if (k(A3)) {
var c2 = A3;
return void (t4.$options.render = function() {
return ot(t4, i3.slots), it(a, function() {
return c2();
});
});
}
if (m(A3)) {
q(A3) && (A3 = function(t5) {
if (!S(t5))
return t5;
var e3 = {};
for (var n3 in t5)
e3[n3] = G(t5, n3);
return e3;
}(A3)), et.set(t4, "rawBindings", A3);
var s2 = A3;
Object.keys(s2).forEach(function(r4) {
var A4 = s2[r4];
if (!w(A4))
if (q(A4))
C(A4) && (A4 = x(A4));
else if (k(A4)) {
var o4 = A4;
A4 = A4.bind(t4), Object.keys(o4).forEach(function(t5) {
A4[t5] = o4[t5];
});
} else
m(A4) ? n2(A4) && e2(A4) : A4 = x(A4);
!function(t5, e3, n3) {
var r5 = t5.$options.props;
e3 in t5 || r5 && b(r5, e3) || (w(n3) ? Q(t5, e3, { get: function() {
return n3.value;
}, set: function(t6) {
n3.value = t6;
} }) : Q(t5, e3, { get: function() {
return q(n3) && n3.__ob__.dep.depend(), n3;
}, set: function(t6) {
n3 = t6;
} }));
}(t4, r4, A4);
});
}
}(t3, t3.$props), k(i2) ? i2.call(t3, t3) : i2 || {};
};
}, mounted: function() {
rt(this);
}, beforeUpdate: function() {
At(this);
}, updated: function() {
rt(this);
} });
}
function ct(t2, e2) {
if (!t2)
return e2;
if (!e2)
return t2;
for (var n2, r2, A2, o2 = v ? Reflect.ownKeys(t2) : Object.keys(t2), i2 = 0; i2 < o2.length; i2++)
"__ob__" !== (n2 = o2[i2]) && (r2 = e2[n2], A2 = t2[n2], b(e2, n2) ? r2 !== A2 && S(r2) && !w(r2) && S(A2) && !w(A2) && ct(A2, r2) : e2[n2] = A2);
return e2;
}
function st(t2) {
(function(t3) {
return c && b(t3, u);
})(t2) || (t2.config.optionMergeStrategies.setup = function(t3, e2) {
return function(n2, r2) {
return ct(k(t3) ? t3(n2, r2) || {} : void 0, k(e2) ? e2(n2, r2) || {} : void 0);
};
}, function(t3) {
c = t3, Object.defineProperty(t3, u, { configurable: true, writable: true, value: true });
}(t2), at(t2));
}
var lt, ut = { install: function(t2) {
return st(t2);
} };
"undefined" != typeof window && window.Vue && window.Vue.use(ut), (lt = (lt = t) || t) && !lt.__composition_api_installed__ && lt.use(ut);
var gt = t.version;
const ft = "data:image/jpeg;base64,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", It = { loadingImg: ft, errorImg: "data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVFRENBRUZFRUQ0QzExRUY5MDUwRTE1RDhDQThCRUVCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVFRENBRUZERUQ0QzExRUY5MDUwRTE1RDhDQThCRUVCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUM1NDczNTJFRDQ2MTFFRjk3NUY4MDM3RkM3RjE5OEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUM1NDczNTNFRDQ2MTFFRjk3NUY4MDM3RkM3RjE5OEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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", delay: 500 }, dt = { root: null, rootMargin: "0px", threshold: 0 };
var pt = ((t2) => (t2.LOADING = "loading", t2.LOADED = "loaded", t2.ERROR = "error", t2))(pt || {}), yt = ((t2) => (t2.IMG_ID = "data-img-id", t2.ORIG_SRC = "data-orig-src", t2.TIMEOUT_ID = "data-timeout-id", t2.LOAD_STATUS = "data-load-status", t2))(yt || {});
function Et(t2, e2 = ["object", "array", "function", "date", "regexp", "error", "set", "map"]) {
if (null === t2 || "object" != typeof t2 && "function" != typeof t2)
return t2;
if (n2 = t2, "[object Object]" === toString.call(n2) && e2.includes("object"))
return Object.keys(t2).reduce((n3, r2, A2) => (n3[r2] = Et(t2[r2], e2), n3), {});
if (function(t3) {
return "[object Array]" === toString.call(t3) || Array.isArray(t3);
}(t2) && e2.includes("array"))
return t2.reduce((t3, n3, r2) => (t3[r2] = Et(n3, e2), t3), []);
if (function(t3) {
return "[object Function]" === toString.call(t3) || "function" == typeof t3;
}(t2) && e2.includes("function")) {
return new Function("return " + t2.toString())();
}
if (function(t3) {
return "[object Date]" === toString.call(t3) || t3 instanceof Date;
}(t2) && e2.includes("date"))
return new Date(t2.getTime());
if (function(t3) {
return "[object RegExp]" === toString.call(t3) || t3 instanceof RegExp;
}(t2) && e2.includes("regexp"))
return new RegExp(t2.source, t2.flags);
if (function(t3) {
return "[object Error]" === toString.call(t3) || t3 instanceof Error;
}(t2) && e2.includes("error")) {
const e3 = { ...t2 };
Object.getOwnPropertyNames(t2).forEach((n4) => {
"stack" === n4 && (e3[n4] = t2[n4].split("\n")), t2.hasOwnProperty("k") && "message" !== n4 && "name" !== n4 && "stack" !== n4 && "constructor" !== n4 && (e3[n4] = t2[n4]);
});
const n3 = new Error(t2.message);
return n3.name = t2.name, n3.stack = e3.stack.join("\n") + " ", Object.getOwnPropertyNames(e3).forEach((t3) => {
["message", "name", "stack"].includes(t3) || Reflect.defineProperty(n3, t3, Reflect.getOwnPropertyDescriptor(e3, t3));
}), n3;
}
if (t2 instanceof Set && e2.includes("set")) {
const n3 = Array.from(t2).reduce((t3, n4, r2) => (t3[r2] = Et(n4, e2), t3), []);
return /* @__PURE__ */ new Set([...n3]);
}
if (t2 instanceof Map && e2.includes("map")) {
const n3 = Et(Object.fromEntries(t2), e2);
return new Map(Object.entries(n3));
}
var n2;
return t2;
}
const _vt = class {
constructor(t2, e2, n2) {
__publicField(this, "_lazyOptions", Et(It));
__publicField(this, "_observerOptions", Et(dt));
__publicField(this, "_htmlFieldName");
__publicField(this, "_imgObserver", null);
__publicField(this, "_imgId", 1);
__publicField(this, "_dataImgIdList", []);
__publicField(this, "_logMsgPrefix", "[vue-lazyload-imgs]:");
__publicField(this, "_modelHtmlIdx", 0);
__publicField(this, "_modelHtmlArr", []);
_vt.instId++, this._lazyOptions = Object.assign(this._lazyOptions, t2), this._observerOptions = Object.assign(this._observerOptions, e2), this._htmlFieldName = n2;
}
setImgSrcToLoadingImg(t2, e2, n2) {
if (Array.isArray(t2) && t2.length > 0) {
let r2 = "";
const A2 = new RegExp("<\\s*img\\s+src\\s*=\\s*.*(\\/)?\\s*>", "gi");
let o2 = null;
t2.forEach((t3) => {
if (t3.children || "string" == typeof t3.children)
this.setImgSrcToLoadingImg(t3.children, e2, n2);
else {
const n3 = t3?.data?.attrs, i2 = t3?.data?.domProps;
"img" === t3.tag && n3 ? (r2 = `inst${_vt.instId}-${this._imgId++}`, n3[yt.IMG_ID] = r2, this._dataImgIdList.push(r2), n3[yt.ORIG_SRC] = n3.src, n3.src = this._lazyOptions.loadingImg) : i2?.innerHTML && (o2 = i2?.innerHTML.match(A2)) && (o2.forEach((t4) => {
r2 = `inst${_vt.instId}-${this._imgId++}`, this._dataImgIdList.push(r2);
const e3 = `${yt.IMG_ID}="${r2}"`, n4 = t4.match(/\s*src\s*=\s*['"`]?(.*)['"`].?/i)[1], A3 = `${yt.ORIG_SRC}="${n4}"`;
let o3 = t4.replace(/((\/?)\s*>)/, ` ${e3} ${A3} $1`);
o3 = o3.replace(n4, this._lazyOptions.loadingImg), i2.innerHTML = i2.innerHTML.replace(t4, o3);
}), e2 && Array.isArray(e2) && this._htmlFieldName && (this._modelHtmlArr[this._modelHtmlIdx] = { ...e2[this._modelHtmlIdx], [this._htmlFieldName]: i2.innerHTML }, this._modelHtmlIdx++));
}
});
}
return this._dataImgIdList;
}
createImgObserver() {
return this._imgObserver = new IntersectionObserver((t2, e2) => {
t2.forEach(async (t3) => {
t3.isIntersecting && (this._lazyOptions.delay > 0 ? await this._delayIntersectionCallback(t3) : this._intersectionCallback(t3));
});
}, this._observerOptions), this._imgObserver;
}
_intersectionCallback(t2) {
t2.isIntersecting && (this._imgObserver?.unobserve(t2.target), this._setImgSrc(t2.target));
}
_delayIntersectionCallback(t2) {
return new Promise((e2, n2) => {
if (t2.isIntersecting) {
if (t2.target.hasAttribute(yt.TIMEOUT_ID))
return;
let e3 = setTimeout(() => {
this._intersectionCallback(t2), t2.target.removeAttribute(yt.TIMEOUT_ID);
}, this._lazyOptions.delay);
t2.target.setAttribute(yt.TIMEOUT_ID, String(e3));
} else
this.clearLazyTimeout(t2.target);
});
}
_setImgSrc(t2) {
if (t2.hasAttribute(yt.ORIG_SRC)) {
let e2 = t2.getAttribute("src"), n2 = t2.getAttribute(yt.ORIG_SRC);
e2 !== n2 && (this._lifecycle(pt.LOADING, t2), t2.setAttribute("src", n2)), this._listenImgStatus(t2, () => {
t2.getAttribute("src") !== this._lazyOptions.errorImg && this._lifecycle(pt.LOADED, t2);
}, () => {
if (this._imgObserver?.unobserve(t2), this._lifecycle(pt.ERROR, t2), this._lazyOptions.errorImg) {
t2.getAttribute("src") !== this._lazyOptions.errorImg && t2.setAttribute("src", this._lazyOptions.errorImg);
}
console.error(`${this._logMsgPrefix} \u56FE\u7247\u52A0\u8F7D\u5931\u8D25\uFF0C\u56FE\u7247 url \u5730\u5740\u662F\uFF1A${t2.getAttribute(yt.ORIG_SRC)}`);
});
}
}
_listenImgStatus(t2, e2, n2) {
t2.onload = e2, t2.onerror = n2;
}
clearLazyTimeout(t2) {
t2.hasAttribute(yt.TIMEOUT_ID) && (clearTimeout(Number(t2.getAttribute(yt.TIMEOUT_ID))), t2.removeAttribute(yt.TIMEOUT_ID));
}
_lifecycle(t2, e2) {
const { lifeFunc: n2 } = this._lazyOptions;
switch (t2) {
case pt.LOADING:
e2.setAttribute(yt.LOAD_STATUS, pt.LOADING), n2 && "function" == typeof n2[pt.LOADING] && n2[pt.LOADING]?.(e2);
break;
case pt.LOADED:
e2.setAttribute(yt.LOAD_STATUS, pt.LOADED), n2 && "function" == typeof n2[pt.LOADED] && n2[pt.LOADED]?.(e2);
break;
case pt.ERROR:
e2.setAttribute(yt.LOAD_STATUS, pt.ERROR), n2 && "function" == typeof n2[pt.ERROR] && n2[pt.ERROR]?.(e2);
}
}
};
let vt = _vt;
__publicField(vt, "instId", 0);
function ht(t2, e2, n2, r2, A2, o2, i2, a) {
var c2, s2 = "function" == typeof t2 ? t2.options : t2;
if (e2 && (s2.render = e2, s2.staticRenderFns = n2, s2._compiled = true), r2 && (s2.functional = true), o2 && (s2._scopeId = "data-v-" + o2), i2 ? (c2 = function(t3) {
(t3 = t3 || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) || "undefined" == typeof __VUE_SSR_CONTEXT__ || (t3 = __VUE_SSR_CONTEXT__), A2 && A2.call(this, t3), t3 && t3._registeredComponents && t3._registeredComponents.add(i2);
}, s2._ssrRegister = c2) : A2 && (c2 = a ? function() {
A2.call(this, (s2.functional ? this.parent : this).$root.$options.shadowRoot);
} : A2), c2)
if (s2.functional) {
s2._injectStyles = c2;
var l2 = s2.render;
s2.render = function(t3, e3) {
return c2.call(e3), l2(t3, e3);
};
} else {
var u2 = s2.beforeCreate;
s2.beforeCreate = u2 ? [].concat(u2, c2) : [c2];
}
return { exports: t2, options: s2 };
}
const Qt = {};
var Bt = ht({ name: "LazyLoadImgs", props: { value: { type: [String, Array], required: false }, lazyOptions: { type: Object, required: false, default: () => Et(It) }, observerOptions: { type: Object, required: false, default: () => Et(dt) }, htmlFieldName: { type: String, required: false } }, emits: [], setup(t2, { emit: e2, attrs: n2 }) {
const r2 = Object.assign({}, It, t2.lazyOptions), A2 = Object.assign({}, dt, t2.observerOptions), o2 = new vt(r2, A2, t2.htmlFieldName);
let i2 = vt.instId;
const a = d();
let c2;
return _(() => {
const n3 = (() => {
let t3 = [];
if (gt.startsWith("2.6")) {
let e3 = a?.slots;
t3 = e3?.default;
} else {
let e3 = tt();
t3 = e3.default?.();
}
return t3;
})(), r3 = t2.value;
o2.setImgSrcToLoadingImg(n3, r3, e2);
}), Z(async () => {
c2 = o2.createImgObserver();
const t3 = document.querySelectorAll(`img[${yt.IMG_ID}^=inst${i2}-]`);
await function(t4, e3) {
return new Promise((n3, r3) => {
const A3 = new Image();
A3.onload = (t5) => n3({ img: A3, err: null }), A3.onerror = (n4) => {
console.warn(`[lazy-load-imgs]: Could not load loadingImg at ${t4}.
Now using the default base64 encoding format for preloaded images(loadingImg).`), A3.src = ft;
const o3 = document.querySelectorAll(`img[${yt.IMG_ID}^=inst${e3}-]`);
Array.prototype.forEach.call(o3, (t5) => {
t5.setAttribute("src", ft);
}), r3({ img: A3, err: n4 });
}, A3.src = t4;
});
}(r2.loadingImg, i2).catch((t4) => t4), Array.prototype.forEach.call(t3, (t4) => c2.observe(t4));
}), F(() => {
}), z(() => {
}), X(() => {
const t3 = document.querySelectorAll(`img[${yt.IMG_ID}^=inst${i2}-][${yt.TIMEOUT_ID}]`);
Array.prototype.forEach.call(t3, (t4) => o2.clearLazyTimeout(t4));
}), $(() => {
vt.instId--, c2.disconnect();
}), { instId: i2 };
} }, function() {
var t2 = this, e2 = t2.$createElement;
return (t2._self._c || e2)("div", { staticClass: "lazyload-all-box" }, [t2._t("default")], 2);
}, [], false, bt, "cd104f1a", null, null);
function bt(t2) {
for (let t3 in Qt)
this[t3] = Qt[t3];
}
var Ct = function() {
return Bt.exports;
}();
const mt = [Ct], St = (t2, e2 = {}) => {
Object.assign(It, e2), mt.forEach((e3, n2) => {
t2.component(e3.name, e3);
});
};
export { Ct as LazyLoadImgs, St as default };
//# sourceMappingURL=lazy-load-imgs.es.js.map