var oi = Object.defineProperty, di = Object.defineProperties; var ci = Object.getOwnPropertyDescriptors; var nt = Object.getOwnPropertySymbols; var fi = Object.prototype.hasOwnProperty, ui = Object.prototype.propertyIsEnumerable; var lt = (j, _, Z) => _ in j ? oi(j, _, { enumerable: !0, configurable: !0, writable: !0, value: Z }) : (j[_] = Z), Ye = (j, _) => { for (var Z in _ || (_ = {})) fi.call(_, Z) && lt(j, Z, _[Z]); if (nt) for (var Z of nt(_)) ui.call(_, Z) && lt(j, Z, _[Z]); return j; }, Xe = (j, _) => di(j, ci(_)); (function (j) { typeof define == "function" && define.amd ? define(j) : j(); })(function () { "use strict"; function j(s) { return ( s !== null && typeof s == "object" && "constructor" in s && s.constructor === Object ); } function _(s, e) { (s === void 0 && (s = {}), e === void 0 && (e = {}), Object.keys(e).forEach((t) => { typeof s[t] == "undefined" ? (s[t] = e[t]) : j(e[t]) && j(s[t]) && Object.keys(e[t]).length > 0 && _(s[t], e[t]); })); } const Z = { 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 q() { const s = typeof document != "undefined" ? document : {}; return (_(s, Z), s); } const ot = { document: Z, 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(s) { return typeof setTimeout == "undefined" ? (s(), null) : setTimeout(s, 0); }, cancelAnimationFrame(s) { typeof setTimeout != "undefined" && clearTimeout(s); }, }; function X() { const s = typeof window != "undefined" ? window : {}; return (_(s, ot), s); } function ie(s) { return ( s === void 0 && (s = ""), s .trim() .split(" ") .filter((e) => !!e.trim()) ); } function dt(s) { const e = s; Object.keys(e).forEach((t) => { try { e[t] = null; } catch {} try { delete e[t]; } catch {} }); } function ae(s, e) { return (e === void 0 && (e = 0), setTimeout(s, e)); } function ee() { return Date.now(); } function ct(s) { const e = X(); let t; return ( e.getComputedStyle && (t = e.getComputedStyle(s, null)), !t && s.currentStyle && (t = s.currentStyle), t || (t = s.style), t ); } function Le(s, e) { e === void 0 && (e = "x"); const t = X(); let i, r, a; const f = ct(s); return ( t.WebKitCSSMatrix ? ((r = f.transform || f.webkitTransform), r.split(",").length > 6 && (r = r .split(", ") .map((c) => c.replace(",", ".")) .join(", ")), (a = new t.WebKitCSSMatrix(r === "none" ? "" : r))) : ((a = f.MozTransform || f.OTransform || f.MsTransform || f.msTransform || f.transform || f .getPropertyValue("transform") .replace("translate(", "matrix(1, 0, 0, 1,")), (i = a.toString().split(","))), e === "x" && (t.WebKitCSSMatrix ? (r = a.m41) : i.length === 16 ? (r = parseFloat(i[12])) : (r = parseFloat(i[4]))), e === "y" && (t.WebKitCSSMatrix ? (r = a.m42) : i.length === 16 ? (r = parseFloat(i[13])) : (r = parseFloat(i[5]))), r || 0 ); } function ue(s) { return ( typeof s == "object" && s !== null && s.constructor && Object.prototype.toString.call(s).slice(8, -1) === "Object" ); } function ft(s) { return typeof window != "undefined" && typeof window.HTMLElement != "undefined" ? s instanceof HTMLElement : s && (s.nodeType === 1 || s.nodeType === 11); } function Q() { const s = Object(arguments.length <= 0 ? void 0 : arguments[0]), e = ["__proto__", "constructor", "prototype"]; for (let t = 1; t < arguments.length; t += 1) { const i = t < 0 || arguments.length <= t ? void 0 : arguments[t]; if (i != null && !ft(i)) { const r = Object.keys(Object(i)).filter((a) => e.indexOf(a) < 0); for (let a = 0, f = r.length; a < f; a += 1) { const c = r[a], n = Object.getOwnPropertyDescriptor(i, c); n !== void 0 && n.enumerable && (ue(s[c]) && ue(i[c]) ? i[c].__swiper__ ? (s[c] = i[c]) : Q(s[c], i[c]) : !ue(s[c]) && ue(i[c]) ? ((s[c] = {}), i[c].__swiper__ ? (s[c] = i[c]) : Q(s[c], i[c])) : (s[c] = i[c])); } } } return s; } function pe(s, e, t) { s.style.setProperty(e, t); } function qe(s) { let { swiper: e, targetPosition: t, side: i } = s; const r = X(), a = -e.translate; let f = null, c; const n = e.params.speed; ((e.wrapperEl.style.scrollSnapType = "none"), r.cancelAnimationFrame(e.cssModeFrameID)); const u = t > a ? "next" : "prev", o = (d, p) => (u === "next" && d >= p) || (u === "prev" && d <= p), l = () => { ((c = new Date().getTime()), f === null && (f = c)); const d = Math.max(Math.min((c - f) / n, 1), 0), p = 0.5 - Math.cos(d * Math.PI) / 2; let h = a + p * (t - a); if ((o(h, t) && (h = t), e.wrapperEl.scrollTo({ [i]: h }), o(h, t))) { ((e.wrapperEl.style.overflow = "hidden"), (e.wrapperEl.style.scrollSnapType = ""), setTimeout(() => { ((e.wrapperEl.style.overflow = ""), e.wrapperEl.scrollTo({ [i]: h })); }), r.cancelAnimationFrame(e.cssModeFrameID)); return; } e.cssModeFrameID = r.requestAnimationFrame(l); }; l(); } function ne(s) { return ( s.querySelector(".swiper-slide-transform") || (s.shadowRoot && s.shadowRoot.querySelector(".swiper-slide-transform")) || s ); } function W(s, e) { e === void 0 && (e = ""); const t = [...s.children]; return ( s instanceof HTMLSlotElement && t.push(...s.assignedElements()), e ? t.filter((i) => i.matches(e)) : t ); } function ut(s, e) { const t = e.contains(s); return !t && e instanceof HTMLSlotElement ? [...e.assignedElements()].includes(s) : t; } function ye(s) { try { console.warn(s); return; } catch {} } function J(s, e) { e === void 0 && (e = []); const t = document.createElement(s); return (t.classList.add(...(Array.isArray(e) ? e : ie(e))), t); } function be(s) { const e = X(), t = q(), i = s.getBoundingClientRect(), r = t.body, a = s.clientTop || r.clientTop || 0, f = s.clientLeft || r.clientLeft || 0, c = s === e ? e.scrollY : s.scrollTop, n = s === e ? e.scrollX : s.scrollLeft; return { top: i.top + c - a, left: i.left + n - f }; } function pt(s, e) { const t = []; for (; s.previousElementSibling; ) { const i = s.previousElementSibling; (e ? i.matches(e) && t.push(i) : t.push(i), (s = i)); } return t; } function mt(s, e) { const t = []; for (; s.nextElementSibling; ) { const i = s.nextElementSibling; (e ? i.matches(e) && t.push(i) : t.push(i), (s = i)); } return t; } function re(s, e) { return X().getComputedStyle(s, null).getPropertyValue(e); } function me(s) { let e = s, t; if (e) { for (t = 0; (e = e.previousSibling) !== null; ) e.nodeType === 1 && (t += 1); return t; } } function le(s, e) { const t = []; let i = s.parentElement; for (; i; ) (e ? i.matches(e) && t.push(i) : t.push(i), (i = i.parentElement)); return t; } function he(s, e) { function t(i) { i.target === s && (e.call(s, i), s.removeEventListener("transitionend", t)); } e && s.addEventListener("transitionend", t); } function Ie(s, e, t) { const i = X(); return t ? s[e === "width" ? "offsetWidth" : "offsetHeight"] + parseFloat( i .getComputedStyle(s, null) .getPropertyValue(e === "width" ? "margin-right" : "margin-top"), ) + parseFloat( i .getComputedStyle(s, null) .getPropertyValue( e === "width" ? "margin-left" : "margin-bottom", ), ) : s.offsetWidth; } function N(s) { return (Array.isArray(s) ? s : [s]).filter((e) => !!e); } function Se(s) { return (e) => Math.abs(e) > 0 && s.browser && s.browser.need3dFix && Math.abs(e) % 90 == 0 ? e + 0.001 : e; } let Ae; function ht() { const s = X(), e = q(); return { smoothScroll: e.documentElement && e.documentElement.style && "scrollBehavior" in e.documentElement.style, touch: !!( "ontouchstart" in s || (s.DocumentTouch && e instanceof s.DocumentTouch) ), }; } function We() { return (Ae || (Ae = ht()), Ae); } let ze; function gt(s) { let { userAgent: e } = s === void 0 ? {} : s; const t = We(), i = X(), r = i.navigator.platform, a = e || i.navigator.userAgent, f = { ios: !1, android: !1 }, c = i.screen.width, n = i.screen.height, u = a.match(/(Android);?[\s\/]+([\d.]+)?/); let o = a.match(/(iPad).*OS\s([\d_]+)/); const l = a.match(/(iPod)(.*OS\s([\d_]+))?/), d = !o && a.match(/(iPhone\sOS|iOS)\s([\d_]+)/), p = r === "Win32"; let h = r === "MacIntel"; const g = [ "1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112", "1112x834", "768x1024", "1024x768", "820x1180", "1180x820", "810x1080", "1080x810", ]; return ( !o && h && t.touch && g.indexOf(`${c}x${n}`) >= 0 && ((o = a.match(/(Version)\/([\d.]+)/)), o || (o = [0, 1, "13_0_0"]), (h = !1)), u && !p && ((f.os = "android"), (f.android = !0)), (o || d || l) && ((f.os = "ios"), (f.ios = !0)), f ); } function _e(s) { return (s === void 0 && (s = {}), ze || (ze = gt(s)), ze); } let De; function vt() { const s = X(), e = _e(); let t = !1; function i() { const c = s.navigator.userAgent.toLowerCase(); return ( c.indexOf("safari") >= 0 && c.indexOf("chrome") < 0 && c.indexOf("android") < 0 ); } if (i()) { const c = String(s.navigator.userAgent); if (c.includes("Version/")) { const [n, u] = c .split("Version/")[1] .split(" ")[0] .split(".") .map((o) => Number(o)); t = n < 16 || (n === 16 && u < 2); } } const r = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( s.navigator.userAgent, ), a = i(), f = a || (r && e.ios); return { isSafari: t || a, needPerspectiveFix: t, need3dFix: f, isWebView: r, }; } function wt() { return (De || (De = vt()), De); } function yt(s) { let { swiper: e, on: t, emit: i } = s; const r = X(); let a = null, f = null; const c = () => { !e || e.destroyed || !e.initialized || (i("beforeResize"), i("resize")); }, n = () => { !e || e.destroyed || !e.initialized || ((a = new ResizeObserver((l) => { f = r.requestAnimationFrame(() => { const { width: d, height: p } = e; let h = d, g = p; (l.forEach((w) => { let { contentBoxSize: y, contentRect: v, target: m } = w; (m && m !== e.el) || ((h = v ? v.width : (y[0] || y).inlineSize), (g = v ? v.height : (y[0] || y).blockSize)); }), (h !== d || g !== p) && c()); }); })), a.observe(e.el)); }, u = () => { (f && r.cancelAnimationFrame(f), a && a.unobserve && e.el && (a.unobserve(e.el), (a = null))); }, o = () => { !e || e.destroyed || !e.initialized || i("orientationchange"); }; (t("init", () => { if (e.params.resizeObserver && typeof r.ResizeObserver != "undefined") { n(); return; } (r.addEventListener("resize", c), r.addEventListener("orientationchange", o)); }), t("destroy", () => { (u(), r.removeEventListener("resize", c), r.removeEventListener("orientationchange", o)); })); } function bt(s) { let { swiper: e, extendParams: t, on: i, emit: r } = s; const a = [], f = X(), c = function (o, l) { l === void 0 && (l = {}); const d = f.MutationObserver || f.WebkitMutationObserver, p = new d((h) => { if (e.__preventObserver__) return; if (h.length === 1) { r("observerUpdate", h[0]); return; } const g = function () { r("observerUpdate", h[0]); }; f.requestAnimationFrame ? f.requestAnimationFrame(g) : f.setTimeout(g, 0); }); (p.observe(o, { attributes: typeof l.attributes == "undefined" ? !0 : l.attributes, childList: e.isElement || (typeof l.childList == "undefined" ? !0 : l).childList, characterData: typeof l.characterData == "undefined" ? !0 : l.characterData, }), a.push(p)); }, n = () => { if (!!e.params.observer) { if (e.params.observeParents) { const o = le(e.hostEl); for (let l = 0; l < o.length; l += 1) c(o[l]); } (c(e.hostEl, { childList: e.params.observeSlideChildren }), c(e.wrapperEl, { attributes: !1 })); } }, u = () => { (a.forEach((o) => { o.disconnect(); }), a.splice(0, a.length)); }; (t({ observer: !1, observeParents: !1, observeSlideChildren: !1 }), i("init", n), i("destroy", u)); } var St = { on(s, e, t) { const i = this; if (!i.eventsListeners || i.destroyed || typeof e != "function") return i; const r = t ? "unshift" : "push"; return ( s.split(" ").forEach((a) => { (i.eventsListeners[a] || (i.eventsListeners[a] = []), i.eventsListeners[a][r](e)); }), i ); }, once(s, e, t) { const i = this; if (!i.eventsListeners || i.destroyed || typeof e != "function") return i; function r() { (i.off(s, r), r.__emitterProxy && delete r.__emitterProxy); for (var a = arguments.length, f = new Array(a), c = 0; c < a; c++) f[c] = arguments[c]; e.apply(i, f); } return ((r.__emitterProxy = e), i.on(s, r, t)); }, onAny(s, e) { const t = this; if (!t.eventsListeners || t.destroyed || typeof s != "function") return t; const i = e ? "unshift" : "push"; return ( t.eventsAnyListeners.indexOf(s) < 0 && t.eventsAnyListeners[i](s), t ); }, offAny(s) { const e = this; if (!e.eventsListeners || e.destroyed || !e.eventsAnyListeners) return e; const t = e.eventsAnyListeners.indexOf(s); return (t >= 0 && e.eventsAnyListeners.splice(t, 1), e); }, off(s, e) { const t = this; return ( !t.eventsListeners || t.destroyed || !t.eventsListeners || s.split(" ").forEach((i) => { typeof e == "undefined" ? (t.eventsListeners[i] = []) : t.eventsListeners[i] && t.eventsListeners[i].forEach((r, a) => { (r === e || (r.__emitterProxy && r.__emitterProxy === e)) && t.eventsListeners[i].splice(a, 1); }); }), t ); }, emit() { const s = this; if (!s.eventsListeners || s.destroyed || !s.eventsListeners) return s; let e, t, i; for (var r = arguments.length, a = new Array(r), f = 0; f < r; f++) a[f] = arguments[f]; return ( typeof a[0] == "string" || Array.isArray(a[0]) ? ((e = a[0]), (t = a.slice(1, a.length)), (i = s)) : ((e = a[0].events), (t = a[0].data), (i = a[0].context || s)), t.unshift(i), (Array.isArray(e) ? e : e.split(" ")).forEach((n) => { (s.eventsAnyListeners && s.eventsAnyListeners.length && s.eventsAnyListeners.forEach((u) => { u.apply(i, [n, ...t]); }), s.eventsListeners && s.eventsListeners[n] && s.eventsListeners[n].forEach((u) => { u.apply(i, t); })); }), s ); }, }; function Et() { const s = this; let e, t; const i = s.el; (typeof s.params.width != "undefined" && s.params.width !== null ? (e = s.params.width) : (e = i.clientWidth), typeof s.params.height != "undefined" && s.params.height !== null ? (t = s.params.height) : (t = i.clientHeight), !((e === 0 && s.isHorizontal()) || (t === 0 && s.isVertical())) && ((e = e - parseInt(re(i, "padding-left") || 0, 10) - parseInt(re(i, "padding-right") || 0, 10)), (t = t - parseInt(re(i, "padding-top") || 0, 10) - parseInt(re(i, "padding-bottom") || 0, 10)), Number.isNaN(e) && (e = 0), Number.isNaN(t) && (t = 0), Object.assign(s, { width: e, height: t, size: s.isHorizontal() ? e : t, }))); } function xt() { const s = this; function e(P, I) { return parseFloat(P.getPropertyValue(s.getDirectionLabel(I)) || 0); } const t = s.params, { wrapperEl: i, slidesEl: r, size: a, rtlTranslate: f, wrongRTL: c } = s, n = s.virtual && t.virtual.enabled, u = n ? s.virtual.slides.length : s.slides.length, o = W(r, `.${s.params.slideClass}, swiper-slide`), l = n ? s.virtual.slides.length : o.length; let d = []; const p = [], h = []; let g = t.slidesOffsetBefore; typeof g == "function" && (g = t.slidesOffsetBefore.call(s)); let w = t.slidesOffsetAfter; typeof w == "function" && (w = t.slidesOffsetAfter.call(s)); const y = s.snapGrid.length, v = s.slidesGrid.length; let m = t.spaceBetween, b = -g, S = 0, A = 0; if (typeof a == "undefined") return; (typeof m == "string" && m.indexOf("%") >= 0 ? (m = (parseFloat(m.replace("%", "")) / 100) * a) : typeof m == "string" && (m = parseFloat(m)), (s.virtualSize = -m), o.forEach((P) => { (f ? (P.style.marginLeft = "") : (P.style.marginRight = ""), (P.style.marginBottom = ""), (P.style.marginTop = "")); }), t.centeredSlides && t.cssMode && (pe(i, "--swiper-centered-offset-before", ""), pe(i, "--swiper-centered-offset-after", ""))); const O = t.grid && t.grid.rows > 1 && s.grid; O ? s.grid.initSlides(o) : s.grid && s.grid.unsetSlides(); let z; const T = t.slidesPerView === "auto" && t.breakpoints && Object.keys(t.breakpoints).filter( (P) => typeof t.breakpoints[P].slidesPerView != "undefined", ).length > 0; for (let P = 0; P < l; P += 1) { z = 0; let I; if ( (o[P] && (I = o[P]), O && s.grid.updateSlide(P, I, o), !(o[P] && re(I, "display") === "none")) ) { if (t.slidesPerView === "auto") { T && (o[P].style[s.getDirectionLabel("width")] = ""); const C = getComputedStyle(I), E = I.style.transform, x = I.style.webkitTransform; if ( (E && (I.style.transform = "none"), x && (I.style.webkitTransform = "none"), t.roundLengths) ) z = s.isHorizontal() ? Ie(I, "width", !0) : Ie(I, "height", !0); else { const D = e(C, "width"), G = e(C, "padding-left"), M = e(C, "padding-right"), L = e(C, "margin-left"), V = e(C, "margin-right"), F = C.getPropertyValue("box-sizing"); if (F && F === "border-box") z = D + L + V; else { const { clientWidth: $, offsetWidth: k } = I; z = D + G + M + L + V + (k - $); } } (E && (I.style.transform = E), x && (I.style.webkitTransform = x), t.roundLengths && (z = Math.floor(z))); } else ((z = (a - (t.slidesPerView - 1) * m) / t.slidesPerView), t.roundLengths && (z = Math.floor(z)), o[P] && (o[P].style[s.getDirectionLabel("width")] = `${z}px`)); (o[P] && (o[P].swiperSlideSize = z), h.push(z), t.centeredSlides ? ((b = b + z / 2 + S / 2 + m), S === 0 && P !== 0 && (b = b - a / 2 - m), P === 0 && (b = b - a / 2 - m), Math.abs(b) < 1 / 1e3 && (b = 0), t.roundLengths && (b = Math.floor(b)), A % t.slidesPerGroup == 0 && d.push(b), p.push(b)) : (t.roundLengths && (b = Math.floor(b)), (A - Math.min(s.params.slidesPerGroupSkip, A)) % s.params.slidesPerGroup == 0 && d.push(b), p.push(b), (b = b + z + m)), (s.virtualSize += z + m), (S = z), (A += 1)); } } if ( ((s.virtualSize = Math.max(s.virtualSize, a) + w), f && c && (t.effect === "slide" || t.effect === "coverflow") && (i.style.width = `${s.virtualSize + m}px`), t.setWrapperSize && (i.style[s.getDirectionLabel("width")] = `${s.virtualSize + m}px`), O && s.grid.updateWrapperSize(z, d), !t.centeredSlides) ) { const P = []; for (let I = 0; I < d.length; I += 1) { let C = d[I]; (t.roundLengths && (C = Math.floor(C)), d[I] <= s.virtualSize - a && P.push(C)); } ((d = P), Math.floor(s.virtualSize - a) - Math.floor(d[d.length - 1]) > 1 && d.push(s.virtualSize - a)); } if (n && t.loop) { const P = h[0] + m; if (t.slidesPerGroup > 1) { const I = Math.ceil( (s.virtual.slidesBefore + s.virtual.slidesAfter) / t.slidesPerGroup, ), C = P * t.slidesPerGroup; for (let E = 0; E < I; E += 1) d.push(d[d.length - 1] + C); } for ( let I = 0; I < s.virtual.slidesBefore + s.virtual.slidesAfter; I += 1 ) (t.slidesPerGroup === 1 && d.push(d[d.length - 1] + P), p.push(p[p.length - 1] + P), (s.virtualSize += P)); } if ((d.length === 0 && (d = [0]), m !== 0)) { const P = s.isHorizontal() && f ? "marginLeft" : s.getDirectionLabel("marginRight"); o.filter((I, C) => !t.cssMode || t.loop ? !0 : C !== o.length - 1, ).forEach((I) => { I.style[P] = `${m}px`; }); } if (t.centeredSlides && t.centeredSlidesBounds) { let P = 0; (h.forEach((C) => { P += C + (m || 0); }), (P -= m)); const I = P > a ? P - a : 0; d = d.map((C) => (C <= 0 ? -g : C > I ? I + w : C)); } if (t.centerInsufficientSlides) { let P = 0; (h.forEach((C) => { P += C + (m || 0); }), (P -= m)); const I = (t.slidesOffsetBefore || 0) + (t.slidesOffsetAfter || 0); if (P + I < a) { const C = (a - P - I) / 2; (d.forEach((E, x) => { d[x] = E - C; }), p.forEach((E, x) => { p[x] = E + C; })); } } if ( (Object.assign(s, { slides: o, snapGrid: d, slidesGrid: p, slidesSizesGrid: h, }), t.centeredSlides && t.cssMode && !t.centeredSlidesBounds) ) { (pe(i, "--swiper-centered-offset-before", `${-d[0]}px`), pe( i, "--swiper-centered-offset-after", `${s.size / 2 - h[h.length - 1] / 2}px`, )); const P = -s.snapGrid[0], I = -s.slidesGrid[0]; ((s.snapGrid = s.snapGrid.map((C) => C + P)), (s.slidesGrid = s.slidesGrid.map((C) => C + I))); } if ( (l !== u && s.emit("slidesLengthChange"), d.length !== y && (s.params.watchOverflow && s.checkOverflow(), s.emit("snapGridLengthChange")), p.length !== v && s.emit("slidesGridLengthChange"), t.watchSlidesProgress && s.updateSlidesOffset(), s.emit("slidesUpdated"), !n && !t.cssMode && (t.effect === "slide" || t.effect === "fade")) ) { const P = `${t.containerModifierClass}backface-hidden`, I = s.el.classList.contains(P); l <= t.maxBackfaceHiddenSlides ? I || s.el.classList.add(P) : I && s.el.classList.remove(P); } } function Tt(s) { const e = this, t = [], i = e.virtual && e.params.virtual.enabled; let r = 0, a; typeof s == "number" ? e.setTransition(s) : s === !0 && e.setTransition(e.params.speed); const f = (c) => (i ? e.slides[e.getSlideIndexByData(c)] : e.slides[c]); if (e.params.slidesPerView !== "auto" && e.params.slidesPerView > 1) if (e.params.centeredSlides) (e.visibleSlides || []).forEach((c) => { t.push(c); }); else for (a = 0; a < Math.ceil(e.params.slidesPerView); a += 1) { const c = e.activeIndex + a; if (c > e.slides.length && !i) break; t.push(f(c)); } else t.push(f(e.activeIndex)); for (a = 0; a < t.length; a += 1) if (typeof t[a] != "undefined") { const c = t[a].offsetHeight; r = c > r ? c : r; } (r || r === 0) && (e.wrapperEl.style.height = `${r}px`); } function Mt() { const s = this, e = s.slides, t = s.isElement ? s.isHorizontal() ? s.wrapperEl.offsetLeft : s.wrapperEl.offsetTop : 0; for (let i = 0; i < e.length; i += 1) e[i].swiperSlideOffset = (s.isHorizontal() ? e[i].offsetLeft : e[i].offsetTop) - t - s.cssOverflowAdjustment(); } const je = (s, e, t) => { e && !s.classList.contains(t) ? s.classList.add(t) : !e && s.classList.contains(t) && s.classList.remove(t); }; function Ct(s) { s === void 0 && (s = (this && this.translate) || 0); const e = this, t = e.params, { slides: i, rtlTranslate: r, snapGrid: a } = e; if (i.length === 0) return; typeof i[0].swiperSlideOffset == "undefined" && e.updateSlidesOffset(); let f = -s; (r && (f = s), (e.visibleSlidesIndexes = []), (e.visibleSlides = [])); let c = t.spaceBetween; typeof c == "string" && c.indexOf("%") >= 0 ? (c = (parseFloat(c.replace("%", "")) / 100) * e.size) : typeof c == "string" && (c = parseFloat(c)); for (let n = 0; n < i.length; n += 1) { const u = i[n]; let o = u.swiperSlideOffset; t.cssMode && t.centeredSlides && (o -= i[0].swiperSlideOffset); const l = (f + (t.centeredSlides ? e.minTranslate() : 0) - o) / (u.swiperSlideSize + c), d = (f - a[0] + (t.centeredSlides ? e.minTranslate() : 0) - o) / (u.swiperSlideSize + c), p = -(f - o), h = p + e.slidesSizesGrid[n], g = p >= 0 && p <= e.size - e.slidesSizesGrid[n], w = (p >= 0 && p < e.size - 1) || (h > 1 && h <= e.size) || (p <= 0 && h >= e.size); (w && (e.visibleSlides.push(u), e.visibleSlidesIndexes.push(n)), je(u, w, t.slideVisibleClass), je(u, g, t.slideFullyVisibleClass), (u.progress = r ? -l : l), (u.originalProgress = r ? -d : d)); } } function Pt(s) { const e = this; if (typeof s == "undefined") { const o = e.rtlTranslate ? -1 : 1; s = (e && e.translate && e.translate * o) || 0; } const t = e.params, i = e.maxTranslate() - e.minTranslate(); let { progress: r, isBeginning: a, isEnd: f, progressLoop: c } = e; const n = a, u = f; if (i === 0) ((r = 0), (a = !0), (f = !0)); else { r = (s - e.minTranslate()) / i; const o = Math.abs(s - e.minTranslate()) < 1, l = Math.abs(s - e.maxTranslate()) < 1; ((a = o || r <= 0), (f = l || r >= 1), o && (r = 0), l && (r = 1)); } if (t.loop) { const o = e.getSlideIndexByData(0), l = e.getSlideIndexByData(e.slides.length - 1), d = e.slidesGrid[o], p = e.slidesGrid[l], h = e.slidesGrid[e.slidesGrid.length - 1], g = Math.abs(s); (g >= d ? (c = (g - d) / h) : (c = (g + h - p) / h), c > 1 && (c -= 1)); } (Object.assign(e, { progress: r, progressLoop: c, isBeginning: a, isEnd: f, }), (t.watchSlidesProgress || (t.centeredSlides && t.autoHeight)) && e.updateSlidesProgress(s), a && !n && e.emit("reachBeginning toEdge"), f && !u && e.emit("reachEnd toEdge"), ((n && !a) || (u && !f)) && e.emit("fromEdge"), e.emit("progress", r)); } const Oe = (s, e, t) => { e && !s.classList.contains(t) ? s.classList.add(t) : !e && s.classList.contains(t) && s.classList.remove(t); }; function Lt() { const s = this, { slides: e, params: t, slidesEl: i, activeIndex: r } = s, a = s.virtual && t.virtual.enabled, f = s.grid && t.grid && t.grid.rows > 1, c = (l) => W(i, `.${t.slideClass}${l}, swiper-slide${l}`)[0]; let n, u, o; if (a) if (t.loop) { let l = r - s.virtual.slidesBefore; (l < 0 && (l = s.virtual.slides.length + l), l >= s.virtual.slides.length && (l -= s.virtual.slides.length), (n = c(`[data-swiper-slide-index="${l}"]`))); } else n = c(`[data-swiper-slide-index="${r}"]`); else f ? ((n = e.filter((l) => l.column === r)[0]), (o = e.filter((l) => l.column === r + 1)[0]), (u = e.filter((l) => l.column === r - 1)[0])) : (n = e[r]); (n && (f || ((o = mt(n, `.${t.slideClass}, swiper-slide`)[0]), t.loop && !o && (o = e[0]), (u = pt(n, `.${t.slideClass}, swiper-slide`)[0]), t.loop && !u === 0 && (u = e[e.length - 1]))), e.forEach((l) => { (Oe(l, l === n, t.slideActiveClass), Oe(l, l === o, t.slideNextClass), Oe(l, l === u, t.slidePrevClass)); }), s.emitSlidesClasses()); } const Ee = (s, e) => { if (!s || s.destroyed || !s.params) return; const t = () => s.isElement ? "swiper-slide" : `.${s.params.slideClass}`, i = e.closest(t()); if (i) { let r = i.querySelector(`.${s.params.lazyPreloaderClass}`); (!r && s.isElement && (i.shadowRoot ? (r = i.shadowRoot.querySelector( `.${s.params.lazyPreloaderClass}`, )) : requestAnimationFrame(() => { i.shadowRoot && ((r = i.shadowRoot.querySelector( `.${s.params.lazyPreloaderClass}`, )), r && r.remove()); })), r && r.remove()); } }, $e = (s, e) => { if (!s.slides[e]) return; const t = s.slides[e].querySelector('[loading="lazy"]'); t && t.removeAttribute("loading"); }, ke = (s) => { if (!s || s.destroyed || !s.params) return; let e = s.params.lazyPreloadPrevNext; const t = s.slides.length; if (!t || !e || e < 0) return; e = Math.min(e, t); const i = s.params.slidesPerView === "auto" ? s.slidesPerViewDynamic() : Math.ceil(s.params.slidesPerView), r = s.activeIndex; if (s.params.grid && s.params.grid.rows > 1) { const f = r, c = [f - e]; (c.push(...Array.from({ length: e }).map((n, u) => f + i + u)), s.slides.forEach((n, u) => { c.includes(n.column) && $e(s, u); })); return; } const a = r + i - 1; if (s.params.rewind || s.params.loop) for (let f = r - e; f <= a + e; f += 1) { const c = ((f % t) + t) % t; (c < r || c > a) && $e(s, c); } else for (let f = Math.max(r - e, 0); f <= Math.min(a + e, t - 1); f += 1) f !== r && (f > a || f < r) && $e(s, f); }; function It(s) { const { slidesGrid: e, params: t } = s, i = s.rtlTranslate ? s.translate : -s.translate; let r; for (let a = 0; a < e.length; a += 1) typeof e[a + 1] != "undefined" ? i >= e[a] && i < e[a + 1] - (e[a + 1] - e[a]) / 2 ? (r = a) : i >= e[a] && i < e[a + 1] && (r = a + 1) : i >= e[a] && (r = a); return ( t.normalizeSlideIndex && (r < 0 || typeof r == "undefined") && (r = 0), r ); } function At(s) { const e = this, t = e.rtlTranslate ? e.translate : -e.translate, { snapGrid: i, params: r, activeIndex: a, realIndex: f, snapIndex: c, } = e; let n = s, u; const o = (p) => { let h = p - e.virtual.slidesBefore; return ( h < 0 && (h = e.virtual.slides.length + h), h >= e.virtual.slides.length && (h -= e.virtual.slides.length), h ); }; if ((typeof n == "undefined" && (n = It(e)), i.indexOf(t) >= 0)) u = i.indexOf(t); else { const p = Math.min(r.slidesPerGroupSkip, n); u = p + Math.floor((n - p) / r.slidesPerGroup); } if ((u >= i.length && (u = i.length - 1), n === a && !e.params.loop)) { u !== c && ((e.snapIndex = u), e.emit("snapIndexChange")); return; } if (n === a && e.params.loop && e.virtual && e.params.virtual.enabled) { e.realIndex = o(n); return; } const l = e.grid && r.grid && r.grid.rows > 1; let d; if (e.virtual && r.virtual.enabled && r.loop) d = o(n); else if (l) { const p = e.slides.filter((g) => g.column === n)[0]; let h = parseInt(p.getAttribute("data-swiper-slide-index"), 10); (Number.isNaN(h) && (h = Math.max(e.slides.indexOf(p), 0)), (d = Math.floor(h / r.grid.rows))); } else if (e.slides[n]) { const p = e.slides[n].getAttribute("data-swiper-slide-index"); p ? (d = parseInt(p, 10)) : (d = n); } else d = n; (Object.assign(e, { previousSnapIndex: c, snapIndex: u, previousRealIndex: f, realIndex: d, previousIndex: a, activeIndex: n, }), e.initialized && ke(e), e.emit("activeIndexChange"), e.emit("snapIndexChange"), (e.initialized || e.params.runCallbacksOnInit) && (f !== d && e.emit("realIndexChange"), e.emit("slideChange"))); } function zt(s, e) { const t = this, i = t.params; let r = s.closest(`.${i.slideClass}, swiper-slide`); !r && t.isElement && e && e.length > 1 && e.includes(s) && [...e.slice(e.indexOf(s) + 1, e.length)].forEach((c) => { !r && c.matches && c.matches(`.${i.slideClass}, swiper-slide`) && (r = c); }); let a = !1, f; if (r) { for (let c = 0; c < t.slides.length; c += 1) if (t.slides[c] === r) { ((a = !0), (f = c)); break; } } if (r && a) ((t.clickedSlide = r), t.virtual && t.params.virtual.enabled ? (t.clickedIndex = parseInt( r.getAttribute("data-swiper-slide-index"), 10, )) : (t.clickedIndex = f)); else { ((t.clickedSlide = void 0), (t.clickedIndex = void 0)); return; } i.slideToClickedSlide && t.clickedIndex !== void 0 && t.clickedIndex !== t.activeIndex && t.slideToClickedSlide(); } var Dt = { updateSize: Et, updateSlides: xt, updateAutoHeight: Tt, updateSlidesOffset: Mt, updateSlidesProgress: Ct, updateProgress: Pt, updateSlidesClasses: Lt, updateActiveIndex: At, updateClickedSlide: zt, }; function Ot(s) { s === void 0 && (s = this.isHorizontal() ? "x" : "y"); const e = this, { params: t, rtlTranslate: i, translate: r, wrapperEl: a } = e; if (t.virtualTranslate) return i ? -r : r; if (t.cssMode) return r; let f = Le(a, s); return ((f += e.cssOverflowAdjustment()), i && (f = -f), f || 0); } function $t(s, e) { const t = this, { rtlTranslate: i, params: r, wrapperEl: a, progress: f } = t; let c = 0, n = 0; const u = 0; (t.isHorizontal() ? (c = i ? -s : s) : (n = s), r.roundLengths && ((c = Math.floor(c)), (n = Math.floor(n))), (t.previousTranslate = t.translate), (t.translate = t.isHorizontal() ? c : n), r.cssMode ? (a[t.isHorizontal() ? "scrollLeft" : "scrollTop"] = t.isHorizontal() ? -c : -n) : r.virtualTranslate || (t.isHorizontal() ? (c -= t.cssOverflowAdjustment()) : (n -= t.cssOverflowAdjustment()), (a.style.transform = `translate3d(${c}px, ${n}px, ${u}px)`))); let o; const l = t.maxTranslate() - t.minTranslate(); (l === 0 ? (o = 0) : (o = (s - t.minTranslate()) / l), o !== f && t.updateProgress(s), t.emit("setTranslate", t.translate, e)); } function kt() { return -this.snapGrid[0]; } function Vt() { return -this.snapGrid[this.snapGrid.length - 1]; } function Gt(s, e, t, i, r) { (s === void 0 && (s = 0), e === void 0 && (e = this.params.speed), t === void 0 && (t = !0), i === void 0 && (i = !0)); const a = this, { params: f, wrapperEl: c } = a; if (a.animating && f.preventInteractionOnTransition) return !1; const n = a.minTranslate(), u = a.maxTranslate(); let o; if ( (i && s > n ? (o = n) : i && s < u ? (o = u) : (o = s), a.updateProgress(o), f.cssMode) ) { const l = a.isHorizontal(); if (e === 0) c[l ? "scrollLeft" : "scrollTop"] = -o; else { if (!a.support.smoothScroll) return ( qe({ swiper: a, targetPosition: -o, side: l ? "left" : "top" }), !0 ); c.scrollTo({ [l ? "left" : "top"]: -o, behavior: "smooth" }); } return !0; } return ( e === 0 ? (a.setTransition(0), a.setTranslate(o), t && (a.emit("beforeTransitionStart", e, r), a.emit("transitionEnd"))) : (a.setTransition(e), a.setTranslate(o), t && (a.emit("beforeTransitionStart", e, r), a.emit("transitionStart")), a.animating || ((a.animating = !0), a.onTranslateToWrapperTransitionEnd || (a.onTranslateToWrapperTransitionEnd = function (d) { !a || a.destroyed || (d.target === this && (a.wrapperEl.removeEventListener( "transitionend", a.onTranslateToWrapperTransitionEnd, ), (a.onTranslateToWrapperTransitionEnd = null), delete a.onTranslateToWrapperTransitionEnd, (a.animating = !1), t && a.emit("transitionEnd"))); }), a.wrapperEl.addEventListener( "transitionend", a.onTranslateToWrapperTransitionEnd, ))), !0 ); } var Bt = { getTranslate: Ot, setTranslate: $t, minTranslate: kt, maxTranslate: Vt, translateTo: Gt, }; function Ht(s, e) { const t = this; (t.params.cssMode || ((t.wrapperEl.style.transitionDuration = `${s}ms`), (t.wrapperEl.style.transitionDelay = s === 0 ? "0ms" : "")), t.emit("setTransition", s, e)); } function Ue(s) { let { swiper: e, runCallbacks: t, direction: i, step: r } = s; const { activeIndex: a, previousIndex: f } = e; let c = i; if ( (c || (a > f ? (c = "next") : a < f ? (c = "prev") : (c = "reset")), e.emit(`transition${r}`), t && a !== f) ) { if (c === "reset") { e.emit(`slideResetTransition${r}`); return; } (e.emit(`slideChangeTransition${r}`), c === "next" ? e.emit(`slideNextTransition${r}`) : e.emit(`slidePrevTransition${r}`)); } } function Ft(s, e) { s === void 0 && (s = !0); const t = this, { params: i } = t; i.cssMode || (i.autoHeight && t.updateAutoHeight(), Ue({ swiper: t, runCallbacks: s, direction: e, step: "Start" })); } function Nt(s, e) { s === void 0 && (s = !0); const t = this, { params: i } = t; ((t.animating = !1), !i.cssMode && (t.setTransition(0), Ue({ swiper: t, runCallbacks: s, direction: e, step: "End" }))); } var Rt = { setTransition: Ht, transitionStart: Ft, transitionEnd: Nt }; function Yt(s, e, t, i, r) { (s === void 0 && (s = 0), t === void 0 && (t = !0), typeof s == "string" && (s = parseInt(s, 10))); const a = this; let f = s; f < 0 && (f = 0); const { params: c, snapGrid: n, slidesGrid: u, previousIndex: o, activeIndex: l, rtlTranslate: d, wrapperEl: p, enabled: h, } = a; if ( (!h && !i && !r) || a.destroyed || (a.animating && c.preventInteractionOnTransition) ) return !1; typeof e == "undefined" && (e = a.params.speed); const g = Math.min(a.params.slidesPerGroupSkip, f); let w = g + Math.floor((f - g) / a.params.slidesPerGroup); w >= n.length && (w = n.length - 1); const y = -n[w]; if (c.normalizeSlideIndex) for (let S = 0; S < u.length; S += 1) { const A = -Math.floor(y * 100), O = Math.floor(u[S] * 100), z = Math.floor(u[S + 1] * 100); typeof u[S + 1] != "undefined" ? A >= O && A < z - (z - O) / 2 ? (f = S) : A >= O && A < z && (f = S + 1) : A >= O && (f = S); } if ( a.initialized && f !== l && ((!a.allowSlideNext && (d ? y > a.translate && y > a.minTranslate() : y < a.translate && y < a.minTranslate())) || (!a.allowSlidePrev && y > a.translate && y > a.maxTranslate() && (l || 0) !== f)) ) return !1; (f !== (o || 0) && t && a.emit("beforeSlideChangeStart"), a.updateProgress(y)); let v; f > l ? (v = "next") : f < l ? (v = "prev") : (v = "reset"); const m = a.virtual && a.params.virtual.enabled; if (!(m && r) && ((d && -y === a.translate) || (!d && y === a.translate))) return ( a.updateActiveIndex(f), c.autoHeight && a.updateAutoHeight(), a.updateSlidesClasses(), c.effect !== "slide" && a.setTranslate(y), v !== "reset" && (a.transitionStart(t, v), a.transitionEnd(t, v)), !1 ); if (c.cssMode) { const S = a.isHorizontal(), A = d ? y : -y; if (e === 0) (m && ((a.wrapperEl.style.scrollSnapType = "none"), (a._immediateVirtual = !0)), m && !a._cssModeVirtualInitialSet && a.params.initialSlide > 0 ? ((a._cssModeVirtualInitialSet = !0), requestAnimationFrame(() => { p[S ? "scrollLeft" : "scrollTop"] = A; })) : (p[S ? "scrollLeft" : "scrollTop"] = A), m && requestAnimationFrame(() => { ((a.wrapperEl.style.scrollSnapType = ""), (a._immediateVirtual = !1)); })); else { if (!a.support.smoothScroll) return ( qe({ swiper: a, targetPosition: A, side: S ? "left" : "top" }), !0 ); p.scrollTo({ [S ? "left" : "top"]: A, behavior: "smooth" }); } return !0; } return ( a.setTransition(e), a.setTranslate(y), a.updateActiveIndex(f), a.updateSlidesClasses(), a.emit("beforeTransitionStart", e, i), a.transitionStart(t, v), e === 0 ? a.transitionEnd(t, v) : a.animating || ((a.animating = !0), a.onSlideToWrapperTransitionEnd || (a.onSlideToWrapperTransitionEnd = function (A) { !a || a.destroyed || (A.target === this && (a.wrapperEl.removeEventListener( "transitionend", a.onSlideToWrapperTransitionEnd, ), (a.onSlideToWrapperTransitionEnd = null), delete a.onSlideToWrapperTransitionEnd, a.transitionEnd(t, v))); }), a.wrapperEl.addEventListener( "transitionend", a.onSlideToWrapperTransitionEnd, )), !0 ); } function Xt(s, e, t, i) { (s === void 0 && (s = 0), t === void 0 && (t = !0), typeof s == "string" && (s = parseInt(s, 10))); const r = this; if (r.destroyed) return; typeof e == "undefined" && (e = r.params.speed); const a = r.grid && r.params.grid && r.params.grid.rows > 1; let f = s; if (r.params.loop) if (r.virtual && r.params.virtual.enabled) f = f + r.virtual.slidesBefore; else { let c; if (a) { const d = f * r.params.grid.rows; c = r.slides.filter( (p) => p.getAttribute("data-swiper-slide-index") * 1 === d, )[0].column; } else c = r.getSlideIndexByData(f); const n = a ? Math.ceil(r.slides.length / r.params.grid.rows) : r.slides.length, { centeredSlides: u } = r.params; let o = r.params.slidesPerView; o === "auto" ? (o = r.slidesPerViewDynamic()) : ((o = Math.ceil(parseFloat(r.params.slidesPerView, 10))), u && o % 2 == 0 && (o = o + 1)); let l = n - c < o; if ( (u && (l = l || c < Math.ceil(o / 2)), i && u && r.params.slidesPerView !== "auto" && !a && (l = !1), l) ) { const d = u ? c < r.activeIndex ? "prev" : "next" : c - r.activeIndex - 1 < r.params.slidesPerView ? "next" : "prev"; r.loopFix({ direction: d, slideTo: !0, activeSlideIndex: d === "next" ? c + 1 : c - n + 1, slideRealIndex: d === "next" ? r.realIndex : void 0, }); } if (a) { const d = f * r.params.grid.rows; f = r.slides.filter( (p) => p.getAttribute("data-swiper-slide-index") * 1 === d, )[0].column; } else f = r.getSlideIndexByData(f); } return ( requestAnimationFrame(() => { r.slideTo(f, e, t, i); }), r ); } function qt(s, e, t) { e === void 0 && (e = !0); const i = this, { enabled: r, params: a, animating: f } = i; if (!r || i.destroyed) return i; typeof s == "undefined" && (s = i.params.speed); let c = a.slidesPerGroup; a.slidesPerView === "auto" && a.slidesPerGroup === 1 && a.slidesPerGroupAuto && (c = Math.max(i.slidesPerViewDynamic("current", !0), 1)); const n = i.activeIndex < a.slidesPerGroupSkip ? 1 : c, u = i.virtual && a.virtual.enabled; if (a.loop) { if (f && !u && a.loopPreventsSliding) return !1; if ( (i.loopFix({ direction: "next" }), (i._clientLeft = i.wrapperEl.clientLeft), i.activeIndex === i.slides.length - 1 && a.cssMode) ) return ( requestAnimationFrame(() => { i.slideTo(i.activeIndex + n, s, e, t); }), !0 ); } return a.rewind && i.isEnd ? i.slideTo(0, s, e, t) : i.slideTo(i.activeIndex + n, s, e, t); } function Wt(s, e, t) { e === void 0 && (e = !0); const i = this, { params: r, snapGrid: a, slidesGrid: f, rtlTranslate: c, enabled: n, animating: u, } = i; if (!n || i.destroyed) return i; typeof s == "undefined" && (s = i.params.speed); const o = i.virtual && r.virtual.enabled; if (r.loop) { if (u && !o && r.loopPreventsSliding) return !1; (i.loopFix({ direction: "prev" }), (i._clientLeft = i.wrapperEl.clientLeft)); } const l = c ? i.translate : -i.translate; function d(y) { return y < 0 ? -Math.floor(Math.abs(y)) : Math.floor(y); } const p = d(l), h = a.map((y) => d(y)); let g = a[h.indexOf(p) - 1]; if (typeof g == "undefined" && r.cssMode) { let y; (a.forEach((v, m) => { p >= v && (y = m); }), typeof y != "undefined" && (g = a[y > 0 ? y - 1 : y])); } let w = 0; if ( (typeof g != "undefined" && ((w = f.indexOf(g)), w < 0 && (w = i.activeIndex - 1), r.slidesPerView === "auto" && r.slidesPerGroup === 1 && r.slidesPerGroupAuto && ((w = w - i.slidesPerViewDynamic("previous", !0) + 1), (w = Math.max(w, 0)))), r.rewind && i.isBeginning) ) { const y = i.params.virtual && i.params.virtual.enabled && i.virtual ? i.virtual.slides.length - 1 : i.slides.length - 1; return i.slideTo(y, s, e, t); } else if (r.loop && i.activeIndex === 0 && r.cssMode) return ( requestAnimationFrame(() => { i.slideTo(w, s, e, t); }), !0 ); return i.slideTo(w, s, e, t); } function _t(s, e, t) { e === void 0 && (e = !0); const i = this; if (!i.destroyed) return ( typeof s == "undefined" && (s = i.params.speed), i.slideTo(i.activeIndex, s, e, t) ); } function jt(s, e, t, i) { (e === void 0 && (e = !0), i === void 0 && (i = 0.5)); const r = this; if (r.destroyed) return; typeof s == "undefined" && (s = r.params.speed); let a = r.activeIndex; const f = Math.min(r.params.slidesPerGroupSkip, a), c = f + Math.floor((a - f) / r.params.slidesPerGroup), n = r.rtlTranslate ? r.translate : -r.translate; if (n >= r.snapGrid[c]) { const u = r.snapGrid[c], o = r.snapGrid[c + 1]; n - u > (o - u) * i && (a += r.params.slidesPerGroup); } else { const u = r.snapGrid[c - 1], o = r.snapGrid[c]; n - u <= (o - u) * i && (a -= r.params.slidesPerGroup); } return ( (a = Math.max(a, 0)), (a = Math.min(a, r.slidesGrid.length - 1)), r.slideTo(a, s, e, t) ); } function Ut() { const s = this; if (s.destroyed) return; const { params: e, slidesEl: t } = s, i = e.slidesPerView === "auto" ? s.slidesPerViewDynamic() : e.slidesPerView; let r = s.clickedIndex, a; const f = s.isElement ? "swiper-slide" : `.${e.slideClass}`; if (e.loop) { if (s.animating) return; ((a = parseInt( s.clickedSlide.getAttribute("data-swiper-slide-index"), 10, )), e.centeredSlides ? r < s.loopedSlides - i / 2 || r > s.slides.length - s.loopedSlides + i / 2 ? (s.loopFix(), (r = s.getSlideIndex( W(t, `${f}[data-swiper-slide-index="${a}"]`)[0], )), ae(() => { s.slideTo(r); })) : s.slideTo(r) : r > s.slides.length - i ? (s.loopFix(), (r = s.getSlideIndex( W(t, `${f}[data-swiper-slide-index="${a}"]`)[0], )), ae(() => { s.slideTo(r); })) : s.slideTo(r)); } else s.slideTo(r); } var Kt = { slideTo: Yt, slideToLoop: Xt, slideNext: qt, slidePrev: Wt, slideReset: _t, slideToClosest: jt, slideToClickedSlide: Ut, }; function Zt(s) { const e = this, { params: t, slidesEl: i } = e; if (!t.loop || (e.virtual && e.params.virtual.enabled)) return; const r = () => { W(i, `.${t.slideClass}, swiper-slide`).forEach((l, d) => { l.setAttribute("data-swiper-slide-index", d); }); }, a = e.grid && t.grid && t.grid.rows > 1, f = t.slidesPerGroup * (a ? t.grid.rows : 1), c = e.slides.length % f != 0, n = a && e.slides.length % t.grid.rows != 0, u = (o) => { for (let l = 0; l < o; l += 1) { const d = e.isElement ? J("swiper-slide", [t.slideBlankClass]) : J("div", [t.slideClass, t.slideBlankClass]); e.slidesEl.append(d); } }; if (c) { if (t.loopAddBlankSlides) { const o = f - (e.slides.length % f); (u(o), e.recalcSlides(), e.updateSlides()); } else ye( "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 (n) { if (t.loopAddBlankSlides) { const o = t.grid.rows - (e.slides.length % t.grid.rows); (u(o), e.recalcSlides(), e.updateSlides()); } else ye( "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: s, direction: t.centeredSlides ? void 0 : "next", }); } function Qt(s) { let { slideRealIndex: e, slideTo: t = !0, direction: i, setTranslate: r, activeSlideIndex: a, byController: f, byMousewheel: c, } = s === void 0 ? {} : s; const n = this; if (!n.params.loop) return; n.emit("beforeLoopFix"); const { slides: u, allowSlidePrev: o, allowSlideNext: l, slidesEl: d, params: p, } = n, { centeredSlides: h } = p; if ( ((n.allowSlidePrev = !0), (n.allowSlideNext = !0), n.virtual && p.virtual.enabled) ) { (t && (!p.centeredSlides && n.snapIndex === 0 ? n.slideTo(n.virtual.slides.length, 0, !1, !0) : p.centeredSlides && n.snapIndex < p.slidesPerView ? n.slideTo(n.virtual.slides.length + n.snapIndex, 0, !1, !0) : n.snapIndex === n.snapGrid.length - 1 && n.slideTo(n.virtual.slidesBefore, 0, !1, !0)), (n.allowSlidePrev = o), (n.allowSlideNext = l), n.emit("loopFix")); return; } let g = p.slidesPerView; g === "auto" ? (g = n.slidesPerViewDynamic()) : ((g = Math.ceil(parseFloat(p.slidesPerView, 10))), h && g % 2 == 0 && (g = g + 1)); const w = p.slidesPerGroupAuto ? g : p.slidesPerGroup; let y = w; (y % w != 0 && (y += w - (y % w)), (y += p.loopAdditionalSlides), (n.loopedSlides = y)); const v = n.grid && p.grid && p.grid.rows > 1; u.length < g + y ? ye( "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", ) : v && p.grid.fill === "row" && ye( "Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`", ); const m = [], b = []; let S = n.activeIndex; typeof a == "undefined" ? (a = n.getSlideIndex( u.filter((E) => E.classList.contains(p.slideActiveClass))[0], )) : (S = a); const A = i === "next" || !i, O = i === "prev" || !i; let z = 0, T = 0; const P = v ? Math.ceil(u.length / p.grid.rows) : u.length, C = (v ? u[a].column : a) + (h && typeof r == "undefined" ? -g / 2 + 0.5 : 0); if (C < y) { z = Math.max(y - C, w); for (let E = 0; E < y - C; E += 1) { const x = E - Math.floor(E / P) * P; if (v) { const D = P - x - 1; for (let G = u.length - 1; G >= 0; G -= 1) u[G].column === D && m.push(G); } else m.push(P - x - 1); } } else if (C + g > P - y) { T = Math.max(C - (P - y * 2), w); for (let E = 0; E < T; E += 1) { const x = E - Math.floor(E / P) * P; v ? u.forEach((D, G) => { D.column === x && b.push(G); }) : b.push(x); } } if ( ((n.__preventObserver__ = !0), requestAnimationFrame(() => { n.__preventObserver__ = !1; }), O && m.forEach((E) => { ((u[E].swiperLoopMoveDOM = !0), d.prepend(u[E]), (u[E].swiperLoopMoveDOM = !1)); }), A && b.forEach((E) => { ((u[E].swiperLoopMoveDOM = !0), d.append(u[E]), (u[E].swiperLoopMoveDOM = !1)); }), n.recalcSlides(), p.slidesPerView === "auto" ? n.updateSlides() : v && ((m.length > 0 && O) || (b.length > 0 && A)) && n.slides.forEach((E, x) => { n.grid.updateSlide(x, E, n.slides); }), p.watchSlidesProgress && n.updateSlidesOffset(), t) ) { if (m.length > 0 && O) { if (typeof e == "undefined") { const E = n.slidesGrid[S], D = n.slidesGrid[S + z] - E; c ? n.setTranslate(n.translate - D) : (n.slideTo(S + Math.ceil(z), 0, !1, !0), r && ((n.touchEventsData.startTranslate = n.touchEventsData.startTranslate - D), (n.touchEventsData.currentTranslate = n.touchEventsData.currentTranslate - D))); } else if (r) { const E = v ? m.length / p.grid.rows : m.length; (n.slideTo(n.activeIndex + E, 0, !1, !0), (n.touchEventsData.currentTranslate = n.translate)); } } else if (b.length > 0 && A) if (typeof e == "undefined") { const E = n.slidesGrid[S], D = n.slidesGrid[S - T] - E; c ? n.setTranslate(n.translate - D) : (n.slideTo(S - T, 0, !1, !0), r && ((n.touchEventsData.startTranslate = n.touchEventsData.startTranslate - D), (n.touchEventsData.currentTranslate = n.touchEventsData.currentTranslate - D))); } else { const E = v ? b.length / p.grid.rows : b.length; n.slideTo(n.activeIndex - E, 0, !1, !0); } } if ( ((n.allowSlidePrev = o), (n.allowSlideNext = l), n.controller && n.controller.control && !f) ) { const E = { slideRealIndex: e, direction: i, setTranslate: r, activeSlideIndex: a, byController: !0, }; Array.isArray(n.controller.control) ? n.controller.control.forEach((x) => { !x.destroyed && x.params.loop && x.loopFix( Xe(Ye({}, E), { slideTo: x.params.slidesPerView === p.slidesPerView ? t : !1, }), ); }) : n.controller.control instanceof n.constructor && n.controller.control.params.loop && n.controller.control.loopFix( Xe(Ye({}, E), { slideTo: n.controller.control.params.slidesPerView === p.slidesPerView ? t : !1, }), ); } n.emit("loopFix"); } function Jt() { const s = this, { params: e, slidesEl: t } = s; if (!e.loop || (s.virtual && s.params.virtual.enabled)) return; s.recalcSlides(); const i = []; (s.slides.forEach((r) => { const a = typeof r.swiperSlideIndex == "undefined" ? r.getAttribute("data-swiper-slide-index") * 1 : r.swiperSlideIndex; i[a] = r; }), s.slides.forEach((r) => { r.removeAttribute("data-swiper-slide-index"); }), i.forEach((r) => { t.append(r); }), s.recalcSlides(), s.slideTo(s.realIndex, 0)); } var es = { loopCreate: Zt, loopFix: Qt, loopDestroy: Jt }; function ts(s) { 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 = s ? "grabbing" : "grab"), e.isElement && requestAnimationFrame(() => { e.__preventObserver__ = !1; })); } function ss() { const s = this; (s.params.watchOverflow && s.isLocked) || s.params.cssMode || (s.isElement && (s.__preventObserver__ = !0), (s[ s.params.touchEventsTarget === "container" ? "el" : "wrapperEl" ].style.cursor = ""), s.isElement && requestAnimationFrame(() => { s.__preventObserver__ = !1; })); } var is = { setGrabCursor: ts, unsetGrabCursor: ss }; function rs(s, e) { e === void 0 && (e = this); function t(i) { if (!i || i === q() || i === X()) return null; i.assignedSlot && (i = i.assignedSlot); const r = i.closest(s); return !r && !i.getRootNode ? null : r || t(i.getRootNode().host); } return t(e); } function Ke(s, e, t) { const i = X(), { params: r } = s, a = r.edgeSwipeDetection, f = r.edgeSwipeThreshold; return a && (t <= f || t >= i.innerWidth - f) ? a === "prevent" ? (e.preventDefault(), !0) : !1 : !0; } function as(s) { const e = this, t = q(); let i = s; i.originalEvent && (i = i.originalEvent); const r = e.touchEventsData; if (i.type === "pointerdown") { if (r.pointerId !== null && r.pointerId !== i.pointerId) return; r.pointerId = i.pointerId; } else i.type === "touchstart" && i.targetTouches.length === 1 && (r.touchId = i.targetTouches[0].identifier); if (i.type === "touchstart") { Ke(e, i, i.targetTouches[0].pageX); return; } const { params: a, touches: f, enabled: c } = e; if ( !c || (!a.simulateTouch && i.pointerType === "mouse") || (e.animating && a.preventInteractionOnTransition) ) return; !e.animating && a.cssMode && a.loop && e.loopFix(); let n = i.target; if ( (a.touchEventsTarget === "wrapper" && !ut(n, e.wrapperEl)) || ("which" in i && i.which === 3) || ("button" in i && i.button > 0) || (r.isTouched && r.isMoved) ) return; const u = !!a.noSwipingClass && a.noSwipingClass !== "", o = i.composedPath ? i.composedPath() : i.path; u && i.target && i.target.shadowRoot && o && (n = o[0]); const l = a.noSwipingSelector ? a.noSwipingSelector : `.${a.noSwipingClass}`, d = !!(i.target && i.target.shadowRoot); if (a.noSwiping && (d ? rs(l, n) : n.closest(l))) { e.allowClick = !0; return; } if (a.swipeHandler && !n.closest(a.swipeHandler)) return; ((f.currentX = i.pageX), (f.currentY = i.pageY)); const p = f.currentX, h = f.currentY; if (!Ke(e, i, p)) return; (Object.assign(r, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0, }), (f.startX = p), (f.startY = h), (r.touchStartTime = ee()), (e.allowClick = !0), e.updateSize(), (e.swipeDirection = void 0), a.threshold > 0 && (r.allowThresholdMove = !1)); let g = !0; (n.matches(r.focusableElements) && ((g = !1), n.nodeName === "SELECT" && (r.isTouched = !1)), t.activeElement && t.activeElement.matches(r.focusableElements) && t.activeElement !== n && t.activeElement.blur()); const w = g && e.allowTouchMove && a.touchStartPreventDefault; ((a.touchStartForcePreventDefault || w) && !n.isContentEditable && i.preventDefault(), a.freeMode && a.freeMode.enabled && e.freeMode && e.animating && !a.cssMode && e.freeMode.onTouchStart(), e.emit("touchStart", i)); } function ns(s) { const e = q(), t = this, i = t.touchEventsData, { params: r, touches: a, rtlTranslate: f, enabled: c } = t; if (!c || (!r.simulateTouch && s.pointerType === "mouse")) return; let n = s; if ( (n.originalEvent && (n = n.originalEvent), n.type === "pointermove" && (i.touchId !== null || n.pointerId !== i.pointerId)) ) return; let u; if (n.type === "touchmove") { if ( ((u = [...n.changedTouches].filter( (A) => A.identifier === i.touchId, )[0]), !u || u.identifier !== i.touchId) ) return; } else u = n; if (!i.isTouched) { i.startMoving && i.isScrolling && t.emit("touchMoveOpposite", n); return; } const o = u.pageX, l = u.pageY; if (n.preventedByNestedSwiper) { ((a.startX = o), (a.startY = l)); return; } if (!t.allowTouchMove) { (n.target.matches(i.focusableElements) || (t.allowClick = !1), i.isTouched && (Object.assign(a, { startX: o, startY: l, currentX: o, currentY: l }), (i.touchStartTime = ee()))); return; } if (r.touchReleaseOnEdges && !r.loop) { if (t.isVertical()) { if ( (l < a.startY && t.translate <= t.maxTranslate()) || (l > a.startY && t.translate >= t.minTranslate()) ) { ((i.isTouched = !1), (i.isMoved = !1)); return; } } else if ( (o < a.startX && t.translate <= t.maxTranslate()) || (o > a.startX && t.translate >= t.minTranslate()) ) return; } if ( e.activeElement && n.target === e.activeElement && n.target.matches(i.focusableElements) ) { ((i.isMoved = !0), (t.allowClick = !1)); return; } (i.allowTouchCallbacks && t.emit("touchMove", n), (a.previousX = a.currentX), (a.previousY = a.currentY), (a.currentX = o), (a.currentY = l)); const d = a.currentX - a.startX, p = a.currentY - a.startY; if (t.params.threshold && Math.sqrt(d ** 2 + p ** 2) < t.params.threshold) return; if (typeof i.isScrolling == "undefined") { let A; (t.isHorizontal() && a.currentY === a.startY) || (t.isVertical() && a.currentX === a.startX) ? (i.isScrolling = !1) : d * d + p * p >= 25 && ((A = (Math.atan2(Math.abs(p), Math.abs(d)) * 180) / Math.PI), (i.isScrolling = t.isHorizontal() ? A > r.touchAngle : 90 - A > r.touchAngle)); } if ( (i.isScrolling && t.emit("touchMoveOpposite", n), typeof i.startMoving == "undefined" && (a.currentX !== a.startX || a.currentY !== a.startY) && (i.startMoving = !0), i.isScrolling || (n.type === "touchmove" && i.preventTouchMoveFromPointerMove)) ) { i.isTouched = !1; return; } if (!i.startMoving) return; ((t.allowClick = !1), !r.cssMode && n.cancelable && n.preventDefault(), r.touchMoveStopPropagation && !r.nested && n.stopPropagation()); let h = t.isHorizontal() ? d : p, g = t.isHorizontal() ? a.currentX - a.previousX : a.currentY - a.previousY; (r.oneWayMovement && ((h = Math.abs(h) * (f ? 1 : -1)), (g = Math.abs(g) * (f ? 1 : -1))), (a.diff = h), (h *= r.touchRatio), f && ((h = -h), (g = -g))); const w = t.touchesDirection; ((t.swipeDirection = h > 0 ? "prev" : "next"), (t.touchesDirection = g > 0 ? "prev" : "next")); const y = t.params.loop && !r.cssMode, v = (t.touchesDirection === "next" && t.allowSlideNext) || (t.touchesDirection === "prev" && t.allowSlidePrev); if (!i.isMoved) { if ( (y && v && t.loopFix({ direction: t.swipeDirection }), (i.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); } ((i.allowMomentumBounce = !1), r.grabCursor && (t.allowSlideNext === !0 || t.allowSlidePrev === !0) && t.setGrabCursor(!0), t.emit("sliderFirstMove", n)); } let m; if ( (new Date().getTime(), i.isMoved && i.allowThresholdMove && w !== t.touchesDirection && y && v && Math.abs(h) >= 1) ) { (Object.assign(a, { startX: o, startY: l, currentX: o, currentY: l, startTranslate: i.currentTranslate, }), (i.loopSwapReset = !0), (i.startTranslate = i.currentTranslate)); return; } (t.emit("sliderMove", n), (i.isMoved = !0), (i.currentTranslate = h + i.startTranslate)); let b = !0, S = r.resistanceRatio; if ( (r.touchReleaseOnEdges && (S = 0), h > 0 ? (y && v && !m && i.allowThresholdMove && i.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, }), i.currentTranslate > t.minTranslate() && ((b = !1), r.resistance && (i.currentTranslate = t.minTranslate() - 1 + (-t.minTranslate() + i.startTranslate + h) ** S))) : h < 0 && (y && v && !m && i.allowThresholdMove && i.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))), }), i.currentTranslate < t.maxTranslate() && ((b = !1), r.resistance && (i.currentTranslate = t.maxTranslate() + 1 - (t.maxTranslate() - i.startTranslate - h) ** S))), b && (n.preventedByNestedSwiper = !0), !t.allowSlideNext && t.swipeDirection === "next" && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate), !t.allowSlidePrev && t.swipeDirection === "prev" && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate), !t.allowSlidePrev && !t.allowSlideNext && (i.currentTranslate = i.startTranslate), r.threshold > 0) ) if (Math.abs(h) > r.threshold || i.allowThresholdMove) { if (!i.allowThresholdMove) { ((i.allowThresholdMove = !0), (a.startX = a.currentX), (a.startY = a.currentY), (i.currentTranslate = i.startTranslate), (a.diff = t.isHorizontal() ? a.currentX - a.startX : a.currentY - a.startY)); return; } } else { i.currentTranslate = i.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(i.currentTranslate), t.setTranslate(i.currentTranslate)); } function ls(s) { const e = this, t = e.touchEventsData; let i = s; i.originalEvent && (i = i.originalEvent); let r; if (i.type === "touchend" || i.type === "touchcancel") { if ( ((r = [...i.changedTouches].filter( (S) => S.identifier === t.touchId, )[0]), !r || r.identifier !== t.touchId) ) return; } else { if (t.touchId !== null || i.pointerId !== t.pointerId) return; r = i; } if ( ["pointercancel", "pointerout", "pointerleave", "contextmenu"].includes( i.type, ) && !( ["pointercancel", "contextmenu"].includes(i.type) && (e.browser.isSafari || e.browser.isWebView) ) ) return; ((t.pointerId = null), (t.touchId = null)); const { params: f, touches: c, rtlTranslate: n, slidesGrid: u, enabled: o, } = e; if (!o || (!f.simulateTouch && i.pointerType === "mouse")) return; if ( (t.allowTouchCallbacks && e.emit("touchEnd", i), (t.allowTouchCallbacks = !1), !t.isTouched) ) { (t.isMoved && f.grabCursor && e.setGrabCursor(!1), (t.isMoved = !1), (t.startMoving = !1)); return; } f.grabCursor && t.isMoved && t.isTouched && (e.allowSlideNext === !0 || e.allowSlidePrev === !0) && e.setGrabCursor(!1); const l = ee(), d = l - t.touchStartTime; if (e.allowClick) { const S = i.path || (i.composedPath && i.composedPath()); (e.updateClickedSlide((S && S[0]) || i.target, S), e.emit("tap click", i), d < 300 && l - t.lastClickTime < 300 && e.emit("doubleTap doubleClick", i)); } if ( ((t.lastClickTime = ee()), ae(() => { e.destroyed || (e.allowClick = !0); }), !t.isTouched || !t.isMoved || !e.swipeDirection || (c.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 p; if ( (f.followFinger ? (p = n ? e.translate : -e.translate) : (p = -t.currentTranslate), f.cssMode) ) return; if (f.freeMode && f.freeMode.enabled) { e.freeMode.onTouchEnd({ currentPos: p }); return; } const h = p >= -e.maxTranslate() && !e.params.loop; let g = 0, w = e.slidesSizesGrid[0]; for ( let S = 0; S < u.length; S += S < f.slidesPerGroupSkip ? 1 : f.slidesPerGroup ) { const A = S < f.slidesPerGroupSkip - 1 ? 1 : f.slidesPerGroup; typeof u[S + A] != "undefined" ? (h || (p >= u[S] && p < u[S + A])) && ((g = S), (w = u[S + A] - u[S])) : (h || p >= u[S]) && ((g = S), (w = u[u.length - 1] - u[u.length - 2])); } let y = null, v = null; f.rewind && (e.isBeginning ? (v = f.virtual && f.virtual.enabled && e.virtual ? e.virtual.slides.length - 1 : e.slides.length - 1) : e.isEnd && (y = 0)); const m = (p - u[g]) / w, b = g < f.slidesPerGroupSkip - 1 ? 1 : f.slidesPerGroup; if (d > f.longSwipesMs) { if (!f.longSwipes) { e.slideTo(e.activeIndex); return; } (e.swipeDirection === "next" && (m >= f.longSwipesRatio ? e.slideTo(f.rewind && e.isEnd ? y : g + b) : e.slideTo(g)), e.swipeDirection === "prev" && (m > 1 - f.longSwipesRatio ? e.slideTo(g + b) : v !== null && m < 0 && Math.abs(m) > f.longSwipesRatio ? e.slideTo(v) : e.slideTo(g))); } else { if (!f.shortSwipes) { e.slideTo(e.activeIndex); return; } e.navigation && (i.target === e.navigation.nextEl || i.target === e.navigation.prevEl) ? i.target === e.navigation.nextEl ? e.slideTo(g + b) : e.slideTo(g) : (e.swipeDirection === "next" && e.slideTo(y !== null ? y : g + b), e.swipeDirection === "prev" && e.slideTo(v !== null ? v : g)); } } function Ze() { const s = this, { params: e, el: t } = s; if (t && t.offsetWidth === 0) return; e.breakpoints && s.setBreakpoint(); const { allowSlideNext: i, allowSlidePrev: r, snapGrid: a } = s, f = s.virtual && s.params.virtual.enabled; ((s.allowSlideNext = !0), (s.allowSlidePrev = !0), s.updateSize(), s.updateSlides(), s.updateSlidesClasses()); const c = f && e.loop; ((e.slidesPerView === "auto" || e.slidesPerView > 1) && s.isEnd && !s.isBeginning && !s.params.centeredSlides && !c ? s.slideTo(s.slides.length - 1, 0, !1, !0) : s.params.loop && !f ? s.slideToLoop(s.realIndex, 0, !1, !0) : s.slideTo(s.activeIndex, 0, !1, !0), s.autoplay && s.autoplay.running && s.autoplay.paused && (clearTimeout(s.autoplay.resizeTimeout), (s.autoplay.resizeTimeout = setTimeout(() => { s.autoplay && s.autoplay.running && s.autoplay.paused && s.autoplay.resume(); }, 500))), (s.allowSlidePrev = r), (s.allowSlideNext = i), s.params.watchOverflow && a !== s.snapGrid && s.checkOverflow()); } function os(s) { const e = this; !e.enabled || e.allowClick || (e.params.preventClicks && s.preventDefault(), e.params.preventClicksPropagation && e.animating && (s.stopPropagation(), s.stopImmediatePropagation())); } function ds() { const s = this, { wrapperEl: e, rtlTranslate: t, enabled: i } = s; if (!i) return; ((s.previousTranslate = s.translate), s.isHorizontal() ? (s.translate = -e.scrollLeft) : (s.translate = -e.scrollTop), s.translate === 0 && (s.translate = 0), s.updateActiveIndex(), s.updateSlidesClasses()); let r; const a = s.maxTranslate() - s.minTranslate(); (a === 0 ? (r = 0) : (r = (s.translate - s.minTranslate()) / a), r !== s.progress && s.updateProgress(t ? -s.translate : s.translate), s.emit("setTranslate", s.translate, !1)); } function cs(s) { const e = this; (Ee(e, s.target), !( e.params.cssMode || (e.params.slidesPerView !== "auto" && !e.params.autoHeight) ) && e.update()); } function fs() { const s = this; s.documentTouchHandlerProceeded || ((s.documentTouchHandlerProceeded = !0), s.params.touchReleaseOnEdges && (s.el.style.touchAction = "auto")); } const Qe = (s, e) => { const t = q(), { params: i, el: r, wrapperEl: a, device: f } = s, c = !!i.nested, n = e === "on" ? "addEventListener" : "removeEventListener", u = e; !r || typeof r == "string" || (t[n]("touchstart", s.onDocumentTouchStart, { passive: !1, capture: c }), r[n]("touchstart", s.onTouchStart, { passive: !1 }), r[n]("pointerdown", s.onTouchStart, { passive: !1 }), t[n]("touchmove", s.onTouchMove, { passive: !1, capture: c }), t[n]("pointermove", s.onTouchMove, { passive: !1, capture: c }), t[n]("touchend", s.onTouchEnd, { passive: !0 }), t[n]("pointerup", s.onTouchEnd, { passive: !0 }), t[n]("pointercancel", s.onTouchEnd, { passive: !0 }), t[n]("touchcancel", s.onTouchEnd, { passive: !0 }), t[n]("pointerout", s.onTouchEnd, { passive: !0 }), t[n]("pointerleave", s.onTouchEnd, { passive: !0 }), t[n]("contextmenu", s.onTouchEnd, { passive: !0 }), (i.preventClicks || i.preventClicksPropagation) && r[n]("click", s.onClick, !0), i.cssMode && a[n]("scroll", s.onScroll), i.updateOnWindowResize ? s[u]( f.ios || f.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", Ze, !0, ) : s[u]("observerUpdate", Ze, !0), r[n]("load", s.onLoad, { capture: !0 })); }; function us() { const s = this, { params: e } = s; ((s.onTouchStart = as.bind(s)), (s.onTouchMove = ns.bind(s)), (s.onTouchEnd = ls.bind(s)), (s.onDocumentTouchStart = fs.bind(s)), e.cssMode && (s.onScroll = ds.bind(s)), (s.onClick = os.bind(s)), (s.onLoad = cs.bind(s)), Qe(s, "on")); } function ps() { Qe(this, "off"); } var ms = { attachEvents: us, detachEvents: ps }; const Je = (s, e) => s.grid && e.grid && e.grid.rows > 1; function hs() { const s = this, { realIndex: e, initialized: t, params: i, el: r } = s, a = i.breakpoints; if (!a || (a && Object.keys(a).length === 0)) return; const f = s.getBreakpoint(a, s.params.breakpointsBase, s.el); if (!f || s.currentBreakpoint === f) return; const n = (f in a ? a[f] : void 0) || s.originalParams, u = Je(s, i), o = Je(s, n), l = s.params.grabCursor, d = n.grabCursor, p = i.enabled; (u && !o ? (r.classList.remove( `${i.containerModifierClass}grid`, `${i.containerModifierClass}grid-column`, ), s.emitContainerClasses()) : !u && o && (r.classList.add(`${i.containerModifierClass}grid`), ((n.grid.fill && n.grid.fill === "column") || (!n.grid.fill && i.grid.fill === "column")) && r.classList.add(`${i.containerModifierClass}grid-column`), s.emitContainerClasses()), l && !d ? s.unsetGrabCursor() : !l && d && s.setGrabCursor(), ["navigation", "pagination", "scrollbar"].forEach((m) => { if (typeof n[m] == "undefined") return; const b = i[m] && i[m].enabled, S = n[m] && n[m].enabled; (b && !S && s[m].disable(), !b && S && s[m].enable()); })); const h = n.direction && n.direction !== i.direction, g = i.loop && (n.slidesPerView !== i.slidesPerView || h), w = i.loop; (h && t && s.changeDirection(), Q(s.params, n)); const y = s.params.enabled, v = s.params.loop; (Object.assign(s, { allowTouchMove: s.params.allowTouchMove, allowSlideNext: s.params.allowSlideNext, allowSlidePrev: s.params.allowSlidePrev, }), p && !y ? s.disable() : !p && y && s.enable(), (s.currentBreakpoint = f), s.emit("_beforeBreakpoint", n), t && (g ? (s.loopDestroy(), s.loopCreate(e), s.updateSlides()) : !w && v ? (s.loopCreate(e), s.updateSlides()) : w && !v && s.loopDestroy()), s.emit("breakpoint", n)); } function gs(s, e, t) { if ((e === void 0 && (e = "window"), !s || (e === "container" && !t))) return; let i = !1; const r = X(), a = e === "window" ? r.innerHeight : t.clientHeight, f = Object.keys(s).map((c) => { if (typeof c == "string" && c.indexOf("@") === 0) { const n = parseFloat(c.substr(1)); return { value: a * n, point: c }; } return { value: c, point: c }; }); f.sort((c, n) => parseInt(c.value, 10) - parseInt(n.value, 10)); for (let c = 0; c < f.length; c += 1) { const { point: n, value: u } = f[c]; e === "window" ? r.matchMedia(`(min-width: ${u}px)`).matches && (i = n) : u <= t.clientWidth && (i = n); } return i || "max"; } var vs = { setBreakpoint: hs, getBreakpoint: gs }; function ws(s, e) { const t = []; return ( s.forEach((i) => { typeof i == "object" ? Object.keys(i).forEach((r) => { i[r] && t.push(e + r); }) : typeof i == "string" && t.push(e + i); }), t ); } function ys() { const s = this, { classNames: e, params: t, rtl: i, el: r, device: a } = s, f = ws( [ "initialized", t.direction, { "free-mode": s.params.freeMode && t.freeMode.enabled }, { autoheight: t.autoHeight }, { rtl: i }, { grid: t.grid && t.grid.rows > 1 }, { "grid-column": t.grid && t.grid.rows > 1 && t.grid.fill === "column", }, { android: a.android }, { ios: a.ios }, { "css-mode": t.cssMode }, { centered: t.cssMode && t.centeredSlides }, { "watch-progress": t.watchSlidesProgress }, ], t.containerModifierClass, ); (e.push(...f), r.classList.add(...e), s.emitContainerClasses()); } function bs() { const s = this, { el: e, classNames: t } = s; !e || typeof e == "string" || (e.classList.remove(...t), s.emitContainerClasses()); } var Ss = { addClasses: ys, removeClasses: bs }; function Es() { const s = this, { isLocked: e, params: t } = s, { slidesOffsetBefore: i } = t; if (i) { const r = s.slides.length - 1, a = s.slidesGrid[r] + s.slidesSizesGrid[r] + i * 2; s.isLocked = s.size > a; } else s.isLocked = s.snapGrid.length === 1; (t.allowSlideNext === !0 && (s.allowSlideNext = !s.isLocked), t.allowSlidePrev === !0 && (s.allowSlidePrev = !s.isLocked), e && e !== s.isLocked && (s.isEnd = !1), e !== s.isLocked && s.emit(s.isLocked ? "lock" : "unlock")); } var xs = { checkOverflow: Es }, et = { 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", width: null, height: null, preventInteractionOnTransition: !1, userAgent: null, url: null, edgeSwipeDetection: !1, edgeSwipeThreshold: 20, autoHeight: !1, setWrapperSize: !1, virtualTranslate: !1, effect: "slide", breakpoints: void 0, breakpointsBase: "window", spaceBetween: 0, slidesPerView: 1, slidesPerGroup: 1, slidesPerGroupSkip: 0, slidesPerGroupAuto: !1, centeredSlides: !1, centeredSlidesBounds: !1, slidesOffsetBefore: 0, slidesOffsetAfter: 0, normalizeSlideIndex: !0, centerInsufficientSlides: !1, watchOverflow: !0, roundLengths: !1, 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, uniqueNavElements: !0, resistance: !0, resistanceRatio: 0.85, watchSlidesProgress: !1, grabCursor: !1, preventClicks: !0, preventClicksPropagation: !0, slideToClickedSlide: !1, loop: !1, loopAddBlankSlides: !0, loopAdditionalSlides: 0, loopPreventsSliding: !0, rewind: !1, allowSlidePrev: !0, allowSlideNext: !0, swipeHandler: null, noSwiping: !0, noSwipingClass: "swiper-no-swiping", noSwipingSelector: null, passiveListeners: !0, maxBackfaceHiddenSlides: 10, containerModifierClass: "swiper-", 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, runCallbacksOnInit: !0, _emitClasses: !1, }; function Ts(s, e) { return function (i) { i === void 0 && (i = {}); const r = Object.keys(i)[0], a = i[r]; if (typeof a != "object" || a === null) { Q(e, i); return; } if ( (s[r] === !0 && (s[r] = { enabled: !0 }), r === "navigation" && s[r] && s[r].enabled && !s[r].prevEl && !s[r].nextEl && (s[r].auto = !0), ["pagination", "scrollbar"].indexOf(r) >= 0 && s[r] && s[r].enabled && !s[r].el && (s[r].auto = !0), !(r in s && "enabled" in a)) ) { Q(e, i); return; } (typeof s[r] == "object" && !("enabled" in s[r]) && (s[r].enabled = !0), s[r] || (s[r] = { enabled: !1 }), Q(e, i)); }; } const Ve = { eventsEmitter: St, update: Dt, translate: Bt, transition: Rt, slide: Kt, loop: es, grabCursor: is, events: ms, breakpoints: vs, checkOverflow: xs, classes: Ss, }, Ge = {}; class K { constructor() { let e, t; for (var i = arguments.length, r = new Array(i), a = 0; a < i; a++) r[a] = arguments[a]; (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 = Q({}, t)), e && !t.el && (t.el = e)); const f = q(); if ( t.el && typeof t.el == "string" && f.querySelectorAll(t.el).length > 1 ) { const o = []; return ( f.querySelectorAll(t.el).forEach((l) => { const d = Q({}, t, { el: l }); o.push(new K(d)); }), o ); } const c = this; ((c.__swiper__ = !0), (c.support = We()), (c.device = _e({ userAgent: t.userAgent })), (c.browser = wt()), (c.eventsListeners = {}), (c.eventsAnyListeners = []), (c.modules = [...c.__modules__]), t.modules && Array.isArray(t.modules) && c.modules.push(...t.modules)); const n = {}; c.modules.forEach((o) => { o({ params: t, swiper: c, extendParams: Ts(t, n), on: c.on.bind(c), once: c.once.bind(c), off: c.off.bind(c), emit: c.emit.bind(c), }); }); const u = Q({}, et, n); return ( (c.params = Q({}, u, Ge, t)), (c.originalParams = Q({}, c.params)), (c.passedParams = Q({}, t)), c.params && c.params.on && Object.keys(c.params.on).forEach((o) => { c.on(o, c.params.on[o]); }), c.params && c.params.onAny && c.onAny(c.params.onAny), Object.assign(c, { enabled: c.params.enabled, el: e, classNames: [], slides: [], slidesGrid: [], snapGrid: [], slidesSizesGrid: [], isHorizontal() { return c.params.direction === "horizontal"; }, isVertical() { return c.params.direction === "vertical"; }, activeIndex: 0, realIndex: 0, isBeginning: !0, isEnd: !1, translate: 0, previousTranslate: 0, progress: 0, velocity: 0, animating: !1, cssOverflowAdjustment() { return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; }, allowSlideNext: c.params.allowSlideNext, allowSlidePrev: c.params.allowSlidePrev, 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, focusableElements: c.params.focusableElements, lastClickTime: 0, clickTimeout: void 0, velocities: [], allowMomentumBounce: void 0, startMoving: void 0, pointerId: null, touchId: null, }, allowClick: !0, allowTouchMove: c.params.allowTouchMove, touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, imagesToLoad: [], imagesLoaded: 0, }), c.emit("_swiper"), c.params.init && c.init(), c ); } 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: i } = this, r = W(t, `.${i.slideClass}, swiper-slide`), a = me(r[0]); return me(e) - a; } getSlideIndexByData(e) { return this.getSlideIndex( this.slides.filter( (t) => t.getAttribute("data-swiper-slide-index") * 1 === e, )[0], ); } recalcSlides() { const e = this, { slidesEl: t, params: i } = e; e.slides = W(t, `.${i.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 i = this; e = Math.min(Math.max(e, 0), 1); const r = i.minTranslate(), f = (i.maxTranslate() - r) * e + r; (i.translateTo(f, typeof t == "undefined" ? 0 : t), i.updateActiveIndex(), i.updateSlidesClasses()); } emitContainerClasses() { const e = this; if (!e.params._emitClasses || !e.el) return; const t = e.el.className .split(" ") .filter( (i) => i.indexOf("swiper") === 0 || i.indexOf(e.params.containerModifierClass) === 0, ); e.emit("_containerClasses", t.join(" ")); } getSlideClasses(e) { const t = this; return t.destroyed ? "" : e.className .split(" ") .filter( (i) => i.indexOf("swiper-slide") === 0 || i.indexOf(t.params.slideClass) === 0, ) .join(" "); } emitSlidesClasses() { const e = this; if (!e.params._emitClasses || !e.el) return; const t = []; (e.slides.forEach((i) => { const r = e.getSlideClasses(i); (t.push({ slideEl: i, classNames: r }), e.emit("_slideClass", i, r)); }), e.emit("_slideClasses", t)); } slidesPerViewDynamic(e, t) { (e === void 0 && (e = "current"), t === void 0 && (t = !1)); const i = this, { params: r, slides: a, slidesGrid: f, slidesSizesGrid: c, size: n, activeIndex: u, } = i; let o = 1; if (typeof r.slidesPerView == "number") return r.slidesPerView; if (r.centeredSlides) { let l = a[u] ? Math.ceil(a[u].swiperSlideSize) : 0, d; for (let p = u + 1; p < a.length; p += 1) a[p] && !d && ((l += Math.ceil(a[p].swiperSlideSize)), (o += 1), l > n && (d = !0)); for (let p = u - 1; p >= 0; p -= 1) a[p] && !d && ((l += a[p].swiperSlideSize), (o += 1), l > n && (d = !0)); } else if (e === "current") for (let l = u + 1; l < a.length; l += 1) (t ? f[l] + c[l] - f[u] < n : f[l] - f[u] < n) && (o += 1); else for (let l = u - 1; l >= 0; l -= 1) f[u] - f[l] < n && (o += 1); return o; } update() { const e = this; if (!e || e.destroyed) return; const { snapGrid: t, params: i } = e; (i.breakpoints && e.setBreakpoint(), [...e.el.querySelectorAll('[loading="lazy"]')].forEach((f) => { f.complete && Ee(e, f); }), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses()); function r() { const f = e.rtlTranslate ? e.translate * -1 : e.translate, c = Math.min(Math.max(f, e.maxTranslate()), e.minTranslate()); (e.setTranslate(c), e.updateActiveIndex(), e.updateSlidesClasses()); } let a; if (i.freeMode && i.freeMode.enabled && !i.cssMode) (r(), i.autoHeight && e.updateAutoHeight()); else { if ( (i.slidesPerView === "auto" || i.slidesPerView > 1) && e.isEnd && !i.centeredSlides ) { const f = e.virtual && i.virtual.enabled ? e.virtual.slides : e.slides; a = e.slideTo(f.length - 1, 0, !1, !0); } else a = e.slideTo(e.activeIndex, 0, !1, !0); a || r(); } (i.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit("update")); } changeDirection(e, t) { t === void 0 && (t = !0); const i = this, r = i.params.direction; return ( e || (e = r === "horizontal" ? "vertical" : "horizontal"), e === r || (e !== "horizontal" && e !== "vertical") || (i.el.classList.remove(`${i.params.containerModifierClass}${r}`), i.el.classList.add(`${i.params.containerModifierClass}${e}`), i.emitContainerClasses(), (i.params.direction = e), i.slides.forEach((a) => { e === "vertical" ? (a.style.width = "") : (a.style.height = ""); }), i.emit("changeDirection"), t && i.update()), i ); } 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 i = e || t.params.el; if ((typeof i == "string" && (i = document.querySelector(i)), !i)) return !1; ((i.swiper = t), i.parentNode && i.parentNode.host && i.parentNode.host.nodeName === t.params.swiperElementNodeName.toUpperCase() && (t.isElement = !0)); const r = () => `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`; let f = (() => i && i.shadowRoot && i.shadowRoot.querySelector ? i.shadowRoot.querySelector(r()) : W(i, r())[0])(); return ( !f && t.params.createElements && ((f = J("div", t.params.wrapperClass)), i.append(f), W(i, `.${t.params.slideClass}`).forEach((c) => { f.append(c); })), Object.assign(t, { el: i, wrapperEl: f, slidesEl: t.isElement && !i.parentNode.host.slideSlots ? i.parentNode.host : f, hostEl: t.isElement ? i.parentNode.host : i, mounted: !0, rtl: i.dir.toLowerCase() === "rtl" || re(i, "direction") === "rtl", rtlTranslate: t.params.direction === "horizontal" && (i.dir.toLowerCase() === "rtl" || re(i, "direction") === "rtl"), wrongRTL: re(f, "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((a) => { a.complete ? Ee(t, a) : a.addEventListener("load", (f) => { Ee(t, f.target); }); }), ke(t), (t.initialized = !0), ke(t), t.emit("init"), t.emit("afterInit"), t ); } destroy(e, t) { (e === void 0 && (e = !0), t === void 0 && (t = !0)); const i = this, { params: r, el: a, wrapperEl: f, slides: c } = i; return ( typeof i.params == "undefined" || i.destroyed || (i.emit("beforeDestroy"), (i.initialized = !1), i.detachEvents(), r.loop && i.loopDestroy(), t && (i.removeClasses(), a && typeof a != "string" && a.removeAttribute("style"), f && f.removeAttribute("style"), c && c.length && c.forEach((n) => { (n.classList.remove( r.slideVisibleClass, r.slideFullyVisibleClass, r.slideActiveClass, r.slideNextClass, r.slidePrevClass, ), n.removeAttribute("style"), n.removeAttribute("data-swiper-slide-index")); })), i.emit("destroy"), Object.keys(i.eventsListeners).forEach((n) => { i.off(n); }), e !== !1 && (i.el && typeof i.el != "string" && (i.el.swiper = null), dt(i)), (i.destroyed = !0)), null ); } static extendDefaults(e) { Q(Ge, e); } static get extendedDefaults() { return Ge; } static get defaults() { return et; } static installModule(e) { K.prototype.__modules__ || (K.prototype.__modules__ = []); const t = K.prototype.__modules__; typeof e == "function" && t.indexOf(e) < 0 && t.push(e); } static use(e) { return Array.isArray(e) ? (e.forEach((t) => K.installModule(t)), K) : (K.installModule(e), K); } } (Object.keys(Ve).forEach((s) => { Object.keys(Ve[s]).forEach((e) => { K.prototype[e] = Ve[s][e]; }); }), K.use([yt, bt])); function Ms(s) { let { swiper: e, extendParams: t, on: i, emit: r } = s; t({ virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, renderExternalUpdate: !0, addSlidesBefore: 0, addSlidesAfter: 0, }, }); let a; const f = q(); e.virtual = { cache: {}, from: void 0, to: void 0, slides: [], offset: 0, slidesGrid: [], }; const c = f.createElement("div"); function n(h, g) { const w = e.params.virtual; if (w.cache && e.virtual.cache[g]) return e.virtual.cache[g]; let y; return ( w.renderSlide ? ((y = w.renderSlide.call(e, h, g)), typeof y == "string" && ((c.innerHTML = y), (y = c.children[0]))) : e.isElement ? (y = J("swiper-slide")) : (y = J("div", e.params.slideClass)), y.setAttribute("data-swiper-slide-index", g), w.renderSlide || (y.innerHTML = h), w.cache && (e.virtual.cache[g] = y), y ); } function u(h, g) { const { slidesPerView: w, slidesPerGroup: y, centeredSlides: v, loop: m, initialSlide: b, } = e.params; if (g && !m && b > 0) return; const { addSlidesBefore: S, addSlidesAfter: A } = e.params.virtual, { from: O, to: z, slides: T, slidesGrid: P, offset: I } = e.virtual; e.params.cssMode || e.updateActiveIndex(); const C = e.activeIndex || 0; let E; e.rtlTranslate ? (E = "right") : (E = e.isHorizontal() ? "left" : "top"); let x, D; v ? ((x = Math.floor(w / 2) + y + A), (D = Math.floor(w / 2) + y + S)) : ((x = w + (y - 1) + A), (D = (m ? w : y) + S)); let G = C - D, M = C + x; m || ((G = Math.max(G, 0)), (M = Math.min(M, T.length - 1))); let L = (e.slidesGrid[G] || 0) - (e.slidesGrid[0] || 0); (m && C >= D ? ((G -= D), v || (L += e.slidesGrid[0])) : m && C < D && ((G = -D), v && (L += e.slidesGrid[0])), Object.assign(e.virtual, { from: G, to: M, offset: L, slidesGrid: e.slidesGrid, slidesBefore: D, slidesAfter: x, })); function V() { (e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(), r("virtualUpdate")); } if (O === G && z === M && !h) { (e.slidesGrid !== P && L !== I && e.slides.forEach((H) => { H.style[E] = `${L - Math.abs(e.cssOverflowAdjustment())}px`; }), e.updateProgress(), r("virtualUpdate")); return; } if (e.params.virtual.renderExternal) { (e.params.virtual.renderExternal.call(e, { offset: L, from: G, to: M, slides: (function () { const R = []; for (let U = G; U <= M; U += 1) R.push(T[U]); return R; })(), }), e.params.virtual.renderExternalUpdate ? V() : r("virtualUpdate")); return; } const F = [], $ = [], k = (H) => { let R = H; return ( H < 0 ? (R = T.length + H) : R >= T.length && (R = R - T.length), R ); }; if (h) e.slides .filter((H) => H.matches(`.${e.params.slideClass}, swiper-slide`)) .forEach((H) => { H.remove(); }); else for (let H = O; H <= z; H += 1) if (H < G || H > M) { const R = k(H); e.slides .filter((U) => U.matches( `.${e.params.slideClass}[data-swiper-slide-index="${R}"], swiper-slide[data-swiper-slide-index="${R}"]`, ), ) .forEach((U) => { U.remove(); }); } const B = m ? -T.length : 0, Y = m ? T.length * 2 : T.length; for (let H = B; H < Y; H += 1) if (H >= G && H <= M) { const R = k(H); typeof z == "undefined" || h ? $.push(R) : (H > z && $.push(R), H < O && F.push(R)); } if ( ($.forEach((H) => { e.slidesEl.append(n(T[H], H)); }), m) ) for (let H = F.length - 1; H >= 0; H -= 1) { const R = F[H]; e.slidesEl.prepend(n(T[R], R)); } else (F.sort((H, R) => R - H), F.forEach((H) => { e.slidesEl.prepend(n(T[H], H)); })); (W(e.slidesEl, ".swiper-slide, swiper-slide").forEach((H) => { H.style[E] = `${L - Math.abs(e.cssOverflowAdjustment())}px`; }), V()); } function o(h) { if (typeof h == "object" && "length" in h) for (let g = 0; g < h.length; g += 1) h[g] && e.virtual.slides.push(h[g]); else e.virtual.slides.push(h); u(!0); } function l(h) { const g = e.activeIndex; let w = g + 1, y = 1; if (Array.isArray(h)) { for (let v = 0; v < h.length; v += 1) h[v] && e.virtual.slides.unshift(h[v]); ((w = g + h.length), (y = h.length)); } else e.virtual.slides.unshift(h); if (e.params.virtual.cache) { const v = e.virtual.cache, m = {}; (Object.keys(v).forEach((b) => { const S = v[b], A = S.getAttribute("data-swiper-slide-index"); (A && S.setAttribute("data-swiper-slide-index", parseInt(A, 10) + y), (m[parseInt(b, 10) + y] = S)); }), (e.virtual.cache = m)); } (u(!0), e.slideTo(w, 0)); } function d(h) { if (typeof h == "undefined" || h === null) return; let g = e.activeIndex; if (Array.isArray(h)) for (let w = h.length - 1; w >= 0; w -= 1) (e.params.virtual.cache && (delete e.virtual.cache[h[w]], Object.keys(e.virtual.cache).forEach((y) => { y > h && ((e.virtual.cache[y - 1] = e.virtual.cache[y]), e.virtual.cache[y - 1].setAttribute( "data-swiper-slide-index", y - 1, ), delete e.virtual.cache[y]); })), e.virtual.slides.splice(h[w], 1), h[w] < g && (g -= 1), (g = Math.max(g, 0))); else (e.params.virtual.cache && (delete e.virtual.cache[h], Object.keys(e.virtual.cache).forEach((w) => { w > h && ((e.virtual.cache[w - 1] = e.virtual.cache[w]), e.virtual.cache[w - 1].setAttribute( "data-swiper-slide-index", w - 1, ), delete e.virtual.cache[w]); })), e.virtual.slides.splice(h, 1), h < g && (g -= 1), (g = Math.max(g, 0))); (u(!0), e.slideTo(g, 0)); } function p() { ((e.virtual.slides = []), e.params.virtual.cache && (e.virtual.cache = {}), u(!0), e.slideTo(0, 0)); } (i("beforeInit", () => { if (!e.params.virtual.enabled) return; let h; if (typeof e.passedParams.virtual.slides == "undefined") { const g = [...e.slidesEl.children].filter((w) => w.matches(`.${e.params.slideClass}, swiper-slide`), ); g && g.length && ((e.virtual.slides = [...g]), (h = !0), g.forEach((w, y) => { (w.setAttribute("data-swiper-slide-index", y), (e.virtual.cache[y] = w), w.remove()); })); } (h || (e.virtual.slides = e.params.virtual.slides), e.classNames.push(`${e.params.containerModifierClass}virtual`), (e.params.watchSlidesProgress = !0), (e.originalParams.watchSlidesProgress = !0), u(!1, !0)); }), i("setTranslate", () => { !e.params.virtual.enabled || (e.params.cssMode && !e._immediateVirtual ? (clearTimeout(a), (a = setTimeout(() => { u(); }, 100))) : u()); }), i("init update resize", () => { !e.params.virtual.enabled || (e.params.cssMode && pe(e.wrapperEl, "--swiper-virtual-size", `${e.virtualSize}px`)); }), Object.assign(e.virtual, { appendSlide: o, prependSlide: l, removeSlide: d, removeAllSlides: p, update: u, })); } function Cs(s) { let { swiper: e, extendParams: t, on: i, emit: r } = s; const a = q(), f = X(); ((e.keyboard = { enabled: !1 }), t({ keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } })); function c(o) { if (!e.enabled) return; const { rtlTranslate: l } = e; let d = o; d.originalEvent && (d = d.originalEvent); const p = d.keyCode || d.charCode, h = e.params.keyboard.pageUpDown, g = h && p === 33, w = h && p === 34, y = p === 37, v = p === 39, m = p === 38, b = p === 40; if ( (!e.allowSlideNext && ((e.isHorizontal() && v) || (e.isVertical() && b) || w)) || (!e.allowSlidePrev && ((e.isHorizontal() && y) || (e.isVertical() && m) || g)) ) return !1; if ( !(d.shiftKey || d.altKey || d.ctrlKey || d.metaKey) && !( a.activeElement && a.activeElement.nodeName && (a.activeElement.nodeName.toLowerCase() === "input" || a.activeElement.nodeName.toLowerCase() === "textarea") ) ) { if (e.params.keyboard.onlyInViewport && (g || w || y || v || m || b)) { let S = !1; if ( le(e.el, `.${e.params.slideClass}, swiper-slide`).length > 0 && le(e.el, `.${e.params.slideActiveClass}`).length === 0 ) return; const A = e.el, O = A.clientWidth, z = A.clientHeight, T = f.innerWidth, P = f.innerHeight, I = be(A); l && (I.left -= A.scrollLeft); const C = [ [I.left, I.top], [I.left + O, I.top], [I.left, I.top + z], [I.left + O, I.top + z], ]; for (let E = 0; E < C.length; E += 1) { const x = C[E]; if (x[0] >= 0 && x[0] <= T && x[1] >= 0 && x[1] <= P) { if (x[0] === 0 && x[1] === 0) continue; S = !0; } } if (!S) return; } (e.isHorizontal() ? ((g || w || y || v) && (d.preventDefault ? d.preventDefault() : (d.returnValue = !1)), (((w || v) && !l) || ((g || y) && l)) && e.slideNext(), (((g || y) && !l) || ((w || v) && l)) && e.slidePrev()) : ((g || w || m || b) && (d.preventDefault ? d.preventDefault() : (d.returnValue = !1)), (w || b) && e.slideNext(), (g || m) && e.slidePrev()), r("keyPress", p)); } } function n() { e.keyboard.enabled || (a.addEventListener("keydown", c), (e.keyboard.enabled = !0)); } function u() { !e.keyboard.enabled || (a.removeEventListener("keydown", c), (e.keyboard.enabled = !1)); } (i("init", () => { e.params.keyboard.enabled && n(); }), i("destroy", () => { e.keyboard.enabled && u(); }), Object.assign(e.keyboard, { enable: n, disable: u })); } function Ps(s) { let { swiper: e, extendParams: t, on: i, emit: r } = s; const a = X(); (t({ mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarget: "container", thresholdDelta: null, thresholdTime: null, noMousewheelClass: "swiper-no-mousewheel", }, }), (e.mousewheel = { enabled: !1 })); let f, c = ee(), n; const u = []; function o(m) { const b = 10, S = 40, A = 800; let O = 0, z = 0, T = 0, P = 0; return ( "detail" in m && (z = m.detail), "wheelDelta" in m && (z = -m.wheelDelta / 120), "wheelDeltaY" in m && (z = -m.wheelDeltaY / 120), "wheelDeltaX" in m && (O = -m.wheelDeltaX / 120), "axis" in m && m.axis === m.HORIZONTAL_AXIS && ((O = z), (z = 0)), (T = O * b), (P = z * b), "deltaY" in m && (P = m.deltaY), "deltaX" in m && (T = m.deltaX), m.shiftKey && !T && ((T = P), (P = 0)), (T || P) && m.deltaMode && (m.deltaMode === 1 ? ((T *= S), (P *= S)) : ((T *= A), (P *= A))), T && !O && (O = T < 1 ? -1 : 1), P && !z && (z = P < 1 ? -1 : 1), { spinX: O, spinY: z, pixelX: T, pixelY: P } ); } function l() { !e.enabled || (e.mouseEntered = !0); } function d() { !e.enabled || (e.mouseEntered = !1); } function p(m) { return (e.params.mousewheel.thresholdDelta && m.delta < e.params.mousewheel.thresholdDelta) || (e.params.mousewheel.thresholdTime && ee() - c < e.params.mousewheel.thresholdTime) ? !1 : m.delta >= 6 && ee() - c < 60 ? !0 : (m.direction < 0 ? (!e.isEnd || e.params.loop) && !e.animating && (e.slideNext(), r("scroll", m.raw)) : (!e.isBeginning || e.params.loop) && !e.animating && (e.slidePrev(), r("scroll", m.raw)), (c = new a.Date().getTime()), !1); } function h(m) { const b = e.params.mousewheel; if (m.direction < 0) { if (e.isEnd && !e.params.loop && b.releaseOnEdges) return !0; } else if (e.isBeginning && !e.params.loop && b.releaseOnEdges) return !0; return !1; } function g(m) { let b = m, S = !0; if ( !e.enabled || m.target.closest(`.${e.params.mousewheel.noMousewheelClass}`) ) return; const A = e.params.mousewheel; e.params.cssMode && b.preventDefault(); let O = e.el; e.params.mousewheel.eventsTarget !== "container" && (O = document.querySelector(e.params.mousewheel.eventsTarget)); const z = O && O.contains(b.target); if (!e.mouseEntered && !z && !A.releaseOnEdges) return !0; b.originalEvent && (b = b.originalEvent); let T = 0; const P = e.rtlTranslate ? -1 : 1, I = o(b); if (A.forceToAxis) if (e.isHorizontal()) if (Math.abs(I.pixelX) > Math.abs(I.pixelY)) T = -I.pixelX * P; else return !0; else if (Math.abs(I.pixelY) > Math.abs(I.pixelX)) T = -I.pixelY; else return !0; else T = Math.abs(I.pixelX) > Math.abs(I.pixelY) ? -I.pixelX * P : -I.pixelY; if (T === 0) return !0; A.invert && (T = -T); let C = e.getTranslate() + T * A.sensitivity; if ( (C >= e.minTranslate() && (C = e.minTranslate()), C <= e.maxTranslate() && (C = e.maxTranslate()), (S = e.params.loop ? !0 : !(C === e.minTranslate() || C === e.maxTranslate())), S && e.params.nested && b.stopPropagation(), !e.params.freeMode || !e.params.freeMode.enabled) ) { const E = { time: ee(), delta: Math.abs(T), direction: Math.sign(T), raw: m, }; u.length >= 2 && u.shift(); const x = u.length ? u[u.length - 1] : void 0; if ( (u.push(E), x ? (E.direction !== x.direction || E.delta > x.delta || E.time > x.time + 150) && p(E) : p(E), h(E)) ) return !0; } else { const E = { time: ee(), delta: Math.abs(T), direction: Math.sign(T) }, x = n && E.time < n.time + 500 && E.delta <= n.delta && E.direction === n.direction; if (!x) { n = void 0; let D = e.getTranslate() + T * A.sensitivity; const G = e.isBeginning, M = e.isEnd; if ( (D >= e.minTranslate() && (D = e.minTranslate()), D <= e.maxTranslate() && (D = e.maxTranslate()), e.setTransition(0), e.setTranslate(D), e.updateProgress(), e.updateActiveIndex(), e.updateSlidesClasses(), ((!G && e.isBeginning) || (!M && e.isEnd)) && e.updateSlidesClasses(), e.params.loop && e.loopFix({ direction: E.direction < 0 ? "next" : "prev", byMousewheel: !0, }), e.params.freeMode.sticky) ) { (clearTimeout(f), (f = void 0), u.length >= 15 && u.shift()); const L = u.length ? u[u.length - 1] : void 0, V = u[0]; if ( (u.push(E), L && (E.delta > L.delta || E.direction !== L.direction)) ) u.splice(0); else if ( u.length >= 15 && E.time - V.time < 500 && V.delta - E.delta >= 1 && E.delta <= 6 ) { const F = T > 0 ? 0.8 : 0.2; ((n = E), u.splice(0), (f = ae(() => { e.destroyed || !e.params || e.slideToClosest(e.params.speed, !0, void 0, F); }, 0))); } f || (f = ae(() => { if (e.destroyed || !e.params) return; const F = 0.5; ((n = E), u.splice(0), e.slideToClosest(e.params.speed, !0, void 0, F)); }, 500)); } if ( (x || r("scroll", b), e.params.autoplay && e.params.autoplayDisableOnInteraction && e.autoplay.stop(), A.releaseOnEdges && (D === e.minTranslate() || D === e.maxTranslate())) ) return !0; } } return (b.preventDefault ? b.preventDefault() : (b.returnValue = !1), !1); } function w(m) { let b = e.el; (e.params.mousewheel.eventsTarget !== "container" && (b = document.querySelector(e.params.mousewheel.eventsTarget)), b[m]("mouseenter", l), b[m]("mouseleave", d), b[m]("wheel", g)); } function y() { return e.params.cssMode ? (e.wrapperEl.removeEventListener("wheel", g), !0) : e.mousewheel.enabled ? !1 : (w("addEventListener"), (e.mousewheel.enabled = !0), !0); } function v() { return e.params.cssMode ? (e.wrapperEl.addEventListener(event, g), !0) : e.mousewheel.enabled ? (w("removeEventListener"), (e.mousewheel.enabled = !1), !0) : !1; } (i("init", () => { (!e.params.mousewheel.enabled && e.params.cssMode && v(), e.params.mousewheel.enabled && y()); }), i("destroy", () => { (e.params.cssMode && y(), e.mousewheel.enabled && v()); }), Object.assign(e.mousewheel, { enable: y, disable: v })); } function Be(s, e, t, i) { return ( s.params.createElements && Object.keys(i).forEach((r) => { if (!t[r] && t.auto === !0) { let a = W(s.el, `.${i[r]}`)[0]; (a || ((a = J("div", i[r])), (a.className = i[r]), s.el.append(a)), (t[r] = a), (e[r] = a)); } }), t ); } function Ls(s) { let { swiper: e, extendParams: t, on: i, emit: r } = s; (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 a(h) { let g; return h && typeof h == "string" && e.isElement && ((g = e.el.querySelector(h)), g) ? g : (h && (typeof h == "string" && (g = [...document.querySelectorAll(h)]), e.params.uniqueNavElements && typeof h == "string" && g && g.length > 1 && e.el.querySelectorAll(h).length === 1 ? (g = e.el.querySelector(h)) : g && g.length === 1 && (g = g[0])), h && !g ? h : g); } function f(h, g) { const w = e.params.navigation; ((h = N(h)), h.forEach((y) => { y && (y.classList[g ? "add" : "remove"](...w.disabledClass.split(" ")), y.tagName === "BUTTON" && (y.disabled = g), e.params.watchOverflow && e.enabled && y.classList[e.isLocked ? "add" : "remove"](w.lockClass)); })); } function c() { const { nextEl: h, prevEl: g } = e.navigation; if (e.params.loop) { (f(g, !1), f(h, !1)); return; } (f(g, e.isBeginning && !e.params.rewind), f(h, e.isEnd && !e.params.rewind)); } function n(h) { (h.preventDefault(), !(e.isBeginning && !e.params.loop && !e.params.rewind) && (e.slidePrev(), r("navigationPrev"))); } function u(h) { (h.preventDefault(), !(e.isEnd && !e.params.loop && !e.params.rewind) && (e.slideNext(), r("navigationNext"))); } function o() { const h = e.params.navigation; if ( ((e.params.navigation = Be( e, e.originalParams.navigation, e.params.navigation, { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" }, )), !(h.nextEl || h.prevEl)) ) return; let g = a(h.nextEl), w = a(h.prevEl); (Object.assign(e.navigation, { nextEl: g, prevEl: w }), (g = N(g)), (w = N(w))); const y = (v, m) => { (v && v.addEventListener("click", m === "next" ? u : n), !e.enabled && v && v.classList.add(...h.lockClass.split(" "))); }; (g.forEach((v) => y(v, "next")), w.forEach((v) => y(v, "prev"))); } function l() { let { nextEl: h, prevEl: g } = e.navigation; ((h = N(h)), (g = N(g))); const w = (y, v) => { (y.removeEventListener("click", v === "next" ? u : n), y.classList.remove(...e.params.navigation.disabledClass.split(" "))); }; (h.forEach((y) => w(y, "next")), g.forEach((y) => w(y, "prev"))); } (i("init", () => { e.params.navigation.enabled === !1 ? p() : (o(), c()); }), i("toEdge fromEdge lock unlock", () => { c(); }), i("destroy", () => { l(); }), i("enable disable", () => { let { nextEl: h, prevEl: g } = e.navigation; if (((h = N(h)), (g = N(g)), e.enabled)) { c(); return; } [...h, ...g] .filter((w) => !!w) .forEach((w) => w.classList.add(e.params.navigation.lockClass)); }), i("click", (h, g) => { let { nextEl: w, prevEl: y } = e.navigation; ((w = N(w)), (y = N(y))); const v = g.target; let m = y.includes(v) || w.includes(v); if (e.isElement && !m) { const b = g.path || (g.composedPath && g.composedPath()); b && (m = b.find((S) => w.includes(S) || y.includes(S))); } if (e.params.navigation.hideOnClick && !m) { if ( e.pagination && e.params.pagination && e.params.pagination.clickable && (e.pagination.el === v || e.pagination.el.contains(v)) ) return; let b; (w.length ? (b = w[0].classList.contains(e.params.navigation.hiddenClass)) : y.length && (b = y[0].classList.contains(e.params.navigation.hiddenClass)), r(b === !0 ? "navigationShow" : "navigationHide"), [...w, ...y] .filter((S) => !!S) .forEach((S) => S.classList.toggle(e.params.navigation.hiddenClass), )); } })); const d = () => { (e.el.classList.remove( ...e.params.navigation.navigationDisabledClass.split(" "), ), o(), c()); }, p = () => { (e.el.classList.add( ...e.params.navigation.navigationDisabledClass.split(" "), ), l()); }; Object.assign(e.navigation, { enable: d, disable: p, update: c, init: o, destroy: l, }); } function te(s) { return ( s === void 0 && (s = ""), `.${s .trim() .replace(/([\.:!+\/])/g, "\\$1") .replace(/ /g, ".")}` ); } function Is(s) { let { swiper: e, extendParams: t, on: i, emit: r } = s; const a = "swiper-pagination"; (t({ pagination: { el: null, bulletElement: "span", clickable: !1, hideOnClick: !1, renderBullet: null, renderProgressbar: null, renderFraction: null, renderCustom: null, progressbarOpposite: !1, type: "bullets", dynamicBullets: !1, dynamicMainBullets: 1, formatFractionCurrent: (v) => v, formatFractionTotal: (v) => v, bulletClass: `${a}-bullet`, bulletActiveClass: `${a}-bullet-active`, modifierClass: `${a}-`, currentClass: `${a}-current`, totalClass: `${a}-total`, hiddenClass: `${a}-hidden`, progressbarFillClass: `${a}-progressbar-fill`, progressbarOppositeClass: `${a}-progressbar-opposite`, clickableClass: `${a}-clickable`, lockClass: `${a}-lock`, horizontalClass: `${a}-horizontal`, verticalClass: `${a}-vertical`, paginationDisabledClass: `${a}-disabled`, }, }), (e.pagination = { el: null, bullets: [] })); let f, c = 0; function n() { return ( !e.params.pagination.el || !e.pagination.el || (Array.isArray(e.pagination.el) && e.pagination.el.length === 0) ); } function u(v, m) { const { bulletActiveClass: b } = e.params.pagination; !v || ((v = v[`${m === "prev" ? "previous" : "next"}ElementSibling`]), v && (v.classList.add(`${b}-${m}`), (v = v[`${m === "prev" ? "previous" : "next"}ElementSibling`]), v && v.classList.add(`${b}-${m}-${m}`))); } function o(v, m, b) { if (((v = v % b), (m = m % b), m === v + 1)) return "next"; if (m === v - 1) return "previous"; } function l(v) { const m = v.target.closest(te(e.params.pagination.bulletClass)); if (!m) return; v.preventDefault(); const b = me(m) * e.params.slidesPerGroup; if (e.params.loop) { if (e.realIndex === b) return; const S = o(e.realIndex, b, e.slides.length); S === "next" ? e.slideNext() : S === "previous" ? e.slidePrev() : e.slideToLoop(b); } else e.slideTo(b); } function d() { const v = e.rtl, m = e.params.pagination; if (n()) return; let b = e.pagination.el; b = N(b); let S, A; const O = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : e.slides.length, z = e.params.loop ? Math.ceil(O / e.params.slidesPerGroup) : e.snapGrid.length; if ( (e.params.loop ? ((A = e.previousRealIndex || 0), (S = e.params.slidesPerGroup > 1 ? Math.floor(e.realIndex / e.params.slidesPerGroup) : e.realIndex)) : typeof e.snapIndex != "undefined" ? ((S = e.snapIndex), (A = e.previousSnapIndex)) : ((A = e.previousIndex || 0), (S = e.activeIndex || 0)), m.type === "bullets" && e.pagination.bullets && e.pagination.bullets.length > 0) ) { const T = e.pagination.bullets; let P, I, C; if ( (m.dynamicBullets && ((f = Ie(T[0], e.isHorizontal() ? "width" : "height", !0)), b.forEach((E) => { E.style[e.isHorizontal() ? "width" : "height"] = `${ f * (m.dynamicMainBullets + 4) }px`; }), m.dynamicMainBullets > 1 && A !== void 0 && ((c += S - (A || 0)), c > m.dynamicMainBullets - 1 ? (c = m.dynamicMainBullets - 1) : c < 0 && (c = 0)), (P = Math.max(S - c, 0)), (I = P + (Math.min(T.length, m.dynamicMainBullets) - 1)), (C = (I + P) / 2)), T.forEach((E) => { const x = [ ...[ "", "-next", "-next-next", "-prev", "-prev-prev", "-main", ].map((D) => `${m.bulletActiveClass}${D}`), ] .map((D) => typeof D == "string" && D.includes(" ") ? D.split(" ") : D, ) .flat(); E.classList.remove(...x); }), b.length > 1) ) T.forEach((E) => { const x = me(E); (x === S ? E.classList.add(...m.bulletActiveClass.split(" ")) : e.isElement && E.setAttribute("part", "bullet"), m.dynamicBullets && (x >= P && x <= I && E.classList.add(...`${m.bulletActiveClass}-main`.split(" ")), x === P && u(E, "prev"), x === I && u(E, "next"))); }); else { const E = T[S]; if ( (E && E.classList.add(...m.bulletActiveClass.split(" ")), e.isElement && T.forEach((x, D) => { x.setAttribute("part", D === S ? "bullet-active" : "bullet"); }), m.dynamicBullets) ) { const x = T[P], D = T[I]; for (let G = P; G <= I; G += 1) T[G] && T[G].classList.add(...`${m.bulletActiveClass}-main`.split(" ")); (u(x, "prev"), u(D, "next")); } } if (m.dynamicBullets) { const E = Math.min(T.length, m.dynamicMainBullets + 4), x = (f * E - f) / 2 - C * f, D = v ? "right" : "left"; T.forEach((G) => { G.style[e.isHorizontal() ? D : "top"] = `${x}px`; }); } } b.forEach((T, P) => { if ( (m.type === "fraction" && (T.querySelectorAll(te(m.currentClass)).forEach((I) => { I.textContent = m.formatFractionCurrent(S + 1); }), T.querySelectorAll(te(m.totalClass)).forEach((I) => { I.textContent = m.formatFractionTotal(z); })), m.type === "progressbar") ) { let I; m.progressbarOpposite ? (I = e.isHorizontal() ? "vertical" : "horizontal") : (I = e.isHorizontal() ? "horizontal" : "vertical"); const C = (S + 1) / z; let E = 1, x = 1; (I === "horizontal" ? (E = C) : (x = C), T.querySelectorAll(te(m.progressbarFillClass)).forEach((D) => { ((D.style.transform = `translate3d(0,0,0) scaleX(${E}) scaleY(${x})`), (D.style.transitionDuration = `${e.params.speed}ms`)); })); } (m.type === "custom" && m.renderCustom ? ((T.innerHTML = m.renderCustom(e, S + 1, z)), P === 0 && r("paginationRender", T)) : (P === 0 && r("paginationRender", T), r("paginationUpdate", T)), e.params.watchOverflow && e.enabled && T.classList[e.isLocked ? "add" : "remove"](m.lockClass)); }); } function p() { const v = e.params.pagination; if (n()) return; const m = 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 b = e.pagination.el; b = N(b); let S = ""; if (v.type === "bullets") { let A = e.params.loop ? Math.ceil(m / e.params.slidesPerGroup) : e.snapGrid.length; e.params.freeMode && e.params.freeMode.enabled && A > m && (A = m); for (let O = 0; O < A; O += 1) v.renderBullet ? (S += v.renderBullet.call(e, O, v.bulletClass)) : (S += `<${v.bulletElement} ${ e.isElement ? 'part="bullet"' : "" } class="${v.bulletClass}">`); } (v.type === "fraction" && (v.renderFraction ? (S = v.renderFraction.call(e, v.currentClass, v.totalClass)) : (S = ` / `)), v.type === "progressbar" && (v.renderProgressbar ? (S = v.renderProgressbar.call(e, v.progressbarFillClass)) : (S = ``)), (e.pagination.bullets = []), b.forEach((A) => { (v.type !== "custom" && (A.innerHTML = S || ""), v.type === "bullets" && e.pagination.bullets.push( ...A.querySelectorAll(te(v.bulletClass)), )); }), v.type !== "custom" && r("paginationRender", b[0])); } function h() { e.params.pagination = Be( e, e.originalParams.pagination, e.params.pagination, { el: "swiper-pagination" }, ); const v = e.params.pagination; if (!v.el) return; let m; (typeof v.el == "string" && e.isElement && (m = e.el.querySelector(v.el)), !m && typeof v.el == "string" && (m = [...document.querySelectorAll(v.el)]), m || (m = v.el), !(!m || m.length === 0) && (e.params.uniqueNavElements && typeof v.el == "string" && Array.isArray(m) && m.length > 1 && ((m = [...e.el.querySelectorAll(v.el)]), m.length > 1 && (m = m.filter((b) => le(b, ".swiper")[0] === e.el)[0])), Array.isArray(m) && m.length === 1 && (m = m[0]), Object.assign(e.pagination, { el: m }), (m = N(m)), m.forEach((b) => { (v.type === "bullets" && v.clickable && b.classList.add(...(v.clickableClass || "").split(" ")), b.classList.add(v.modifierClass + v.type), b.classList.add( e.isHorizontal() ? v.horizontalClass : v.verticalClass, ), v.type === "bullets" && v.dynamicBullets && (b.classList.add(`${v.modifierClass}${v.type}-dynamic`), (c = 0), v.dynamicMainBullets < 1 && (v.dynamicMainBullets = 1)), v.type === "progressbar" && v.progressbarOpposite && b.classList.add(v.progressbarOppositeClass), v.clickable && b.addEventListener("click", l), e.enabled || b.classList.add(v.lockClass)); }))); } function g() { const v = e.params.pagination; if (n()) return; let m = e.pagination.el; (m && ((m = N(m)), m.forEach((b) => { (b.classList.remove(v.hiddenClass), b.classList.remove(v.modifierClass + v.type), b.classList.remove( e.isHorizontal() ? v.horizontalClass : v.verticalClass, ), v.clickable && (b.classList.remove(...(v.clickableClass || "").split(" ")), b.removeEventListener("click", l))); })), e.pagination.bullets && e.pagination.bullets.forEach((b) => b.classList.remove(...v.bulletActiveClass.split(" ")), )); } (i("changeDirection", () => { if (!e.pagination || !e.pagination.el) return; const v = e.params.pagination; let { el: m } = e.pagination; ((m = N(m)), m.forEach((b) => { (b.classList.remove(v.horizontalClass, v.verticalClass), b.classList.add( e.isHorizontal() ? v.horizontalClass : v.verticalClass, )); })); }), i("init", () => { e.params.pagination.enabled === !1 ? y() : (h(), p(), d()); }), i("activeIndexChange", () => { typeof e.snapIndex == "undefined" && d(); }), i("snapIndexChange", () => { d(); }), i("snapGridLengthChange", () => { (p(), d()); }), i("destroy", () => { g(); }), i("enable disable", () => { let { el: v } = e.pagination; v && ((v = N(v)), v.forEach((m) => m.classList[e.enabled ? "remove" : "add"]( e.params.pagination.lockClass, ), )); }), i("lock unlock", () => { d(); }), i("click", (v, m) => { const b = m.target, S = N(e.pagination.el); if ( e.params.pagination.el && e.params.pagination.hideOnClick && S && S.length > 0 && !b.classList.contains(e.params.pagination.bulletClass) ) { if ( e.navigation && ((e.navigation.nextEl && b === e.navigation.nextEl) || (e.navigation.prevEl && b === e.navigation.prevEl)) ) return; const A = S[0].classList.contains(e.params.pagination.hiddenClass); (r(A === !0 ? "paginationShow" : "paginationHide"), S.forEach((O) => O.classList.toggle(e.params.pagination.hiddenClass), )); } })); const w = () => { e.el.classList.remove(e.params.pagination.paginationDisabledClass); let { el: v } = e.pagination; (v && ((v = N(v)), v.forEach((m) => m.classList.remove(e.params.pagination.paginationDisabledClass), )), h(), p(), d()); }, y = () => { e.el.classList.add(e.params.pagination.paginationDisabledClass); let { el: v } = e.pagination; (v && ((v = N(v)), v.forEach((m) => m.classList.add(e.params.pagination.paginationDisabledClass), )), g()); }; Object.assign(e.pagination, { enable: w, disable: y, render: p, update: d, init: h, destroy: g, }); } function As(s) { let { swiper: e, extendParams: t, on: i, emit: r } = s; const a = q(); let f = !1, c = null, n = null, u, o, l, d; (t({ scrollbar: { el: null, dragSize: "auto", hide: !1, draggable: !1, snapOnRelease: !0, lockClass: "swiper-scrollbar-lock", dragClass: "swiper-scrollbar-drag", scrollbarDisabledClass: "swiper-scrollbar-disabled", horizontalClass: "swiper-scrollbar-horizontal", verticalClass: "swiper-scrollbar-vertical", }, }), (e.scrollbar = { el: null, dragEl: null })); function p() { if (!e.params.scrollbar.el || !e.scrollbar.el) return; const { scrollbar: C, rtlTranslate: E } = e, { dragEl: x, el: D } = C, G = e.params.scrollbar, M = e.params.loop ? e.progressLoop : e.progress; let L = o, V = (l - o) * M; (E ? ((V = -V), V > 0 ? ((L = o - V), (V = 0)) : -V + o > l && (L = l + V)) : V < 0 ? ((L = o + V), (V = 0)) : V + o > l && (L = l - V), e.isHorizontal() ? ((x.style.transform = `translate3d(${V}px, 0, 0)`), (x.style.width = `${L}px`)) : ((x.style.transform = `translate3d(0px, ${V}px, 0)`), (x.style.height = `${L}px`)), G.hide && (clearTimeout(c), (D.style.opacity = 1), (c = setTimeout(() => { ((D.style.opacity = 0), (D.style.transitionDuration = "400ms")); }, 1e3)))); } function h(C) { !e.params.scrollbar.el || !e.scrollbar.el || (e.scrollbar.dragEl.style.transitionDuration = `${C}ms`); } function g() { if (!e.params.scrollbar.el || !e.scrollbar.el) return; const { scrollbar: C } = e, { dragEl: E, el: x } = C; ((E.style.width = ""), (E.style.height = ""), (l = e.isHorizontal() ? x.offsetWidth : x.offsetHeight), (d = e.size / (e.virtualSize + e.params.slidesOffsetBefore - (e.params.centeredSlides ? e.snapGrid[0] : 0))), e.params.scrollbar.dragSize === "auto" ? (o = l * d) : (o = parseInt(e.params.scrollbar.dragSize, 10)), e.isHorizontal() ? (E.style.width = `${o}px`) : (E.style.height = `${o}px`), d >= 1 ? (x.style.display = "none") : (x.style.display = ""), e.params.scrollbar.hide && (x.style.opacity = 0), e.params.watchOverflow && e.enabled && C.el.classList[e.isLocked ? "add" : "remove"]( e.params.scrollbar.lockClass, )); } function w(C) { return e.isHorizontal() ? C.clientX : C.clientY; } function y(C) { const { scrollbar: E, rtlTranslate: x } = e, { el: D } = E; let G; ((G = (w(C) - be(D)[e.isHorizontal() ? "left" : "top"] - (u !== null ? u : o / 2)) / (l - o)), (G = Math.max(Math.min(G, 1), 0)), x && (G = 1 - G)); const M = e.minTranslate() + (e.maxTranslate() - e.minTranslate()) * G; (e.updateProgress(M), e.setTranslate(M), e.updateActiveIndex(), e.updateSlidesClasses()); } function v(C) { const E = e.params.scrollbar, { scrollbar: x, wrapperEl: D } = e, { el: G, dragEl: M } = x; ((f = !0), (u = C.target === M ? w(C) - C.target.getBoundingClientRect()[ e.isHorizontal() ? "left" : "top" ] : null), C.preventDefault(), C.stopPropagation(), (D.style.transitionDuration = "100ms"), (M.style.transitionDuration = "100ms"), y(C), clearTimeout(n), (G.style.transitionDuration = "0ms"), E.hide && (G.style.opacity = 1), e.params.cssMode && (e.wrapperEl.style["scroll-snap-type"] = "none"), r("scrollbarDragStart", C)); } function m(C) { const { scrollbar: E, wrapperEl: x } = e, { el: D, dragEl: G } = E; !f || (C.preventDefault && C.cancelable ? C.preventDefault() : (C.returnValue = !1), y(C), (x.style.transitionDuration = "0ms"), (D.style.transitionDuration = "0ms"), (G.style.transitionDuration = "0ms"), r("scrollbarDragMove", C)); } function b(C) { const E = e.params.scrollbar, { scrollbar: x, wrapperEl: D } = e, { el: G } = x; !f || ((f = !1), e.params.cssMode && ((e.wrapperEl.style["scroll-snap-type"] = ""), (D.style.transitionDuration = "")), E.hide && (clearTimeout(n), (n = ae(() => { ((G.style.opacity = 0), (G.style.transitionDuration = "400ms")); }, 1e3))), r("scrollbarDragEnd", C), E.snapOnRelease && e.slideToClosest()); } function S(C) { const { scrollbar: E, params: x } = e, D = E.el; if (!D) return; const G = D, M = x.passiveListeners ? { passive: !1, capture: !1 } : !1, L = x.passiveListeners ? { passive: !0, capture: !1 } : !1; if (!G) return; const V = C === "on" ? "addEventListener" : "removeEventListener"; (G[V]("pointerdown", v, M), a[V]("pointermove", m, M), a[V]("pointerup", b, L)); } function A() { !e.params.scrollbar.el || !e.scrollbar.el || S("on"); } function O() { !e.params.scrollbar.el || !e.scrollbar.el || S("off"); } function z() { const { scrollbar: C, el: E } = e; e.params.scrollbar = Be( e, e.originalParams.scrollbar, e.params.scrollbar, { el: "swiper-scrollbar" }, ); const x = e.params.scrollbar; if (!x.el) return; let D; if ( (typeof x.el == "string" && e.isElement && (D = e.el.querySelector(x.el)), !D && typeof x.el == "string") ) { if (((D = a.querySelectorAll(x.el)), !D.length)) return; } else D || (D = x.el); (e.params.uniqueNavElements && typeof x.el == "string" && D.length > 1 && E.querySelectorAll(x.el).length === 1 && (D = E.querySelector(x.el)), D.length > 0 && (D = D[0]), D.classList.add( e.isHorizontal() ? x.horizontalClass : x.verticalClass, )); let G; (D && ((G = D.querySelector(te(e.params.scrollbar.dragClass))), G || ((G = J("div", e.params.scrollbar.dragClass)), D.append(G))), Object.assign(C, { el: D, dragEl: G }), x.draggable && A(), D && D.classList[e.enabled ? "remove" : "add"]( ...ie(e.params.scrollbar.lockClass), )); } function T() { const C = e.params.scrollbar, E = e.scrollbar.el; (E && E.classList.remove( ...ie(e.isHorizontal() ? C.horizontalClass : C.verticalClass), ), O()); } (i("changeDirection", () => { if (!e.scrollbar || !e.scrollbar.el) return; const C = e.params.scrollbar; let { el: E } = e.scrollbar; ((E = N(E)), E.forEach((x) => { (x.classList.remove(C.horizontalClass, C.verticalClass), x.classList.add( e.isHorizontal() ? C.horizontalClass : C.verticalClass, )); })); }), i("init", () => { e.params.scrollbar.enabled === !1 ? I() : (z(), g(), p()); }), i("update resize observerUpdate lock unlock changeDirection", () => { g(); }), i("setTranslate", () => { p(); }), i("setTransition", (C, E) => { h(E); }), i("enable disable", () => { const { el: C } = e.scrollbar; C && C.classList[e.enabled ? "remove" : "add"]( ...ie(e.params.scrollbar.lockClass), ); }), i("destroy", () => { T(); })); const P = () => { (e.el.classList.remove( ...ie(e.params.scrollbar.scrollbarDisabledClass), ), e.scrollbar.el && e.scrollbar.el.classList.remove( ...ie(e.params.scrollbar.scrollbarDisabledClass), ), z(), g(), p()); }, I = () => { (e.el.classList.add(...ie(e.params.scrollbar.scrollbarDisabledClass)), e.scrollbar.el && e.scrollbar.el.classList.add( ...ie(e.params.scrollbar.scrollbarDisabledClass), ), T()); }; Object.assign(e.scrollbar, { enable: P, disable: I, updateSize: g, setTranslate: p, init: z, destroy: T, }); } function zs(s) { let { swiper: e, extendParams: t, on: i } = s; t({ parallax: { enabled: !1 } }); const r = "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]", a = (n, u) => { const { rtl: o } = e, l = o ? -1 : 1, d = n.getAttribute("data-swiper-parallax") || "0"; let p = n.getAttribute("data-swiper-parallax-x"), h = n.getAttribute("data-swiper-parallax-y"); const g = n.getAttribute("data-swiper-parallax-scale"), w = n.getAttribute("data-swiper-parallax-opacity"), y = n.getAttribute("data-swiper-parallax-rotate"); if ( (p || h ? ((p = p || "0"), (h = h || "0")) : e.isHorizontal() ? ((p = d), (h = "0")) : ((h = d), (p = "0")), p.indexOf("%") >= 0 ? (p = `${parseInt(p, 10) * u * l}%`) : (p = `${p * u * l}px`), h.indexOf("%") >= 0 ? (h = `${parseInt(h, 10) * u}%`) : (h = `${h * u}px`), typeof w != "undefined" && w !== null) ) { const m = w - (w - 1) * (1 - Math.abs(u)); n.style.opacity = m; } let v = `translate3d(${p}, ${h}, 0px)`; (typeof g != "undefined" && g !== null && (v += ` scale(${g - (g - 1) * (1 - Math.abs(u))})`), y && typeof y != "undefined" && y !== null && (v += ` rotate(${y * u * -1}deg)`), (n.style.transform = v)); }, f = () => { const { el: n, slides: u, progress: o, snapGrid: l, isElement: d } = e, p = W(n, r); (e.isElement && p.push(...W(e.hostEl, r)), p.forEach((h) => { a(h, o); }), u.forEach((h, g) => { let w = h.progress; (e.params.slidesPerGroup > 1 && e.params.slidesPerView !== "auto" && (w += Math.ceil(g / 2) - o * (l.length - 1)), (w = Math.min(Math.max(w, -1), 1)), h .querySelectorAll(`${r}, [data-swiper-parallax-rotate]`) .forEach((y) => { a(y, w); })); })); }, c = function (n) { n === void 0 && (n = e.params.speed); const { el: u, hostEl: o } = e, l = [...u.querySelectorAll(r)]; (e.isElement && l.push(...o.querySelectorAll(r)), l.forEach((d) => { let p = parseInt(d.getAttribute("data-swiper-parallax-duration"), 10) || n; (n === 0 && (p = 0), (d.style.transitionDuration = `${p}ms`)); })); }; (i("beforeInit", () => { !e.params.parallax.enabled || ((e.params.watchSlidesProgress = !0), (e.originalParams.watchSlidesProgress = !0)); }), i("init", () => { !e.params.parallax.enabled || f(); }), i("setTranslate", () => { !e.params.parallax.enabled || f(); }), i("setTransition", (n, u) => { !e.params.parallax.enabled || c(u); })); } function Ds(s) { let { swiper: e, extendParams: t, on: i, emit: r } = s; const a = X(); (t({ zoom: { enabled: !1, limitToOriginalSize: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: "swiper-zoom-container", zoomedSlideClass: "swiper-slide-zoomed", }, }), (e.zoom = { enabled: !1 })); let f = 1, c = !1, n, u; const o = [], l = { originX: 0, originY: 0, slideEl: void 0, slideWidth: void 0, slideHeight: void 0, imageEl: void 0, imageWrapEl: void 0, maxRatio: 3, }, d = { isTouched: void 0, isMoved: void 0, currentX: void 0, currentY: void 0, minX: void 0, minY: void 0, maxX: void 0, maxY: void 0, width: void 0, height: void 0, startX: void 0, startY: void 0, touchesStart: {}, touchesCurrent: {}, }, p = { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0, }; let h = 1; Object.defineProperty(e.zoom, "scale", { get() { return h; }, set($) { if (h !== $) { const k = l.imageEl, B = l.slideEl; r("zoomChange", $, k, B); } h = $; }, }); function g() { if (o.length < 2) return 1; const $ = o[0].pageX, k = o[0].pageY, B = o[1].pageX, Y = o[1].pageY; return Math.sqrt((B - $) ** 2 + (Y - k) ** 2); } function w() { const $ = e.params.zoom, k = l.imageWrapEl.getAttribute("data-swiper-zoom") || $.maxRatio; if ($.limitToOriginalSize && l.imageEl && l.imageEl.naturalWidth) { const B = l.imageEl.naturalWidth / l.imageEl.offsetWidth; return Math.min(B, k); } return k; } function y() { if (o.length < 2) return { x: null, y: null }; const $ = l.imageEl.getBoundingClientRect(); return [ (o[0].pageX + (o[1].pageX - o[0].pageX) / 2 - $.x - a.scrollX) / f, (o[0].pageY + (o[1].pageY - o[0].pageY) / 2 - $.y - a.scrollY) / f, ]; } function v() { return e.isElement ? "swiper-slide" : `.${e.params.slideClass}`; } function m($) { const k = v(); return !!( $.target.matches(k) || e.slides.filter((B) => B.contains($.target)).length > 0 ); } function b($) { const k = `.${e.params.zoom.containerClass}`; return !!( $.target.matches(k) || [...e.hostEl.querySelectorAll(k)].filter((B) => B.contains($.target)) .length > 0 ); } function S($) { if (($.pointerType === "mouse" && o.splice(0, o.length), !m($))) return; const k = e.params.zoom; if (((n = !1), (u = !1), o.push($), !(o.length < 2))) { if (((n = !0), (l.scaleStart = g()), !l.slideEl)) { ((l.slideEl = $.target.closest( `.${e.params.slideClass}, swiper-slide`, )), l.slideEl || (l.slideEl = e.slides[e.activeIndex])); let B = l.slideEl.querySelector(`.${k.containerClass}`); if ( (B && (B = B.querySelectorAll( "picture, img, svg, canvas, .swiper-zoom-target", )[0]), (l.imageEl = B), B ? (l.imageWrapEl = le(l.imageEl, `.${k.containerClass}`)[0]) : (l.imageWrapEl = void 0), !l.imageWrapEl) ) { l.imageEl = void 0; return; } l.maxRatio = w(); } if (l.imageEl) { const [B, Y] = y(); ((l.originX = B), (l.originY = Y), (l.imageEl.style.transitionDuration = "0ms")); } c = !0; } } function A($) { if (!m($)) return; const k = e.params.zoom, B = e.zoom, Y = o.findIndex((H) => H.pointerId === $.pointerId); (Y >= 0 && (o[Y] = $), !(o.length < 2) && ((u = !0), (l.scaleMove = g()), !!l.imageEl && ((B.scale = (l.scaleMove / l.scaleStart) * f), B.scale > l.maxRatio && (B.scale = l.maxRatio - 1 + (B.scale - l.maxRatio + 1) ** 0.5), B.scale < k.minRatio && (B.scale = k.minRatio + 1 - (k.minRatio - B.scale + 1) ** 0.5), (l.imageEl.style.transform = `translate3d(0,0,0) scale(${B.scale})`)))); } function O($) { if (!m($) || ($.pointerType === "mouse" && $.type === "pointerout")) return; const k = e.params.zoom, B = e.zoom, Y = o.findIndex((H) => H.pointerId === $.pointerId); (Y >= 0 && o.splice(Y, 1), !(!n || !u) && ((n = !1), (u = !1), !!l.imageEl && ((B.scale = Math.max(Math.min(B.scale, l.maxRatio), k.minRatio)), (l.imageEl.style.transitionDuration = `${e.params.speed}ms`), (l.imageEl.style.transform = `translate3d(0,0,0) scale(${B.scale})`), (f = B.scale), (c = !1), B.scale > 1 && l.slideEl ? l.slideEl.classList.add(`${k.zoomedSlideClass}`) : B.scale <= 1 && l.slideEl && l.slideEl.classList.remove(`${k.zoomedSlideClass}`), B.scale === 1 && ((l.originX = 0), (l.originY = 0), (l.slideEl = void 0))))); } let z; function T() { e.touchEventsData.preventTouchMoveFromPointerMove = !1; } function P() { (clearTimeout(z), (e.touchEventsData.preventTouchMoveFromPointerMove = !0), (z = setTimeout(() => { T(); }))); } function I($) { const k = e.device; if (!l.imageEl || d.isTouched) return; (k.android && $.cancelable && $.preventDefault(), (d.isTouched = !0)); const B = o.length > 0 ? o[0] : $; ((d.touchesStart.x = B.pageX), (d.touchesStart.y = B.pageY)); } function C($) { if (!m($) || !b($)) return; const k = e.zoom; if (!l.imageEl || !d.isTouched || !l.slideEl) return; d.isMoved || ((d.width = l.imageEl.offsetWidth || l.imageEl.clientWidth), (d.height = l.imageEl.offsetHeight || l.imageEl.clientHeight), (d.startX = Le(l.imageWrapEl, "x") || 0), (d.startY = Le(l.imageWrapEl, "y") || 0), (l.slideWidth = l.slideEl.offsetWidth), (l.slideHeight = l.slideEl.offsetHeight), (l.imageWrapEl.style.transitionDuration = "0ms")); const B = d.width * k.scale, Y = d.height * k.scale; if ( ((d.minX = Math.min(l.slideWidth / 2 - B / 2, 0)), (d.maxX = -d.minX), (d.minY = Math.min(l.slideHeight / 2 - Y / 2, 0)), (d.maxY = -d.minY), (d.touchesCurrent.x = o.length > 0 ? o[0].pageX : $.pageX), (d.touchesCurrent.y = o.length > 0 ? o[0].pageY : $.pageY), Math.max( Math.abs(d.touchesCurrent.x - d.touchesStart.x), Math.abs(d.touchesCurrent.y - d.touchesStart.y), ) > 5 && (e.allowClick = !1), !d.isMoved && !c) ) { if ( e.isHorizontal() && ((Math.floor(d.minX) === Math.floor(d.startX) && d.touchesCurrent.x < d.touchesStart.x) || (Math.floor(d.maxX) === Math.floor(d.startX) && d.touchesCurrent.x > d.touchesStart.x)) ) { ((d.isTouched = !1), T()); return; } if ( !e.isHorizontal() && ((Math.floor(d.minY) === Math.floor(d.startY) && d.touchesCurrent.y < d.touchesStart.y) || (Math.floor(d.maxY) === Math.floor(d.startY) && d.touchesCurrent.y > d.touchesStart.y)) ) { ((d.isTouched = !1), T()); return; } } ($.cancelable && $.preventDefault(), $.stopPropagation(), P(), (d.isMoved = !0)); const R = (k.scale - f) / (l.maxRatio - e.params.zoom.minRatio), { originX: U, originY: fe } = l; ((d.currentX = d.touchesCurrent.x - d.touchesStart.x + d.startX + R * (d.width - U * 2)), (d.currentY = d.touchesCurrent.y - d.touchesStart.y + d.startY + R * (d.height - fe * 2)), d.currentX < d.minX && (d.currentX = d.minX + 1 - (d.minX - d.currentX + 1) ** 0.8), d.currentX > d.maxX && (d.currentX = d.maxX - 1 + (d.currentX - d.maxX + 1) ** 0.8), d.currentY < d.minY && (d.currentY = d.minY + 1 - (d.minY - d.currentY + 1) ** 0.8), d.currentY > d.maxY && (d.currentY = d.maxY - 1 + (d.currentY - d.maxY + 1) ** 0.8), p.prevPositionX || (p.prevPositionX = d.touchesCurrent.x), p.prevPositionY || (p.prevPositionY = d.touchesCurrent.y), p.prevTime || (p.prevTime = Date.now()), (p.x = (d.touchesCurrent.x - p.prevPositionX) / (Date.now() - p.prevTime) / 2), (p.y = (d.touchesCurrent.y - p.prevPositionY) / (Date.now() - p.prevTime) / 2), Math.abs(d.touchesCurrent.x - p.prevPositionX) < 2 && (p.x = 0), Math.abs(d.touchesCurrent.y - p.prevPositionY) < 2 && (p.y = 0), (p.prevPositionX = d.touchesCurrent.x), (p.prevPositionY = d.touchesCurrent.y), (p.prevTime = Date.now()), (l.imageWrapEl.style.transform = `translate3d(${d.currentX}px, ${d.currentY}px,0)`)); } function E() { const $ = e.zoom; if (!l.imageEl) return; if (!d.isTouched || !d.isMoved) { ((d.isTouched = !1), (d.isMoved = !1)); return; } ((d.isTouched = !1), (d.isMoved = !1)); let k = 300, B = 300; const Y = p.x * k, H = d.currentX + Y, R = p.y * B, U = d.currentY + R; (p.x !== 0 && (k = Math.abs((H - d.currentX) / p.x)), p.y !== 0 && (B = Math.abs((U - d.currentY) / p.y))); const fe = Math.max(k, B); ((d.currentX = H), (d.currentY = U)); const Me = d.width * $.scale, se = d.height * $.scale; ((d.minX = Math.min(l.slideWidth / 2 - Me / 2, 0)), (d.maxX = -d.minX), (d.minY = Math.min(l.slideHeight / 2 - se / 2, 0)), (d.maxY = -d.minY), (d.currentX = Math.max(Math.min(d.currentX, d.maxX), d.minX)), (d.currentY = Math.max(Math.min(d.currentY, d.maxY), d.minY)), (l.imageWrapEl.style.transitionDuration = `${fe}ms`), (l.imageWrapEl.style.transform = `translate3d(${d.currentX}px, ${d.currentY}px,0)`)); } function x() { const $ = e.zoom; l.slideEl && e.activeIndex !== e.slides.indexOf(l.slideEl) && (l.imageEl && (l.imageEl.style.transform = "translate3d(0,0,0) scale(1)"), l.imageWrapEl && (l.imageWrapEl.style.transform = "translate3d(0,0,0)"), l.slideEl.classList.remove(`${e.params.zoom.zoomedSlideClass}`), ($.scale = 1), (f = 1), (l.slideEl = void 0), (l.imageEl = void 0), (l.imageWrapEl = void 0), (l.originX = 0), (l.originY = 0)); } function D($) { const k = e.zoom, B = e.params.zoom; if (!l.slideEl) { ($ && $.target && (l.slideEl = $.target.closest( `.${e.params.slideClass}, swiper-slide`, )), l.slideEl || (e.params.virtual && e.params.virtual.enabled && e.virtual ? (l.slideEl = W(e.slidesEl, `.${e.params.slideActiveClass}`)[0]) : (l.slideEl = e.slides[e.activeIndex]))); let we = l.slideEl.querySelector(`.${B.containerClass}`); (we && (we = we.querySelectorAll( "picture, img, svg, canvas, .swiper-zoom-target", )[0]), (l.imageEl = we), we ? (l.imageWrapEl = le(l.imageEl, `.${B.containerClass}`)[0]) : (l.imageWrapEl = void 0)); } if (!l.imageEl || !l.imageWrapEl) return; (e.params.cssMode && ((e.wrapperEl.style.overflow = "hidden"), (e.wrapperEl.style.touchAction = "none")), l.slideEl.classList.add(`${B.zoomedSlideClass}`)); let Y, H, R, U, fe, Me, se, oe, tt, st, it, rt, Ce, Pe, He, Fe, Ne, Re; typeof d.touchesStart.x == "undefined" && $ ? ((Y = $.pageX), (H = $.pageY)) : ((Y = d.touchesStart.x), (H = d.touchesStart.y)); const ve = typeof $ == "number" ? $ : null; f === 1 && ve && ((Y = void 0), (H = void 0), (d.touchesStart.x = void 0), (d.touchesStart.y = void 0)); const at = w(); ((k.scale = ve || at), (f = ve || at), $ && !(f === 1 && ve) ? ((Ne = l.slideEl.offsetWidth), (Re = l.slideEl.offsetHeight), (R = be(l.slideEl).left + a.scrollX), (U = be(l.slideEl).top + a.scrollY), (fe = R + Ne / 2 - Y), (Me = U + Re / 2 - H), (tt = l.imageEl.offsetWidth || l.imageEl.clientWidth), (st = l.imageEl.offsetHeight || l.imageEl.clientHeight), (it = tt * k.scale), (rt = st * k.scale), (Ce = Math.min(Ne / 2 - it / 2, 0)), (Pe = Math.min(Re / 2 - rt / 2, 0)), (He = -Ce), (Fe = -Pe), (se = fe * k.scale), (oe = Me * k.scale), se < Ce && (se = Ce), se > He && (se = He), oe < Pe && (oe = Pe), oe > Fe && (oe = Fe)) : ((se = 0), (oe = 0)), ve && k.scale === 1 && ((l.originX = 0), (l.originY = 0)), (l.imageWrapEl.style.transitionDuration = "300ms"), (l.imageWrapEl.style.transform = `translate3d(${se}px, ${oe}px,0)`), (l.imageEl.style.transitionDuration = "300ms"), (l.imageEl.style.transform = `translate3d(0,0,0) scale(${k.scale})`)); } function G() { const $ = e.zoom, k = e.params.zoom; if (!l.slideEl) { e.params.virtual && e.params.virtual.enabled && e.virtual ? (l.slideEl = W(e.slidesEl, `.${e.params.slideActiveClass}`)[0]) : (l.slideEl = e.slides[e.activeIndex]); let B = l.slideEl.querySelector(`.${k.containerClass}`); (B && (B = B.querySelectorAll( "picture, img, svg, canvas, .swiper-zoom-target", )[0]), (l.imageEl = B), B ? (l.imageWrapEl = le(l.imageEl, `.${k.containerClass}`)[0]) : (l.imageWrapEl = void 0)); } !l.imageEl || !l.imageWrapEl || (e.params.cssMode && ((e.wrapperEl.style.overflow = ""), (e.wrapperEl.style.touchAction = "")), ($.scale = 1), (f = 1), (d.touchesStart.x = void 0), (d.touchesStart.y = void 0), (l.imageWrapEl.style.transitionDuration = "300ms"), (l.imageWrapEl.style.transform = "translate3d(0,0,0)"), (l.imageEl.style.transitionDuration = "300ms"), (l.imageEl.style.transform = "translate3d(0,0,0) scale(1)"), l.slideEl.classList.remove(`${k.zoomedSlideClass}`), (l.slideEl = void 0), (l.originX = 0), (l.originY = 0)); } function M($) { const k = e.zoom; k.scale && k.scale !== 1 ? G() : D($); } function L() { const $ = e.params.passiveListeners ? { passive: !0, capture: !1 } : !1, k = e.params.passiveListeners ? { passive: !1, capture: !0 } : !0; return { passiveListener: $, activeListenerWithCapture: k }; } function V() { const $ = e.zoom; if ($.enabled) return; $.enabled = !0; const { passiveListener: k, activeListenerWithCapture: B } = L(); (e.wrapperEl.addEventListener("pointerdown", S, k), e.wrapperEl.addEventListener("pointermove", A, B), ["pointerup", "pointercancel", "pointerout"].forEach((Y) => { e.wrapperEl.addEventListener(Y, O, k); }), e.wrapperEl.addEventListener("pointermove", C, B)); } function F() { const $ = e.zoom; if (!$.enabled) return; $.enabled = !1; const { passiveListener: k, activeListenerWithCapture: B } = L(); (e.wrapperEl.removeEventListener("pointerdown", S, k), e.wrapperEl.removeEventListener("pointermove", A, B), ["pointerup", "pointercancel", "pointerout"].forEach((Y) => { e.wrapperEl.removeEventListener(Y, O, k); }), e.wrapperEl.removeEventListener("pointermove", C, B)); } (i("init", () => { e.params.zoom.enabled && V(); }), i("destroy", () => { F(); }), i("touchStart", ($, k) => { !e.zoom.enabled || I(k); }), i("touchEnd", ($, k) => { !e.zoom.enabled || E(); }), i("doubleTap", ($, k) => { !e.animating && e.params.zoom.enabled && e.zoom.enabled && e.params.zoom.toggle && M(k); }), i("transitionEnd", () => { e.zoom.enabled && e.params.zoom.enabled && x(); }), i("slideChange", () => { e.zoom.enabled && e.params.zoom.enabled && e.params.cssMode && x(); }), Object.assign(e.zoom, { enable: V, disable: F, in: D, out: G, toggle: M, })); } function Os(s) { let { swiper: e, extendParams: t, on: i } = s; (t({ controller: { control: void 0, inverse: !1, by: "slide" } }), (e.controller = { control: void 0 })); function r(u, o) { const l = (function () { let g, w, y; return (v, m) => { for (w = -1, g = v.length; g - w > 1; ) ((y = (g + w) >> 1), v[y] <= m ? (w = y) : (g = y)); return g; }; })(); ((this.x = u), (this.y = o), (this.lastIndex = u.length - 1)); let d, p; return ( (this.interpolate = function (g) { return g ? ((p = l(this.x, g)), (d = p - 1), ((g - this.x[d]) * (this.y[p] - this.y[d])) / (this.x[p] - this.x[d]) + this.y[d]) : 0; }), this ); } function a(u) { e.controller.spline = e.params.loop ? new r(e.slidesGrid, u.slidesGrid) : new r(e.snapGrid, u.snapGrid); } function f(u, o) { const l = e.controller.control; let d, p; const h = e.constructor; function g(w) { if (w.destroyed) return; const y = e.rtlTranslate ? -e.translate : e.translate; (e.params.controller.by === "slide" && (a(w), (p = -e.controller.spline.interpolate(-y))), (!p || e.params.controller.by === "container") && ((d = (w.maxTranslate() - w.minTranslate()) / (e.maxTranslate() - e.minTranslate())), (Number.isNaN(d) || !Number.isFinite(d)) && (d = 1), (p = (y - e.minTranslate()) * d + w.minTranslate())), e.params.controller.inverse && (p = w.maxTranslate() - p), w.updateProgress(p), w.setTranslate(p, e), w.updateActiveIndex(), w.updateSlidesClasses()); } if (Array.isArray(l)) for (let w = 0; w < l.length; w += 1) l[w] !== o && l[w] instanceof h && g(l[w]); else l instanceof h && o !== l && g(l); } function c(u, o) { const l = e.constructor, d = e.controller.control; let p; function h(g) { g.destroyed || (g.setTransition(u, e), u !== 0 && (g.transitionStart(), g.params.autoHeight && ae(() => { g.updateAutoHeight(); }), he(g.wrapperEl, () => { !d || g.transitionEnd(); }))); } if (Array.isArray(d)) for (p = 0; p < d.length; p += 1) d[p] !== o && d[p] instanceof l && h(d[p]); else d instanceof l && o !== d && h(d); } function n() { !e.controller.control || (e.controller.spline && ((e.controller.spline = void 0), delete e.controller.spline)); } (i("beforeInit", () => { if ( typeof window != "undefined" && (typeof e.params.controller.control == "string" || e.params.controller.control instanceof HTMLElement) ) { (typeof e.params.controller.control == "string" ? [...document.querySelectorAll(e.params.controller.control)] : [e.params.controller.control] ).forEach((o) => { if ( (e.controller.control || (e.controller.control = []), o && o.swiper) ) e.controller.control.push(o.swiper); else if (o) { const l = `${e.params.eventsPrefix}init`, d = (p) => { (e.controller.control.push(p.detail[0]), e.update(), o.removeEventListener(l, d)); }; o.addEventListener(l, d); } }); return; } e.controller.control = e.params.controller.control; }), i("update", () => { n(); }), i("resize", () => { n(); }), i("observerUpdate", () => { n(); }), i("setTranslate", (u, o, l) => { !e.controller.control || e.controller.control.destroyed || e.controller.setTranslate(o, l); }), i("setTransition", (u, o, l) => { !e.controller.control || e.controller.control.destroyed || e.controller.setTransition(o, l); }), Object.assign(e.controller, { setTranslate: f, setTransition: c })); } function $s(s) { let { swiper: e, extendParams: t, on: i } = s; (t({ a11y: { enabled: !0, notificationClass: "swiper-notification", prevSlideMessage: "Previous slide", nextSlideMessage: "Next slide", firstSlideMessage: "This is the first slide", lastSlideMessage: "This is the last slide", paginationBulletMessage: "Go to slide {{index}}", slideLabelMessage: "{{index}} / {{slidesLength}}", containerMessage: null, containerRoleDescriptionMessage: null, itemRoleDescriptionMessage: null, slideRole: "group", id: null, scrollOnFocus: !0, }, }), (e.a11y = { clicked: !1 })); let r = null, a, f, c = new Date().getTime(); function n(M) { const L = r; L.length !== 0 && ((L.innerHTML = ""), (L.innerHTML = M)); } function u(M) { M === void 0 && (M = 16); const L = () => Math.round(16 * Math.random()).toString(16); return "x".repeat(M).replace(/x/g, L); } function o(M) { ((M = N(M)), M.forEach((L) => { L.setAttribute("tabIndex", "0"); })); } function l(M) { ((M = N(M)), M.forEach((L) => { L.setAttribute("tabIndex", "-1"); })); } function d(M, L) { ((M = N(M)), M.forEach((V) => { V.setAttribute("role", L); })); } function p(M, L) { ((M = N(M)), M.forEach((V) => { V.setAttribute("aria-roledescription", L); })); } function h(M, L) { ((M = N(M)), M.forEach((V) => { V.setAttribute("aria-controls", L); })); } function g(M, L) { ((M = N(M)), M.forEach((V) => { V.setAttribute("aria-label", L); })); } function w(M, L) { ((M = N(M)), M.forEach((V) => { V.setAttribute("id", L); })); } function y(M, L) { ((M = N(M)), M.forEach((V) => { V.setAttribute("aria-live", L); })); } function v(M) { ((M = N(M)), M.forEach((L) => { L.setAttribute("aria-disabled", !0); })); } function m(M) { ((M = N(M)), M.forEach((L) => { L.setAttribute("aria-disabled", !1); })); } function b(M) { if (M.keyCode !== 13 && M.keyCode !== 32) return; const L = e.params.a11y, V = M.target; if ( !( e.pagination && e.pagination.el && (V === e.pagination.el || e.pagination.el.contains(M.target)) && !M.target.matches(te(e.params.pagination.bulletClass)) ) ) { if (e.navigation && e.navigation.prevEl && e.navigation.nextEl) { const F = N(e.navigation.prevEl); (N(e.navigation.nextEl).includes(V) && ((e.isEnd && !e.params.loop) || e.slideNext(), e.isEnd ? n(L.lastSlideMessage) : n(L.nextSlideMessage)), F.includes(V) && ((e.isBeginning && !e.params.loop) || e.slidePrev(), e.isBeginning ? n(L.firstSlideMessage) : n(L.prevSlideMessage))); } e.pagination && V.matches(te(e.params.pagination.bulletClass)) && V.click(); } } function S() { if (e.params.loop || e.params.rewind || !e.navigation) return; const { nextEl: M, prevEl: L } = e.navigation; (L && (e.isBeginning ? (v(L), l(L)) : (m(L), o(L))), M && (e.isEnd ? (v(M), l(M)) : (m(M), o(M)))); } function A() { return ( e.pagination && e.pagination.bullets && e.pagination.bullets.length ); } function O() { return A() && e.params.pagination.clickable; } function z() { const M = e.params.a11y; !A() || e.pagination.bullets.forEach((L) => { (e.params.pagination.clickable && (o(L), e.params.pagination.renderBullet || (d(L, "button"), g( L, M.paginationBulletMessage.replace(/\{\{index\}\}/, me(L) + 1), ))), L.matches(te(e.params.pagination.bulletActiveClass)) ? L.setAttribute("aria-current", "true") : L.removeAttribute("aria-current")); }); } const T = (M, L, V) => { (o(M), M.tagName !== "BUTTON" && (d(M, "button"), M.addEventListener("keydown", b)), g(M, V), h(M, L)); }, P = (M) => { (f && f !== M.target && !f.contains(M.target) && (a = !0), (e.a11y.clicked = !0)); }, I = () => { ((a = !1), requestAnimationFrame(() => { requestAnimationFrame(() => { e.destroyed || (e.a11y.clicked = !1); }); })); }, C = (M) => { c = new Date().getTime(); }, E = (M) => { if ( e.a11y.clicked || !e.params.a11y.scrollOnFocus || new Date().getTime() - c < 100 ) return; const L = M.target.closest(`.${e.params.slideClass}, swiper-slide`); if (!L || !e.slides.includes(L)) return; f = L; const V = e.slides.indexOf(L) === e.activeIndex, F = e.params.watchSlidesProgress && e.visibleSlides && e.visibleSlides.includes(L); V || F || (M.sourceCapabilities && M.sourceCapabilities.firesTouchEvents) || (e.isHorizontal() ? (e.el.scrollLeft = 0) : (e.el.scrollTop = 0), requestAnimationFrame(() => { a || (e.params.loop ? e.slideToLoop( parseInt(L.getAttribute("data-swiper-slide-index")), 0, ) : e.slideTo(e.slides.indexOf(L), 0), (a = !1)); })); }, x = () => { const M = e.params.a11y; (M.itemRoleDescriptionMessage && p(e.slides, M.itemRoleDescriptionMessage), M.slideRole && d(e.slides, M.slideRole)); const L = e.slides.length; M.slideLabelMessage && e.slides.forEach((V, F) => { const $ = e.params.loop ? parseInt(V.getAttribute("data-swiper-slide-index"), 10) : F, k = M.slideLabelMessage .replace(/\{\{index\}\}/, $ + 1) .replace(/\{\{slidesLength\}\}/, L); g(V, k); }); }, D = () => { const M = e.params.a11y; e.el.append(r); const L = e.el; (M.containerRoleDescriptionMessage && p(L, M.containerRoleDescriptionMessage), M.containerMessage && g(L, M.containerMessage)); const V = e.wrapperEl, F = M.id || V.getAttribute("id") || `swiper-wrapper-${u(16)}`, $ = e.params.autoplay && e.params.autoplay.enabled ? "off" : "polite"; (w(V, F), y(V, $), x()); let { nextEl: k, prevEl: B } = e.navigation ? e.navigation : {}; ((k = N(k)), (B = N(B)), k && k.forEach((H) => T(H, F, M.nextSlideMessage)), B && B.forEach((H) => T(H, F, M.prevSlideMessage)), O() && N(e.pagination.el).forEach((R) => { R.addEventListener("keydown", b); }), q().addEventListener("visibilitychange", C), e.el.addEventListener("focus", E, !0), e.el.addEventListener("focus", E, !0), e.el.addEventListener("pointerdown", P, !0), e.el.addEventListener("pointerup", I, !0)); }; function G() { r && r.remove(); let { nextEl: M, prevEl: L } = e.navigation ? e.navigation : {}; ((M = N(M)), (L = N(L)), M && M.forEach((F) => F.removeEventListener("keydown", b)), L && L.forEach((F) => F.removeEventListener("keydown", b)), O() && N(e.pagination.el).forEach(($) => { $.removeEventListener("keydown", b); }), q().removeEventListener("visibilitychange", C), e.el && typeof e.el != "string" && (e.el.removeEventListener("focus", E, !0), e.el.removeEventListener("pointerdown", P, !0), e.el.removeEventListener("pointerup", I, !0))); } (i("beforeInit", () => { ((r = J("span", e.params.a11y.notificationClass)), r.setAttribute("aria-live", "assertive"), r.setAttribute("aria-atomic", "true")); }), i("afterInit", () => { !e.params.a11y.enabled || D(); }), i( "slidesLengthChange snapGridLengthChange slidesGridLengthChange", () => { !e.params.a11y.enabled || x(); }, ), i("fromEdge toEdge afterInit lock unlock", () => { !e.params.a11y.enabled || S(); }), i("paginationUpdate", () => { !e.params.a11y.enabled || z(); }), i("destroy", () => { !e.params.a11y.enabled || G(); })); } function ks(s) { let { swiper: e, extendParams: t, on: i } = s; t({ history: { enabled: !1, root: "", replaceState: !1, key: "slides", keepQuery: !1, }, }); let r = !1, a = {}; const f = (p) => p .toString() .replace(/\s+/g, "-") .replace(/[^\w-]+/g, "") .replace(/--+/g, "-") .replace(/^-+/, "") .replace(/-+$/, ""), c = (p) => { const h = X(); let g; p ? (g = new URL(p)) : (g = h.location); const w = g.pathname .slice(1) .split("/") .filter((b) => b !== ""), y = w.length, v = w[y - 2], m = w[y - 1]; return { key: v, value: m }; }, n = (p, h) => { const g = X(); if (!r || !e.params.history.enabled) return; let w; e.params.url ? (w = new URL(e.params.url)) : (w = g.location); const y = e.virtual && e.params.virtual.enabled ? e.slidesEl.querySelector(`[data-swiper-slide-index="${h}"]`) : e.slides[h]; let v = f(y.getAttribute("data-history")); if (e.params.history.root.length > 0) { let b = e.params.history.root; (b[b.length - 1] === "/" && (b = b.slice(0, b.length - 1)), (v = `${b}/${p ? `${p}/` : ""}${v}`)); } else w.pathname.includes(p) || (v = `${p ? `${p}/` : ""}${v}`); e.params.history.keepQuery && (v += w.search); const m = g.history.state; (m && m.value === v) || (e.params.history.replaceState ? g.history.replaceState({ value: v }, null, v) : g.history.pushState({ value: v }, null, v)); }, u = (p, h, g) => { if (h) for (let w = 0, y = e.slides.length; w < y; w += 1) { const v = e.slides[w]; if (f(v.getAttribute("data-history")) === h) { const b = e.getSlideIndex(v); e.slideTo(b, p, g); } } else e.slideTo(0, p, g); }, o = () => { ((a = c(e.params.url)), u(e.params.speed, a.value, !1)); }, l = () => { const p = X(); if (!!e.params.history) { if (!p.history || !p.history.pushState) { ((e.params.history.enabled = !1), (e.params.hashNavigation.enabled = !0)); return; } if (((r = !0), (a = c(e.params.url)), !a.key && !a.value)) { e.params.history.replaceState || p.addEventListener("popstate", o); return; } (u(0, a.value, e.params.runCallbacksOnInit), e.params.history.replaceState || p.addEventListener("popstate", o)); } }, d = () => { const p = X(); e.params.history.replaceState || p.removeEventListener("popstate", o); }; (i("init", () => { e.params.history.enabled && l(); }), i("destroy", () => { e.params.history.enabled && d(); }), i("transitionEnd _freeModeNoMomentumRelease", () => { r && n(e.params.history.key, e.activeIndex); }), i("slideChange", () => { r && e.params.cssMode && n(e.params.history.key, e.activeIndex); })); } function Vs(s) { let { swiper: e, extendParams: t, emit: i, on: r } = s, a = !1; const f = q(), c = X(); t({ hashNavigation: { enabled: !1, replaceState: !1, watchState: !1, getSlideIndex(d, p) { if (e.virtual && e.params.virtual.enabled) { const h = e.slides.filter( (w) => w.getAttribute("data-hash") === p, )[0]; return h ? parseInt(h.getAttribute("data-swiper-slide-index"), 10) : 0; } return e.getSlideIndex( W( e.slidesEl, `.${e.params.slideClass}[data-hash="${p}"], swiper-slide[data-hash="${p}"]`, )[0], ); }, }, }); const n = () => { i("hashChange"); const d = f.location.hash.replace("#", ""), p = e.virtual && e.params.virtual.enabled ? e.slidesEl.querySelector( `[data-swiper-slide-index="${e.activeIndex}"]`, ) : e.slides[e.activeIndex], h = p ? p.getAttribute("data-hash") : ""; if (d !== h) { const g = e.params.hashNavigation.getSlideIndex(e, d); if (typeof g == "undefined" || Number.isNaN(g)) return; e.slideTo(g); } }, u = () => { if (!a || !e.params.hashNavigation.enabled) return; const d = e.virtual && e.params.virtual.enabled ? e.slidesEl.querySelector( `[data-swiper-slide-index="${e.activeIndex}"]`, ) : e.slides[e.activeIndex], p = d ? d.getAttribute("data-hash") || d.getAttribute("data-history") : ""; e.params.hashNavigation.replaceState && c.history && c.history.replaceState ? (c.history.replaceState(null, null, `#${p}` || ""), i("hashSet")) : ((f.location.hash = p || ""), i("hashSet")); }, o = () => { if ( !e.params.hashNavigation.enabled || (e.params.history && e.params.history.enabled) ) return; a = !0; const d = f.location.hash.replace("#", ""); if (d) { const p = 0, h = e.params.hashNavigation.getSlideIndex(e, d); e.slideTo(h || 0, p, e.params.runCallbacksOnInit, !0); } e.params.hashNavigation.watchState && c.addEventListener("hashchange", n); }, l = () => { e.params.hashNavigation.watchState && c.removeEventListener("hashchange", n); }; (r("init", () => { e.params.hashNavigation.enabled && o(); }), r("destroy", () => { e.params.hashNavigation.enabled && l(); }), r("transitionEnd _freeModeNoMomentumRelease", () => { a && u(); }), r("slideChange", () => { a && e.params.cssMode && u(); })); } function Gs(s) { let { swiper: e, extendParams: t, on: i, emit: r, params: a } = s; ((e.autoplay = { running: !1, paused: !1, timeLeft: 0 }), t({ autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !1, stopOnLastSlide: !1, reverseDirection: !1, pauseOnMouseEnter: !1, }, })); let f, c, n = a && a.autoplay ? a.autoplay.delay : 3e3, u = a && a.autoplay ? a.autoplay.delay : 3e3, o, l = new Date().getTime(), d, p, h, g, w, y, v; function m(L) { !e || e.destroyed || !e.wrapperEl || (L.target === e.wrapperEl && (e.wrapperEl.removeEventListener("transitionend", m), !(v || (L.detail && L.detail.bySwiperTouchMove)) && P())); } const b = () => { if (e.destroyed || !e.autoplay.running) return; e.autoplay.paused ? (d = !0) : d && ((u = o), (d = !1)); const L = e.autoplay.paused ? o : l + u - new Date().getTime(); ((e.autoplay.timeLeft = L), r("autoplayTimeLeft", L, L / n), (c = requestAnimationFrame(() => { b(); }))); }, S = () => { let L; return ( e.virtual && e.params.virtual.enabled ? (L = e.slides.filter((F) => F.classList.contains("swiper-slide-active"), )[0]) : (L = e.slides[e.activeIndex]), L ? parseInt(L.getAttribute("data-swiper-autoplay"), 10) : void 0 ); }, A = (L) => { if (e.destroyed || !e.autoplay.running) return; (cancelAnimationFrame(c), b()); let V = typeof L == "undefined" ? e.params.autoplay.delay : L; ((n = e.params.autoplay.delay), (u = e.params.autoplay.delay)); const F = S(); (!Number.isNaN(F) && F > 0 && typeof L == "undefined" && ((V = F), (n = F), (u = F)), (o = V)); const $ = e.params.speed, k = () => { !e || e.destroyed || (e.params.autoplay.reverseDirection ? !e.isBeginning || e.params.loop || e.params.rewind ? (e.slidePrev($, !0, !0), r("autoplay")) : e.params.autoplay.stopOnLastSlide || (e.slideTo(e.slides.length - 1, $, !0, !0), r("autoplay")) : !e.isEnd || e.params.loop || e.params.rewind ? (e.slideNext($, !0, !0), r("autoplay")) : e.params.autoplay.stopOnLastSlide || (e.slideTo(0, $, !0, !0), r("autoplay")), e.params.cssMode && ((l = new Date().getTime()), requestAnimationFrame(() => { A(); }))); }; return ( V > 0 ? (clearTimeout(f), (f = setTimeout(() => { k(); }, V))) : requestAnimationFrame(() => { k(); }), V ); }, O = () => { ((l = new Date().getTime()), (e.autoplay.running = !0), A(), r("autoplayStart")); }, z = () => { ((e.autoplay.running = !1), clearTimeout(f), cancelAnimationFrame(c), r("autoplayStop")); }, T = (L, V) => { if (e.destroyed || !e.autoplay.running) return; (clearTimeout(f), L || (y = !0)); const F = () => { (r("autoplayPause"), e.params.autoplay.waitForTransition ? e.wrapperEl.addEventListener("transitionend", m) : P()); }; if (((e.autoplay.paused = !0), V)) { (w && (o = e.params.autoplay.delay), (w = !1), F()); return; } ((o = (o || e.params.autoplay.delay) - (new Date().getTime() - l)), !(e.isEnd && o < 0 && !e.params.loop) && (o < 0 && (o = 0), F())); }, P = () => { (e.isEnd && o < 0 && !e.params.loop) || e.destroyed || !e.autoplay.running || ((l = new Date().getTime()), y ? ((y = !1), A(o)) : A(), (e.autoplay.paused = !1), r("autoplayResume")); }, I = () => { if (e.destroyed || !e.autoplay.running) return; const L = q(); (L.visibilityState === "hidden" && ((y = !0), T(!0)), L.visibilityState === "visible" && P()); }, C = (L) => { L.pointerType === "mouse" && ((y = !0), (v = !0), !(e.animating || e.autoplay.paused) && T(!0)); }, E = (L) => { L.pointerType === "mouse" && ((v = !1), e.autoplay.paused && P()); }, x = () => { e.params.autoplay.pauseOnMouseEnter && (e.el.addEventListener("pointerenter", C), e.el.addEventListener("pointerleave", E)); }, D = () => { e.el && typeof e.el != "string" && (e.el.removeEventListener("pointerenter", C), e.el.removeEventListener("pointerleave", E)); }, G = () => { q().addEventListener("visibilitychange", I); }, M = () => { q().removeEventListener("visibilitychange", I); }; (i("init", () => { e.params.autoplay.enabled && (x(), G(), O()); }), i("destroy", () => { (D(), M(), e.autoplay.running && z()); }), i("_freeModeStaticRelease", () => { (h || y) && P(); }), i("_freeModeNoMomentumRelease", () => { e.params.autoplay.disableOnInteraction ? z() : T(!0, !0); }), i("beforeTransitionStart", (L, V, F) => { e.destroyed || !e.autoplay.running || (F || !e.params.autoplay.disableOnInteraction ? T(!0, !0) : z()); }), i("sliderFirstMove", () => { if (!(e.destroyed || !e.autoplay.running)) { if (e.params.autoplay.disableOnInteraction) { z(); return; } ((p = !0), (h = !1), (y = !1), (g = setTimeout(() => { ((y = !0), (h = !0), T(!0)); }, 200))); } }), i("touchEnd", () => { if (!(e.destroyed || !e.autoplay.running || !p)) { if ( (clearTimeout(g), clearTimeout(f), e.params.autoplay.disableOnInteraction) ) { ((h = !1), (p = !1)); return; } (h && e.params.cssMode && P(), (h = !1), (p = !1)); } }), i("slideChange", () => { e.destroyed || !e.autoplay.running || (w = !0); }), Object.assign(e.autoplay, { start: O, stop: z, pause: T, resume: P })); } function Bs(s) { let { swiper: e, extendParams: t, on: i } = s; t({ thumbs: { swiper: null, multipleActiveThumbs: !0, autoScrollOffset: 0, slideThumbActiveClass: "swiper-slide-thumb-active", thumbsContainerClass: "swiper-thumbs", }, }); let r = !1, a = !1; e.thumbs = { swiper: null }; function f() { const u = e.thumbs.swiper; if (!u || u.destroyed) return; const o = u.clickedIndex, l = u.clickedSlide; if ( (l && l.classList.contains(e.params.thumbs.slideThumbActiveClass)) || typeof o == "undefined" || o === null ) return; let d; (u.params.loop ? (d = parseInt( u.clickedSlide.getAttribute("data-swiper-slide-index"), 10, )) : (d = o), e.params.loop ? e.slideToLoop(d) : e.slideTo(d)); } function c() { const { thumbs: u } = e.params; if (r) return !1; r = !0; const o = e.constructor; if (u.swiper instanceof o) ((e.thumbs.swiper = u.swiper), Object.assign(e.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1, }), Object.assign(e.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1, }), e.thumbs.swiper.update()); else if (ue(u.swiper)) { const l = Object.assign({}, u.swiper); (Object.assign(l, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), (e.thumbs.swiper = new o(l)), (a = !0)); } return ( e.thumbs.swiper.el.classList.add(e.params.thumbs.thumbsContainerClass), e.thumbs.swiper.on("tap", f), !0 ); } function n(u) { const o = e.thumbs.swiper; if (!o || o.destroyed) return; const l = o.params.slidesPerView === "auto" ? o.slidesPerViewDynamic() : o.params.slidesPerView; let d = 1; const p = e.params.thumbs.slideThumbActiveClass; if ( (e.params.slidesPerView > 1 && !e.params.centeredSlides && (d = e.params.slidesPerView), e.params.thumbs.multipleActiveThumbs || (d = 1), (d = Math.floor(d)), o.slides.forEach((w) => w.classList.remove(p)), o.params.loop || (o.params.virtual && o.params.virtual.enabled)) ) for (let w = 0; w < d; w += 1) W( o.slidesEl, `[data-swiper-slide-index="${e.realIndex + w}"]`, ).forEach((y) => { y.classList.add(p); }); else for (let w = 0; w < d; w += 1) o.slides[e.realIndex + w] && o.slides[e.realIndex + w].classList.add(p); const h = e.params.thumbs.autoScrollOffset, g = h && !o.params.loop; if (e.realIndex !== o.realIndex || g) { const w = o.activeIndex; let y, v; if (o.params.loop) { const m = o.slides.filter( (b) => b.getAttribute("data-swiper-slide-index") === `${e.realIndex}`, )[0]; ((y = o.slides.indexOf(m)), (v = e.activeIndex > e.previousIndex ? "next" : "prev")); } else ((y = e.realIndex), (v = y > e.previousIndex ? "next" : "prev")); (g && (y += v === "next" ? h : -1 * h), o.visibleSlidesIndexes && o.visibleSlidesIndexes.indexOf(y) < 0 && (o.params.centeredSlides ? y > w ? (y = y - Math.floor(l / 2) + 1) : (y = y + Math.floor(l / 2) - 1) : y > w && o.params.slidesPerGroup === 1, o.slideTo(y, u ? 0 : void 0))); } } (i("beforeInit", () => { const { thumbs: u } = e.params; if (!(!u || !u.swiper)) if (typeof u.swiper == "string" || u.swiper instanceof HTMLElement) { const o = q(), l = () => { const p = typeof u.swiper == "string" ? o.querySelector(u.swiper) : u.swiper; if (p && p.swiper) ((u.swiper = p.swiper), c(), n(!0)); else if (p) { const h = `${e.params.eventsPrefix}init`, g = (w) => { ((u.swiper = w.detail[0]), p.removeEventListener(h, g), c(), n(!0), u.swiper.update(), e.update()); }; p.addEventListener(h, g); } return p; }, d = () => { if (e.destroyed) return; l() || requestAnimationFrame(d); }; requestAnimationFrame(d); } else (c(), n(!0)); }), i("slideChange update resize observerUpdate", () => { n(); }), i("setTransition", (u, o) => { const l = e.thumbs.swiper; !l || l.destroyed || l.setTransition(o); }), i("beforeDestroy", () => { const u = e.thumbs.swiper; !u || u.destroyed || (a && u.destroy()); }), Object.assign(e.thumbs, { init: c, update: n })); } function Hs(s) { let { swiper: e, extendParams: t, emit: i, once: r } = s; t({ freeMode: { enabled: !1, momentum: !0, momentumRatio: 1, momentumBounce: !0, momentumBounceRatio: 1, momentumVelocityRatio: 1, sticky: !1, minimumVelocity: 0.02, }, }); function a() { if (e.params.cssMode) return; const n = e.getTranslate(); (e.setTranslate(n), e.setTransition(0), (e.touchEventsData.velocities.length = 0), e.freeMode.onTouchEnd({ currentPos: e.rtl ? e.translate : -e.translate, })); } function f() { if (e.params.cssMode) return; const { touchEventsData: n, touches: u } = e; (n.velocities.length === 0 && n.velocities.push({ position: u[e.isHorizontal() ? "startX" : "startY"], time: n.touchStartTime, }), n.velocities.push({ position: u[e.isHorizontal() ? "currentX" : "currentY"], time: ee(), })); } function c(n) { let { currentPos: u } = n; if (e.params.cssMode) return; const { params: o, wrapperEl: l, rtlTranslate: d, snapGrid: p, touchEventsData: h, } = e, w = ee() - h.touchStartTime; if (u < -e.minTranslate()) { e.slideTo(e.activeIndex); return; } if (u > -e.maxTranslate()) { e.slides.length < p.length ? e.slideTo(p.length - 1) : e.slideTo(e.slides.length - 1); return; } if (o.freeMode.momentum) { if (h.velocities.length > 1) { const z = h.velocities.pop(), T = h.velocities.pop(), P = z.position - T.position, I = z.time - T.time; ((e.velocity = P / I), (e.velocity /= 2), Math.abs(e.velocity) < o.freeMode.minimumVelocity && (e.velocity = 0), (I > 150 || ee() - z.time > 300) && (e.velocity = 0)); } else e.velocity = 0; ((e.velocity *= o.freeMode.momentumVelocityRatio), (h.velocities.length = 0)); let y = 1e3 * o.freeMode.momentumRatio; const v = e.velocity * y; let m = e.translate + v; d && (m = -m); let b = !1, S; const A = Math.abs(e.velocity) * 20 * o.freeMode.momentumBounceRatio; let O; if (m < e.maxTranslate()) (o.freeMode.momentumBounce ? (m + e.maxTranslate() < -A && (m = e.maxTranslate() - A), (S = e.maxTranslate()), (b = !0), (h.allowMomentumBounce = !0)) : (m = e.maxTranslate()), o.loop && o.centeredSlides && (O = !0)); else if (m > e.minTranslate()) (o.freeMode.momentumBounce ? (m - e.minTranslate() > A && (m = e.minTranslate() + A), (S = e.minTranslate()), (b = !0), (h.allowMomentumBounce = !0)) : (m = e.minTranslate()), o.loop && o.centeredSlides && (O = !0)); else if (o.freeMode.sticky) { let z; for (let T = 0; T < p.length; T += 1) if (p[T] > -m) { z = T; break; } (Math.abs(p[z] - m) < Math.abs(p[z - 1] - m) || e.swipeDirection === "next" ? (m = p[z]) : (m = p[z - 1]), (m = -m)); } if ( (O && r("transitionEnd", () => { e.loopFix(); }), e.velocity !== 0) ) { if ( (d ? (y = Math.abs((-m - e.translate) / e.velocity)) : (y = Math.abs((m - e.translate) / e.velocity)), o.freeMode.sticky) ) { const z = Math.abs((d ? -m : m) - e.translate), T = e.slidesSizesGrid[e.activeIndex]; z < T ? (y = o.speed) : z < 2 * T ? (y = o.speed * 1.5) : (y = o.speed * 2.5); } } else if (o.freeMode.sticky) { e.slideToClosest(); return; } (o.freeMode.momentumBounce && b ? (e.updateProgress(S), e.setTransition(y), e.setTranslate(m), e.transitionStart(!0, e.swipeDirection), (e.animating = !0), he(l, () => { !e || e.destroyed || !h.allowMomentumBounce || (i("momentumBounce"), e.setTransition(o.speed), setTimeout(() => { (e.setTranslate(S), he(l, () => { !e || e.destroyed || e.transitionEnd(); })); }, 0)); })) : e.velocity ? (i("_freeModeNoMomentumRelease"), e.updateProgress(m), e.setTransition(y), e.setTranslate(m), e.transitionStart(!0, e.swipeDirection), e.animating || ((e.animating = !0), he(l, () => { !e || e.destroyed || e.transitionEnd(); }))) : e.updateProgress(m), e.updateActiveIndex(), e.updateSlidesClasses()); } else if (o.freeMode.sticky) { e.slideToClosest(); return; } else o.freeMode && i("_freeModeNoMomentumRelease"); (!o.freeMode.momentum || w >= o.longSwipesMs) && (i("_freeModeStaticRelease"), e.updateProgress(), e.updateActiveIndex(), e.updateSlidesClasses()); } Object.assign(e, { freeMode: { onTouchStart: a, onTouchMove: f, onTouchEnd: c }, }); } function Fs(s) { let { swiper: e, extendParams: t, on: i } = s; t({ grid: { rows: 1, fill: "column" } }); let r, a, f, c; const n = () => { let g = e.params.spaceBetween; return ( typeof g == "string" && g.indexOf("%") >= 0 ? (g = (parseFloat(g.replace("%", "")) / 100) * e.size) : typeof g == "string" && (g = parseFloat(g)), g ); }, u = (g) => { const { slidesPerView: w } = e.params, { rows: y, fill: v } = e.params.grid, m = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : g.length; ((f = Math.floor(m / y)), Math.floor(m / y) === m / y ? (r = m) : (r = Math.ceil(m / y) * y), w !== "auto" && v === "row" && (r = Math.max(r, w * y)), (a = r / y)); }, o = () => { e.slides && e.slides.forEach((g) => { g.swiperSlideGridSet && ((g.style.height = ""), (g.style[e.getDirectionLabel("margin-top")] = "")); }); }, l = (g, w, y) => { const { slidesPerGroup: v } = e.params, m = n(), { rows: b, fill: S } = e.params.grid, A = e.virtual && e.params.virtual.enabled ? e.virtual.slides.length : y.length; let O, z, T; if (S === "row" && v > 1) { const P = Math.floor(g / (v * b)), I = g - b * v * P, C = P === 0 ? v : Math.min(Math.ceil((A - P * b * v) / b), v); ((T = Math.floor(I / C)), (z = I - T * C + P * v), (O = z + (T * r) / b), (w.style.order = O)); } else S === "column" ? ((z = Math.floor(g / b)), (T = g - z * b), (z > f || (z === f && T === b - 1)) && ((T += 1), T >= b && ((T = 0), (z += 1)))) : ((T = Math.floor(g / a)), (z = g - T * a)); ((w.row = T), (w.column = z), (w.style.height = `calc((100% - ${(b - 1) * m}px) / ${b})`), (w.style[e.getDirectionLabel("margin-top")] = T !== 0 ? m && `${m}px` : ""), (w.swiperSlideGridSet = !0)); }, d = (g, w) => { const { centeredSlides: y, roundLengths: v } = e.params, m = n(), { rows: b } = e.params.grid; if ( ((e.virtualSize = (g + m) * r), (e.virtualSize = Math.ceil(e.virtualSize / b) - m), e.params.cssMode || (e.wrapperEl.style[e.getDirectionLabel("width")] = `${ e.virtualSize + m }px`), y) ) { const S = []; for (let A = 0; A < w.length; A += 1) { let O = w[A]; (v && (O = Math.floor(O)), w[A] < e.virtualSize + w[0] && S.push(O)); } (w.splice(0, w.length), w.push(...S)); } }, p = () => { c = e.params.grid && e.params.grid.rows > 1; }, h = () => { const { params: g, el: w } = e, y = g.grid && g.grid.rows > 1; (c && !y ? (w.classList.remove( `${g.containerModifierClass}grid`, `${g.containerModifierClass}grid-column`, ), (f = 1), e.emitContainerClasses()) : !c && y && (w.classList.add(`${g.containerModifierClass}grid`), g.grid.fill === "column" && w.classList.add(`${g.containerModifierClass}grid-column`), e.emitContainerClasses()), (c = y)); }; (i("init", p), i("update", h), (e.grid = { initSlides: u, unsetSlides: o, updateSlide: l, updateWrapperSize: d, })); } function Ns(s) { const e = this, { params: t, slidesEl: i } = e; t.loop && e.loopDestroy(); const r = (a) => { if (typeof a == "string") { const f = document.createElement("div"); ((f.innerHTML = a), i.append(f.children[0]), (f.innerHTML = "")); } else i.append(a); }; if (typeof s == "object" && "length" in s) for (let a = 0; a < s.length; a += 1) s[a] && r(s[a]); else r(s); (e.recalcSlides(), t.loop && e.loopCreate(), (!t.observer || e.isElement) && e.update()); } function Rs(s) { const e = this, { params: t, activeIndex: i, slidesEl: r } = e; t.loop && e.loopDestroy(); let a = i + 1; const f = (c) => { if (typeof c == "string") { const n = document.createElement("div"); ((n.innerHTML = c), r.prepend(n.children[0]), (n.innerHTML = "")); } else r.prepend(c); }; if (typeof s == "object" && "length" in s) { for (let c = 0; c < s.length; c += 1) s[c] && f(s[c]); a = i + s.length; } else f(s); (e.recalcSlides(), t.loop && e.loopCreate(), (!t.observer || e.isElement) && e.update(), e.slideTo(a, 0, !1)); } function Ys(s, e) { const t = this, { params: i, activeIndex: r, slidesEl: a } = t; let f = r; i.loop && ((f -= t.loopedSlides), t.loopDestroy(), t.recalcSlides()); const c = t.slides.length; if (s <= 0) { t.prependSlide(e); return; } if (s >= c) { t.appendSlide(e); return; } let n = f > s ? f + 1 : f; const u = []; for (let o = c - 1; o >= s; o -= 1) { const l = t.slides[o]; (l.remove(), u.unshift(l)); } if (typeof e == "object" && "length" in e) { for (let o = 0; o < e.length; o += 1) e[o] && a.append(e[o]); n = f > s ? f + e.length : f; } else a.append(e); for (let o = 0; o < u.length; o += 1) a.append(u[o]); (t.recalcSlides(), i.loop && t.loopCreate(), (!i.observer || t.isElement) && t.update(), i.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1)); } function Xs(s) { const e = this, { params: t, activeIndex: i } = e; let r = i; t.loop && ((r -= e.loopedSlides), e.loopDestroy()); let a = r, f; if (typeof s == "object" && "length" in s) { for (let c = 0; c < s.length; c += 1) ((f = s[c]), e.slides[f] && e.slides[f].remove(), f < a && (a -= 1)); a = Math.max(a, 0); } else ((f = s), e.slides[f] && e.slides[f].remove(), f < a && (a -= 1), (a = Math.max(a, 0))); (e.recalcSlides(), t.loop && e.loopCreate(), (!t.observer || e.isElement) && e.update(), t.loop ? e.slideTo(a + e.loopedSlides, 0, !1) : e.slideTo(a, 0, !1)); } function qs() { const s = this, e = []; for (let t = 0; t < s.slides.length; t += 1) e.push(t); s.removeSlide(e); } function Ws(s) { let { swiper: e } = s; Object.assign(e, { appendSlide: Ns.bind(e), prependSlide: Rs.bind(e), addSlide: Ys.bind(e), removeSlide: Xs.bind(e), removeAllSlides: qs.bind(e), }); } function de(s) { const { effect: e, swiper: t, on: i, setTranslate: r, setTransition: a, overwriteParams: f, perspective: c, recreateShadows: n, getEffectParams: u, } = s; (i("beforeInit", () => { if (t.params.effect !== e) return; (t.classNames.push(`${t.params.containerModifierClass}${e}`), c && c() && t.classNames.push(`${t.params.containerModifierClass}3d`)); const l = f ? f() : {}; (Object.assign(t.params, l), Object.assign(t.originalParams, l)); }), i("setTranslate", () => { t.params.effect === e && r(); }), i("setTransition", (l, d) => { t.params.effect === e && a(d); }), i("transitionEnd", () => { if (t.params.effect === e && n) { if (!u || !u().slideShadows) return; (t.slides.forEach((l) => { l.querySelectorAll( ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left", ).forEach((d) => d.remove()); }), n()); } })); let o; i("virtualUpdate", () => { t.params.effect === e && (t.slides.length || (o = !0), requestAnimationFrame(() => { o && t.slides && t.slides.length && (r(), (o = !1)); })); }); } function ge(s, e) { const t = ne(e); return ( t !== e && ((t.style.backfaceVisibility = "hidden"), (t.style["-webkit-backface-visibility"] = "hidden")), t ); } function xe(s) { let { swiper: e, duration: t, transformElements: i, allSlides: r } = s; const { activeIndex: a } = e, f = (c) => c.parentElement ? c.parentElement : e.slides.filter( (u) => u.shadowRoot && u.shadowRoot === c.parentNode, )[0]; if (e.params.virtualTranslate && t !== 0) { let c = !1, n; (r ? (n = i) : (n = i.filter((u) => { const o = u.classList.contains("swiper-slide-transform") ? f(u) : u; return e.getSlideIndex(o) === a; })), n.forEach((u) => { he(u, () => { if (c || !e || e.destroyed) return; ((c = !0), (e.animating = !1)); const o = new window.CustomEvent("transitionend", { bubbles: !0, cancelable: !0, }); e.wrapperEl.dispatchEvent(o); }); })); } } function _s(s) { let { swiper: e, extendParams: t, on: i } = s; (t({ fadeEffect: { crossFade: !1 } }), de({ effect: "fade", swiper: e, on: i, setTranslate: () => { const { slides: f } = e, c = e.params.fadeEffect; for (let n = 0; n < f.length; n += 1) { const u = e.slides[n]; let l = -u.swiperSlideOffset; e.params.virtualTranslate || (l -= e.translate); let d = 0; e.isHorizontal() || ((d = l), (l = 0)); const p = e.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(u.progress), 0) : 1 + Math.min(Math.max(u.progress, -1), 0), h = ge(c, u); ((h.style.opacity = p), (h.style.transform = `translate3d(${l}px, ${d}px, 0px)`)); } }, setTransition: (f) => { const c = e.slides.map((n) => ne(n)); (c.forEach((n) => { n.style.transitionDuration = `${f}ms`; }), xe({ swiper: e, duration: f, transformElements: c, allSlides: !0, })); }, overwriteParams: () => ({ slidesPerView: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !e.params.cssMode, }), })); } function js(s) { let { swiper: e, extendParams: t, on: i } = s; t({ cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: 0.94, }, }); const r = (n, u, o) => { let l = o ? n.querySelector(".swiper-slide-shadow-left") : n.querySelector(".swiper-slide-shadow-top"), d = o ? n.querySelector(".swiper-slide-shadow-right") : n.querySelector(".swiper-slide-shadow-bottom"); (l || ((l = J( "div", `swiper-slide-shadow-cube swiper-slide-shadow-${ o ? "left" : "top" }`.split(" "), )), n.append(l)), d || ((d = J( "div", `swiper-slide-shadow-cube swiper-slide-shadow-${ o ? "right" : "bottom" }`.split(" "), )), n.append(d)), l && (l.style.opacity = Math.max(-u, 0)), d && (d.style.opacity = Math.max(u, 0))); }; de({ effect: "cube", swiper: e, on: i, setTranslate: () => { const { el: n, wrapperEl: u, slides: o, width: l, height: d, rtlTranslate: p, size: h, browser: g, } = e, w = Se(e), y = e.params.cubeEffect, v = e.isHorizontal(), m = e.virtual && e.params.virtual.enabled; let b = 0, S; y.shadow && (v ? ((S = e.wrapperEl.querySelector(".swiper-cube-shadow")), S || ((S = J("div", "swiper-cube-shadow")), e.wrapperEl.append(S)), (S.style.height = `${l}px`)) : ((S = n.querySelector(".swiper-cube-shadow")), S || ((S = J("div", "swiper-cube-shadow")), n.append(S)))); for (let O = 0; O < o.length; O += 1) { const z = o[O]; let T = O; m && (T = parseInt(z.getAttribute("data-swiper-slide-index"), 10)); let P = T * 90, I = Math.floor(P / 360); p && ((P = -P), (I = Math.floor(-P / 360))); const C = Math.max(Math.min(z.progress, 1), -1); let E = 0, x = 0, D = 0; (T % 4 == 0 ? ((E = -I * 4 * h), (D = 0)) : (T - 1) % 4 == 0 ? ((E = 0), (D = -I * 4 * h)) : (T - 2) % 4 == 0 ? ((E = h + I * 4 * h), (D = h)) : (T - 3) % 4 == 0 && ((E = -h), (D = 3 * h + h * 4 * I)), p && (E = -E), v || ((x = E), (E = 0))); const G = `rotateX(${w(v ? 0 : -P)}deg) rotateY(${w( v ? P : 0, )}deg) translate3d(${E}px, ${x}px, ${D}px)`; (C <= 1 && C > -1 && ((b = T * 90 + C * 90), p && (b = -T * 90 - C * 90)), (z.style.transform = G), y.slideShadows && r(z, C, v)); } if ( ((u.style.transformOrigin = `50% 50% -${h / 2}px`), (u.style["-webkit-transform-origin"] = `50% 50% -${h / 2}px`), y.shadow) ) if (v) S.style.transform = `translate3d(0px, ${ l / 2 + y.shadowOffset }px, ${-l / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${ y.shadowScale })`; else { const O = Math.abs(b) - Math.floor(Math.abs(b) / 90) * 90, z = 1.5 - (Math.sin((O * 2 * Math.PI) / 360) / 2 + Math.cos((O * 2 * Math.PI) / 360) / 2), T = y.shadowScale, P = y.shadowScale / z, I = y.shadowOffset; S.style.transform = `scale3d(${T}, 1, ${P}) translate3d(0px, ${ d / 2 + I }px, ${-d / 2 / P}px) rotateX(-89.99deg)`; } const A = (g.isSafari || g.isWebView) && g.needPerspectiveFix ? -h / 2 : 0; ((u.style.transform = `translate3d(0px,0,${A}px) rotateX(${w( e.isHorizontal() ? 0 : b, )}deg) rotateY(${w(e.isHorizontal() ? -b : 0)}deg)`), u.style.setProperty("--swiper-cube-translate-z", `${A}px`)); }, setTransition: (n) => { const { el: u, slides: o } = e; if ( (o.forEach((l) => { ((l.style.transitionDuration = `${n}ms`), l .querySelectorAll( ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left", ) .forEach((d) => { d.style.transitionDuration = `${n}ms`; })); }), e.params.cubeEffect.shadow && !e.isHorizontal()) ) { const l = u.querySelector(".swiper-cube-shadow"); l && (l.style.transitionDuration = `${n}ms`); } }, recreateShadows: () => { const n = e.isHorizontal(); e.slides.forEach((u) => { const o = Math.max(Math.min(u.progress, 1), -1); r(u, o, n); }); }, getEffectParams: () => e.params.cubeEffect, perspective: () => !0, overwriteParams: () => ({ slidesPerView: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0, }), }); } function ce(s, e, t) { const i = `swiper-slide-shadow${t ? `-${t}` : ""}${ s ? ` swiper-slide-shadow-${s}` : "" }`, r = ne(e); let a = r.querySelector(`.${i.split(" ").join(".")}`); return (a || ((a = J("div", i.split(" "))), r.append(a)), a); } function Us(s) { let { swiper: e, extendParams: t, on: i } = s; t({ flipEffect: { slideShadows: !0, limitRotation: !0 } }); const r = (n, u) => { let o = e.isHorizontal() ? n.querySelector(".swiper-slide-shadow-left") : n.querySelector(".swiper-slide-shadow-top"), l = e.isHorizontal() ? n.querySelector(".swiper-slide-shadow-right") : n.querySelector(".swiper-slide-shadow-bottom"); (o || (o = ce("flip", n, e.isHorizontal() ? "left" : "top")), l || (l = ce("flip", n, e.isHorizontal() ? "right" : "bottom")), o && (o.style.opacity = Math.max(-u, 0)), l && (l.style.opacity = Math.max(u, 0))); }; de({ effect: "flip", swiper: e, on: i, setTranslate: () => { const { slides: n, rtlTranslate: u } = e, o = e.params.flipEffect, l = Se(e); for (let d = 0; d < n.length; d += 1) { const p = n[d]; let h = p.progress; e.params.flipEffect.limitRotation && (h = Math.max(Math.min(p.progress, 1), -1)); const g = p.swiperSlideOffset; let y = -180 * h, v = 0, m = e.params.cssMode ? -g - e.translate : -g, b = 0; (e.isHorizontal() ? u && (y = -y) : ((b = m), (m = 0), (v = -y), (y = 0)), (p.style.zIndex = -Math.abs(Math.round(h)) + n.length), o.slideShadows && r(p, h)); const S = `translate3d(${m}px, ${b}px, 0px) rotateX(${l( v, )}deg) rotateY(${l(y)}deg)`, A = ge(o, p); A.style.transform = S; } }, setTransition: (n) => { const u = e.slides.map((o) => ne(o)); (u.forEach((o) => { ((o.style.transitionDuration = `${n}ms`), o .querySelectorAll( ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left", ) .forEach((l) => { l.style.transitionDuration = `${n}ms`; })); }), xe({ swiper: e, duration: n, transformElements: u })); }, recreateShadows: () => { (e.params.flipEffect, e.slides.forEach((n) => { let u = n.progress; (e.params.flipEffect.limitRotation && (u = Math.max(Math.min(n.progress, 1), -1)), r(n, u)); })); }, getEffectParams: () => e.params.flipEffect, perspective: () => !0, overwriteParams: () => ({ slidesPerView: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !e.params.cssMode, }), }); } function Ks(s) { let { swiper: e, extendParams: t, on: i } = s; (t({ coverflowEffect: { rotate: 50, stretch: 0, depth: 100, scale: 1, modifier: 1, slideShadows: !0, }, }), de({ effect: "coverflow", swiper: e, on: i, setTranslate: () => { const { width: f, height: c, slides: n, slidesSizesGrid: u } = e, o = e.params.coverflowEffect, l = e.isHorizontal(), d = e.translate, p = l ? -d + f / 2 : -d + c / 2, h = l ? o.rotate : -o.rotate, g = o.depth, w = Se(e); for (let y = 0, v = n.length; y < v; y += 1) { const m = n[y], b = u[y], S = m.swiperSlideOffset, A = (p - S - b / 2) / b, O = typeof o.modifier == "function" ? o.modifier(A) : A * o.modifier; let z = l ? h * O : 0, T = l ? 0 : h * O, P = -g * Math.abs(O), I = o.stretch; typeof I == "string" && I.indexOf("%") !== -1 && (I = (parseFloat(o.stretch) / 100) * b); let C = l ? 0 : I * O, E = l ? I * O : 0, x = 1 - (1 - o.scale) * Math.abs(O); (Math.abs(E) < 0.001 && (E = 0), Math.abs(C) < 0.001 && (C = 0), Math.abs(P) < 0.001 && (P = 0), Math.abs(z) < 0.001 && (z = 0), Math.abs(T) < 0.001 && (T = 0), Math.abs(x) < 0.001 && (x = 0)); const D = `translate3d(${E}px,${C}px,${P}px) rotateX(${w( T, )}deg) rotateY(${w(z)}deg) scale(${x})`, G = ge(o, m); if ( ((G.style.transform = D), (m.style.zIndex = -Math.abs(Math.round(O)) + 1), o.slideShadows) ) { let M = l ? m.querySelector(".swiper-slide-shadow-left") : m.querySelector(".swiper-slide-shadow-top"), L = l ? m.querySelector(".swiper-slide-shadow-right") : m.querySelector(".swiper-slide-shadow-bottom"); (M || (M = ce("coverflow", m, l ? "left" : "top")), L || (L = ce("coverflow", m, l ? "right" : "bottom")), M && (M.style.opacity = O > 0 ? O : 0), L && (L.style.opacity = -O > 0 ? -O : 0)); } } }, setTransition: (f) => { e.slides .map((n) => ne(n)) .forEach((n) => { ((n.style.transitionDuration = `${f}ms`), n .querySelectorAll( ".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left", ) .forEach((u) => { u.style.transitionDuration = `${f}ms`; })); }); }, perspective: () => !0, overwriteParams: () => ({ watchSlidesProgress: !0 }), })); } function Zs(s) { let { swiper: e, extendParams: t, on: i } = s; t({ creativeEffect: { limitProgress: 1, shadowPerProgress: !1, progressMultiplier: 1, perspective: !0, prev: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 }, next: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 }, }, }); const r = (c) => (typeof c == "string" ? c : `${c}px`); de({ effect: "creative", swiper: e, on: i, setTranslate: () => { const { slides: c, wrapperEl: n, slidesSizesGrid: u } = e, o = e.params.creativeEffect, { progressMultiplier: l } = o, d = e.params.centeredSlides, p = Se(e); if (d) { const h = u[0] / 2 - e.params.slidesOffsetBefore || 0; n.style.transform = `translateX(calc(50% - ${h}px))`; } for (let h = 0; h < c.length; h += 1) { const g = c[h], w = g.progress, y = Math.min( Math.max(g.progress, -o.limitProgress), o.limitProgress, ); let v = y; d || (v = Math.min( Math.max(g.originalProgress, -o.limitProgress), o.limitProgress, )); const m = g.swiperSlideOffset, b = [e.params.cssMode ? -m - e.translate : -m, 0, 0], S = [0, 0, 0]; let A = !1; e.isHorizontal() || ((b[1] = b[0]), (b[0] = 0)); let O = { translate: [0, 0, 0], rotate: [0, 0, 0], scale: 1, opacity: 1, }; (y < 0 ? ((O = o.next), (A = !0)) : y > 0 && ((O = o.prev), (A = !0)), b.forEach((x, D) => { b[D] = `calc(${x}px + (${r(O.translate[D])} * ${Math.abs( y * l, )}))`; }), S.forEach((x, D) => { let G = O.rotate[D] * Math.abs(y * l); S[D] = G; }), (g.style.zIndex = -Math.abs(Math.round(w)) + c.length)); const z = b.join(", "), T = `rotateX(${p(S[0])}deg) rotateY(${p(S[1])}deg) rotateZ(${p( S[2], )}deg)`, P = v < 0 ? `scale(${1 + (1 - O.scale) * v * l})` : `scale(${1 - (1 - O.scale) * v * l})`, I = v < 0 ? 1 + (1 - O.opacity) * v * l : 1 - (1 - O.opacity) * v * l, C = `translate3d(${z}) ${T} ${P}`; if ((A && O.shadow) || !A) { let x = g.querySelector(".swiper-slide-shadow"); if ((!x && O.shadow && (x = ce("creative", g)), x)) { const D = o.shadowPerProgress ? y * (1 / o.limitProgress) : y; x.style.opacity = Math.min(Math.max(Math.abs(D), 0), 1); } } const E = ge(o, g); ((E.style.transform = C), (E.style.opacity = I), O.origin && (E.style.transformOrigin = O.origin)); } }, setTransition: (c) => { const n = e.slides.map((u) => ne(u)); (n.forEach((u) => { ((u.style.transitionDuration = `${c}ms`), u.querySelectorAll(".swiper-slide-shadow").forEach((o) => { o.style.transitionDuration = `${c}ms`; })); }), xe({ swiper: e, duration: c, transformElements: n, allSlides: !0 })); }, perspective: () => e.params.creativeEffect.perspective, overwriteParams: () => ({ watchSlidesProgress: !0, virtualTranslate: !e.params.cssMode, }), }); } function Qs(s) { let { swiper: e, extendParams: t, on: i } = s; (t({ cardsEffect: { slideShadows: !0, rotate: !0, perSlideRotate: 2, perSlideOffset: 8, }, }), de({ effect: "cards", swiper: e, on: i, setTranslate: () => { const { slides: f, activeIndex: c, rtlTranslate: n } = e, u = e.params.cardsEffect, { startTranslate: o, isTouched: l } = e.touchEventsData, d = n ? -e.translate : e.translate; for (let p = 0; p < f.length; p += 1) { const h = f[p], g = h.progress, w = Math.min(Math.max(g, -4), 4); let y = h.swiperSlideOffset; (e.params.centeredSlides && !e.params.cssMode && (e.wrapperEl.style.transform = `translateX(${e.minTranslate()}px)`), e.params.centeredSlides && e.params.cssMode && (y -= f[0].swiperSlideOffset)); let v = e.params.cssMode ? -y - e.translate : -y, m = 0; const b = -100 * Math.abs(w); let S = 1, A = -u.perSlideRotate * w, O = u.perSlideOffset - Math.abs(w) * 0.75; const z = e.virtual && e.params.virtual.enabled ? e.virtual.from + p : p, T = (z === c || z === c - 1) && w > 0 && w < 1 && (l || e.params.cssMode) && d < o, P = (z === c || z === c + 1) && w < 0 && w > -1 && (l || e.params.cssMode) && d > o; if (T || P) { const x = (1 - Math.abs((Math.abs(w) - 0.5) / 0.5)) ** 0.5; ((A += -28 * w * x), (S += -0.5 * x), (O += 96 * x), (m = `${-25 * x * Math.abs(w)}%`)); } if ( (w < 0 ? (v = `calc(${v}px ${n ? "-" : "+"} (${O * Math.abs(w)}%))`) : w > 0 ? (v = `calc(${v}px ${n ? "-" : "+"} (-${O * Math.abs(w)}%))`) : (v = `${v}px`), !e.isHorizontal()) ) { const x = m; ((m = v), (v = x)); } const I = w < 0 ? `${1 + (1 - S) * w}` : `${1 - (1 - S) * w}`, C = ` translate3d(${v}, ${m}, ${b}px) rotateZ(${u.rotate ? (n ? -A : A) : 0}deg) scale(${I}) `; if (u.slideShadows) { let x = h.querySelector(".swiper-slide-shadow"); (x || (x = ce("cards", h)), x && (x.style.opacity = Math.min( Math.max((Math.abs(w) - 0.5) / 0.5, 0), 1, ))); } h.style.zIndex = -Math.abs(Math.round(g)) + f.length; const E = ge(u, h); E.style.transform = C; } }, setTransition: (f) => { const c = e.slides.map((n) => ne(n)); (c.forEach((n) => { ((n.style.transitionDuration = `${f}ms`), n.querySelectorAll(".swiper-slide-shadow").forEach((u) => { u.style.transitionDuration = `${f}ms`; })); }), xe({ swiper: e, duration: f, transformElements: c })); }, perspective: () => !0, overwriteParams: () => ({ watchSlidesProgress: !0, virtualTranslate: !e.params.cssMode, }), })); } const Js = [ Ms, Cs, Ps, Ls, Is, As, zs, Ds, Os, $s, ks, Vs, Gs, Bs, Hs, Fs, Ws, _s, js, Us, Ks, Zs, Qs, ]; K.use(Js); var Te = function () { return ( (Te = Object.assign || function (s) { for (var e, t = 1, i = arguments.length; t < i; t++) for (var r in (e = arguments[t])) Object.prototype.hasOwnProperty.call(e, r) && (s[r] = e[r]); return s; }), Te.apply(this, arguments) ); }, ei = (function () { function s(e, t, i) { var r = this; ((this.endVal = t), (this.options = i), (this.version = "2.8.0"), (this.defaults = { startVal: 0, decimalPlaces: 0, duration: 2, useEasing: !0, useGrouping: !0, useIndianSeparators: !1, smartEasingThreshold: 999, smartEasingAmount: 333, separator: ",", decimal: ".", prefix: "", suffix: "", enableScrollSpy: !1, scrollSpyDelay: 200, scrollSpyOnce: !1, }), (this.finalEndVal = null), (this.useEasing = !0), (this.countDown = !1), (this.error = ""), (this.startVal = 0), (this.paused = !0), (this.once = !1), (this.count = function (a) { r.startTime || (r.startTime = a); var f = a - r.startTime; ((r.remaining = r.duration - f), r.useEasing ? r.countDown ? (r.frameVal = r.startVal - r.easingFn(f, 0, r.startVal - r.endVal, r.duration)) : (r.frameVal = r.easingFn( f, r.startVal, r.endVal - r.startVal, r.duration, )) : (r.frameVal = r.startVal + (r.endVal - r.startVal) * (f / r.duration))); var c = r.countDown ? r.frameVal < r.endVal : r.frameVal > r.endVal; ((r.frameVal = c ? r.endVal : r.frameVal), (r.frameVal = Number( r.frameVal.toFixed(r.options.decimalPlaces), )), r.printValue(r.frameVal), f < r.duration ? (r.rAF = requestAnimationFrame(r.count)) : r.finalEndVal !== null ? r.update(r.finalEndVal) : r.options.onCompleteCallback && r.options.onCompleteCallback()); }), (this.formatNumber = function (a) { var f, c, n, u, o = a < 0 ? "-" : ""; f = Math.abs(a).toFixed(r.options.decimalPlaces); var l = (f += "").split("."); if ( ((c = l[0]), (n = l.length > 1 ? r.options.decimal + l[1] : ""), r.options.useGrouping) ) { u = ""; for (var d = 3, p = 0, h = 0, g = c.length; h < g; ++h) (r.options.useIndianSeparators && h === 4 && ((d = 2), (p = 1)), h !== 0 && p % d == 0 && (u = r.options.separator + u), p++, (u = c[g - h - 1] + u)); c = u; } return ( r.options.numerals && r.options.numerals.length && ((c = c.replace(/[0-9]/g, function (w) { return r.options.numerals[+w]; })), (n = n.replace(/[0-9]/g, function (w) { return r.options.numerals[+w]; }))), o + r.options.prefix + c + n + r.options.suffix ); }), (this.easeOutExpo = function (a, f, c, n) { return (c * (1 - Math.pow(2, (-10 * a) / n)) * 1024) / 1023 + f; }), (this.options = Te(Te({}, this.defaults), i)), (this.formattingFn = this.options.formattingFn ? this.options.formattingFn : this.formatNumber), (this.easingFn = this.options.easingFn ? this.options.easingFn : this.easeOutExpo), (this.startVal = this.validateValue(this.options.startVal)), (this.frameVal = this.startVal), (this.endVal = this.validateValue(t)), (this.options.decimalPlaces = Math.max(this.options.decimalPlaces)), this.resetDuration(), (this.options.separator = String(this.options.separator)), (this.useEasing = this.options.useEasing), this.options.separator === "" && (this.options.useGrouping = !1), (this.el = typeof e == "string" ? document.getElementById(e) : e), this.el ? this.printValue(this.startVal) : (this.error = "[CountUp] target is null or undefined"), typeof window != "undefined" && this.options.enableScrollSpy && (this.error ? console.error(this.error, e) : ((window.onScrollFns = window.onScrollFns || []), window.onScrollFns.push(function () { return r.handleScroll(r); }), (window.onscroll = function () { window.onScrollFns.forEach(function (a) { return a(); }); }), this.handleScroll(this)))); } return ( (s.prototype.handleScroll = function (e) { if (e && window && !e.once) { var t = window.innerHeight + window.scrollY, i = e.el.getBoundingClientRect(), r = i.top + window.pageYOffset, a = i.top + i.height + window.pageYOffset; a < t && a > window.scrollY && e.paused ? ((e.paused = !1), setTimeout(function () { return e.start(); }, e.options.scrollSpyDelay), e.options.scrollSpyOnce && (e.once = !0)) : (window.scrollY > a || r > t) && !e.paused && e.reset(); } }), (s.prototype.determineDirectionAndSmartEasing = function () { var e = this.finalEndVal ? this.finalEndVal : this.endVal; this.countDown = this.startVal > e; var t = e - this.startVal; if ( Math.abs(t) > this.options.smartEasingThreshold && this.options.useEasing ) { this.finalEndVal = e; var i = this.countDown ? 1 : -1; ((this.endVal = e + i * this.options.smartEasingAmount), (this.duration = this.duration / 2)); } else ((this.endVal = e), (this.finalEndVal = null)); this.finalEndVal !== null ? (this.useEasing = !1) : (this.useEasing = this.options.useEasing); }), (s.prototype.start = function (e) { this.error || (this.options.onStartCallback && this.options.onStartCallback(), e && (this.options.onCompleteCallback = e), this.duration > 0 ? (this.determineDirectionAndSmartEasing(), (this.paused = !1), (this.rAF = requestAnimationFrame(this.count))) : this.printValue(this.endVal)); }), (s.prototype.pauseResume = function () { (this.paused ? ((this.startTime = null), (this.duration = this.remaining), (this.startVal = this.frameVal), this.determineDirectionAndSmartEasing(), (this.rAF = requestAnimationFrame(this.count))) : cancelAnimationFrame(this.rAF), (this.paused = !this.paused)); }), (s.prototype.reset = function () { (cancelAnimationFrame(this.rAF), (this.paused = !0), this.resetDuration(), (this.startVal = this.validateValue(this.options.startVal)), (this.frameVal = this.startVal), this.printValue(this.startVal)); }), (s.prototype.update = function (e) { (cancelAnimationFrame(this.rAF), (this.startTime = null), (this.endVal = this.validateValue(e)), this.endVal !== this.frameVal && ((this.startVal = this.frameVal), this.finalEndVal == null && this.resetDuration(), (this.finalEndVal = null), this.determineDirectionAndSmartEasing(), (this.rAF = requestAnimationFrame(this.count)))); }), (s.prototype.printValue = function (e) { var t; if (this.el) { var i = this.formattingFn(e); ( (t = this.options.plugin) === null || t === void 0 ? void 0 : t.render ) ? this.options.plugin.render(this.el, i) : this.el.tagName === "INPUT" ? (this.el.value = i) : this.el.tagName === "text" || this.el.tagName === "tspan" ? (this.el.textContent = i) : (this.el.innerHTML = i); } }), (s.prototype.ensureNumber = function (e) { return typeof e == "number" && !isNaN(e); }), (s.prototype.validateValue = function (e) { var t = Number(e); return this.ensureNumber(t) ? t : ((this.error = "[CountUp] invalid start or end value: ".concat( e, )), null); }), (s.prototype.resetDuration = function () { ((this.startTime = null), (this.duration = 1e3 * Number(this.options.duration)), (this.remaining = this.duration)); }), s ); })(); function ti() { const s = document.querySelector(".header"); function e() { window.scrollY > 0 ? s.classList.add("fixed") : s.classList.remove("fixed"); } (e(), window.addEventListener("scroll", e)); } function si() { (document.querySelectorAll(".swiper-step").length && document.querySelectorAll(".swiper-step").forEach((s) => { new K(s, { loop: !1, slidesPerView: "auto", spaceBetween: 15, scrollbar: { el: ".swiper-scrollbar", draggable: !0 }, breakpoints: { 768: { slidesPerView: "auto", spaceBetween: 36 } }, }); }), document.querySelectorAll(".blog-swiper").length && document.querySelectorAll(".blog-swiper").forEach((s) => { const e = s.closest(".section-article"), t = e == null ? void 0 : e.querySelector(".swiper-prev"), i = e == null ? void 0 : e.querySelector(".swiper-next"); new K(s, { loop: !0, slidesPerView: 1, spaceBetween: 15, breakpoints: { 768: { slidesPerView: 2, spaceBetween: 20 }, 1024: { slidesPerView: 3, spaceBetween: 20 }, 1200: { slidesPerView: 3, spaceBetween: 36 }, }, navigation: { nextEl: i, prevEl: t }, }); })); } function ii() { document.querySelectorAll(".tab-block").length && document.querySelectorAll(".tab-block").forEach((s) => { var c, n; const e = s.querySelectorAll(".tab-link"), t = s.querySelectorAll(".tab"), i = s.querySelectorAll(".acc-drop"), r = s.querySelectorAll(".acc-link"); let a = 0; ((c = e[a]) == null || c.classList.add("active"), (n = t[a]) == null || n.classList.add("active")); function f() { i.forEach((u) => { u.style.setProperty("--height", u.scrollHeight + "px"); }); } (f(), window.addEventListener("resize", f), e.forEach((u, o) => { u.addEventListener("click", (l) => { var d, p; (l.preventDefault(), a != o && ((d = e[a]) == null || d.classList.remove("active"), (p = t[a]) == null || p.classList.remove("active")), (a = o), u.classList.add("active"), t[o].classList.add("active")); }); }), r.forEach((u, o) => { u.addEventListener("click", (l) => { var d; (l.preventDefault(), a != o && ((d = t[a]) == null || d.classList.remove("acc-active")), (a = o), t[o].classList.toggle("acc-active")); }); })); }); } function ri() { document.querySelectorAll(".acc-block").length && document.querySelectorAll(".acc-block").forEach((s) => { var f; const e = s.querySelectorAll(".acc-item"), t = s.querySelectorAll(".acc-slide"), i = s.querySelectorAll(".acc-opener"); let r = 0; (f = e[r]) == null || f.classList.add("active"); function a() { t.forEach((c) => { c.style.setProperty("--height", c.scrollHeight + "px"); }); } (a(), window.addEventListener("resize", a), i.forEach((c, n) => { c.addEventListener("click", (u) => { var o; (u.preventDefault(), r != n && ((o = e[r]) == null || o.classList.remove("acc-active")), (r = n), e[n].classList.toggle("acc-active")); }); })); }); } function ai() { const s = document.querySelector(".nav-opener"), e = document.body; s == null || s.addEventListener("click", (t) => { (t.preventDefault(), e.classList.toggle("nav-active")); }); } function ni() { document.querySelectorAll(".counterup").forEach((e) => { const t = new ei(e, e.innerText, { enableScrollSpy: !0, startVal: 0, scrollSpyOnce: !0, }); t.error ? console.error(t.error) : t.start(); }); } const initNestedTab = () => { const links = document.querySelectorAll("[data-tab-link]"); const tabs = document.querySelectorAll("[data-tab-item]"); // fix 1 let curIndex = 0; let prevIndex = -1; const initActiveTab = (curIndex, prevIndex) => { if (prevIndex != -1) { // fix 2 links[prevIndex].classList.remove("active"); tabs[prevIndex].classList.remove("active"); } links[curIndex].classList.add("active"); tabs[curIndex].classList.add("active"); }; if (!links.length) return; initActiveTab(0, -1); links.forEach((link, index) => { const clone = tabs[index].cloneNode(true); link.parentElement.appendChild(clone); link.addEventListener("click", (e) => { const href = link.querySelector("a")?.href || link.getAttribute("href"); if (index == curIndex) return; prevIndex = curIndex; curIndex = index; initActiveTab(curIndex, prevIndex); // fix 3 }); }); }; document.addEventListener("DOMContentLoaded", function () { (document.body.classList.add("loaded"), initNestedTab(), ii(), ri(), si(), ai(), ti(), ni(), li()); }); function li() { (jQuery(".error-block") && jQuery(".error-block").closest(".section").css("display", "none"), jQuery(".paging").on("click", "a", function () { const s = jQuery(this); setTimeout(function () { (console.log(s.closest(".section").offset().top), jQuery("body, html").animate({ scrollTop: s.closest(".section").offset().top, })); }, 200); })); } });