UNPKG

lazy-image-webcomponent

Version:

This component is a simple method to lazy load images from a source set similar to responsive images. The component calculates the rendered image width and then fetches the optimal image.

671 lines (668 loc) 25.2 kB
var At = Object.defineProperty; var mt = (n, t, e) => t in n ? At(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e; var D = (n, t, e) => (mt(n, typeof t != "symbol" ? t + "" : t, e), e); /** * @license * Copyright 2019 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ const N = window, Q = N.ShadowRoot && (N.ShadyCSS === void 0 || N.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, X = Symbol(), et = /* @__PURE__ */ new WeakMap(); let pt = class { constructor(t, e, i) { if (this._$cssResult$ = !0, i !== X) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead."); this.cssText = t, this.t = e; } get styleSheet() { let t = this.o; const e = this.t; if (Q && t === void 0) { const i = e !== void 0 && e.length === 1; i && (t = et.get(e)), t === void 0 && ((this.o = t = new CSSStyleSheet()).replaceSync(this.cssText), i && et.set(e, t)); } return t; } toString() { return this.cssText; } }; const yt = (n) => new pt(typeof n == "string" ? n : n + "", void 0, X), bt = (n, ...t) => { const e = n.length === 1 ? n[0] : t.reduce((i, s, r) => i + ((o) => { if (o._$cssResult$ === !0) return o.cssText; if (typeof o == "number") return o; throw Error("Value passed to 'css' function must be a 'css' function result: " + o + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security."); })(s) + n[r + 1], n[0]); return new pt(e, n, X); }, Et = (n, t) => { Q ? n.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet) : t.forEach((e) => { const i = document.createElement("style"), s = N.litNonce; s !== void 0 && i.setAttribute("nonce", s), i.textContent = e.cssText, n.appendChild(i); }); }, it = Q ? (n) => n : (n) => n instanceof CSSStyleSheet ? ((t) => { let e = ""; for (const i of t.cssRules) e += i.cssText; return yt(e); })(n) : n; /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ var B; const R = window, st = R.trustedTypes, St = st ? st.emptyScript : "", nt = R.reactiveElementPolyfillSupport, J = { toAttribute(n, t) { switch (t) { case Boolean: n = n ? St : null; break; case Object: case Array: n = n == null ? n : JSON.stringify(n); } return n; }, fromAttribute(n, t) { let e = n; switch (t) { case Boolean: e = n !== null; break; case Number: e = n === null ? null : Number(n); break; case Object: case Array: try { e = JSON.parse(n); } catch { e = null; } } return e; } }, $t = (n, t) => t !== n && (t == t || n == n), j = { attribute: !0, type: String, converter: J, reflect: !1, hasChanged: $t }, K = "finalized"; let y = class extends HTMLElement { constructor() { super(), this._$Ei = /* @__PURE__ */ new Map(), this.isUpdatePending = !1, this.hasUpdated = !1, this._$El = null, this.u(); } static addInitializer(t) { var e; this.finalize(), ((e = this.h) !== null && e !== void 0 ? e : this.h = []).push(t); } static get observedAttributes() { this.finalize(); const t = []; return this.elementProperties.forEach((e, i) => { const s = this._$Ep(i, e); s !== void 0 && (this._$Ev.set(s, i), t.push(s)); }), t; } static createProperty(t, e = j) { if (e.state && (e.attribute = !1), this.finalize(), this.elementProperties.set(t, e), !e.noAccessor && !this.prototype.hasOwnProperty(t)) { const i = typeof t == "symbol" ? Symbol() : "__" + t, s = this.getPropertyDescriptor(t, i, e); s !== void 0 && Object.defineProperty(this.prototype, t, s); } } static getPropertyDescriptor(t, e, i) { return { get() { return this[e]; }, set(s) { const r = this[t]; this[e] = s, this.requestUpdate(t, r, i); }, configurable: !0, enumerable: !0 }; } static getPropertyOptions(t) { return this.elementProperties.get(t) || j; } static finalize() { if (this.hasOwnProperty(K)) return !1; this[K] = !0; const t = Object.getPrototypeOf(this); if (t.finalize(), t.h !== void 0 && (this.h = [...t.h]), this.elementProperties = new Map(t.elementProperties), this._$Ev = /* @__PURE__ */ new Map(), this.hasOwnProperty("properties")) { const e = this.properties, i = [...Object.getOwnPropertyNames(e), ...Object.getOwnPropertySymbols(e)]; for (const s of i) this.createProperty(s, e[s]); } return this.elementStyles = this.finalizeStyles(this.styles), !0; } static finalizeStyles(t) { const e = []; if (Array.isArray(t)) { const i = new Set(t.flat(1 / 0).reverse()); for (const s of i) e.unshift(it(s)); } else t !== void 0 && e.push(it(t)); return e; } static _$Ep(t, e) { const i = e.attribute; return i === !1 ? void 0 : typeof i == "string" ? i : typeof t == "string" ? t.toLowerCase() : void 0; } u() { var t; this._$E_ = new Promise((e) => this.enableUpdating = e), this._$AL = /* @__PURE__ */ new Map(), this._$Eg(), this.requestUpdate(), (t = this.constructor.h) === null || t === void 0 || t.forEach((e) => e(this)); } addController(t) { var e, i; ((e = this._$ES) !== null && e !== void 0 ? e : this._$ES = []).push(t), this.renderRoot !== void 0 && this.isConnected && ((i = t.hostConnected) === null || i === void 0 || i.call(t)); } removeController(t) { var e; (e = this._$ES) === null || e === void 0 || e.splice(this._$ES.indexOf(t) >>> 0, 1); } _$Eg() { this.constructor.elementProperties.forEach((t, e) => { this.hasOwnProperty(e) && (this._$Ei.set(e, this[e]), delete this[e]); }); } createRenderRoot() { var t; const e = (t = this.shadowRoot) !== null && t !== void 0 ? t : this.attachShadow(this.constructor.shadowRootOptions); return Et(e, this.constructor.elementStyles), e; } connectedCallback() { var t; this.renderRoot === void 0 && (this.renderRoot = this.createRenderRoot()), this.enableUpdating(!0), (t = this._$ES) === null || t === void 0 || t.forEach((e) => { var i; return (i = e.hostConnected) === null || i === void 0 ? void 0 : i.call(e); }); } enableUpdating(t) { } disconnectedCallback() { var t; (t = this._$ES) === null || t === void 0 || t.forEach((e) => { var i; return (i = e.hostDisconnected) === null || i === void 0 ? void 0 : i.call(e); }); } attributeChangedCallback(t, e, i) { this._$AK(t, i); } _$EO(t, e, i = j) { var s; const r = this.constructor._$Ep(t, i); if (r !== void 0 && i.reflect === !0) { const o = (((s = i.converter) === null || s === void 0 ? void 0 : s.toAttribute) !== void 0 ? i.converter : J).toAttribute(e, i.type); this._$El = t, o == null ? this.removeAttribute(r) : this.setAttribute(r, o), this._$El = null; } } _$AK(t, e) { var i; const s = this.constructor, r = s._$Ev.get(t); if (r !== void 0 && this._$El !== r) { const o = s.getPropertyOptions(r), a = typeof o.converter == "function" ? { fromAttribute: o.converter } : ((i = o.converter) === null || i === void 0 ? void 0 : i.fromAttribute) !== void 0 ? o.converter : J; this._$El = r, this[r] = a.fromAttribute(e, o.type), this._$El = null; } } requestUpdate(t, e, i) { let s = !0; t !== void 0 && (((i = i || this.constructor.getPropertyOptions(t)).hasChanged || $t)(this[t], e) ? (this._$AL.has(t) || this._$AL.set(t, e), i.reflect === !0 && this._$El !== t && (this._$EC === void 0 && (this._$EC = /* @__PURE__ */ new Map()), this._$EC.set(t, i))) : s = !1), !this.isUpdatePending && s && (this._$E_ = this._$Ej()); } async _$Ej() { this.isUpdatePending = !0; try { await this._$E_; } catch (e) { Promise.reject(e); } const t = this.scheduleUpdate(); return t != null && await t, !this.isUpdatePending; } scheduleUpdate() { return this.performUpdate(); } performUpdate() { var t; if (!this.isUpdatePending) return; this.hasUpdated, this._$Ei && (this._$Ei.forEach((s, r) => this[r] = s), this._$Ei = void 0); let e = !1; const i = this._$AL; try { e = this.shouldUpdate(i), e ? (this.willUpdate(i), (t = this._$ES) === null || t === void 0 || t.forEach((s) => { var r; return (r = s.hostUpdate) === null || r === void 0 ? void 0 : r.call(s); }), this.update(i)) : this._$Ek(); } catch (s) { throw e = !1, this._$Ek(), s; } e && this._$AE(i); } willUpdate(t) { } _$AE(t) { var e; (e = this._$ES) === null || e === void 0 || e.forEach((i) => { var s; return (s = i.hostUpdated) === null || s === void 0 ? void 0 : s.call(i); }), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(t)), this.updated(t); } _$Ek() { this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1; } get updateComplete() { return this.getUpdateComplete(); } getUpdateComplete() { return this._$E_; } shouldUpdate(t) { return !0; } update(t) { this._$EC !== void 0 && (this._$EC.forEach((e, i) => this._$EO(i, this[i], e)), this._$EC = void 0), this._$Ek(); } updated(t) { } firstUpdated(t) { } }; y[K] = !0, y.elementProperties = /* @__PURE__ */ new Map(), y.elementStyles = [], y.shadowRootOptions = { mode: "open" }, nt == null || nt({ ReactiveElement: y }), ((B = R.reactiveElementVersions) !== null && B !== void 0 ? B : R.reactiveElementVersions = []).push("1.6.2"); /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ var V; const k = window, b = k.trustedTypes, rt = b ? b.createPolicy("lit-html", { createHTML: (n) => n }) : void 0, F = "$lit$", v = `lit$${(Math.random() + "").slice(9)}$`, vt = "?" + v, wt = `<${vt}>`, m = document, x = () => m.createComment(""), U = (n) => n === null || typeof n != "object" && typeof n != "function", ft = Array.isArray, Ct = (n) => ft(n) || typeof (n == null ? void 0 : n[Symbol.iterator]) == "function", W = `[ \f\r]`, w = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, ot = /-->/g, lt = />/g, g = RegExp(`>|${W}(?:([^\\s"'>=/]+)(${W}*=${W}*(?:[^ \f\r"'\`<>=]|("|')|))|$)`, "g"), ht = /'/g, at = /"/g, _t = /^(?:script|style|textarea|title)$/i, xt = (n) => (t, ...e) => ({ _$litType$: n, strings: t, values: e }), Ut = xt(1), E = Symbol.for("lit-noChange"), p = Symbol.for("lit-nothing"), ct = /* @__PURE__ */ new WeakMap(), A = m.createTreeWalker(m, 129, null, !1); function gt(n, t) { if (!Array.isArray(n) || !n.hasOwnProperty("raw")) throw Error("invalid template strings array"); return rt !== void 0 ? rt.createHTML(t) : t; } const Ht = (n, t) => { const e = n.length - 1, i = []; let s, r = t === 2 ? "<svg>" : "", o = w; for (let a = 0; a < e; a++) { const l = n[a]; let h, c, d = -1, u = 0; for (; u < l.length && (o.lastIndex = u, c = o.exec(l), c !== null); ) u = o.lastIndex, o === w ? c[1] === "!--" ? o = ot : c[1] !== void 0 ? o = lt : c[2] !== void 0 ? (_t.test(c[2]) && (s = RegExp("</" + c[2], "g")), o = g) : c[3] !== void 0 && (o = g) : o === g ? c[0] === ">" ? (o = s ?? w, d = -1) : c[1] === void 0 ? d = -2 : (d = o.lastIndex - c[2].length, h = c[1], o = c[3] === void 0 ? g : c[3] === '"' ? at : ht) : o === at || o === ht ? o = g : o === ot || o === lt ? o = w : (o = g, s = void 0); const $ = o === g && n[a + 1].startsWith("/>") ? " " : ""; r += o === w ? l + wt : d >= 0 ? (i.push(h), l.slice(0, d) + F + l.slice(d) + v + $) : l + v + (d === -2 ? (i.push(void 0), a) : $); } return [gt(n, r + (n[e] || "<?>") + (t === 2 ? "</svg>" : "")), i]; }; class H { constructor({ strings: t, _$litType$: e }, i) { let s; this.parts = []; let r = 0, o = 0; const a = t.length - 1, l = this.parts, [h, c] = Ht(t, e); if (this.el = H.createElement(h, i), A.currentNode = this.el.content, e === 2) { const d = this.el.content, u = d.firstChild; u.remove(), d.append(...u.childNodes); } for (; (s = A.nextNode()) !== null && l.length < a; ) { if (s.nodeType === 1) { if (s.hasAttributes()) { const d = []; for (const u of s.getAttributeNames()) if (u.endsWith(F) || u.startsWith(v)) { const $ = c[o++]; if (d.push(u), $ !== void 0) { const z = s.getAttribute($.toLowerCase() + F).split(v), f = /([.?@])?(.*)/.exec($); l.push({ type: 1, index: r, name: f[2], strings: z, ctor: f[1] === "." ? Tt : f[1] === "?" ? Mt : f[1] === "@" ? Nt : I }); } else l.push({ type: 6, index: r }); } for (const u of d) s.removeAttribute(u); } if (_t.test(s.tagName)) { const d = s.textContent.split(v), u = d.length - 1; if (u > 0) { s.textContent = b ? b.emptyScript : ""; for (let $ = 0; $ < u; $++) s.append(d[$], x()), A.nextNode(), l.push({ type: 2, index: ++r }); s.append(d[u], x()); } } } else if (s.nodeType === 8) if (s.data === vt) l.push({ type: 2, index: r }); else { let d = -1; for (; (d = s.data.indexOf(v, d + 1)) !== -1; ) l.push({ type: 7, index: r }), d += v.length - 1; } r++; } } static createElement(t, e) { const i = m.createElement("template"); return i.innerHTML = t, i; } } function S(n, t, e = n, i) { var s, r, o, a; if (t === E) return t; let l = i !== void 0 ? (s = e._$Co) === null || s === void 0 ? void 0 : s[i] : e._$Cl; const h = U(t) ? void 0 : t._$litDirective$; return (l == null ? void 0 : l.constructor) !== h && ((r = l == null ? void 0 : l._$AO) === null || r === void 0 || r.call(l, !1), h === void 0 ? l = void 0 : (l = new h(n), l._$AT(n, e, i)), i !== void 0 ? ((o = (a = e)._$Co) !== null && o !== void 0 ? o : a._$Co = [])[i] = l : e._$Cl = l), l !== void 0 && (t = S(n, l._$AS(n, t.values), l, i)), t; } class Pt { constructor(t, e) { this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = e; } get parentNode() { return this._$AM.parentNode; } get _$AU() { return this._$AM._$AU; } u(t) { var e; const { el: { content: i }, parts: s } = this._$AD, r = ((e = t == null ? void 0 : t.creationScope) !== null && e !== void 0 ? e : m).importNode(i, !0); A.currentNode = r; let o = A.nextNode(), a = 0, l = 0, h = s[0]; for (; h !== void 0; ) { if (a === h.index) { let c; h.type === 2 ? c = new P(o, o.nextSibling, this, t) : h.type === 1 ? c = new h.ctor(o, h.name, h.strings, this, t) : h.type === 6 && (c = new Rt(o, this, t)), this._$AV.push(c), h = s[++l]; } a !== (h == null ? void 0 : h.index) && (o = A.nextNode(), a++); } return A.currentNode = m, r; } v(t) { let e = 0; for (const i of this._$AV) i !== void 0 && (i.strings !== void 0 ? (i._$AI(t, i, e), e += i.strings.length - 2) : i._$AI(t[e])), e++; } } class P { constructor(t, e, i, s) { var r; this.type = 2, this._$AH = p, this._$AN = void 0, this._$AA = t, this._$AB = e, this._$AM = i, this.options = s, this._$Cp = (r = s == null ? void 0 : s.isConnected) === null || r === void 0 || r; } get _$AU() { var t, e; return (e = (t = this._$AM) === null || t === void 0 ? void 0 : t._$AU) !== null && e !== void 0 ? e : this._$Cp; } get parentNode() { let t = this._$AA.parentNode; const e = this._$AM; return e !== void 0 && (t == null ? void 0 : t.nodeType) === 11 && (t = e.parentNode), t; } get startNode() { return this._$AA; } get endNode() { return this._$AB; } _$AI(t, e = this) { t = S(this, t, e), U(t) ? t === p || t == null || t === "" ? (this._$AH !== p && this._$AR(), this._$AH = p) : t !== this._$AH && t !== E && this._(t) : t._$litType$ !== void 0 ? this.g(t) : t.nodeType !== void 0 ? this.$(t) : Ct(t) ? this.T(t) : this._(t); } k(t) { return this._$AA.parentNode.insertBefore(t, this._$AB); } $(t) { this._$AH !== t && (this._$AR(), this._$AH = this.k(t)); } _(t) { this._$AH !== p && U(this._$AH) ? this._$AA.nextSibling.data = t : this.$(m.createTextNode(t)), this._$AH = t; } g(t) { var e; const { values: i, _$litType$: s } = t, r = typeof s == "number" ? this._$AC(t) : (s.el === void 0 && (s.el = H.createElement(gt(s.h, s.h[0]), this.options)), s); if (((e = this._$AH) === null || e === void 0 ? void 0 : e._$AD) === r) this._$AH.v(i); else { const o = new Pt(r, this), a = o.u(this.options); o.v(i), this.$(a), this._$AH = o; } } _$AC(t) { let e = ct.get(t.strings); return e === void 0 && ct.set(t.strings, e = new H(t)), e; } T(t) { ft(this._$AH) || (this._$AH = [], this._$AR()); const e = this._$AH; let i, s = 0; for (const r of t) s === e.length ? e.push(i = new P(this.k(x()), this.k(x()), this, this.options)) : i = e[s], i._$AI(r), s++; s < e.length && (this._$AR(i && i._$AB.nextSibling, s), e.length = s); } _$AR(t = this._$AA.nextSibling, e) { var i; for ((i = this._$AP) === null || i === void 0 || i.call(this, !1, !0, e); t && t !== this._$AB; ) { const s = t.nextSibling; t.remove(), t = s; } } setConnected(t) { var e; this._$AM === void 0 && (this._$Cp = t, (e = this._$AP) === null || e === void 0 || e.call(this, t)); } } class I { constructor(t, e, i, s, r) { this.type = 1, this._$AH = p, this._$AN = void 0, this.element = t, this.name = e, this._$AM = s, this.options = r, i.length > 2 || i[0] !== "" || i[1] !== "" ? (this._$AH = Array(i.length - 1).fill(new String()), this.strings = i) : this._$AH = p; } get tagName() { return this.element.tagName; } get _$AU() { return this._$AM._$AU; } _$AI(t, e = this, i, s) { const r = this.strings; let o = !1; if (r === void 0) t = S(this, t, e, 0), o = !U(t) || t !== this._$AH && t !== E, o && (this._$AH = t); else { const a = t; let l, h; for (t = r[0], l = 0; l < r.length - 1; l++) h = S(this, a[i + l], e, l), h === E && (h = this._$AH[l]), o || (o = !U(h) || h !== this._$AH[l]), h === p ? t = p : t !== p && (t += (h ?? "") + r[l + 1]), this._$AH[l] = h; } o && !s && this.j(t); } j(t) { t === p ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t ?? ""); } } class Tt extends I { constructor() { super(...arguments), this.type = 3; } j(t) { this.element[this.name] = t === p ? void 0 : t; } } const Ot = b ? b.emptyScript : ""; class Mt extends I { constructor() { super(...arguments), this.type = 4; } j(t) { t && t !== p ? this.element.setAttribute(this.name, Ot) : this.element.removeAttribute(this.name); } } class Nt extends I { constructor(t, e, i, s, r) { super(t, e, i, s, r), this.type = 5; } _$AI(t, e = this) { var i; if ((t = (i = S(this, t, e, 0)) !== null && i !== void 0 ? i : p) === E) return; const s = this._$AH, r = t === p && s !== p || t.capture !== s.capture || t.once !== s.once || t.passive !== s.passive, o = t !== p && (s === p || r); r && this.element.removeEventListener(this.name, this, s), o && this.element.addEventListener(this.name, this, t), this._$AH = t; } handleEvent(t) { var e, i; typeof this._$AH == "function" ? this._$AH.call((i = (e = this.options) === null || e === void 0 ? void 0 : e.host) !== null && i !== void 0 ? i : this.element, t) : this._$AH.handleEvent(t); } } class Rt { constructor(t, e, i) { this.element = t, this.type = 6, this._$AN = void 0, this._$AM = e, this.options = i; } get _$AU() { return this._$AM._$AU; } _$AI(t) { S(this, t); } } const dt = k.litHtmlPolyfillSupport; dt == null || dt(H, P), ((V = k.litHtmlVersions) !== null && V !== void 0 ? V : k.litHtmlVersions = []).push("2.7.5"); const kt = (n, t, e) => { var i, s; const r = (i = e == null ? void 0 : e.renderBefore) !== null && i !== void 0 ? i : t; let o = r._$litPart$; if (o === void 0) { const a = (s = e == null ? void 0 : e.renderBefore) !== null && s !== void 0 ? s : null; r._$litPart$ = o = new P(t.insertBefore(x(), a), a, void 0, e ?? {}); } return o._$AI(n), o; }; /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ var q, Z; class C extends y { constructor() { super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0; } createRenderRoot() { var t, e; const i = super.createRenderRoot(); return (t = (e = this.renderOptions).renderBefore) !== null && t !== void 0 || (e.renderBefore = i.firstChild), i; } update(t) { const e = this.render(); this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = kt(e, this.renderRoot, this.renderOptions); } connectedCallback() { var t; super.connectedCallback(), (t = this._$Do) === null || t === void 0 || t.setConnected(!0); } disconnectedCallback() { var t; super.disconnectedCallback(), (t = this._$Do) === null || t === void 0 || t.setConnected(!1); } render() { return E; } } C.finalized = !0, C._$litElement$ = !0, (q = globalThis.litElementHydrateSupport) === null || q === void 0 || q.call(globalThis, { LitElement: C }); const ut = globalThis.litElementPolyfillSupport; ut == null || ut({ LitElement: C }); ((Z = globalThis.litElementVersions) !== null && Z !== void 0 ? Z : globalThis.litElementVersions = []).push("3.3.2"); function It(n, t, e) { var i = e || {}, s = i.noTrailing, r = s === void 0 ? !1 : s, o = i.noLeading, a = o === void 0 ? !1 : o, l = i.debounceMode, h = l === void 0 ? void 0 : l, c, d = !1, u = 0; function $() { c && clearTimeout(c); } function z(T) { var O = T || {}, _ = O.upcomingOnly, L = _ === void 0 ? !1 : _; $(), d = !L; } function f() { for (var T = arguments.length, O = new Array(T), _ = 0; _ < T; _++) O[_] = arguments[_]; var L = this, Y = Date.now() - u; if (d) return; function M() { u = Date.now(), t.apply(L, O); } function tt() { c = void 0; } !a && h && !c && M(), $(), h === void 0 && Y > n ? a ? (u = Date.now(), r || (c = setTimeout(h ? tt : M, n))) : M() : r !== !0 && (c = setTimeout(h ? tt : M, h === void 0 ? n - Y : n)); } return f.cancel = z, f; } function zt(n, t, e) { var i = e || {}, s = i.atBegin, r = s === void 0 ? !1 : s; return It(n, t, { debounceMode: r !== !1 }); } class G extends C { constructor() { super(), this.widthArray = [], this.imagesArray = [], this.prevRenderedWidth = 0, this.images = []; } connectedCallback() { super.connectedCallback(), this.images = this.srcset.split(", "); for (let e = 0; e < this.images.length; e++) this.widthArray.push(this.images[e].split(" ")[0]), this.imagesArray.push(this.images[e].split(" ")[1]); const t = zt(400, () => { this.visible == "true" && this.selectHrImage(); }); window.addEventListener("resize", t); } selectHrImage() { let t = this, e = t.offsetWidth; if (e < this.prevRenderedWidth) return; this.prevRenderedWidth = e; let i = this.widthArray.reduce(function(o, a) { return Math.abs(a - e) < Math.abs(o - e) ? a : o; }), s = this.widthArray.indexOf(i), r = t.shadowRoot.querySelector("img"); r.src = this.imagesArray[s], r.style.opacity = "1"; } updated() { this.visible == "true" && this.selectHrImage(); } render() { return Ut` <img type="image/jpeg" src="${this.imagesArray[0]}"> `; } } D(G, "styles", bt` :host { display: block; } img { width: 100%; opacity: 0; transition: 1s; } `), D(G, "properties", { srcset: { type: String }, visible: { type: String } }); customElements.define("lazy-image", G); function jt(n) { if (Object.assign({ sections: !1, opt2: "something" }, n).sections == !0) { const i = new IntersectionObserver((r) => { r.forEach((o) => { o.isIntersecting ? o.target.querySelectorAll("lazy-image").forEach((l) => { l.setAttribute("visible", "true"); }) : o.target.querySelectorAll("lazy-image").forEach((l) => { l.setAttribute("visible", "false"); }); }); }); let s = document.querySelectorAll("lazy-image-section"); for (let r = 0; r < s.length; r++) i.observe(s[r]); } else { const i = new IntersectionObserver((r) => { r.forEach((o) => { o.isIntersecting ? o.target.setAttribute("visible", "true") : o.target.setAttribute("visible", "false"); }); }); let s = document.querySelectorAll("lazy-image"); for (let r = 0; r < s.length; r++) i.observe(s[r]); } } export { jt as lazyImages };