/** * @license * Copyright 2019 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ const dt = globalThis, Qt = dt.ShadowRoot && (dt.ShadyCSS === void 0 || dt.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype, Kt = Symbol(), ci = /* @__PURE__ */ new WeakMap(); let Pi = class { constructor(e, t, s) { if (this._$cssResult$ = !0, s !== Kt) throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead."); this.cssText = e, this.t = t; } get styleSheet() { let e = this.o; const t = this.t; if (Qt && e === void 0) { const s = t !== void 0 && t.length === 1; s && (e = ci.get(t)), e === void 0 && ((this.o = e = new CSSStyleSheet()).replaceSync(this.cssText), s && ci.set(t, e)); } return e; } toString() { return this.cssText; } }; const C = (i) => new Pi(typeof i == "string" ? i : i + "", void 0, Kt), O = (i, ...e) => { const t = i.length === 1 ? i[0] : e.reduce((s, r, n) => s + ((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."); })(r) + i[n + 1], i[0]); return new Pi(t, i, Kt); }, Ki = (i, e) => { if (Qt) i.adoptedStyleSheets = e.map((t) => t instanceof CSSStyleSheet ? t : t.styleSheet); else for (const t of e) { const s = document.createElement("style"), r = dt.litNonce; r !== void 0 && s.setAttribute("nonce", r), s.textContent = t.cssText, i.appendChild(s); } }, ui = Qt ? (i) => i : (i) => i instanceof CSSStyleSheet ? ((e) => { let t = ""; for (const s of e.cssRules) t += s.cssText; return C(t); })(i) : i; /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ const { is: Ji, defineProperty: es, getOwnPropertyDescriptor: ts, getOwnPropertyNames: is, getOwnPropertySymbols: ss, getPrototypeOf: rs } = Object, $t = globalThis, hi = $t.trustedTypes, ns = hi ? hi.emptyScript : "", os = $t.reactiveElementPolyfillSupport, Ye = (i, e) => i, ct = { toAttribute(i, e) { switch (e) { case Boolean: i = i ? ns : null; break; case Object: case Array: i = i == null ? i : JSON.stringify(i); } return i; }, fromAttribute(i, e) { let t = i; switch (e) { case Boolean: t = i !== null; break; case Number: t = i === null ? null : Number(i); break; case Object: case Array: try { t = JSON.parse(i); } catch { t = null; } } return t; } }, Jt = (i, e) => !Ji(i, e), fi = { attribute: !0, type: String, converter: ct, reflect: !1, hasChanged: Jt }; Symbol.metadata ??= Symbol("metadata"), $t.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap(); class Pe extends HTMLElement { static addInitializer(e) { this._$Ei(), (this.l ??= []).push(e); } static get observedAttributes() { return this.finalize(), this._$Eh && [...this._$Eh.keys()]; } static createProperty(e, t = fi) { if (t.state && (t.attribute = !1), this._$Ei(), this.elementProperties.set(e, t), !t.noAccessor) { const s = Symbol(), r = this.getPropertyDescriptor(e, s, t); r !== void 0 && es(this.prototype, e, r); } } static getPropertyDescriptor(e, t, s) { const { get: r, set: n } = ts(this.prototype, e) ?? { get() { return this[t]; }, set(o) { this[t] = o; } }; return { get() { return r?.call(this); }, set(o) { const l = r?.call(this); n.call(this, o), this.requestUpdate(e, l, s); }, configurable: !0, enumerable: !0 }; } static getPropertyOptions(e) { return this.elementProperties.get(e) ?? fi; } static _$Ei() { if (this.hasOwnProperty(Ye("elementProperties"))) return; const e = rs(this); e.finalize(), e.l !== void 0 && (this.l = [...e.l]), this.elementProperties = new Map(e.elementProperties); } static finalize() { if (this.hasOwnProperty(Ye("finalized"))) return; if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(Ye("properties"))) { const t = this.properties, s = [...is(t), ...ss(t)]; for (const r of s) this.createProperty(r, t[r]); } const e = this[Symbol.metadata]; if (e !== null) { const t = litPropertyMetadata.get(e); if (t !== void 0) for (const [s, r] of t) this.elementProperties.set(s, r); } this._$Eh = /* @__PURE__ */ new Map(); for (const [t, s] of this.elementProperties) { const r = this._$Eu(t, s); r !== void 0 && this._$Eh.set(r, t); } this.elementStyles = this.finalizeStyles(this.styles); } static finalizeStyles(e) { const t = []; if (Array.isArray(e)) { const s = new Set(e.flat(1 / 0).reverse()); for (const r of s) t.unshift(ui(r)); } else e !== void 0 && t.push(ui(e)); return t; } static _$Eu(e, t) { const s = t.attribute; return s === !1 ? void 0 : typeof s == "string" ? s : typeof e == "string" ? e.toLowerCase() : void 0; } constructor() { super(), this._$Ep = void 0, this.isUpdatePending = !1, this.hasUpdated = !1, this._$Em = null, this._$Ev(); } _$Ev() { this._$ES = new Promise((e) => this.enableUpdating = e), this._$AL = /* @__PURE__ */ new Map(), this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((e) => e(this)); } addController(e) { (this._$EO ??= /* @__PURE__ */ new Set()).add(e), this.renderRoot !== void 0 && this.isConnected && e.hostConnected?.(); } removeController(e) { this._$EO?.delete(e); } _$E_() { const e = /* @__PURE__ */ new Map(), t = this.constructor.elementProperties; for (const s of t.keys()) this.hasOwnProperty(s) && (e.set(s, this[s]), delete this[s]); e.size > 0 && (this._$Ep = e); } createRenderRoot() { const e = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions); return Ki(e, this.constructor.elementStyles), e; } connectedCallback() { this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(!0), this._$EO?.forEach((e) => e.hostConnected?.()); } enableUpdating(e) { } disconnectedCallback() { this._$EO?.forEach((e) => e.hostDisconnected?.()); } attributeChangedCallback(e, t, s) { this._$AK(e, s); } _$EC(e, t) { const s = this.constructor.elementProperties.get(e), r = this.constructor._$Eu(e, s); if (r !== void 0 && s.reflect === !0) { const n = (s.converter?.toAttribute !== void 0 ? s.converter : ct).toAttribute(t, s.type); this._$Em = e, n == null ? this.removeAttribute(r) : this.setAttribute(r, n), this._$Em = null; } } _$AK(e, t) { const s = this.constructor, r = s._$Eh.get(e); if (r !== void 0 && this._$Em !== r) { const n = s.getPropertyOptions(r), o = typeof n.converter == "function" ? { fromAttribute: n.converter } : n.converter?.fromAttribute !== void 0 ? n.converter : ct; this._$Em = r, this[r] = o.fromAttribute(t, n.type), this._$Em = null; } } requestUpdate(e, t, s) { if (e !== void 0) { if (s ??= this.constructor.getPropertyOptions(e), !(s.hasChanged ?? Jt)(this[e], t)) return; this.P(e, t, s); } this.isUpdatePending === !1 && (this._$ES = this._$ET()); } P(e, t, s) { this._$AL.has(e) || this._$AL.set(e, t), s.reflect === !0 && this._$Em !== e && (this._$Ej ??= /* @__PURE__ */ new Set()).add(e); } async _$ET() { this.isUpdatePending = !0; try { await this._$ES; } catch (t) { Promise.reject(t); } const e = this.scheduleUpdate(); return e != null && await e, !this.isUpdatePending; } scheduleUpdate() { return this.performUpdate(); } performUpdate() { if (!this.isUpdatePending) return; if (!this.hasUpdated) { if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) { for (const [r, n] of this._$Ep) this[r] = n; this._$Ep = void 0; } const s = this.constructor.elementProperties; if (s.size > 0) for (const [r, n] of s) n.wrapped !== !0 || this._$AL.has(r) || this[r] === void 0 || this.P(r, this[r], n); } let e = !1; const t = this._$AL; try { e = this.shouldUpdate(t), e ? (this.willUpdate(t), this._$EO?.forEach((s) => s.hostUpdate?.()), this.update(t)) : this._$EU(); } catch (s) { throw e = !1, this._$EU(), s; } e && this._$AE(t); } willUpdate(e) { } _$AE(e) { this._$EO?.forEach((t) => t.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = !0, this.firstUpdated(e)), this.updated(e); } _$EU() { this._$AL = /* @__PURE__ */ new Map(), this.isUpdatePending = !1; } get updateComplete() { return this.getUpdateComplete(); } getUpdateComplete() { return this._$ES; } shouldUpdate(e) { return !0; } update(e) { this._$Ej &&= this._$Ej.forEach((t) => this._$EC(t, this[t])), this._$EU(); } updated(e) { } firstUpdated(e) { } } Pe.elementStyles = [], Pe.shadowRootOptions = { mode: "open" }, Pe[Ye("elementProperties")] = /* @__PURE__ */ new Map(), Pe[Ye("finalized")] = /* @__PURE__ */ new Map(), os?.({ ReactiveElement: Pe }), ($t.reactiveElementVersions ??= []).push("2.0.4"); /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ const ei = globalThis, ut = ei.trustedTypes, gi = ut ? ut.createPolicy("lit-html", { createHTML: (i) => i }) : void 0, Ci = "$lit$", ie = `lit$${Math.random().toFixed(9).slice(2)}$`, _i = "?" + ie, as = `<${_i}>`, me = document, Ue = () => me.createComment(""), qe = (i) => i === null || typeof i != "object" && typeof i != "function", ti = Array.isArray, ls = (i) => ti(i) || typeof i?.[Symbol.iterator] == "function", Lt = `[ \f\r]`, Fe = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, mi = /-->/g, vi = />/g, fe = RegExp(`>|${Lt}(?:([^\\s"'>=/]+)(${Lt}*=${Lt}*(?:[^ \f\r"'\`<>=]|("|')|))|$)`, "g"), wi = /'/g, bi = /"/g, Oi = /^(?:script|style|textarea|title)$/i, ds = (i) => (e, ...t) => ({ _$litType$: i, strings: e, values: t }), w = ds(1), ve = Symbol.for("lit-noChange"), j = Symbol.for("lit-nothing"), yi = /* @__PURE__ */ new WeakMap(), ge = me.createTreeWalker(me, 129); function Mi(i, e) { if (!ti(i) || !i.hasOwnProperty("raw")) throw Error("invalid template strings array"); return gi !== void 0 ? gi.createHTML(e) : e; } const ps = (i, e) => { const t = i.length - 1, s = []; let r, n = e === 2 ? "<svg>" : e === 3 ? "<math>" : "", o = Fe; for (let l = 0; l < t; l++) { const a = i[l]; let c, u, d = -1, g = 0; for (; g < a.length && (o.lastIndex = g, u = o.exec(a), u !== null); ) g = o.lastIndex, o === Fe ? u[1] === "!--" ? o = mi : u[1] !== void 0 ? o = vi : u[2] !== void 0 ? (Oi.test(u[2]) && (r = RegExp("</" + u[2], "g")), o = fe) : u[3] !== void 0 && (o = fe) : o === fe ? u[0] === ">" ? (o = r ?? Fe, d = -1) : u[1] === void 0 ? d = -2 : (d = o.lastIndex - u[2].length, c = u[1], o = u[3] === void 0 ? fe : u[3] === '"' ? bi : wi) : o === bi || o === wi ? o = fe : o === mi || o === vi ? o = Fe : (o = fe, r = void 0); const m = o === fe && i[l + 1].startsWith("/>") ? " " : ""; n += o === Fe ? a + as : d >= 0 ? (s.push(c), a.slice(0, d) + Ci + a.slice(d) + ie + m) : a + ie + (d === -2 ? l : m); } return [Mi(i, n + (i[t] || "<?>") + (e === 2 ? "</svg>" : e === 3 ? "</math>" : "")), s]; }; class Ze { constructor({ strings: e, _$litType$: t }, s) { let r; this.parts = []; let n = 0, o = 0; const l = e.length - 1, a = this.parts, [c, u] = ps(e, t); if (this.el = Ze.createElement(c, s), ge.currentNode = this.el.content, t === 2 || t === 3) { const d = this.el.content.firstChild; d.replaceWith(...d.childNodes); } for (; (r = ge.nextNode()) !== null && a.length < l; ) { if (r.nodeType === 1) { if (r.hasAttributes()) for (const d of r.getAttributeNames()) if (d.endsWith(Ci)) { const g = u[o++], m = r.getAttribute(d).split(ie), v = /([.?@])?(.*)/.exec(g); a.push({ type: 1, index: n, name: v[2], strings: m, ctor: v[1] === "." ? us : v[1] === "?" ? hs : v[1] === "@" ? fs : St }), r.removeAttribute(d); } else d.startsWith(ie) && (a.push({ type: 6, index: n }), r.removeAttribute(d)); if (Oi.test(r.tagName)) { const d = r.textContent.split(ie), g = d.length - 1; if (g > 0) { r.textContent = ut ? ut.emptyScript : ""; for (let m = 0; m < g; m++) r.append(d[m], Ue()), ge.nextNode(), a.push({ type: 2, index: ++n }); r.append(d[g], Ue()); } } } else if (r.nodeType === 8) if (r.data === _i) a.push({ type: 2, index: n }); else { let d = -1; for (; (d = r.data.indexOf(ie, d + 1)) !== -1; ) a.push({ type: 7, index: n }), d += ie.length - 1; } n++; } } static createElement(e, t) { const s = me.createElement("template"); return s.innerHTML = e, s; } } function Ce(i, e, t = i, s) { if (e === ve) return e; let r = s !== void 0 ? t._$Co?.[s] : t._$Cl; const n = qe(e) ? void 0 : e._$litDirective$; return r?.constructor !== n && (r?._$AO?.(!1), n === void 0 ? r = void 0 : (r = new n(i), r._$AT(i, t, s)), s !== void 0 ? (t._$Co ??= [])[s] = r : t._$Cl = r), r !== void 0 && (e = Ce(i, r._$AS(i, e.values), r, s)), e; } class cs { constructor(e, t) { this._$AV = [], this._$AN = void 0, this._$AD = e, this._$AM = t; } get parentNode() { return this._$AM.parentNode; } get _$AU() { return this._$AM._$AU; } u(e) { const { el: { content: t }, parts: s } = this._$AD, r = (e?.creationScope ?? me).importNode(t, !0); ge.currentNode = r; let n = ge.nextNode(), o = 0, l = 0, a = s[0]; for (; a !== void 0; ) { if (o === a.index) { let c; a.type === 2 ? c = new Je(n, n.nextSibling, this, e) : a.type === 1 ? c = new a.ctor(n, a.name, a.strings, this, e) : a.type === 6 && (c = new gs(n, this, e)), this._$AV.push(c), a = s[++l]; } o !== a?.index && (n = ge.nextNode(), o++); } return ge.currentNode = me, r; } p(e) { let t = 0; for (const s of this._$AV) s !== void 0 && (s.strings !== void 0 ? (s._$AI(e, s, t), t += s.strings.length - 2) : s._$AI(e[t])), t++; } } class Je { get _$AU() { return this._$AM?._$AU ?? this._$Cv; } constructor(e, t, s, r) { this.type = 2, this._$AH = j, this._$AN = void 0, this._$AA = e, this._$AB = t, this._$AM = s, this.options = r, this._$Cv = r?.isConnected ?? !0; } get parentNode() { let e = this._$AA.parentNode; const t = this._$AM; return t !== void 0 && e?.nodeType === 11 && (e = t.parentNode), e; } get startNode() { return this._$AA; } get endNode() { return this._$AB; } _$AI(e, t = this) { e = Ce(this, e, t), qe(e) ? e === j || e == null || e === "" ? (this._$AH !== j && this._$AR(), this._$AH = j) : e !== this._$AH && e !== ve && this._(e) : e._$litType$ !== void 0 ? this.$(e) : e.nodeType !== void 0 ? this.T(e) : ls(e) ? this.k(e) : this._(e); } O(e) { return this._$AA.parentNode.insertBefore(e, this._$AB); } T(e) { this._$AH !== e && (this._$AR(), this._$AH = this.O(e)); } _(e) { this._$AH !== j && qe(this._$AH) ? this._$AA.nextSibling.data = e : this.T(me.createTextNode(e)), this._$AH = e; } $(e) { const { values: t, _$litType$: s } = e, r = typeof s == "number" ? this._$AC(e) : (s.el === void 0 && (s.el = Ze.createElement(Mi(s.h, s.h[0]), this.options)), s); if (this._$AH?._$AD === r) this._$AH.p(t); else { const n = new cs(r, this), o = n.u(this.options); n.p(t), this.T(o), this._$AH = n; } } _$AC(e) { let t = yi.get(e.strings); return t === void 0 && yi.set(e.strings, t = new Ze(e)), t; } k(e) { ti(this._$AH) || (this._$AH = [], this._$AR()); const t = this._$AH; let s, r = 0; for (const n of e) r === t.length ? t.push(s = new Je(this.O(Ue()), this.O(Ue()), this, this.options)) : s = t[r], s._$AI(n), r++; r < t.length && (this._$AR(s && s._$AB.nextSibling, r), t.length = r); } _$AR(e = this._$AA.nextSibling, t) { for (this._$AP?.(!1, !0, t); e && e !== this._$AB; ) { const s = e.nextSibling; e.remove(), e = s; } } setConnected(e) { this._$AM === void 0 && (this._$Cv = e, this._$AP?.(e)); } } class St { get tagName() { return this.element.tagName; } get _$AU() { return this._$AM._$AU; } constructor(e, t, s, r, n) { this.type = 1, this._$AH = j, this._$AN = void 0, this.element = e, this.name = t, this._$AM = r, this.options = n, s.length > 2 || s[0] !== "" || s[1] !== "" ? (this._$AH = Array(s.length - 1).fill(new String()), this.strings = s) : this._$AH = j; } _$AI(e, t = this, s, r) { const n = this.strings; let o = !1; if (n === void 0) e = Ce(this, e, t, 0), o = !qe(e) || e !== this._$AH && e !== ve, o && (this._$AH = e); else { const l = e; let a, c; for (e = n[0], a = 0; a < n.length - 1; a++) c = Ce(this, l[s + a], t, a), c === ve && (c = this._$AH[a]), o ||= !qe(c) || c !== this._$AH[a], c === j ? e = j : e !== j && (e += (c ?? "") + n[a + 1]), this._$AH[a] = c; } o && !r && this.j(e); } j(e) { e === j ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, e ?? ""); } } class us extends St { constructor() { super(...arguments), this.type = 3; } j(e) { this.element[this.name] = e === j ? void 0 : e; } } class hs extends St { constructor() { super(...arguments), this.type = 4; } j(e) { this.element.toggleAttribute(this.name, !!e && e !== j); } } class fs extends St { constructor(e, t, s, r, n) { super(e, t, s, r, n), this.type = 5; } _$AI(e, t = this) { if ((e = Ce(this, e, t, 0) ?? j) === ve) return; const s = this._$AH, r = e === j && s !== j || e.capture !== s.capture || e.once !== s.once || e.passive !== s.passive, n = e !== j && (s === j || r); r && this.element.removeEventListener(this.name, this, s), n && this.element.addEventListener(this.name, this, e), this._$AH = e; } handleEvent(e) { typeof this._$AH == "function" ? this._$AH.call(this.options?.host ?? this.element, e) : this._$AH.handleEvent(e); } } class gs { constructor(e, t, s) { this.element = e, this.type = 6, this._$AN = void 0, this._$AM = t, this.options = s; } get _$AU() { return this._$AM._$AU; } _$AI(e) { Ce(this, e); } } const ms = ei.litHtmlPolyfillSupport; ms?.(Ze, Je), (ei.litHtmlVersions ??= []).push("3.2.1"); const vs = (i, e, t) => { const s = t?.renderBefore ?? e; let r = s._$litPart$; if (r === void 0) { const n = t?.renderBefore ?? null; s._$litPart$ = r = new Je(e.insertBefore(Ue(), n), n, void 0, t ?? {}); } return r._$AI(i), r; }; /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ let P = class extends Pe { constructor() { super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0; } createRenderRoot() { const e = super.createRenderRoot(); return this.renderOptions.renderBefore ??= e.firstChild, e; } update(e) { const t = this.render(); this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(e), this._$Do = vs(t, this.renderRoot, this.renderOptions); } connectedCallback() { super.connectedCallback(), this._$Do?.setConnected(!0); } disconnectedCallback() { super.disconnectedCallback(), this._$Do?.setConnected(!1); } render() { return ve; } }; P._$litElement$ = !0, P.finalized = !0, globalThis.litElementHydrateSupport?.({ LitElement: P }); const ws = globalThis.litElementPolyfillSupport; ws?.({ LitElement: P }); (globalThis.litElementVersions ??= []).push("4.1.1"); /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ const M = (i) => (e, t) => { t !== void 0 ? t.addInitializer(() => { customElements.define(i, e); }) : customElements.define(i, e); }; /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ const bs = { attribute: !0, type: String, converter: ct, reflect: !1, hasChanged: Jt }, ys = (i = bs, e, t) => { const { kind: s, metadata: r } = t; let n = globalThis.litPropertyMetadata.get(r); if (n === void 0 && globalThis.litPropertyMetadata.set(r, n = /* @__PURE__ */ new Map()), n.set(t.name, i), s === "accessor") { const { name: o } = t; return { set(l) { const a = e.get.call(this); e.set.call(this, l), this.requestUpdate(o, a, i); }, init(l) { return l !== void 0 && this.P(o, void 0, i), l; } }; } if (s === "setter") { const { name: o } = t; return function(l) { const a = this[o]; e.call(this, l), this.requestUpdate(o, a, i); }; } throw Error("Unsupported decorator location: " + s); }; function f(i) { return (e, t) => typeof t == "object" ? ys(i, e, t) : ((s, r, n) => { const o = r.hasOwnProperty(n); return r.constructor.createProperty(n, o ? { ...s, wrapped: !0 } : s), o ? Object.getOwnPropertyDescriptor(r, n) : void 0; })(i, e, t); } /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ function xs(i) { return f({ ...i, state: !0, attribute: !1 }); } /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ const ii = (i, e, t) => (t.configurable = !0, t.enumerable = !0, Reflect.decorate && typeof e != "object" && Object.defineProperty(i, e, t), t); /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ function et(i, e) { return (t, s, r) => { const n = (o) => o.renderRoot?.querySelector(i) ?? null; return ii(t, s, { get() { return n(this); } }); }; } /** * @license * Copyright 2021 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ function zi(i) { return (e, t) => { const { slot: s, selector: r } = i ?? {}, n = "slot" + (s ? `[name=${s}]` : ":not([name])"); return ii(e, t, { get() { const o = this.renderRoot?.querySelector(n), l = o?.assignedElements(i) ?? []; return r === void 0 ? l : l.filter((a) => a.matches(r)); } }); }; } /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ function tt(i) { return (e, t) => { const { slot: s } = {}, r = "slot" + (s ? `[name=${s}]` : ":not([name])"); return ii(e, t, { get() { return this.renderRoot?.querySelector(r)?.assignedNodes(i) ?? []; } }); }; } const _ = { md: "(min-width: 48rem)", lg: "(min-width: 62rem)", xl: "(min-width: 80rem)", xxl: "(min-width: 120rem)" }; var As = Object.defineProperty, $s = Object.getOwnPropertyDescriptor, pe = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? $s(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && As(e, t, r), r; }; let q = class extends P { constructor() { super(...arguments), this.text = "", this.index = 0, this.columns = !1, this.isOpen = !1, this.controlled = !1, this.size = 1; } toggleAccordion() { this.controlled ? this.dispatchEvent(new CustomEvent("iu-toggle-accordion", { detail: { index: this.index }, bubbles: !0, composed: !0 })) : this.isOpen = !this.isOpen, this.classList.toggle("is-open"); } // make sure that every component inside this has <iu-container> set // to nested to disable padding left on the container itself updateSlottedElements() { this.slotElement.assignedElements({ flatten: !0 }).forEach((e) => { e instanceof HTMLElement && e.setAttribute("nested", "true"); }); } firstUpdated() { super.firstUpdated(), this.updateSlottedElements(); } render() { return w` <div class="accordion size-${this.size} ${this.isOpen ? "is-open" : ""}"> <button aria-expanded="false" @click=${this.toggleAccordion}> <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><path fill-rule="evenodd" clip-rule="evenodd" d="M37.5 26h-25v-2h25v2Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="M24 37.5v-25h2v25h-2Z" fill="currentColor"/></svg> ${this.text} </button> <div class="content ${this.isOpen ? "is-open" : ""} ${this.columns ? "columns-2" : ""}"> <slot></slot> </div> </div> `; } }; q.styles = O` :host{ --iu-comp-bg: transparent; --iu-comp-color: var(--iu-color-black); --iu-comp-bg-hover: var(--iu-color-black); --iu-comp-color-hover: var(--iu-color-white); --iu-comp-border-color: var(--iu-color-grey-200); --iu-comp-border-color-hover: var(--iu-color-grey-500); } :host:has(.accordion.is-open){ border-bottom: 1px solid var(--iu-comp-border-color-hover); } .accordion{ border-top: 1px solid var(--iu-comp-border-color); cursor: pointer; color: var(--iu-comp-color); background: var(--iu-comp-bg); } .accordion.is-open, .accordion.is-open button, :host(:hover), :host(:hover) button{ color: var(--iu-comp-color-hover); background: var(--iu-comp-bg-hover); } .accordion.is-open svg{ transform: rotate(45deg); } button{ color: var(--iu-comp-color); background: var(--iu-comp-bg); cursor: pointer; border: 0; position: relative; font: var(--iu-f-2); text-align: left; width: 100%; padding: 4px 0; display: flex; align-items: center; text-rendering: geometricPrecision; } .size-2 button{ padding: 0; font: var(--iu-f-lg); } svg{ transition: transform .2s ease; } .size-1 svg{ width: 36px; height: 36px; margin-right: .625rem; margin-top: -2px; } .size-2 svg{ width: 50px; height: 50px; margin-right: .9375rem; margin-top: -2px; } @media ${C(_.xl)} { button{ } } .content{ display: none; color: var(--iu-comp-color); padding-top: var(--iu-spacing-2); padding-bottom: var(--iu-spacing-6); padding-left: calc(3.125rem + .9375rem); padding-right: var(--iu-grid-gutter); } .content.is-open{ display: block; } .content.columns-2{ columns: 2; gap: var(--iu-grid-gutter); } ::slotted(*){ --iu-comp-color: var(--iu-color-white); --iu-comp-border-color: var(--iu-color-grey-500); --iu-comp-bg-hover: var(--iu-color-white); --iu-comp-color-hover: var(--iu-color-black); margin-bottom: 0; color: var(--iu-color-white) !important; } `; pe([ f() ], q.prototype, "text", 2); pe([ f() ], q.prototype, "index", 2); pe([ f({ type: Boolean, reflect: !0 }) ], q.prototype, "columns", 2); pe([ f({ type: Boolean, reflect: !0 }) ], q.prototype, "isOpen", 2); pe([ f() ], q.prototype, "controlled", 2); pe([ f({ type: Number }) ], q.prototype, "size", 2); pe([ et("slot") ], q.prototype, "slotElement", 2); q = pe([ M("iu-accordion") ], q); var Ss = Object.defineProperty, Es = Object.getOwnPropertyDescriptor, Et = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Es(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Ss(e, t, r), r; }; let _e = class extends P { constructor() { super(...arguments), this.mode = "single", this.columns = !1, this.openAccordions = []; } firstUpdated() { super.firstUpdated(), this.columns && this.classList.add("columns-2"), this.querySelectorAll("iu-accordion").forEach((i, e) => { i.index = e, i.controlled = !0; }); } handleAccordionToggle(i) { const { index: e } = i.detail; this.mode === "single" ? this.openAccordions = this.openAccordions.includes(e) ? [] : [e] : this.mode === "multiple" && (this.openAccordions.includes(e) ? this.openAccordions = this.openAccordions.filter((t) => t !== e) : this.openAccordions = [...this.openAccordions, e]), this.updateAccordionStates(); } updateAccordionStates() { this.querySelectorAll("iu-accordion").forEach((i, e) => { const t = this.openAccordions.includes(e); i.isOpen = t; }); } render() { return w` <iu-container> <div class="inner"> <slot @iu-toggle-accordion=${this.handleAccordionToggle}></slot> </div> </iu-container> `; } }; _e.styles = O` ::slotted(*:last-child){ --iu-accordion-border-color-b: var(--iu-color-grey-200); } :host(.columns-2) .inner{ display: grid; grid-template-columns: repeat(2,1fr); column-gap: var(--iu-grid-gutter); } `; Et([ f({ type: String }) ], _e.prototype, "mode", 2); Et([ f({ type: Boolean, reflect: !0 }) ], _e.prototype, "columns", 2); Et([ f({ type: Array }) ], _e.prototype, "openAccordions", 2); _e = Et([ M("iu-accordion-group") ], _e); var Ts = Object.defineProperty, Ps = Object.getOwnPropertyDescriptor, Tt = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Ps(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Ts(e, t, r), r; }; let Oe = class extends P { render() { return this.type == "current", this.href ? w` <li class="link"> <a href="${this.href}">${this.text}</a><span class="divider" aria-hidden="true">/</span> </li> ` : w` <li><h1 aria-current="page">${this.text}</h1></li> `; } }; Oe.styles = O` :host h1{ color: var(--iu-color-black); margin: 0; font-size: inherit; font-weight: 400; font: var(--iu-f-lg); display: inline; } :host li{ font: var(--iu-f-lg); display: inline; } :host .link a{ color: var(--iu-color-grey-300); text-decoration: none; } :host .divider{ color: var(--theme-color-black); margin-left: var(--iu-spacing-0); margin-right: var(--iu-spacing-0); } `; Tt([ f() ], Oe.prototype, "href", 2); Tt([ f() ], Oe.prototype, "type", 2); Tt([ f() ], Oe.prototype, "text", 2); Oe = Tt([ M("iu-breadcrumbs-item") ], Oe); var Cs = Object.getOwnPropertyDescriptor, _s = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Cs(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = o(r) || r); return r; }; let Gt = class extends P { render() { return w` <iu-container> <nav aria-label="Breadcrumbs"> <ul> <slot></slot> </ul> </nav> </iu-container> `; } }; Gt.styles = O` :host{ display: block; margin-top: var(--iu-spacing-3); } @media ${C(_.md)} { :host{ margin-top: var(--iu-spacing-7); } } @media ${C(_.xl)} { :host{ margin-top: var(--iu-spacing-10); } } :host ul{ margin: 0; padding: 0; list-style-type: none; } :host iu-container{ margin-bottom: 0; } `; Gt = _s([ M("iu-breadcrumbs") ], Gt); var Os = Object.defineProperty, Ms = Object.getOwnPropertyDescriptor, it = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Ms(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Os(e, t, r), r; }; let we = class extends P { constructor() { super(...arguments), this.tag = "a", this.href = "#", this.text = "", this.icon = "none"; } render() { return this.tag === "a" ? w` <a href="${this.href}" class="icon-${this.icon}">${this.text}</a> ` : w` <button class="icon-${this.icon}">${this.text}</button> `; } }; we.styles = O` a, button{ position: relative; display: inline-flex; align-items: center; background: var(--iu-color-grey-100); padding: 0.375rem 0.75rem; color: var(--iu-color-black); text-decoration: none; border: 0; font: var(--iu-f-sm); } a:hover, button:hover{ background: var(--iu-color-black); color: var(--iu-color-white); } a:not(.icon-none), button:not(.icon-none){ padding: 0.375rem 0.75rem 0.375rem 2.5rem; } .icon-download::before{ content: ''; background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 37 37'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m24.852 19.834-6.354 6.353-6.354-6.353.708-.708 5.146 5.147V9.5h1v14.773l5.146-5.147.708.708ZM27 28H10v-1h17v1Z' fill='%23000'/%3E%3C/svg%3E"); width: 2.25rem; aspect-ratio: 1/1; background-repat: no-repeat; background-position: center center; position: absolute; top: 0; left: 0; } .icon-download:hover::before{ background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 37 37'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m24.852 19.834-6.354 6.353-6.354-6.353.708-.708 5.146 5.147V9.5h1v14.773l5.146-5.147.708.708ZM27 28H10v-1h17v1Z' fill='%23fff'/%3E%3C/svg%3E"); } `; it([ f({ type: String }) ], we.prototype, "tag", 2); it([ f({ type: String }) ], we.prototype, "href", 2); it([ f({ type: String }) ], we.prototype, "text", 2); it([ f({ type: String }) ], we.prototype, "icon", 2); we = it([ M("iu-button") ], we); var zs = Object.defineProperty, Ls = Object.getOwnPropertyDescriptor, ce = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Ls(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && zs(e, t, r), r; }; let Z = class extends P { constructor() { super(...arguments), this.setCardHeight = () => { requestAnimationFrame(() => { const i = this.clientHeight, e = this.cardContent.clientHeight, t = i - e; this.cardImg.style.height = `${t}px`, this.cardContent.style.marginTop = `${t}px`; }); }, this.href = "", this.category = "Categoria", this.date = "01.01.2024", this.name = "Default", this.img = ""; } firstUpdated() { super.firstUpdated(); const i = this.cardImg.querySelector("img"); i && i.addEventListener("load", this.setCardHeight), this.setCardHeight(), new ResizeObserver(() => this.setCardHeight()).observe(this); } render() { return w` <a href="${this.href}" class="card"> <div class="img"> ${this.img && w`<img src="${this.img}">`} </div> <div class="content"> <div class="header"> <span class="category">${this.category}</span> <span class="date">${this.date}</span> </div> <p>${this.name}</p> </div> </a> `; } }; Z.styles = O` :host{ display: block; } .card{ display: block; text-decoration: none; color: var(--iu-color-black); position: relative; aspect-ratio: 1/1; overflow: hidden; } .card:hover .img{ height: 100% !important; } .img{ transition: height .2s ease; position: absolute; top: 0px; left: 0px; width: 100%; overflow: hidden; background-image: linear-gradient(to top, var(--iu-color-grey-400), var(--iu-color-grey-200)); } .img img{ width: 100%; height: 100%; object-fit: cover; } .header{ padding-top: 0.75rem; padding-bottom: 0.75rem; display: flex; justify-content: space-between; font: var(--iu-f-0); color: var(--iu-color-grey-300); } .content p{ font: var(--iu-f-2); font-weight: bold; margin-top: 0; } `; ce([ et(".img") ], Z.prototype, "cardImg", 2); ce([ et(".content") ], Z.prototype, "cardContent", 2); ce([ f() ], Z.prototype, "href", 2); ce([ f() ], Z.prototype, "category", 2); ce([ f() ], Z.prototype, "date", 2); ce([ f() ], Z.prototype, "name", 2); ce([ f() ], Z.prototype, "img", 2); Z = ce([ M("iu-card") ], Z); function xi(i) { return i !== null && typeof i == "object" && "constructor" in i && i.constructor === Object; } function si(i, e) { i === void 0 && (i = {}), e === void 0 && (e = {}); const t = ["__proto__", "constructor", "prototype"]; Object.keys(e).filter((s) => t.indexOf(s) < 0).forEach((s) => { typeof i[s] > "u" ? i[s] = e[s] : xi(e[s]) && xi(i[s]) && Object.keys(e[s]).length > 0 && si(i[s], e[s]); }); } const Li = { body: {}, addEventListener() { }, removeEventListener() { }, activeElement: { blur() { }, nodeName: "" }, querySelector() { return null; }, querySelectorAll() { return []; }, getElementById() { return null; }, createEvent() { return { initEvent() { } }; }, createElement() { return { children: [], childNodes: [], style: {}, setAttribute() { }, getElementsByTagName() { return []; } }; }, createElementNS() { return {}; }, importNode() { return null; }, location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" } }; function Ae() { const i = typeof document < "u" ? document : {}; return si(i, Li), i; } const ks = { document: Li, navigator: { userAgent: "" }, location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" }, history: { replaceState() { }, pushState() { }, go() { }, back() { } }, CustomEvent: function() { return this; }, addEventListener() { }, removeEventListener() { }, getComputedStyle() { return { getPropertyValue() { return ""; } }; }, Image() { }, Date() { }, screen: {}, setTimeout() { }, clearTimeout() { }, matchMedia() { return {}; }, requestAnimationFrame(i) { return typeof setTimeout > "u" ? (i(), null) : setTimeout(i, 0); }, cancelAnimationFrame(i) { typeof setTimeout > "u" || clearTimeout(i); } }; function V() { const i = typeof window < "u" ? window : {}; return si(i, ks), i; } function Is(i) { return i === void 0 && (i = ""), i.trim().split(" ").filter((e) => !!e.trim()); } function Ds(i) { const e = i; Object.keys(e).forEach((t) => { try { e[t] = null; } catch { } try { delete e[t]; } catch { } }); } function Vt(i, e) { return e === void 0 && (e = 0), setTimeout(i, e); } function ht() { return Date.now(); } function Bs(i) { const e = V(); let t; return e.getComputedStyle && (t = e.getComputedStyle(i, null)), !t && i.currentStyle && (t = i.currentStyle), t || (t = i.style), t; } function Hs(i, e) { e === void 0 && (e = "x"); const t = V(); let s, r, n; const o = Bs(i); return t.WebKitCSSMatrix ? (r = o.transform || o.webkitTransform, r.split(",").length > 6 && (r = r.split(", ").map((l) => l.replace(",", ".")).join(", ")), n = new t.WebKitCSSMatrix(r === "none" ? "" : r)) : (n = o.MozTransform || o.OTransform || o.MsTransform || o.msTransform || o.transform || o.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), s = n.toString().split(",")), e === "x" && (t.WebKitCSSMatrix ? r = n.m41 : s.length === 16 ? r = parseFloat(s[12]) : r = parseFloat(s[4])), e === "y" && (t.WebKitCSSMatrix ? r = n.m42 : s.length === 16 ? r = parseFloat(s[13]) : r = parseFloat(s[5])), r || 0; } function at(i) { return typeof i == "object" && i !== null && i.constructor && Object.prototype.toString.call(i).slice(8, -1) === "Object"; } function js(i) { return typeof window < "u" && typeof window.HTMLElement < "u" ? i instanceof HTMLElement : i && (i.nodeType === 1 || i.nodeType === 11); } function F() { const i = Object(arguments.length <= 0 ? void 0 : arguments[0]), e = ["__proto__", "constructor", "prototype"]; for (let t = 1; t < arguments.length; t += 1) { const s = t < 0 || arguments.length <= t ? void 0 : arguments[t]; if (s != null && !js(s)) { const r = Object.keys(Object(s)).filter((n) => e.indexOf(n) < 0); for (let n = 0, o = r.length; n < o; n += 1) { const l = r[n], a = Object.getOwnPropertyDescriptor(s, l); a !== void 0 && a.enumerable && (at(i[l]) && at(s[l]) ? s[l].__swiper__ ? i[l] = s[l] : F(i[l], s[l]) : !at(i[l]) && at(s[l]) ? (i[l] = {}, s[l].__swiper__ ? i[l] = s[l] : F(i[l], s[l])) : i[l] = s[l]); } } } return i; } function lt(i, e, t) { i.style.setProperty(e, t); } function ki(i) { let { swiper: e, targetPosition: t, side: s } = i; const r = V(), n = -e.translate; let o = null, l; const a = e.params.speed; e.wrapperEl.style.scrollSnapType = "none", r.cancelAnimationFrame(e.cssModeFrameID); const c = t > n ? "next" : "prev", u = (g, m) => c === "next" && g >= m || c === "prev" && g <= m, d = () => { l = (/* @__PURE__ */ new Date()).getTime(), o === null && (o = l); const g = Math.max(Math.min((l - o) / a, 1), 0), m = 0.5 - Math.cos(g * Math.PI) / 2; let v = n + m * (t - n); if (u(v, t) && (v = t), e.wrapperEl.scrollTo({ [s]: v }), u(v, t)) { e.wrapperEl.style.overflow = "hidden", e.wrapperEl.style.scrollSnapType = "", setTimeout(() => { e.wrapperEl.style.overflow = "", e.wrapperEl.scrollTo({ [s]: v }); }), r.cancelAnimationFrame(e.cssModeFrameID); return; } e.cssModeFrameID = r.requestAnimationFrame(d); }; d(); } function Ii(i) { return i.querySelector(".swiper-slide-transform") || i.shadowRoot && i.shadowRoot.querySelector(".swiper-slide-transform") || i; } function U(i, e) { e === void 0 && (e = ""); const t = V(), s = [...i.children]; return t.HTMLSlotElement && i instanceof HTMLSlotElement && s.push(...i.assignedElements()), e ? s.filter((r) => r.matches(e)) : s; } function Ns(i, e) { const t = [e]; for (; t.length > 0; ) { const s = t.shift(); if (i === s) return !0; t.push(...s.children, ...s.shadowRoot?.children || [], ...s.assignedElements?.() || []); } } function Gs(i, e) { const t = V(); let s = e.contains(i); return !s && t.HTMLSlotElement && e instanceof HTMLSlotElement && (s = [...e.assignedElements()].includes(i), s || (s = Ns(i, e))), s; } function ft(i) { try { console.warn(i); return; } catch { } } function gt(i, e) { e === void 0 && (e = []); const t = document.createElement(i); return t.classList.add(...Array.isArray(e) ? e : Is(e)), t; } function Vs(i, e) { const t = []; for (; i.previousElementSibling; ) { const s = i.previousElementSibling; e ? s.matches(e) && t.push(s) : t.push(s), i = s; } return t; } function Fs(i, e) { const t = []; for (; i.nextElementSibling; ) { const s = i.nextElementSibling; e ? s.matches(e) && t.push(s) : t.push(s), i = s; } return t; } function se(i, e) { return V().getComputedStyle(i, null).getPropertyValue(e); } function mt(i) { let e = i, t; if (e) { for (t = 0; (e = e.previousSibling) !== null; ) e.nodeType === 1 && (t += 1); return t; } } function Di(i, e) { const t = []; let s = i.parentElement; for (; s; ) e ? s.matches(e) && t.push(s) : t.push(s), s = s.parentElement; return t; } function Rs(i, e) { function t(s) { s.target === i && (e.call(i, s), i.removeEventListener("transitionend", t)); } e && i.addEventListener("transitionend", t); } function Ft(i, e, t) { const s = V(); return i[e === "width" ? "offsetWidth" : "offsetHeight"] + parseFloat(s.getComputedStyle(i, null).getPropertyValue(e === "width" ? "margin-right" : "margin-top")) + parseFloat(s.getComputedStyle(i, null).getPropertyValue(e === "width" ? "margin-left" : "margin-bottom")); } function N(i) { return (Array.isArray(i) ? i : [i]).filter((e) => !!e); } let kt; function Ys() { const i = V(), e = Ae(); return { smoothScroll: e.documentElement && e.documentElement.style && "scrollBehavior" in e.documentElement.style, touch: !!("ontouchstart" in i || i.DocumentTouch && e instanceof i.DocumentTouch) }; } function Bi() { return kt || (kt = Ys()), kt; } let It; function Us(i) { let { userAgent: e } = i === void 0 ? {} : i; const t = Bi(), s = V(), r = s.navigator.platform, n = e || s.navigator.userAgent, o = { ios: !1, android: !1 }, l = s.screen.width, a = s.screen.height, c = n.match(/(Android);?[\s\/]+([\d.]+)?/); let u = n.match(/(iPad).*OS\s([\d_]+)/); const d = n.match(/(iPod)(.*OS\s([\d_]+))?/), g = !u && n.match(/(iPhone\sOS|iOS)\s([\d_]+)/), m = r === "Win32"; let v = r === "MacIntel"; const b = ["1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112", "1112x834", "768x1024", "1024x768", "820x1180", "1180x820", "810x1080", "1080x810"]; return !u && v && t.touch && b.indexOf(`${l}x${a}`) >= 0 && (u = n.match(/(Version)\/([\d.]+)/), u || (u = [0, 1, "13_0_0"]), v = !1), c && !m && (o.os = "android", o.android = !0), (u || g || d) && (o.os = "ios", o.ios = !0), o; } function Hi(i) { return i === void 0 && (i = {}), It || (It = Us(i)), It; } let Dt; function qs() { const i = V(), e = Hi(); let t = !1; function s() { const l = i.navigator.userAgent.toLowerCase(); return l.indexOf("safari") >= 0 && l.indexOf("chrome") < 0 && l.indexOf("android") < 0; } if (s()) { const l = String(i.navigator.userAgent); if (l.includes("Version/")) { const [a, c] = l.split("Version/")[1].split(" ")[0].split(".").map((u) => Number(u)); t = a < 16 || a === 16 && c < 2; } } const r = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(i.navigator.userAgent), n = s(), o = n || r && e.ios; return { isSafari: t || n, needPerspectiveFix: t, need3dFix: o, isWebView: r }; } function ji() { return Dt || (Dt = qs()), Dt; } function Zs(i) { let { swiper: e, on: t, emit: s } = i; const r = V(); let n = null, o = null; const l = () => { !e || e.destroyed || !e.initialized || (s("beforeResize"), s("resize")); }, a = () => { !e || e.destroyed || !e.initialized || (n = new ResizeObserver((d) => { o = r.requestAnimationFrame(() => { const { width: g, height: m } = e; let v = g, b = m; d.forEach((S) => { let { contentBoxSize: x, contentRect: p, target: h } = S; h && h !== e.el || (v = p ? p.width : (x[0] || x).inlineSize, b = p ? p.height : (x[0] || x).blockSize); }), (v !== g || b !== m) && l(); }); }), n.observe(e.el)); }, c = () => { o && r.cancelAnimationFrame(o), n && n.unobserve && e.el && (n.unobserve(e.el), n = null); }, u = () => { !e || e.destroyed || !e.initialized || s("orientationchange"); }; t("init", () => { if (e.params.resizeObserver && typeof r.ResizeObserver < "u") { a(); return; } r.addEventListener("resize", l), r.addEventListener("orientationchange", u); }), t("destroy", () => { c(), r.removeEventListener("resize", l), r.removeEventListener("orientationchange", u); }); } function Ws(i) { let { swiper: e, extendParams: t, on: s, emit: r } = i; const n = [], o = V(), l = function(u, d) { d === void 0 && (d = {}); const g = o.MutationObserver || o.WebkitMutationObserver, m = new g((v) => { if (e.__preventObserver__) return; if (v.length === 1) { r("observerUpdate", v[0]); return; } const b = function() { r("observerUpdate", v[0]); }; o.requestAnimationFrame ? o.requestAnimationFrame(b) : o.setTimeout(b, 0); }); m.observe(u, { attributes: typeof d.attributes > "u" ? !0 : d.attributes, childList: e.isElement || (typeof d.childList > "u" ? !0 : d).childList, characterData: typeof d.characterData > "u" ? !0 : d.characterData }), n.push(m); }, a = () => { if (e.params.observer) { if (e.params.observeParents) { const u = Di(e.hostEl); for (let d = 0; d < u.length; d += 1) l(u[d]); } l(e.hostEl, { childList: e.params.observeSlideChildren }), l(e.wrapperEl, { attributes: !1 }); } }, c = () => { n.forEach((u) => { u.disconnect(); }), n.splice(0, n.length); }; t({ observer: !1, observeParents: !1, observeSlideChildren: !1 }), s("init", a), s("destroy", c); } var Xs = { on(i, e, t) { const s = this; if (!s.eventsListeners || s.destroyed || typeof e != "function") return s; const r = t ? "unshift" : "push"; return i.split(" ").forEach((n) => { s.eventsListeners[n] || (s.eventsListeners[n] = []), s.eventsListeners[n][r](e); }), s; }, once(i, e, t) { const s = this; if (!s.eventsListeners || s.destroyed || typeof e != "function") return s; function r() { s.off(i, r), r.__emitterProxy && delete r.__emitterProxy; for (var n = arguments.length, o = new Array(n), l = 0; l < n; l++) o[l] = arguments[l]; e.apply(s, o); } return r.__emitterProxy = e, s.on(i, r, t); }, onAny(i, e) { const t = this; if (!t.eventsListeners || t.destroyed || typeof i != "function") return t; const s = e ? "unshift" : "push"; return t.eventsAnyListeners.indexOf(i) < 0 && t.eventsAnyListeners[s](i), t; }, offAny(i) { const e = this; if (!e.eventsListeners || e.destroyed || !e.eventsAnyListeners) return e; const t = e.eventsAnyListeners.indexOf(i); return t >= 0 && e.eventsAnyListeners.splice(t, 1), e; }, off(i, e) { const t = this; return !t.eventsListeners || t.destroyed || !t.eventsListeners || i.split(" ").forEach((s) => { typeof e > "u" ? t.eventsListeners[s] = [] : t.eventsListeners[s] && t.eventsListeners[s].forEach((r, n) => { (r === e || r.__emitterProxy && r.__emitterProxy === e) && t.eventsListeners[s].splice(n, 1); }); }), t; }, emit() { const i = this; if (!i.eventsListeners || i.destroyed || !i.eventsListeners) return i; let e, t, s; for (var r = arguments.length, n = new Array(r), o = 0; o < r; o++) n[o] = arguments[o]; return typeof n[0] == "string" || Array.isArray(n[0]) ? (e = n[0], t = n.slice(1, n.length), s = i) : (e = n[0].events, t = n[0].data, s = n[0].context || i), t.unshift(s), (Array.isArray(e) ? e : e.split(" ")).forEach((a) => { i.eventsAnyListeners && i.eventsAnyListeners.length && i.eventsAnyListeners.forEach((c) => { c.apply(s, [a, ...t]); }), i.eventsListeners && i.eventsListeners[a] && i.eventsListeners[a].forEach((c) => { c.apply(s, t); }); }), i; } }; function Qs() { const i = this; let e, t; const s = i.el; typeof i.params.width < "u" && i.params.width !== null ? e = i.params.width : e = s.clientWidth, typeof i.params.height < "u" && i.params.height !== null ? t = i.params.height : t = s.clientHeight, !(e === 0 && i.isHorizontal() || t === 0 && i.isVertical()) && (e = e - parseInt(se(s, "padding-left") || 0, 10) - parseInt(se(s, "padding-right") || 0, 10), t = t - parseInt(se(s, "padding-top") || 0, 10) - parseInt(se(s, "padding-bottom") || 0, 10), Number.isNaN(e) && (e = 0), Number.isNaN(t) && (t = 0), Object.assign(i, { width: e, height: t, size: i.isHorizontal() ? e : t })); } function Ks() { const i = this; function e($, T) { return parseFloat($.getPropertyValue(i.getDirectionLabel(T)) || 0); } const t = i.params, { wrapperEl: s, slidesEl: r, size: n, rtlTranslate: o, wrongRTL: l } = i, a = i.virtual && t.virtual.enabled, c = a ? i.virtual.slides.length : i.slides.length, u = U(r, `.${i.params.slideClass}, swiper-slide`), d = a ? i.virtual.slides.length : u.length; let g = []; const m = [], v = []; let b = t.slidesOffsetBefore; typeof b == "function" && (b = t.slidesOffsetBefore.call(i)); let S = t.slidesOffsetAfter; typeof S == "function" && (S = t.slidesOffsetAfter.call(i)); const x = i.snapGrid.length, p = i.slidesGrid.length; let h = t.spaceBetween, y = -b, A = 0, I = 0; if (typeof n > "u") return; typeof h == "string" && h.indexOf("%") >= 0 ? h = parseFloat(h.replace("%", "")) / 100 * n : typeof h == "string" && (h = parseFloat(h)), i.virtualSize = -h, u.forEach(($) => { o ? $.style.marginLeft = "" : $.style.marginRight = "", $.style.marginBottom = "", $.style.marginTop = ""; }), t.centeredSlides && t.cssMode && (lt(s, "--swiper-centered-offset-before", ""), lt(s, "--swiper-centered-offset-after", "")); const D = t.grid && t.grid.rows > 1 && i.grid; D ? i.grid.initSlides(u) : i.grid && i.grid.unsetSlides(); let z; const B = t.slidesPerView === "auto" && t.breakpoints && Object.keys(t.breakpoints).filter(($) => typeof t.breakpoints[$].slidesPerView < "u").length > 0; for (let $ = 0; $ < d; $ += 1) { z = 0; let T; if (u[$] && (T = u[$]), D && i.grid.updateSlide($, T, u), !(u[$] && se(T, "display") === "none")) { if (t.slidesPerView === "auto") { B && (u[$].style[i.getDirectionLabel("width")] = ""); const L = getComputedStyle(T), E = T.style.transform, k = T.style.webkitTransform; if (E && (T.style.transform = "none"), k && (T.style.webkitTransform = "none"), t.roundLengths) z = i.isHorizontal() ? Ft(T, "width") : Ft(T, "height"); else { const H = e(L, "width"), G = e(L, "padding-left"), Wi = e(L, "padding-right"), li = e(L, "margin-left"), di = e(L, "margin-right"), pi = L.getPropertyValue("box-sizing"); if (pi && pi === "border-box") z = H + li + di; else { const { clientWidth: Xi, offsetWidth: Qi } = T; z = H + G + Wi + li + di + (Qi - Xi); } } E && (T.style.transform = E), k && (T.style.webkitTransform = k), t.roundLengths && (z = Math.floor(z)); } else z = (n - (t.slidesPerView - 1) * h) / t.slidesPerView, t.roundLengths && (z = Math.floor(z)), u[$] && (u[$].style[i.getDirectionLabel("width")] = `${z}px`); u[$] && (u[$].swiperSlideSize = z), v.push(z), t.centeredSlides ? (y = y + z / 2 + A / 2 + h, A === 0 && $ !== 0 && (y = y - n / 2 - h), $ === 0 && (y = y - n / 2 - h), Math.abs(y) < 1 / 1e3 && (y = 0), t.roundLengths && (y = Math.floor(y)), I % t.slidesPerGroup === 0 && g.push(y), m.push(y)) : (t.roundLengths && (y = Math.floor(y)), (I - Math.min(i.params.slidesPerGroupSkip, I)) % i.params.slidesPerGroup === 0 && g.push(y), m.push(y), y = y + z + h), i.virtualSize += z + h, A = z, I += 1; } } if (i.virtualSize = Math.max(i.virtualSize, n) + S, o && l && (t.effect === "slide" || t.effect === "coverflow") && (s.style.width = `${i.virtualSize + h}px`), t.setWrapperSize && (s.style[i.getDirectionLabel("width")] = `${i.virtualSize + h}px`), D && i.grid.updateWrapperSize(z, g), !t.centeredSlides) { const $ = []; for (let T = 0; T < g.length; T += 1) { let L = g[T]; t.roundLengths && (L = Math.floor(L)), g[T] <= i.virtualSize - n && $.push(L); } g = $, Math.floor(i.virtualSize - n) - Math.floor(g[g.length - 1]) > 1 && g.push(i.virtualSize - n); } if (a && t.loop) { const $ = v[0] + h; if (t.slidesPerGroup > 1) { const T = Math.ceil((i.virtual.slidesBefore + i.virtual.slidesAfter) / t.slidesPerGroup), L = $ * t.slidesPerGroup; for (let E = 0; E < T; E += 1) g.push(g[g.length - 1] + L); } for (let T = 0; T < i.virtual.slidesBefore + i.virtual.slidesAfter; T += 1) t.slidesPerGroup === 1 && g.push(g[g.length - 1] + $), m.push(m[m.length - 1] + $), i.virtualSize += $; } if (g.length === 0 && (g = [0]), h !== 0) { const $ = i.isHorizontal() && o ? "marginLeft" : i.getDirectionLabel("marginRight"); u.filter((T, L) => !t.cssMode || t.loop ? !0 : L !== u.length - 1).forEach((T) => { T.style[$] = `${h}px`; }); } if (t.centeredSlides && t.centeredSlidesBounds) { let $ = 0; v.forEach((L) => { $ += L + (h || 0); }), $ -= h; const T = $ > n ? $ - n : 0; g = g.map((L) => L <= 0 ? -b : L > T ? T + S : L); } if (t.centerInsufficientSlides) { let $ = 0; v.forEach((L) => { $ += L + (h || 0); }), $ -= h; const T = (t.slidesOffsetBefore || 0) + (t.slidesOffsetAfter || 0); if ($ + T < n) { const L = (n - $ - T) / 2; g.forEach((E, k) => { g[k] = E - L; }), m.forEach((E, k) => { m[k] = E + L; }); } } if (Object.assign(i, { slides: u, snapGrid: g, slidesGrid: m, slidesSizesGrid: v }), t.centeredSlides && t.cssMode && !t.centeredSlidesBounds) { lt(s, "--swiper-centered-offset-before", `${-g[0]}px`), lt(s, "--swiper-centered-offset-after", `${i.size / 2 - v[v.length - 1] / 2}px`); const $ = -i.snapGrid[0], T = -i.slidesGrid[0]; i.snapGrid = i.snapGrid.map((L) => L + $), i.slidesGrid = i.slidesGrid.map((L) => L + T); } if (d !== c && i.emit("slidesLengthChange"), g.length !== x && (i.params.watchOverflow && i.checkOverflow(), i.emit("snapGridLengthChange")), m.length !== p && i.emit("slidesGridLengthChange"), t.watchSlidesProgress && i.updateSlidesOffset(), i.emit("slidesUpdated"), !a && !t.cssMode && (t.effect === "slide" || t.effect === "fade")) { const $ = `${t.containerModifierClass}backface-hidden`, T = i.el.classList.contains($); d <= t.maxBackfaceHiddenSlides ? T || i.el.classList.add($) : T && i.el.classList.remove($); } } function Js(i) { const e = this, t = [], s = e.virtual && e.params.virtual.enabled; let r = 0, n; typeof i == "number" ? e.setTransition(i) : i === !0 && e.setTransition(e.params.speed); const o = (l) => s ? e.slides[e.getSlideIndexByData(l)] : e.slides[l]; if (e.params.slidesPerView !== "auto" && e.params.slidesPerView > 1) if (e.params.centeredSlides) (e.visibleSlides || []).forEach((l) => { t.push(l); }); else for (n = 0; n < Math.ceil(e.params.slidesPerView); n += 1) { const l = e.activeIndex + n; if (l > e.slides.length && !s) break; t.push(o(l)); } else t.push(o(e.activeIndex)); for (n = 0; n < t.length; n += 1) if (typeof t[n] < "u") { const l = t[n].offsetHeight; r = l > r ? l : r; } (r || r === 0) && (e.wrapperEl.style.height = `${r}px`); } function er() { const i = this, e = i.slides, t = i.isElement ? i.isHorizontal() ? i.wrapperEl.offsetLeft : i.wrapperEl.offsetTop : 0; for (let s = 0; s < e.length; s += 1) e[s].swiperSlideOffset = (i.isHorizontal() ? e[s].offsetLeft : e[s].offsetTop) - t - i.cssOverflowAdjustment(); } const Ai = (i, e, t) => { e && !i.classList.contains(t) ? i.classList.add(t) : !e && i.classList.contains(t) && i.classList.remove(t); }; function tr(i) { i === void 0 && (i = this && this.translate || 0); const e = this, t = e.params, { slides: s, rtlTranslate: r, snapGrid: n } = e; if (s.length === 0) return; typeof s[0].swiperSlideOffset > "u" && e.updateSlidesOffset(); let o = -i; r && (o = i), e.visibleSlidesIndexes = [], e.visibleSlides = []; let l = t.spaceBetween; typeof l == "string" && l.indexOf("%") >= 0 ? l = parseFloat(l.replace("%", "")) / 100 * e.size : typeof l == "string" && (l = parseFloat(l)); for (let a = 0; a < s.length; a += 1) { const c = s[a]; let u = c.swiperSlideOffset; t.cssMode && t.centeredSlides && (u -= s[0].swiperSlideOffset); const d = (o + (t.centeredSlides ? e.minTranslate() : 0) - u) / (c.swiperSlideSize + l), g = (o - n[0] + (t.centeredSlides ? e.minTranslate() : 0) - u) / (c.swiperSlideSize + l), m = -(o - u), v = m + e.slidesSizesGrid[a], b = m >= 0 && m <= e.size - e.slidesSizesGrid[a], S = m >= 0 && m < e.size - 1 || v > 1 && v <= e.size || m <= 0 && v >= e.size; S && (e.visibleSlides.push(c), e.visibleSlidesIndexes.push(a)), Ai(c, S, t.slideVisibleClass), Ai(c, b, t.slideFullyVisibleClass), c.progress = r ? -d : d, c.originalProgress = r ? -g : g; } } function ir(i) { const e = this; if (typeof i > "u") { const u = e.rtlTranslate ? -1 : 1; i = e && e.translate && e.translate * u || 0; } const t = e.params, s = e.maxTranslate() - e.minTranslate(); let { progress: r, isBeginning: n, isEnd: o, progressLoop: l } = e; const a = n, c = o; if (s === 0) r = 0, n = !0, o = !0; else { r = (i - e.minTranslate()) / s; const u = Math.abs(i - e.minTranslate()) < 1, d = Math.abs(i - e.maxTranslate()) < 1; n = u || r <= 0, o = d || r >= 1, u && (r = 0), d && (r = 1); } if (t.loop) { const u = e.getSlideIndexByData(0), d = e.getSlideIndexByData(e.slides.length - 1), g = e.slidesGrid[u], m = e.slidesGrid[d], v = e.slidesGrid[e.slidesGrid.length - 1], b = Math.abs(i); b >= g ? l = (b - g) / v : l = (b + v - m) / v, l > 1 && (l -= 1); } Object.assign(e, { progress: r, progressLoop: l, isBeginning: n, isEnd: o }), (t.watchSlidesProgress || t.centeredSlides && t.autoHeight) && e.updateSlidesProgress(i), n && !a && e.emit("reachBeginning toEdge"), o && !c && e.emit("reachEnd toEdge"), (a && !n || c && !o) && e.emit("fromEdge"), e.emit("progress", r); } const Bt = (i, e, t) => { e && !i.classList.contains(t) ? i.classList.add(t) : !e && i.classList.contains(t) && i.classList.remove(t); }; function sr() { const i = this, { slides: e, params: t, slidesEl: s, activeIndex: r } = i, n = i.virtual && t.virtual.enabled, o = i.grid && t.grid && t.grid.rows > 1, l = (d) => U(s, `.${t.slideClass}${d}, swiper-slide${d}`)[0]; let a, c, u; if (n) if (t.loop) { let d = r - i.virtual.slidesBefore; d < 0 && (d = i.virtual.slides.length + d), d >= i.virtual.slides.length && (d -= i.virtual.slides.length), a = l(`[data-swiper-slide-index="${d}"]`); } else a = l(`[data-swiper-slide-index="${r}"]`); else o ? (a = e.find((d) => d.column === r), u = e.find((d) => d.column === r + 1), c = e.find((d) => d.column === r - 1)) : a = e[r]; a && (o || (u = Fs(a, `.${t.slideClass}, swiper-slide`)[0], t.loop && !u && (u = e[0]), c = Vs(a, `.${t.slideClass}, swiper-slide`)[0], t.loop && !c === 0 && (c = e[e.length - 1]))), e.forEach((d) => { Bt(d, d === a, t.slideActiveClass), Bt(d, d === u, t.slideNextClass), Bt(d, d === c, t.slidePrevClass); }), i.emitSlidesClasses(); } const pt = (i, e) => { if (!i || i.destroyed || !i.params) return; const t = () => i.isElement ? "swiper-slide" : `.${i.params.slideClass}`, s = e.closest(t()); if (s) { let r = s.querySelector(`.${i.params.lazyPreloaderClass}`); !r && i.isElement && (s.shadowRoot ? r = s.shadowRoot.querySelector(`.${i.params.lazyPreloaderClass}`) : requestAnimationFrame(() => { s.shadowRoot && (r = s.shadowRoot.querySelector(`.${i.params.lazyPreloaderClass}`), r && r.remove()); })), r && r.remove(); } }, Ht = (i, e) => { if (!i.slides[e]) return; const t = i.slides[e].querySelector('[loading="lazy"]'); t && t.removeAttribute("loading"); }, Rt = (i) => { if (!i || i.destroyed || !i.params) return; let e = i.params.lazyPreloadPrevNext; const t = i.slides.length; if (!t || !e || e < 0) return; e = Math.min(e, t); const s = i.params.slidesPerView === "auto" ? i.slidesPerViewDynamic() : Math.ceil(i.params.slidesPerView), r = i.activeIndex; if (i.params.grid && i.params.grid.rows > 1) { const o = r, l = [o - e]; l.push(...Array.from({ length: e }).map((a, c) => o + s + c)), i.slides.forEach((a, c) => { l.includes(a.column) && Ht(i, c); }); return; } const n = r + s - 1; if (i.params.rewind || i.params.loop) for (let o = r - e; o <= n + e; o += 1) { const l = (o % t + t) % t; (l < r || l > n) && Ht(i, l); } else for (let o = Math.max(r - e, 0); o <= Math.min(n + e, t - 1); o += 1) o !== r && (o > n || o < r) && Ht(i, o); }; function rr(i) { const { slidesGrid: e, params: t } = i, s = i.rtlTranslate ? i.translate : -i.translate; let r; for (let n = 0; n < e.length; n += 1) typeof e[n + 1] < "u" ? s >= e[n] && s < e[n + 1] - (e[n + 1] - e[n]) / 2 ? r = n : s >= e[n] && s < e[n + 1] && (r = n + 1) : s >= e[n] && (r = n); return t.normalizeSlideIndex && (r < 0 || typeof r > "u") && (r = 0), r; } function nr(i) { const e = this, t = e.rtlTranslate ? e.translate : -e.translate, { snapGrid: s, params: r, activeIndex: n, realIndex: o, snapIndex: l } = e; let a = i, c; const u = (m) => { let v = m - e.virtual.slidesBefore; return v < 0 && (v = e.virtual.slides.length + v), v >= e.virtual.slides.length && (v -= e.virtual.slides.length), v; }; if (typeof a > "u" && (a = rr(e)), s.indexOf(t) >= 0) c = s.indexOf(t); else { const m = Math.min(r.slidesPerGroupSkip, a); c = m + Math.floor((a - m) / r.slidesPerGroup); } if (c >= s.length && (c = s.length - 1), a === n && !e.params.loop) { c !== l && (e.snapIndex = c, e.emit("snapIndexChange")); return; } if (a === n && e.params.loop && e.virtual && e.params.virtual.enabled) { e.realIndex = u(a); return; } const d = e.grid && r.grid && r.grid.rows > 1; let g; if (e.virtual && r.virtual.enabled && r.loop) g = u(a); else if (d) { const m = e.slides.find((b) => b.column === a); let v = parseInt(m.getAttribute("data-swiper-slide-index"), 10); Number.isNaN(v) && (v = Math.max(e.slides.indexOf(m), 0)), g = Math.floor(v / r.grid.rows); } else if (e.slides[a]) { const m = e.slides[a].getAttribute("data-swiper-slide-index"); m ? g = parseInt(m, 10) : g = a; } else g = a; Object.assign(e, { previousSnapIndex: l, snapIndex: c, previousRealIndex: o, realIndex: g, previousIndex: n, activeIndex: a }), e.initialized && Rt(e), e.emit("activeIndexChange"), e.emit("snapIndexChange"), (e.initialized || e.params.runCallbacksOnInit) && (o !== g && e.emit("realIndexChange"), e.emit("slideChange")); } function or(i, e) { const t = this, s = t.params; let r = i.closest(`.${s.slideClass}, swiper-slide`); !r && t.isElement && e && e.length > 1 && e.includes(i) && [...e.slice(e.indexOf(i) + 1, e.length)].forEach((l) => { !r && l.matches && l.matches(`.${s.slideClass}, swiper-slide`) && (r = l); }); let n = !1, o; if (r) { for (let l = 0; l < t.slides.length; l += 1) if (t.slides[l] === r) { n = !0, o = l; break; } } if (r && n) t.clickedSlide = r, t.virtual && t.params.virtual.enabled ? t.clickedIndex = parseInt(r.getAttribute("data-swiper-slide-index"), 10) : t.clickedIndex = o; else { t.clickedSlide = void 0, t.clickedIndex = void 0; return; } s.slideToClickedSlide && t.clickedIndex !== void 0 && t.clickedIndex !== t.activeIndex && t.slideToClickedSlide(); } var ar = { updateSize: Qs, updateSlides: Ks, updateAutoHeight: Js, updateSlidesOffset: er, updateSlidesProgress: tr, updateProgress: ir, updateSlidesClasses: sr, updateActiveIndex: nr, updateClickedSlide: or }; function lr(i) { i === void 0 && (i = this.isHorizontal() ? "x" : "y"); const e = this, { params: t, rtlTranslate: s, translate: r, wrapperEl: n } = e; if (t.virtualTranslate) return s ? -r : r; if (t.cssMode) return r; let o = Hs(n, i); return o += e.cssOverflowAdjustment(), s && (o = -o), o || 0; } function dr(i, e) { const t = this, { rtlTranslate: s, params: r, wrapperEl: n, progress: o } = t; let l = 0, a = 0; const c = 0; t.isHorizontal() ? l = s ? -i : i : a = i, r.roundLengths && (l = Math.floor(l), a = Math.floor(a)), t.previousTranslate = t.translate, t.translate = t.isHorizontal() ? l : a, r.cssMode ? n[t.isHorizontal() ? "scrollLeft" : "scrollTop"] = t.isHorizontal() ? -l : -a : r.virtualTranslate || (t.isHorizontal() ? l -= t.cssOverflowAdjustment() : a -= t.cssOverflowAdjustment(), n.style.transform = `translate3d(${l}px, ${a}px, ${c}px)`); let u; const d = t.maxTranslate() - t.minTranslate(); d === 0 ? u = 0 : u = (i - t.minTranslate()) / d, u !== o && t.updateProgress(i), t.emit("setTranslate", t.translate, e); } function pr() { return -this.snapGrid[0]; } function cr() { return -this.snapGrid[this.snapGrid.length - 1]; } function ur(i, e, t, s, r) { i === void 0 && (i = 0), e === void 0 && (e = this.params.speed), t === void 0 && (t = !0), s === void 0 && (s = !0); const n = this, { params: o, wrapperEl: l } = n; if (n.animating && o.preventInteractionOnTransition) return !1; const a = n.minTranslate(), c = n.maxTranslate(); let u; if (s && i > a ? u = a : s && i < c ? u = c : u = i, n.updateProgress(u), o.cssMode) { const d = n.isHorizontal(); if (e === 0) l[d ? "scrollLeft" : "scrollTop"] = -u; else { if (!n.support.smoothScroll) return ki({ swiper: n, targetPosition: -u, side: d ? "left" : "top" }), !0; l.scrollTo({ [d ? "left" : "top"]: -u, behavior: "smooth" }); } return !0; } return e === 0 ? (n.setTransition(0), n.setTranslate(u), t && (n.emit("beforeTransitionStart", e, r), n.emit("transitionEnd"))) : (n.setTransition(e), n.setTranslate(u), t && (n.emit("beforeTransitionStart", e, r), n.emit("transitionStart")), n.animating || (n.animating = !0, n.onTranslateToWrapperTransitionEnd || (n.onTranslateToWrapperTransitionEnd = function(g) { !n || n.destroyed || g.target === this && (n.wrapperEl.removeEventListener("transitionend", n.onTranslateToWrapperTransitionEnd), n.onTranslateToWrapperTransitionEnd = null, delete n.onTranslateToWrapperTransitionEnd, n.animating = !1, t && n.emit("transitionEnd")); }), n.wrapperEl.addEventListener("transitionend", n.onTranslateToWrapperTransitionEnd))), !0; } var hr = { getTranslate: lr, setTranslate: dr, minTranslate: pr, maxTranslate: cr, translateTo: ur }; function fr(i, e) { const t = this; t.params.cssMode || (t.wrapperEl.style.transitionDuration = `${i}ms`, t.wrapperEl.style.transitionDelay = i === 0 ? "0ms" : ""), t.emit("setTransition", i, e); } function Ni(i) { let { swiper: e, runCallbacks: t, direction: s, step: r } = i; const { activeIndex: n, previousIndex: o } = e; let l = s; if (l || (n > o ? l = "next" : n < o ? l = "prev" : l = "reset"), e.emit(`transition${r}`), t && n !== o) { if (l === "reset") { e.emit(`slideResetTransition${r}`); return; } e.emit(`slideChangeTransition${r}`), l === "next" ? e.emit(`slideNextTransition${r}`) : e.emit(`slidePrevTransition${r}`); } } function gr(i, e) { i === void 0 && (i = !0); const t = this, { params: s } = t; s.cssMode || (s.autoHeight && t.updateAutoHeight(), Ni({ swiper: t, runCallbacks: i, direction: e, step: "Start" })); } function mr(i, e) { i === void 0 && (i = !0); const t = this, { params: s } = t; t.animating = !1, !s.cssMode && (t.setTransition(0), Ni({ swiper: t, runCallbacks: i, direction: e, step: "End" })); } var vr = { setTransition: fr, transitionStart: gr, transitionEnd: mr }; function wr(i, e, t, s, r) { i === void 0 && (i = 0), t === void 0 && (t = !0), typeof i == "string" && (i = parseInt(i, 10)); const n = this; let o = i; o < 0 && (o = 0); const { params: l, snapGrid: a, slidesGrid: c, previousIndex: u, activeIndex: d, rtlTranslate: g, wrapperEl: m, enabled: v } = n; if (!v && !s && !r || n.destroyed || n.animating && l.preventInteractionOnTransition) return !1; typeof e > "u" && (e = n.params.speed); const b = Math.min(n.params.slidesPerGroupSkip, o); let S = b + Math.floor((o - b) / n.params.slidesPerGroup); S >= a.length && (S = a.length - 1); const x = -a[S]; if (l.normalizeSlideIndex) for (let D = 0; D < c.length; D += 1) { const z = -Math.floor(x * 100), B = Math.floor(c[D] * 100), $ = Math.floor(c[D + 1] * 100); typeof c[D + 1] < "u" ? z >= B && z < $ - ($ - B) / 2 ? o = D : z >= B && z < $ && (o = D + 1) : z >= B && (o = D); } if (n.initialized && o !== d && (!n.allowSlideNext && (g ? x > n.translate && x > n.minTranslate() : x < n.translate && x < n.minTranslate()) || !n.allowSlidePrev && x > n.translate && x > n.maxTranslate() && (d || 0) !== o)) return !1; o !== (u || 0) && t && n.emit("beforeSlideChangeStart"), n.updateProgress(x); let p; o > d ? p = "next" : o < d ? p = "prev" : p = "reset"; const h = n.virtual && n.params.virtual.enabled; if (!(h && r) && (g && -x === n.translate || !g && x === n.translate)) return n.updateActiveIndex(o), l.autoHeight && n.updateAutoHeight(), n.updateSlidesClasses(), l.effect !== "slide" && n.setTranslate(x), p !== "reset" && (n.transitionStart(t, p), n.transitionEnd(t, p)), !1; if (l.cssMode) { const D = n.isHorizontal(), z = g ? x : -x; if (e === 0) h && (n.wrapperEl.style.scrollSnapType = "none", n._immediateVirtual = !0), h && !n._cssModeVirtualInitialSet && n.params.initialSlide > 0 ? (n._cssModeVirtualInitialSet = !0, requestAnimationFrame(() => { m[D ? "scrollLeft" : "scrollTop"] = z; })) : m[D ? "scrollLeft" : "scrollTop"] = z, h && requestAnimationFrame(() => { n.wrapperEl.style.scrollSnapType = "", n._immediateVirtual = !1; }); else { if (!n.support.smoothScroll) return ki({ swiper: n, targetPosition: z, side: D ? "left" : "top" }), !0; m.scrollTo({ [D ? "left" : "top"]: z, behavior: "smooth" }); } return !0; } const I = ji().isSafari; return h && !r && I && n.isElement && n.virtual.update(!1, !1, o), n.setTransition(e), n.setTranslate(x), n.updateActiveIndex(o), n.updateSlidesClasses(), n.emit("beforeTransitionStart", e, s), n.transitionStart(t, p), e === 0 ? n.transitionEnd(t, p) : n.animating || (n.animating = !0, n.onSlideToWrapperTransitionEnd || (n.onSlideToWrapperTransitionEnd = function(z) { !n || n.destroyed || z.target === this && (n.wrapperEl.removeEventListener("transitionend", n.onSlideToWrapperTransitionEnd), n.onSlideToWrapperTransitionEnd = null, delete n.onSlideToWrapperTransitionEnd, n.transitionEnd(t, p)); }), n.wrapperEl.addEventListener("transitionend", n.onSlideToWrapperTransitionEnd)), !0; } function br(i, e, t, s) { i === void 0 && (i = 0), t === void 0 && (t = !0), typeof i == "string" && (i = parseInt(i, 10)); const r = this; if (r.destroyed) return; typeof e > "u" && (e = r.params.speed); const n = r.grid && r.params.grid && r.params.grid.rows > 1; let o = i; if (r.params.loop) if (r.virtual && r.params.virtual.enabled) o = o + r.virtual.slidesBefore; else { let l; if (n) { const g = o * r.params.grid.rows; l = r.slides.find((m) => m.getAttribute("data-swiper-slide-index") * 1 === g).column; } else l = r.getSlideIndexByData(o); const a = n ? Math.ceil(r.slides.length / r.params.grid.rows) : r.slides.length, { centeredSlides: c } = r.params; let u = r.params.slidesPerView; u === "auto" ? u = r.slidesPerViewDynamic() : (u = Math.ceil(parseFloat(r.params.slidesPerView, 10)), c && u % 2 === 0 && (u = u + 1)); let d = a - l < u; if (c && (d = d || l < Math.ceil(u / 2)), s && c && r.params.slidesPerView !== "auto" && !n && (d = !1), d) { const g = c ? l < r.activeIndex ? "prev" : "next" : l - r.activeIndex - 1 < r.params.slidesPerView ? "next" : "prev"; r.loopFix({ direction: g, slideTo: !0, activeSlideIndex: g === "next" ? l + 1 : l - a + 1, slideRealIndex: g === "next" ? r.realIndex : void 0 }); } if (n) { const g = o * r.params.grid.rows; o = r.slides.find((m) => m.getAttribute("data-swiper-slide-index") * 1 === g).column; } else o = r.getSlideIndexByData(o); } return requestAnimationFrame(() => { r.slideTo(o, e, t, s); }), r; } function yr(i, e, t) { e === void 0 && (e = !0); const s = this, { enabled: r, params: n, animating: o } = s; if (!r || s.destroyed) return s; typeof i > "u" && (i = s.params.speed); let l = n.slidesPerGroup; n.slidesPerView === "auto" && n.slidesPerGroup === 1 && n.slidesPerGroupAuto && (l = Math.max(s.slidesPerViewDynamic("current", !0), 1)); const a = s.activeIndex < n.slidesPerGroupSkip ? 1 : l, c = s.virtual && n.virtual.enabled; if (n.loop) { if (o && !c && n.loopPreventsSliding) return !1; if (s.loopFix({ direction: "next" }), s._clientLeft = s.wrapperEl.clientLeft, s.activeIndex === s.slides.length - 1 && n.cssMode) return requestAnimationFrame(() => { s.slideTo(s.activeIndex + a, i, e, t); }), !0; } return n.rewind && s.isEnd ? s.slideTo(0, i, e, t) : s.slideTo(s.activeIndex + a, i, e, t); } function xr(i, e, t) { e === void 0 && (e = !0); const s = this, { params: r, snapGrid: n, slidesGrid: o, rtlTranslate: l, enabled: a, animating: c } = s; if (!a || s.destroyed) return s; typeof i > "u" && (i = s.params.speed); const u = s.virtual && r.virtual.enabled; if (r.loop) { if (c && !u && r.loopPreventsSliding) return !1; s.loopFix({ direction: "prev" }), s._clientLeft = s.wrapperEl.clientLeft; } const d = l ? s.translate : -s.translate; function g(p) { return p < 0 ? -Math.floor(Math.abs(p)) : Math.floor(p); } const m = g(d), v = n.map((p) => g(p)), b = r.freeMode && r.freeMode.enabled; let S = n[v.indexOf(m) - 1]; if (typeof S > "u" && (r.cssMode || b)) { let p; n.forEach((h, y) => { m >= h && (p = y); }), typeof p < "u" && (S = b ? n[p] : n[p > 0 ? p - 1 : p]); } let x = 0; if (typeof S < "u" && (x = o.indexOf(S), x < 0 && (x = s.activeIndex - 1), r.slidesPerView === "auto" && r.slidesPerGroup === 1 && r.slidesPerGroupAuto && (x = x - s.slidesPerViewDynamic("previous", !0) + 1, x = Math.max(x, 0))), r.rewind && s.isBeginning) { const p = s.params.virtual && s.params.virtual.enabled && s.virtual ? s.virtual.slides.length - 1 : s.slides.length - 1; return s.slideTo(p, i, e, t); } else if (r.loop && s.activeIndex === 0 && r.cssMode) return requestAnimationFrame(() => { s.slideTo(x, i, e, t); }), !0; return s.slideTo(x, i, e, t); } function Ar(i, e, t) { e === void 0 && (e = !0); const s = this; if (!s.destroyed) return typeof i > "u" && (i = s.params.speed), s.slideTo(s.activeIndex, i, e, t); } function $r(i, e, t, s) { e === void 0 && (e = !0), s === void 0 && (s = 0.5); const r = this; if (r.destroyed) return; typeof i > "u" && (i = r.params.speed); let n = r.activeIndex; const o = Math.min(r.params.slidesPerGroupSkip, n), l = o + Math.floor((n - o) / r.params.slidesPerGroup), a = r.rtlTranslate ? r.translate : -r.translate; if (a >= r.snapGrid[l]) { const c = r.snapGrid[l], u = r.snapGrid[l + 1]; a - c > (u - c) * s && (n += r.params.slidesPerGroup); } else { const c = r.snapGrid[l - 1], u = r.snapGrid[l]; a - c <= (u - c) * s && (n -= r.params.slidesPerGroup); } return n = Math.max(n, 0), n = Math.min(n, r.slidesGrid.length - 1), r.slideTo(n, i, e, t); } function Sr() { const i = this; if (i.destroyed) return; const { params: e, slidesEl: t } = i, s = e.slidesPerView === "auto" ? i.slidesPerViewDynamic() : e.slidesPerView; let r = i.clickedIndex, n; const o = i.isElement ? "swiper-slide" : `.${e.slideClass}`; if (e.loop) { if (i.animating) return; n = parseInt(i.clickedSlide.getAttribute("data-swiper-slide-index"), 10), e.centeredSlides ? r < i.loopedSlides - s / 2 || r > i.slides.length - i.loopedSlides + s / 2 ? (i.loopFix(), r = i.getSlideIndex(U(t, `${o}[data-swiper-slide-index="${n}"]`)[0]), Vt(() => { i.slideTo(r); })) : i.slideTo(r) : r > i.slides.length - s ? (i.loopFix(), r = i.getSlideIndex(U(t, `${o}[data-swiper-slide-index="${n}"]`)[0]), Vt(() => { i.slideTo(r); })) : i.slideTo(r); } else i.slideTo(r); } var Er = { slideTo: wr, slideToLoop: br, slideNext: yr, slidePrev: xr, slideReset: Ar, slideToClosest: $r, slideToClickedSlide: Sr }; function Tr(i) { const e = this, { params: t, slidesEl: s } = e; if (!t.loop || e.virtual && e.params.virtual.enabled) return; const r = () => { U(s, `.${t.slideClass}, swiper-slide`).forEach((d, g) => { d.setAttribute("data-swiper-slide-index", g); }); }, n = e.grid && t.grid && t.grid.rows > 1, o = t.slidesPerGroup * (n ? t.grid.rows : 1), l = e.slides.length % o !== 0, a = n && e.slides.length % t.grid.rows !== 0, c = (u) => { for (let d = 0; d < u; d += 1) { const g = e.isElement ? gt("swiper-slide", [t.slideBlankClass]) : gt("div", [t.slideClass, t.slideBlankClass]); e.slidesEl.append(g); } }; if (l) { if (t.loopAddBlankSlides) { const u = o - e.slides.length % o; c(u), e.recalcSlides(), e.updateSlides(); } else ft("Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)"); r(); } else if (a) { if (t.loopAddBlankSlides) { const u = t.grid.rows - e.slides.length % t.grid.rows; c(u), e.recalcSlides(), e.updateSlides(); } else ft("Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)"); r(); } else r(); e.loopFix({ slideRealIndex: i, direction: t.centeredSlides ? void 0 : "next" }); } function Pr(i) { let { slideRealIndex: e, slideTo: t = !0, direction: s, setTranslate: r, activeSlideIndex: n, byController: o, byMousewheel: l } = i === void 0 ? {} : i; const a = this; if (!a.params.loop) return; a.emit("beforeLoopFix"); const { slides: c, allowSlidePrev: u, allowSlideNext: d, slidesEl: g, params: m } = a, { centeredSlides: v } = m; if (a.allowSlidePrev = !0, a.allowSlideNext = !0, a.virtual && m.virtual.enabled) { t && (!m.centeredSlides && a.snapIndex === 0 ? a.slideTo(a.virtual.slides.length, 0, !1, !0) : m.centeredSlides && a.snapIndex < m.slidesPerView ? a.slideTo(a.virtual.slides.length + a.snapIndex, 0, !1, !0) : a.snapIndex === a.snapGrid.length - 1 && a.slideTo(a.virtual.slidesBefore, 0, !1, !0)), a.allowSlidePrev = u, a.allowSlideNext = d, a.emit("loopFix"); return; } let b = m.slidesPerView; b === "auto" ? b = a.slidesPerViewDynamic() : (b = Math.ceil(parseFloat(m.slidesPerView, 10)), v && b % 2 === 0 && (b = b + 1)); const S = m.slidesPerGroupAuto ? b : m.slidesPerGroup; let x = S; x % S !== 0 && (x += S - x % S), x += m.loopAdditionalSlides, a.loopedSlides = x; const p = a.grid && m.grid && m.grid.rows > 1; c.length < b + x ? ft("Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters") : p && m.grid.fill === "row" && ft("Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`"); const h = [], y = []; let A = a.activeIndex; typeof n > "u" ? n = a.getSlideIndex(c.find((E) => E.classList.contains(m.slideActiveClass))) : A = n; const I = s === "next" || !s, D = s === "prev" || !s; let z = 0, B = 0; const $ = p ? Math.ceil(c.length / m.grid.rows) : c.length, L = (p ? c[n].column : n) + (v && typeof r > "u" ? -b / 2 + 0.5 : 0); if (L < x) { z = Math.max(x - L, S); for (let E = 0; E < x - L; E += 1) { const k = E - Math.floor(E / $) * $; if (p) { const H = $ - k - 1; for (let G = c.length - 1; G >= 0; G -= 1) c[G].column === H && h.push(G); } else h.push($ - k - 1); } } else if (L + b > $ - x) { B = Math.max(L - ($ - x * 2), S); for (let E = 0; E < B; E += 1) { const k = E - Math.floor(E / $) * $; p ? c.forEach((H, G) => { H.column === k && y.push(G); }) : y.push(k); } } if (a.__preventObserver__ = !0, requestAnimationFrame(() => { a.__preventObserver__ = !1; }), D && h.forEach((E) => { c[E].swiperLoopMoveDOM = !0, g.prepend(c[E]), c[E].swiperLoopMoveDOM = !1; }), I && y.forEach((E) => { c[E].swiperLoopMoveDOM = !0, g.append(c[E]), c[E].swiperLoopMoveDOM = !1; }), a.recalcSlides(), m.slidesPerView === "auto" ? a.updateSlides() : p && (h.length > 0 && D || y.length > 0 && I) && a.slides.forEach((E, k) => { a.grid.updateSlide(k, E, a.slides); }), m.watchSlidesProgress && a.updateSlidesOffset(), t) { if (h.length > 0 && D) { if (typeof e > "u") { const E = a.slidesGrid[A], H = a.slidesGrid[A + z] - E; l ? a.setTranslate(a.translate - H) : (a.slideTo(A + Math.ceil(z), 0, !1, !0), r && (a.touchEventsData.startTranslate = a.touchEventsData.startTranslate - H, a.touchEventsData.currentTranslate = a.touchEventsData.currentTranslate - H)); } else if (r) { const E = p ? h.length / m.grid.rows : h.length; a.slideTo(a.activeIndex + E, 0, !1, !0), a.touchEventsData.currentTranslate = a.translate; } } else if (y.length > 0 && I) if (typeof e > "u") { const E = a.slidesGrid[A], H = a.slidesGrid[A - B] - E; l ? a.setTranslate(a.translate - H) : (a.slideTo(A - B, 0, !1, !0), r && (a.touchEventsData.startTranslate = a.touchEventsData.startTranslate - H, a.touchEventsData.currentTranslate = a.touchEventsData.currentTranslate - H)); } else { const E = p ? y.length / m.grid.rows : y.length; a.slideTo(a.activeIndex - E, 0, !1, !0); } } if (a.allowSlidePrev = u, a.allowSlideNext = d, a.controller && a.controller.control && !o) { const E = { slideRealIndex: e, direction: s, setTranslate: r, activeSlideIndex: n, byController: !0 }; Array.isArray(a.controller.control) ? a.controller.control.forEach((k) => { !k.destroyed && k.params.loop && k.loopFix({ ...E, slideTo: k.params.slidesPerView === m.slidesPerView ? t : !1 }); }) : a.controller.control instanceof a.constructor && a.controller.control.params.loop && a.controller.control.loopFix({ ...E, slideTo: a.controller.control.params.slidesPerView === m.slidesPerView ? t : !1 }); } a.emit("loopFix"); } function Cr() { const i = this, { params: e, slidesEl: t } = i; if (!e.loop || i.virtual && i.params.virtual.enabled) return; i.recalcSlides(); const s = []; i.slides.forEach((r) => { const n = typeof r.swiperSlideIndex > "u" ? r.getAttribute("data-swiper-slide-index") * 1 : r.swiperSlideIndex; s[n] = r; }), i.slides.forEach((r) => { r.removeAttribute("data-swiper-slide-index"); }), s.forEach((r) => { t.append(r); }), i.recalcSlides(), i.slideTo(i.realIndex, 0); } var _r = { loopCreate: Tr, loopFix: Pr, loopDestroy: Cr }; function Or(i) { const e = this; if (!e.params.simulateTouch || e.params.watchOverflow && e.isLocked || e.params.cssMode) return; const t = e.params.touchEventsTarget === "container" ? e.el : e.wrapperEl; e.isElement && (e.__preventObserver__ = !0), t.style.cursor = "move", t.style.cursor = i ? "grabbing" : "grab", e.isElement && requestAnimationFrame(() => { e.__preventObserver__ = !1; }); } function Mr() { const i = this; i.params.watchOverflow && i.isLocked || i.params.cssMode || (i.isElement && (i.__preventObserver__ = !0), i[i.params.touchEventsTarget === "container" ? "el" : "wrapperEl"].style.cursor = "", i.isElement && requestAnimationFrame(() => { i.__preventObserver__ = !1; })); } var zr = { setGrabCursor: Or, unsetGrabCursor: Mr }; function Lr(i, e) { e === void 0 && (e = this); function t(s) { if (!s || s === Ae() || s === V()) return null; s.assignedSlot && (s = s.assignedSlot); const r = s.closest(i); return !r && !s.getRootNode ? null : r || t(s.getRootNode().host); } return t(e); } function $i(i, e, t) { const s = V(), { params: r } = i, n = r.edgeSwipeDetection, o = r.edgeSwipeThreshold; return n && (t <= o || t >= s.innerWidth - o) ? n === "prevent" ? (e.preventDefault(), !0) : !1 : !0; } function kr(i) { const e = this, t = Ae(); let s = i; s.originalEvent && (s = s.originalEvent); const r = e.touchEventsData; if (s.type === "pointerdown") { if (r.pointerId !== null && r.pointerId !== s.pointerId) return; r.pointerId = s.pointerId; } else s.type === "touchstart" && s.targetTouches.length === 1 && (r.touchId = s.targetTouches[0].identifier); if (s.type === "touchstart") { $i(e, s, s.targetTouches[0].pageX); return; } const { params: n, touches: o, enabled: l } = e; if (!l || !n.simulateTouch && s.pointerType === "mouse" || e.animating && n.preventInteractionOnTransition) return; !e.animating && n.cssMode && n.loop && e.loopFix(); let a = s.target; if (n.touchEventsTarget === "wrapper" && !Gs(a, e.wrapperEl) || "which" in s && s.which === 3 || "button" in s && s.button > 0 || r.isTouched && r.isMoved) return; const c = !!n.noSwipingClass && n.noSwipingClass !== "", u = s.composedPath ? s.composedPath() : s.path; c && s.target && s.target.shadowRoot && u && (a = u[0]); const d = n.noSwipingSelector ? n.noSwipingSelector : `.${n.noSwipingClass}`, g = !!(s.target && s.target.shadowRoot); if (n.noSwiping && (g ? Lr(d, a) : a.closest(d))) { e.allowClick = !0; return; } if (n.swipeHandler && !a.closest(n.swipeHandler)) return; o.currentX = s.pageX, o.currentY = s.pageY; const m = o.currentX, v = o.currentY; if (!$i(e, s, m)) return; Object.assign(r, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0 }), o.startX = m, o.startY = v, r.touchStartTime = ht(), e.allowClick = !0, e.updateSize(), e.swipeDirection = void 0, n.threshold > 0 && (r.allowThresholdMove = !1); let b = !0; a.matches(r.focusableElements) && (b = !1, a.nodeName === "SELECT" && (r.isTouched = !1)), t.activeElement && t.activeElement.matches(r.focusableElements) && t.activeElement !== a && (s.pointerType === "mouse" || s.pointerType !== "mouse" && !a.matches(r.focusableElements)) && t.activeElement.blur(); const S = b && e.allowTouchMove && n.touchStartPreventDefault; (n.touchStartForcePreventDefault || S) && !a.isContentEditable && s.preventDefault(), n.freeMode && n.freeMode.enabled && e.freeMode && e.animating && !n.cssMode && e.freeMode.onTouchStart(), e.emit("touchStart", s); } function Ir(i) { const e = Ae(), t = this, s = t.touchEventsData, { params: r, touches: n, rtlTranslate: o, enabled: l } = t; if (!l || !r.simulateTouch && i.pointerType === "mouse") return; let a = i; if (a.originalEvent && (a = a.originalEvent), a.type === "pointermove" && (s.touchId !== null || a.pointerId !== s.pointerId)) return; let c; if (a.type === "touchmove") { if (c = [...a.changedTouches].find((A) => A.identifier === s.touchId), !c || c.identifier !== s.touchId) return; } else c = a; if (!s.isTouched) { s.startMoving && s.isScrolling && t.emit("touchMoveOpposite", a); return; } const u = c.pageX, d = c.pageY; if (a.preventedByNestedSwiper) { n.startX = u, n.startY = d; return; } if (!t.allowTouchMove) { a.target.matches(s.focusableElements) || (t.allowClick = !1), s.isTouched && (Object.assign(n, { startX: u, startY: d, currentX: u, currentY: d }), s.touchStartTime = ht()); return; } if (r.touchReleaseOnEdges && !r.loop) { if (t.isVertical()) { if (d < n.startY && t.translate <= t.maxTranslate() || d > n.startY && t.translate >= t.minTranslate()) { s.isTouched = !1, s.isMoved = !1; return; } } else if (u < n.startX && t.translate <= t.maxTranslate() || u > n.startX && t.translate >= t.minTranslate()) return; } if (e.activeElement && e.activeElement.matches(s.focusableElements) && e.activeElement !== a.target && a.pointerType !== "mouse" && e.activeElement.blur(), e.activeElement && a.target === e.activeElement && a.target.matches(s.focusableElements)) { s.isMoved = !0, t.allowClick = !1; return; } s.allowTouchCallbacks && t.emit("touchMove", a), n.previousX = n.currentX, n.previousY = n.currentY, n.currentX = u, n.currentY = d; const g = n.currentX - n.startX, m = n.currentY - n.startY; if (t.params.threshold && Math.sqrt(g ** 2 + m ** 2) < t.params.threshold) return; if (typeof s.isScrolling > "u") { let A; t.isHorizontal() && n.currentY === n.startY || t.isVertical() && n.currentX === n.startX ? s.isScrolling = !1 : g * g + m * m >= 25 && (A = Math.atan2(Math.abs(m), Math.abs(g)) * 180 / Math.PI, s.isScrolling = t.isHorizontal() ? A > r.touchAngle : 90 - A > r.touchAngle); } if (s.isScrolling && t.emit("touchMoveOpposite", a), typeof s.startMoving > "u" && (n.currentX !== n.startX || n.currentY !== n.startY) && (s.startMoving = !0), s.isScrolling || a.type === "touchmove" && s.preventTouchMoveFromPointerMove) { s.isTouched = !1; return; } if (!s.startMoving) return; t.allowClick = !1, !r.cssMode && a.cancelable && a.preventDefault(), r.touchMoveStopPropagation && !r.nested && a.stopPropagation(); let v = t.isHorizontal() ? g : m, b = t.isHorizontal() ? n.currentX - n.previousX : n.currentY - n.previousY; r.oneWayMovement && (v = Math.abs(v) * (o ? 1 : -1), b = Math.abs(b) * (o ? 1 : -1)), n.diff = v, v *= r.touchRatio, o && (v = -v, b = -b); const S = t.touchesDirection; t.swipeDirection = v > 0 ? "prev" : "next", t.touchesDirection = b > 0 ? "prev" : "next"; const x = t.params.loop && !r.cssMode, p = t.touchesDirection === "next" && t.allowSlideNext || t.touchesDirection === "prev" && t.allowSlidePrev; if (!s.isMoved) { if (x && p && t.loopFix({ direction: t.swipeDirection }), s.startTranslate = t.getTranslate(), t.setTransition(0), t.animating) { const A = new window.CustomEvent("transitionend", { bubbles: !0, cancelable: !0, detail: { bySwiperTouchMove: !0 } }); t.wrapperEl.dispatchEvent(A); } s.allowMomentumBounce = !1, r.grabCursor && (t.allowSlideNext === !0 || t.allowSlidePrev === !0) && t.setGrabCursor(!0), t.emit("sliderFirstMove", a); } if ((/* @__PURE__ */ new Date()).getTime(), r._loopSwapReset !== !1 && s.isMoved && s.allowThresholdMove && S !== t.touchesDirection && x && p && Math.abs(v) >= 1) { Object.assign(n, { startX: u, startY: d, currentX: u, currentY: d, startTranslate: s.currentTranslate }), s.loopSwapReset = !0, s.startTranslate = s.currentTranslate; return; } t.emit("sliderMove", a), s.isMoved = !0, s.currentTranslate = v + s.startTranslate; let h = !0, y = r.resistanceRatio; if (r.touchReleaseOnEdges && (y = 0), v > 0 ? (x && p && s.allowThresholdMove && s.currentTranslate > (r.centeredSlides ? t.minTranslate() - t.slidesSizesGrid[t.activeIndex + 1] - (r.slidesPerView !== "auto" && t.slides.length - r.slidesPerView >= 2 ? t.slidesSizesGrid[t.activeIndex + 1] + t.params.spaceBetween : 0) - t.params.spaceBetween : t.minTranslate()) && t.loopFix({ direction: "prev", setTranslate: !0, activeSlideIndex: 0 }), s.currentTranslate > t.minTranslate() && (h = !1, r.resistance && (s.currentTranslate = t.minTranslate() - 1 + (-t.minTranslate() + s.startTranslate + v) ** y))) : v < 0 && (x && p && s.allowThresholdMove && s.currentTranslate < (r.centeredSlides ? t.maxTranslate() + t.slidesSizesGrid[t.slidesSizesGrid.length - 1] + t.params.spaceBetween + (r.slidesPerView !== "auto" && t.slides.length - r.slidesPerView >= 2 ? t.slidesSizesGrid[t.slidesSizesGrid.length - 1] + t.params.spaceBetween : 0) : t.maxTranslate()) && t.loopFix({ direction: "next", setTranslate: !0, activeSlideIndex: t.slides.length - (r.slidesPerView === "auto" ? t.slidesPerViewDynamic() : Math.ceil(parseFloat(r.slidesPerView, 10))) }), s.currentTranslate < t.maxTranslate() && (h = !1, r.resistance && (s.currentTranslate = t.maxTranslate() + 1 - (t.maxTranslate() - s.startTranslate - v) ** y))), h && (a.preventedByNestedSwiper = !0), !t.allowSlideNext && t.swipeDirection === "next" && s.currentTranslate < s.startTranslate && (s.currentTranslate = s.startTranslate), !t.allowSlidePrev && t.swipeDirection === "prev" && s.currentTranslate > s.startTranslate && (s.currentTranslate = s.startTranslate), !t.allowSlidePrev && !t.allowSlideNext && (s.currentTranslate = s.startTranslate), r.threshold > 0) if (Math.abs(v) > r.threshold || s.allowThresholdMove) { if (!s.allowThresholdMove) { s.allowThresholdMove = !0, n.startX = n.currentX, n.startY = n.currentY, s.currentTranslate = s.startTranslate, n.diff = t.isHorizontal() ? n.currentX - n.startX : n.currentY - n.startY; return; } } else { s.currentTranslate = s.startTranslate; return; } !r.followFinger || r.cssMode || ((r.freeMode && r.freeMode.enabled && t.freeMode || r.watchSlidesProgress) && (t.updateActiveIndex(), t.updateSlidesClasses()), r.freeMode && r.freeMode.enabled && t.freeMode && t.freeMode.onTouchMove(), t.updateProgress(s.currentTranslate), t.setTranslate(s.currentTranslate)); } function Dr(i) { const e = this, t = e.touchEventsData; let s = i; s.originalEvent && (s = s.originalEvent); let r; if (s.type === "touchend" || s.type === "touchcancel") { if (r = [...s.changedTouches].find((A) => A.identifier === t.touchId), !r || r.identifier !== t.touchId) return; } else { if (t.touchId !== null || s.pointerId !== t.pointerId) return; r = s; } if (["pointercancel", "pointerout", "pointerleave", "contextmenu"].includes(s.type) && !(["pointercancel", "contextmenu"].includes(s.type) && (e.browser.isSafari || e.browser.isWebView))) return; t.pointerId = null, t.touchId = null; const { params: o, touches: l, rtlTranslate: a, slidesGrid: c, enabled: u } = e; if (!u || !o.simulateTouch && s.pointerType === "mouse") return; if (t.allowTouchCallbacks && e.emit("touchEnd", s), t.allowTouchCallbacks = !1, !t.isTouched) { t.isMoved && o.grabCursor && e.setGrabCursor(!1), t.isMoved = !1, t.startMoving = !1; return; } o.grabCursor && t.isMoved && t.isTouched && (e.allowSlideNext === !0 || e.allowSlidePrev === !0) && e.setGrabCursor(!1); const d = ht(), g = d - t.touchStartTime; if (e.allowClick) { const A = s.path || s.composedPath && s.composedPath(); e.updateClickedSlide(A && A[0] || s.target, A), e.emit("tap click", s), g < 300 && d - t.lastClickTime < 300 && e.emit("doubleTap doubleClick", s); } if (t.lastClickTime = ht(), Vt(() => { e.destroyed || (e.allowClick = !0); }), !t.isTouched || !t.isMoved || !e.swipeDirection || l.diff === 0 && !t.loopSwapReset || t.currentTranslate === t.startTranslate && !t.loopSwapReset) { t.isTouched = !1, t.isMoved = !1, t.startMoving = !1; return; } t.isTouched = !1, t.isMoved = !1, t.startMoving = !1; let m; if (o.followFinger ? m = a ? e.translate : -e.translate : m = -t.currentTranslate, o.cssMode) return; if (o.freeMode && o.freeMode.enabled) { e.freeMode.onTouchEnd({ currentPos: m }); return; } const v = m >= -e.maxTranslate() && !e.params.loop; let b = 0, S = e.slidesSizesGrid[0]; for (let A = 0; A < c.length; A += A < o.slidesPerGroupSkip ? 1 : o.slidesPerGroup) { const I = A < o.slidesPerGroupSkip - 1 ? 1 : o.slidesPerGroup; typeof c[A + I] < "u" ? (v || m >= c[A] && m < c[A + I]) && (b = A, S = c[A + I] - c[A]) : (v || m >= c[A]) && (b = A, S = c[c.length - 1] - c[c.length - 2]); } let x = null, p = null; o.rewind && (e.isBeginning ? p = o.virtual && o.virtual.enabled && e.virtual ? e.virtual.slides.length - 1 : e.slides.length - 1 : e.isEnd && (x = 0)); const h = (m - c[b]) / S, y = b < o.slidesPerGroupSkip - 1 ? 1 : o.slidesPerGroup; if (g > o.longSwipesMs) { if (!o.longSwipes) { e.slideTo(e.activeIndex); return; } e.swipeDirection === "next" && (h >= o.longSwipesRatio ? e.slideTo(o.rewind && e.isEnd ? x : b + y) : e.slideTo(b)), e.swipeDirection === "prev" && (h > 1 - o.longSwipesRatio ? e.slideTo(b + y) : p !== null && h < 0 && Math.abs(h) > o.longSwipesRatio ? e.slideTo(p) : e.slideTo(b)); } else { if (!o.shortSwipes) { e.slideTo(e.activeIndex); return; } e.navigation && (s.target === e.navigation.nextEl || s.target === e.navigation.prevEl) ? s.target === e.navigation.nextEl ? e.slideTo(b + y) : e.slideTo(b) : (e.swipeDirection === "next" && e.slideTo(x !== null ? x : b + y), e.swipeDirection === "prev" && e.slideTo(p !== null ? p : b)); } } function Si() { const i = this, { params: e, el: t } = i; if (t && t.offsetWidth === 0) return; e.breakpoints && i.setBreakpoint(); const { allowSlideNext: s, allowSlidePrev: r, snapGrid: n } = i, o = i.virtual && i.params.virtual.enabled; i.allowSlideNext = !0, i.allowSlidePrev = !0, i.updateSize(), i.updateSlides(), i.updateSlidesClasses(); const l = o && e.loop; (e.slidesPerView === "auto" || e.slidesPerView > 1) && i.isEnd && !i.isBeginning && !i.params.centeredSlides && !l ? i.slideTo(i.slides.length - 1, 0, !1, !0) : i.params.loop && !o ? i.slideToLoop(i.realIndex, 0, !1, !0) : i.slideTo(i.activeIndex, 0, !1, !0), i.autoplay && i.autoplay.running && i.autoplay.paused && (clearTimeout(i.autoplay.resizeTimeout), i.autoplay.resizeTimeout = setTimeout(() => { i.autoplay && i.autoplay.running && i.autoplay.paused && i.autoplay.resume(); }, 500)), i.allowSlidePrev = r, i.allowSlideNext = s, i.params.watchOverflow && n !== i.snapGrid && i.checkOverflow(); } function Br(i) { const e = this; e.enabled && (e.allowClick || (e.params.preventClicks && i.preventDefault(), e.params.preventClicksPropagation && e.animating && (i.stopPropagation(), i.stopImmediatePropagation()))); } function Hr() { const i = this, { wrapperEl: e, rtlTranslate: t, enabled: s } = i; if (!s) return; i.previousTranslate = i.translate, i.isHorizontal() ? i.translate = -e.scrollLeft : i.translate = -e.scrollTop, i.translate === 0 && (i.translate = 0), i.updateActiveIndex(), i.updateSlidesClasses(); let r; const n = i.maxTranslate() - i.minTranslate(); n === 0 ? r = 0 : r = (i.translate - i.minTranslate()) / n, r !== i.progress && i.updateProgress(t ? -i.translate : i.translate), i.emit("setTranslate", i.translate, !1); } function jr(i) { const e = this; pt(e, i.target), !(e.params.cssMode || e.params.slidesPerView !== "auto" && !e.params.autoHeight) && e.update(); } function Nr() { const i = this; i.documentTouchHandlerProceeded || (i.documentTouchHandlerProceeded = !0, i.params.touchReleaseOnEdges && (i.el.style.touchAction = "auto")); } const Gi = (i, e) => { const t = Ae(), { params: s, el: r, wrapperEl: n, device: o } = i, l = !!s.nested, a = e === "on" ? "addEventListener" : "removeEventListener", c = e; !r || typeof r == "string" || (t[a]("touchstart", i.onDocumentTouchStart, { passive: !1, capture: l }), r[a]("touchstart", i.onTouchStart, { passive: !1 }), r[a]("pointerdown", i.onTouchStart, { passive: !1 }), t[a]("touchmove", i.onTouchMove, { passive: !1, capture: l }), t[a]("pointermove", i.onTouchMove, { passive: !1, capture: l }), t[a]("touchend", i.onTouchEnd, { passive: !0 }), t[a]("pointerup", i.onTouchEnd, { passive: !0 }), t[a]("pointercancel", i.onTouchEnd, { passive: !0 }), t[a]("touchcancel", i.onTouchEnd, { passive: !0 }), t[a]("pointerout", i.onTouchEnd, { passive: !0 }), t[a]("pointerleave", i.onTouchEnd, { passive: !0 }), t[a]("contextmenu", i.onTouchEnd, { passive: !0 }), (s.preventClicks || s.preventClicksPropagation) && r[a]("click", i.onClick, !0), s.cssMode && n[a]("scroll", i.onScroll), s.updateOnWindowResize ? i[c](o.ios || o.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", Si, !0) : i[c]("observerUpdate", Si, !0), r[a]("load", i.onLoad, { capture: !0 })); }; function Gr() { const i = this, { params: e } = i; i.onTouchStart = kr.bind(i), i.onTouchMove = Ir.bind(i), i.onTouchEnd = Dr.bind(i), i.onDocumentTouchStart = Nr.bind(i), e.cssMode && (i.onScroll = Hr.bind(i)), i.onClick = Br.bind(i), i.onLoad = jr.bind(i), Gi(i, "on"); } function Vr() { Gi(this, "off"); } var Fr = { attachEvents: Gr, detachEvents: Vr }; const Ei = (i, e) => i.grid && e.grid && e.grid.rows > 1; function Rr() { const i = this, { realIndex: e, initialized: t, params: s, el: r } = i, n = s.breakpoints; if (!n || n && Object.keys(n).length === 0) return; const o = Ae(), l = s.breakpointsBase === "window" || !s.breakpointsBase ? s.breakpointsBase : "container", a = ["window", "container"].includes(s.breakpointsBase) || !s.breakpointsBase ? i.el : o.querySelector(s.breakpointsBase), c = i.getBreakpoint(n, l, a); if (!c || i.currentBreakpoint === c) return; const d = (c in n ? n[c] : void 0) || i.originalParams, g = Ei(i, s), m = Ei(i, d), v = i.params.grabCursor, b = d.grabCursor, S = s.enabled; g && !m ? (r.classList.remove(`${s.containerModifierClass}grid`, `${s.containerModifierClass}grid-column`), i.emitContainerClasses()) : !g && m && (r.classList.add(`${s.containerModifierClass}grid`), (d.grid.fill && d.grid.fill === "column" || !d.grid.fill && s.grid.fill === "column") && r.classList.add(`${s.containerModifierClass}grid-column`), i.emitContainerClasses()), v && !b ? i.unsetGrabCursor() : !v && b && i.setGrabCursor(), ["navigation", "pagination", "scrollbar"].forEach((I) => { if (typeof d[I] > "u") return; const D = s[I] && s[I].enabled, z = d[I] && d[I].enabled; D && !z && i[I].disable(), !D && z && i[I].enable(); }); const x = d.direction && d.direction !== s.direction, p = s.loop && (d.slidesPerView !== s.slidesPerView || x), h = s.loop; x && t && i.changeDirection(), F(i.params, d); const y = i.params.enabled, A = i.params.loop; Object.assign(i, { allowTouchMove: i.params.allowTouchMove, allowSlideNext: i.params.allowSlideNext, allowSlidePrev: i.params.allowSlidePrev }), S && !y ? i.disable() : !S && y && i.enable(), i.currentBreakpoint = c, i.emit("_beforeBreakpoint", d), t && (p ? (i.loopDestroy(), i.loopCreate(e), i.updateSlides()) : !h && A ? (i.loopCreate(e), i.updateSlides()) : h && !A && i.loopDestroy()), i.emit("breakpoint", d); } function Yr(i, e, t) { if (e === void 0 && (e = "window"), !i || e === "container" && !t) return; let s = !1; const r = V(), n = e === "window" ? r.innerHeight : t.clientHeight, o = Object.keys(i).map((l) => { if (typeof l == "string" && l.indexOf("@") === 0) { const a = parseFloat(l.substr(1)); return { value: n * a, point: l }; } return { value: l, point: l }; }); o.sort((l, a) => parseInt(l.value, 10) - parseInt(a.value, 10)); for (let l = 0; l < o.length; l += 1) { const { point: a, value: c } = o[l]; e === "window" ? r.matchMedia(`(min-width: ${c}px)`).matches && (s = a) : c <= t.clientWidth && (s = a); } return s || "max"; } var Ur = { setBreakpoint: Rr, getBreakpoint: Yr }; function qr(i, e) { const t = []; return i.forEach((s) => { typeof s == "object" ? Object.keys(s).forEach((r) => { s[r] && t.push(e + r); }) : typeof s == "string" && t.push(e + s); }), t; } function Zr() { const i = this, { classNames: e, params: t, rtl: s, el: r, device: n } = i, o = qr(["initialized", t.direction, { "free-mode": i.params.freeMode && t.freeMode.enabled }, { autoheight: t.autoHeight }, { rtl: s }, { grid: t.grid && t.grid.rows > 1 }, { "grid-column": t.grid && t.grid.rows > 1 && t.grid.fill === "column" }, { android: n.android }, { ios: n.ios }, { "css-mode": t.cssMode }, { centered: t.cssMode && t.centeredSlides }, { "watch-progress": t.watchSlidesProgress }], t.containerModifierClass); e.push(...o), r.classList.add(...e), i.emitContainerClasses(); } function Wr() { const i = this, { el: e, classNames: t } = i; !e || typeof e == "string" || (e.classList.remove(...t), i.emitContainerClasses()); } var Xr = { addClasses: Zr, removeClasses: Wr }; function Qr() { const i = this, { isLocked: e, params: t } = i, { slidesOffsetBefore: s } = t; if (s) { const r = i.slides.length - 1, n = i.slidesGrid[r] + i.slidesSizesGrid[r] + s * 2; i.isLocked = i.size > n; } else i.isLocked = i.snapGrid.length === 1; t.allowSlideNext === !0 && (i.allowSlideNext = !i.isLocked), t.allowSlidePrev === !0 && (i.allowSlidePrev = !i.isLocked), e && e !== i.isLocked && (i.isEnd = !1), e !== i.isLocked && i.emit(i.isLocked ? "lock" : "unlock"); } var Kr = { checkOverflow: Qr }, Ti = { init: !0, direction: "horizontal", oneWayMovement: !1, swiperElementNodeName: "SWIPER-CONTAINER", touchEventsTarget: "wrapper", initialSlide: 0, speed: 300, cssMode: !1, updateOnWindowResize: !0, resizeObserver: !0, nested: !1, createElements: !1, eventsPrefix: "swiper", enabled: !0, focusableElements: "input, select, option, textarea, button, video, label", // Overrides width: null, height: null, // preventInteractionOnTransition: !1, // ssr userAgent: null, url: null, // To support iOS's swipe-to-go-back gesture (when being used in-app). edgeSwipeDetection: !1, edgeSwipeThreshold: 20, // Autoheight autoHeight: !1, // Set wrapper width setWrapperSize: !1, // Virtual Translate virtualTranslate: !1, // Effects effect: "slide", // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' // Breakpoints breakpoints: void 0, breakpointsBase: "window", // Slides grid spaceBetween: 0, slidesPerView: 1, slidesPerGroup: 1, slidesPerGroupSkip: 0, slidesPerGroupAuto: !1, centeredSlides: !1, centeredSlidesBounds: !1, slidesOffsetBefore: 0, // in px slidesOffsetAfter: 0, // in px normalizeSlideIndex: !0, centerInsufficientSlides: !1, // Disable swiper and hide navigation when container not overflow watchOverflow: !0, // Round length roundLengths: !1, // Touches touchRatio: 1, touchAngle: 45, simulateTouch: !0, shortSwipes: !0, longSwipes: !0, longSwipesRatio: 0.5, longSwipesMs: 300, followFinger: !0, allowTouchMove: !0, threshold: 5, touchMoveStopPropagation: !1, touchStartPreventDefault: !0, touchStartForcePreventDefault: !1, touchReleaseOnEdges: !1, // Unique Navigation Elements uniqueNavElements: !0, // Resistance resistance: !0, resistanceRatio: 0.85, // Progress watchSlidesProgress: !1, // Cursor grabCursor: !1, // Clicks preventClicks: !0, preventClicksPropagation: !0, slideToClickedSlide: !1, // loop loop: !1, loopAddBlankSlides: !0, loopAdditionalSlides: 0, loopPreventsSliding: !0, // rewind rewind: !1, // Swiping/no swiping allowSlidePrev: !0, allowSlideNext: !0, swipeHandler: null, // '.swipe-handler', noSwiping: !0, noSwipingClass: "swiper-no-swiping", noSwipingSelector: null, // Passive Listeners passiveListeners: !0, maxBackfaceHiddenSlides: 10, // NS containerModifierClass: "swiper-", // NEW slideClass: "swiper-slide", slideBlankClass: "swiper-slide-blank", slideActiveClass: "swiper-slide-active", slideVisibleClass: "swiper-slide-visible", slideFullyVisibleClass: "swiper-slide-fully-visible", slideNextClass: "swiper-slide-next", slidePrevClass: "swiper-slide-prev", wrapperClass: "swiper-wrapper", lazyPreloaderClass: "swiper-lazy-preloader", lazyPreloadPrevNext: 0, // Callbacks runCallbacksOnInit: !0, // Internals _emitClasses: !1 }; function Jr(i, e) { return function(s) { s === void 0 && (s = {}); const r = Object.keys(s)[0], n = s[r]; if (typeof n != "object" || n === null) { F(e, s); return; } if (i[r] === !0 && (i[r] = { enabled: !0 }), r === "navigation" && i[r] && i[r].enabled && !i[r].prevEl && !i[r].nextEl && (i[r].auto = !0), ["pagination", "scrollbar"].indexOf(r) >= 0 && i[r] && i[r].enabled && !i[r].el && (i[r].auto = !0), !(r in i && "enabled" in n)) { F(e, s); return; } typeof i[r] == "object" && !("enabled" in i[r]) && (i[r].enabled = !0), i[r] || (i[r] = { enabled: !1 }), F(e, s); }; } const jt = { eventsEmitter: Xs, update: ar, translate: hr, transition: vr, slide: Er, loop: _r, grabCursor: zr, events: Fr, breakpoints: Ur, checkOverflow: Kr, classes: Xr }, Nt = {}; class R { constructor() { let e, t; for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++) r[n] = arguments[n]; r.length === 1 && r[0].constructor && Object.prototype.toString.call(r[0]).slice(8, -1) === "Object" ? t = r[0] : [e, t] = r, t || (t = {}), t = F({}, t), e && !t.el && (t.el = e); const o = Ae(); if (t.el && typeof t.el == "string" && o.querySelectorAll(t.el).length > 1) { const u = []; return o.querySelectorAll(t.el).forEach((d) => { const g = F({}, t, { el: d }); u.push(new R(g)); }), u; } const l = this; l.__swiper__ = !0, l.support = Bi(), l.device = Hi({ userAgent: t.userAgent }), l.browser = ji(), l.eventsListeners = {}, l.eventsAnyListeners = [], l.modules = [...l.__modules__], t.modules && Array.isArray(t.modules) && l.modules.push(...t.modules); const a = {}; l.modules.forEach((u) => { u({ params: t, swiper: l, extendParams: Jr(t, a), on: l.on.bind(l), once: l.once.bind(l), off: l.off.bind(l), emit: l.emit.bind(l) }); }); const c = F({}, Ti, a); return l.params = F({}, c, Nt, t), l.originalParams = F({}, l.params), l.passedParams = F({}, t), l.params && l.params.on && Object.keys(l.params.on).forEach((u) => { l.on(u, l.params.on[u]); }), l.params && l.params.onAny && l.onAny(l.params.onAny), Object.assign(l, { enabled: l.params.enabled, el: e, // Classes classNames: [], // Slides slides: [], slidesGrid: [], snapGrid: [], slidesSizesGrid: [], // isDirection isHorizontal() { return l.params.direction === "horizontal"; }, isVertical() { return l.params.direction === "vertical"; }, // Indexes activeIndex: 0, realIndex: 0, // isBeginning: !0, isEnd: !1, // Props translate: 0, previousTranslate: 0, progress: 0, velocity: 0, animating: !1, cssOverflowAdjustment() { return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; }, // Locks allowSlideNext: l.params.allowSlideNext, allowSlidePrev: l.params.allowSlidePrev, // Touch Events touchEventsData: { isTouched: void 0, isMoved: void 0, allowTouchCallbacks: void 0, touchStartTime: void 0, isScrolling: void 0, currentTranslate: void 0, startTranslate: void 0, allowThresholdMove: void 0, // Form elements to match focusableElements: l.params.focusableElements, // Last click time lastClickTime: 0, clickTimeout: void 0, // Velocities velocities: [], allowMomentumBounce: void 0, startMoving: void 0, pointerId: null, touchId: null }, // Clicks allowClick: !0, // Touches allowTouchMove: l.params.allowTouchMove, touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, // Images imagesToLoad: [], imagesLoaded: 0 }), l.emit("_swiper"), l.params.init && l.init(), l; } getDirectionLabel(e) { return this.isHorizontal() ? e : { width: "height", "margin-top": "margin-left", "margin-bottom ": "margin-right", "margin-left": "margin-top", "margin-right": "margin-bottom", "padding-left": "padding-top", "padding-right": "padding-bottom", marginRight: "marginBottom" }[e]; } getSlideIndex(e) { const { slidesEl: t, params: s } = this, r = U(t, `.${s.slideClass}, swiper-slide`), n = mt(r[0]); return mt(e) - n; } getSlideIndexByData(e) { return this.getSlideIndex(this.slides.find((t) => t.getAttribute("data-swiper-slide-index") * 1 === e)); } recalcSlides() { const e = this, { slidesEl: t, params: s } = e; e.slides = U(t, `.${s.slideClass}, swiper-slide`); } enable() { const e = this; e.enabled || (e.enabled = !0, e.params.grabCursor && e.setGrabCursor(), e.emit("enable")); } disable() { const e = this; e.enabled && (e.enabled = !1, e.params.grabCursor && e.unsetGrabCursor(), e.emit("disable")); } setProgress(e, t) { const s = this; e = Math.min(Math.max(e, 0), 1); const r = s.minTranslate(), o = (s.maxTranslate() - r) * e + r; s.translateTo(o, typeof t > "u" ? 0 : t), s.updateActiveIndex(), s.updateSlidesClasses(); } emitContainerClasses() { const e = this; if (!e.params._emitClasses || !e.el) return; const t = e.el.className.split(" ").filter((s) => s.indexOf("swiper") === 0 || s.indexOf(e.params.containerModifierClass) === 0); e.emit("_containerClasses", t.join(" ")); } getSlideClasses(e) { const t = this; return t.destroyed ? "" : e.className.split(" ").filter((s) => s.indexOf("swiper-slide") === 0 || s.indexOf(t.params.slideClass) === 0).join(" "); } emitSlidesClasses() { const e = this; if (!e.params._emitClasses || !e.el) return; const t = []; e.slides.forEach((s) => { const r = e.getSlideClasses(s); t.push({ slideEl: s, classNames: r }), e.emit("_slideClass", s, r); }), e.emit("_slideClasses", t); } slidesPerViewDynamic(e, t) { e === void 0 && (e = "current"), t === void 0 && (t = !1); const s = this, { params: r, slides: n, slidesGrid: o, slidesSizesGrid: l, size: a, activeIndex: c } = s; let u = 1; if (typeof r.slidesPerView == "number") return r.slidesPerView; if (r.centeredSlides) { let d = n[c] ? Math.ceil(n[c].swiperSlideSize) : 0, g; for (let m = c + 1; m < n.length; m += 1) n[m] && !g && (d += Math.ceil(n[m].swiperSlideSize), u += 1, d > a && (g = !0)); for (let m = c - 1; m >= 0; m -= 1) n[m] && !g && (d += n[m].swiperSlideSize, u += 1, d > a && (g = !0)); } else if (e === "current") for (let d = c + 1; d < n.length; d += 1) (t ? o[d] + l[d] - o[c] < a : o[d] - o[c] < a) && (u += 1); else for (let d = c - 1; d >= 0; d -= 1) o[c] - o[d] < a && (u += 1); return u; } update() { const e = this; if (!e || e.destroyed) return; const { snapGrid: t, params: s } = e; s.breakpoints && e.setBreakpoint(), [...e.el.querySelectorAll('[loading="lazy"]')].forEach((o) => { o.complete && pt(e, o); }), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(); function r() { const o = e.rtlTranslate ? e.translate * -1 : e.translate, l = Math.min(Math.max(o, e.maxTranslate()), e.minTranslate()); e.setTranslate(l), e.updateActiveIndex(), e.updateSlidesClasses(); } let n; if (s.freeMode && s.freeMode.enabled && !s.cssMode) r(), s.autoHeight && e.updateAutoHeight(); else { if ((s.slidesPerView === "auto" || s.slidesPerView > 1) && e.isEnd && !s.centeredSlides) { const o = e.virtual && s.virtual.enabled ? e.virtual.slides : e.slides; n = e.slideTo(o.length - 1, 0, !1, !0); } else n = e.slideTo(e.activeIndex, 0, !1, !0); n || r(); } s.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit("update"); } changeDirection(e, t) { t === void 0 && (t = !0); const s = this, r = s.params.direction; return e || (e = r === "horizontal" ? "vertical" : "horizontal"), e === r || e !== "horizontal" && e !== "vertical" || (s.el.classList.remove(`${s.params.containerModifierClass}${r}`), s.el.classList.add(`${s.params.containerModifierClass}${e}`), s.emitContainerClasses(), s.params.direction = e, s.slides.forEach((n) => { e === "vertical" ? n.style.width = "" : n.style.height = ""; }), s.emit("changeDirection"), t && s.update()), s; } changeLanguageDirection(e) { const t = this; t.rtl && e === "rtl" || !t.rtl && e === "ltr" || (t.rtl = e === "rtl", t.rtlTranslate = t.params.direction === "horizontal" && t.rtl, t.rtl ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`), t.el.dir = "rtl") : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`), t.el.dir = "ltr"), t.update()); } mount(e) { const t = this; if (t.mounted) return !0; let s = e || t.params.el; if (typeof s == "string" && (s = document.querySelector(s)), !s) return !1; s.swiper = t, s.parentNode && s.parentNode.host && s.parentNode.host.nodeName === t.params.swiperElementNodeName.toUpperCase() && (t.isElement = !0); const r = () => `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`; let o = s && s.shadowRoot && s.shadowRoot.querySelector ? s.shadowRoot.querySelector(r()) : U(s, r())[0]; return !o && t.params.createElements && (o = gt("div", t.params.wrapperClass), s.append(o), U(s, `.${t.params.slideClass}`).forEach((l) => { o.append(l); })), Object.assign(t, { el: s, wrapperEl: o, slidesEl: t.isElement && !s.parentNode.host.slideSlots ? s.parentNode.host : o, hostEl: t.isElement ? s.parentNode.host : s, mounted: !0, // RTL rtl: s.dir.toLowerCase() === "rtl" || se(s, "direction") === "rtl", rtlTranslate: t.params.direction === "horizontal" && (s.dir.toLowerCase() === "rtl" || se(s, "direction") === "rtl"), wrongRTL: se(o, "display") === "-webkit-box" }), !0; } init(e) { const t = this; if (t.initialized || t.mount(e) === !1) return t; t.emit("beforeInit"), t.params.breakpoints && t.setBreakpoint(), t.addClasses(), t.updateSize(), t.updateSlides(), t.params.watchOverflow && t.checkOverflow(), t.params.grabCursor && t.enabled && t.setGrabCursor(), t.params.loop && t.virtual && t.params.virtual.enabled ? t.slideTo(t.params.initialSlide + t.virtual.slidesBefore, 0, t.params.runCallbacksOnInit, !1, !0) : t.slideTo(t.params.initialSlide, 0, t.params.runCallbacksOnInit, !1, !0), t.params.loop && t.loopCreate(), t.attachEvents(); const r = [...t.el.querySelectorAll('[loading="lazy"]')]; return t.isElement && r.push(...t.hostEl.querySelectorAll('[loading="lazy"]')), r.forEach((n) => { n.complete ? pt(t, n) : n.addEventListener("load", (o) => { pt(t, o.target); }); }), Rt(t), t.initialized = !0, Rt(t), t.emit("init"), t.emit("afterInit"), t; } destroy(e, t) { e === void 0 && (e = !0), t === void 0 && (t = !0); const s = this, { params: r, el: n, wrapperEl: o, slides: l } = s; return typeof s.params > "u" || s.destroyed || (s.emit("beforeDestroy"), s.initialized = !1, s.detachEvents(), r.loop && s.loopDestroy(), t && (s.removeClasses(), n && typeof n != "string" && n.removeAttribute("style"), o && o.removeAttribute("style"), l && l.length && l.forEach((a) => { a.classList.remove(r.slideVisibleClass, r.slideFullyVisibleClass, r.slideActiveClass, r.slideNextClass, r.slidePrevClass), a.removeAttribute("style"), a.removeAttribute("data-swiper-slide-index"); })), s.emit("destroy"), Object.keys(s.eventsListeners).forEach((a) => { s.off(a); }), e !== !1 && (s.el && typeof s.el != "string" && (s.el.swiper = null), Ds(s)), s.destroyed = !0), null; } static extendDefaults(e) { F(Nt, e); } static get extendedDefaults() { return Nt; } static get defaults() { return Ti; } static installModule(e) { R.prototype.__modules__ || (R.prototype.__modules__ = []); const t = R.prototype.__modules__; typeof e == "function" && t.indexOf(e) < 0 && t.push(e); } static use(e) { return Array.isArray(e) ? (e.forEach((t) => R.installModule(t)), R) : (R.installModule(e), R); } } Object.keys(jt).forEach((i) => { Object.keys(jt[i]).forEach((e) => { R.prototype[e] = jt[i][e]; }); }); R.use([Zs, Ws]); function Vi(i, e, t, s) { return i.params.createElements && Object.keys(s).forEach((r) => { if (!t[r] && t.auto === !0) { let n = U(i.el, `.${s[r]}`)[0]; n || (n = gt("div", s[r]), n.className = s[r], i.el.append(n)), t[r] = n, e[r] = n; } }), t; } function en(i) { let { swiper: e, extendParams: t, on: s, emit: r } = i; t({ navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: "swiper-button-disabled", hiddenClass: "swiper-button-hidden", lockClass: "swiper-button-lock", navigationDisabledClass: "swiper-navigation-disabled" } }), e.navigation = { nextEl: null, prevEl: null }; function n(v) { let b; return v && typeof v == "string" && e.isElement && (b = e.el.querySelector(v) || e.hostEl.querySelector(v), b) ? b : (v && (typeof v == "string" && (b = [...document.querySelectorAll(v)]), e.params.uniqueNavElements && typeof v == "string" && b && b.length > 1 && e.el.querySelectorAll(v).length === 1 ? b = e.el.querySelector(v) : b && b.length === 1 && (b = b[0])), v && !b ? v : b); } function o(v, b) { const S = e.params.navigation; v = N(v), v.forEach((x) => { x && (x.classList[b ? "add" : "remove"](...S.disabledClass.split(" ")), x.tagName === "BUTTON" && (x.disabled = b), e.params.watchOverflow && e.enabled && x.classList[e.isLocked ? "add" : "remove"](S.lockClass)); }); } function l() { const { nextEl: v, prevEl: b } = e.navigation; if (e.params.loop) { o(b, !1), o(v, !1); return; } o(b, e.isBeginning && !e.params.rewind), o(v, e.isEnd && !e.params.rewind); } function a(v) { v.preventDefault(), !(e.isBeginning && !e.params.loop && !e.params.rewind) && (e.slidePrev(), r("navigationPrev")); } function c(v) { v.preventDefault(), !(e.isEnd && !e.params.loop && !e.params.rewind) && (e.slideNext(), r("navigationNext")); } function u() { const v = e.params.navigation; if (e.params.navigation = Vi(e, e.originalParams.navigation, e.params.navigation, { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" }), !(v.nextEl || v.prevEl)) return; let b = n(v.nextEl), S = n(v.prevEl); Object.assign(e.navigation, { nextEl: b, prevEl: S }), b = N(b), S = N(S); const x = (p, h) => { p && p.addEventListener("click", h === "next" ? c : a), !e.enabled && p && p.classList.add(...v.lockClass.split(" ")); }; b.forEach((p) => x(p, "next")), S.forEach((p) => x(p, "prev")); } function d() { let { nextEl: v, prevEl: b } = e.navigation; v = N(v), b = N(b); const S = (x, p) => { x.removeEventListener("click", p === "next" ? c : a), x.classList.remove(...e.params.navigation.disabledClass.split(" ")); }; v.forEach((x) => S(x, "next")), b.forEach((x) => S(x, "prev")); } s("init", () => { e.params.navigation.enabled === !1 ? m() : (u(), l()); }), s("toEdge fromEdge lock unlock", () => { l(); }), s("destroy", () => { d(); }), s("enable disable", () => { let { nextEl: v, prevEl: b } = e.navigation; if (v = N(v), b = N(b), e.enabled) { l(); return; } [...v, ...b].filter((S) => !!S).forEach((S) => S.classList.add(e.params.navigation.lockClass)); }), s("click", (v, b) => { let { nextEl: S, prevEl: x } = e.navigation; S = N(S), x = N(x); const p = b.target; let h = x.includes(p) || S.includes(p); if (e.isElement && !h) { const y = b.path || b.composedPath && b.composedPath(); y && (h = y.find((A) => S.includes(A) || x.includes(A))); } if (e.params.navigation.hideOnClick && !h) { if (e.pagination && e.params.pagination && e.params.pagination.clickable && (e.pagination.el === p || e.pagination.el.contains(p))) return; let y; S.length ? y = S[0].classList.contains(e.params.navigation.hiddenClass) : x.length && (y = x[0].classList.contains(e.params.navigation.hiddenClass)), r(y === !0 ? "navigationShow" : "navigationHide"), [...S, ...x].filter((A) => !!A).forEach((A) => A.classList.toggle(e.params.navigation.hiddenClass)); } }); const g = () => { e.el.classList.remove(...e.params.navigation.navigationDisabledClass.split(" ")), u(), l(); }, m = () => { e.el.classList.add(...e.params.navigation.navigationDisabledClass.split(" ")), d(); }; Object.assign(e.navigation, { enable: g, disable: m, update: l, init: u, destroy: d }); } function Re(i) { return i === void 0 && (i = ""), `.${i.trim().replace(/([\.:!+\/])/g, "\\$1").replace(/ /g, ".")}`; } function tn(i) { let { swiper: e, extendParams: t, on: s, emit: r } = i; const n = "swiper-pagination"; t({ pagination: { el: null, bulletElement: "span", clickable: !1, hideOnClick: !1, renderBullet: null, renderProgressbar: null, renderFraction: null, renderCustom: null, progressbarOpposite: !1, type: "bullets", // 'bullets' or 'progressbar' or 'fraction' or 'custom' dynamicBullets: !1, dynamicMainBullets: 1, formatFractionCurrent: (p) => p, formatFractionTotal: (p) => p, bulletClass: `${n}-bullet`, bulletActiveClass: `${n}-bullet-active`, modifierClass: `${n}-`, currentClass: `${n}-current`, totalClass: `${n}-total`, hiddenClass: `${n}-hidden`, progressbarFillClass: `${n}-progressbar-fill`, progressbarOppositeClass: `${n}-progressbar-opposite`, clickableClass: `${n}-clickable`, lockClass: `${n}-lock`, horizontalClass: `${n}-horizontal`, verticalClass: `${n}-vertical`, paginationDisabledClass: `${n}-disabled` } }), e.pagination = { el: null, bullets: [] }; let o, l = 0; function a() { return !e.params.pagination.el || !e.pagination.el || Array.isArray(e.pagination.el) && e.pagination.el.length === 0; } function c(p, h) { const { bulletActiveClass: y } = e.params.pagination; p && (p = p[`${h === "prev" ? "previous" : "next"}ElementSibling`], p && (p.classList.add(`${y}-${h}`), p = p[`${h === "prev" ? "previous" : "next"}ElementSibling`], p && p.classList.add(`${y}-${h}-${h}`))); } function u(p, h, y) { if (p = p % y, h = h % y, h === p + 1) return "next"; if (h === p - 1) return "previous"; } function d(p) { const h = p.target.closest(Re(e.params.pagination.bulletClass)); if (!h) return; p.preventDefault(); const y = mt(h) * e.params.slidesPerGroup; if (e.params.loop) { if (e.realIndex === y) return; const A = u(e.realIndex, y, e.slides.length); A === "next" ? e.slideNext() : A === "previous" ? e.slidePrev() : e.slideToLoop(y); } else e.slideTo(y); } function g() { const p = e.rtl, h = e.params.pagination; if (a()) return; let y = e.pagination.el; y = N(y); let A, I; const D = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length, z = e.params.loop ? Math.ceil(D / e.params.slidesPerGroup) : e.snapGrid.length; if (e.params.loop ? (I = e.previousRealIndex || 0, A = e.params.slidesPerGroup > 1 ? Math.floor(e.realIndex / e.params.slidesPerGroup) : e.realIndex) : typeof e.snapIndex < "u" ? (A = e.snapIndex, I = e.previousSnapIndex) : (I = e.previousIndex || 0, A = e.activeIndex || 0), h.type === "bullets" && e.pagination.bullets && e.pagination.bullets.length > 0) { const B = e.pagination.bullets; let $, T, L; if (h.dynamicBullets && (o = Ft(B[0], e.isHorizontal() ? "width" : "height"), y.forEach((E) => { E.style[e.isHorizontal() ? "width" : "height"] = `${o * (h.dynamicMainBullets + 4)}px`; }), h.dynamicMainBullets > 1 && I !== void 0 && (l += A - (I || 0), l > h.dynamicMainBullets - 1 ? l = h.dynamicMainBullets - 1 : l < 0 && (l = 0)), $ = Math.max(A - l, 0), T = $ + (Math.min(B.length, h.dynamicMainBullets) - 1), L = (T + $) / 2), B.forEach((E) => { const k = [...["", "-next", "-next-next", "-prev", "-prev-prev", "-main"].map((H) => `${h.bulletActiveClass}${H}`)].map((H) => typeof H == "string" && H.includes(" ") ? H.split(" ") : H).flat(); E.classList.remove(...k); }), y.length > 1) B.forEach((E) => { const k = mt(E); k === A ? E.classList.add(...h.bulletActiveClass.split(" ")) : e.isElement && E.setAttribute("part", "bullet"), h.dynamicBullets && (k >= $ && k <= T && E.classList.add(...`${h.bulletActiveClass}-main`.split(" ")), k === $ && c(E, "prev"), k === T && c(E, "next")); }); else { const E = B[A]; if (E && E.classList.add(...h.bulletActiveClass.split(" ")), e.isElement && B.forEach((k, H) => { k.setAttribute("part", H === A ? "bullet-active" : "bullet"); }), h.dynamicBullets) { const k = B[$], H = B[T]; for (let G = $; G <= T; G += 1) B[G] && B[G].classList.add(...`${h.bulletActiveClass}-main`.split(" ")); c(k, "prev"), c(H, "next"); } } if (h.dynamicBullets) { const E = Math.min(B.length, h.dynamicMainBullets + 4), k = (o * E - o) / 2 - L * o, H = p ? "right" : "left"; B.forEach((G) => { G.style[e.isHorizontal() ? H : "top"] = `${k}px`; }); } } y.forEach((B, $) => { if (h.type === "fraction" && (B.querySelectorAll(Re(h.currentClass)).forEach((T) => { T.textContent = h.formatFractionCurrent(A + 1); }), B.querySelectorAll(Re(h.totalClass)).forEach((T) => { T.textContent = h.formatFractionTotal(z); })), h.type === "progressbar") { let T; h.progressbarOpposite ? T = e.isHorizontal() ? "vertical" : "horizontal" : T = e.isHorizontal() ? "horizontal" : "vertical"; const L = (A + 1) / z; let E = 1, k = 1; T === "horizontal" ? E = L : k = L, B.querySelectorAll(Re(h.progressbarFillClass)).forEach((H) => { H.style.transform = `translate3d(0,0,0) scaleX(${E}) scaleY(${k})`, H.style.transitionDuration = `${e.params.speed}ms`; }); } h.type === "custom" && h.renderCustom ? (B.innerHTML = h.renderCustom(e, A + 1, z), $ === 0 && r("paginationRender", B)) : ($ === 0 && r("paginationRender", B), r("paginationUpdate", B)), e.params.watchOverflow && e.enabled && B.classList[e.isLocked ? "add" : "remove"](h.lockClass); }); } function m() { const p = e.params.pagination; if (a()) return; const h = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.grid && e.params.grid.rows > 1 ? e.slides.length / Math.ceil(e.params.grid.rows) : e.slides.length; let y = e.pagination.el; y = N(y); let A = ""; if (p.type === "bullets") { let I = e.params.loop ? Math.ceil(h / e.params.slidesPerGroup) : e.snapGrid.length; e.params.freeMode && e.params.freeMode.enabled && I > h && (I = h); for (let D = 0; D < I; D += 1) p.renderBullet ? A += p.renderBullet.call(e, D, p.bulletClass) : A += `<${p.bulletElement} ${e.isElement ? 'part="bullet"' : ""} class="${p.bulletClass}"></${p.bulletElement}>`; } p.type === "fraction" && (p.renderFraction ? A = p.renderFraction.call(e, p.currentClass, p.totalClass) : A = `<span class="${p.currentClass}"></span> / <span class="${p.totalClass}"></span>`), p.type === "progressbar" && (p.renderProgressbar ? A = p.renderProgressbar.call(e, p.progressbarFillClass) : A = `<span class="${p.progressbarFillClass}"></span>`), e.pagination.bullets = [], y.forEach((I) => { p.type !== "custom" && (I.innerHTML = A || ""), p.type === "bullets" && e.pagination.bullets.push(...I.querySelectorAll(Re(p.bulletClass))); }), p.type !== "custom" && r("paginationRender", y[0]); } function v() { e.params.pagination = Vi(e, e.originalParams.pagination, e.params.pagination, { el: "swiper-pagination" }); const p = e.params.pagination; if (!p.el) return; let h; typeof p.el == "string" && e.isElement && (h = e.el.querySelector(p.el)), !h && typeof p.el == "string" && (h = [...document.querySelectorAll(p.el)]), h || (h = p.el), !(!h || h.length === 0) && (e.params.uniqueNavElements && typeof p.el == "string" && Array.isArray(h) && h.length > 1 && (h = [...e.el.querySelectorAll(p.el)], h.length > 1 && (h = h.find((y) => Di(y, ".swiper")[0] === e.el))), Array.isArray(h) && h.length === 1 && (h = h[0]), Object.assign(e.pagination, { el: h }), h = N(h), h.forEach((y) => { p.type === "bullets" && p.clickable && y.classList.add(...(p.clickableClass || "").split(" ")), y.classList.add(p.modifierClass + p.type), y.classList.add(e.isHorizontal() ? p.horizontalClass : p.verticalClass), p.type === "bullets" && p.dynamicBullets && (y.classList.add(`${p.modifierClass}${p.type}-dynamic`), l = 0, p.dynamicMainBullets < 1 && (p.dynamicMainBullets = 1)), p.type === "progressbar" && p.progressbarOpposite && y.classList.add(p.progressbarOppositeClass), p.clickable && y.addEventListener("click", d), e.enabled || y.classList.add(p.lockClass); })); } function b() { const p = e.params.pagination; if (a()) return; let h = e.pagination.el; h && (h = N(h), h.forEach((y) => { y.classList.remove(p.hiddenClass), y.classList.remove(p.modifierClass + p.type), y.classList.remove(e.isHorizontal() ? p.horizontalClass : p.verticalClass), p.clickable && (y.classList.remove(...(p.clickableClass || "").split(" ")), y.removeEventListener("click", d)); })), e.pagination.bullets && e.pagination.bullets.forEach((y) => y.classList.remove(...p.bulletActiveClass.split(" "))); } s("changeDirection", () => { if (!e.pagination || !e.pagination.el) return; const p = e.params.pagination; let { el: h } = e.pagination; h = N(h), h.forEach((y) => { y.classList.remove(p.horizontalClass, p.verticalClass), y.classList.add(e.isHorizontal() ? p.horizontalClass : p.verticalClass); }); }), s("init", () => { e.params.pagination.enabled === !1 ? x() : (v(), m(), g()); }), s("activeIndexChange", () => { typeof e.snapIndex > "u" && g(); }), s("snapIndexChange", () => { g(); }), s("snapGridLengthChange", () => { m(), g(); }), s("destroy", () => { b(); }), s("enable disable", () => { let { el: p } = e.pagination; p && (p = N(p), p.forEach((h) => h.classList[e.enabled ? "remove" : "add"](e.params.pagination.lockClass))); }), s("lock unlock", () => { g(); }), s("click", (p, h) => { const y = h.target, A = N(e.pagination.el); if (e.params.pagination.el && e.params.pagination.hideOnClick && A && A.length > 0 && !y.classList.contains(e.params.pagination.bulletClass)) { if (e.navigation && (e.navigation.nextEl && y === e.navigation.nextEl || e.navigation.prevEl && y === e.navigation.prevEl)) return; const I = A[0].classList.contains(e.params.pagination.hiddenClass); r(I === !0 ? "paginationShow" : "paginationHide"), A.forEach((D) => D.classList.toggle(e.params.pagination.hiddenClass)); } }); const S = () => { e.el.classList.remove(e.params.pagination.paginationDisabledClass); let { el: p } = e.pagination; p && (p = N(p), p.forEach((h) => h.classList.remove(e.params.pagination.paginationDisabledClass))), v(), m(), g(); }, x = () => { e.el.classList.add(e.params.pagination.paginationDisabledClass); let { el: p } = e.pagination; p && (p = N(p), p.forEach((h) => h.classList.add(e.params.pagination.paginationDisabledClass))), b(); }; Object.assign(e.pagination, { enable: S, disable: x, render: m, update: g, init: v, destroy: b }); } function sn(i) { const { effect: e, swiper: t, on: s, setTranslate: r, setTransition: n, overwriteParams: o, perspective: l, recreateShadows: a, getEffectParams: c } = i; s("beforeInit", () => { if (t.params.effect !== e) return; t.classNames.push(`${t.params.containerModifierClass}${e}`), l && l() && t.classNames.push(`${t.params.containerModifierClass}3d`); const d = o ? o() : {}; Object.assign(t.params, d), Object.assign(t.originalParams, d); }), s("setTranslate", () => { t.params.effect === e && r(); }), s("setTransition", (d, g) => { t.params.effect === e && n(g); }), s("transitionEnd", () => { if (t.params.effect === e && a) { if (!c || !c().slideShadows) return; t.slides.forEach((d) => { d.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((g) => g.remove()); }), a(); } }); let u; s("virtualUpdate", () => { t.params.effect === e && (t.slides.length || (u = !0), requestAnimationFrame(() => { u && t.slides && t.slides.length && (r(), u = !1); })); }); } function rn(i, e) { const t = Ii(e); return t !== e && (t.style.backfaceVisibility = "hidden", t.style["-webkit-backface-visibility"] = "hidden"), t; } function nn(i) { let { swiper: e, duration: t, transformElements: s } = i; const { activeIndex: r } = e; if (e.params.virtualTranslate && t !== 0) { let n = !1, o; o = s, o.forEach((l) => { Rs(l, () => { if (n || !e || e.destroyed) return; n = !0, e.animating = !1; const a = new window.CustomEvent("transitionend", { bubbles: !0, cancelable: !0 }); e.wrapperEl.dispatchEvent(a); }); }); } } function on(i) { let { swiper: e, extendParams: t, on: s } = i; t({ fadeEffect: { crossFade: !1 } }), sn({ effect: "fade", swiper: e, on: s, setTranslate: () => { const { slides: o } = e, l = e.params.fadeEffect; for (let a = 0; a < o.length; a += 1) { const c = e.slides[a]; let d = -c.swiperSlideOffset; e.params.virtualTranslate || (d -= e.translate); let g = 0; e.isHorizontal() || (g = d, d = 0); const m = e.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(c.progress), 0) : 1 + Math.min(Math.max(c.progress, -1), 0), v = rn(l, c); v.style.opacity = m, v.style.transform = `translate3d(${d}px, ${g}px, 0px)`; } }, setTransition: (o) => { const l = e.slides.map((a) => Ii(a)); l.forEach((a) => { a.style.transitionDuration = `${o}ms`; }), nn({ swiper: e, duration: o, transformElements: l }); }, overwriteParams: () => ({ slidesPerView: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !e.params.cssMode }) }); } const an = `/** * Swiper 11.2.3 * Most modern mobile touch slider and framework with hardware accelerated transitions * https://swiperjs.com * * Copyright 2014-2025 Vladimir Kharlampidi * * Released under the MIT License * * Released on: February 12, 2025 */ /* FONT_START */ @font-face { font-family: 'swiper-icons'; src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA'); font-weight: 400; font-style: normal; } /* FONT_END */ :root { --swiper-theme-color: #007aff; /* --swiper-preloader-color: var(--swiper-theme-color); --swiper-wrapper-transition-timing-function: initial; */ } :host { position: relative; display: block; margin-left: auto; margin-right: auto; z-index: 1; } .swiper { margin-left: auto; margin-right: auto; position: relative; overflow: hidden; list-style: none; padding: 0; /* Fix of Webkit flickering */ z-index: 1; display: block; } .swiper-vertical > .swiper-wrapper { flex-direction: column; } .swiper-wrapper { position: relative; width: 100%; height: 100%; z-index: 1; display: flex; transition-property: transform; transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial); box-sizing: content-box; } .swiper-android .swiper-slide, .swiper-ios .swiper-slide, .swiper-wrapper { transform: translate3d(0px, 0, 0); } .swiper-horizontal { touch-action: pan-y; } .swiper-vertical { touch-action: pan-x; } .swiper-slide { flex-shrink: 0; width: 100%; height: 100%; position: relative; transition-property: transform; display: block; } .swiper-slide-invisible-blank { visibility: hidden; } /* Auto Height */ .swiper-autoheight, .swiper-autoheight .swiper-slide { height: auto; } .swiper-autoheight .swiper-wrapper { align-items: flex-start; transition-property: transform, height; } .swiper-backface-hidden .swiper-slide { transform: translateZ(0); -webkit-backface-visibility: hidden; backface-visibility: hidden; } /* 3D Effects */ .swiper-3d.swiper-css-mode .swiper-wrapper { perspective: 1200px; } .swiper-3d .swiper-wrapper { transform-style: preserve-3d; } .swiper-3d { perspective: 1200px; } .swiper-3d .swiper-slide, .swiper-3d .swiper-cube-shadow { transform-style: preserve-3d; } /* CSS Mode */ .swiper-css-mode > .swiper-wrapper { overflow: auto; scrollbar-width: none; /* For Firefox */ -ms-overflow-style: none; /* For Internet Explorer and Edge */ } .swiper-css-mode > .swiper-wrapper::-webkit-scrollbar { display: none; } .swiper-css-mode > .swiper-wrapper > .swiper-slide { scroll-snap-align: start start; } .swiper-css-mode.swiper-horizontal > .swiper-wrapper { scroll-snap-type: x mandatory; } .swiper-css-mode.swiper-vertical > .swiper-wrapper { scroll-snap-type: y mandatory; } .swiper-css-mode.swiper-free-mode > .swiper-wrapper { scroll-snap-type: none; } .swiper-css-mode.swiper-free-mode > .swiper-wrapper > .swiper-slide { scroll-snap-align: none; } .swiper-css-mode.swiper-centered > .swiper-wrapper::before { content: ''; flex-shrink: 0; order: 9999; } .swiper-css-mode.swiper-centered > .swiper-wrapper > .swiper-slide { scroll-snap-align: center center; scroll-snap-stop: always; } .swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper > .swiper-slide:first-child { margin-inline-start: var(--swiper-centered-offset-before); } .swiper-css-mode.swiper-centered.swiper-horizontal > .swiper-wrapper::before { height: 100%; min-height: 1px; width: var(--swiper-centered-offset-after); } .swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper > .swiper-slide:first-child { margin-block-start: var(--swiper-centered-offset-before); } .swiper-css-mode.swiper-centered.swiper-vertical > .swiper-wrapper::before { width: 100%; min-width: 1px; height: var(--swiper-centered-offset-after); } /* Slide styles start */ /* 3D Shadows */ .swiper-3d .swiper-slide-shadow, .swiper-3d .swiper-slide-shadow-left, .swiper-3d .swiper-slide-shadow-right, .swiper-3d .swiper-slide-shadow-top, .swiper-3d .swiper-slide-shadow-bottom, .swiper-3d .swiper-slide-shadow, .swiper-3d .swiper-slide-shadow-left, .swiper-3d .swiper-slide-shadow-right, .swiper-3d .swiper-slide-shadow-top, .swiper-3d .swiper-slide-shadow-bottom { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; z-index: 10; } .swiper-3d .swiper-slide-shadow { background: rgba(0, 0, 0, 0.15); } .swiper-3d .swiper-slide-shadow-left { background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); } .swiper-3d .swiper-slide-shadow-right { background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); } .swiper-3d .swiper-slide-shadow-top { background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); } .swiper-3d .swiper-slide-shadow-bottom { background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); } .swiper-lazy-preloader { width: 42px; height: 42px; position: absolute; left: 50%; top: 50%; margin-left: -21px; margin-top: -21px; z-index: 10; transform-origin: 50%; box-sizing: border-box; border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color)); border-radius: 50%; border-top-color: transparent; } .swiper:not(.swiper-watch-progress) .swiper-lazy-preloader, .swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader { animation: swiper-preloader-spin 1s infinite linear; } .swiper-lazy-preloader-white { --swiper-preloader-color: #fff; } .swiper-lazy-preloader-black { --swiper-preloader-color: #000; } @keyframes swiper-preloader-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Slide styles end */ .swiper-virtual .swiper-slide { -webkit-backface-visibility: hidden; transform: translateZ(0); } .swiper-virtual.swiper-css-mode .swiper-wrapper::after { content: ''; position: absolute; left: 0; top: 0; pointer-events: none; } .swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after { height: 1px; width: var(--swiper-virtual-size); } .swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after { width: 1px; height: var(--swiper-virtual-size); } :root { --swiper-navigation-size: 44px; /* --swiper-navigation-top-offset: 50%; --swiper-navigation-sides-offset: 10px; --swiper-navigation-color: var(--swiper-theme-color); */ } .swiper-button-prev, .swiper-button-next { position: absolute; top: var(--swiper-navigation-top-offset, 50%); width: calc(var(--swiper-navigation-size) / 44 * 27); height: var(--swiper-navigation-size); margin-top: calc(0px - (var(--swiper-navigation-size) / 2)); z-index: 10; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--swiper-navigation-color, var(--swiper-theme-color)); } .swiper-button-prev.swiper-button-disabled, .swiper-button-next.swiper-button-disabled { opacity: 0.35; cursor: auto; pointer-events: none; } .swiper-button-prev.swiper-button-hidden, .swiper-button-next.swiper-button-hidden { opacity: 0; cursor: auto; pointer-events: none; } .swiper-navigation-disabled .swiper-button-prev, .swiper-navigation-disabled .swiper-button-next { display: none !important; } .swiper-button-prev svg, .swiper-button-next svg { width: 100%; height: 100%; object-fit: contain; transform-origin: center; } .swiper-rtl .swiper-button-prev svg, .swiper-rtl .swiper-button-next svg { transform: rotate(180deg); } .swiper-button-prev, .swiper-rtl .swiper-button-next { left: var(--swiper-navigation-sides-offset, 10px); right: auto; } .swiper-button-next, .swiper-rtl .swiper-button-prev { right: var(--swiper-navigation-sides-offset, 10px); left: auto; } .swiper-button-lock { display: none; } /* Navigation font start */ .swiper-button-prev:after, .swiper-button-next:after { font-family: swiper-icons; font-size: var(--swiper-navigation-size); text-transform: none !important; letter-spacing: 0; font-variant: initial; line-height: 1; } .swiper-button-prev:after, .swiper-rtl .swiper-button-next:after { content: 'prev'; } .swiper-button-next, .swiper-rtl .swiper-button-prev { right: var(--swiper-navigation-sides-offset, 10px); left: auto; } .swiper-button-next:after, .swiper-rtl .swiper-button-prev:after { content: 'next'; } /* Navigation font end */ :root { /* --swiper-pagination-color: var(--swiper-theme-color); --swiper-pagination-left: auto; --swiper-pagination-right: 8px; --swiper-pagination-bottom: 8px; --swiper-pagination-top: auto; --swiper-pagination-fraction-color: inherit; --swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25); --swiper-pagination-progressbar-size: 4px; --swiper-pagination-bullet-size: 8px; --swiper-pagination-bullet-width: 8px; --swiper-pagination-bullet-height: 8px; --swiper-pagination-bullet-border-radius: 50%; --swiper-pagination-bullet-inactive-color: #000; --swiper-pagination-bullet-inactive-opacity: 0.2; --swiper-pagination-bullet-opacity: 1; --swiper-pagination-bullet-horizontal-gap: 4px; --swiper-pagination-bullet-vertical-gap: 6px; */ } .swiper-pagination { position: absolute; text-align: center; transition: 300ms opacity; transform: translate3d(0, 0, 0); z-index: 10; } .swiper-pagination.swiper-pagination-hidden { opacity: 0; } .swiper-pagination-disabled > .swiper-pagination, .swiper-pagination.swiper-pagination-disabled { display: none !important; } /* Common Styles */ .swiper-pagination-fraction, .swiper-pagination-custom, .swiper-horizontal > .swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal { bottom: var(--swiper-pagination-bottom, 8px); top: var(--swiper-pagination-top, auto); left: 0; width: 100%; } /* Bullets */ .swiper-pagination-bullets-dynamic { overflow: hidden; font-size: 0; } .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { transform: scale(0.33); position: relative; } .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active { transform: scale(1); } .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main { transform: scale(1); } .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev { transform: scale(0.66); } .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev { transform: scale(0.33); } .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next { transform: scale(0.66); } .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next { transform: scale(0.33); } .swiper-pagination-bullet { width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px)); height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px)); display: inline-block; border-radius: var(--swiper-pagination-bullet-border-radius, 50%); background: var(--swiper-pagination-bullet-inactive-color, #000); opacity: var(--swiper-pagination-bullet-inactive-opacity, 0.2); } button.swiper-pagination-bullet { border: none; margin: 0; padding: 0; box-shadow: none; -webkit-appearance: none; appearance: none; } .swiper-pagination-clickable .swiper-pagination-bullet { cursor: pointer; } .swiper-pagination-bullet:only-child { display: none !important; } .swiper-pagination-bullet-active { opacity: var(--swiper-pagination-bullet-opacity, 1); background: var(--swiper-pagination-color, var(--swiper-theme-color)); } .swiper-vertical > .swiper-pagination-bullets, .swiper-pagination-vertical.swiper-pagination-bullets { right: var(--swiper-pagination-right, 8px); left: var(--swiper-pagination-left, auto); top: 50%; transform: translate3d(0px, -50%, 0); } .swiper-vertical > .swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet { margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0; display: block; } .swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, .swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic { top: 50%; transform: translateY(-50%); width: 8px; } .swiper-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, .swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { display: inline-block; transition: 200ms transform, 200ms top; } .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet { margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px); } .swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, .swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic { left: 50%; transform: translateX(-50%); white-space: nowrap; } .swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { transition: 200ms transform, 200ms left; } .swiper-horizontal.swiper-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { transition: 200ms transform, 200ms right; } /* Fraction */ .swiper-pagination-fraction { color: var(--swiper-pagination-fraction-color, inherit); } /* Progress */ .swiper-pagination-progressbar { background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, 0.25)); position: absolute; } .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { background: var(--swiper-pagination-color, var(--swiper-theme-color)); position: absolute; left: 0; top: 0; width: 100%; height: 100%; transform: scale(0); transform-origin: left top; } .swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { transform-origin: right top; } .swiper-horizontal > .swiper-pagination-progressbar, .swiper-pagination-progressbar.swiper-pagination-horizontal, .swiper-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, .swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite { width: 100%; height: var(--swiper-pagination-progressbar-size, 4px); left: 0; top: 0; } .swiper-vertical > .swiper-pagination-progressbar, .swiper-pagination-progressbar.swiper-pagination-vertical, .swiper-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite, .swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite { width: var(--swiper-pagination-progressbar-size, 4px); height: 100%; left: 0; top: 0; } .swiper-pagination-lock { display: none; } :root { /* --swiper-scrollbar-border-radius: 10px; --swiper-scrollbar-top: auto; --swiper-scrollbar-bottom: 4px; --swiper-scrollbar-left: auto; --swiper-scrollbar-right: 4px; --swiper-scrollbar-sides-offset: 1%; --swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1); --swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5); --swiper-scrollbar-size: 4px; */ } .swiper-scrollbar { border-radius: var(--swiper-scrollbar-border-radius, 10px); position: relative; touch-action: none; background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1)); } .swiper-scrollbar-disabled > .swiper-scrollbar, .swiper-scrollbar.swiper-scrollbar-disabled { display: none !important; } .swiper-horizontal > .swiper-scrollbar, .swiper-scrollbar.swiper-scrollbar-horizontal { position: absolute; left: var(--swiper-scrollbar-sides-offset, 1%); bottom: var(--swiper-scrollbar-bottom, 4px); top: var(--swiper-scrollbar-top, auto); z-index: 50; height: var(--swiper-scrollbar-size, 4px); width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); } .swiper-vertical > .swiper-scrollbar, .swiper-scrollbar.swiper-scrollbar-vertical { position: absolute; left: var(--swiper-scrollbar-left, auto); right: var(--swiper-scrollbar-right, 4px); top: var(--swiper-scrollbar-sides-offset, 1%); z-index: 50; width: var(--swiper-scrollbar-size, 4px); height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%)); } .swiper-scrollbar-drag { height: 100%; width: 100%; position: relative; background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5)); border-radius: var(--swiper-scrollbar-border-radius, 10px); left: 0; top: 0; } .swiper-scrollbar-cursor-drag { cursor: move; } .swiper-scrollbar-lock { display: none; } /* Zoom container styles start */ .swiper-zoom-container { width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; text-align: center; } .swiper-zoom-container > img, .swiper-zoom-container > svg, .swiper-zoom-container > canvas { max-width: 100%; max-height: 100%; object-fit: contain; } /* Zoom container styles end */ .swiper-slide-zoomed { cursor: move; touch-action: none; } /* a11y */ .swiper .swiper-notification { position: absolute; left: 0; top: 0; pointer-events: none; opacity: 0; z-index: -1000; } .swiper-free-mode > .swiper-wrapper { transition-timing-function: ease-out; margin: 0 auto; } .swiper-grid > .swiper-wrapper { flex-wrap: wrap; } .swiper-grid-column > .swiper-wrapper { flex-wrap: wrap; flex-direction: column; } .swiper-fade.swiper-free-mode .swiper-slide { transition-timing-function: ease-out; } .swiper-fade .swiper-slide { pointer-events: none; transition-property: opacity; } .swiper-fade .swiper-slide .swiper-slide { pointer-events: none; } .swiper-fade .swiper-slide-active { pointer-events: auto; } .swiper-fade .swiper-slide-active .swiper-slide-active { pointer-events: auto; } .swiper.swiper-cube { overflow: visible; } .swiper-cube .swiper-slide { pointer-events: none; -webkit-backface-visibility: hidden; backface-visibility: hidden; z-index: 1; visibility: hidden; transform-origin: 0 0; width: 100%; height: 100%; } .swiper-cube .swiper-slide .swiper-slide { pointer-events: none; } .swiper-cube.swiper-rtl .swiper-slide { transform-origin: 100% 0; } .swiper-cube .swiper-slide-active, .swiper-cube .swiper-slide-active .swiper-slide-active { pointer-events: auto; } .swiper-cube .swiper-slide-active, .swiper-cube .swiper-slide-next, .swiper-cube .swiper-slide-prev { pointer-events: auto; visibility: visible; } .swiper-cube .swiper-cube-shadow { position: absolute; left: 0; bottom: 0px; width: 100%; height: 100%; opacity: 0.6; z-index: 0; } .swiper-cube .swiper-cube-shadow:before { content: ''; background: #000; position: absolute; left: 0; top: 0; bottom: 0; right: 0; filter: blur(50px); } .swiper-cube .swiper-slide-next + .swiper-slide { pointer-events: auto; visibility: visible; } /* Cube slide shadows start */ .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left, .swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right { z-index: 0; -webkit-backface-visibility: hidden; backface-visibility: hidden; } /* Cube slide shadows end */ .swiper.swiper-flip { overflow: visible; } .swiper-flip .swiper-slide { pointer-events: none; -webkit-backface-visibility: hidden; backface-visibility: hidden; z-index: 1; } .swiper-flip .swiper-slide .swiper-slide { pointer-events: none; } .swiper-flip .swiper-slide-active, .swiper-flip .swiper-slide-active .swiper-slide-active { pointer-events: auto; } /* Flip slide shadows start */ .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left, .swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right { z-index: 0; -webkit-backface-visibility: hidden; backface-visibility: hidden; } /* Flip slide shadows end */ .swiper-creative .swiper-slide { -webkit-backface-visibility: hidden; backface-visibility: hidden; overflow: hidden; transition-property: transform, opacity, height; } .swiper.swiper-cards { overflow: visible; } .swiper-cards .swiper-slide { transform-origin: center bottom; -webkit-backface-visibility: hidden; backface-visibility: hidden; overflow: hidden; } `; /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ const ln = { CHILD: 2 }, dn = (i) => (...e) => ({ _$litDirective$: i, values: e }); class pn { constructor(e) { } get _$AU() { return this._$AM._$AU; } _$AT(e, t, s) { this._$Ct = e, this._$AM = t, this._$Ci = s; } _$AS(e, t) { return this.update(e, t); } update(e, t) { return this.render(...t); } } /** * @license * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ class Yt extends pn { constructor(e) { if (super(e), this.it = j, e.type !== ln.CHILD) throw Error(this.constructor.directiveName + "() can only be used in child bindings"); } render(e) { if (e === j || e == null) return this._t = void 0, this.it = e; if (e === ve) return e; if (typeof e != "string") throw Error(this.constructor.directiveName + "() called with a non-string value"); if (e === this.it) return this._t; this.it = e; const t = [e]; return t.raw = t, this._t = { _$litType$: this.constructor.resultType, strings: t, values: [] }; } } Yt.directiveName = "unsafeHTML", Yt.resultType = 1; const st = dn(Yt); var cn = Object.defineProperty, un = Object.getOwnPropertyDescriptor, Fi = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? un(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && cn(e, t, r), r; }; let vt = class extends P { constructor() { super(...arguments), this.items = []; } firstUpdated() { new R(this.shadowRoot.querySelector(".swiper"), { modules: [on, en, tn], loop: !0, effect: "fade", crossFade: !0, pagination: { el: this.shadowRoot.querySelector(".swiper-pagination") }, navigation: { nextEl: this.shadowRoot.querySelector(".swiper-button-next"), prevEl: this.shadowRoot.querySelector(".swiper-button-prev") } }), requestAnimationFrame(() => { const i = Math.floor(this.clientWidth / 1.5); this.style.setProperty("--carousel-img-height", `${i}px`); }); } render() { return w` <div class="swiper"> <div class="swiper-wrapper"> ${this.items.map( (i) => w` <div class="swiper-slide"> <div class="img"> <img src="${i.path}" alt="${i.caption || "Image"}" /> ${i.caption ? w` <div class="caption"><p>${st(i.caption)}</p></div>` : ""} </div> </div> ` )} </div> <div class="swiper-pagination"></div> <div class="swiper-button-prev"></div> <div class="swiper-button-next"></div> </div> `; } }; vt.styles = [ O([an]), O` .img{ aspect-ratio: 3/2; height: auto; } .img img{ width: 100%; height: 100%; object-fit: cover; } .caption p{ font: var(--iu-f-0); background: #fff; margin-bottom: 0; margin-top: 1.75rem; height: 100%; } :host .swiper-button-prev, :host .swiper-button-next{ width: 50%; height: var(--carousel-img-height); top: 0; margin-top: 0; } :host .swiper-button-prev::after, :host .swiper-button-next::after{ content: none; } :host .swiper-pagination{ display: flex; gap: 0.625rem; position: absolute; top: calc(var(--carousel-img-height) + 0.625rem); } :host .swiper-pagination .swiper-pagination-bullet{ width:100%; border-radius: 0; height: 1px; margin: 0; background: var(--iu-color-grey-300); opacity: 1; } :host .swiper-pagination .swiper-pagination-bullet-active{ background: var(--iu-color-black); height: 3px; } :host .swiper-slide{ opacity: 0; } :host .swiper-slide-active, :host .swiper.slide-duplicate-active{ opacity: 1; } ` ]; Fi([ f({ type: Array }) ], vt.prototype, "items", 2); vt = Fi([ M("iu-carousel") ], vt); var hn = Object.defineProperty, fn = Object.getOwnPropertyDescriptor, Pt = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? fn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && hn(e, t, r), r; }; let Me = class extends P { constructor() { super(...arguments), this.checked = !1, this.label = "", this.name = ""; } // For form compatibility toggleChecked() { this.checked = !this.checked, this.dispatchEvent(new CustomEvent("change", { detail: { checked: this.checked }, bubbles: !0, composed: !0 })); } handleKeyDown(i) { (i.key === " " || i.key === "Enter") && (i.preventDefault(), this.toggleChecked()); } render() { return w` <div class="checkbox" role="checkbox" tabindex="0" aria-checked="${this.checked}" @click="${this.toggleChecked}" @keydown="${this.handleKeyDown}" ></div> ${this.label ? w`<span class="label" @click="${this.toggleChecked}">${st(this.label)}</span>` : ""} <input type="checkbox" name="${this.name}" .checked="${this.checked}" hidden /> `; } }; Me.styles = O` :host { display: inline-flex; align-items: start; cursor: pointer; user-select: none; margin-bottom: var(--iu-spacing-5); } .checkbox { width: 18px; height: 18px; border: 1px solid var(--iu-color-grey-300); border-radius: 0; display: flex; align-items: center; justify-content: center; flex-shrink: 0; position: relative; } .checkbox::after{ content: ''; background-image: url("data:image/svg+xml,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 9'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m4.022 7.313-2.67-2.67-.703.711 3.375 3.375 7.328-7.374-.704-.71-6.626 6.668Z' fill='%23fff'/%3E%3C/svg%3E"); position: absolute; background-size: contain; background-repeat: no-repeat; top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); width: 14px; height: 11px; } .checkbox[aria-checked="true"] { background: var(--iu-color-black); border-color: var(--iu-color-black); } .checkbox[aria-checked="true"]::after { } .label { margin-left: 14px; font: var(--iu-fs-1); color: var(--iu-color-black); a{ color: var(--iu-color-black) } } /* Focus styles */ :host(:focus-within) .checkbox { outline: 0; } `; Pt([ f({ type: Boolean, reflect: !0 }) ], Me.prototype, "checked", 2); Pt([ f({ type: String }) ], Me.prototype, "label", 2); Pt([ f({ type: String }) ], Me.prototype, "name", 2); Me = Pt([ M("iu-checkbox") ], Me); var gn = Object.defineProperty, mn = Object.getOwnPropertyDescriptor, Be = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? mn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && gn(e, t, r), r; }; let re = class extends P { constructor() { super(...arguments), this.name = "#", this.contacts = []; } /** * Checks if a link is external or internal. * @param link The URL to check. * @returns true if the link is external, false otherwise. */ isExternalLink(i) { const e = document.createElement("a"); return e.href = i, e.hostname !== window.location.hostname && !!e.hostname; } /** * Applies the appropriate class to the component based on the link type. */ checkLinkType() { if (this.href) { const i = this.isExternalLink(this.href); this.classList.toggle("external", i), this.classList.toggle("internal", !i); } } /** * If component has description, span for 2 columns */ checkCardSpan() { this.description != null && this.classList.add("span-2"); } firstUpdated() { super.firstUpdated(), this.checkCardSpan(), this.checkLinkType(); } render() { return w` <div> <header> ${this.href ? w`<a href="${this.href}" class="title"><span>${this.name}</span><svg width="27" height="20" viewBox="0 0 27 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.6667 1L25 10M25 10L16.6667 19M25 10H0" stroke="#FFCC00" stroke-width="2"/></svg></a>` : w`<span class="title">${this.name}</span>`} ${this.sub && w`<span class="sub">${this.sub}</span>`} </header> <footer> ${this.contacts && w` <ul> ${this.contacts.map( (i) => w` <li><a href="${i.href}">${st(i.label)}</a></li> ` )} </ul> ${this.description && w` <div class="description"><p>${this.description}</p></div> `} `} </footer> </div> `; } }; re.styles = O` :host{ display: flex; align-items: flex-end; aspect-ratio: 1/1; background: var(--iu-color-black); color: var(--iu-color-yellow-100); padding: var(--iu-grid-gutter); } :host(.external) a svg{ transform: rotate(-45deg); } :host(.span-2){ aspect-ratio: unset; } @media ${C(_.xl)} { :host(.span-2){ aspect-ratio: 2/0.975; } } div{ display: flex; flex-direction: column; width: 100%; height: 100%; } header{ flex-grow: 1; } header span{ display: block; } .title{ font: var(--iu-f-lg); } .sub{ margin-top: 1rem; } header a{ display: flex; align-items: center; text-decoration: none; color: var(--iu-color-yellow-100); } header a span{ flex-grow: 1; } header a svg{ width: 40px; } @media ${C(_.lg)} { :host(.span-2) footer{ display: grid; grid-template-columns: repeat(2,1fr); } } footer ul{ list-style-type: none; margin: 0; padding: 0; } footer ul li a{ color: var(--iu-color-yellow-100); } footer ul li a:hover{ text-decoration: none; } .description{ margin-top: var(--iu-spacing-6); } @media ${C(_.xl)} { .description{ margin-top: 0; } } .description p{ margin: 0; } `; Be([ f() ], re.prototype, "href", 2); Be([ f() ], re.prototype, "name", 2); Be([ f() ], re.prototype, "sub", 2); Be([ f({ type: Array }) ], re.prototype, "contacts", 2); Be([ f() ], re.prototype, "description", 2); re = Be([ M("iu-contact-card") ], re); var vn = Object.defineProperty, wn = Object.getOwnPropertyDescriptor, Ri = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? wn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && vn(e, t, r), r; }; let wt = class extends P { constructor() { super(...arguments), this.heading = "Contatti"; } render() { return w` <iu-heading text="${this.heading}" noDivider link="Vai alla rubrica" href="#"></iu-heading> <slot></slot> `; } }; wt.styles = O` :host{ display: block; background: var(--iu-color-yellow-100); padding-top: var(--iu-spacing-block-sm); padding-bottom: var(--iu-spacing-block-sm); } iu-heading{ --iu-heading-link-color: var(--iu-color-yellow-400); } `; Ri([ f() ], wt.prototype, "heading", 2); wt = Ri([ M("iu-contacts") ], wt); var bn = Object.defineProperty, yn = Object.getOwnPropertyDescriptor, Yi = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? yn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && bn(e, t, r), r; }; let bt = class extends P { constructor() { super(...arguments), this.heading = ""; } render() { return w` ${this.heading && w`<iu-paragraph><p>${this.heading}</p></iu-paragraph>`} <iu-container> <slot></slot> </iu-container> `; } }; bt.styles = O` :host{ display: block; margin-bottom: var(--iu-spacing-block-sm); } iu-paragraph{ margin-bottom: var(--iu-spacing-1); } iu-paragraph p{ font-weight: bold; } iu-container{ display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--iu-grid-gutter); } ::slotted(iu-contact-card){ grid-column: span 12 / span 12; } @media ${C(_.md)} { ::slotted(iu-contact-card){ grid-column: span 6 / span 6; } ::slotted(.span-2){ grid-column: span 12 / span 12; } } @media ${C(_.lg)} { ::slotted(iu-contact-card){ grid-column: span 4 / span 4; } ::slotted(.span-2){ grid-column: span 6 / span 6; } } @media ${C(_.xl)} { ::slotted(iu-contact-card){ grid-column: span 3 / span 3; } } iu-heading{ --iu-heading-link-color: var(--iu-color-yellow-400); } `; Yi([ f() ], bt.prototype, "heading", 2); bt = Yi([ M("iu-contacts-cards") ], bt); var xn = Object.defineProperty, An = Object.getOwnPropertyDescriptor, Q = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? An(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && xn(e, t, r), r; }; let Y = class extends P { constructor() { super(...arguments), this.weekday = "", this.day = "", this.time = "", this.deadline = "", this.place = "", this.href = "", this.name = ""; } render() { return w` <iu-container> <div class="event"> <div class="date"> <span class="weekday">${this.weekday}</span> <span class="day">${this.day}</span> </div> <div class="info"> <div> <span class="time">${this.time == "" ? "Tutto il giorno" : this.time}</span> ${this.deadline && w`<span class="deadline">Fino al ${this.deadline}</span>`} </div> <span class="place">${this.place}</span> </div> <div class="content"> <a href="${this.href}" class="title">${this.name}</a> ${this.subtitle && w`<span class="subtitle">${this.subtitle}</span>`} ${this.excerpt && w`<span class="excerpt">${this.excerpt}</span>`} </div> </div> </iu-container> `; } }; Y.styles = O` :host{ display: block; } .event{ padding-top: var(--iu-spacing-2); padding-bottom: var(--iu-spacing-2); border-top: 1px solid var(--iu-color-grey-200); border-bottom: 1px solid var(--iu-color-grey-200); } @media ${C(_.md)} { .event{ display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--iu-grid-gutter); } } .date{ grid-column: span 2 / span 2; font-weight: bold; font: var(--iu-f-md); } @media ${C(_.lg)} { .date span{ display: block; } } .day{ margin-left: var(--iu-spacing-0); } @media ${C(_.lg)} { .day{ margin-left: 0; } } .info{ grid-column: span 4 / span 4; display: flex; flex-direction: column; justify-content: space-between; font: var(--iu-f-md); } .info span{ display: block; } .deadline{ color: var(--iu-color-grey-300); } .place{ font: var(--iu-f-1); } .content{ grid-column: span 6 / span 6; } .title{ font-weight: bold; font: var(--iu-f-md); margin-bottom: 0; text-decoration: none; color: var(--iu-color-black); } .subtitle{ font-weight: bold; display: block; margin-top: var(--iu-spacing-0); } .excerpt{ display: block; margin-top: var(--iu-spacing-2); } `; Q([ f() ], Y.prototype, "weekday", 2); Q([ f() ], Y.prototype, "day", 2); Q([ f() ], Y.prototype, "time", 2); Q([ f() ], Y.prototype, "deadline", 2); Q([ f() ], Y.prototype, "place", 2); Q([ f() ], Y.prototype, "href", 2); Q([ f() ], Y.prototype, "name", 2); Q([ f() ], Y.prototype, "subtitle", 2); Q([ f() ], Y.prototype, "excerpt", 2); Y = Q([ M("iu-event") ], Y); var $n = Object.defineProperty, Sn = Object.getOwnPropertyDescriptor, He = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Sn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && $n(e, t, r), r; }; let ne = class extends P { constructor() { super(...arguments), this.heading = "", this.link = "", this.href = "", this.img = "", this.text = ""; } render() { return w` <iu-container> <iu-heading text="${this.heading}" noDivider nested href="${this.href}" size="2" link="${this.link}"></iu-heading> <div class="img"><img src="${this.img}" /></div> ${this.text && w`<div class="text">${st(this.text)}</div>`} </iu-container> `; } }; ne.styles = O` :host{ display: block; background: var(--iu-color-black); color: #fff; padding-top: 2.5rem /* 40px */; padding-bottom: 2.5rem /* 40px */; margin-bottom: 4.5rem; } :host iu-heading::part(title){ color: #fff; } :host iu-heading::part(link){ color: var(--iu-color-grey-400); } ::slotted(p){ font-size: 1.625rem !important; line-height: 2.1875rem !important; color: #fff !important; } .img{ aspect-ratio: 3/2; margin-bottom: 2rem; overflow: hidden; } @media ${C(_.md)} { .img{ aspect-ratio: 2/1; } } @media ${C(_.xl)} { .img{ aspect-ratio: 21/9; } } .img img{ width: 100%; } .text *{ font: var(--iu-f-md); } `; He([ f() ], ne.prototype, "heading", 2); He([ f() ], ne.prototype, "link", 2); He([ f() ], ne.prototype, "href", 2); He([ f() ], ne.prototype, "img", 2); He([ f() ], ne.prototype, "text", 2); ne = He([ M("iu-featured-content") ], ne); var En = Object.defineProperty, Tn = Object.getOwnPropertyDescriptor, rt = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Tn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && En(e, t, r), r; }; let be = class extends P { constructor() { super(...arguments), this.label = "Download", this.columns = 1, this.nested = !1, this.items = []; } render() { return w` <iu-container ?nested=${this.nested}> <div class="columns-${this.columns}"> ${this.label && w`<p>${this.label}</p>`} <ul> ${this.items.map( (i) => w` <li><iu-button href="${i.href}" icon="download" text="${i.text}"></iu-button></li> ` )} </ul> </div> </iu-container> `; } }; be.styles = O` :host{ display: block; margin-bottom: var(--iu-spacing-block-sm); } :host p{ font-weight: bold; } ul{ list-style-type: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.9375rem } `; rt([ f() ], be.prototype, "label", 2); rt([ f({ type: Number }) ], be.prototype, "columns", 2); rt([ f({ type: Boolean, reflect: !0 }) ], be.prototype, "nested", 2); rt([ f({ type: Array }) ], be.prototype, "items", 2); be = rt([ M("iu-files-list") ], be); var Pn = Object.defineProperty, Cn = Object.getOwnPropertyDescriptor, ri = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Cn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Pn(e, t, r), r; }; let We = class extends P { constructor() { super(...arguments), this.text = "", this.href = ""; } render() { return w` <li><a href="${this.href}">${this.text}</a></li> `; } }; We.styles = O` :host{ display:block; } li{ width: 100%; } `; ri([ f() ], We.prototype, "text", 2); ri([ f() ], We.prototype, "href", 2); We = ri([ M("iu-files-list-item") ], We); var _n = Object.getOwnPropertyDescriptor, On = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? _n(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = o(r) || r); return r; }; let Ut = class extends P { constructor() { super(...arguments), this.currentScrollPos = 0, this.prevScrollPos = 0, this.handleScroll = () => { this.currentScrollPos = window.scrollY, this.prevScrollPos > 0 && this.prevScrollPos < this.currentScrollPos ? this.classList.add("is-visible") : this.prevScrollPos >= this.currentScrollPos && this.classList.remove("is-visible"), this.prevScrollPos = this.currentScrollPos; }; } connectedCallback() { super.connectedCallback(), window.addEventListener("scroll", this.handleScroll); } disconnectedCallback() { super.disconnectedCallback(), window.removeEventListener("scroll", this.handleScroll); } render() { return w` <a href=""> <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 175"><path d="M18.734 20.694V18.19h5.033V2.505h-5.033V0h13.477v2.505h-5.033V18.19h5.033v2.504H18.734ZM10.752 34.531H.976v3.08h9.774v-3.08ZM30.337 34.531h-9.774v3.08h9.774v-3.08ZM49.973 34.531h-9.817v3.08h9.817v-3.08ZM25.479 72.43c-4.825 0-6.448-1.767-6.448-6.324V51.447h3.411v15.11c0 2.464 1.123 3.203 3.037 3.203 1.747 0 3.036-.657 3.036-3.203v-15.11h3.41v14.659c0 4.393-1.996 6.323-6.405 6.323h-.041ZM10.752 85.98H.976v3.081h9.774v-3.08ZM30.337 85.98h-9.774v3.081h9.774v-3.08ZM49.973 85.98h-9.817v3.081h9.817v-3.08ZM30.046 123.55l-1.04-4.311h-7.071l-1.04 4.311h-3.66l5.99-20.654h4.491l5.99 20.654h-3.66Zm-4.576-18.765-2.87 11.702h5.74l-2.87-11.702ZM10.752 137.388H.976v3.08h9.774v-3.08ZM30.337 137.388h-9.774v3.08h9.774v-3.08ZM49.973 137.388h-9.817v3.08h9.817v-3.08ZM27.57 175H23.37l-6.572-20.694h3.868l4.825 18.518 4.825-18.518h3.827L27.57 175Z" fill="#fff"></path></svg> </a> `; } }; Ut.styles = O` :host{ transition: all .2s ease; transform: translateY(0) translateX(-2px); position: fixed; bottom: 2.5rem; left: 2.5rem; z-index: 20; display: none; mix-blend-mode: difference; } @media ${C(_.md)} { :host{ display: block; } } :host(.is-visible){ transform: translateY(0) translateX(-50%); left: 0; } a svg{ width: 40px; display: block; } `; Ut = On([ M("iu-floating-logo") ], Ut); var Mn = Object.defineProperty, zn = Object.getOwnPropertyDescriptor, Ct = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? zn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Mn(e, t, r), r; }; let ze = class extends P { constructor() { super(), this.fields = [], this.formData = {}, this.fields.forEach((i) => { this.formData[i.name] = ""; }); } handleInput(i) { const e = i.target; this.formData = { ...this.formData, [e.name]: e.value }; } handleSubmit(i) { i.preventDefault(), console.log("Form Data:", this.formData), this.dispatchEvent(new CustomEvent("form-submit", { detail: this.formData, bubbles: !0, composed: !0 })); } // make sure that every component inside this has <iu-container> set // to nested to disable padding left on the container itself updateSlottedElements() { this.slottedElements && this.slottedElements.forEach((i) => { i instanceof HTMLElement && i.setAttribute("nested", "true"); }); } firstUpdated() { super.firstUpdated(), this.updateSlottedElements(); } render() { const i = this.slottedElements && this.slottedElements.length > 0; return w` <iu-container columns-md="2"> <form @submit="${this.handleSubmit}"> <slot></slot> ${!i && this.fields.length > 0 ? this.fields.map( (e) => w` <div> <label for="${e.name}">${e.label}</label> <input type="${e.type}" name="${e.name}" placeholder="${e.placeholder || ""}" @input="${this.handleInput}" .value="${this.formData[e.name] || ""}" required /> </div> ` ) : ""} <button type="submit">Invia</button> </form> </iu-container> `; } }; ze.styles = O` input { padding: 8px; font-size: 1rem; width: 100%; box-sizing: border-box; } div{ margin-bottom: 20px; } label{ font-weight: bold; margin-bottom: 4px; display: block; } button { position: relative; display: inline-flex; align-items: center; background: var(--iu-color-grey-100); padding: 0.375rem 0.75rem; color: var(--iu-color-black); text-decoration: none; border: 0; font: var(--iu-f-sm); cursor: pointer; margin-top: 20px; &:hover{ background: var(--iu-color-black); color: var(--iu-color-white); } margin-top: var(--iu-spacing-4); } ::slotted(iu-heading){ --iu-heading-margin-top: var(--iu-spacing-7); } `; Ct([ f({ type: Array }) ], ze.prototype, "fields", 2); Ct([ xs() ], ze.prototype, "formData", 2); Ct([ tt() ], ze.prototype, "slottedElements", 2); ze = Ct([ M("iu-form") ], ze); var Ln = Object.defineProperty, kn = Object.getOwnPropertyDescriptor, Ui = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? kn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Ln(e, t, r), r; }; let yt = class extends P { render() { return w` <iu-container class="logo"> <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 175"><path d="M18.734 20.694V18.19h5.033V2.505h-5.033V0h13.477v2.505h-5.033V18.19h5.033v2.504H18.734ZM10.752 34.531H.976v3.08h9.774v-3.08ZM30.337 34.531h-9.774v3.08h9.774v-3.08ZM49.973 34.531h-9.817v3.08h9.817v-3.08ZM25.479 72.43c-4.825 0-6.448-1.767-6.448-6.324V51.447h3.411v15.11c0 2.464 1.123 3.203 3.037 3.203 1.747 0 3.036-.657 3.036-3.203v-15.11h3.41v14.659c0 4.393-1.996 6.323-6.405 6.323h-.041ZM10.752 85.98H.976v3.081h9.774v-3.08ZM30.337 85.98h-9.774v3.081h9.774v-3.08ZM49.973 85.98h-9.817v3.081h9.817v-3.08ZM30.046 123.55l-1.04-4.311h-7.071l-1.04 4.311h-3.66l5.99-20.654h4.491l5.99 20.654h-3.66Zm-4.576-18.765-2.87 11.702h5.74l-2.87-11.702ZM10.752 137.388H.976v3.08h9.774v-3.08ZM30.337 137.388h-9.774v3.08h9.774v-3.08ZM49.973 137.388h-9.817v3.08h9.817v-3.08ZM27.57 175H23.37l-6.572-20.694h3.868l4.825 18.518 4.825-18.518h3.827L27.57 175Z" fill="#fff"/></svg> <p><span>Università</span> Iuav di Venezia</p> </iu-container> <iu-container class="nav" columns-sm-="1" columns-md="2" columns-xl="4"> <slot name="column"></slot> </iu-container> ${this.colophon && w` <iu-container class="colophon"> <slot name="colophon"></slot> </iu-container> `} `; } }; yt.styles = O` :host{ display: block; position: relative; background: var(--iu-color-black); color: #fff; padding-bottom: var(--iu-spacing-6); font: var(--iu-f-0); } @media ${C(_.md)} { :host{ font: var(--iu-f-1); } } .logo{ display: flex; margin-bottom: var(--iu-spacing-7); padding-top: var(--iu-spacing-5); } .logo p{ font: var(--iu-f-2); margin: 0; transform: translateY(-0.5rem); } .logo p span{ display: block; } .logo svg{ width: 1.875rem; margin-right: var(--iu-spacing-2); } @media ${C(_.md)} { .logo{ padding-top: var(--iu-spacing-3); } .logo svg{ display: none; } .logo p{ font: var(--iu-f-1); font-weight: bold; transform: translateY(0); } .logo p span{ display: inline; } } .nav{ margin-bottom: 0; } .colophon{ border-top: 1px solid #fff; margin-top: var(--iu-spacing-7); margin-bottom: 0; padding-top: var(--iu-spacing-3); } `; Ui([ f({ type: Boolean }) ], yt.prototype, "colophon", 2); yt = Ui([ M("iu-footer") ], yt); var In = Object.defineProperty, Dn = Object.getOwnPropertyDescriptor, qi = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Dn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && In(e, t, r), r; }; let xt = class extends P { render() { return w` ${this.heading && w`<p><strong>${this.heading}</strong></p>`} <slot></slot> `; } }; xt.styles = O` :host{ display: block; color: #fff; } p{ font: var(--iu-f-0); margin: 0; } @media ${C(_.md)} { p{ font: var(--iu-f-1); } } ::slotted(ul){ margin: 0; list-style-type: none; padding: 0; } `; qi([ f() ], xt.prototype, "heading", 2); xt = qi([ M("iu-footer-column") ], xt); var Bn = Object.defineProperty, Hn = Object.getOwnPropertyDescriptor, je = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Hn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Bn(e, t, r), r; }; let oe = class extends P { constructor() { super(...arguments), this.columns = 1, this.inline = !1; } isNested() { let i = this.parentNode; for (; i; ) { if (i instanceof HTMLElement && i.tagName === "IU-CONTAINER") return !0; i instanceof ShadowRoot ? i = i.host : i = i.parentNode; } return !1; } hasColumns() { this.classList.add("columns"), this.style.setProperty("--iu-container-columns", this.columns.toString()), this.columnsMd && (this.classList.add("columns"), this.style.setProperty("--iu-container-columns-md", this.columnsMd.toString())), this.columnsLg && (this.classList.add("columns"), this.style.setProperty("--iu-container-columns-lg", this.columnsLg.toString())), this.columnsXl && (this.classList.add("columns"), this.style.setProperty("--iu-container-columns-xl", this.columnsXl.toString())); } // override firstUpdated(){ // super.firstUpdated(); // this.isNested(); // this.hasColumns(); // } connectedCallback() { super.connectedCallback(), this.hasColumns(); } render() { return w` <slot></slot> `; } }; oe.styles = O` :host{ display: block; padding-left: var(--iu-grid-gutter); padding-right: var(--iu-grid-gutter); margin-left: var(--iu-grid-offset); } :host(.columns){ margin-bottom: var(--iu-spacing-block); } @media ${C(_.md)} { :host{ padding-left: 0; padding-right: 0; width: calc(100% - var(--iu-grid-offset) - var(--iu-grid-gutter)); } } @media ${C(_.xxl)} { :host{ max-width: var(--iu-screens-2xl); margin-left: max(var(--iu-grid-offset), calc((100vw - var(--iu-screens-2xl))/2)); } } :host([nested]){ margin-left: 0; width: 100%; } :host(.columns){ display: grid; grid-template-columns: repeat(12, 1fr); grid-column-gap: var(--iu-grid-gutter); row-gap: var(--iu-spacing-7); } :host(.columns) ::slotted(*){ // grid-column: span calc(12 / var(--iu-container-columns, 1)); grid-column: span 12; } @media ${C(_.md)} { :host(.columns) ::slotted(*){ grid-column: span calc(12 / var(--iu-container-columns-md, var(--iu-container-columns, 1))); } } @media ${C(_.lg)} { :host(.columns) ::slotted(*){ grid-column: span calc(12 / var(--iu-container-columns-lg, var(--iu-container-columns-md, var(--iu-container-columns, 1)))); } } @media ${C(_.xl)} { :host(.columns) ::slotted(*){ grid-column: span calc(12 / var(--iu-container-columns-xl, var(--iu-container-columns-lg, var(--iu-container-columns-md, var(--iu-container-columns, 1))))); } } :host([inline]){ display: block; } `; je([ f({ type: Number }) ], oe.prototype, "columns", 2); je([ f({ type: Number, attribute: "columns-md" }) ], oe.prototype, "columnsMd", 2); je([ f({ type: Number, attribute: "columns-lg" }) ], oe.prototype, "columnsLg", 2); je([ f({ type: Number, attribute: "columns-xl" }) ], oe.prototype, "columnsXl", 2); je([ f({ type: Boolean, reflect: !0 }) ], oe.prototype, "inline", 2); oe = je([ M("iu-container") ], oe); var jn = Object.defineProperty, Nn = Object.getOwnPropertyDescriptor, ue = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Nn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && jn(e, t, r), r; }; let W = class extends P { constructor() { super(...arguments), this.sm = 12; } // make sure that every component inside this component has <iu-container> set // to nested to disable padding left on the container itself updateSlottedElements() { this.slotElement.assignedElements({ flatten: !0 }).forEach((e) => { e instanceof HTMLElement && (console.log("test"), e.setAttribute("nested", "true")); }); } firstUpdated() { super.firstUpdated(), this.updateSlottedElements(); } updated(i) { ["sm", "md", "lg", "xl"].forEach((t) => { if (i.has(t)) { const s = this[t]; this.style.setProperty(`--column-span-${t}`, s?.toString() || ""); } }), this.sticky && this.top && this.style.setProperty("--column-sticky-top", `${Math.round(this.top / 16)}rem`), this.sticky && this.top; } render() { return w` <slot></slot> `; } }; W.styles = O` :host{ display: block; grid-column: span var(--column-span-sm, 1); } @media ${C(_.md)} { :host{ grid-column: span var(--column-span-md, var(--column-span-sm, 1)); } } @media ${C(_.lg)} { :host{ grid-column: span var(--column-span-lg, var(--column-span-md, var(--column-span-sm, 1))); } } @media ${C(_.xl)} { :host{ grid-column: span var(--column-span-xl, var(--column-span-lg, var(--column-span-md, var(--column-span-sm, 1)))); } :host([sticky]){ position: sticky; top: var(--column-sticky-top, 0); align-self: start; } } `; ue([ f({ type: Number }) ], W.prototype, "sm", 2); ue([ f({ type: Number }) ], W.prototype, "md", 2); ue([ f({ type: Number }) ], W.prototype, "lg", 2); ue([ f({ type: Number }) ], W.prototype, "xl", 2); ue([ f({ type: Boolean }) ], W.prototype, "sticky", 2); ue([ f({ type: Number }) ], W.prototype, "top", 2); ue([ et("slot") ], W.prototype, "slotElement", 2); W = ue([ M("iu-column") ], W); var Gn = Object.getOwnPropertyDescriptor, Vn = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Gn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = o(r) || r); return r; }; let qt = class extends P { render() { return w` <slot></slot> `; } }; qt.styles = O` :host{ display: block; margin-bottom: var(--iu-spacing-block); } `; qt = Vn([ M("iu-group") ], qt); var Fn = Object.defineProperty, Rn = Object.getOwnPropertyDescriptor, $e = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Rn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Fn(e, t, r), r; }; let K = class extends P { constructor() { super(...arguments), this.label = "", this.type = "text", this.name = "", this.placeholder = "", this.value = ""; } handleInput(i) { const e = i.target; this.value = e.value, this.dispatchEvent(new CustomEvent("input-change", { detail: { name: this.name, value: this.value }, bubbles: !0, composed: !0 })); } render() { return w` <div class="input-group"> <label for="${this.name}">${this.label}</label> <div class="input"> <input type="${this.type}" name="${this.name}" placeholder="${this.placeholder}" .value="${this.value}" @input="${this.handleInput}" /> </div> ${this.helper && w`<span class="helper">${this.helper}</span>`} </div> `; } }; K.styles = O` :host { display: block; } .input-group{ margin-bottom: var(--iu-spacing-4); } label { font-weight: bold; display: block; margin-bottom: var(--iu-spacing-0); } .input{ border-top: 1px solid var(--iu-color-grey-200); border-bottom: 1px solid var(--iu-color-grey-200); } .input:has(+ .helper){ margin-bottom: var(--iu-spacing-0); } .helper{ font: var(--iu-f-0); color: var(--iu-color-grey-500); } input { width: 100%; height: 2.25rem; padding: 8px 0; font-size: 1rem; border: 0; color: var(--iu-color-grey-300); box-sizing: border-box; } input::placeholder{ color: var(--iu-color-grey-300); } .input:has(input:focus) { border-top: 1px solid var(--iu-color-black); border-bottom: 1px solid var(--iu-color-black); } input:focus{ outline: 0; } `; $e([ f({ type: String }) ], K.prototype, "label", 2); $e([ f({ type: String }) ], K.prototype, "type", 2); $e([ f({ type: String }) ], K.prototype, "name", 2); $e([ f({ type: String }) ], K.prototype, "placeholder", 2); $e([ f({ type: String }) ], K.prototype, "value", 2); $e([ f({ type: String }) ], K.prototype, "helper", 2); K = $e([ M("iu-input") ], K); var Yn = Object.defineProperty, Un = Object.getOwnPropertyDescriptor, ni = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Un(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Yn(e, t, r), r; }; let Xe = class extends P { constructor() { super(...arguments), this.label = "Menu principale", this.open = !1, this.handleMenuToggle = () => { this.open = !this.open, this.requestUpdate(); }; } connectedCallback() { super.connectedCallback(), window.addEventListener("toggle-mobile-menu", this.handleMenuToggle); } disconnectedCallback() { window.removeEventListener("toggle-mobile-menu", this.handleMenuToggle), super.disconnectedCallback(); } render() { return w` <nav aria-label="${this.label}" role="navigation"> <ul> <slot></slot> </ul> </nav> `; } }; Xe.styles = O` :host { position: fixed; display: none; left: 0; height: calc(100dvh - 50px); width: 100%; max-width: 48rem; background: var(--iu-color-white); top: 50px; z-index: 50; overflow: auto; } @media ${C(_.md)} { :host{ width: calc((100% - var(--iu-grid-offset)) - var(--iu-grid-gutter)); } } :host([open]){ display: block; } /* fallback if event listener doesn't work */ @media ${C(_.xl)} { :host([open]){ display: none; } } ul{ list-style-type: none; padding: 0; margin: 0; } `; ni([ f({ type: String }) ], Xe.prototype, "label", 2); ni([ f({ type: Boolean, reflect: !0 }) ], Xe.prototype, "open", 2); Xe = ni([ M("iu-mobile-menu") ], Xe); var qn = Object.defineProperty, Zn = Object.getOwnPropertyDescriptor, nt = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Zn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && qn(e, t, r), r; }; let ye = class extends P { constructor() { super(...arguments), this.href = "", this.text = "", this.items = [], this.isToggled = !1, this.hasSlotted = !1; } handleSlotChange() { this.hasSlotted = !!(this.slottedElements && this.slottedElements.length > 0), this.requestUpdate(); } isNestedMenuItem() { return this.parentElement?.tagName.toLowerCase() === "iu-mobile-menu-item"; } isLastSlottedItem() { if (!this.assignedSlot) return !1; const i = this.assignedSlot.assignedNodes().filter( (e) => e.nodeType === Node.ELEMENT_NODE ); return i[i.length - 1] === this; } toggleSubmenu(i) { i.stopPropagation(), this.isToggled = !this.isToggled, this.requestUpdate(); } render() { return w` <li class="${this.isToggled ? "is-toggled" : ""} ${this.isNestedMenuItem() ? "is-nested" : ""} ${this.isLastSlottedItem() ? "is-last" : ""}" aria-expanded="${this.isToggled}" > ${this.items.length > 0 || this.hasSlotted ? w` <div> <a href="${this.href}">${this.text}</a> <button @click="${this.toggleSubmenu}"> <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><path fill-rule="evenodd" clip-rule="evenodd" d="m25 28.637 8.32-7.704 1.36 1.467L25 31.363 15.32 22.4l1.36-1.467L25 28.637Z" fill="#000"/></svg> </button> </div> ` : w` <div> <a href="${this.href}">${this.text}</a> </div> `} <!-- Render <ul> only if there are sub-items or slot content --> ${this.items.length > 0 || this.hasSlotted ? w` <ul> ${this.items.map( (i) => w` <li> <div> <a href="${i.href}">${i.text}</a> </div> </li> ` )} <slot @slotchange="${this.handleSlotChange}"></slot> </ul> ` : w`<slot @slotchange="${this.handleSlotChange}"></slot>`} </li> `; } }; ye.styles = O` :host{ display: block; } li{ display: block; width: 100%; } div{ display: flex; border-bottom: 1px solid var(--iu-color-black); } a{ font-weight: bold; width: calc(100% - 50px); display: flex; align-items: center; padding: 0 var(--iu-grid-gutter); border-right: 1px solid var(--iu-color-grey-200); height: 3.125rem; text-decoration: none; color: var(--iu-color-black); box-sizing: border-box; } button{ width: 50px; height: 50px; padding: 0; flex-shrink: 0; background: transparent; border: 0; cursor: pointer; & svg{ width: 50px; height: 50px; } } ul{ list-style-type: none; padding: 0; margin: 0; display: none; & li { & a{ padding-left: var(--iu-spacing-6); font-weight: normal; } } } .is-toggled{ & button{ transform: rotate(180deg); } & ul{ display: block; } } .is-nested{ & div{ border-color: var(--iu-color-grey-200); } & a{ padding-left: var(--iu-spacing-6); } } .is-last{ div{ } } `; nt([ f() ], ye.prototype, "href", 2); nt([ f() ], ye.prototype, "text", 2); nt([ f({ type: Array }) ], ye.prototype, "items", 2); nt([ tt() ], ye.prototype, "slottedElements", 2); ye = nt([ M("iu-mobile-menu-item") ], ye); var Wn = Object.defineProperty, Xn = Object.getOwnPropertyDescriptor, Zi = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Xn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Wn(e, t, r), r; }; let At = class extends P { constructor() { super(...arguments), this.visible = !1; } render() { return w`<div></div>`; } }; At.styles = O` :host { transition: opacity .25s ease; pointer-events: none; visibility: hidden; opacity: 0; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 40; } :host([visible]) { transition: opacity .25s ease; visibility: visible; opacity: 1; } `; Zi([ f({ type: Boolean, reflect: !0 }) ], At.prototype, "visible", 2); At = Zi([ M("iu-overlay") ], At); var Qn = Object.defineProperty, Kn = Object.getOwnPropertyDescriptor, Se = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Kn(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Qn(e, t, r), r; }; let J = class extends P { constructor() { super(...arguments), this.selected = "", this.name = "", this.options = []; } handleChange(i) { const e = i.target; this.selected = e.value; const t = this.shadowRoot?.querySelector(".select"); t && t.classList.toggle("has-value", this.selected !== ""), this.dispatchEvent(new CustomEvent("select-change", { detail: { value: this.selected }, bubbles: !0, composed: !0 })); } render() { return w` <div class="select-group"> <label for="${this.name}">${this.label}</label> <div class="select"> <select @change="${this.handleChange}"> ${this.placeholder ? w`<option selected disabled>${this.placeholder}</option>` : ""} ${this.options.map( (i) => w`<option value="${i.value}">${i.label}</option>` )} </select> <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 37"><path fill-rule="evenodd" clip-rule="evenodd" d="m18.502 21.319 5.66-5.241.68.733-6.34 5.87-6.34-5.87.68-.733 5.66 5.24Z" fill="#000"/></svg> </div> </div> `; } }; J.styles = O` :host { display: block; } .select-group{ margin-bottom: var(--iu-spacing-4); } label { font-weight: bold; display: block; margin-bottom: var(--iu-spacing-0); } .select{ width: 100%; border-top: 1px solid var(--iu-color-grey-200); border-bottom: 1px solid var(--iu-color-grey-200); position: relative; } .select.has-value select { color: var(--iu-color-black); } select { width: 100%; height: 2.25rem; appearance: none; border: 0; background: transparent; padding: 8px 0; color: var(--iu-color-grey-300); font-size: 1rem; cursor: pointer; } .select:has(select:focus){ border-top: 1px solid var(--iu-color-black); border-bottom: 1px solid var(--iu-color-black); } select:focus { outline: 0; color: var(--iu-color-black); } svg{ width: 36px; height: 36px; position: absolute; right: 0; top: 0; pointer-events: none; } `; Se([ f({ type: String }) ], J.prototype, "selected", 2); Se([ f({ type: String }) ], J.prototype, "name", 2); Se([ f({ type: String }) ], J.prototype, "label", 2); Se([ f({ type: String }) ], J.prototype, "placeholder", 2); Se([ f({ type: Array }) ], J.prototype, "options", 2); Se([ tt() ], J.prototype, "slottedOptions", 2); J = Se([ M("iu-select") ], J); var Jn = Object.defineProperty, eo = Object.getOwnPropertyDescriptor, Ne = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? eo(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Jn(e, t, r), r; }; let ae = class extends P { constructor() { super(...arguments), this.href = "", this.text = "", this.isActive = !1, this.submenu = !1; } toggleSubmenu() { this.dispatchEvent( new CustomEvent("iu-header-toggle-submenu", { bubbles: !0, composed: !0, detail: { source: this, closing: this.isActive } }) ), this.isActive = !this.isActive, this.toggleOverlay(this.isActive), this.isActive ? document.body.classList.add("is-locked") : document.body.classList.remove("is-locked"), this.submenuElements.forEach((i) => { this.isActive && i.classList.add("is-active"); }); } toggleOverlay(i) { const e = document.querySelector("iu-overlay"); e && (e.visible = i); } render() { const i = this.isActive ? "is-active" : "", e = this.submenu ? this.toggleSubmenu : null; return w` <li @click="${e}" class="${i}"> ${this.submenu ? w`<span>${this.text}</span>` : w`<a href="${this.href}">${this.text}</a>`} <slot></slot> </li> `; } }; ae.styles = O` :host a, :host span{ color: var(--theme-color-black); text-decoration: none; cursor: pointer; } .is-active{ text-decoration: underline; } `; Ne([ f() ], ae.prototype, "href", 2); Ne([ f() ], ae.prototype, "text", 2); Ne([ f({ type: Boolean }) ], ae.prototype, "isActive", 2); Ne([ f({ type: Boolean, reflect: !0 }) ], ae.prototype, "submenu", 2); Ne([ zi({ slot: "" }) ], ae.prototype, "submenuElements", 2); ae = Ne([ M("iu-header-navbar-item") ], ae); var to = Object.getOwnPropertyDescriptor, io = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? to(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = o(r) || r); return r; }; let Zt = class extends P { get container() { return this.shadowRoot?.querySelector("div"); } render() { return w` <div> <ul> <slot> </ul> </div> `; } }; Zt.styles = O` :host{ display: block; } div{ box-sizing: border-box; pointer-events: none; visibility: hidden; opacity: 0; position: absolute; transform: translateZ(0) translateY(calc(100% - 2px)); bottom: 0; left: 0; // width: 100%; background: #fff; } :host > div > ul { list-style-type: none; margin: 0; padding-top: var(--iu-spacing-6); padding-bottom: var(--iu-spacing-7); padding-left: var(--iu-grid-offset); padding-right: var(--iu-grid-gutter); orphans: 1; columns: 3; column-gap: var(--iu-grid-gutter); } :host(.is-active) div{ pointer-events: auto; visibility: visible; opacity: 1; } :host(.is-closing) div{ } ::slotted(*){ opacity: 1; } :host(.is-active.is-closing) ::slotted(*) { transition: opacity .1s ease; opacity: 0; } `; Zt = io([ M("iu-header-navbar-submenu") ], Zt); var so = Object.defineProperty, ro = Object.getOwnPropertyDescriptor, _t = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? ro(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && so(e, t, r), r; }; let Le = class extends P { constructor() { super(...arguments), this.href = "", this.text = "", this.items = []; } render() { return w` <li> <a class="section ${this.items.length == 0 ? "no-submenu" : ""}" href="${this.href}">${this.text}</a> ${this.items.length > 0 ? w` <ul> ${this.items.map( (i) => w` <li> <a href="${i.href}"><span>${i.text}</span></a> </li> ` )} </ul> ` : ""} </li> `; } }; Le.styles = O` :host{ display: block; line-height: 1; } :host > li{ break-inside: avoid; user-select: none; display: block; } li{ margin: 0; padding: 0; } .section{ padding-left: 0.125rem; font-weight: 700; border-bottom: 1px solid var(--iu-color-grey-200); } .section.no-submenu{ } a{ display: inline-block; width: 100%; box-sizing: border-box; text-decoration: none; color: var(--iu-color-black); padding-top: .5rem; padding-bottom: .5rem; font: var(--iu-f-0); } a:hover{ background: var(--iu-color-black); color: var(--iu-color-white); border-color: var(--iu-color-black); } :host > li{ margin-top: -1px; } :host > li > a { border-top: 1px solid var(--iu-color-black); } ul{ margin: 0; padding: 0; list-style-type: none; width: 100%; } ul li { display: inline-block; width: 100%; } ul li:not(:last-child){ } ul li a{ display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--iu-color-grey-200); } ul li a span{ grid-column: 2/5; } `; _t([ f() ], Le.prototype, "href", 2); _t([ f() ], Le.prototype, "text", 2); _t([ f({ type: Array }) ], Le.prototype, "items", 2); Le = _t([ M("iu-header-navbar-submenu-section") ], Le); var no = Object.defineProperty, oo = Object.getOwnPropertyDescriptor, Ot = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? oo(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && no(e, t, r), r; }; let ke = class extends P { constructor() { super(...arguments), this.mobileMenuOpen = !1, this.i18n = !1, this.handleResize = () => { if (window.innerWidth > 1280 && this.mobileMenuOpen) { this.mobileMenuOpen = !1, this.dispatchEvent(new CustomEvent("toggle-mobile-menu", { detail: !1, bubbles: !0, composed: !0 })), document.body.style.top = "", document.body.style.position = ""; const i = document.querySelector("iu-overlay"); i && (i.visible = !1), this.requestUpdate(); } }; } isAnySubmenuOpen() { return !this.navbarItems.some((i) => i.isActive); } updateActionsVisibility() { const i = this.shadowRoot?.querySelector(".actions button"); i && (this.isAnySubmenuOpen() ? i.style.display = "block" : i.style.display = "none"); } handleSubmenuToggle(i) { const { source: e } = i.detail; this.navbarItems.forEach((t) => { t !== e && (t.isActive = !1, t.submenuElements.forEach( (s) => s.classList.remove("is-active") )), i.detail.closing && t === e && t.submenuElements.forEach((s) => { s.classList.add("is-closing"); const r = s.container, n = r.scrollHeight; r.animate( [ { height: `${n}px` }, { height: 0 } ], { duration: 250, delay: 250, easing: "ease-out" } ).onfinish = () => { s.classList.remove("is-closing"), s.classList.remove("is-active"); }; }); }), this.updateActionsVisibility(); } closeAllSubmenu() { const i = this.shadowRoot?.querySelector(".actions button"); i && (i.style.display = "none"), document.body.classList.remove("is-locked"), this.navbarItems.forEach((e) => { e.isActive = !1, e.submenuElements.forEach( (t) => { if (t.classList.contains("is-active")) { const s = document.querySelector("iu-overlay"); s.visible = !1, t.classList.add("is-closing"); const r = t.container, n = r.scrollHeight; r.animate( [ { height: `${n}px` }, { height: 0 } ], { duration: 250, delay: 250, easing: "ease-out" } ).onfinish = () => { t.classList.remove("is-closing"), t.classList.remove("is-active"); }; } else t.classList.remove("is-active"); } ); }); } // Mobile menu toggleMobileMenu() { const i = document.querySelector("iu-overlay"); i.visible = !i.visible, this.mobileMenuOpen = !this.mobileMenuOpen, this.mobileMenuOpen ? (document.body.dataset.scrollY = window.scrollY.toString(), document.body.style.top = `-${window.scrollY}px`, document.body.style.position = "fixed") : (document.body.style.top = "", document.body.style.position = "", window.scrollTo(0, Number(document.body.dataset.scrollY || "0"))), this.dispatchEvent(new CustomEvent("toggle-mobile-menu", { bubbles: !0, composed: !0 })); } connectedCallback() { super.connectedCallback(), this.addEventListener("iu-header-toggle-submenu", this.handleSubmenuToggle), this.updateActionsVisibility(), this.addEventListener("close-mobile-menu", () => { this.mobileMenuOpen = !1, this.requestUpdate(); }), window.addEventListener("resize", this.handleResize); } disconnectedCallback() { this.removeEventListener("iu-header-toggle-submenu", this.handleSubmenuToggle), window.removeEventListener("resize", this.handleResize), super.disconnectedCallback(); } render() { return w` <iu-container> <div class="logo"> <a href="#" class="logo">Università Iuav di Venezia</a> </div> <div class="nav"> <nav role="navigation"> <ul> <slot></slot> </ul> </nav> <div class="actions"> <button @click="${this.closeAllSubmenu}" role="button"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M18.838 1.161 1.16 18.84M18.838 18.839 1.16 1.16" stroke="#000" stroke-width="2"/></svg></button> </div> </div> <!-- Toggle mobile menu --> <div class="mobile-actions"> ${this.i18n ? w` <a href="">EN</a> ` : ""} <button class="hamburger" @click="${this.toggleMobileMenu}"> ${this.mobileMenuOpen ? w` <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><path fill-rule="evenodd" clip-rule="evenodd" d="M23.132 24.546 15 16.414 16.414 15l8.132 8.132L32.678 15l1.414 1.414-8.132 8.132 8.132 8.132-1.414 1.414-8.132-8.132-8.132 8.132L15 32.678l8.132-8.132Z" fill="currentColor"/></svg> ` : w` <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><path fill-rule="evenodd" clip-rule="evenodd" d="M13 24h25v2H13v-2Zm0-7h25v2H13v-2Zm0 14h25v2H13v-2Z" fill="currentColor"/></svg> `} </button> </div> </iu-container> `; } }; ke.styles = O` @media ${C(_.xxl)} { :host{ display: block; } } :host a{ color: var(--theme-color-black); text-decoration: none; } :host iu-container{ display: flex; justify-content: space-between; align-items: center; height: 3.125rem; background: var(--theme-color-white); grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 0; } @media ${C(_.xl)} { :host iu-container{ display: grid; height: 3.75rem; } } .logo{ font-weight: 700; grid-column: span 1; } .nav{ grid-column: 2 / 5; display: none; justify-content: space-between; align-items: center; } @media ${C(_.xl)} { .nav{ display: flex; } } .nav ul{ margin: 0; padding: 0; list-style-type: none; display: flex; } :host nav ul ::slotted(*:not(:last-child)){ margin-right: var(--iu-spacing-4); } .actions button{ width: 50px; height: 50px; background: transparent; border: 0; padding: 0; cursor: pointer; display: none; margin-right: calc((50px - 16px) / 2 * -1) } .actions button svg{ height: 16px; width: 16px; } .mobile-actions{ display: flex; align-items: center; transform: translateX(var(--iu-grid-gutter)); & a{ margin-right: var(--iu-spacing-0); } } @media ${C(_.xl)} { .mobile-actions{ display: none; } } .hamburger{ background: transparent; border: 0; cursor: pointer; width: 50px; height: 50px; padding: 0; svg{ width: 100%; height: 100%; } } `; Ot([ f({ type: Boolean }) ], ke.prototype, "mobileMenuOpen", 2); Ot([ f({ type: Boolean }) ], ke.prototype, "i18n", 2); Ot([ zi({ slot: "" }) ], ke.prototype, "navbarItems", 2); ke = Ot([ M("iu-header-navbar") ], ke); var ao = Object.defineProperty, lo = Object.getOwnPropertyDescriptor, oi = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? lo(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && ao(e, t, r), r; }; let Qe = class extends P { constructor() { super(...arguments), this.href = "", this.text = ""; } render() { return w` <li><a target="_blank" href="${this.href}">${this.text}</a></li> `; } }; Qe.styles = O` :host a{ color: #fff; text-decoration: none; } `; oi([ f() ], Qe.prototype, "href", 2); oi([ f() ], Qe.prototype, "text", 2); Qe = oi([ M("iu-header-topbar-item") ], Qe); var po = Object.defineProperty, co = Object.getOwnPropertyDescriptor, Mt = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? co(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && po(e, t, r), r; }; let Ie = class extends P { constructor() { super(...arguments), this.i18n = !1, this.searchable = !1; } getLastElement() { if (!this.slottedElements) return; const i = Array.from(this.slottedElements).filter((e) => e instanceof HTMLElement); i.length > 0 && i[i.length - 1].classList.add("last"); } firstUpdated() { this.getLastElement(); } render() { return w` <iu-container> <nav role="navigation"> <ul> <slot></slot> </ul> </nav> <div> ${this.i18n && w`<a href="#">EN</a>`} ${this.searchable ? w`<a href="#"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 37"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 24a7.5 7.5 0 1 0 0-15 7.5 7.5 0 0 0 0 15Zm0 1a8.5 8.5 0 1 0 0-17 8.5 8.5 0 0 0 0 17Z" fill="currentColor"/><path fill-rule="evenodd" clip-rule="evenodd" d="m14.854 22.146 6.5 6.5-.707.708-6.5-6.5.707-.707Z" fill="currentColor"/></svg></a>` : ""} </div> </iu-container> `; } }; Ie.styles = O` :host{ background: var(--iu-color-black); height: 40px; display: none; align-items: center; font-size: 0.8125rem; } @media ${C(_.xl)} { :host{ display: flex; } } :host nav ul{ margin: 0; padding: 0; display: flex; list-style-type: none; } :host nav ul ::slotted(li:not(:last-child)){ margin-right: 20px; } :host a{ color: #fff; text-decoration: none; } :host iu-container{ display: flex; align-items: center; justify-content: space-between; margin-bottom: 0; } :host div{ display: flex; align-items: center; justify-content: space-between; } :host nav ul ::slotted(*){ margin-right: 20px; } :host nav ul ::slotted(.last){ margin-right: 0; } :host div svg{ width: 1.375rem; height: 2.25rem; display: block; } :host div a{ margin-left: 0.9375rem; } `; Mt([ f({ type: Boolean }) ], Ie.prototype, "i18n", 2); Mt([ f({ type: Boolean }) ], Ie.prototype, "searchable", 2); Mt([ tt() ], Ie.prototype, "slottedElements", 2); Ie = Mt([ M("iu-header-topbar") ], Ie); var uo = Object.getOwnPropertyDescriptor, ho = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? uo(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = o(r) || r); return r; }; let Wt = class extends P { constructor() { super(...arguments), this.currentScrollPos = 0, this.prevScrollPos = 0, this.headerHeight = 0, this.menuIsOpen = !1, this.handleScroll = () => { this.currentScrollPos = window.scrollY, this.currentScrollPos > this.headerHeight && this.menuIsOpen == !1 ? document.body.classList.add("is-scrolled") : document.body.classList.remove("is-scrolled"), this.prevScrollPos > this.headerHeight && this.prevScrollPos < this.currentScrollPos && this.menuIsOpen == !1 ? this.classList.add("is-hidden") : this.prevScrollPos >= this.currentScrollPos && this.menuIsOpen == !1 && this.classList.remove("is-hidden"), this.prevScrollPos = this.currentScrollPos; }, this.getHeaderHeight = () => (this.headerHeight = this.clientHeight, `${this.clientHeight}px`); } connectedCallback() { super.connectedCallback(), window.addEventListener("scroll", this.handleScroll); } disconnectedCallback() { super.disconnectedCallback(), window.removeEventListener("scroll", this.handleScroll); } //get header height when first updated firstUpdated() { document.documentElement.style.setProperty("--iu-header-height", this.getHeaderHeight()); } render() { return w` <header id="site-header" class="site-header"> <slot></slot> </header> `; } }; Wt.styles = O` :host{ position: sticky; top: 0; z-index: 50; background: #fff; display:block; transform: translateY(0); transition: transform .5s ease; } @media ${C(_.md)} { :host(.is-hidden){ transform: translateY(-100%); } } `; Wt = ho([ M("iu-header") ], Wt); var fo = Object.defineProperty, go = Object.getOwnPropertyDescriptor, he = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? go(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && fo(e, t, r), r; }; let X = class extends P { constructor() { super(...arguments), this.text = "", this.href = "", this.link = "", this.size = 1, this.tag = 2, this.noDivider = !1, this.nested = !1; } render() { const i = this.href ? w`<a href="${this.href}" part="link">${this.link}</a>` : null, t = ((s, r) => { switch (s) { case 1: return w`<h1 part="title">${r}</h1>`; case 2: return w`<h2 part="title">${r}</h2>`; case 3: return w`<h3 part="title">${r}</h3>`; case 4: return w`<h4 part="title">${r}</h4>`; case 5: return w`<h5 part="title">${r}</h5>`; case 6: return w`<h6 part="title">${r}</h6>`; default: return w`<h2 part="title">${r}</h2>`; } })(this.tag, this.text); return w` <iu-container ?nested=${this.nested}> <div class="inner size-${this.size} ${this.noDivider ? "no-divider" : ""} ${this.href ? "has-link" : ""}"> ${t} ${i} </div> </iu-container> `; } }; X.styles = O` :host{ display: block; margin-top: var(--iu-heading-margin-top, 0); margin-bottom: var(--iu-heading-margin-bottom, var(--iu-spacing-block-sm)); --iu-heading-color: var(--iu-color-black); --iu-heading-link-color: var(--iu-color-grey-300); } h1,h2,h3,h4,h5,h6{ color: var(--iu-heading-color); margin: 0; font-weight: 400; } .size-1 h1, .size-1 h2, .size-1 h3, .size-1 h4, .size-1 h5, .size-1 h5 { font: var(--iu-f-lg); } .size-2 h1, .size-2 h2, .size-2 h3, .size-2 h4, .size-2 h5, .size-2 h5 { font: var(--iu-f-2xl); } .inner{ // width: calc(100% / 12 * 11); width: 100%; border-top: 1px solid var(--iu-color-black); padding-top: 0.75rem; } @media ${C(_.md)} { .inner{ display: flex; justify-content: space-between; align-items: baseline; } } .inner.no-divider{ border-top: 0; padding-top: 0; } .inner.has-link{ width: 100%; } a{ font: var(--iu-f-lg); text-decoration: none !important; color: var(--iu-heading-link-color); flex-shrink: 0; } iu-container{ margin-bottom: 0; } `; he([ f() ], X.prototype, "text", 2); he([ f() ], X.prototype, "href", 2); he([ f() ], X.prototype, "link", 2); he([ f({ type: Number }) ], X.prototype, "size", 2); he([ f({ type: Number }) ], X.prototype, "tag", 2); he([ f({ type: Boolean }) ], X.prototype, "noDivider", 2); he([ f({ type: Boolean, reflect: !0 }) ], X.prototype, "nested", 2); X = he([ M("iu-heading") ], X); var mo = Object.defineProperty, vo = Object.getOwnPropertyDescriptor, Ee = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? vo(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && mo(e, t, r), r; }; let ee = class extends P { constructor() { super(...arguments), this.setHeroBannerHeight = () => { if (window.matchMedia("(min-width: 62rem)").matches) { const i = this.offsetTop; this.style.setProperty("--iu-hero-banner-height", `${window.innerHeight - i}px`); } }, this.jpg = "", this.webp = "", this.alt = "", this.mp4 = "", this.webm = "", this.heading = ""; } connectedCallback() { super.connectedCallback(), window.addEventListener("resize", this.setHeroBannerHeight); } firstUpdated() { requestAnimationFrame(() => { this.setHeroBannerHeight(); }); } render() { return w` <div> <iu-container> ${this.jpg && w` <div class="img"> <picture> ${this.webp ? w`<source srcset="${this.webp}" type="image/webp">` : ""} <source srcset="${this.jpg}" type="image/jpg"> <img src="${this.jpg}" alt="${this.alt}"> </picture> </div> `} ${(this.webm || this.mp4) && w` <div class="video"> <video width="1920" height="1080" autoplay muted loop> ${this.webm ? w`<source src="${this.webm}" type="video/webm">` : ""} ${this.mp4 ? w`<source src="${this.mp4}" type="video/mp4">` : ""} Your browser does not support the video tag. </video> </div> `} ${this.heading && w` <h1>${this.heading}</h1> `} </iu-container> </div> `; } }; ee.styles = O` :host{ display:block; margin-bottom: var(--iu-spacing-block-lg); } .video{ aspect-ratio: 16/9; position: relative; overflow: hidden; margin-bottom: calc(var(--iu-grid-gutter)*2); z-index: 20; } @media ${C(_.md)} { .video{ aspect-ratio: auto; } } @media ${C(_.lg)} { .video{ height: calc(var(--iu-hero-banner-height) - var(--iu-grid-gutter)); } } .video video{ width: 100%; height: 100%; object-fit: cover; } h1{ font-weight: 400; font: var(--iu-f-4); z-index: 10; margin-bottom: 0; margin-top: 0; width: calc(100% / 12 * 11); } @media ${C(_.md)} { h1{ font: var(--iu-f-7); } } @media ${C(_.lg)} { h1{ font: var(--iu-f-9); position: sticky; bottom: var(--iu-grid-gutter); } } `; Ee([ f() ], ee.prototype, "jpg", 2); Ee([ f() ], ee.prototype, "webp", 2); Ee([ f() ], ee.prototype, "alt", 2); Ee([ f() ], ee.prototype, "mp4", 2); Ee([ f() ], ee.prototype, "webm", 2); Ee([ f() ], ee.prototype, "heading", 2); ee = Ee([ M("iu-hero-banner") ], ee); var wo = Object.defineProperty, bo = Object.getOwnPropertyDescriptor, Te = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? bo(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && wo(e, t, r), r; }; let te = class extends P { constructor() { super(...arguments), this.target = "_self", this.size = 1, this.nested = !1; } render() { return w` <iu-container ?nested=${this.nested}> <a href="${this.href}" class="size-${this.size}" target="${this.target}"> ${this.label ? w` <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><path d="m21.082 16.215 12.257.471m0 0 .47 12.257m-.47-12.257L15.66 34.364" stroke="currentColor" stroke-width="2"/></svg>` : w` <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50"><path d="M28.667 16 37 25m0 0-8.333 9M37 25H12" stroke="currentColor" stroke-width="2"/></svg>`} <span> ${this.text} ${this.label && w`<span>${this.label}</span>`} </span> </a> </iu-container> `; } }; te.styles = O` :host{ display: block; --iu-comp-bg: transparent; --iu-comp-color: var(--iu-color-black); --iu-comp-bg-hover: var(--iu-color-black); --iu-comp-color-hover: var(--iu-color-white); --iu-comp-border-color: var(--iu-color-grey-200); --iu-comp-border-color-hover: var(--iu-color-grey-500); // margin-bottom: var(--iu-spacing-3); } @media ${C(_.md)} { :host{ // margin-bottom: var(--iu-spacing-6); } } a{ background: var(--iu-comp-bg); color: var(--iu-comp-color); font: var(--iu-f-2); text-decoration: none; border-top: 1px solid var(--iu-comp-border-color); position: relative; display: flex; } a.size-2{ font: var(--iu-f-lg); } a:hover{ background: var(--iu-comp-bg-hover); color: var(--iu-comp-color-hover); } svg{ width: 2.25rem; height: 2.25rem; margin-right: var(--iu-spacing-0); flex-shrink: 0; } .size-2 svg{ width: 3.125rem; height: 3.125rem; margin-right: var(--iu-spacing-1); } a > span{ padding-top: 0.375rem; padding-bottom: 0.375rem; // padding-right: 1.25rem; } a span span{ display: inline-block; font: var(--iu-f-0); color: var(--iu-color-grey-300); transform: translateY(-0.875rem); } iu-container{ margin-bottom: 0; } `; Te([ f() ], te.prototype, "href", 2); Te([ f() ], te.prototype, "text", 2); Te([ f() ], te.prototype, "label", 2); Te([ f() ], te.prototype, "target", 2); Te([ f({ type: Number }) ], te.prototype, "size", 2); Te([ f({ type: Boolean, reflect: !0 }) ], te.prototype, "nested", 2); te = Te([ M("iu-link") ], te); var yo = Object.defineProperty, xo = Object.getOwnPropertyDescriptor, zt = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? xo(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && yo(e, t, r), r; }; let De = class extends P { constructor() { super(...arguments), this.label = "Per approfondire", this.columns = 1, this.items = []; } render() { return w` <iu-container> <div class="columns-${this.columns}"> ${this.label && w`<p>${this.label}</p>`} ${this.items.map( (i) => w` <iu-link href="${i.href}" text="${i.text}" nested></iu-link> ` )} </div> </iu-container> `; } }; De.styles = O` :host{ display: block; margin-bottom: var(--iu-spacing-block); } .columns-1{ width: 50%; } p{ font-weight: bold; } iu-link:last-child{ border-bottom: 1px solid var(--iu-color-grey-200); } `; zt([ f() ], De.prototype, "label", 2); zt([ f({ type: Number }) ], De.prototype, "columns", 2); zt([ f({ type: Array }) ], De.prototype, "items", 2); De = zt([ M("iu-links-list") ], De); var Ao = Object.defineProperty, $o = Object.getOwnPropertyDescriptor, Ge = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? $o(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Ao(e, t, r), r; }; let le = class extends P { constructor() { super(...arguments), this.sm = 2, this.nested = !1; } render() { return w` <iu-container ?nested=${this.nested} columns=${this.sm} columns-md=${this.md || j} columns-lg=${this.lg || j} columns-xl=${this.xl || j} > <slot></slot> </iu-container> `; } }; le.styles = O` :host { display: block; margin-bottom: var(--iu-spacing-block); } `; Ge([ f({ type: Number }) ], le.prototype, "sm", 2); Ge([ f({ type: Number }) ], le.prototype, "md", 2); Ge([ f({ type: Number }) ], le.prototype, "lg", 2); Ge([ f({ type: Number }) ], le.prototype, "xl", 2); Ge([ f({ type: Boolean, reflect: !0 }) ], le.prototype, "nested", 2); le = Ge([ M("iu-list") ], le); var So = Object.defineProperty, Eo = Object.getOwnPropertyDescriptor, ai = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Eo(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && So(e, t, r), r; }; let Ke = class extends P { constructor() { super(...arguments), this.label = "", this.text = ""; } render() { return w` <div> <p class="label">${this.label}</p> <p class="text">${st(this.text)}</p> </div> `; } }; Ke.styles = O` :host{ display:block; } div{ border-top: 1px solid var(--iu-color-grey-200); } p{ margin: 0; } .label{ padding-top: var(--iu-spacing-0); color: var(--iu-color-grey-300); } .text a{ color: var(--iu-color-black); } @media ${C(_.md)} { } `; ai([ f() ], Ke.prototype, "label", 2); ai([ f() ], Ke.prototype, "text", 2); Ke = ai([ M("iu-list-item") ], Ke); var To = Object.defineProperty, Po = Object.getOwnPropertyDescriptor, Ve = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Po(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && To(e, t, r), r; }; let de = class extends P { constructor() { super(...arguments), this.href = "", this.text = ""; } isExternalLink(i) { try { return new URL(i, window.location.href).hostname !== window.location.hostname; } catch { return !1; } } renderIntIcon() { return w`<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 20"> <path fill-rule="evenodd" clip-rule="evenodd" d="m22.711 9-6.778-7.32L17.4.32 26.363 10 17.4 19.68l-1.467-1.36L22.71 11H0V9h22.711Z" fill="currentColor"/></svg>`; } renderExtIcon() { return w`<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 27 20"> <path fill-rule="evenodd" clip-rule="evenodd" d="m23.06 2.526-9.97-.383.077-1.998 13.182.507.506 13.181-1.998.077-.383-9.97L8.414 20 7 18.586l16.06-16.06Z" fill="currentColor"/></svg>`; } applyMultilineEllipsis(i) { if (!this.titleElement) return; const t = parseFloat(getComputedStyle(this.titleElement).lineHeight) * i; if (this.titleElement.scrollHeight > t) { let s = this.titleElement.textContent.split(" "); this.titleElement.textContent = ""; for (let r = 0; r < s.length; r++) if (this.titleElement.textContent += s[r] + " ", this.titleElement.scrollHeight > t) { this.titleElement.textContent = this.titleElement.textContent.trim() + "..."; break; } } } firstUpdated() { } render() { const i = this.isExternalLink(this.href); return w` <a href="${this.href}" class="nav-card"> ${this.subtitle ? w`<span class="subtitle">${this.subtitle}</span>` : ""} ${this.excerpt && !this.subtitle ? w`<span class="excerpt">${this.excerpt}</span>` : ""} <div class="title"> <p>${this.text}</p> ${i ? this.renderExtIcon() : this.renderIntIcon()} </div> </a> `; } }; de.styles = O` :host{ display: block; } .nav-card{ background: var(--iu-color-grey-100); display: block; aspect-ratio: 1/1; display: flex; flex-direction: column; justify-content: end; padding: var(--iu-grid-gutter); color: var(--iu-color-black); text-decoration: none; font-size: var(--iu-fs-lg); &:hover{ background: var(--iu-color-black); color: var(--iu-color-white); } p{ justify-self: end; margin: 0; } } .excerpt{ font-size: var(--iu-fs-1); margin-bottom: var(--iu-spacing-5); flex-grow: 1; } .subtitle{ font-size: var(--iu-fs-1); color: var(--iu-color-grey-300); margin-bottom: var(--iu-spacing-5); flex-grow: 1; } .title{ display: flex; align-items: end; overflow: hidden; flex-shrink: 1; } svg{ width: 27px; height: 20px; flex-shrink: 0; margin-bottom: 10px; margin-left: 20px; } `; Ve([ et(".title p") ], de.prototype, "titleElement", 2); Ve([ f() ], de.prototype, "href", 2); Ve([ f() ], de.prototype, "text", 2); Ve([ f() ], de.prototype, "excerpt", 2); Ve([ f() ], de.prototype, "subtitle", 2); de = Ve([ M("iu-nav-card") ], de); var Co = Object.defineProperty, _o = Object.getOwnPropertyDescriptor, ot = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? _o(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = (s ? o(e, t, r) : o(r)) || r); return s && r && Co(e, t, r), r; }; let xe = class extends P { constructor() { super(...arguments), this.columns = 2, this.size = 1, this.nested = !1; } updateLastElement() { const i = this.slottedElements ? Array.from(this.slottedElements) : []; if (i.length > 0) { const e = i[i.length - 1]; e instanceof HTMLElement && e.classList.add("last"); } } wrapListItems() { this.querySelectorAll("ul, ol").forEach((t) => { t.classList.add("list"); }), this.querySelectorAll("li").forEach((t) => { const r = `<span>${t.innerHTML}</span>`; t.innerHTML = r; }); } firstUpdated() { this.updateLastElement(), this.wrapListItems(); } render() { return w` <iu-container ?nested=${this.nested} columns="${this.columns}"> <div class="fs-${this.size}"> <slot></slot> </div> </iu-container> `; } }; xe.styles = O` :host{ display: block; margin-bottom: var(--iu-spacing-block-xs); } @media ${C(_.lg)} { .column-1{ grid-column: span 6; // width: calc(50% - var(--iu-grid-gutter)); } } iu-container{ margin-bottom: 0; } .fs-1 { --iu-p-f: var(--iu-f-1); } .fs-2 { --iu-p-f: var(--iu-f-2); } @media ${C(_.md)} { .fs-3{ --iu-p-f: var(--iu-f-2); } } @media ${C(_.xl)} { .fs-3{ --iu-p-f: var(--iu-f-4); } } ::slotted(p){ font: var(--iu-p-f) !important; margin-bottom: var(--iu-spacing-2); margin-top: 0; } ::slotted(.last){ margin-bottom: 0 !important; } `; ot([ f({ type: Number }) ], xe.prototype, "columns", 2); ot([ f({ type: Number }) ], xe.prototype, "size", 2); ot([ f({ type: Boolean, reflect: !0 }) ], xe.prototype, "nested", 2); ot([ tt() ], xe.prototype, "slottedElements", 2); xe = ot([ M("iu-paragraph") ], xe); var Oo = Object.getOwnPropertyDescriptor, Mo = (i, e, t, s) => { for (var r = s > 1 ? void 0 : s ? Oo(e, t) : e, n = i.length - 1, o; n >= 0; n--) (o = i[n]) && (r = o(r) || r); return r; }; let Xt = class extends P { render() { return w` <div aria-label="Social-networks" role="navigation"> <ul> <li><a href="https://www.facebook.com/UniversitaIuavDiVenezia/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512" fill="currentColor"><path d="M80 299.3V512h116V299.3h86.5l18-97.8H196v-34.6c0-51.7 20.3-71.5 72.7-71.5 16.3 0 29.4.4 37 1.2V7.9C291.4 4 256.4 0 236.2 0 129.3 0 80 50.5 80 159.4v42.1H14v97.8h66z"></path></svg></a></li> <li><a href="https://www.instagram.com/iuav_venezia/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="currentColor"><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg></a></li> <li><a href="http://twitter.com/Iuav"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="currentColor"><path d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></a></li> <li><a href="http://www.youtube.com/universitaiuav"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" fill="currentColor"><path d="M549.7 124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8 64 288 64 288 64S117.2 64 74.6 75.5c-23.5 6.3-42 24.9-48.3 48.6-11.4 42.9-11.4 132.3-11.4 132.3s0 89.4 11.4 132.3c6.3 23.7 24.8 41.5 48.3 47.8C117.2 448 288 448 288 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zm-317.5 213.5V175.2l142.7 81.2-142.7 81.2z"></path></svg></a></li> <li><a href="https://www.linkedin.com/edu/universit%C3%A0-iuav-di-venezia-13908"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" fill="currentColor"><path d="M100.3 448H7.4V148.9h92.9zM53.8 108.1C24.1 108.1 0 83.5 0 53.8a53.8 53.8 0 0 1 107.6 0c0 29.7-24.1 54.3-53.8 54.3zM447.9 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448z"></path></svg></a></li> <li><a href="https://t.me/iuav_venezia"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" fill="currentColor"><path d="M248 8C111 8 0 119 0 256S111 504 248 504 496 393 496 256 385 8 248 8zM363 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5q-3.3 .7-104.6 69.1-14.8 10.2-26.9 9.9c-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3q.8-6.7 18.5-13.7 108.4-47.2 144.6-62.3c68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9a10.5 10.5 0 0 1 3.5 6.7A43.8 43.8 0 0 1 363 176.7z"></path></svg></a></li> </ul> </div> `; } }; Xt.styles = O` :host{ display: block; } ul{ display: flex; margin: 0; padding: 0; list-style-type: none; margin-top: 0.25rem; } ul li{ margin.bottom: 0.5rem; } ul li:not(:last-child){ margin-right: 1.25rem; } ul li a svg{ width: 1rem; height: 1rem; color: #fff; } `; Xt = Mo([ M("iu-social-nav") ], Xt);