UNPKG

@thednp/dll

Version:

Double Lazy Load for Images, Videos and Background Images.

57 lines (56 loc) 2.33 kB
const I = "load", N = "loadstart", j = (e, n, s, t) => { e.addEventListener( n, s, !1 ); }, R = (e, n, s, t) => { e.removeEventListener( n, s, !1 ); }, T = (e, n) => e.getAttribute(n), C = (e, n) => e.removeAttribute(n), h = (e) => e != null && typeof e == "object" || !1, i = (e) => h(e) && typeof e.nodeType == "number" && [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].some( (n) => e.nodeType === n ) || !1, u = (e) => i(e) && e.nodeType === 1 || !1, m = (e) => typeof e == "string" || !1, D = (e) => h(e) && e.constructor.name === "Window" || !1, L = (e) => i(e) && e.nodeType === 9 || !1, p = (e) => L(e) ? e : i(e) ? e.ownerDocument : D(e) ? e.document : globalThis.document, v = (e, ...n) => Object.assign(e, ...n), d = (e) => { if (!e) return; if (m(e)) return p().createElement(e); const { tagName: n } = e, s = d(n); if (!s) return; const t = { ...e }; return delete t.tagName, v(s, t); }, M = (e) => Object.entries(e), V = (e, n) => { M(n).forEach(([s, t]) => { if (t && m(s) && s.includes("--")) e.style.setProperty(s, t); else { const o = {}; o[s] = t, v(e.style, o); } }); }, S = (e, n) => (i(n) ? n : p()).querySelectorAll(e), g = (e) => u(e) && "offsetWidth" in e || !1, E = (e) => typeof e == "function" || !1, W = (e, n) => u(e) ? e : (u(n) ? n : p()).querySelector(e), a = "data-src", q = (e) => g(e) && e.tagName === "VIDEO", l = (e) => g(e) && e.tagName === "SOURCE", b = (e) => g(e) && e.tagName === "IMG", O = (e, n) => { const s = l(e), t = s ? N : I, o = s ? d("VIDEO") : null, r = d(s ? "SOURCE" : "IMG"), c = s ? o : r, f = T(e, a); if (!c || !f) return; const y = () => { b(e) || l(e) ? (e.src = f, l(e) && q(e.parentElement) && e.parentElement.load()) : V(e, { backgroundImage: `url("${f}")` }), C(e, a), E(n) && n(), R(c, t, y); }; j(c, t, y), (b(r) || l(r)) && (r.src = f, o && o.append(r)); }, w = (e) => { const n = S( `[${a}]`, e ), s = e && T(e, a); return s && !n ? [e] : !s && n ? [...n] : s && n ? [e, ...n] : !s && !n ? [...S(`[${a}]`)] : null; }, A = (e, n) => { const s = W(e); if (!s) return; const t = E(n) ? n : null, o = w(s); o && o.length && o.forEach((r, c) => { c === o.length - 1 && t ? O(r, t) : O(r); }); }; export { A as default }; //# sourceMappingURL=dll.mjs.map