UNPKG

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
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