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
194 lines (193 loc) • 26.5 kB
JavaScript
var h = Object.defineProperty;
var b = (t, A, o) => A in t ? h(t, A, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[A] = o;
var r = (t, A, o) => b(t, typeof A != "symbol" ? A + "" : A, o);
import { defineComponent as p, getCurrentInstance as D, onBeforeMount as f, onMounted as O, onBeforeUpdate as P, onUpdated as G, onBeforeUnmount as L, onUnmounted as N, version as T, useSlots as q, openBlock as j, createElementBlock as x, renderSlot as W } from "vue";
const R = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAEdAR0DASIAAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAIFAQMGBAf/xAA6EAACAQICBwcCBQMEAwEAAAAAAQIDBBFxBRMxMkFTkhIVITNRUpEiQxRCYaGxI8HRYnKB8CSCouH/xAAWAQEBAQAAAAAAAAAAAAAAAAAAAQL/xAAXEQEBAQEAAAAAAAAAAAAAAAAAAREx/9oADAMBAAIRAxEAPwD7+AAMA81zfUbbFTljP2o8b03HHwoSf69pA1bYjEqe+o8iXUh31HkS6kMTYtsRiVPfUeRLqQ76jyJdSGGxbYjEqe+lyJdSHfUeRLqQw2LbEYlT31HkS6kO+o8iXUhhsW2IxKnvqPIl1Id9R5EupDDYtsRiVPfUeRLqQ76jyJdSGGxbYjEqe+o8iXUh30uRLqQw2LbEYlT31HkS6kO+o8iXUhhsW2IxKnvqPIl1Id9R5EupDDYtsRiVPfS5D6kO+o8iXUhhsW2IxKnvqPIl1Id9R5EupDDYtsRiVPfUeRLqQ76XIl1IYbFtiMSp76jyJdSHfUeRLqQw2LUFV31HkPqQ76jyJdSGGxbAraWmKM5JThKGPHaiwhOM4qUJKSfFMKkAAMHlv7l2tu5Rf1y8I4nqKjTUn26UeGDYKq23JttttvHxMAlTpzrTUIR7UnsRphEFktDVmvqqwT/5M9y1OdD4ZFxWAs+5anOh8Mdy1OdD4YMVgLPuWpzofDHctTnQ+GDFYCz7lqc6Hwx3LU50PhgxWAs+5anOh8Mdy1OdD4YMVgLPuWpzofDHctTnQ+GDFYCz7lqc6Hwx3LU50PhgxWAs+5anOh8Mdy1OdD4YMVgLPuWpzofDHctTnQ+GDFYCz7lqc6Hwx3LU50PhgxWAs+5anOh8Mdy1OdD4YMVgLPuWpzofDHctTnQ+GDFYCz7lqc6Hwx3LU50PhgxWAs+5avOh8HnudH1rWPbeEoeseBTHlR7dHXUqNdU5P+nN4ZM8OwzFtSTW3FfyEjrAYi8Yp/oZMtsFPprzKWTLgp9NeZSyYiXirLXQsU5VZNfUkliVRb6E+9mi1ItgARoAMNpLFvBAZB5KukrWk8HPtP8A0rE0PTNDHwp1P2BqyB4qelbWbwc3D/csD1xnGaxi00+KAkAAAAAAAAAAAAAAAAAAAAAAAAa60VOlKLWKaZsIz3HkErlMMPAyt5Zow9plbyzRpHVQ3I5IkRhuRyRIy0wU+mvMpZMuCn015lLJiJeKst9CfezRUFvoT72aLUi2AMSaUW3sRGmq4uadvSc6j8OC9Shub2tdSfafZhwijF5cu6ruTf0LwivQ8+ZZGbQGylQq15dmnByf8HrWiLlrFuCfpiUeA20bmrbz7VOWH6cGZrWla38yDS9VsNIR0VnfQuoelRbYnrOVpVZUasakHhKPjmdLQrRr0Y1I7H+xMalbQARQAAAAAAAAAAAAAAAAAACM9x5EiM9x5BK5R7TK3lmjD2mVvLNGkdVDcjkiRGG5HJEjLTBT6a8ylky4KfTXmUsmIl4qy30J97NFQW+hPvZotSLY8WlKrp2Ukng5vso9pVaa8uj/ALn/AARqqc229GVevGlHbLa/RGostDJO5qPio/3NMrajRhQpqEFgl+5sSBlGWkZwU4uMknF7U+Jz1/afha+EdyXjE6MrNMxX4em+KngixKpS30NV8KlJ8PqRUHv0O/8Azmv9D/sKkXpkwZI0AAAAAAAAAAAAAAAAAAARnuPIkRnuPIJXKPaZW8s0Ye0yt5Zo0jqobkckSIw3I5IkZaYKfTXmUsmXBT6a8ylkxEvFWW+hPvZoqC30J97NFqRbFdpiDlaxmluy8SxNdekq1GdN/mWBGnLHq0fcK3u4yluy+lnnqQlSm6c1hKLwImmXWLxRlFDaaTqUIqFROcPXij3rS9rhjjJfp2SYuveUul7iM6kaMXj2PF4epm50vKcXGhFxx/MysbbbeOOILWCz0NBuvUqcIxw+SsOi0fbu3tYp+EpeLFSPUZAI0AAAAAAAAAAAAAAAAAAARnuPIkRnuPIJXKPaZW8s0Ye0yt5Zo0jqobkckSIw3I5IkZaYKfTXmUsmXBT6a8ylkxEvFWW+hPvZoqC30J97NFqRbAAjTwaQsPxMdZTw1qXyUUouEnGScWtqaOsPPc2dG5X1x+rhJbRKljmgWdXQ1SL/AKdSMl/q8GaHou7T8tP/ANkXUx4x/wBwLCnoivJ/XKEFniWNto6hbvtYdufukNMeTR2jmpKtWX+2P92W4BGgAAAAAAAAAAAAAAPNVv7ejNxnVSa2peIHpBpo3NK4WNKal+nE3AAAAIz3HkSIz3HkErlHtMreWaMPaZW8s0aR1UNyOSJEYbkckSMtMFPprzKWTLgp9NeZSyYiXirLfQn3s0VBb6E+9mi1ItgARoAAGDIAAAAAAAAAAAAAAAAAAGG8Fi3gU1/pJ1MaVB/TslL1/RBNbb/SXZbo0HjL80l/Yp8Xx2vawDUS1OnUnSqKcJYSXE6CyvYXVP0qLeic4Sp1JUainCXZktjBrqweSyvIXVP0qLeiesy0EZ7jyJEZ7jyCVyj2mVvLNGHtMreWaNI6qG5HJEiMNyOSJGWmCn015lLJlwU+mvMpZMRLxVlvoT72aKgt9CfezRakWwAI0AAAAAAAAAAAAAAAAAAARlNQi5SeCW1sxUqQpU3OclGK2tlBe307qXZWMaafgvXMqWtl/pGVx/TpPClxfuPADKTk0km29mARgtbLRfajrLhPx2QxNtho5UsKtZJz4R9pZjVxzd5ZztZ+OLpvZLA8x1VWlCtTcJrGLOevLOdpU8cXB7JBMaKdSVGpGcJdmS2M6CzvYXVP0qLbE53+SVOpOlUU4S7MlsZSOrIz3HkeazvYXUPSot6J6ZbksjKuUe0yt5Zow9rMreWaNMx1UNyOSJEYbkckSMtsFPprzKWTLgp9NeZSyYiXirLfQn3s0VBb6E+9mi1ItgARoAAAAxJqKbbSS9QMmiV5bQl2ZV4J+naKu/0k6uNOg8IcZeuRWlxNdZGSksYtNeqMnO2N5K1qYPF03vL+50FOcakFOEsYvxTRFSAAAAADTWuKdvTc6ksEv3yI3N1TtablN4vhFbWyguLmpc1O3N7NiWxFS1K7u6l1Uxl4QW7H/vE84J0qU61RQpxbk+HAqIxjKclGCbb8ElxL2w0fG2SnPCVV/t+hssrKFrDHeqPbL/B6yVZAAEUIVaUK1Nwmk4smAObvLOdpU4um9kl/c8x1VWlCtTcJrGLOevLOdpUw8XTeySLGbGinUnSqKcJdmS2P/Jf2t7C6ovhUS+qJzxKnUlTmpQbUkUlxF7WZW8s0Y/X1MreWaA6qG5HJEiMNyOSJGWmCn015lLJlwU+mvMpZMRLxVlvoT72aKgt9CfezRakWwAI0AGutWhQpuc5YJAZqTjTg5zklFbWyivdISuW4QbjS/dkLy8ndywf00+EV/J5S4lo/gGYxc5KMU234YJbSzjoiX4ZtywrbUlsX6FTFWe2wvnbT7M3jSlt/R+p45RlCTjJNSTwaZgHHWRkpRTTTT4mSi0ff6iSpVG9W34N/lf8AgvE014Ga0yeS8vYWsPH6qj3Ykb2/japxjhKq9i4LMoZzlUm5zblJ8WVLUq1adeo51JYyfxkjWDfa2tS6qYR8Irek1sKiNC3qXNVQprF8W9iOgtbSnaU+zBYye2T2slb29O2pqFOOC4vi2biVZAAEUAAAAACFWlCtTcJrGLJgDm7yzna1MH403uyPNtOqq0oVoOE44xZz15ZztKnj403skVmx5jK3lmjAW8s0VI6uG5HJEiMPLjkiRltgp9NeZSyZcFPprzKWTES8VZb6E+9mioLfQn3s0WpFsBieW8vIWkPH6pvZFbSNJ3N1TtqXbm8lxZz9zc1Lqp2p7FuxWxEa1apXqOdR4t/CyNZcZ0JU6c6tRQhHtSfAnQoVLioqdNYvi+CL+0s6drDCPjJ+Lk+IMa7Kwjax7UvqqPj6ZHsWwyCNK/SNh+IjrKaSqpdRRtNPB+DXA6wrNJWGt/rUo/Wl4pcUWVLFL/B7KOkq1G3dJYN/lb4HjBUZbcm2223tb2mAe6x0fK5anUTjSX7ga7Oxndzx8Y01tl6/oX9KjCjBQpx7MUZhCNOChCKjFbEiZlZAABQAAAAAAAAAADXXpxqUpRmsVgbCM9x5Acphh4BbyzQe0yt5Zo0y6qG5HJEiMNyOSJGWmCn015lLJlwU+mvMpZMRLxVltoXZWzRUnpt7uVrSqKC+ufF8DSLa9v420ezDCVV8PTMoqlSVWbnOTlJ7WzDbk8W8W34tmABvtbSpdVOzBYJb0vQ2WdjO6lxjTW2X+C+pUYUKahTWEUQkRt7anbUlCmsPV8WbgCNAAAGDIAqdJWGPar0V47ZRX8lRtOswKbSVh2JOvRj9O2UVw/UsSqwudG33biqFVpSSwi/VFN6BNpprwe0rMdYZK7R9/wDiI6uo8KsePqWJlsAAAAAAAAAAAAACM9x5EiM9x5BK5R7TK3lmjD2mVvLNGkdVDcjkiRGG5HJEjLTBT6a8ylky4KfTXmUsmIlVYANMh7rHR8rlqdRYU/5Ntho3WJVa6wh+WL45lzFKKSWxE1qRiEI04KMUlFbEiQBFAAAAAAAADDWOK4MyAKLSFjqJOrTX9NvxS/KyvOscVJNNJp+GBQaQsXbTc4eNKX/yyypY8cZOMlKLwkvFNF/YXyuodmTSqx2r1Of/AJJQnKnOM4SaktjLUjqweSyvI3VPgqi3kesy0AAAAAAAAAAARnuPIkRnuPIJXKPaZW8s0Ye0yt5Zo0jqobkckSIw3I5IkZaYKfTXmUsmXBT6a8ylkxEvFWWOibanWqTnUWPYawXAri30J97NFqRa4GQCNAAAAAAAAAAAAAARnCNSDjJJxe1EgBzl9ZStamKxdJ7r9H6HlOqqUoVacoTWMXtOdu7SdpU7L8YPdl6//pZWbGqjVlQqRnB4SR0Npdwu6Xaj4SW9H0ObNlvXnbVVUg/Fbf1QI6kGi2uYXNJTg80+DN5GgAAAAAAAAjPceRIjPceQSuUe0yt5Zow9plbyzRpHVQ3I5IkRhuRyRIy0wU+mvMpZMuCn015lLJiJeKsttCfezRUnv0XdRoVpQngoz4v1KkXwMKSaxWDXqhiRrWQYxGIGQYxGIGQYxGIGQYxGIGQYxGIGQYxGIGTVXoQr0nTmsU/2NmIA5m6tp2tXsS8V+V+qNJ01zbwuaLhNZP0ZztehO3qunNeK2P1RWalbXM7Wqpw2cY+qOioV4XFKNSm8Ys5c9FndztKnaXjB70fUErpQa6VWNanGcHjFrFE8SNMgxiMQMgxiMQMkZ7ksmZxPNeXULajJtpyawUfUDnOLMreWaMGVvLNGmXVQ3I5IkRhuRyRIy0FTpmm+zSqcE+yy2NdalCtSlTmvpaA5YHpubGtbS8YuUOEkjzf8/uaZSU5rZOXyNZP3y+WRARLWT98vljWT98vlkQFS1k/fL5Y1k/fL5ZEAS1k/fL5Y1k/fL5ZEAS1k/fL5Y1k/fL5ZEAS1k/fL5Y1k/fL5ZEAS1k/fL5Y1k/fL5ZEAS1k/fL5Y1k/fL5IgCWsn75fJhyct5t5swAgAAMqUorBSaX6MzrJ++XyyICpayfvl8sayfvl8siAJayfvl8sayfvl8siAJayfvl1Mi228W236tgBAlSg6laEFtlJJCMJ1JKMIuTfosS50do90HravmcF6E1ZFilhFL0MhbARoAAGME+BF0aT204dKJgDXqKXKh0oailyodKNgA16ilyodKGopcqHSjYANeopcqHShqKXKh0o2ADXqKXKh0oailyodKNgA16ilyodKGopcqHSjYANeopcqHShqKXKh0o2ADXqKXKh0oailyodKNgA16ilyodKGopcqHSjYANeopcqHShqKXKh0o2ADXqKXKh0oailyodKNgA16ilyodKGopcqHSjYANeopcqHShqKXKh0o2ADXqKXKh0oailyodKNgA16ilyodKGopcqHSjYAIxhCG7FRyWBIAAAAP/9k=", H = { loadingImg: R, errorImg: "data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVFRENBRUZFRUQ0QzExRUY5MDUwRTE1RDhDQThCRUVCIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVFRENBRUZERUQ0QzExRUY5MDUwRTE1RDhDQThCRUVCIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUM1NDczNTJFRDQ2MTFFRjk3NUY4MDM3RkM3RjE5OEMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUM1NDczNTNFRDQ2MTFFRjk3NUY4MDM3RkM3RjE5OEMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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", delay: 500 }, k = { root: null, rootMargin: "0px", threshold: 0 };
var a = ((t) => (t.LOADING = "loading", t.LOADED = "loaded", t.ERROR = "error", t))(a || {}), l = ((t) => (t.IMG_ID = "data-img-id", t.ORIG_SRC = "data-orig-src", t.TIMEOUT_ID = "data-timeout-id", t.LOAD_STATUS = "data-load-status", t))(l || {});
function B(t, A = ["object", "array", "function", "date", "regexp", "error", "set", "map"]) {
if (t === null || typeof t != "object" && typeof t != "function") return t;
if (o = t, toString.call(o) === "[object Object]" && A.includes("object")) return Object.keys(t).reduce((e, g, i) => (e[g] = B(t[g], A), e), {});
if (function(e) {
return toString.call(e) === "[object Array]" || Array.isArray(e);
}(t) && A.includes("array")) return t.reduce((e, g, i) => (e[i] = B(g, A), e), []);
if (function(e) {
return toString.call(e) === "[object Function]" || typeof e == "function";
}(t) && A.includes("function"))
return new Function("return " + t.toString())();
if (function(e) {
return toString.call(e) === "[object Date]" || e instanceof Date;
}(t) && A.includes("date")) return new Date(t.getTime());
if (function(e) {
return toString.call(e) === "[object RegExp]" || e instanceof RegExp;
}(t) && A.includes("regexp")) return new RegExp(t.source, t.flags);
if (function(e) {
return toString.call(e) === "[object Error]" || e instanceof Error;
}(t) && A.includes("error")) {
const e = { ...t };
Object.getOwnPropertyNames(t).forEach((i) => {
i === "stack" && (e[i] = t[i].split(`
`)), t.hasOwnProperty("k") && i !== "message" && i !== "name" && i !== "stack" && i !== "constructor" && (e[i] = t[i]);
});
const g = new Error(t.message);
return g.name = t.name, g.stack = e.stack.join(`
`) + " ", Object.getOwnPropertyNames(e).forEach((i) => {
["message", "name", "stack"].includes(i) || Reflect.defineProperty(g, i, Reflect.getOwnPropertyDescriptor(e, i));
}), g;
}
if (t instanceof Set && A.includes("set")) {
const e = Array.from(t).reduce((g, i, c) => (g[c] = B(i, A), g), []);
return /* @__PURE__ */ new Set([...e]);
}
if (t instanceof Map && A.includes("map")) {
const e = B(Object.fromEntries(t), A);
return new Map(Object.entries(e));
}
var o;
return t;
}
const m = class m {
constructor(A, o, e) {
r(this, "_lazyOptions", B(H));
r(this, "_observerOptions", B(k));
r(this, "_htmlFieldName");
r(this, "_imgObserver", null);
r(this, "_imgId", 1);
r(this, "_dataImgIdList", []);
r(this, "_logMsgPrefix", "[vue-lazyload-imgs]:");
r(this, "_modelHtmlIdx", 0);
r(this, "_modelHtmlArr", []);
m.instId++, this._lazyOptions = Object.assign(this._lazyOptions, A), this._observerOptions = Object.assign(this._observerOptions, o), this._htmlFieldName = e;
}
setImgSrcToLoadingImg(A, o, e) {
if (Array.isArray(A) && A.length > 0) {
let g = "";
const i = new RegExp("<\\s*img\\s+src\\s*=\\s*.*(\\/)?\\s*>", "gi");
let c = null;
A.forEach((E) => {
if (E.children || typeof E.children == "string") this.setImgSrcToLoadingImg(E.children, o, e);
else {
const Q = E.props, s = E.props;
if (E.type === "img" && Q) g = `inst${m.instId}-${this._imgId++}`, Q[l.IMG_ID] = g, this._dataImgIdList.push(g), Q[l.ORIG_SRC] = Q.src, Q.src = this._lazyOptions.loadingImg;
else if (s?.innerHTML && (c = s?.innerHTML.match(i)) && (c.forEach((I) => {
g = `inst${m.instId}-${this._imgId++}`, this._dataImgIdList.push(g);
const C = `${l.IMG_ID}="${g}"`, d = I.match(/\s*src\s*=\s*['"`]?(.*)['"`].?/i)[1], y = `${l.ORIG_SRC}="${d}"`;
let n = I.replace(/((\/?)\s*>)/, ` ${C} ${y} $1`);
n = n.replace(d, this._lazyOptions.loadingImg), s.innerHTML = s.innerHTML.replace(I, n);
}), o)) {
if (typeof o == "string") e("update:modelValue", s.innerHTML);
else if (Array.isArray(o)) {
if (!this._htmlFieldName) return void console.error(`${this._logMsgPrefix} The Props htmlFieldName cannot be empty!
Please specify, for example:
<LazyLoadImgs htmlFieldName="content">Some HTML tags</LazyLoadImgs>`);
this._modelHtmlArr[this._modelHtmlIdx] = { ...o[this._modelHtmlIdx], [this._htmlFieldName]: s.innerHTML }, this._modelHtmlIdx++;
}
}
}
}), this._modelHtmlArr.length && this._htmlFieldName && e("update:modelValue", this._modelHtmlArr);
}
return this._dataImgIdList;
}
createImgObserver() {
return this._imgObserver = new IntersectionObserver((A, o) => {
A.forEach(async (e) => {
e.isIntersecting && (this._lazyOptions.delay > 0 ? await this._delayIntersectionCallback(e) : this._intersectionCallback(e));
});
}, this._observerOptions), this._imgObserver;
}
_intersectionCallback(A) {
A.isIntersecting && (this._imgObserver?.unobserve(A.target), this._setImgSrc(A.target));
}
_delayIntersectionCallback(A) {
return new Promise((o, e) => {
if (A.isIntersecting) {
if (A.target.hasAttribute(l.TIMEOUT_ID)) return;
let g = setTimeout(() => {
this._intersectionCallback(A), A.target.removeAttribute(l.TIMEOUT_ID);
}, this._lazyOptions.delay);
A.target.setAttribute(l.TIMEOUT_ID, String(g));
} else this.clearLazyTimeout(A.target);
});
}
_setImgSrc(A) {
if (A.hasAttribute(l.ORIG_SRC)) {
let o = A.getAttribute("src"), e = A.getAttribute(l.ORIG_SRC);
o !== e && (this._lifecycle(a.LOADING, A), A.setAttribute("src", e)), this._listenImgStatus(A, () => {
A.getAttribute("src") !== this._lazyOptions.errorImg && this._lifecycle(a.LOADED, A);
}, () => {
this._imgObserver?.unobserve(A), this._lifecycle(a.ERROR, A), this._lazyOptions.errorImg && A.getAttribute("src") !== this._lazyOptions.errorImg && A.setAttribute("src", this._lazyOptions.errorImg), console.error(`${this._logMsgPrefix} 图片加载失败,图片 url 地址是:${A.getAttribute(l.ORIG_SRC)}`);
});
}
}
_listenImgStatus(A, o, e) {
A.onload = o, A.onerror = e;
}
clearLazyTimeout(A) {
A.hasAttribute(l.TIMEOUT_ID) && (clearTimeout(Number(A.getAttribute(l.TIMEOUT_ID))), A.removeAttribute(l.TIMEOUT_ID));
}
_lifecycle(A, o) {
const { lifeFunc: e } = this._lazyOptions;
switch (A) {
case a.LOADING:
o.setAttribute(l.LOAD_STATUS, a.LOADING), e && typeof e[a.LOADING] == "function" && e[a.LOADING]?.(o);
break;
case a.LOADED:
o.setAttribute(l.LOAD_STATUS, a.LOADED), e && typeof e[a.LOADED] == "function" && e[a.LOADED]?.(o);
break;
case a.ERROR:
o.setAttribute(l.LOAD_STATUS, a.ERROR), e && typeof e[a.ERROR] == "function" && e[a.ERROR]?.(o);
}
}
};
r(m, "instId", 0);
let u = m;
const Y = p({ name: "LazyLoadImgs", props: { modelValue: { type: [String, Array], required: !1 }, lazyOptions: { type: Object, required: !1, default: () => B(H) }, observerOptions: { type: Object, required: !1, default: () => B(k) }, htmlFieldName: { type: String, required: !1 } }, emits: ["update:modelValue"], setup(t, { emit: A, attrs: o }) {
const e = Object.assign({}, H, t.lazyOptions), g = Object.assign({}, k, t.observerOptions), i = new u(e, g, t.htmlFieldName);
let c = u.instId;
const E = D();
let Q;
return f(() => {
const s = (() => {
let C = [];
return T.startsWith("2.6") ? C = E?.slots?.default : C = q().default?.(), C;
})(), I = t.modelValue;
i.setImgSrcToLoadingImg(s, I, A);
}), O(async () => {
Q = i.createImgObserver();
const s = document.querySelectorAll(`img[${l.IMG_ID}^=inst${c}-]`);
await function(I, C) {
return new Promise((d, y) => {
const n = new Image();
n.onload = (M) => d({ img: n, err: null }), n.onerror = (M) => {
console.warn(`[lazy-load-imgs]: Could not load loadingImg at ${I}.
Now using the default base64 encoding format for preloaded images(loadingImg).`), n.src = R;
const S = document.querySelectorAll(`img[${l.IMG_ID}^=inst${C}-]`);
Array.prototype.forEach.call(S, (U) => {
U.setAttribute("src", R);
}), y({ img: n, err: M });
}, n.src = I;
});
}(e.loadingImg, c).catch((I) => I), Array.prototype.forEach.call(s, (I) => Q.observe(I));
}), P(() => {
}), G(() => {
}), L(() => {
const s = document.querySelectorAll(`img[${l.IMG_ID}^=inst${c}-][${l.TIMEOUT_ID}]`);
Array.prototype.forEach.call(s, (I) => i.clearLazyTimeout(I));
}), N(() => {
u.instId--, Q.disconnect();
}), { instId: c };
} }), v = { class: "lazyload-all-box" }, w = ((t, A) => {
const o = t.__vccOpts || t;
for (const [e, g] of A) o[e] = g;
return o;
})(Y, [["render", function(t, A, o, e, g, i) {
return j(), x("div", v, [W(t.$slots, "default")]);
}]]), J = [w], Z = (t, A = {}) => {
Object.assign(H, A), J.forEach((o, e) => {
t.component(o.name, o);
});
};
export {
w as LazyLoadImgs,
Z as default
};
//# sourceMappingURL=lazy-load-imgs.es.js.map