From 8492ffa8a60c4573a7647d9fe5bf2a7f2cbac16f Mon Sep 17 00:00:00 2001 From: nitya Date: Tue, 16 Apr 2024 10:22:32 -0700 Subject: [PATCH] carousel cc --- assets/js/block/video-carousel.js | 226 ++++++++++++++++++ assets/js/global-min.js | 2 +- assets/js/src/global.js | 216 +---------------- assets/js/video-carousel-min.js | 5 + config.codekit3 | 33 +++ inc/helper-functions.php | 53 ++-- .../blocks/video-carousel/template.php | 40 +++- 7 files changed, 318 insertions(+), 257 deletions(-) create mode 100644 assets/js/block/video-carousel.js create mode 100644 assets/js/video-carousel-min.js diff --git a/assets/js/block/video-carousel.js b/assets/js/block/video-carousel.js new file mode 100644 index 0000000..6c4c991 --- /dev/null +++ b/assets/js/block/video-carousel.js @@ -0,0 +1,226 @@ +/** +* Swiper 11.1.1 +* Most modern mobile touch slider and framework with hardware accelerated transitions +* https://swiperjs.com +* +* Copyright 2014-2024 Vladimir Kharlampidi +* +* Released under the MIT License +* +* Released on: April 9, 2024 +*/ + +var Swiper = function () { "use strict"; function e(e) { return null !== e && "object" == typeof e && "constructor" in e && e.constructor === Object } function t(s, a) { void 0 === s && (s = {}), void 0 === a && (a = {}), Object.keys(a).forEach((i => { void 0 === s[i] ? s[i] = a[i] : e(a[i]) && e(s[i]) && Object.keys(a[i]).length > 0 && t(s[i], a[i]) })) } const s = { body: {}, addEventListener() { }, removeEventListener() { }, activeElement: { blur() { }, nodeName: "" }, querySelector: () => null, querySelectorAll: () => [], getElementById: () => null, createEvent: () => ({ initEvent() { } }), createElement: () => ({ children: [], childNodes: [], style: {}, setAttribute() { }, getElementsByTagName: () => [] }), createElementNS: () => ({}), importNode: () => null, location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" } }; function a() { const e = "undefined" != typeof document ? document : {}; return t(e, s), e } const i = { document: s, navigator: { userAgent: "" }, location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" }, history: { replaceState() { }, pushState() { }, go() { }, back() { } }, CustomEvent: function () { return this }, addEventListener() { }, removeEventListener() { }, getComputedStyle: () => ({ getPropertyValue: () => "" }), Image() { }, Date() { }, screen: {}, setTimeout() { }, clearTimeout() { }, matchMedia: () => ({}), requestAnimationFrame: e => "undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0), cancelAnimationFrame(e) { "undefined" != typeof setTimeout && clearTimeout(e) } }; function r() { const e = "undefined" != typeof window ? window : {}; return t(e, i), e } function n(e) { return void 0 === e && (e = ""), e.trim().split(" ").filter((e => !!e.trim())) } function l(e, t) { return void 0 === t && (t = 0), setTimeout(e, t) } function o() { return Date.now() } function d(e, t) { void 0 === t && (t = "x"); const s = r(); let a, i, n; const l = function (e) { const t = r(); let s; return t.getComputedStyle && (s = t.getComputedStyle(e, null)), !s && e.currentStyle && (s = e.currentStyle), s || (s = e.style), s }(e); return s.WebKitCSSMatrix ? (i = l.transform || l.webkitTransform, i.split(",").length > 6 && (i = i.split(", ").map((e => e.replace(",", "."))).join(", ")), n = new s.WebKitCSSMatrix("none" === i ? "" : i)) : (n = l.MozTransform || l.OTransform || l.MsTransform || l.msTransform || l.transform || l.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), a = n.toString().split(",")), "x" === t && (i = s.WebKitCSSMatrix ? n.m41 : 16 === a.length ? parseFloat(a[12]) : parseFloat(a[4])), "y" === t && (i = s.WebKitCSSMatrix ? n.m42 : 16 === a.length ? parseFloat(a[13]) : parseFloat(a[5])), i || 0 } function c(e) { return "object" == typeof e && null !== e && e.constructor && "Object" === Object.prototype.toString.call(e).slice(8, -1) } function p() { const e = Object(arguments.length <= 0 ? void 0 : arguments[0]), t = ["__proto__", "constructor", "prototype"]; for (let a = 1; a < arguments.length; a += 1) { const i = a < 0 || arguments.length <= a ? void 0 : arguments[a]; if (null != i && (s = i, !("undefined" != typeof window && void 0 !== window.HTMLElement ? s instanceof HTMLElement : s && (1 === s.nodeType || 11 === s.nodeType)))) { const s = Object.keys(Object(i)).filter((e => t.indexOf(e) < 0)); for (let t = 0, a = s.length; t < a; t += 1) { const a = s[t], r = Object.getOwnPropertyDescriptor(i, a); void 0 !== r && r.enumerable && (c(e[a]) && c(i[a]) ? i[a].__swiper__ ? e[a] = i[a] : p(e[a], i[a]) : !c(e[a]) && c(i[a]) ? (e[a] = {}, i[a].__swiper__ ? e[a] = i[a] : p(e[a], i[a])) : e[a] = i[a]) } } } var s; return e } function u(e, t, s) { e.style.setProperty(t, s) } function m(e) { let { swiper: t, targetPosition: s, side: a } = e; const i = r(), n = -t.translate; let l, o = null; const d = t.params.speed; t.wrapperEl.style.scrollSnapType = "none", i.cancelAnimationFrame(t.cssModeFrameID); const c = s > n ? "next" : "prev", p = (e, t) => "next" === c && e >= t || "prev" === c && e <= t, u = () => { l = (new Date).getTime(), null === o && (o = l); const e = Math.max(Math.min((l - o) / d, 1), 0), r = .5 - Math.cos(e * Math.PI) / 2; let c = n + r * (s - n); if (p(c, s) && (c = s), t.wrapperEl.scrollTo({ [a]: c }), p(c, s)) return t.wrapperEl.style.overflow = "hidden", t.wrapperEl.style.scrollSnapType = "", setTimeout((() => { t.wrapperEl.style.overflow = "", t.wrapperEl.scrollTo({ [a]: c }) })), void i.cancelAnimationFrame(t.cssModeFrameID); t.cssModeFrameID = i.requestAnimationFrame(u) }; u() } function h(e) { return e.querySelector(".swiper-slide-transform") || e.shadowRoot && e.shadowRoot.querySelector(".swiper-slide-transform") || e } function f(e, t) { return void 0 === t && (t = ""), [...e.children].filter((e => e.matches(t))) } function g(e) { try { return void console.warn(e) } catch (e) { } } function v(e, t) { void 0 === t && (t = []); const s = document.createElement(e); return s.classList.add(...Array.isArray(t) ? t : n(t)), s } function w(e) { const t = r(), s = a(), i = e.getBoundingClientRect(), n = s.body, l = e.clientTop || n.clientTop || 0, o = e.clientLeft || n.clientLeft || 0, d = e === t ? t.scrollY : e.scrollTop, c = e === t ? t.scrollX : e.scrollLeft; return { top: i.top + d - l, left: i.left + c - o } } function b(e, t) { return r().getComputedStyle(e, null).getPropertyValue(t) } function y(e) { let t, s = e; if (s) { for (t = 0; null !== (s = s.previousSibling);)1 === s.nodeType && (t += 1); return t } } function E(e, t) { const s = []; let a = e.parentElement; for (; a;)t ? a.matches(t) && s.push(a) : s.push(a), a = a.parentElement; return s } function x(e, t) { t && e.addEventListener("transitionend", (function s(a) { a.target === e && (t.call(e, a), e.removeEventListener("transitionend", s)) })) } function S(e, t, s) { const a = r(); return s ? e["width" === t ? "offsetWidth" : "offsetHeight"] + parseFloat(a.getComputedStyle(e, null).getPropertyValue("width" === t ? "margin-right" : "margin-top")) + parseFloat(a.getComputedStyle(e, null).getPropertyValue("width" === t ? "margin-left" : "margin-bottom")) : e.offsetWidth } function T(e) { return (Array.isArray(e) ? e : [e]).filter((e => !!e)) } let M, C, P; function L() { return M || (M = function () { const e = r(), t = a(); return { smoothScroll: t.documentElement && t.documentElement.style && "scrollBehavior" in t.documentElement.style, touch: !!("ontouchstart" in e || e.DocumentTouch && t instanceof e.DocumentTouch) } }()), M } function I(e) { return void 0 === e && (e = {}), C || (C = function (e) { let { userAgent: t } = void 0 === e ? {} : e; const s = L(), a = r(), i = a.navigator.platform, n = t || a.navigator.userAgent, l = { ios: !1, android: !1 }, o = a.screen.width, d = a.screen.height, c = n.match(/(Android);?[\s\/]+([\d.]+)?/); let p = n.match(/(iPad).*OS\s([\d_]+)/); const u = n.match(/(iPod)(.*OS\s([\d_]+))?/), m = !p && n.match(/(iPhone\sOS|iOS)\s([\d_]+)/), h = "Win32" === i; let f = "MacIntel" === i; return !p && f && s.touch && ["1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112", "1112x834", "768x1024", "1024x768", "820x1180", "1180x820", "810x1080", "1080x810"].indexOf(`${o}x${d}`) >= 0 && (p = n.match(/(Version)\/([\d.]+)/), p || (p = [0, 1, "13_0_0"]), f = !1), c && !h && (l.os = "android", l.android = !0), (p || m || u) && (l.os = "ios", l.ios = !0), l }(e)), C } function z() { return P || (P = function () { const e = r(), t = I(); let s = !1; function a() { const t = e.navigator.userAgent.toLowerCase(); return t.indexOf("safari") >= 0 && t.indexOf("chrome") < 0 && t.indexOf("android") < 0 } if (a()) { const t = String(e.navigator.userAgent); if (t.includes("Version/")) { const [e, a] = t.split("Version/")[1].split(" ")[0].split(".").map((e => Number(e))); s = e < 16 || 16 === e && a < 2 } } const i = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent), n = a(); return { isSafari: s || n, needPerspectiveFix: s, need3dFix: n || i && t.ios, isWebView: i } }()), P } var A = { on(e, t, s) { const a = this; if (!a.eventsListeners || a.destroyed) return a; if ("function" != typeof t) return a; const i = s ? "unshift" : "push"; return e.split(" ").forEach((e => { a.eventsListeners[e] || (a.eventsListeners[e] = []), a.eventsListeners[e][i](t) })), a }, once(e, t, s) { const a = this; if (!a.eventsListeners || a.destroyed) return a; if ("function" != typeof t) return a; function i() { a.off(e, i), i.__emitterProxy && delete i.__emitterProxy; for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++)r[n] = arguments[n]; t.apply(a, r) } return i.__emitterProxy = t, a.on(e, i, s) }, onAny(e, t) { const s = this; if (!s.eventsListeners || s.destroyed) return s; if ("function" != typeof e) return s; const a = t ? "unshift" : "push"; return s.eventsAnyListeners.indexOf(e) < 0 && s.eventsAnyListeners[a](e), s }, offAny(e) { const t = this; if (!t.eventsListeners || t.destroyed) return t; if (!t.eventsAnyListeners) return t; const s = t.eventsAnyListeners.indexOf(e); return s >= 0 && t.eventsAnyListeners.splice(s, 1), t }, off(e, t) { const s = this; return !s.eventsListeners || s.destroyed ? s : s.eventsListeners ? (e.split(" ").forEach((e => { void 0 === t ? s.eventsListeners[e] = [] : s.eventsListeners[e] && s.eventsListeners[e].forEach(((a, i) => { (a === t || a.__emitterProxy && a.__emitterProxy === t) && s.eventsListeners[e].splice(i, 1) })) })), s) : s }, emit() { const e = this; if (!e.eventsListeners || e.destroyed) return e; if (!e.eventsListeners) return e; let t, s, a; for (var i = arguments.length, r = new Array(i), n = 0; n < i; n++)r[n] = arguments[n]; "string" == typeof r[0] || Array.isArray(r[0]) ? (t = r[0], s = r.slice(1, r.length), a = e) : (t = r[0].events, s = r[0].data, a = r[0].context || e), s.unshift(a); return (Array.isArray(t) ? t : t.split(" ")).forEach((t => { e.eventsAnyListeners && e.eventsAnyListeners.length && e.eventsAnyListeners.forEach((e => { e.apply(a, [t, ...s]) })), e.eventsListeners && e.eventsListeners[t] && e.eventsListeners[t].forEach((e => { e.apply(a, s) })) })), e } }; const $ = (e, t, s) => { t && !e.classList.contains(s) ? e.classList.add(s) : !t && e.classList.contains(s) && e.classList.remove(s) }; const k = (e, t) => { if (!e || e.destroyed || !e.params) return; const s = t.closest(e.isElement ? "swiper-slide" : `.${e.params.slideClass}`); if (s) { let t = s.querySelector(`.${e.params.lazyPreloaderClass}`); !t && e.isElement && (s.shadowRoot ? t = s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`) : requestAnimationFrame((() => { s.shadowRoot && (t = s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`), t && t.remove()) }))), t && t.remove() } }, O = (e, t) => { if (!e.slides[t]) return; const s = e.slides[t].querySelector('[loading="lazy"]'); s && s.removeAttribute("loading") }, D = e => { if (!e || e.destroyed || !e.params) return; let t = e.params.lazyPreloadPrevNext; const s = e.slides.length; if (!s || !t || t < 0) return; t = Math.min(t, s); const a = "auto" === e.params.slidesPerView ? e.slidesPerViewDynamic() : Math.ceil(e.params.slidesPerView), i = e.activeIndex; if (e.params.grid && e.params.grid.rows > 1) { const s = i, r = [s - t]; return r.push(...Array.from({ length: t }).map(((e, t) => s + a + t))), void e.slides.forEach(((t, s) => { r.includes(t.column) && O(e, s) })) } const r = i + a - 1; if (e.params.rewind || e.params.loop) for (let a = i - t; a <= r + t; a += 1) { const t = (a % s + s) % s; (t < i || t > r) && O(e, t) } else for (let a = Math.max(i - t, 0); a <= Math.min(r + t, s - 1); a += 1)a !== i && (a > r || a < i) && O(e, a) }; var G = { updateSize: function () { const e = this; let t, s; const a = e.el; t = void 0 !== e.params.width && null !== e.params.width ? e.params.width : a.clientWidth, s = void 0 !== e.params.height && null !== e.params.height ? e.params.height : a.clientHeight, 0 === t && e.isHorizontal() || 0 === s && e.isVertical() || (t = t - parseInt(b(a, "padding-left") || 0, 10) - parseInt(b(a, "padding-right") || 0, 10), s = s - parseInt(b(a, "padding-top") || 0, 10) - parseInt(b(a, "padding-bottom") || 0, 10), Number.isNaN(t) && (t = 0), Number.isNaN(s) && (s = 0), Object.assign(e, { width: t, height: s, size: e.isHorizontal() ? t : s })) }, updateSlides: function () { const e = this; function t(t, s) { return parseFloat(t.getPropertyValue(e.getDirectionLabel(s)) || 0) } const s = e.params, { wrapperEl: a, slidesEl: i, size: r, rtlTranslate: n, wrongRTL: l } = e, o = e.virtual && s.virtual.enabled, d = o ? e.virtual.slides.length : e.slides.length, c = f(i, `.${e.params.slideClass}, swiper-slide`), p = o ? e.virtual.slides.length : c.length; let m = []; const h = [], g = []; let v = s.slidesOffsetBefore; "function" == typeof v && (v = s.slidesOffsetBefore.call(e)); let w = s.slidesOffsetAfter; "function" == typeof w && (w = s.slidesOffsetAfter.call(e)); const y = e.snapGrid.length, E = e.slidesGrid.length; let x = s.spaceBetween, T = -v, M = 0, C = 0; if (void 0 === r) return; "string" == typeof x && x.indexOf("%") >= 0 ? x = parseFloat(x.replace("%", "")) / 100 * r : "string" == typeof x && (x = parseFloat(x)), e.virtualSize = -x, c.forEach((e => { n ? e.style.marginLeft = "" : e.style.marginRight = "", e.style.marginBottom = "", e.style.marginTop = "" })), s.centeredSlides && s.cssMode && (u(a, "--swiper-centered-offset-before", ""), u(a, "--swiper-centered-offset-after", "")); const P = s.grid && s.grid.rows > 1 && e.grid; let L; P ? e.grid.initSlides(c) : e.grid && e.grid.unsetSlides(); const I = "auto" === s.slidesPerView && s.breakpoints && Object.keys(s.breakpoints).filter((e => void 0 !== s.breakpoints[e].slidesPerView)).length > 0; for (let a = 0; a < p; a += 1) { let i; if (L = 0, c[a] && (i = c[a]), P && e.grid.updateSlide(a, i, c), !c[a] || "none" !== b(i, "display")) { if ("auto" === s.slidesPerView) { I && (c[a].style[e.getDirectionLabel("width")] = ""); const r = getComputedStyle(i), n = i.style.transform, l = i.style.webkitTransform; if (n && (i.style.transform = "none"), l && (i.style.webkitTransform = "none"), s.roundLengths) L = e.isHorizontal() ? S(i, "width", !0) : S(i, "height", !0); else { const e = t(r, "width"), s = t(r, "padding-left"), a = t(r, "padding-right"), n = t(r, "margin-left"), l = t(r, "margin-right"), o = r.getPropertyValue("box-sizing"); if (o && "border-box" === o) L = e + n + l; else { const { clientWidth: t, offsetWidth: r } = i; L = e + s + a + n + l + (r - t) } } n && (i.style.transform = n), l && (i.style.webkitTransform = l), s.roundLengths && (L = Math.floor(L)) } else L = (r - (s.slidesPerView - 1) * x) / s.slidesPerView, s.roundLengths && (L = Math.floor(L)), c[a] && (c[a].style[e.getDirectionLabel("width")] = `${L}px`); c[a] && (c[a].swiperSlideSize = L), g.push(L), s.centeredSlides ? (T = T + L / 2 + M / 2 + x, 0 === M && 0 !== a && (T = T - r / 2 - x), 0 === a && (T = T - r / 2 - x), Math.abs(T) < .001 && (T = 0), s.roundLengths && (T = Math.floor(T)), C % s.slidesPerGroup == 0 && m.push(T), h.push(T)) : (s.roundLengths && (T = Math.floor(T)), (C - Math.min(e.params.slidesPerGroupSkip, C)) % e.params.slidesPerGroup == 0 && m.push(T), h.push(T), T = T + L + x), e.virtualSize += L + x, M = L, C += 1 } } if (e.virtualSize = Math.max(e.virtualSize, r) + w, n && l && ("slide" === s.effect || "coverflow" === s.effect) && (a.style.width = `${e.virtualSize + x}px`), s.setWrapperSize && (a.style[e.getDirectionLabel("width")] = `${e.virtualSize + x}px`), P && e.grid.updateWrapperSize(L, m), !s.centeredSlides) { const t = []; for (let a = 0; a < m.length; a += 1) { let i = m[a]; s.roundLengths && (i = Math.floor(i)), m[a] <= e.virtualSize - r && t.push(i) } m = t, Math.floor(e.virtualSize - r) - Math.floor(m[m.length - 1]) > 1 && m.push(e.virtualSize - r) } if (o && s.loop) { const t = g[0] + x; if (s.slidesPerGroup > 1) { const a = Math.ceil((e.virtual.slidesBefore + e.virtual.slidesAfter) / s.slidesPerGroup), i = t * s.slidesPerGroup; for (let e = 0; e < a; e += 1)m.push(m[m.length - 1] + i) } for (let a = 0; a < e.virtual.slidesBefore + e.virtual.slidesAfter; a += 1)1 === s.slidesPerGroup && m.push(m[m.length - 1] + t), h.push(h[h.length - 1] + t), e.virtualSize += t } if (0 === m.length && (m = [0]), 0 !== x) { const t = e.isHorizontal() && n ? "marginLeft" : e.getDirectionLabel("marginRight"); c.filter(((e, t) => !(s.cssMode && !s.loop) || t !== c.length - 1)).forEach((e => { e.style[t] = `${x}px` })) } if (s.centeredSlides && s.centeredSlidesBounds) { let e = 0; g.forEach((t => { e += t + (x || 0) })), e -= x; const t = e - r; m = m.map((e => e <= 0 ? -v : e > t ? t + w : e)) } if (s.centerInsufficientSlides) { let e = 0; if (g.forEach((t => { e += t + (x || 0) })), e -= x, e < r) { const t = (r - e) / 2; m.forEach(((e, s) => { m[s] = e - t })), h.forEach(((e, s) => { h[s] = e + t })) } } if (Object.assign(e, { slides: c, snapGrid: m, slidesGrid: h, slidesSizesGrid: g }), s.centeredSlides && s.cssMode && !s.centeredSlidesBounds) { u(a, "--swiper-centered-offset-before", -m[0] + "px"), u(a, "--swiper-centered-offset-after", e.size / 2 - g[g.length - 1] / 2 + "px"); const t = -e.snapGrid[0], s = -e.slidesGrid[0]; e.snapGrid = e.snapGrid.map((e => e + t)), e.slidesGrid = e.slidesGrid.map((e => e + s)) } if (p !== d && e.emit("slidesLengthChange"), m.length !== y && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")), h.length !== E && e.emit("slidesGridLengthChange"), s.watchSlidesProgress && e.updateSlidesOffset(), e.emit("slidesUpdated"), !(o || s.cssMode || "slide" !== s.effect && "fade" !== s.effect)) { const t = `${s.containerModifierClass}backface-hidden`, a = e.el.classList.contains(t); p <= s.maxBackfaceHiddenSlides ? a || e.el.classList.add(t) : a && e.el.classList.remove(t) } }, updateAutoHeight: function (e) { const t = this, s = [], a = t.virtual && t.params.virtual.enabled; let i, r = 0; "number" == typeof e ? t.setTransition(e) : !0 === e && t.setTransition(t.params.speed); const n = e => a ? t.slides[t.getSlideIndexByData(e)] : t.slides[e]; if ("auto" !== t.params.slidesPerView && t.params.slidesPerView > 1) if (t.params.centeredSlides) (t.visibleSlides || []).forEach((e => { s.push(e) })); else for (i = 0; i < Math.ceil(t.params.slidesPerView); i += 1) { const e = t.activeIndex + i; if (e > t.slides.length && !a) break; s.push(n(e)) } else s.push(n(t.activeIndex)); for (i = 0; i < s.length; i += 1)if (void 0 !== s[i]) { const e = s[i].offsetHeight; r = e > r ? e : r } (r || 0 === r) && (t.wrapperEl.style.height = `${r}px`) }, updateSlidesOffset: function () { const e = this, t = e.slides, s = e.isElement ? e.isHorizontal() ? e.wrapperEl.offsetLeft : e.wrapperEl.offsetTop : 0; for (let a = 0; a < t.length; a += 1)t[a].swiperSlideOffset = (e.isHorizontal() ? t[a].offsetLeft : t[a].offsetTop) - s - e.cssOverflowAdjustment() }, updateSlidesProgress: function (e) { void 0 === e && (e = this && this.translate || 0); const t = this, s = t.params, { slides: a, rtlTranslate: i, snapGrid: r } = t; if (0 === a.length) return; void 0 === a[0].swiperSlideOffset && t.updateSlidesOffset(); let n = -e; i && (n = e), a.forEach((e => { e.classList.remove(s.slideVisibleClass, s.slideFullyVisibleClass) })), t.visibleSlidesIndexes = [], t.visibleSlides = []; let l = s.spaceBetween; "string" == typeof l && l.indexOf("%") >= 0 ? l = parseFloat(l.replace("%", "")) / 100 * t.size : "string" == typeof l && (l = parseFloat(l)); for (let e = 0; e < a.length; e += 1) { const o = a[e]; let d = o.swiperSlideOffset; s.cssMode && s.centeredSlides && (d -= a[0].swiperSlideOffset); const c = (n + (s.centeredSlides ? t.minTranslate() : 0) - d) / (o.swiperSlideSize + l), p = (n - r[0] + (s.centeredSlides ? t.minTranslate() : 0) - d) / (o.swiperSlideSize + l), u = -(n - d), m = u + t.slidesSizesGrid[e], h = u >= 0 && u <= t.size - t.slidesSizesGrid[e]; (u >= 0 && u < t.size - 1 || m > 1 && m <= t.size || u <= 0 && m >= t.size) && (t.visibleSlides.push(o), t.visibleSlidesIndexes.push(e), a[e].classList.add(s.slideVisibleClass)), h && a[e].classList.add(s.slideFullyVisibleClass), o.progress = i ? -c : c, o.originalProgress = i ? -p : p } }, updateProgress: function (e) { const t = this; if (void 0 === e) { const s = t.rtlTranslate ? -1 : 1; e = t && t.translate && t.translate * s || 0 } const s = t.params, a = t.maxTranslate() - t.minTranslate(); let { progress: i, isBeginning: r, isEnd: n, progressLoop: l } = t; const o = r, d = n; if (0 === a) i = 0, r = !0, n = !0; else { i = (e - t.minTranslate()) / a; const s = Math.abs(e - t.minTranslate()) < 1, l = Math.abs(e - t.maxTranslate()) < 1; r = s || i <= 0, n = l || i >= 1, s && (i = 0), l && (i = 1) } if (s.loop) { const s = t.getSlideIndexByData(0), a = t.getSlideIndexByData(t.slides.length - 1), i = t.slidesGrid[s], r = t.slidesGrid[a], n = t.slidesGrid[t.slidesGrid.length - 1], o = Math.abs(e); l = o >= i ? (o - i) / n : (o + n - r) / n, l > 1 && (l -= 1) } Object.assign(t, { progress: i, progressLoop: l, isBeginning: r, isEnd: n }), (s.watchSlidesProgress || s.centeredSlides && s.autoHeight) && t.updateSlidesProgress(e), r && !o && t.emit("reachBeginning toEdge"), n && !d && t.emit("reachEnd toEdge"), (o && !r || d && !n) && t.emit("fromEdge"), t.emit("progress", i) }, updateSlidesClasses: function () { const e = this, { slides: t, params: s, slidesEl: a, activeIndex: i } = e, r = e.virtual && s.virtual.enabled, n = e.grid && s.grid && s.grid.rows > 1, l = e => f(a, `.${s.slideClass}${e}, swiper-slide${e}`)[0]; let o, d, c; if (r) if (s.loop) { let t = i - e.virtual.slidesBefore; t < 0 && (t = e.virtual.slides.length + t), t >= e.virtual.slides.length && (t -= e.virtual.slides.length), o = l(`[data-swiper-slide-index="${t}"]`) } else o = l(`[data-swiper-slide-index="${i}"]`); else n ? (o = t.filter((e => e.column === i))[0], c = t.filter((e => e.column === i + 1))[0], d = t.filter((e => e.column === i - 1))[0]) : o = t[i]; o && (n || (c = function (e, t) { const s = []; for (; e.nextElementSibling;) { const a = e.nextElementSibling; t ? a.matches(t) && s.push(a) : s.push(a), e = a } return s }(o, `.${s.slideClass}, swiper-slide`)[0], s.loop && !c && (c = t[0]), d = function (e, t) { const s = []; for (; e.previousElementSibling;) { const a = e.previousElementSibling; t ? a.matches(t) && s.push(a) : s.push(a), e = a } return s }(o, `.${s.slideClass}, swiper-slide`)[0], s.loop && 0 === !d && (d = t[t.length - 1]))), t.forEach((e => { $(e, e === o, s.slideActiveClass), $(e, e === c, s.slideNextClass), $(e, e === d, s.slidePrevClass) })), e.emitSlidesClasses() }, updateActiveIndex: function (e) { const t = this, s = t.rtlTranslate ? t.translate : -t.translate, { snapGrid: a, params: i, activeIndex: r, realIndex: n, snapIndex: l } = t; let o, d = e; const c = e => { let s = e - t.virtual.slidesBefore; return s < 0 && (s = t.virtual.slides.length + s), s >= t.virtual.slides.length && (s -= t.virtual.slides.length), s }; if (void 0 === d && (d = function (e) { const { slidesGrid: t, params: s } = e, a = e.rtlTranslate ? e.translate : -e.translate; let i; for (let e = 0; e < t.length; e += 1)void 0 !== t[e + 1] ? a >= t[e] && a < t[e + 1] - (t[e + 1] - t[e]) / 2 ? i = e : a >= t[e] && a < t[e + 1] && (i = e + 1) : a >= t[e] && (i = e); return s.normalizeSlideIndex && (i < 0 || void 0 === i) && (i = 0), i }(t)), a.indexOf(s) >= 0) o = a.indexOf(s); else { const e = Math.min(i.slidesPerGroupSkip, d); o = e + Math.floor((d - e) / i.slidesPerGroup) } if (o >= a.length && (o = a.length - 1), d === r && !t.params.loop) return void (o !== l && (t.snapIndex = o, t.emit("snapIndexChange"))); if (d === r && t.params.loop && t.virtual && t.params.virtual.enabled) return void (t.realIndex = c(d)); const p = t.grid && i.grid && i.grid.rows > 1; let u; if (t.virtual && i.virtual.enabled && i.loop) u = c(d); else if (p) { const e = t.slides.filter((e => e.column === d))[0]; let s = parseInt(e.getAttribute("data-swiper-slide-index"), 10); Number.isNaN(s) && (s = Math.max(t.slides.indexOf(e), 0)), u = Math.floor(s / i.grid.rows) } else if (t.slides[d]) { const e = t.slides[d].getAttribute("data-swiper-slide-index"); u = e ? parseInt(e, 10) : d } else u = d; Object.assign(t, { previousSnapIndex: l, snapIndex: o, previousRealIndex: n, realIndex: u, previousIndex: r, activeIndex: d }), t.initialized && D(t), t.emit("activeIndexChange"), t.emit("snapIndexChange"), (t.initialized || t.params.runCallbacksOnInit) && (n !== u && t.emit("realIndexChange"), t.emit("slideChange")) }, updateClickedSlide: function (e, t) { const s = this, a = s.params; let i = e.closest(`.${a.slideClass}, swiper-slide`); !i && s.isElement && t && t.length > 1 && t.includes(e) && [...t.slice(t.indexOf(e) + 1, t.length)].forEach((e => { !i && e.matches && e.matches(`.${a.slideClass}, swiper-slide`) && (i = e) })); let r, n = !1; if (i) for (let e = 0; e < s.slides.length; e += 1)if (s.slides[e] === i) { n = !0, r = e; break } if (!i || !n) return s.clickedSlide = void 0, void (s.clickedIndex = void 0); s.clickedSlide = i, s.virtual && s.params.virtual.enabled ? s.clickedIndex = parseInt(i.getAttribute("data-swiper-slide-index"), 10) : s.clickedIndex = r, a.slideToClickedSlide && void 0 !== s.clickedIndex && s.clickedIndex !== s.activeIndex && s.slideToClickedSlide() } }; var H = { getTranslate: function (e) { void 0 === e && (e = this.isHorizontal() ? "x" : "y"); const { params: t, rtlTranslate: s, translate: a, wrapperEl: i } = this; if (t.virtualTranslate) return s ? -a : a; if (t.cssMode) return a; let r = d(i, e); return r += this.cssOverflowAdjustment(), s && (r = -r), r || 0 }, setTranslate: function (e, t) { const s = this, { rtlTranslate: a, params: i, wrapperEl: r, progress: n } = s; let l, o = 0, d = 0; s.isHorizontal() ? o = a ? -e : e : d = e, i.roundLengths && (o = Math.floor(o), d = Math.floor(d)), s.previousTranslate = s.translate, s.translate = s.isHorizontal() ? o : d, i.cssMode ? r[s.isHorizontal() ? "scrollLeft" : "scrollTop"] = s.isHorizontal() ? -o : -d : i.virtualTranslate || (s.isHorizontal() ? o -= s.cssOverflowAdjustment() : d -= s.cssOverflowAdjustment(), r.style.transform = `translate3d(${o}px, ${d}px, 0px)`); const c = s.maxTranslate() - s.minTranslate(); l = 0 === c ? 0 : (e - s.minTranslate()) / c, l !== n && s.updateProgress(e), s.emit("setTranslate", s.translate, t) }, minTranslate: function () { return -this.snapGrid[0] }, maxTranslate: function () { return -this.snapGrid[this.snapGrid.length - 1] }, translateTo: function (e, t, s, a, i) { void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === s && (s = !0), void 0 === a && (a = !0); const r = this, { params: n, wrapperEl: l } = r; if (r.animating && n.preventInteractionOnTransition) return !1; const o = r.minTranslate(), d = r.maxTranslate(); let c; if (c = a && e > o ? o : a && e < d ? d : e, r.updateProgress(c), n.cssMode) { const e = r.isHorizontal(); if (0 === t) l[e ? "scrollLeft" : "scrollTop"] = -c; else { if (!r.support.smoothScroll) return m({ swiper: r, targetPosition: -c, side: e ? "left" : "top" }), !0; l.scrollTo({ [e ? "left" : "top"]: -c, behavior: "smooth" }) } return !0 } return 0 === t ? (r.setTransition(0), r.setTranslate(c), s && (r.emit("beforeTransitionStart", t, i), r.emit("transitionEnd"))) : (r.setTransition(t), r.setTranslate(c), s && (r.emit("beforeTransitionStart", t, i), r.emit("transitionStart")), r.animating || (r.animating = !0, r.onTranslateToWrapperTransitionEnd || (r.onTranslateToWrapperTransitionEnd = function (e) { r && !r.destroyed && e.target === this && (r.wrapperEl.removeEventListener("transitionend", r.onTranslateToWrapperTransitionEnd), r.onTranslateToWrapperTransitionEnd = null, delete r.onTranslateToWrapperTransitionEnd, r.animating = !1, s && r.emit("transitionEnd")) }), r.wrapperEl.addEventListener("transitionend", r.onTranslateToWrapperTransitionEnd))), !0 } }; function N(e) { let { swiper: t, runCallbacks: s, direction: a, step: i } = e; const { activeIndex: r, previousIndex: n } = t; let l = a; if (l || (l = r > n ? "next" : r < n ? "prev" : "reset"), t.emit(`transition${i}`), s && r !== n) { if ("reset" === l) return void t.emit(`slideResetTransition${i}`); t.emit(`slideChangeTransition${i}`), "next" === l ? t.emit(`slideNextTransition${i}`) : t.emit(`slidePrevTransition${i}`) } } var X = { slideTo: function (e, t, s, a, i) { void 0 === e && (e = 0), void 0 === s && (s = !0), "string" == typeof e && (e = parseInt(e, 10)); const r = this; let n = e; n < 0 && (n = 0); const { params: l, snapGrid: o, slidesGrid: d, previousIndex: c, activeIndex: p, rtlTranslate: u, wrapperEl: h, enabled: f } = r; if (!f && !a && !i || r.destroyed || r.animating && l.preventInteractionOnTransition) return !1; void 0 === t && (t = r.params.speed); const g = Math.min(r.params.slidesPerGroupSkip, n); let v = g + Math.floor((n - g) / r.params.slidesPerGroup); v >= o.length && (v = o.length - 1); const w = -o[v]; if (l.normalizeSlideIndex) for (let e = 0; e < d.length; e += 1) { const t = -Math.floor(100 * w), s = Math.floor(100 * d[e]), a = Math.floor(100 * d[e + 1]); void 0 !== d[e + 1] ? t >= s && t < a - (a - s) / 2 ? n = e : t >= s && t < a && (n = e + 1) : t >= s && (n = e) } if (r.initialized && n !== p) { if (!r.allowSlideNext && (u ? w > r.translate && w > r.minTranslate() : w < r.translate && w < r.minTranslate())) return !1; if (!r.allowSlidePrev && w > r.translate && w > r.maxTranslate() && (p || 0) !== n) return !1 } let b; if (n !== (c || 0) && s && r.emit("beforeSlideChangeStart"), r.updateProgress(w), b = n > p ? "next" : n < p ? "prev" : "reset", u && -w === r.translate || !u && w === r.translate) return r.updateActiveIndex(n), l.autoHeight && r.updateAutoHeight(), r.updateSlidesClasses(), "slide" !== l.effect && r.setTranslate(w), "reset" !== b && (r.transitionStart(s, b), r.transitionEnd(s, b)), !1; if (l.cssMode) { const e = r.isHorizontal(), s = u ? w : -w; if (0 === t) { const t = r.virtual && r.params.virtual.enabled; t && (r.wrapperEl.style.scrollSnapType = "none", r._immediateVirtual = !0), t && !r._cssModeVirtualInitialSet && r.params.initialSlide > 0 ? (r._cssModeVirtualInitialSet = !0, requestAnimationFrame((() => { h[e ? "scrollLeft" : "scrollTop"] = s }))) : h[e ? "scrollLeft" : "scrollTop"] = s, t && requestAnimationFrame((() => { r.wrapperEl.style.scrollSnapType = "", r._immediateVirtual = !1 })) } else { if (!r.support.smoothScroll) return m({ swiper: r, targetPosition: s, side: e ? "left" : "top" }), !0; h.scrollTo({ [e ? "left" : "top"]: s, behavior: "smooth" }) } return !0 } return r.setTransition(t), r.setTranslate(w), r.updateActiveIndex(n), r.updateSlidesClasses(), r.emit("beforeTransitionStart", t, a), r.transitionStart(s, b), 0 === t ? r.transitionEnd(s, b) : r.animating || (r.animating = !0, r.onSlideToWrapperTransitionEnd || (r.onSlideToWrapperTransitionEnd = function (e) { r && !r.destroyed && e.target === this && (r.wrapperEl.removeEventListener("transitionend", r.onSlideToWrapperTransitionEnd), r.onSlideToWrapperTransitionEnd = null, delete r.onSlideToWrapperTransitionEnd, r.transitionEnd(s, b)) }), r.wrapperEl.addEventListener("transitionend", r.onSlideToWrapperTransitionEnd)), !0 }, slideToLoop: function (e, t, s, a) { if (void 0 === e && (e = 0), void 0 === s && (s = !0), "string" == typeof e) { e = parseInt(e, 10) } const i = this; if (i.destroyed) return; void 0 === t && (t = i.params.speed); const r = i.grid && i.params.grid && i.params.grid.rows > 1; let n = e; if (i.params.loop) if (i.virtual && i.params.virtual.enabled) n += i.virtual.slidesBefore; else { let e; if (r) { const t = n * i.params.grid.rows; e = i.slides.filter((e => 1 * e.getAttribute("data-swiper-slide-index") === t))[0].column } else e = i.getSlideIndexByData(n); const t = r ? Math.ceil(i.slides.length / i.params.grid.rows) : i.slides.length, { centeredSlides: s } = i.params; let l = i.params.slidesPerView; "auto" === l ? l = i.slidesPerViewDynamic() : (l = Math.ceil(parseFloat(i.params.slidesPerView, 10)), s && l % 2 == 0 && (l += 1)); let o = t - e < l; if (s && (o = o || e < Math.ceil(l / 2)), a && s && "auto" !== i.params.slidesPerView && !r && (o = !1), o) { const a = s ? e < i.activeIndex ? "prev" : "next" : e - i.activeIndex - 1 < i.params.slidesPerView ? "next" : "prev"; i.loopFix({ direction: a, slideTo: !0, activeSlideIndex: "next" === a ? e + 1 : e - t + 1, slideRealIndex: "next" === a ? i.realIndex : void 0 }) } if (r) { const e = n * i.params.grid.rows; n = i.slides.filter((t => 1 * t.getAttribute("data-swiper-slide-index") === e))[0].column } else n = i.getSlideIndexByData(n) } return requestAnimationFrame((() => { i.slideTo(n, t, s, a) })), i }, slideNext: function (e, t, s) { void 0 === t && (t = !0); const a = this, { enabled: i, params: r, animating: n } = a; if (!i || a.destroyed) return a; void 0 === e && (e = a.params.speed); let l = r.slidesPerGroup; "auto" === r.slidesPerView && 1 === r.slidesPerGroup && r.slidesPerGroupAuto && (l = Math.max(a.slidesPerViewDynamic("current", !0), 1)); const o = a.activeIndex < r.slidesPerGroupSkip ? 1 : l, d = a.virtual && r.virtual.enabled; if (r.loop) { if (n && !d && r.loopPreventsSliding) return !1; if (a.loopFix({ direction: "next" }), a._clientLeft = a.wrapperEl.clientLeft, a.activeIndex === a.slides.length - 1 && r.cssMode) return requestAnimationFrame((() => { a.slideTo(a.activeIndex + o, e, t, s) })), !0 } return r.rewind && a.isEnd ? a.slideTo(0, e, t, s) : a.slideTo(a.activeIndex + o, e, t, s) }, slidePrev: function (e, t, s) { void 0 === t && (t = !0); const a = this, { params: i, snapGrid: r, slidesGrid: n, rtlTranslate: l, enabled: o, animating: d } = a; if (!o || a.destroyed) return a; void 0 === e && (e = a.params.speed); const c = a.virtual && i.virtual.enabled; if (i.loop) { if (d && !c && i.loopPreventsSliding) return !1; a.loopFix({ direction: "prev" }), a._clientLeft = a.wrapperEl.clientLeft } function p(e) { return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e) } const u = p(l ? a.translate : -a.translate), m = r.map((e => p(e))); let h = r[m.indexOf(u) - 1]; if (void 0 === h && i.cssMode) { let e; r.forEach(((t, s) => { u >= t && (e = s) })), void 0 !== e && (h = r[e > 0 ? e - 1 : e]) } let f = 0; if (void 0 !== h && (f = n.indexOf(h), f < 0 && (f = a.activeIndex - 1), "auto" === i.slidesPerView && 1 === i.slidesPerGroup && i.slidesPerGroupAuto && (f = f - a.slidesPerViewDynamic("previous", !0) + 1, f = Math.max(f, 0))), i.rewind && a.isBeginning) { const i = a.params.virtual && a.params.virtual.enabled && a.virtual ? a.virtual.slides.length - 1 : a.slides.length - 1; return a.slideTo(i, e, t, s) } return i.loop && 0 === a.activeIndex && i.cssMode ? (requestAnimationFrame((() => { a.slideTo(f, e, t, s) })), !0) : a.slideTo(f, e, t, s) }, slideReset: function (e, t, s) { void 0 === t && (t = !0); const a = this; if (!a.destroyed) return void 0 === e && (e = a.params.speed), a.slideTo(a.activeIndex, e, t, s) }, slideToClosest: function (e, t, s, a) { void 0 === t && (t = !0), void 0 === a && (a = .5); const i = this; if (i.destroyed) return; void 0 === e && (e = i.params.speed); let r = i.activeIndex; const n = Math.min(i.params.slidesPerGroupSkip, r), l = n + Math.floor((r - n) / i.params.slidesPerGroup), o = i.rtlTranslate ? i.translate : -i.translate; if (o >= i.snapGrid[l]) { const e = i.snapGrid[l]; o - e > (i.snapGrid[l + 1] - e) * a && (r += i.params.slidesPerGroup) } else { const e = i.snapGrid[l - 1]; o - e <= (i.snapGrid[l] - e) * a && (r -= i.params.slidesPerGroup) } return r = Math.max(r, 0), r = Math.min(r, i.slidesGrid.length - 1), i.slideTo(r, e, t, s) }, slideToClickedSlide: function () { const e = this; if (e.destroyed) return; const { params: t, slidesEl: s } = e, a = "auto" === t.slidesPerView ? e.slidesPerViewDynamic() : t.slidesPerView; let i, r = e.clickedIndex; const n = e.isElement ? "swiper-slide" : `.${t.slideClass}`; if (t.loop) { if (e.animating) return; i = parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10), t.centeredSlides ? r < e.loopedSlides - a / 2 || r > e.slides.length - e.loopedSlides + a / 2 ? (e.loopFix(), r = e.getSlideIndex(f(s, `${n}[data-swiper-slide-index="${i}"]`)[0]), l((() => { e.slideTo(r) }))) : e.slideTo(r) : r > e.slides.length - a ? (e.loopFix(), r = e.getSlideIndex(f(s, `${n}[data-swiper-slide-index="${i}"]`)[0]), l((() => { e.slideTo(r) }))) : e.slideTo(r) } else e.slideTo(r) } }; var Y = { loopCreate: function (e) { const t = this, { params: s, slidesEl: a } = t; if (!s.loop || t.virtual && t.params.virtual.enabled) return; const i = () => { f(a, `.${s.slideClass}, swiper-slide`).forEach(((e, t) => { e.setAttribute("data-swiper-slide-index", t) })) }, r = t.grid && s.grid && s.grid.rows > 1, n = s.slidesPerGroup * (r ? s.grid.rows : 1), l = t.slides.length % n != 0, o = r && t.slides.length % s.grid.rows != 0, d = e => { for (let a = 0; a < e; a += 1) { const e = t.isElement ? v("swiper-slide", [s.slideBlankClass]) : v("div", [s.slideClass, s.slideBlankClass]); t.slidesEl.append(e) } }; if (l) { if (s.loopAddBlankSlides) { d(n - t.slides.length % n), t.recalcSlides(), t.updateSlides() } else g("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)"); i() } else if (o) { if (s.loopAddBlankSlides) { d(s.grid.rows - t.slides.length % s.grid.rows), t.recalcSlides(), t.updateSlides() } else g("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)"); i() } else i(); t.loopFix({ slideRealIndex: e, direction: s.centeredSlides ? void 0 : "next" }) }, loopFix: function (e) { let { slideRealIndex: t, slideTo: s = !0, direction: a, setTranslate: i, activeSlideIndex: r, byController: n, byMousewheel: l } = void 0 === e ? {} : e; const o = this; if (!o.params.loop) return; o.emit("beforeLoopFix"); const { slides: d, allowSlidePrev: c, allowSlideNext: p, slidesEl: u, params: m } = o, { centeredSlides: h } = m; if (o.allowSlidePrev = !0, o.allowSlideNext = !0, o.virtual && m.virtual.enabled) return s && (m.centeredSlides || 0 !== o.snapIndex ? m.centeredSlides && o.snapIndex < m.slidesPerView ? o.slideTo(o.virtual.slides.length + o.snapIndex, 0, !1, !0) : o.snapIndex === o.snapGrid.length - 1 && o.slideTo(o.virtual.slidesBefore, 0, !1, !0) : o.slideTo(o.virtual.slides.length, 0, !1, !0)), o.allowSlidePrev = c, o.allowSlideNext = p, void o.emit("loopFix"); let f = m.slidesPerView; "auto" === f ? f = o.slidesPerViewDynamic() : (f = Math.ceil(parseFloat(m.slidesPerView, 10)), h && f % 2 == 0 && (f += 1)); const v = m.slidesPerGroupAuto ? f : m.slidesPerGroup; let w = v; w % v != 0 && (w += v - w % v), w += m.loopAdditionalSlides, o.loopedSlides = w; const b = o.grid && m.grid && m.grid.rows > 1; d.length < f + w ? g("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") : b && "row" === m.grid.fill && g("Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`"); const y = [], E = []; let x = o.activeIndex; void 0 === r ? r = o.getSlideIndex(d.filter((e => e.classList.contains(m.slideActiveClass)))[0]) : x = r; const S = "next" === a || !a, T = "prev" === a || !a; let M = 0, C = 0; const P = b ? Math.ceil(d.length / m.grid.rows) : d.length, L = (b ? d[r].column : r) + (h && void 0 === i ? -f / 2 + .5 : 0); if (L < w) { M = Math.max(w - L, v); for (let e = 0; e < w - L; e += 1) { const t = e - Math.floor(e / P) * P; if (b) { const e = P - t - 1; for (let t = d.length - 1; t >= 0; t -= 1)d[t].column === e && y.push(t) } else y.push(P - t - 1) } } else if (L + f > P - w) { C = Math.max(L - (P - 2 * w), v); for (let e = 0; e < C; e += 1) { const t = e - Math.floor(e / P) * P; b ? d.forEach(((e, s) => { e.column === t && E.push(s) })) : E.push(t) } } if (o.__preventObserver__ = !0, requestAnimationFrame((() => { o.__preventObserver__ = !1 })), T && y.forEach((e => { d[e].swiperLoopMoveDOM = !0, u.prepend(d[e]), d[e].swiperLoopMoveDOM = !1 })), S && E.forEach((e => { d[e].swiperLoopMoveDOM = !0, u.append(d[e]), d[e].swiperLoopMoveDOM = !1 })), o.recalcSlides(), "auto" === m.slidesPerView ? o.updateSlides() : b && (y.length > 0 && T || E.length > 0 && S) && o.slides.forEach(((e, t) => { o.grid.updateSlide(t, e, o.slides) })), m.watchSlidesProgress && o.updateSlidesOffset(), s) if (y.length > 0 && T) { if (void 0 === t) { const e = o.slidesGrid[x], t = o.slidesGrid[x + M] - e; l ? o.setTranslate(o.translate - t) : (o.slideTo(x + Math.ceil(M), 0, !1, !0), i && (o.touchEventsData.startTranslate = o.touchEventsData.startTranslate - t, o.touchEventsData.currentTranslate = o.touchEventsData.currentTranslate - t)) } else if (i) { const e = b ? y.length / m.grid.rows : y.length; o.slideTo(o.activeIndex + e, 0, !1, !0), o.touchEventsData.currentTranslate = o.translate } } else if (E.length > 0 && S) if (void 0 === t) { const e = o.slidesGrid[x], t = o.slidesGrid[x - C] - e; l ? o.setTranslate(o.translate - t) : (o.slideTo(x - C, 0, !1, !0), i && (o.touchEventsData.startTranslate = o.touchEventsData.startTranslate - t, o.touchEventsData.currentTranslate = o.touchEventsData.currentTranslate - t)) } else { const e = b ? E.length / m.grid.rows : E.length; o.slideTo(o.activeIndex - e, 0, !1, !0) } if (o.allowSlidePrev = c, o.allowSlideNext = p, o.controller && o.controller.control && !n) { const e = { slideRealIndex: t, direction: a, setTranslate: i, activeSlideIndex: r, byController: !0 }; Array.isArray(o.controller.control) ? o.controller.control.forEach((t => { !t.destroyed && t.params.loop && t.loopFix({ ...e, slideTo: t.params.slidesPerView === m.slidesPerView && s }) })) : o.controller.control instanceof o.constructor && o.controller.control.params.loop && o.controller.control.loopFix({ ...e, slideTo: o.controller.control.params.slidesPerView === m.slidesPerView && s }) } o.emit("loopFix") }, loopDestroy: function () { const e = this, { params: t, slidesEl: s } = e; if (!t.loop || e.virtual && e.params.virtual.enabled) return; e.recalcSlides(); const a = []; e.slides.forEach((e => { const t = void 0 === e.swiperSlideIndex ? 1 * e.getAttribute("data-swiper-slide-index") : e.swiperSlideIndex; a[t] = e })), e.slides.forEach((e => { e.removeAttribute("data-swiper-slide-index") })), a.forEach((e => { s.append(e) })), e.recalcSlides(), e.slideTo(e.realIndex, 0) } }; function B(e, t, s) { const a = r(), { params: i } = e, n = i.edgeSwipeDetection, l = i.edgeSwipeThreshold; return !n || !(s <= l || s >= a.innerWidth - l) || "prevent" === n && (t.preventDefault(), !0) } function R(e) { const t = this, s = a(); let i = e; i.originalEvent && (i = i.originalEvent); const n = t.touchEventsData; if ("pointerdown" === i.type) { if (null !== n.pointerId && n.pointerId !== i.pointerId) return; n.pointerId = i.pointerId } else "touchstart" === i.type && 1 === i.targetTouches.length && (n.touchId = i.targetTouches[0].identifier); if ("touchstart" === i.type) return void B(t, i, i.targetTouches[0].pageX); const { params: l, touches: d, enabled: c } = t; if (!c) return; if (!l.simulateTouch && "mouse" === i.pointerType) return; if (t.animating && l.preventInteractionOnTransition) return; !t.animating && l.cssMode && l.loop && t.loopFix(); let p = i.target; if ("wrapper" === l.touchEventsTarget && !t.wrapperEl.contains(p)) return; if ("which" in i && 3 === i.which) return; if ("button" in i && i.button > 0) return; if (n.isTouched && n.isMoved) return; const u = !!l.noSwipingClass && "" !== l.noSwipingClass, m = i.composedPath ? i.composedPath() : i.path; u && i.target && i.target.shadowRoot && m && (p = m[0]); const h = l.noSwipingSelector ? l.noSwipingSelector : `.${l.noSwipingClass}`, f = !(!i.target || !i.target.shadowRoot); if (l.noSwiping && (f ? function (e, t) { return void 0 === t && (t = this), function t(s) { if (!s || s === a() || s === r()) return null; s.assignedSlot && (s = s.assignedSlot); const i = s.closest(e); return i || s.getRootNode ? i || t(s.getRootNode().host) : null }(t) }(h, p) : p.closest(h))) return void (t.allowClick = !0); if (l.swipeHandler && !p.closest(l.swipeHandler)) return; d.currentX = i.pageX, d.currentY = i.pageY; const g = d.currentX, v = d.currentY; if (!B(t, i, g)) return; Object.assign(n, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0 }), d.startX = g, d.startY = v, n.touchStartTime = o(), t.allowClick = !0, t.updateSize(), t.swipeDirection = void 0, l.threshold > 0 && (n.allowThresholdMove = !1); let w = !0; p.matches(n.focusableElements) && (w = !1, "SELECT" === p.nodeName && (n.isTouched = !1)), s.activeElement && s.activeElement.matches(n.focusableElements) && s.activeElement !== p && s.activeElement.blur(); const b = w && t.allowTouchMove && l.touchStartPreventDefault; !l.touchStartForcePreventDefault && !b || p.isContentEditable || i.preventDefault(), l.freeMode && l.freeMode.enabled && t.freeMode && t.animating && !l.cssMode && t.freeMode.onTouchStart(), t.emit("touchStart", i) } function F(e) { const t = a(), s = this, i = s.touchEventsData, { params: r, touches: n, rtlTranslate: l, enabled: d } = s; if (!d) return; if (!r.simulateTouch && "mouse" === e.pointerType) return; let c, p = e; if (p.originalEvent && (p = p.originalEvent), "pointermove" === p.type) { if (null !== i.touchId) return; if (p.pointerId !== i.pointerId) return } if ("touchmove" === p.type) { if (c = [...p.changedTouches].filter((e => e.identifier === i.touchId))[0], !c || c.identifier !== i.touchId) return } else c = p; if (!i.isTouched) return void (i.startMoving && i.isScrolling && s.emit("touchMoveOpposite", p)); const u = c.pageX, m = c.pageY; if (p.preventedByNestedSwiper) return n.startX = u, void (n.startY = m); if (!s.allowTouchMove) return p.target.matches(i.focusableElements) || (s.allowClick = !1), void (i.isTouched && (Object.assign(n, { startX: u, startY: m, currentX: u, currentY: m }), i.touchStartTime = o())); if (r.touchReleaseOnEdges && !r.loop) if (s.isVertical()) { if (m < n.startY && s.translate <= s.maxTranslate() || m > n.startY && s.translate >= s.minTranslate()) return i.isTouched = !1, void (i.isMoved = !1) } else if (u < n.startX && s.translate <= s.maxTranslate() || u > n.startX && s.translate >= s.minTranslate()) return; if (t.activeElement && p.target === t.activeElement && p.target.matches(i.focusableElements)) return i.isMoved = !0, void (s.allowClick = !1); i.allowTouchCallbacks && s.emit("touchMove", p), n.previousX = n.currentX, n.previousY = n.currentY, n.currentX = u, n.currentY = m; const h = n.currentX - n.startX, f = n.currentY - n.startY; if (s.params.threshold && Math.sqrt(h ** 2 + f ** 2) < s.params.threshold) return; if (void 0 === i.isScrolling) { let e; s.isHorizontal() && n.currentY === n.startY || s.isVertical() && n.currentX === n.startX ? i.isScrolling = !1 : h * h + f * f >= 25 && (e = 180 * Math.atan2(Math.abs(f), Math.abs(h)) / Math.PI, i.isScrolling = s.isHorizontal() ? e > r.touchAngle : 90 - e > r.touchAngle) } if (i.isScrolling && s.emit("touchMoveOpposite", p), void 0 === i.startMoving && (n.currentX === n.startX && n.currentY === n.startY || (i.startMoving = !0)), i.isScrolling || "touchmove" === p.type && i.preventTouchMoveFromPointerMove) return void (i.isTouched = !1); if (!i.startMoving) return; s.allowClick = !1, !r.cssMode && p.cancelable && p.preventDefault(), r.touchMoveStopPropagation && !r.nested && p.stopPropagation(); let g = s.isHorizontal() ? h : f, v = s.isHorizontal() ? n.currentX - n.previousX : n.currentY - n.previousY; r.oneWayMovement && (g = Math.abs(g) * (l ? 1 : -1), v = Math.abs(v) * (l ? 1 : -1)), n.diff = g, g *= r.touchRatio, l && (g = -g, v = -v); const w = s.touchesDirection; s.swipeDirection = g > 0 ? "prev" : "next", s.touchesDirection = v > 0 ? "prev" : "next"; const b = s.params.loop && !r.cssMode, y = "next" === s.touchesDirection && s.allowSlideNext || "prev" === s.touchesDirection && s.allowSlidePrev; if (!i.isMoved) { if (b && y && s.loopFix({ direction: s.swipeDirection }), i.startTranslate = s.getTranslate(), s.setTransition(0), s.animating) { const e = new window.CustomEvent("transitionend", { bubbles: !0, cancelable: !0 }); s.wrapperEl.dispatchEvent(e) } i.allowMomentumBounce = !1, !r.grabCursor || !0 !== s.allowSlideNext && !0 !== s.allowSlidePrev || s.setGrabCursor(!0), s.emit("sliderFirstMove", p) } if ((new Date).getTime(), i.isMoved && i.allowThresholdMove && w !== s.touchesDirection && b && y && Math.abs(g) >= 1) return Object.assign(n, { startX: u, startY: m, currentX: u, currentY: m, startTranslate: i.currentTranslate }), i.loopSwapReset = !0, void (i.startTranslate = i.currentTranslate); s.emit("sliderMove", p), i.isMoved = !0, i.currentTranslate = g + i.startTranslate; let E = !0, x = r.resistanceRatio; if (r.touchReleaseOnEdges && (x = 0), g > 0 ? (b && y && i.allowThresholdMove && i.currentTranslate > (r.centeredSlides ? s.minTranslate() - s.slidesSizesGrid[s.activeIndex + 1] : s.minTranslate()) && s.loopFix({ direction: "prev", setTranslate: !0, activeSlideIndex: 0 }), i.currentTranslate > s.minTranslate() && (E = !1, r.resistance && (i.currentTranslate = s.minTranslate() - 1 + (-s.minTranslate() + i.startTranslate + g) ** x))) : g < 0 && (b && y && i.allowThresholdMove && i.currentTranslate < (r.centeredSlides ? s.maxTranslate() + s.slidesSizesGrid[s.slidesSizesGrid.length - 1] : s.maxTranslate()) && s.loopFix({ direction: "next", setTranslate: !0, activeSlideIndex: s.slides.length - ("auto" === r.slidesPerView ? s.slidesPerViewDynamic() : Math.ceil(parseFloat(r.slidesPerView, 10))) }), i.currentTranslate < s.maxTranslate() && (E = !1, r.resistance && (i.currentTranslate = s.maxTranslate() + 1 - (s.maxTranslate() - i.startTranslate - g) ** x))), E && (p.preventedByNestedSwiper = !0), !s.allowSlideNext && "next" === s.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate), !s.allowSlidePrev && "prev" === s.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate), s.allowSlidePrev || s.allowSlideNext || (i.currentTranslate = i.startTranslate), r.threshold > 0) { if (!(Math.abs(g) > r.threshold || i.allowThresholdMove)) return void (i.currentTranslate = i.startTranslate); if (!i.allowThresholdMove) return i.allowThresholdMove = !0, n.startX = n.currentX, n.startY = n.currentY, i.currentTranslate = i.startTranslate, void (n.diff = s.isHorizontal() ? n.currentX - n.startX : n.currentY - n.startY) } r.followFinger && !r.cssMode && ((r.freeMode && r.freeMode.enabled && s.freeMode || r.watchSlidesProgress) && (s.updateActiveIndex(), s.updateSlidesClasses()), r.freeMode && r.freeMode.enabled && s.freeMode && s.freeMode.onTouchMove(), s.updateProgress(i.currentTranslate), s.setTranslate(i.currentTranslate)) } function q(e) { const t = this, s = t.touchEventsData; let a, i = e; i.originalEvent && (i = i.originalEvent); if ("touchend" === i.type || "touchcancel" === i.type) { if (a = [...i.changedTouches].filter((e => e.identifier === s.touchId))[0], !a || a.identifier !== s.touchId) return } else { if (null !== s.touchId) return; if (i.pointerId !== s.pointerId) return; a = i } if (["pointercancel", "pointerout", "pointerleave", "contextmenu"].includes(i.type)) { if (!(["pointercancel", "contextmenu"].includes(i.type) && (t.browser.isSafari || t.browser.isWebView))) return } s.pointerId = null, s.touchId = null; const { params: r, touches: n, rtlTranslate: d, slidesGrid: c, enabled: p } = t; if (!p) return; if (!r.simulateTouch && "mouse" === i.pointerType) return; if (s.allowTouchCallbacks && t.emit("touchEnd", i), s.allowTouchCallbacks = !1, !s.isTouched) return s.isMoved && r.grabCursor && t.setGrabCursor(!1), s.isMoved = !1, void (s.startMoving = !1); r.grabCursor && s.isMoved && s.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1); const u = o(), m = u - s.touchStartTime; if (t.allowClick) { const e = i.path || i.composedPath && i.composedPath(); t.updateClickedSlide(e && e[0] || i.target, e), t.emit("tap click", i), m < 300 && u - s.lastClickTime < 300 && t.emit("doubleTap doubleClick", i) } if (s.lastClickTime = o(), l((() => { t.destroyed || (t.allowClick = !0) })), !s.isTouched || !s.isMoved || !t.swipeDirection || 0 === n.diff && !s.loopSwapReset || s.currentTranslate === s.startTranslate && !s.loopSwapReset) return s.isTouched = !1, s.isMoved = !1, void (s.startMoving = !1); let h; if (s.isTouched = !1, s.isMoved = !1, s.startMoving = !1, h = r.followFinger ? d ? t.translate : -t.translate : -s.currentTranslate, r.cssMode) return; if (r.freeMode && r.freeMode.enabled) return void t.freeMode.onTouchEnd({ currentPos: h }); const f = h >= -t.maxTranslate() && !t.params.loop; let g = 0, v = t.slidesSizesGrid[0]; for (let e = 0; e < c.length; e += e < r.slidesPerGroupSkip ? 1 : r.slidesPerGroup) { const t = e < r.slidesPerGroupSkip - 1 ? 1 : r.slidesPerGroup; void 0 !== c[e + t] ? (f || h >= c[e] && h < c[e + t]) && (g = e, v = c[e + t] - c[e]) : (f || h >= c[e]) && (g = e, v = c[c.length - 1] - c[c.length - 2]) } let w = null, b = null; r.rewind && (t.isBeginning ? b = r.virtual && r.virtual.enabled && t.virtual ? t.virtual.slides.length - 1 : t.slides.length - 1 : t.isEnd && (w = 0)); const y = (h - c[g]) / v, E = g < r.slidesPerGroupSkip - 1 ? 1 : r.slidesPerGroup; if (m > r.longSwipesMs) { if (!r.longSwipes) return void t.slideTo(t.activeIndex); "next" === t.swipeDirection && (y >= r.longSwipesRatio ? t.slideTo(r.rewind && t.isEnd ? w : g + E) : t.slideTo(g)), "prev" === t.swipeDirection && (y > 1 - r.longSwipesRatio ? t.slideTo(g + E) : null !== b && y < 0 && Math.abs(y) > r.longSwipesRatio ? t.slideTo(b) : t.slideTo(g)) } else { if (!r.shortSwipes) return void t.slideTo(t.activeIndex); t.navigation && (i.target === t.navigation.nextEl || i.target === t.navigation.prevEl) ? i.target === t.navigation.nextEl ? t.slideTo(g + E) : t.slideTo(g) : ("next" === t.swipeDirection && t.slideTo(null !== w ? w : g + E), "prev" === t.swipeDirection && t.slideTo(null !== b ? b : g)) } } function V() { const e = this, { params: t, el: s } = e; if (s && 0 === s.offsetWidth) return; t.breakpoints && e.setBreakpoint(); const { allowSlideNext: a, allowSlidePrev: i, snapGrid: r } = e, n = e.virtual && e.params.virtual.enabled; e.allowSlideNext = !0, e.allowSlidePrev = !0, e.updateSize(), e.updateSlides(), e.updateSlidesClasses(); const l = n && t.loop; !("auto" === t.slidesPerView || t.slidesPerView > 1) || !e.isEnd || e.isBeginning || e.params.centeredSlides || l ? e.params.loop && !n ? e.slideToLoop(e.realIndex, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0) : e.slideTo(e.slides.length - 1, 0, !1, !0), e.autoplay && e.autoplay.running && e.autoplay.paused && (clearTimeout(e.autoplay.resizeTimeout), e.autoplay.resizeTimeout = setTimeout((() => { e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.resume() }), 500)), e.allowSlidePrev = i, e.allowSlideNext = a, e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow() } function _(e) { const t = this; t.enabled && (t.allowClick || (t.params.preventClicks && e.preventDefault(), t.params.preventClicksPropagation && t.animating && (e.stopPropagation(), e.stopImmediatePropagation()))) } function W() { const e = this, { wrapperEl: t, rtlTranslate: s, enabled: a } = e; if (!a) return; let i; e.previousTranslate = e.translate, e.isHorizontal() ? e.translate = -t.scrollLeft : e.translate = -t.scrollTop, 0 === e.translate && (e.translate = 0), e.updateActiveIndex(), e.updateSlidesClasses(); const r = e.maxTranslate() - e.minTranslate(); i = 0 === r ? 0 : (e.translate - e.minTranslate()) / r, i !== e.progress && e.updateProgress(s ? -e.translate : e.translate), e.emit("setTranslate", e.translate, !1) } function j(e) { const t = this; k(t, e.target), t.params.cssMode || "auto" !== t.params.slidesPerView && !t.params.autoHeight || t.update() } function U() { const e = this; e.documentTouchHandlerProceeded || (e.documentTouchHandlerProceeded = !0, e.params.touchReleaseOnEdges && (e.el.style.touchAction = "auto")) } const K = (e, t) => { const s = a(), { params: i, el: r, wrapperEl: n, device: l } = e, o = !!i.nested, d = "on" === t ? "addEventListener" : "removeEventListener", c = t; s[d]("touchstart", e.onDocumentTouchStart, { passive: !1, capture: o }), r[d]("touchstart", e.onTouchStart, { passive: !1 }), r[d]("pointerdown", e.onTouchStart, { passive: !1 }), s[d]("touchmove", e.onTouchMove, { passive: !1, capture: o }), s[d]("pointermove", e.onTouchMove, { passive: !1, capture: o }), s[d]("touchend", e.onTouchEnd, { passive: !0 }), s[d]("pointerup", e.onTouchEnd, { passive: !0 }), s[d]("pointercancel", e.onTouchEnd, { passive: !0 }), s[d]("touchcancel", e.onTouchEnd, { passive: !0 }), s[d]("pointerout", e.onTouchEnd, { passive: !0 }), s[d]("pointerleave", e.onTouchEnd, { passive: !0 }), s[d]("contextmenu", e.onTouchEnd, { passive: !0 }), (i.preventClicks || i.preventClicksPropagation) && r[d]("click", e.onClick, !0), i.cssMode && n[d]("scroll", e.onScroll), i.updateOnWindowResize ? e[c](l.ios || l.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", V, !0) : e[c]("observerUpdate", V, !0), r[d]("load", e.onLoad, { capture: !0 }) }; const Z = (e, t) => e.grid && t.grid && t.grid.rows > 1; var Q = { 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: .5, longSwipesMs: 300, followFinger: !0, allowTouchMove: !0, threshold: 5, touchMoveStopPropagation: !1, touchStartPreventDefault: !0, touchStartForcePreventDefault: !1, touchReleaseOnEdges: !1, uniqueNavElements: !0, resistance: !0, resistanceRatio: .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 J(e, t) { return function (s) { void 0 === s && (s = {}); const a = Object.keys(s)[0], i = s[a]; "object" == typeof i && null !== i ? (!0 === e[a] && (e[a] = { enabled: !0 }), "navigation" === a && e[a] && e[a].enabled && !e[a].prevEl && !e[a].nextEl && (e[a].auto = !0), ["pagination", "scrollbar"].indexOf(a) >= 0 && e[a] && e[a].enabled && !e[a].el && (e[a].auto = !0), a in e && "enabled" in i ? ("object" != typeof e[a] || "enabled" in e[a] || (e[a].enabled = !0), e[a] || (e[a] = { enabled: !1 }), p(t, s)) : p(t, s)) : p(t, s) } } const ee = { eventsEmitter: A, update: G, translate: H, transition: { setTransition: function (e, t) { const s = this; s.params.cssMode || (s.wrapperEl.style.transitionDuration = `${e}ms`, s.wrapperEl.style.transitionDelay = 0 === e ? "0ms" : ""), s.emit("setTransition", e, t) }, transitionStart: function (e, t) { void 0 === e && (e = !0); const s = this, { params: a } = s; a.cssMode || (a.autoHeight && s.updateAutoHeight(), N({ swiper: s, runCallbacks: e, direction: t, step: "Start" })) }, transitionEnd: function (e, t) { void 0 === e && (e = !0); const s = this, { params: a } = s; s.animating = !1, a.cssMode || (s.setTransition(0), N({ swiper: s, runCallbacks: e, direction: t, step: "End" })) } }, slide: X, loop: Y, grabCursor: { setGrabCursor: function (e) { const t = this; if (!t.params.simulateTouch || t.params.watchOverflow && t.isLocked || t.params.cssMode) return; const s = "container" === t.params.touchEventsTarget ? t.el : t.wrapperEl; t.isElement && (t.__preventObserver__ = !0), s.style.cursor = "move", s.style.cursor = e ? "grabbing" : "grab", t.isElement && requestAnimationFrame((() => { t.__preventObserver__ = !1 })) }, unsetGrabCursor: function () { const e = this; e.params.watchOverflow && e.isLocked || e.params.cssMode || (e.isElement && (e.__preventObserver__ = !0), e["container" === e.params.touchEventsTarget ? "el" : "wrapperEl"].style.cursor = "", e.isElement && requestAnimationFrame((() => { e.__preventObserver__ = !1 }))) } }, events: { attachEvents: function () { const e = this, { params: t } = e; e.onTouchStart = R.bind(e), e.onTouchMove = F.bind(e), e.onTouchEnd = q.bind(e), e.onDocumentTouchStart = U.bind(e), t.cssMode && (e.onScroll = W.bind(e)), e.onClick = _.bind(e), e.onLoad = j.bind(e), K(e, "on") }, detachEvents: function () { K(this, "off") } }, breakpoints: { setBreakpoint: function () { const e = this, { realIndex: t, initialized: s, params: a, el: i } = e, r = a.breakpoints; if (!r || r && 0 === Object.keys(r).length) return; const n = e.getBreakpoint(r, e.params.breakpointsBase, e.el); if (!n || e.currentBreakpoint === n) return; const l = (n in r ? r[n] : void 0) || e.originalParams, o = Z(e, a), d = Z(e, l), c = e.params.grabCursor, u = l.grabCursor, m = a.enabled; o && !d ? (i.classList.remove(`${a.containerModifierClass}grid`, `${a.containerModifierClass}grid-column`), e.emitContainerClasses()) : !o && d && (i.classList.add(`${a.containerModifierClass}grid`), (l.grid.fill && "column" === l.grid.fill || !l.grid.fill && "column" === a.grid.fill) && i.classList.add(`${a.containerModifierClass}grid-column`), e.emitContainerClasses()), c && !u ? e.unsetGrabCursor() : !c && u && e.setGrabCursor(), ["navigation", "pagination", "scrollbar"].forEach((t => { if (void 0 === l[t]) return; const s = a[t] && a[t].enabled, i = l[t] && l[t].enabled; s && !i && e[t].disable(), !s && i && e[t].enable() })); const h = l.direction && l.direction !== a.direction, f = a.loop && (l.slidesPerView !== a.slidesPerView || h), g = a.loop; h && s && e.changeDirection(), p(e.params, l); const v = e.params.enabled, w = e.params.loop; Object.assign(e, { allowTouchMove: e.params.allowTouchMove, allowSlideNext: e.params.allowSlideNext, allowSlidePrev: e.params.allowSlidePrev }), m && !v ? e.disable() : !m && v && e.enable(), e.currentBreakpoint = n, e.emit("_beforeBreakpoint", l), s && (f ? (e.loopDestroy(), e.loopCreate(t), e.updateSlides()) : !g && w ? (e.loopCreate(t), e.updateSlides()) : g && !w && e.loopDestroy()), e.emit("breakpoint", l) }, getBreakpoint: function (e, t, s) { if (void 0 === t && (t = "window"), !e || "container" === t && !s) return; let a = !1; const i = r(), n = "window" === t ? i.innerHeight : s.clientHeight, l = Object.keys(e).map((e => { if ("string" == typeof e && 0 === e.indexOf("@")) { const t = parseFloat(e.substr(1)); return { value: n * t, point: e } } return { value: e, point: e } })); l.sort(((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10))); for (let e = 0; e < l.length; e += 1) { const { point: r, value: n } = l[e]; "window" === t ? i.matchMedia(`(min-width: ${n}px)`).matches && (a = r) : n <= s.clientWidth && (a = r) } return a || "max" } }, checkOverflow: { checkOverflow: function () { const e = this, { isLocked: t, params: s } = e, { slidesOffsetBefore: a } = s; if (a) { const t = e.slides.length - 1, s = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * a; e.isLocked = e.size > s } else e.isLocked = 1 === e.snapGrid.length; !0 === s.allowSlideNext && (e.allowSlideNext = !e.isLocked), !0 === s.allowSlidePrev && (e.allowSlidePrev = !e.isLocked), t && t !== e.isLocked && (e.isEnd = !1), t !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock") } }, classes: { addClasses: function () { const e = this, { classNames: t, params: s, rtl: a, el: i, device: r } = e, n = function (e, t) { const s = []; return e.forEach((e => { "object" == typeof e ? Object.keys(e).forEach((a => { e[a] && s.push(t + a) })) : "string" == typeof e && s.push(t + e) })), s }(["initialized", s.direction, { "free-mode": e.params.freeMode && s.freeMode.enabled }, { autoheight: s.autoHeight }, { rtl: a }, { grid: s.grid && s.grid.rows > 1 }, { "grid-column": s.grid && s.grid.rows > 1 && "column" === s.grid.fill }, { android: r.android }, { ios: r.ios }, { "css-mode": s.cssMode }, { centered: s.cssMode && s.centeredSlides }, { "watch-progress": s.watchSlidesProgress }], s.containerModifierClass); t.push(...n), i.classList.add(...t), e.emitContainerClasses() }, removeClasses: function () { const { el: e, classNames: t } = this; e.classList.remove(...t), this.emitContainerClasses() } } }, te = {}; class se { constructor() { let e, t; for (var s = arguments.length, i = new Array(s), r = 0; r < s; r++)i[r] = arguments[r]; 1 === i.length && i[0].constructor && "Object" === Object.prototype.toString.call(i[0]).slice(8, -1) ? t = i[0] : [e, t] = i, t || (t = {}), t = p({}, t), e && !t.el && (t.el = e); const n = a(); if (t.el && "string" == typeof t.el && n.querySelectorAll(t.el).length > 1) { const e = []; return n.querySelectorAll(t.el).forEach((s => { const a = p({}, t, { el: s }); e.push(new se(a)) })), e } const l = this; l.__swiper__ = !0, l.support = L(), l.device = I({ userAgent: t.userAgent }), l.browser = z(), l.eventsListeners = {}, l.eventsAnyListeners = [], l.modules = [...l.__modules__], t.modules && Array.isArray(t.modules) && l.modules.push(...t.modules); const o = {}; l.modules.forEach((e => { e({ params: t, swiper: l, extendParams: J(t, o), on: l.on.bind(l), once: l.once.bind(l), off: l.off.bind(l), emit: l.emit.bind(l) }) })); const d = p({}, Q, o); return l.params = p({}, d, te, t), l.originalParams = p({}, l.params), l.passedParams = p({}, t), l.params && l.params.on && Object.keys(l.params.on).forEach((e => { l.on(e, l.params.on[e]) })), l.params && l.params.onAny && l.onAny(l.params.onAny), Object.assign(l, { enabled: l.params.enabled, el: e, classNames: [], slides: [], slidesGrid: [], snapGrid: [], slidesSizesGrid: [], isHorizontal: () => "horizontal" === l.params.direction, isVertical: () => "vertical" === l.params.direction, 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: l.params.allowSlideNext, allowSlidePrev: l.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: l.params.focusableElements, lastClickTime: 0, clickTimeout: void 0, velocities: [], allowMomentumBounce: void 0, startMoving: void 0, pointerId: null, touchId: null }, allowClick: !0, allowTouchMove: l.params.allowTouchMove, touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, imagesToLoad: [], imagesLoaded: 0 }), l.emit("_swiper"), l.params.init && l.init(), l } getDirectionLabel(e) { return this.isHorizontal() ? e : { width: "height", "margin-top": "margin-left", "margin-bottom ": "margin-right", "margin-left": "margin-top", "margin-right": "margin-bottom", "padding-left": "padding-top", "padding-right": "padding-bottom", marginRight: "marginBottom" }[e] } getSlideIndex(e) { const { slidesEl: t, params: s } = this, a = y(f(t, `.${s.slideClass}, swiper-slide`)[0]); return y(e) - a } getSlideIndexByData(e) { return this.getSlideIndex(this.slides.filter((t => 1 * t.getAttribute("data-swiper-slide-index") === e))[0]) } recalcSlides() { const { slidesEl: e, params: t } = this; this.slides = f(e, `.${t.slideClass}, swiper-slide`) } enable() { const e = this; e.enabled || (e.enabled = !0, e.params.grabCursor && e.setGrabCursor(), e.emit("enable")) } disable() { const e = this; e.enabled && (e.enabled = !1, e.params.grabCursor && e.unsetGrabCursor(), e.emit("disable")) } setProgress(e, t) { const s = this; e = Math.min(Math.max(e, 0), 1); const a = s.minTranslate(), i = (s.maxTranslate() - a) * e + a; s.translateTo(i, void 0 === t ? 0 : t), s.updateActiveIndex(), s.updateSlidesClasses() } emitContainerClasses() { const e = this; if (!e.params._emitClasses || !e.el) return; const t = e.el.className.split(" ").filter((t => 0 === t.indexOf("swiper") || 0 === t.indexOf(e.params.containerModifierClass))); e.emit("_containerClasses", t.join(" ")) } getSlideClasses(e) { const t = this; return t.destroyed ? "" : e.className.split(" ").filter((e => 0 === e.indexOf("swiper-slide") || 0 === e.indexOf(t.params.slideClass))).join(" ") } emitSlidesClasses() { const e = this; if (!e.params._emitClasses || !e.el) return; const t = []; e.slides.forEach((s => { const a = e.getSlideClasses(s); t.push({ slideEl: s, classNames: a }), e.emit("_slideClass", s, a) })), e.emit("_slideClasses", t) } slidesPerViewDynamic(e, t) { void 0 === e && (e = "current"), void 0 === t && (t = !1); const { params: s, slides: a, slidesGrid: i, slidesSizesGrid: r, size: n, activeIndex: l } = this; let o = 1; if ("number" == typeof s.slidesPerView) return s.slidesPerView; if (s.centeredSlides) { let e, t = a[l] ? Math.ceil(a[l].swiperSlideSize) : 0; for (let s = l + 1; s < a.length; s += 1)a[s] && !e && (t += Math.ceil(a[s].swiperSlideSize), o += 1, t > n && (e = !0)); for (let s = l - 1; s >= 0; s -= 1)a[s] && !e && (t += a[s].swiperSlideSize, o += 1, t > n && (e = !0)) } else if ("current" === e) for (let e = l + 1; e < a.length; e += 1) { (t ? i[e] + r[e] - i[l] < n : i[e] - i[l] < n) && (o += 1) } else for (let e = l - 1; e >= 0; e -= 1) { i[l] - i[e] < n && (o += 1) } return o } update() { const e = this; if (!e || e.destroyed) return; const { snapGrid: t, params: s } = e; function a() { const t = e.rtlTranslate ? -1 * e.translate : e.translate, s = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate()); e.setTranslate(s), e.updateActiveIndex(), e.updateSlidesClasses() } let i; if (s.breakpoints && e.setBreakpoint(), [...e.el.querySelectorAll('[loading="lazy"]')].forEach((t => { t.complete && k(e, t) })), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(), s.freeMode && s.freeMode.enabled && !s.cssMode) a(), s.autoHeight && e.updateAutoHeight(); else { if (("auto" === s.slidesPerView || s.slidesPerView > 1) && e.isEnd && !s.centeredSlides) { const t = e.virtual && s.virtual.enabled ? e.virtual.slides : e.slides; i = e.slideTo(t.length - 1, 0, !1, !0) } else i = e.slideTo(e.activeIndex, 0, !1, !0); i || a() } s.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit("update") } changeDirection(e, t) { void 0 === t && (t = !0); const s = this, a = s.params.direction; return e || (e = "horizontal" === a ? "vertical" : "horizontal"), e === a || "horizontal" !== e && "vertical" !== e || (s.el.classList.remove(`${s.params.containerModifierClass}${a}`), s.el.classList.add(`${s.params.containerModifierClass}${e}`), s.emitContainerClasses(), s.params.direction = e, s.slides.forEach((t => { "vertical" === e ? t.style.width = "" : t.style.height = "" })), s.emit("changeDirection"), t && s.update()), s } changeLanguageDirection(e) { const t = this; t.rtl && "rtl" === e || !t.rtl && "ltr" === e || (t.rtl = "rtl" === e, t.rtlTranslate = "horizontal" === t.params.direction && t.rtl, t.rtl ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`), t.el.dir = "rtl") : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`), t.el.dir = "ltr"), t.update()) } mount(e) { const t = this; if (t.mounted) return !0; let s = e || t.params.el; if ("string" == typeof s && (s = document.querySelector(s)), !s) return !1; s.swiper = t, s.parentNode && s.parentNode.host && s.parentNode.host.nodeName === t.params.swiperElementNodeName.toUpperCase() && (t.isElement = !0); const a = () => `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`; let i = (() => { if (s && s.shadowRoot && s.shadowRoot.querySelector) { return s.shadowRoot.querySelector(a()) } return f(s, a())[0] })(); return !i && t.params.createElements && (i = v("div", t.params.wrapperClass), s.append(i), f(s, `.${t.params.slideClass}`).forEach((e => { i.append(e) }))), Object.assign(t, { el: s, wrapperEl: i, slidesEl: t.isElement && !s.parentNode.host.slideSlots ? s.parentNode.host : i, hostEl: t.isElement ? s.parentNode.host : s, mounted: !0, rtl: "rtl" === s.dir.toLowerCase() || "rtl" === b(s, "direction"), rtlTranslate: "horizontal" === t.params.direction && ("rtl" === s.dir.toLowerCase() || "rtl" === b(s, "direction")), wrongRTL: "-webkit-box" === b(i, "display") }), !0 } init(e) { const t = this; if (t.initialized) return t; if (!1 === t.mount(e)) 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 s = [...t.el.querySelectorAll('[loading="lazy"]')]; return t.isElement && s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')), s.forEach((e => { e.complete ? k(t, e) : e.addEventListener("load", (e => { k(t, e.target) })) })), D(t), t.initialized = !0, D(t), t.emit("init"), t.emit("afterInit"), t } destroy(e, t) { void 0 === e && (e = !0), void 0 === t && (t = !0); const s = this, { params: a, el: i, wrapperEl: r, slides: n } = s; return void 0 === s.params || s.destroyed || (s.emit("beforeDestroy"), s.initialized = !1, s.detachEvents(), a.loop && s.loopDestroy(), t && (s.removeClasses(), i.removeAttribute("style"), r.removeAttribute("style"), n && n.length && n.forEach((e => { e.classList.remove(a.slideVisibleClass, a.slideFullyVisibleClass, a.slideActiveClass, a.slideNextClass, a.slidePrevClass), e.removeAttribute("style"), e.removeAttribute("data-swiper-slide-index") }))), s.emit("destroy"), Object.keys(s.eventsListeners).forEach((e => { s.off(e) })), !1 !== e && (s.el.swiper = null, function (e) { const t = e; Object.keys(t).forEach((e => { try { t[e] = null } catch (e) { } try { delete t[e] } catch (e) { } })) }(s)), s.destroyed = !0), null } static extendDefaults(e) { p(te, e) } static get extendedDefaults() { return te } static get defaults() { return Q } static installModule(e) { se.prototype.__modules__ || (se.prototype.__modules__ = []); const t = se.prototype.__modules__; "function" == typeof e && t.indexOf(e) < 0 && t.push(e) } static use(e) { return Array.isArray(e) ? (e.forEach((e => se.installModule(e))), se) : (se.installModule(e), se) } } function ae(e, t, s, a) { return e.params.createElements && Object.keys(a).forEach((i => { if (!s[i] && !0 === s.auto) { let r = f(e.el, `.${a[i]}`)[0]; r || (r = v("div", a[i]), r.className = a[i], e.el.append(r)), s[i] = r, t[i] = r } })), s } function ie(e) { return void 0 === e && (e = ""), `.${e.trim().replace(/([\.:!+\/])/g, "\\$1").replace(/ /g, ".")}` } function re(e) { const t = this, { params: s, slidesEl: a } = t; s.loop && t.loopDestroy(); const i = e => { if ("string" == typeof e) { const t = document.createElement("div"); t.innerHTML = e, a.append(t.children[0]), t.innerHTML = "" } else a.append(e) }; if ("object" == typeof e && "length" in e) for (let t = 0; t < e.length; t += 1)e[t] && i(e[t]); else i(e); t.recalcSlides(), s.loop && t.loopCreate(), s.observer && !t.isElement || t.update() } function ne(e) { const t = this, { params: s, activeIndex: a, slidesEl: i } = t; s.loop && t.loopDestroy(); let r = a + 1; const n = e => { if ("string" == typeof e) { const t = document.createElement("div"); t.innerHTML = e, i.prepend(t.children[0]), t.innerHTML = "" } else i.prepend(e) }; if ("object" == typeof e && "length" in e) { for (let t = 0; t < e.length; t += 1)e[t] && n(e[t]); r = a + e.length } else n(e); t.recalcSlides(), s.loop && t.loopCreate(), s.observer && !t.isElement || t.update(), t.slideTo(r, 0, !1) } function le(e, t) { const s = this, { params: a, activeIndex: i, slidesEl: r } = s; let n = i; a.loop && (n -= s.loopedSlides, s.loopDestroy(), s.recalcSlides()); const l = s.slides.length; if (e <= 0) return void s.prependSlide(t); if (e >= l) return void s.appendSlide(t); let o = n > e ? n + 1 : n; const d = []; for (let t = l - 1; t >= e; t -= 1) { const e = s.slides[t]; e.remove(), d.unshift(e) } if ("object" == typeof t && "length" in t) { for (let e = 0; e < t.length; e += 1)t[e] && r.append(t[e]); o = n > e ? n + t.length : n } else r.append(t); for (let e = 0; e < d.length; e += 1)r.append(d[e]); s.recalcSlides(), a.loop && s.loopCreate(), a.observer && !s.isElement || s.update(), a.loop ? s.slideTo(o + s.loopedSlides, 0, !1) : s.slideTo(o, 0, !1) } function oe(e) { const t = this, { params: s, activeIndex: a } = t; let i = a; s.loop && (i -= t.loopedSlides, t.loopDestroy()); let r, n = i; if ("object" == typeof e && "length" in e) { for (let s = 0; s < e.length; s += 1)r = e[s], t.slides[r] && t.slides[r].remove(), r < n && (n -= 1); n = Math.max(n, 0) } else r = e, t.slides[r] && t.slides[r].remove(), r < n && (n -= 1), n = Math.max(n, 0); t.recalcSlides(), s.loop && t.loopCreate(), s.observer && !t.isElement || t.update(), s.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1) } function de() { const e = this, t = []; for (let s = 0; s < e.slides.length; s += 1)t.push(s); e.removeSlide(t) } function ce(e) { const { effect: t, swiper: s, on: a, setTranslate: i, setTransition: r, overwriteParams: n, perspective: l, recreateShadows: o, getEffectParams: d } = e; let c; a("beforeInit", (() => { if (s.params.effect !== t) return; s.classNames.push(`${s.params.containerModifierClass}${t}`), l && l() && s.classNames.push(`${s.params.containerModifierClass}3d`); const e = n ? n() : {}; Object.assign(s.params, e), Object.assign(s.originalParams, e) })), a("setTranslate", (() => { s.params.effect === t && i() })), a("setTransition", ((e, a) => { s.params.effect === t && r(a) })), a("transitionEnd", (() => { if (s.params.effect === t && o) { if (!d || !d().slideShadows) return; s.slides.forEach((e => { e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e => e.remove())) })), o() } })), a("virtualUpdate", (() => { s.params.effect === t && (s.slides.length || (c = !0), requestAnimationFrame((() => { c && s.slides && s.slides.length && (i(), c = !1) }))) })) } function pe(e, t) { const s = h(t); return s !== t && (s.style.backfaceVisibility = "hidden", s.style["-webkit-backface-visibility"] = "hidden"), s } function ue(e) { let { swiper: t, duration: s, transformElements: a, allSlides: i } = e; const { activeIndex: r } = t; if (t.params.virtualTranslate && 0 !== s) { let e, s = !1; e = i ? a : a.filter((e => { const s = e.classList.contains("swiper-slide-transform") ? (e => { if (!e.parentElement) return t.slides.filter((t => t.shadowRoot && t.shadowRoot === e.parentNode))[0]; return e.parentElement })(e) : e; return t.getSlideIndex(s) === r })), e.forEach((e => { x(e, (() => { if (s) return; if (!t || t.destroyed) return; s = !0, t.animating = !1; const e = new window.CustomEvent("transitionend", { bubbles: !0, cancelable: !0 }); t.wrapperEl.dispatchEvent(e) })) })) } } function me(e, t, s) { const a = `swiper-slide-shadow${s ? `-${s}` : ""}${e ? ` swiper-slide-shadow-${e}` : ""}`, i = h(t); let r = i.querySelector(`.${a.split(" ").join(".")}`); return r || (r = v("div", a.split(" ")), i.append(r)), r } Object.keys(ee).forEach((e => { Object.keys(ee[e]).forEach((t => { se.prototype[t] = ee[e][t] })) })), se.use([function (e) { let { swiper: t, on: s, emit: a } = e; const i = r(); let n = null, l = null; const o = () => { t && !t.destroyed && t.initialized && (a("beforeResize"), a("resize")) }, d = () => { t && !t.destroyed && t.initialized && a("orientationchange") }; s("init", (() => { t.params.resizeObserver && void 0 !== i.ResizeObserver ? t && !t.destroyed && t.initialized && (n = new ResizeObserver((e => { l = i.requestAnimationFrame((() => { const { width: s, height: a } = t; let i = s, r = a; e.forEach((e => { let { contentBoxSize: s, contentRect: a, target: n } = e; n && n !== t.el || (i = a ? a.width : (s[0] || s).inlineSize, r = a ? a.height : (s[0] || s).blockSize) })), i === s && r === a || o() })) })), n.observe(t.el)) : (i.addEventListener("resize", o), i.addEventListener("orientationchange", d)) })), s("destroy", (() => { l && i.cancelAnimationFrame(l), n && n.unobserve && t.el && (n.unobserve(t.el), n = null), i.removeEventListener("resize", o), i.removeEventListener("orientationchange", d) })) }, function (e) { let { swiper: t, extendParams: s, on: a, emit: i } = e; const n = [], l = r(), o = function (e, s) { void 0 === s && (s = {}); const a = new (l.MutationObserver || l.WebkitMutationObserver)((e => { if (t.__preventObserver__) return; if (1 === e.length) return void i("observerUpdate", e[0]); const s = function () { i("observerUpdate", e[0]) }; l.requestAnimationFrame ? l.requestAnimationFrame(s) : l.setTimeout(s, 0) })); a.observe(e, { attributes: void 0 === s.attributes || s.attributes, childList: void 0 === s.childList || s.childList, characterData: void 0 === s.characterData || s.characterData }), n.push(a) }; s({ observer: !1, observeParents: !1, observeSlideChildren: !1 }), a("init", (() => { if (t.params.observer) { if (t.params.observeParents) { const e = E(t.hostEl); for (let t = 0; t < e.length; t += 1)o(e[t]) } o(t.hostEl, { childList: t.params.observeSlideChildren }), o(t.wrapperEl, { attributes: !1 }) } })), a("destroy", (() => { n.forEach((e => { e.disconnect() })), n.splice(0, n.length) })) }]); const he = [function (e) { let t, { swiper: s, extendParams: i, on: r, emit: n } = e; i({ virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, renderExternalUpdate: !0, addSlidesBefore: 0, addSlidesAfter: 0 } }); const l = a(); s.virtual = { cache: {}, from: void 0, to: void 0, slides: [], offset: 0, slidesGrid: [] }; const o = l.createElement("div"); function d(e, t) { const a = s.params.virtual; if (a.cache && s.virtual.cache[t]) return s.virtual.cache[t]; let i; return a.renderSlide ? (i = a.renderSlide.call(s, e, t), "string" == typeof i && (o.innerHTML = i, i = o.children[0])) : i = s.isElement ? v("swiper-slide") : v("div", s.params.slideClass), i.setAttribute("data-swiper-slide-index", t), a.renderSlide || (i.innerHTML = e), a.cache && (s.virtual.cache[t] = i), i } function c(e, t) { const { slidesPerView: a, slidesPerGroup: i, centeredSlides: r, loop: l, initialSlide: o } = s.params; if (t && !l && o > 0) return; const { addSlidesBefore: c, addSlidesAfter: p } = s.params.virtual, { from: u, to: m, slides: h, slidesGrid: g, offset: v } = s.virtual; s.params.cssMode || s.updateActiveIndex(); const w = s.activeIndex || 0; let b, y, E; b = s.rtlTranslate ? "right" : s.isHorizontal() ? "left" : "top", r ? (y = Math.floor(a / 2) + i + p, E = Math.floor(a / 2) + i + c) : (y = a + (i - 1) + p, E = (l ? a : i) + c); let x = w - E, S = w + y; l || (x = Math.max(x, 0), S = Math.min(S, h.length - 1)); let T = (s.slidesGrid[x] || 0) - (s.slidesGrid[0] || 0); function M() { s.updateSlides(), s.updateProgress(), s.updateSlidesClasses(), n("virtualUpdate") } if (l && w >= E ? (x -= E, r || (T += s.slidesGrid[0])) : l && w < E && (x = -E, r && (T += s.slidesGrid[0])), Object.assign(s.virtual, { from: x, to: S, offset: T, slidesGrid: s.slidesGrid, slidesBefore: E, slidesAfter: y }), u === x && m === S && !e) return s.slidesGrid !== g && T !== v && s.slides.forEach((e => { e.style[b] = T - Math.abs(s.cssOverflowAdjustment()) + "px" })), s.updateProgress(), void n("virtualUpdate"); if (s.params.virtual.renderExternal) return s.params.virtual.renderExternal.call(s, { offset: T, from: x, to: S, slides: function () { const e = []; for (let t = x; t <= S; t += 1)e.push(h[t]); return e }() }), void (s.params.virtual.renderExternalUpdate ? M() : n("virtualUpdate")); const C = [], P = [], L = e => { let t = e; return e < 0 ? t = h.length + e : t >= h.length && (t -= h.length), t }; if (e) s.slides.filter((e => e.matches(`.${s.params.slideClass}, swiper-slide`))).forEach((e => { e.remove() })); else for (let e = u; e <= m; e += 1)if (e < x || e > S) { const t = L(e); s.slides.filter((e => e.matches(`.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`))).forEach((e => { e.remove() })) } const I = l ? -h.length : 0, z = l ? 2 * h.length : h.length; for (let t = I; t < z; t += 1)if (t >= x && t <= S) { const s = L(t); void 0 === m || e ? P.push(s) : (t > m && P.push(s), t < u && C.push(s)) } if (P.forEach((e => { s.slidesEl.append(d(h[e], e)) })), l) for (let e = C.length - 1; e >= 0; e -= 1) { const t = C[e]; s.slidesEl.prepend(d(h[t], t)) } else C.sort(((e, t) => t - e)), C.forEach((e => { s.slidesEl.prepend(d(h[e], e)) })); f(s.slidesEl, ".swiper-slide, swiper-slide").forEach((e => { e.style[b] = T - Math.abs(s.cssOverflowAdjustment()) + "px" })), M() } r("beforeInit", (() => { if (!s.params.virtual.enabled) return; let e; if (void 0 === s.passedParams.virtual.slides) { const t = [...s.slidesEl.children].filter((e => e.matches(`.${s.params.slideClass}, swiper-slide`))); t && t.length && (s.virtual.slides = [...t], e = !0, t.forEach(((e, t) => { e.setAttribute("data-swiper-slide-index", t), s.virtual.cache[t] = e, e.remove() }))) } e || (s.virtual.slides = s.params.virtual.slides), s.classNames.push(`${s.params.containerModifierClass}virtual`), s.params.watchSlidesProgress = !0, s.originalParams.watchSlidesProgress = !0, c(!1, !0) })), r("setTranslate", (() => { s.params.virtual.enabled && (s.params.cssMode && !s._immediateVirtual ? (clearTimeout(t), t = setTimeout((() => { c() }), 100)) : c()) })), r("init update resize", (() => { s.params.virtual.enabled && s.params.cssMode && u(s.wrapperEl, "--swiper-virtual-size", `${s.virtualSize}px`) })), Object.assign(s.virtual, { appendSlide: function (e) { if ("object" == typeof e && "length" in e) for (let t = 0; t < e.length; t += 1)e[t] && s.virtual.slides.push(e[t]); else s.virtual.slides.push(e); c(!0) }, prependSlide: function (e) { const t = s.activeIndex; let a = t + 1, i = 1; if (Array.isArray(e)) { for (let t = 0; t < e.length; t += 1)e[t] && s.virtual.slides.unshift(e[t]); a = t + e.length, i = e.length } else s.virtual.slides.unshift(e); if (s.params.virtual.cache) { const e = s.virtual.cache, t = {}; Object.keys(e).forEach((s => { const a = e[s], r = a.getAttribute("data-swiper-slide-index"); r && a.setAttribute("data-swiper-slide-index", parseInt(r, 10) + i), t[parseInt(s, 10) + i] = a })), s.virtual.cache = t } c(!0), s.slideTo(a, 0) }, removeSlide: function (e) { if (null == e) return; let t = s.activeIndex; if (Array.isArray(e)) for (let a = e.length - 1; a >= 0; a -= 1)s.params.virtual.cache && (delete s.virtual.cache[e[a]], Object.keys(s.virtual.cache).forEach((t => { t > e && (s.virtual.cache[t - 1] = s.virtual.cache[t], s.virtual.cache[t - 1].setAttribute("data-swiper-slide-index", t - 1), delete s.virtual.cache[t]) }))), s.virtual.slides.splice(e[a], 1), e[a] < t && (t -= 1), t = Math.max(t, 0); else s.params.virtual.cache && (delete s.virtual.cache[e], Object.keys(s.virtual.cache).forEach((t => { t > e && (s.virtual.cache[t - 1] = s.virtual.cache[t], s.virtual.cache[t - 1].setAttribute("data-swiper-slide-index", t - 1), delete s.virtual.cache[t]) }))), s.virtual.slides.splice(e, 1), e < t && (t -= 1), t = Math.max(t, 0); c(!0), s.slideTo(t, 0) }, removeAllSlides: function () { s.virtual.slides = [], s.params.virtual.cache && (s.virtual.cache = {}), c(!0), s.slideTo(0, 0) }, update: c }) }, function (e) { let { swiper: t, extendParams: s, on: i, emit: n } = e; const l = a(), o = r(); function d(e) { if (!t.enabled) return; const { rtlTranslate: s } = t; let a = e; a.originalEvent && (a = a.originalEvent); const i = a.keyCode || a.charCode, r = t.params.keyboard.pageUpDown, d = r && 33 === i, c = r && 34 === i, p = 37 === i, u = 39 === i, m = 38 === i, h = 40 === i; if (!t.allowSlideNext && (t.isHorizontal() && u || t.isVertical() && h || c)) return !1; if (!t.allowSlidePrev && (t.isHorizontal() && p || t.isVertical() && m || d)) return !1; if (!(a.shiftKey || a.altKey || a.ctrlKey || a.metaKey || l.activeElement && l.activeElement.nodeName && ("input" === l.activeElement.nodeName.toLowerCase() || "textarea" === l.activeElement.nodeName.toLowerCase()))) { if (t.params.keyboard.onlyInViewport && (d || c || p || u || m || h)) { let e = !1; if (E(t.el, `.${t.params.slideClass}, swiper-slide`).length > 0 && 0 === E(t.el, `.${t.params.slideActiveClass}`).length) return; const a = t.el, i = a.clientWidth, r = a.clientHeight, n = o.innerWidth, l = o.innerHeight, d = w(a); s && (d.left -= a.scrollLeft); const c = [[d.left, d.top], [d.left + i, d.top], [d.left, d.top + r], [d.left + i, d.top + r]]; for (let t = 0; t < c.length; t += 1) { const s = c[t]; if (s[0] >= 0 && s[0] <= n && s[1] >= 0 && s[1] <= l) { if (0 === s[0] && 0 === s[1]) continue; e = !0 } } if (!e) return } t.isHorizontal() ? ((d || c || p || u) && (a.preventDefault ? a.preventDefault() : a.returnValue = !1), ((c || u) && !s || (d || p) && s) && t.slideNext(), ((d || p) && !s || (c || u) && s) && t.slidePrev()) : ((d || c || m || h) && (a.preventDefault ? a.preventDefault() : a.returnValue = !1), (c || h) && t.slideNext(), (d || m) && t.slidePrev()), n("keyPress", i) } } function c() { t.keyboard.enabled || (l.addEventListener("keydown", d), t.keyboard.enabled = !0) } function p() { t.keyboard.enabled && (l.removeEventListener("keydown", d), t.keyboard.enabled = !1) } t.keyboard = { enabled: !1 }, s({ keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } }), i("init", (() => { t.params.keyboard.enabled && c() })), i("destroy", (() => { t.keyboard.enabled && p() })), Object.assign(t.keyboard, { enable: c, disable: p }) }, function (e) { let { swiper: t, extendParams: s, on: a, emit: i } = e; const n = r(); let d; s({ mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarget: "container", thresholdDelta: null, thresholdTime: null, noMousewheelClass: "swiper-no-mousewheel" } }), t.mousewheel = { enabled: !1 }; let c, p = o(); const u = []; function m() { t.enabled && (t.mouseEntered = !0) } function h() { t.enabled && (t.mouseEntered = !1) } function f(e) { return !(t.params.mousewheel.thresholdDelta && e.delta < t.params.mousewheel.thresholdDelta) && (!(t.params.mousewheel.thresholdTime && o() - p < t.params.mousewheel.thresholdTime) && (e.delta >= 6 && o() - p < 60 || (e.direction < 0 ? t.isEnd && !t.params.loop || t.animating || (t.slideNext(), i("scroll", e.raw)) : t.isBeginning && !t.params.loop || t.animating || (t.slidePrev(), i("scroll", e.raw)), p = (new n.Date).getTime(), !1))) } function g(e) { let s = e, a = !0; if (!t.enabled) return; if (e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`)) return; const r = t.params.mousewheel; t.params.cssMode && s.preventDefault(); let n = t.el; "container" !== t.params.mousewheel.eventsTarget && (n = document.querySelector(t.params.mousewheel.eventsTarget)); const p = n && n.contains(s.target); if (!t.mouseEntered && !p && !r.releaseOnEdges) return !0; s.originalEvent && (s = s.originalEvent); let m = 0; const h = t.rtlTranslate ? -1 : 1, g = function (e) { let t = 0, s = 0, a = 0, i = 0; return "detail" in e && (s = e.detail), "wheelDelta" in e && (s = -e.wheelDelta / 120), "wheelDeltaY" in e && (s = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (t = s, s = 0), a = 10 * t, i = 10 * s, "deltaY" in e && (i = e.deltaY), "deltaX" in e && (a = e.deltaX), e.shiftKey && !a && (a = i, i = 0), (a || i) && e.deltaMode && (1 === e.deltaMode ? (a *= 40, i *= 40) : (a *= 800, i *= 800)), a && !t && (t = a < 1 ? -1 : 1), i && !s && (s = i < 1 ? -1 : 1), { spinX: t, spinY: s, pixelX: a, pixelY: i } }(s); if (r.forceToAxis) if (t.isHorizontal()) { if (!(Math.abs(g.pixelX) > Math.abs(g.pixelY))) return !0; m = -g.pixelX * h } else { if (!(Math.abs(g.pixelY) > Math.abs(g.pixelX))) return !0; m = -g.pixelY } else m = Math.abs(g.pixelX) > Math.abs(g.pixelY) ? -g.pixelX * h : -g.pixelY; if (0 === m) return !0; r.invert && (m = -m); let v = t.getTranslate() + m * r.sensitivity; if (v >= t.minTranslate() && (v = t.minTranslate()), v <= t.maxTranslate() && (v = t.maxTranslate()), a = !!t.params.loop || !(v === t.minTranslate() || v === t.maxTranslate()), a && t.params.nested && s.stopPropagation(), t.params.freeMode && t.params.freeMode.enabled) { const e = { time: o(), delta: Math.abs(m), direction: Math.sign(m) }, a = c && e.time < c.time + 500 && e.delta <= c.delta && e.direction === c.direction; if (!a) { c = void 0; let n = t.getTranslate() + m * r.sensitivity; const o = t.isBeginning, p = t.isEnd; if (n >= t.minTranslate() && (n = t.minTranslate()), n <= t.maxTranslate() && (n = t.maxTranslate()), t.setTransition(0), t.setTranslate(n), t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses(), (!o && t.isBeginning || !p && t.isEnd) && t.updateSlidesClasses(), t.params.loop && t.loopFix({ direction: e.direction < 0 ? "next" : "prev", byMousewheel: !0 }), t.params.freeMode.sticky) { clearTimeout(d), d = void 0, u.length >= 15 && u.shift(); const s = u.length ? u[u.length - 1] : void 0, a = u[0]; if (u.push(e), s && (e.delta > s.delta || e.direction !== s.direction)) u.splice(0); else if (u.length >= 15 && e.time - a.time < 500 && a.delta - e.delta >= 1 && e.delta <= 6) { const s = m > 0 ? .8 : .2; c = e, u.splice(0), d = l((() => { t.slideToClosest(t.params.speed, !0, void 0, s) }), 0) } d || (d = l((() => { c = e, u.splice(0), t.slideToClosest(t.params.speed, !0, void 0, .5) }), 500)) } if (a || i("scroll", s), t.params.autoplay && t.params.autoplayDisableOnInteraction && t.autoplay.stop(), r.releaseOnEdges && (n === t.minTranslate() || n === t.maxTranslate())) return !0 } } else { const s = { time: o(), delta: Math.abs(m), direction: Math.sign(m), raw: e }; u.length >= 2 && u.shift(); const a = u.length ? u[u.length - 1] : void 0; if (u.push(s), a ? (s.direction !== a.direction || s.delta > a.delta || s.time > a.time + 150) && f(s) : f(s), function (e) { const s = t.params.mousewheel; if (e.direction < 0) { if (t.isEnd && !t.params.loop && s.releaseOnEdges) return !0 } else if (t.isBeginning && !t.params.loop && s.releaseOnEdges) return !0; return !1 }(s)) return !0 } return s.preventDefault ? s.preventDefault() : s.returnValue = !1, !1 } function v(e) { let s = t.el; "container" !== t.params.mousewheel.eventsTarget && (s = document.querySelector(t.params.mousewheel.eventsTarget)), s[e]("mouseenter", m), s[e]("mouseleave", h), s[e]("wheel", g) } function w() { return t.params.cssMode ? (t.wrapperEl.removeEventListener("wheel", g), !0) : !t.mousewheel.enabled && (v("addEventListener"), t.mousewheel.enabled = !0, !0) } function b() { return t.params.cssMode ? (t.wrapperEl.addEventListener(event, g), !0) : !!t.mousewheel.enabled && (v("removeEventListener"), t.mousewheel.enabled = !1, !0) } a("init", (() => { !t.params.mousewheel.enabled && t.params.cssMode && b(), t.params.mousewheel.enabled && w() })), a("destroy", (() => { t.params.cssMode && w(), t.mousewheel.enabled && b() })), Object.assign(t.mousewheel, { enable: w, disable: b }) }, function (e) { let { swiper: t, extendParams: s, on: a, emit: i } = e; function r(e) { let s; return e && "string" == typeof e && t.isElement && (s = t.el.querySelector(e), s) ? s : (e && ("string" == typeof e && (s = [...document.querySelectorAll(e)]), t.params.uniqueNavElements && "string" == typeof e && s && s.length > 1 && 1 === t.el.querySelectorAll(e).length ? s = t.el.querySelector(e) : s && 1 === s.length && (s = s[0])), e && !s ? e : s) } function n(e, s) { const a = t.params.navigation; (e = T(e)).forEach((e => { e && (e.classList[s ? "add" : "remove"](...a.disabledClass.split(" ")), "BUTTON" === e.tagName && (e.disabled = s), t.params.watchOverflow && t.enabled && e.classList[t.isLocked ? "add" : "remove"](a.lockClass)) })) } function l() { const { nextEl: e, prevEl: s } = t.navigation; if (t.params.loop) return n(s, !1), void n(e, !1); n(s, t.isBeginning && !t.params.rewind), n(e, t.isEnd && !t.params.rewind) } function o(e) { e.preventDefault(), (!t.isBeginning || t.params.loop || t.params.rewind) && (t.slidePrev(), i("navigationPrev")) } function d(e) { e.preventDefault(), (!t.isEnd || t.params.loop || t.params.rewind) && (t.slideNext(), i("navigationNext")) } function c() { const e = t.params.navigation; if (t.params.navigation = ae(t, t.originalParams.navigation, t.params.navigation, { nextEl: "swiper-button-next", prevEl: "swiper-button-prev" }), !e.nextEl && !e.prevEl) return; let s = r(e.nextEl), a = r(e.prevEl); Object.assign(t.navigation, { nextEl: s, prevEl: a }), s = T(s), a = T(a); const i = (s, a) => { s && s.addEventListener("click", "next" === a ? d : o), !t.enabled && s && s.classList.add(...e.lockClass.split(" ")) }; s.forEach((e => i(e, "next"))), a.forEach((e => i(e, "prev"))) } function p() { let { nextEl: e, prevEl: s } = t.navigation; e = T(e), s = T(s); const a = (e, s) => { e.removeEventListener("click", "next" === s ? d : o), e.classList.remove(...t.params.navigation.disabledClass.split(" ")) }; e.forEach((e => a(e, "next"))), s.forEach((e => a(e, "prev"))) } s({ navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: "swiper-button-disabled", hiddenClass: "swiper-button-hidden", lockClass: "swiper-button-lock", navigationDisabledClass: "swiper-navigation-disabled" } }), t.navigation = { nextEl: null, prevEl: null }, a("init", (() => { !1 === t.params.navigation.enabled ? u() : (c(), l()) })), a("toEdge fromEdge lock unlock", (() => { l() })), a("destroy", (() => { p() })), a("enable disable", (() => { let { nextEl: e, prevEl: s } = t.navigation; e = T(e), s = T(s), t.enabled ? l() : [...e, ...s].filter((e => !!e)).forEach((e => e.classList.add(t.params.navigation.lockClass))) })), a("click", ((e, s) => { let { nextEl: a, prevEl: r } = t.navigation; a = T(a), r = T(r); const n = s.target; if (t.params.navigation.hideOnClick && !r.includes(n) && !a.includes(n)) { if (t.pagination && t.params.pagination && t.params.pagination.clickable && (t.pagination.el === n || t.pagination.el.contains(n))) return; let e; a.length ? e = a[0].classList.contains(t.params.navigation.hiddenClass) : r.length && (e = r[0].classList.contains(t.params.navigation.hiddenClass)), i(!0 === e ? "navigationShow" : "navigationHide"), [...a, ...r].filter((e => !!e)).forEach((e => e.classList.toggle(t.params.navigation.hiddenClass))) } })); const u = () => { t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(" ")), p() }; Object.assign(t.navigation, { enable: () => { t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(" ")), c(), l() }, disable: u, update: l, init: c, destroy: p }) }, function (e) { let { swiper: t, extendParams: s, on: a, emit: i } = e; const r = "swiper-pagination"; let n; s({ 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: e => e, formatFractionTotal: e => e, bulletClass: `${r}-bullet`, bulletActiveClass: `${r}-bullet-active`, modifierClass: `${r}-`, currentClass: `${r}-current`, totalClass: `${r}-total`, hiddenClass: `${r}-hidden`, progressbarFillClass: `${r}-progressbar-fill`, progressbarOppositeClass: `${r}-progressbar-opposite`, clickableClass: `${r}-clickable`, lockClass: `${r}-lock`, horizontalClass: `${r}-horizontal`, verticalClass: `${r}-vertical`, paginationDisabledClass: `${r}-disabled` } }), t.pagination = { el: null, bullets: [] }; let l = 0; function o() { return !t.params.pagination.el || !t.pagination.el || Array.isArray(t.pagination.el) && 0 === t.pagination.el.length } function d(e, s) { const { bulletActiveClass: a } = t.params.pagination; e && (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) && (e.classList.add(`${a}-${s}`), (e = e[("prev" === s ? "previous" : "next") + "ElementSibling"]) && e.classList.add(`${a}-${s}-${s}`)) } function c(e) { const s = e.target.closest(ie(t.params.pagination.bulletClass)); if (!s) return; e.preventDefault(); const a = y(s) * t.params.slidesPerGroup; if (t.params.loop) { if (t.realIndex === a) return; t.slideToLoop(a) } else t.slideTo(a) } function p() { const e = t.rtl, s = t.params.pagination; if (o()) return; let a, r, c = t.pagination.el; c = T(c); const p = t.virtual && t.params.virtual.enabled ? t.virtual.slides.length : t.slides.length, u = t.params.loop ? Math.ceil(p / t.params.slidesPerGroup) : t.snapGrid.length; if (t.params.loop ? (r = t.previousRealIndex || 0, a = t.params.slidesPerGroup > 1 ? Math.floor(t.realIndex / t.params.slidesPerGroup) : t.realIndex) : void 0 !== t.snapIndex ? (a = t.snapIndex, r = t.previousSnapIndex) : (r = t.previousIndex || 0, a = t.activeIndex || 0), "bullets" === s.type && t.pagination.bullets && t.pagination.bullets.length > 0) { const i = t.pagination.bullets; let o, p, u; if (s.dynamicBullets && (n = S(i[0], t.isHorizontal() ? "width" : "height", !0), c.forEach((e => { e.style[t.isHorizontal() ? "width" : "height"] = n * (s.dynamicMainBullets + 4) + "px" })), s.dynamicMainBullets > 1 && void 0 !== r && (l += a - (r || 0), l > s.dynamicMainBullets - 1 ? l = s.dynamicMainBullets - 1 : l < 0 && (l = 0)), o = Math.max(a - l, 0), p = o + (Math.min(i.length, s.dynamicMainBullets) - 1), u = (p + o) / 2), i.forEach((e => { const t = [...["", "-next", "-next-next", "-prev", "-prev-prev", "-main"].map((e => `${s.bulletActiveClass}${e}`))].map((e => "string" == typeof e && e.includes(" ") ? e.split(" ") : e)).flat(); e.classList.remove(...t) })), c.length > 1) i.forEach((e => { const i = y(e); i === a ? e.classList.add(...s.bulletActiveClass.split(" ")) : t.isElement && e.setAttribute("part", "bullet"), s.dynamicBullets && (i >= o && i <= p && e.classList.add(...`${s.bulletActiveClass}-main`.split(" ")), i === o && d(e, "prev"), i === p && d(e, "next")) })); else { const e = i[a]; if (e && e.classList.add(...s.bulletActiveClass.split(" ")), t.isElement && i.forEach(((e, t) => { e.setAttribute("part", t === a ? "bullet-active" : "bullet") })), s.dynamicBullets) { const e = i[o], t = i[p]; for (let e = o; e <= p; e += 1)i[e] && i[e].classList.add(...`${s.bulletActiveClass}-main`.split(" ")); d(e, "prev"), d(t, "next") } } if (s.dynamicBullets) { const a = Math.min(i.length, s.dynamicMainBullets + 4), r = (n * a - n) / 2 - u * n, l = e ? "right" : "left"; i.forEach((e => { e.style[t.isHorizontal() ? l : "top"] = `${r}px` })) } } c.forEach(((e, r) => { if ("fraction" === s.type && (e.querySelectorAll(ie(s.currentClass)).forEach((e => { e.textContent = s.formatFractionCurrent(a + 1) })), e.querySelectorAll(ie(s.totalClass)).forEach((e => { e.textContent = s.formatFractionTotal(u) }))), "progressbar" === s.type) { let i; i = s.progressbarOpposite ? t.isHorizontal() ? "vertical" : "horizontal" : t.isHorizontal() ? "horizontal" : "vertical"; const r = (a + 1) / u; let n = 1, l = 1; "horizontal" === i ? n = r : l = r, e.querySelectorAll(ie(s.progressbarFillClass)).forEach((e => { e.style.transform = `translate3d(0,0,0) scaleX(${n}) scaleY(${l})`, e.style.transitionDuration = `${t.params.speed}ms` })) } "custom" === s.type && s.renderCustom ? (e.innerHTML = s.renderCustom(t, a + 1, u), 0 === r && i("paginationRender", e)) : (0 === r && i("paginationRender", e), i("paginationUpdate", e)), t.params.watchOverflow && t.enabled && e.classList[t.isLocked ? "add" : "remove"](s.lockClass) })) } function u() { const e = t.params.pagination; if (o()) return; const s = t.virtual && t.params.virtual.enabled ? t.virtual.slides.length : t.grid && t.params.grid.rows > 1 ? t.slides.length / Math.ceil(t.params.grid.rows) : t.slides.length; let a = t.pagination.el; a = T(a); let r = ""; if ("bullets" === e.type) { let a = t.params.loop ? Math.ceil(s / t.params.slidesPerGroup) : t.snapGrid.length; t.params.freeMode && t.params.freeMode.enabled && a > s && (a = s); for (let s = 0; s < a; s += 1)e.renderBullet ? r += e.renderBullet.call(t, s, e.bulletClass) : r += `<${e.bulletElement} ${t.isElement ? 'part="bullet"' : ""} class="${e.bulletClass}">` } "fraction" === e.type && (r = e.renderFraction ? e.renderFraction.call(t, e.currentClass, e.totalClass) : ` / `), "progressbar" === e.type && (r = e.renderProgressbar ? e.renderProgressbar.call(t, e.progressbarFillClass) : ``), t.pagination.bullets = [], a.forEach((s => { "custom" !== e.type && (s.innerHTML = r || ""), "bullets" === e.type && t.pagination.bullets.push(...s.querySelectorAll(ie(e.bulletClass))) })), "custom" !== e.type && i("paginationRender", a[0]) } function m() { t.params.pagination = ae(t, t.originalParams.pagination, t.params.pagination, { el: "swiper-pagination" }); const e = t.params.pagination; if (!e.el) return; let s; "string" == typeof e.el && t.isElement && (s = t.el.querySelector(e.el)), s || "string" != typeof e.el || (s = [...document.querySelectorAll(e.el)]), s || (s = e.el), s && 0 !== s.length && (t.params.uniqueNavElements && "string" == typeof e.el && Array.isArray(s) && s.length > 1 && (s = [...t.el.querySelectorAll(e.el)], s.length > 1 && (s = s.filter((e => E(e, ".swiper")[0] === t.el))[0])), Array.isArray(s) && 1 === s.length && (s = s[0]), Object.assign(t.pagination, { el: s }), s = T(s), s.forEach((s => { "bullets" === e.type && e.clickable && s.classList.add(...(e.clickableClass || "").split(" ")), s.classList.add(e.modifierClass + e.type), s.classList.add(t.isHorizontal() ? e.horizontalClass : e.verticalClass), "bullets" === e.type && e.dynamicBullets && (s.classList.add(`${e.modifierClass}${e.type}-dynamic`), l = 0, e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)), "progressbar" === e.type && e.progressbarOpposite && s.classList.add(e.progressbarOppositeClass), e.clickable && s.addEventListener("click", c), t.enabled || s.classList.add(e.lockClass) }))) } function h() { const e = t.params.pagination; if (o()) return; let s = t.pagination.el; s && (s = T(s), s.forEach((s => { s.classList.remove(e.hiddenClass), s.classList.remove(e.modifierClass + e.type), s.classList.remove(t.isHorizontal() ? e.horizontalClass : e.verticalClass), e.clickable && (s.classList.remove(...(e.clickableClass || "").split(" ")), s.removeEventListener("click", c)) }))), t.pagination.bullets && t.pagination.bullets.forEach((t => t.classList.remove(...e.bulletActiveClass.split(" ")))) } a("changeDirection", (() => { if (!t.pagination || !t.pagination.el) return; const e = t.params.pagination; let { el: s } = t.pagination; s = T(s), s.forEach((s => { s.classList.remove(e.horizontalClass, e.verticalClass), s.classList.add(t.isHorizontal() ? e.horizontalClass : e.verticalClass) })) })), a("init", (() => { !1 === t.params.pagination.enabled ? f() : (m(), u(), p()) })), a("activeIndexChange", (() => { void 0 === t.snapIndex && p() })), a("snapIndexChange", (() => { p() })), a("snapGridLengthChange", (() => { u(), p() })), a("destroy", (() => { h() })), a("enable disable", (() => { let { el: e } = t.pagination; e && (e = T(e), e.forEach((e => e.classList[t.enabled ? "remove" : "add"](t.params.pagination.lockClass)))) })), a("lock unlock", (() => { p() })), a("click", ((e, s) => { const a = s.target, r = T(t.pagination.el); if (t.params.pagination.el && t.params.pagination.hideOnClick && r && r.length > 0 && !a.classList.contains(t.params.pagination.bulletClass)) { if (t.navigation && (t.navigation.nextEl && a === t.navigation.nextEl || t.navigation.prevEl && a === t.navigation.prevEl)) return; const e = r[0].classList.contains(t.params.pagination.hiddenClass); i(!0 === e ? "paginationShow" : "paginationHide"), r.forEach((e => e.classList.toggle(t.params.pagination.hiddenClass))) } })); const f = () => { t.el.classList.add(t.params.pagination.paginationDisabledClass); let { el: e } = t.pagination; e && (e = T(e), e.forEach((e => e.classList.add(t.params.pagination.paginationDisabledClass)))), h() }; Object.assign(t.pagination, { enable: () => { t.el.classList.remove(t.params.pagination.paginationDisabledClass); let { el: e } = t.pagination; e && (e = T(e), e.forEach((e => e.classList.remove(t.params.pagination.paginationDisabledClass)))), m(), u(), p() }, disable: f, render: u, update: p, init: m, destroy: h }) }, function (e) { let { swiper: t, extendParams: s, on: i, emit: r } = e; const o = a(); let d, c, p, u, m = !1, h = null, f = null; function g() { if (!t.params.scrollbar.el || !t.scrollbar.el) return; const { scrollbar: e, rtlTranslate: s } = t, { dragEl: a, el: i } = e, r = t.params.scrollbar, n = t.params.loop ? t.progressLoop : t.progress; let l = c, o = (p - c) * n; s ? (o = -o, o > 0 ? (l = c - o, o = 0) : -o + c > p && (l = p + o)) : o < 0 ? (l = c + o, o = 0) : o + c > p && (l = p - o), t.isHorizontal() ? (a.style.transform = `translate3d(${o}px, 0, 0)`, a.style.width = `${l}px`) : (a.style.transform = `translate3d(0px, ${o}px, 0)`, a.style.height = `${l}px`), r.hide && (clearTimeout(h), i.style.opacity = 1, h = setTimeout((() => { i.style.opacity = 0, i.style.transitionDuration = "400ms" }), 1e3)) } function b() { if (!t.params.scrollbar.el || !t.scrollbar.el) return; const { scrollbar: e } = t, { dragEl: s, el: a } = e; s.style.width = "", s.style.height = "", p = t.isHorizontal() ? a.offsetWidth : a.offsetHeight, u = t.size / (t.virtualSize + t.params.slidesOffsetBefore - (t.params.centeredSlides ? t.snapGrid[0] : 0)), c = "auto" === t.params.scrollbar.dragSize ? p * u : parseInt(t.params.scrollbar.dragSize, 10), t.isHorizontal() ? s.style.width = `${c}px` : s.style.height = `${c}px`, a.style.display = u >= 1 ? "none" : "", t.params.scrollbar.hide && (a.style.opacity = 0), t.params.watchOverflow && t.enabled && e.el.classList[t.isLocked ? "add" : "remove"](t.params.scrollbar.lockClass) } function y(e) { return t.isHorizontal() ? e.clientX : e.clientY } function E(e) { const { scrollbar: s, rtlTranslate: a } = t, { el: i } = s; let r; r = (y(e) - w(i)[t.isHorizontal() ? "left" : "top"] - (null !== d ? d : c / 2)) / (p - c), r = Math.max(Math.min(r, 1), 0), a && (r = 1 - r); const n = t.minTranslate() + (t.maxTranslate() - t.minTranslate()) * r; t.updateProgress(n), t.setTranslate(n), t.updateActiveIndex(), t.updateSlidesClasses() } function x(e) { const s = t.params.scrollbar, { scrollbar: a, wrapperEl: i } = t, { el: n, dragEl: l } = a; m = !0, d = e.target === l ? y(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? "left" : "top"] : null, e.preventDefault(), e.stopPropagation(), i.style.transitionDuration = "100ms", l.style.transitionDuration = "100ms", E(e), clearTimeout(f), n.style.transitionDuration = "0ms", s.hide && (n.style.opacity = 1), t.params.cssMode && (t.wrapperEl.style["scroll-snap-type"] = "none"), r("scrollbarDragStart", e) } function S(e) { const { scrollbar: s, wrapperEl: a } = t, { el: i, dragEl: n } = s; m && (e.preventDefault && e.cancelable ? e.preventDefault() : e.returnValue = !1, E(e), a.style.transitionDuration = "0ms", i.style.transitionDuration = "0ms", n.style.transitionDuration = "0ms", r("scrollbarDragMove", e)) } function M(e) { const s = t.params.scrollbar, { scrollbar: a, wrapperEl: i } = t, { el: n } = a; m && (m = !1, t.params.cssMode && (t.wrapperEl.style["scroll-snap-type"] = "", i.style.transitionDuration = ""), s.hide && (clearTimeout(f), f = l((() => { n.style.opacity = 0, n.style.transitionDuration = "400ms" }), 1e3)), r("scrollbarDragEnd", e), s.snapOnRelease && t.slideToClosest()) } function C(e) { const { scrollbar: s, params: a } = t, i = s.el; if (!i) return; const r = i, n = !!a.passiveListeners && { passive: !1, capture: !1 }, l = !!a.passiveListeners && { passive: !0, capture: !1 }; if (!r) return; const d = "on" === e ? "addEventListener" : "removeEventListener"; r[d]("pointerdown", x, n), o[d]("pointermove", S, n), o[d]("pointerup", M, l) } function P() { const { scrollbar: e, el: s } = t; t.params.scrollbar = ae(t, t.originalParams.scrollbar, t.params.scrollbar, { el: "swiper-scrollbar" }); const a = t.params.scrollbar; if (!a.el) return; let i, r; if ("string" == typeof a.el && t.isElement && (i = t.el.querySelector(a.el)), i || "string" != typeof a.el) i || (i = a.el); else if (i = o.querySelectorAll(a.el), !i.length) return; t.params.uniqueNavElements && "string" == typeof a.el && i.length > 1 && 1 === s.querySelectorAll(a.el).length && (i = s.querySelector(a.el)), i.length > 0 && (i = i[0]), i.classList.add(t.isHorizontal() ? a.horizontalClass : a.verticalClass), i && (r = i.querySelector(ie(t.params.scrollbar.dragClass)), r || (r = v("div", t.params.scrollbar.dragClass), i.append(r))), Object.assign(e, { el: i, dragEl: r }), a.draggable && t.params.scrollbar.el && t.scrollbar.el && C("on"), i && i.classList[t.enabled ? "remove" : "add"](...n(t.params.scrollbar.lockClass)) } function L() { const e = t.params.scrollbar, s = t.scrollbar.el; s && s.classList.remove(...n(t.isHorizontal() ? e.horizontalClass : e.verticalClass)), t.params.scrollbar.el && t.scrollbar.el && C("off") } s({ 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" } }), t.scrollbar = { el: null, dragEl: null }, i("changeDirection", (() => { if (!t.scrollbar || !t.scrollbar.el) return; const e = t.params.scrollbar; let { el: s } = t.scrollbar; s = T(s), s.forEach((s => { s.classList.remove(e.horizontalClass, e.verticalClass), s.classList.add(t.isHorizontal() ? e.horizontalClass : e.verticalClass) })) })), i("init", (() => { !1 === t.params.scrollbar.enabled ? I() : (P(), b(), g()) })), i("update resize observerUpdate lock unlock changeDirection", (() => { b() })), i("setTranslate", (() => { g() })), i("setTransition", ((e, s) => { !function (e) { t.params.scrollbar.el && t.scrollbar.el && (t.scrollbar.dragEl.style.transitionDuration = `${e}ms`) }(s) })), i("enable disable", (() => { const { el: e } = t.scrollbar; e && e.classList[t.enabled ? "remove" : "add"](...n(t.params.scrollbar.lockClass)) })), i("destroy", (() => { L() })); const I = () => { t.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)), t.scrollbar.el && t.scrollbar.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)), L() }; Object.assign(t.scrollbar, { enable: () => { t.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)), t.scrollbar.el && t.scrollbar.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)), P(), b(), g() }, disable: I, updateSize: b, setTranslate: g, init: P, destroy: L }) }, function (e) { let { swiper: t, extendParams: s, on: a } = e; s({ parallax: { enabled: !1 } }); const i = "[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]", r = (e, s) => { const { rtl: a } = t, i = a ? -1 : 1, r = e.getAttribute("data-swiper-parallax") || "0"; let n = e.getAttribute("data-swiper-parallax-x"), l = e.getAttribute("data-swiper-parallax-y"); const o = e.getAttribute("data-swiper-parallax-scale"), d = e.getAttribute("data-swiper-parallax-opacity"), c = e.getAttribute("data-swiper-parallax-rotate"); if (n || l ? (n = n || "0", l = l || "0") : t.isHorizontal() ? (n = r, l = "0") : (l = r, n = "0"), n = n.indexOf("%") >= 0 ? parseInt(n, 10) * s * i + "%" : n * s * i + "px", l = l.indexOf("%") >= 0 ? parseInt(l, 10) * s + "%" : l * s + "px", null != d) { const t = d - (d - 1) * (1 - Math.abs(s)); e.style.opacity = t } let p = `translate3d(${n}, ${l}, 0px)`; if (null != o) { p += ` scale(${o - (o - 1) * (1 - Math.abs(s))})` } if (c && null != c) { p += ` rotate(${c * s * -1}deg)` } e.style.transform = p }, n = () => { const { el: e, slides: s, progress: a, snapGrid: n, isElement: l } = t, o = f(e, i); t.isElement && o.push(...f(t.hostEl, i)), o.forEach((e => { r(e, a) })), s.forEach(((e, s) => { let l = e.progress; t.params.slidesPerGroup > 1 && "auto" !== t.params.slidesPerView && (l += Math.ceil(s / 2) - a * (n.length - 1)), l = Math.min(Math.max(l, -1), 1), e.querySelectorAll(`${i}, [data-swiper-parallax-rotate]`).forEach((e => { r(e, l) })) })) }; a("beforeInit", (() => { t.params.parallax.enabled && (t.params.watchSlidesProgress = !0, t.originalParams.watchSlidesProgress = !0) })), a("init", (() => { t.params.parallax.enabled && n() })), a("setTranslate", (() => { t.params.parallax.enabled && n() })), a("setTransition", ((e, s) => { t.params.parallax.enabled && function (e) { void 0 === e && (e = t.params.speed); const { el: s, hostEl: a } = t, r = [...s.querySelectorAll(i)]; t.isElement && r.push(...a.querySelectorAll(i)), r.forEach((t => { let s = parseInt(t.getAttribute("data-swiper-parallax-duration"), 10) || e; 0 === e && (s = 0), t.style.transitionDuration = `${s}ms` })) }(s) })) }, function (e) { let { swiper: t, extendParams: s, on: a, emit: i } = e; const n = r(); s({ zoom: { enabled: !1, limitToOriginalSize: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: "swiper-zoom-container", zoomedSlideClass: "swiper-slide-zoomed" } }), t.zoom = { enabled: !1 }; let l, o, c = 1, p = !1; const u = [], m = { originX: 0, originY: 0, slideEl: void 0, slideWidth: void 0, slideHeight: void 0, imageEl: void 0, imageWrapEl: void 0, maxRatio: 3 }, h = { 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: {} }, g = { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 }; let v, b = 1; function y() { if (u.length < 2) return 1; const e = u[0].pageX, t = u[0].pageY, s = u[1].pageX, a = u[1].pageY; return Math.sqrt((s - e) ** 2 + (a - t) ** 2) } function x() { const e = t.params.zoom, s = m.imageWrapEl.getAttribute("data-swiper-zoom") || e.maxRatio; if (e.limitToOriginalSize && m.imageEl && m.imageEl.naturalWidth) { const e = m.imageEl.naturalWidth / m.imageEl.offsetWidth; return Math.min(e, s) } return s } function S(e) { const s = t.isElement ? "swiper-slide" : `.${t.params.slideClass}`; return !!e.target.matches(s) || t.slides.filter((t => t.contains(e.target))).length > 0 } function T(e) { if ("mouse" === e.pointerType && u.splice(0, u.length), !S(e)) return; const s = t.params.zoom; if (l = !1, o = !1, u.push(e), !(u.length < 2)) { if (l = !0, m.scaleStart = y(), !m.slideEl) { m.slideEl = e.target.closest(`.${t.params.slideClass}, swiper-slide`), m.slideEl || (m.slideEl = t.slides[t.activeIndex]); let a = m.slideEl.querySelector(`.${s.containerClass}`); if (a && (a = a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]), m.imageEl = a, m.imageWrapEl = a ? E(m.imageEl, `.${s.containerClass}`)[0] : void 0, !m.imageWrapEl) return void (m.imageEl = void 0); m.maxRatio = x() } if (m.imageEl) { const [e, t] = function () { if (u.length < 2) return { x: null, y: null }; const e = m.imageEl.getBoundingClientRect(); return [(u[0].pageX + (u[1].pageX - u[0].pageX) / 2 - e.x - n.scrollX) / c, (u[0].pageY + (u[1].pageY - u[0].pageY) / 2 - e.y - n.scrollY) / c] }(); m.originX = e, m.originY = t, m.imageEl.style.transitionDuration = "0ms" } p = !0 } } function M(e) { if (!S(e)) return; const s = t.params.zoom, a = t.zoom, i = u.findIndex((t => t.pointerId === e.pointerId)); i >= 0 && (u[i] = e), u.length < 2 || (o = !0, m.scaleMove = y(), m.imageEl && (a.scale = m.scaleMove / m.scaleStart * c, a.scale > m.maxRatio && (a.scale = m.maxRatio - 1 + (a.scale - m.maxRatio + 1) ** .5), a.scale < s.minRatio && (a.scale = s.minRatio + 1 - (s.minRatio - a.scale + 1) ** .5), m.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`)) } function C(e) { if (!S(e)) return; if ("mouse" === e.pointerType && "pointerout" === e.type) return; const s = t.params.zoom, a = t.zoom, i = u.findIndex((t => t.pointerId === e.pointerId)); i >= 0 && u.splice(i, 1), l && o && (l = !1, o = !1, m.imageEl && (a.scale = Math.max(Math.min(a.scale, m.maxRatio), s.minRatio), m.imageEl.style.transitionDuration = `${t.params.speed}ms`, m.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`, c = a.scale, p = !1, a.scale > 1 && m.slideEl ? m.slideEl.classList.add(`${s.zoomedSlideClass}`) : a.scale <= 1 && m.slideEl && m.slideEl.classList.remove(`${s.zoomedSlideClass}`), 1 === a.scale && (m.originX = 0, m.originY = 0, m.slideEl = void 0))) } function P() { t.touchEventsData.preventTouchMoveFromPointerMove = !1 } function L(e) { if (!S(e) || !function (e) { const s = `.${t.params.zoom.containerClass}`; return !!e.target.matches(s) || [...t.hostEl.querySelectorAll(s)].filter((t => t.contains(e.target))).length > 0 }(e)) return; const s = t.zoom; if (!m.imageEl) return; if (!h.isTouched || !m.slideEl) return; h.isMoved || (h.width = m.imageEl.offsetWidth || m.imageEl.clientWidth, h.height = m.imageEl.offsetHeight || m.imageEl.clientHeight, h.startX = d(m.imageWrapEl, "x") || 0, h.startY = d(m.imageWrapEl, "y") || 0, m.slideWidth = m.slideEl.offsetWidth, m.slideHeight = m.slideEl.offsetHeight, m.imageWrapEl.style.transitionDuration = "0ms"); const a = h.width * s.scale, i = h.height * s.scale; if (a < m.slideWidth && i < m.slideHeight) return void P(); h.minX = Math.min(m.slideWidth / 2 - a / 2, 0), h.maxX = -h.minX, h.minY = Math.min(m.slideHeight / 2 - i / 2, 0), h.maxY = -h.minY, h.touchesCurrent.x = u.length > 0 ? u[0].pageX : e.pageX, h.touchesCurrent.y = u.length > 0 ? u[0].pageY : e.pageY; if (Math.max(Math.abs(h.touchesCurrent.x - h.touchesStart.x), Math.abs(h.touchesCurrent.y - h.touchesStart.y)) > 5 && (t.allowClick = !1), !h.isMoved && !p) { if (t.isHorizontal() && (Math.floor(h.minX) === Math.floor(h.startX) && h.touchesCurrent.x < h.touchesStart.x || Math.floor(h.maxX) === Math.floor(h.startX) && h.touchesCurrent.x > h.touchesStart.x)) return h.isTouched = !1, void P(); if (!t.isHorizontal() && (Math.floor(h.minY) === Math.floor(h.startY) && h.touchesCurrent.y < h.touchesStart.y || Math.floor(h.maxY) === Math.floor(h.startY) && h.touchesCurrent.y > h.touchesStart.y)) return h.isTouched = !1, void P() } e.cancelable && e.preventDefault(), e.stopPropagation(), clearTimeout(v), t.touchEventsData.preventTouchMoveFromPointerMove = !0, v = setTimeout((() => { P() })), h.isMoved = !0; const r = (s.scale - c) / (m.maxRatio - t.params.zoom.minRatio), { originX: n, originY: l } = m; h.currentX = h.touchesCurrent.x - h.touchesStart.x + h.startX + r * (h.width - 2 * n), h.currentY = h.touchesCurrent.y - h.touchesStart.y + h.startY + r * (h.height - 2 * l), h.currentX < h.minX && (h.currentX = h.minX + 1 - (h.minX - h.currentX + 1) ** .8), h.currentX > h.maxX && (h.currentX = h.maxX - 1 + (h.currentX - h.maxX + 1) ** .8), h.currentY < h.minY && (h.currentY = h.minY + 1 - (h.minY - h.currentY + 1) ** .8), h.currentY > h.maxY && (h.currentY = h.maxY - 1 + (h.currentY - h.maxY + 1) ** .8), g.prevPositionX || (g.prevPositionX = h.touchesCurrent.x), g.prevPositionY || (g.prevPositionY = h.touchesCurrent.y), g.prevTime || (g.prevTime = Date.now()), g.x = (h.touchesCurrent.x - g.prevPositionX) / (Date.now() - g.prevTime) / 2, g.y = (h.touchesCurrent.y - g.prevPositionY) / (Date.now() - g.prevTime) / 2, Math.abs(h.touchesCurrent.x - g.prevPositionX) < 2 && (g.x = 0), Math.abs(h.touchesCurrent.y - g.prevPositionY) < 2 && (g.y = 0), g.prevPositionX = h.touchesCurrent.x, g.prevPositionY = h.touchesCurrent.y, g.prevTime = Date.now(), m.imageWrapEl.style.transform = `translate3d(${h.currentX}px, ${h.currentY}px,0)` } function I() { const e = t.zoom; m.slideEl && t.activeIndex !== t.slides.indexOf(m.slideEl) && (m.imageEl && (m.imageEl.style.transform = "translate3d(0,0,0) scale(1)"), m.imageWrapEl && (m.imageWrapEl.style.transform = "translate3d(0,0,0)"), m.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`), e.scale = 1, c = 1, m.slideEl = void 0, m.imageEl = void 0, m.imageWrapEl = void 0, m.originX = 0, m.originY = 0) } function z(e) { const s = t.zoom, a = t.params.zoom; if (!m.slideEl) { e && e.target && (m.slideEl = e.target.closest(`.${t.params.slideClass}, swiper-slide`)), m.slideEl || (t.params.virtual && t.params.virtual.enabled && t.virtual ? m.slideEl = f(t.slidesEl, `.${t.params.slideActiveClass}`)[0] : m.slideEl = t.slides[t.activeIndex]); let s = m.slideEl.querySelector(`.${a.containerClass}`); s && (s = s.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]), m.imageEl = s, m.imageWrapEl = s ? E(m.imageEl, `.${a.containerClass}`)[0] : void 0 } if (!m.imageEl || !m.imageWrapEl) return; let i, r, l, o, d, p, u, g, v, b, y, S, T, M, C, P, L, I; t.params.cssMode && (t.wrapperEl.style.overflow = "hidden", t.wrapperEl.style.touchAction = "none"), m.slideEl.classList.add(`${a.zoomedSlideClass}`), void 0 === h.touchesStart.x && e ? (i = e.pageX, r = e.pageY) : (i = h.touchesStart.x, r = h.touchesStart.y); const z = "number" == typeof e ? e : null; 1 === c && z && (i = void 0, r = void 0); const A = x(); s.scale = z || A, c = z || A, !e || 1 === c && z ? (u = 0, g = 0) : (L = m.slideEl.offsetWidth, I = m.slideEl.offsetHeight, l = w(m.slideEl).left + n.scrollX, o = w(m.slideEl).top + n.scrollY, d = l + L / 2 - i, p = o + I / 2 - r, v = m.imageEl.offsetWidth || m.imageEl.clientWidth, b = m.imageEl.offsetHeight || m.imageEl.clientHeight, y = v * s.scale, S = b * s.scale, T = Math.min(L / 2 - y / 2, 0), M = Math.min(I / 2 - S / 2, 0), C = -T, P = -M, u = d * s.scale, g = p * s.scale, u < T && (u = T), u > C && (u = C), g < M && (g = M), g > P && (g = P)), z && 1 === s.scale && (m.originX = 0, m.originY = 0), m.imageWrapEl.style.transitionDuration = "300ms", m.imageWrapEl.style.transform = `translate3d(${u}px, ${g}px,0)`, m.imageEl.style.transitionDuration = "300ms", m.imageEl.style.transform = `translate3d(0,0,0) scale(${s.scale})` } function A() { const e = t.zoom, s = t.params.zoom; if (!m.slideEl) { t.params.virtual && t.params.virtual.enabled && t.virtual ? m.slideEl = f(t.slidesEl, `.${t.params.slideActiveClass}`)[0] : m.slideEl = t.slides[t.activeIndex]; let e = m.slideEl.querySelector(`.${s.containerClass}`); e && (e = e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]), m.imageEl = e, m.imageWrapEl = e ? E(m.imageEl, `.${s.containerClass}`)[0] : void 0 } m.imageEl && m.imageWrapEl && (t.params.cssMode && (t.wrapperEl.style.overflow = "", t.wrapperEl.style.touchAction = ""), e.scale = 1, c = 1, m.imageWrapEl.style.transitionDuration = "300ms", m.imageWrapEl.style.transform = "translate3d(0,0,0)", m.imageEl.style.transitionDuration = "300ms", m.imageEl.style.transform = "translate3d(0,0,0) scale(1)", m.slideEl.classList.remove(`${s.zoomedSlideClass}`), m.slideEl = void 0, m.originX = 0, m.originY = 0) } function $(e) { const s = t.zoom; s.scale && 1 !== s.scale ? A() : z(e) } function k() { return { passiveListener: !!t.params.passiveListeners && { passive: !0, capture: !1 }, activeListenerWithCapture: !t.params.passiveListeners || { passive: !1, capture: !0 } } } function O() { const e = t.zoom; if (e.enabled) return; e.enabled = !0; const { passiveListener: s, activeListenerWithCapture: a } = k(); t.wrapperEl.addEventListener("pointerdown", T, s), t.wrapperEl.addEventListener("pointermove", M, a), ["pointerup", "pointercancel", "pointerout"].forEach((e => { t.wrapperEl.addEventListener(e, C, s) })), t.wrapperEl.addEventListener("pointermove", L, a) } function D() { const e = t.zoom; if (!e.enabled) return; e.enabled = !1; const { passiveListener: s, activeListenerWithCapture: a } = k(); t.wrapperEl.removeEventListener("pointerdown", T, s), t.wrapperEl.removeEventListener("pointermove", M, a), ["pointerup", "pointercancel", "pointerout"].forEach((e => { t.wrapperEl.removeEventListener(e, C, s) })), t.wrapperEl.removeEventListener("pointermove", L, a) } Object.defineProperty(t.zoom, "scale", { get: () => b, set(e) { if (b !== e) { const t = m.imageEl, s = m.slideEl; i("zoomChange", e, t, s) } b = e } }), a("init", (() => { t.params.zoom.enabled && O() })), a("destroy", (() => { D() })), a("touchStart", ((e, s) => { t.zoom.enabled && function (e) { const s = t.device; if (!m.imageEl) return; if (h.isTouched) return; s.android && e.cancelable && e.preventDefault(), h.isTouched = !0; const a = u.length > 0 ? u[0] : e; h.touchesStart.x = a.pageX, h.touchesStart.y = a.pageY }(s) })), a("touchEnd", ((e, s) => { t.zoom.enabled && function () { const e = t.zoom; if (!m.imageEl) return; if (!h.isTouched || !h.isMoved) return h.isTouched = !1, void (h.isMoved = !1); h.isTouched = !1, h.isMoved = !1; let s = 300, a = 300; const i = g.x * s, r = h.currentX + i, n = g.y * a, l = h.currentY + n; 0 !== g.x && (s = Math.abs((r - h.currentX) / g.x)), 0 !== g.y && (a = Math.abs((l - h.currentY) / g.y)); const o = Math.max(s, a); h.currentX = r, h.currentY = l; const d = h.width * e.scale, c = h.height * e.scale; h.minX = Math.min(m.slideWidth / 2 - d / 2, 0), h.maxX = -h.minX, h.minY = Math.min(m.slideHeight / 2 - c / 2, 0), h.maxY = -h.minY, h.currentX = Math.max(Math.min(h.currentX, h.maxX), h.minX), h.currentY = Math.max(Math.min(h.currentY, h.maxY), h.minY), m.imageWrapEl.style.transitionDuration = `${o}ms`, m.imageWrapEl.style.transform = `translate3d(${h.currentX}px, ${h.currentY}px,0)` }() })), a("doubleTap", ((e, s) => { !t.animating && t.params.zoom.enabled && t.zoom.enabled && t.params.zoom.toggle && $(s) })), a("transitionEnd", (() => { t.zoom.enabled && t.params.zoom.enabled && I() })), a("slideChange", (() => { t.zoom.enabled && t.params.zoom.enabled && t.params.cssMode && I() })), Object.assign(t.zoom, { enable: O, disable: D, in: z, out: A, toggle: $ }) }, function (e) { let { swiper: t, extendParams: s, on: a } = e; function i(e, t) { const s = function () { let e, t, s; return (a, i) => { for (t = -1, e = a.length; e - t > 1;)s = e + t >> 1, a[s] <= i ? t = s : e = s; return e } }(); let a, i; return this.x = e, this.y = t, this.lastIndex = e.length - 1, this.interpolate = function (e) { return e ? (i = s(this.x, e), a = i - 1, (e - this.x[a]) * (this.y[i] - this.y[a]) / (this.x[i] - this.x[a]) + this.y[a]) : 0 }, this } function r() { t.controller.control && t.controller.spline && (t.controller.spline = void 0, delete t.controller.spline) } s({ controller: { control: void 0, inverse: !1, by: "slide" } }), t.controller = { control: void 0 }, a("beforeInit", (() => { if ("undefined" != typeof window && ("string" == typeof t.params.controller.control || t.params.controller.control instanceof HTMLElement)) { const e = document.querySelector(t.params.controller.control); if (e && e.swiper) t.controller.control = e.swiper; else if (e) { const s = a => { t.controller.control = a.detail[0], t.update(), e.removeEventListener("init", s) }; e.addEventListener("init", s) } } else t.controller.control = t.params.controller.control })), a("update", (() => { r() })), a("resize", (() => { r() })), a("observerUpdate", (() => { r() })), a("setTranslate", ((e, s, a) => { t.controller.control && !t.controller.control.destroyed && t.controller.setTranslate(s, a) })), a("setTransition", ((e, s, a) => { t.controller.control && !t.controller.control.destroyed && t.controller.setTransition(s, a) })), Object.assign(t.controller, { setTranslate: function (e, s) { const a = t.controller.control; let r, n; const l = t.constructor; function o(e) { if (e.destroyed) return; const s = t.rtlTranslate ? -t.translate : t.translate; "slide" === t.params.controller.by && (!function (e) { t.controller.spline = t.params.loop ? new i(t.slidesGrid, e.slidesGrid) : new i(t.snapGrid, e.snapGrid) }(e), n = -t.controller.spline.interpolate(-s)), n && "container" !== t.params.controller.by || (r = (e.maxTranslate() - e.minTranslate()) / (t.maxTranslate() - t.minTranslate()), !Number.isNaN(r) && Number.isFinite(r) || (r = 1), n = (s - t.minTranslate()) * r + e.minTranslate()), t.params.controller.inverse && (n = e.maxTranslate() - n), e.updateProgress(n), e.setTranslate(n, t), e.updateActiveIndex(), e.updateSlidesClasses() } if (Array.isArray(a)) for (let e = 0; e < a.length; e += 1)a[e] !== s && a[e] instanceof l && o(a[e]); else a instanceof l && s !== a && o(a) }, setTransition: function (e, s) { const a = t.constructor, i = t.controller.control; let r; function n(s) { s.destroyed || (s.setTransition(e, t), 0 !== e && (s.transitionStart(), s.params.autoHeight && l((() => { s.updateAutoHeight() })), x(s.wrapperEl, (() => { i && s.transitionEnd() })))) } if (Array.isArray(i)) for (r = 0; r < i.length; r += 1)i[r] !== s && i[r] instanceof a && n(i[r]); else i instanceof a && s !== i && n(i) } }) }, function (e) { let { swiper: t, extendParams: s, on: i } = e; s({ 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 } }), t.a11y = { clicked: !1 }; let r, n, l = null, o = (new Date).getTime(); function d(e) { const t = l; 0 !== t.length && (t.innerHTML = "", t.innerHTML = e) } function c(e) { (e = T(e)).forEach((e => { e.setAttribute("tabIndex", "0") })) } function p(e) { (e = T(e)).forEach((e => { e.setAttribute("tabIndex", "-1") })) } function u(e, t) { (e = T(e)).forEach((e => { e.setAttribute("role", t) })) } function m(e, t) { (e = T(e)).forEach((e => { e.setAttribute("aria-roledescription", t) })) } function h(e, t) { (e = T(e)).forEach((e => { e.setAttribute("aria-label", t) })) } function f(e) { (e = T(e)).forEach((e => { e.setAttribute("aria-disabled", !0) })) } function g(e) { (e = T(e)).forEach((e => { e.setAttribute("aria-disabled", !1) })) } function w(e) { if (13 !== e.keyCode && 32 !== e.keyCode) return; const s = t.params.a11y, a = e.target; if (!t.pagination || !t.pagination.el || a !== t.pagination.el && !t.pagination.el.contains(e.target) || e.target.matches(ie(t.params.pagination.bulletClass))) { if (t.navigation && t.navigation.prevEl && t.navigation.nextEl) { const e = T(t.navigation.prevEl); T(t.navigation.nextEl).includes(a) && (t.isEnd && !t.params.loop || t.slideNext(), t.isEnd ? d(s.lastSlideMessage) : d(s.nextSlideMessage)), e.includes(a) && (t.isBeginning && !t.params.loop || t.slidePrev(), t.isBeginning ? d(s.firstSlideMessage) : d(s.prevSlideMessage)) } t.pagination && a.matches(ie(t.params.pagination.bulletClass)) && a.click() } } function b() { return t.pagination && t.pagination.bullets && t.pagination.bullets.length } function E() { return b() && t.params.pagination.clickable } const x = (e, t, s) => { c(e), "BUTTON" !== e.tagName && (u(e, "button"), e.addEventListener("keydown", w)), h(e, s), function (e, t) { (e = T(e)).forEach((e => { e.setAttribute("aria-controls", t) })) }(e, t) }, S = e => { n && n !== e.target && !n.contains(e.target) && (r = !0), t.a11y.clicked = !0 }, M = () => { r = !1, requestAnimationFrame((() => { requestAnimationFrame((() => { t.destroyed || (t.a11y.clicked = !1) })) })) }, C = e => { o = (new Date).getTime() }, P = e => { if (t.a11y.clicked) return; if ((new Date).getTime() - o < 100) return; const s = e.target.closest(`.${t.params.slideClass}, swiper-slide`); if (!s || !t.slides.includes(s)) return; n = s; const a = t.slides.indexOf(s) === t.activeIndex, i = t.params.watchSlidesProgress && t.visibleSlides && t.visibleSlides.includes(s); a || i || e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents || (t.isHorizontal() ? t.el.scrollLeft = 0 : t.el.scrollTop = 0, requestAnimationFrame((() => { r || (t.slideTo(t.slides.indexOf(s), 0), r = !1) }))) }, L = () => { const e = t.params.a11y; e.itemRoleDescriptionMessage && m(t.slides, e.itemRoleDescriptionMessage), e.slideRole && u(t.slides, e.slideRole); const s = t.slides.length; e.slideLabelMessage && t.slides.forEach(((a, i) => { const r = t.params.loop ? parseInt(a.getAttribute("data-swiper-slide-index"), 10) : i; h(a, e.slideLabelMessage.replace(/\{\{index\}\}/, r + 1).replace(/\{\{slidesLength\}\}/, s)) })) }, I = () => { const e = t.params.a11y; t.el.append(l); const s = t.el; e.containerRoleDescriptionMessage && m(s, e.containerRoleDescriptionMessage), e.containerMessage && h(s, e.containerMessage); const i = t.wrapperEl, r = e.id || i.getAttribute("id") || `swiper-wrapper-${n = 16, void 0 === n && (n = 16), "x".repeat(n).replace(/x/g, (() => Math.round(16 * Math.random()).toString(16)))}`; var n; const o = t.params.autoplay && t.params.autoplay.enabled ? "off" : "polite"; var d; d = r, T(i).forEach((e => { e.setAttribute("id", d) })), function (e, t) { (e = T(e)).forEach((e => { e.setAttribute("aria-live", t) })) }(i, o), L(); let { nextEl: c, prevEl: p } = t.navigation ? t.navigation : {}; if (c = T(c), p = T(p), c && c.forEach((t => x(t, r, e.nextSlideMessage))), p && p.forEach((t => x(t, r, e.prevSlideMessage))), E()) { T(t.pagination.el).forEach((e => { e.addEventListener("keydown", w) })) } a().addEventListener("visibilitychange", C), t.el.addEventListener("focus", P, !0), t.el.addEventListener("focus", P, !0), t.el.addEventListener("pointerdown", S, !0), t.el.addEventListener("pointerup", M, !0) }; i("beforeInit", (() => { l = v("span", t.params.a11y.notificationClass), l.setAttribute("aria-live", "assertive"), l.setAttribute("aria-atomic", "true") })), i("afterInit", (() => { t.params.a11y.enabled && I() })), i("slidesLengthChange snapGridLengthChange slidesGridLengthChange", (() => { t.params.a11y.enabled && L() })), i("fromEdge toEdge afterInit lock unlock", (() => { t.params.a11y.enabled && function () { if (t.params.loop || t.params.rewind || !t.navigation) return; const { nextEl: e, prevEl: s } = t.navigation; s && (t.isBeginning ? (f(s), p(s)) : (g(s), c(s))), e && (t.isEnd ? (f(e), p(e)) : (g(e), c(e))) }() })), i("paginationUpdate", (() => { t.params.a11y.enabled && function () { const e = t.params.a11y; b() && t.pagination.bullets.forEach((s => { t.params.pagination.clickable && (c(s), t.params.pagination.renderBullet || (u(s, "button"), h(s, e.paginationBulletMessage.replace(/\{\{index\}\}/, y(s) + 1)))), s.matches(ie(t.params.pagination.bulletActiveClass)) ? s.setAttribute("aria-current", "true") : s.removeAttribute("aria-current") })) }() })), i("destroy", (() => { t.params.a11y.enabled && function () { l && l.remove(); let { nextEl: e, prevEl: s } = t.navigation ? t.navigation : {}; e = T(e), s = T(s), e && e.forEach((e => e.removeEventListener("keydown", w))), s && s.forEach((e => e.removeEventListener("keydown", w))), E() && T(t.pagination.el).forEach((e => { e.removeEventListener("keydown", w) })); a().removeEventListener("visibilitychange", C), t.el.removeEventListener("focus", P, !0), t.el.removeEventListener("pointerdown", S, !0), t.el.removeEventListener("pointerup", M, !0) }() })) }, function (e) { let { swiper: t, extendParams: s, on: a } = e; s({ history: { enabled: !1, root: "", replaceState: !1, key: "slides", keepQuery: !1 } }); let i = !1, n = {}; const l = e => e.toString().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, ""), o = e => { const t = r(); let s; s = e ? new URL(e) : t.location; const a = s.pathname.slice(1).split("/").filter((e => "" !== e)), i = a.length; return { key: a[i - 2], value: a[i - 1] } }, d = (e, s) => { const a = r(); if (!i || !t.params.history.enabled) return; let n; n = t.params.url ? new URL(t.params.url) : a.location; const o = t.virtual && t.params.virtual.enabled ? t.slidesEl.querySelector(`[data-swiper-slide-index="${s}"]`) : t.slides[s]; let d = l(o.getAttribute("data-history")); if (t.params.history.root.length > 0) { let s = t.params.history.root; "/" === s[s.length - 1] && (s = s.slice(0, s.length - 1)), d = `${s}/${e ? `${e}/` : ""}${d}` } else n.pathname.includes(e) || (d = `${e ? `${e}/` : ""}${d}`); t.params.history.keepQuery && (d += n.search); const c = a.history.state; c && c.value === d || (t.params.history.replaceState ? a.history.replaceState({ value: d }, null, d) : a.history.pushState({ value: d }, null, d)) }, c = (e, s, a) => { if (s) for (let i = 0, r = t.slides.length; i < r; i += 1) { const r = t.slides[i]; if (l(r.getAttribute("data-history")) === s) { const s = t.getSlideIndex(r); t.slideTo(s, e, a) } } else t.slideTo(0, e, a) }, p = () => { n = o(t.params.url), c(t.params.speed, n.value, !1) }; a("init", (() => { t.params.history.enabled && (() => { const e = r(); if (t.params.history) { if (!e.history || !e.history.pushState) return t.params.history.enabled = !1, void (t.params.hashNavigation.enabled = !0); i = !0, n = o(t.params.url), n.key || n.value ? (c(0, n.value, t.params.runCallbacksOnInit), t.params.history.replaceState || e.addEventListener("popstate", p)) : t.params.history.replaceState || e.addEventListener("popstate", p) } })() })), a("destroy", (() => { t.params.history.enabled && (() => { const e = r(); t.params.history.replaceState || e.removeEventListener("popstate", p) })() })), a("transitionEnd _freeModeNoMomentumRelease", (() => { i && d(t.params.history.key, t.activeIndex) })), a("slideChange", (() => { i && t.params.cssMode && d(t.params.history.key, t.activeIndex) })) }, function (e) { let { swiper: t, extendParams: s, emit: i, on: n } = e, l = !1; const o = a(), d = r(); s({ hashNavigation: { enabled: !1, replaceState: !1, watchState: !1, getSlideIndex(e, s) { if (t.virtual && t.params.virtual.enabled) { const e = t.slides.filter((e => e.getAttribute("data-hash") === s))[0]; if (!e) return 0; return parseInt(e.getAttribute("data-swiper-slide-index"), 10) } return t.getSlideIndex(f(t.slidesEl, `.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`)[0]) } } }); const c = () => { i("hashChange"); const e = o.location.hash.replace("#", ""), s = t.virtual && t.params.virtual.enabled ? t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`) : t.slides[t.activeIndex]; if (e !== (s ? s.getAttribute("data-hash") : "")) { const s = t.params.hashNavigation.getSlideIndex(t, e); if (void 0 === s || Number.isNaN(s)) return; t.slideTo(s) } }, p = () => { if (!l || !t.params.hashNavigation.enabled) return; const e = t.virtual && t.params.virtual.enabled ? t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`) : t.slides[t.activeIndex], s = e ? e.getAttribute("data-hash") || e.getAttribute("data-history") : ""; t.params.hashNavigation.replaceState && d.history && d.history.replaceState ? (d.history.replaceState(null, null, `#${s}` || ""), i("hashSet")) : (o.location.hash = s || "", i("hashSet")) }; n("init", (() => { t.params.hashNavigation.enabled && (() => { if (!t.params.hashNavigation.enabled || t.params.history && t.params.history.enabled) return; l = !0; const e = o.location.hash.replace("#", ""); if (e) { const s = 0, a = t.params.hashNavigation.getSlideIndex(t, e); t.slideTo(a || 0, s, t.params.runCallbacksOnInit, !0) } t.params.hashNavigation.watchState && d.addEventListener("hashchange", c) })() })), n("destroy", (() => { t.params.hashNavigation.enabled && t.params.hashNavigation.watchState && d.removeEventListener("hashchange", c) })), n("transitionEnd _freeModeNoMomentumRelease", (() => { l && p() })), n("slideChange", (() => { l && t.params.cssMode && p() })) }, function (e) { let t, s, { swiper: i, extendParams: r, on: n, emit: l, params: o } = e; i.autoplay = { running: !1, paused: !1, timeLeft: 0 }, r({ autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !1, stopOnLastSlide: !1, reverseDirection: !1, pauseOnMouseEnter: !1 } }); let d, c, p, u, m, h, f, g, v = o && o.autoplay ? o.autoplay.delay : 3e3, w = o && o.autoplay ? o.autoplay.delay : 3e3, b = (new Date).getTime(); function y(e) { i && !i.destroyed && i.wrapperEl && e.target === i.wrapperEl && (i.wrapperEl.removeEventListener("transitionend", y), g || C()) } const E = () => { if (i.destroyed || !i.autoplay.running) return; i.autoplay.paused ? c = !0 : c && (w = d, c = !1); const e = i.autoplay.paused ? d : b + w - (new Date).getTime(); i.autoplay.timeLeft = e, l("autoplayTimeLeft", e, e / v), s = requestAnimationFrame((() => { E() })) }, x = e => { if (i.destroyed || !i.autoplay.running) return; cancelAnimationFrame(s), E(); let a = void 0 === e ? i.params.autoplay.delay : e; v = i.params.autoplay.delay, w = i.params.autoplay.delay; const r = (() => { let e; if (e = i.virtual && i.params.virtual.enabled ? i.slides.filter((e => e.classList.contains("swiper-slide-active")))[0] : i.slides[i.activeIndex], !e) return; return parseInt(e.getAttribute("data-swiper-autoplay"), 10) })(); !Number.isNaN(r) && r > 0 && void 0 === e && (a = r, v = r, w = r), d = a; const n = i.params.speed, o = () => { i && !i.destroyed && (i.params.autoplay.reverseDirection ? !i.isBeginning || i.params.loop || i.params.rewind ? (i.slidePrev(n, !0, !0), l("autoplay")) : i.params.autoplay.stopOnLastSlide || (i.slideTo(i.slides.length - 1, n, !0, !0), l("autoplay")) : !i.isEnd || i.params.loop || i.params.rewind ? (i.slideNext(n, !0, !0), l("autoplay")) : i.params.autoplay.stopOnLastSlide || (i.slideTo(0, n, !0, !0), l("autoplay")), i.params.cssMode && (b = (new Date).getTime(), requestAnimationFrame((() => { x() })))) }; return a > 0 ? (clearTimeout(t), t = setTimeout((() => { o() }), a)) : requestAnimationFrame((() => { o() })), a }, S = () => { b = (new Date).getTime(), i.autoplay.running = !0, x(), l("autoplayStart") }, T = () => { i.autoplay.running = !1, clearTimeout(t), cancelAnimationFrame(s), l("autoplayStop") }, M = (e, s) => { if (i.destroyed || !i.autoplay.running) return; clearTimeout(t), e || (f = !0); const a = () => { l("autoplayPause"), i.params.autoplay.waitForTransition ? i.wrapperEl.addEventListener("transitionend", y) : C() }; if (i.autoplay.paused = !0, s) return h && (d = i.params.autoplay.delay), h = !1, void a(); const r = d || i.params.autoplay.delay; d = r - ((new Date).getTime() - b), i.isEnd && d < 0 && !i.params.loop || (d < 0 && (d = 0), a()) }, C = () => { i.isEnd && d < 0 && !i.params.loop || i.destroyed || !i.autoplay.running || (b = (new Date).getTime(), f ? (f = !1, x(d)) : x(), i.autoplay.paused = !1, l("autoplayResume")) }, P = () => { if (i.destroyed || !i.autoplay.running) return; const e = a(); "hidden" === e.visibilityState && (f = !0, M(!0)), "visible" === e.visibilityState && C() }, L = e => { "mouse" === e.pointerType && (f = !0, g = !0, i.animating || i.autoplay.paused || M(!0)) }, I = e => { "mouse" === e.pointerType && (g = !1, i.autoplay.paused && C()) }; n("init", (() => { i.params.autoplay.enabled && (i.params.autoplay.pauseOnMouseEnter && (i.el.addEventListener("pointerenter", L), i.el.addEventListener("pointerleave", I)), a().addEventListener("visibilitychange", P), S()) })), n("destroy", (() => { i.el.removeEventListener("pointerenter", L), i.el.removeEventListener("pointerleave", I), a().removeEventListener("visibilitychange", P), i.autoplay.running && T() })), n("_freeModeStaticRelease", (() => { (u || f) && C() })), n("_freeModeNoMomentumRelease", (() => { i.params.autoplay.disableOnInteraction ? T() : M(!0, !0) })), n("beforeTransitionStart", ((e, t, s) => { !i.destroyed && i.autoplay.running && (s || !i.params.autoplay.disableOnInteraction ? M(!0, !0) : T()) })), n("sliderFirstMove", (() => { !i.destroyed && i.autoplay.running && (i.params.autoplay.disableOnInteraction ? T() : (p = !0, u = !1, f = !1, m = setTimeout((() => { f = !0, u = !0, M(!0) }), 200))) })), n("touchEnd", (() => { if (!i.destroyed && i.autoplay.running && p) { if (clearTimeout(m), clearTimeout(t), i.params.autoplay.disableOnInteraction) return u = !1, void (p = !1); u && i.params.cssMode && C(), u = !1, p = !1 } })), n("slideChange", (() => { !i.destroyed && i.autoplay.running && (h = !0) })), Object.assign(i.autoplay, { start: S, stop: T, pause: M, resume: C }) }, function (e) { let { swiper: t, extendParams: s, on: i } = e; s({ thumbs: { swiper: null, multipleActiveThumbs: !0, autoScrollOffset: 0, slideThumbActiveClass: "swiper-slide-thumb-active", thumbsContainerClass: "swiper-thumbs" } }); let r = !1, n = !1; function l() { const e = t.thumbs.swiper; if (!e || e.destroyed) return; const s = e.clickedIndex, a = e.clickedSlide; if (a && a.classList.contains(t.params.thumbs.slideThumbActiveClass)) return; if (null == s) return; let i; i = e.params.loop ? parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10) : s, t.params.loop ? t.slideToLoop(i) : t.slideTo(i) } function o() { const { thumbs: e } = t.params; if (r) return !1; r = !0; const s = t.constructor; if (e.swiper instanceof s) t.thumbs.swiper = e.swiper, Object.assign(t.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), Object.assign(t.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), t.thumbs.swiper.update(); else if (c(e.swiper)) { const a = Object.assign({}, e.swiper); Object.assign(a, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), t.thumbs.swiper = new s(a), n = !0 } return t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass), t.thumbs.swiper.on("tap", l), !0 } function d(e) { const s = t.thumbs.swiper; if (!s || s.destroyed) return; const a = "auto" === s.params.slidesPerView ? s.slidesPerViewDynamic() : s.params.slidesPerView; let i = 1; const r = t.params.thumbs.slideThumbActiveClass; if (t.params.slidesPerView > 1 && !t.params.centeredSlides && (i = t.params.slidesPerView), t.params.thumbs.multipleActiveThumbs || (i = 1), i = Math.floor(i), s.slides.forEach((e => e.classList.remove(r))), s.params.loop || s.params.virtual && s.params.virtual.enabled) for (let e = 0; e < i; e += 1)f(s.slidesEl, `[data-swiper-slide-index="${t.realIndex + e}"]`).forEach((e => { e.classList.add(r) })); else for (let e = 0; e < i; e += 1)s.slides[t.realIndex + e] && s.slides[t.realIndex + e].classList.add(r); const n = t.params.thumbs.autoScrollOffset, l = n && !s.params.loop; if (t.realIndex !== s.realIndex || l) { const i = s.activeIndex; let r, o; if (s.params.loop) { const e = s.slides.filter((e => e.getAttribute("data-swiper-slide-index") === `${t.realIndex}`))[0]; r = s.slides.indexOf(e), o = t.activeIndex > t.previousIndex ? "next" : "prev" } else r = t.realIndex, o = r > t.previousIndex ? "next" : "prev"; l && (r += "next" === o ? n : -1 * n), s.visibleSlidesIndexes && s.visibleSlidesIndexes.indexOf(r) < 0 && (s.params.centeredSlides ? r = r > i ? r - Math.floor(a / 2) + 1 : r + Math.floor(a / 2) - 1 : r > i && s.params.slidesPerGroup, s.slideTo(r, e ? 0 : void 0)) } } t.thumbs = { swiper: null }, i("beforeInit", (() => { const { thumbs: e } = t.params; if (e && e.swiper) if ("string" == typeof e.swiper || e.swiper instanceof HTMLElement) { const s = a(), i = () => { const a = "string" == typeof e.swiper ? s.querySelector(e.swiper) : e.swiper; if (a && a.swiper) e.swiper = a.swiper, o(), d(!0); else if (a) { const s = i => { e.swiper = i.detail[0], a.removeEventListener("init", s), o(), d(!0), e.swiper.update(), t.update() }; a.addEventListener("init", s) } return a }, r = () => { if (t.destroyed) return; i() || requestAnimationFrame(r) }; requestAnimationFrame(r) } else o(), d(!0) })), i("slideChange update resize observerUpdate", (() => { d() })), i("setTransition", ((e, s) => { const a = t.thumbs.swiper; a && !a.destroyed && a.setTransition(s) })), i("beforeDestroy", (() => { const e = t.thumbs.swiper; e && !e.destroyed && n && e.destroy() })), Object.assign(t.thumbs, { init: o, update: d }) }, function (e) { let { swiper: t, extendParams: s, emit: a, once: i } = e; s({ freeMode: { enabled: !1, momentum: !0, momentumRatio: 1, momentumBounce: !0, momentumBounceRatio: 1, momentumVelocityRatio: 1, sticky: !1, minimumVelocity: .02 } }), Object.assign(t, { freeMode: { onTouchStart: function () { if (t.params.cssMode) return; const e = t.getTranslate(); t.setTranslate(e), t.setTransition(0), t.touchEventsData.velocities.length = 0, t.freeMode.onTouchEnd({ currentPos: t.rtl ? t.translate : -t.translate }) }, onTouchMove: function () { if (t.params.cssMode) return; const { touchEventsData: e, touches: s } = t; 0 === e.velocities.length && e.velocities.push({ position: s[t.isHorizontal() ? "startX" : "startY"], time: e.touchStartTime }), e.velocities.push({ position: s[t.isHorizontal() ? "currentX" : "currentY"], time: o() }) }, onTouchEnd: function (e) { let { currentPos: s } = e; if (t.params.cssMode) return; const { params: r, wrapperEl: n, rtlTranslate: l, snapGrid: d, touchEventsData: c } = t, p = o() - c.touchStartTime; if (s < -t.minTranslate()) t.slideTo(t.activeIndex); else if (s > -t.maxTranslate()) t.slides.length < d.length ? t.slideTo(d.length - 1) : t.slideTo(t.slides.length - 1); else { if (r.freeMode.momentum) { if (c.velocities.length > 1) { const e = c.velocities.pop(), s = c.velocities.pop(), a = e.position - s.position, i = e.time - s.time; t.velocity = a / i, t.velocity /= 2, Math.abs(t.velocity) < r.freeMode.minimumVelocity && (t.velocity = 0), (i > 150 || o() - e.time > 300) && (t.velocity = 0) } else t.velocity = 0; t.velocity *= r.freeMode.momentumVelocityRatio, c.velocities.length = 0; let e = 1e3 * r.freeMode.momentumRatio; const s = t.velocity * e; let p = t.translate + s; l && (p = -p); let u, m = !1; const h = 20 * Math.abs(t.velocity) * r.freeMode.momentumBounceRatio; let f; if (p < t.maxTranslate()) r.freeMode.momentumBounce ? (p + t.maxTranslate() < -h && (p = t.maxTranslate() - h), u = t.maxTranslate(), m = !0, c.allowMomentumBounce = !0) : p = t.maxTranslate(), r.loop && r.centeredSlides && (f = !0); else if (p > t.minTranslate()) r.freeMode.momentumBounce ? (p - t.minTranslate() > h && (p = t.minTranslate() + h), u = t.minTranslate(), m = !0, c.allowMomentumBounce = !0) : p = t.minTranslate(), r.loop && r.centeredSlides && (f = !0); else if (r.freeMode.sticky) { let e; for (let t = 0; t < d.length; t += 1)if (d[t] > -p) { e = t; break } p = Math.abs(d[e] - p) < Math.abs(d[e - 1] - p) || "next" === t.swipeDirection ? d[e] : d[e - 1], p = -p } if (f && i("transitionEnd", (() => { t.loopFix() })), 0 !== t.velocity) { if (e = l ? Math.abs((-p - t.translate) / t.velocity) : Math.abs((p - t.translate) / t.velocity), r.freeMode.sticky) { const s = Math.abs((l ? -p : p) - t.translate), a = t.slidesSizesGrid[t.activeIndex]; e = s < a ? r.speed : s < 2 * a ? 1.5 * r.speed : 2.5 * r.speed } } else if (r.freeMode.sticky) return void t.slideToClosest(); r.freeMode.momentumBounce && m ? (t.updateProgress(u), t.setTransition(e), t.setTranslate(p), t.transitionStart(!0, t.swipeDirection), t.animating = !0, x(n, (() => { t && !t.destroyed && c.allowMomentumBounce && (a("momentumBounce"), t.setTransition(r.speed), setTimeout((() => { t.setTranslate(u), x(n, (() => { t && !t.destroyed && t.transitionEnd() })) }), 0)) }))) : t.velocity ? (a("_freeModeNoMomentumRelease"), t.updateProgress(p), t.setTransition(e), t.setTranslate(p), t.transitionStart(!0, t.swipeDirection), t.animating || (t.animating = !0, x(n, (() => { t && !t.destroyed && t.transitionEnd() })))) : t.updateProgress(p), t.updateActiveIndex(), t.updateSlidesClasses() } else { if (r.freeMode.sticky) return void t.slideToClosest(); r.freeMode && a("_freeModeNoMomentumRelease") } (!r.freeMode.momentum || p >= r.longSwipesMs) && (a("_freeModeStaticRelease"), t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses()) } } } }) }, function (e) { let t, s, a, i, { swiper: r, extendParams: n, on: l } = e; n({ grid: { rows: 1, fill: "column" } }); const o = () => { let e = r.params.spaceBetween; return "string" == typeof e && e.indexOf("%") >= 0 ? e = parseFloat(e.replace("%", "")) / 100 * r.size : "string" == typeof e && (e = parseFloat(e)), e }; l("init", (() => { i = r.params.grid && r.params.grid.rows > 1 })), l("update", (() => { const { params: e, el: t } = r, s = e.grid && e.grid.rows > 1; i && !s ? (t.classList.remove(`${e.containerModifierClass}grid`, `${e.containerModifierClass}grid-column`), a = 1, r.emitContainerClasses()) : !i && s && (t.classList.add(`${e.containerModifierClass}grid`), "column" === e.grid.fill && t.classList.add(`${e.containerModifierClass}grid-column`), r.emitContainerClasses()), i = s })), r.grid = { initSlides: e => { const { slidesPerView: i } = r.params, { rows: n, fill: l } = r.params.grid, o = r.virtual && r.params.virtual.enabled ? r.virtual.slides.length : e.length; a = Math.floor(o / n), t = Math.floor(o / n) === o / n ? o : Math.ceil(o / n) * n, "auto" !== i && "row" === l && (t = Math.max(t, i * n)), s = t / n }, unsetSlides: () => { r.slides && r.slides.forEach((e => { e.swiperSlideGridSet && (e.style.height = "", e.style[r.getDirectionLabel("margin-top")] = "") })) }, updateSlide: (e, i, n) => { const { slidesPerGroup: l } = r.params, d = o(), { rows: c, fill: p } = r.params.grid, u = r.virtual && r.params.virtual.enabled ? r.virtual.slides.length : n.length; let m, h, f; if ("row" === p && l > 1) { const s = Math.floor(e / (l * c)), a = e - c * l * s, r = 0 === s ? l : Math.min(Math.ceil((u - s * c * l) / c), l); f = Math.floor(a / r), h = a - f * r + s * l, m = h + f * t / c, i.style.order = m } else "column" === p ? (h = Math.floor(e / c), f = e - h * c, (h > a || h === a && f === c - 1) && (f += 1, f >= c && (f = 0, h += 1))) : (f = Math.floor(e / s), h = e - f * s); i.row = f, i.column = h, i.style.height = `calc((100% - ${(c - 1) * d}px) / ${c})`, i.style[r.getDirectionLabel("margin-top")] = 0 !== f ? d && `${d}px` : "", i.swiperSlideGridSet = !0 }, updateWrapperSize: (e, s) => { const { centeredSlides: a, roundLengths: i } = r.params, n = o(), { rows: l } = r.params.grid; if (r.virtualSize = (e + n) * t, r.virtualSize = Math.ceil(r.virtualSize / l) - n, r.params.cssMode || (r.wrapperEl.style[r.getDirectionLabel("width")] = `${r.virtualSize + n}px`), a) { const e = []; for (let t = 0; t < s.length; t += 1) { let a = s[t]; i && (a = Math.floor(a)), s[t] < r.virtualSize + s[0] && e.push(a) } s.splice(0, s.length), s.push(...e) } } } }, function (e) { let { swiper: t } = e; Object.assign(t, { appendSlide: re.bind(t), prependSlide: ne.bind(t), addSlide: le.bind(t), removeSlide: oe.bind(t), removeAllSlides: de.bind(t) }) }, function (e) { let { swiper: t, extendParams: s, on: a } = e; s({ fadeEffect: { crossFade: !1 } }), ce({ effect: "fade", swiper: t, on: a, setTranslate: () => { const { slides: e } = t; t.params.fadeEffect; for (let s = 0; s < e.length; s += 1) { const e = t.slides[s]; let a = -e.swiperSlideOffset; t.params.virtualTranslate || (a -= t.translate); let i = 0; t.isHorizontal() || (i = a, a = 0); const r = t.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(e.progress), 0) : 1 + Math.min(Math.max(e.progress, -1), 0), n = pe(0, e); n.style.opacity = r, n.style.transform = `translate3d(${a}px, ${i}px, 0px)` } }, setTransition: e => { const s = t.slides.map((e => h(e))); s.forEach((t => { t.style.transitionDuration = `${e}ms` })), ue({ swiper: t, duration: e, transformElements: s, allSlides: !0 }) }, overwriteParams: () => ({ slidesPerView: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !t.params.cssMode }) }) }, function (e) { let { swiper: t, extendParams: s, on: a } = e; s({ cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: .94 } }); const i = (e, t, s) => { let a = s ? e.querySelector(".swiper-slide-shadow-left") : e.querySelector(".swiper-slide-shadow-top"), i = s ? e.querySelector(".swiper-slide-shadow-right") : e.querySelector(".swiper-slide-shadow-bottom"); a || (a = v("div", ("swiper-slide-shadow-cube swiper-slide-shadow-" + (s ? "left" : "top")).split(" ")), e.append(a)), i || (i = v("div", ("swiper-slide-shadow-cube swiper-slide-shadow-" + (s ? "right" : "bottom")).split(" ")), e.append(i)), a && (a.style.opacity = Math.max(-t, 0)), i && (i.style.opacity = Math.max(t, 0)) }; ce({ effect: "cube", swiper: t, on: a, setTranslate: () => { const { el: e, wrapperEl: s, slides: a, width: r, height: n, rtlTranslate: l, size: o, browser: d } = t, c = t.params.cubeEffect, p = t.isHorizontal(), u = t.virtual && t.params.virtual.enabled; let m, h = 0; c.shadow && (p ? (m = t.wrapperEl.querySelector(".swiper-cube-shadow"), m || (m = v("div", "swiper-cube-shadow"), t.wrapperEl.append(m)), m.style.height = `${r}px`) : (m = e.querySelector(".swiper-cube-shadow"), m || (m = v("div", "swiper-cube-shadow"), e.append(m)))); for (let e = 0; e < a.length; e += 1) { const s = a[e]; let r = e; u && (r = parseInt(s.getAttribute("data-swiper-slide-index"), 10)); let n = 90 * r, d = Math.floor(n / 360); l && (n = -n, d = Math.floor(-n / 360)); const m = Math.max(Math.min(s.progress, 1), -1); let f = 0, g = 0, v = 0; r % 4 == 0 ? (f = 4 * -d * o, v = 0) : (r - 1) % 4 == 0 ? (f = 0, v = 4 * -d * o) : (r - 2) % 4 == 0 ? (f = o + 4 * d * o, v = o) : (r - 3) % 4 == 0 && (f = -o, v = 3 * o + 4 * o * d), l && (f = -f), p || (g = f, f = 0); const w = `rotateX(${p ? 0 : -n}deg) rotateY(${p ? n : 0}deg) translate3d(${f}px, ${g}px, ${v}px)`; m <= 1 && m > -1 && (h = 90 * r + 90 * m, l && (h = 90 * -r - 90 * m), t.browser && t.browser.need3dFix && Math.abs(h) / 90 % 2 == 1 && (h += .001)), s.style.transform = w, c.slideShadows && i(s, m, p) } if (s.style.transformOrigin = `50% 50% -${o / 2}px`, s.style["-webkit-transform-origin"] = `50% 50% -${o / 2}px`, c.shadow) if (p) m.style.transform = `translate3d(0px, ${r / 2 + c.shadowOffset}px, ${-r / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${c.shadowScale})`; else { const e = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90), t = 1.5 - (Math.sin(2 * e * Math.PI / 360) / 2 + Math.cos(2 * e * Math.PI / 360) / 2), s = c.shadowScale, a = c.shadowScale / t, i = c.shadowOffset; m.style.transform = `scale3d(${s}, 1, ${a}) translate3d(0px, ${n / 2 + i}px, ${-n / 2 / a}px) rotateX(-89.99deg)` } const f = (d.isSafari || d.isWebView) && d.needPerspectiveFix ? -o / 2 : 0; s.style.transform = `translate3d(0px,0,${f}px) rotateX(${t.isHorizontal() ? 0 : h}deg) rotateY(${t.isHorizontal() ? -h : 0}deg)`, s.style.setProperty("--swiper-cube-translate-z", `${f}px`) }, setTransition: e => { const { el: s, slides: a } = t; if (a.forEach((t => { t.style.transitionDuration = `${e}ms`, t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t => { t.style.transitionDuration = `${e}ms` })) })), t.params.cubeEffect.shadow && !t.isHorizontal()) { const t = s.querySelector(".swiper-cube-shadow"); t && (t.style.transitionDuration = `${e}ms`) } }, recreateShadows: () => { const e = t.isHorizontal(); t.slides.forEach((t => { const s = Math.max(Math.min(t.progress, 1), -1); i(t, s, e) })) }, getEffectParams: () => t.params.cubeEffect, perspective: () => !0, overwriteParams: () => ({ slidesPerView: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0 }) }) }, function (e) { let { swiper: t, extendParams: s, on: a } = e; s({ flipEffect: { slideShadows: !0, limitRotation: !0 } }); const i = (e, s) => { let a = t.isHorizontal() ? e.querySelector(".swiper-slide-shadow-left") : e.querySelector(".swiper-slide-shadow-top"), i = t.isHorizontal() ? e.querySelector(".swiper-slide-shadow-right") : e.querySelector(".swiper-slide-shadow-bottom"); a || (a = me("flip", e, t.isHorizontal() ? "left" : "top")), i || (i = me("flip", e, t.isHorizontal() ? "right" : "bottom")), a && (a.style.opacity = Math.max(-s, 0)), i && (i.style.opacity = Math.max(s, 0)) }; ce({ effect: "flip", swiper: t, on: a, setTranslate: () => { const { slides: e, rtlTranslate: s } = t, a = t.params.flipEffect; for (let r = 0; r < e.length; r += 1) { const n = e[r]; let l = n.progress; t.params.flipEffect.limitRotation && (l = Math.max(Math.min(n.progress, 1), -1)); const o = n.swiperSlideOffset; let d = -180 * l, c = 0, p = t.params.cssMode ? -o - t.translate : -o, u = 0; t.isHorizontal() ? s && (d = -d) : (u = p, p = 0, c = -d, d = 0), t.browser && t.browser.need3dFix && (Math.abs(d) / 90 % 2 == 1 && (d += .001), Math.abs(c) / 90 % 2 == 1 && (c += .001)), n.style.zIndex = -Math.abs(Math.round(l)) + e.length, a.slideShadows && i(n, l); const m = `translate3d(${p}px, ${u}px, 0px) rotateX(${c}deg) rotateY(${d}deg)`; pe(0, n).style.transform = m } }, setTransition: e => { const s = t.slides.map((e => h(e))); s.forEach((t => { t.style.transitionDuration = `${e}ms`, t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t => { t.style.transitionDuration = `${e}ms` })) })), ue({ swiper: t, duration: e, transformElements: s }) }, recreateShadows: () => { t.params.flipEffect, t.slides.forEach((e => { let s = e.progress; t.params.flipEffect.limitRotation && (s = Math.max(Math.min(e.progress, 1), -1)), i(e, s) })) }, getEffectParams: () => t.params.flipEffect, perspective: () => !0, overwriteParams: () => ({ slidesPerView: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !t.params.cssMode }) }) }, function (e) { let { swiper: t, extendParams: s, on: a } = e; s({ coverflowEffect: { rotate: 50, stretch: 0, depth: 100, scale: 1, modifier: 1, slideShadows: !0 } }), ce({ effect: "coverflow", swiper: t, on: a, setTranslate: () => { const { width: e, height: s, slides: a, slidesSizesGrid: i } = t, r = t.params.coverflowEffect, n = t.isHorizontal(), l = t.translate, o = n ? e / 2 - l : s / 2 - l, d = n ? r.rotate : -r.rotate, c = r.depth; for (let e = 0, s = a.length; e < s; e += 1) { const s = a[e], l = i[e], p = (o - s.swiperSlideOffset - l / 2) / l, u = "function" == typeof r.modifier ? r.modifier(p) : p * r.modifier; let m = n ? d * u : 0, h = n ? 0 : d * u, f = -c * Math.abs(u), g = r.stretch; "string" == typeof g && -1 !== g.indexOf("%") && (g = parseFloat(r.stretch) / 100 * l); let v = n ? 0 : g * u, w = n ? g * u : 0, b = 1 - (1 - r.scale) * Math.abs(u); Math.abs(w) < .001 && (w = 0), Math.abs(v) < .001 && (v = 0), Math.abs(f) < .001 && (f = 0), Math.abs(m) < .001 && (m = 0), Math.abs(h) < .001 && (h = 0), Math.abs(b) < .001 && (b = 0), t.browser && t.browser.need3dFix && (Math.abs(m) / 90 % 2 == 1 && (m += .001), Math.abs(h) / 90 % 2 == 1 && (h += .001)); const y = `translate3d(${w}px,${v}px,${f}px) rotateX(${h}deg) rotateY(${m}deg) scale(${b})`; if (pe(0, s).style.transform = y, s.style.zIndex = 1 - Math.abs(Math.round(u)), r.slideShadows) { let e = n ? s.querySelector(".swiper-slide-shadow-left") : s.querySelector(".swiper-slide-shadow-top"), t = n ? s.querySelector(".swiper-slide-shadow-right") : s.querySelector(".swiper-slide-shadow-bottom"); e || (e = me("coverflow", s, n ? "left" : "top")), t || (t = me("coverflow", s, n ? "right" : "bottom")), e && (e.style.opacity = u > 0 ? u : 0), t && (t.style.opacity = -u > 0 ? -u : 0) } } }, setTransition: e => { t.slides.map((e => h(e))).forEach((t => { t.style.transitionDuration = `${e}ms`, t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t => { t.style.transitionDuration = `${e}ms` })) })) }, perspective: () => !0, overwriteParams: () => ({ watchSlidesProgress: !0 }) }) }, function (e) { let { swiper: t, extendParams: s, on: a } = e; s({ 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 i = e => "string" == typeof e ? e : `${e}px`; ce({ effect: "creative", swiper: t, on: a, setTranslate: () => { const { slides: e, wrapperEl: s, slidesSizesGrid: a } = t, r = t.params.creativeEffect, { progressMultiplier: n } = r, l = t.params.centeredSlides; if (l) { const e = a[0] / 2 - t.params.slidesOffsetBefore || 0; s.style.transform = `translateX(calc(50% - ${e}px))` } for (let s = 0; s < e.length; s += 1) { const a = e[s], o = a.progress, d = Math.min(Math.max(a.progress, -r.limitProgress), r.limitProgress); let c = d; l || (c = Math.min(Math.max(a.originalProgress, -r.limitProgress), r.limitProgress)); const p = a.swiperSlideOffset, u = [t.params.cssMode ? -p - t.translate : -p, 0, 0], m = [0, 0, 0]; let h = !1; t.isHorizontal() || (u[1] = u[0], u[0] = 0); let f = { translate: [0, 0, 0], rotate: [0, 0, 0], scale: 1, opacity: 1 }; d < 0 ? (f = r.next, h = !0) : d > 0 && (f = r.prev, h = !0), u.forEach(((e, t) => { u[t] = `calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d * n)}))` })), m.forEach(((e, s) => { let a = f.rotate[s] * Math.abs(d * n); t.browser && t.browser.need3dFix && Math.abs(a) / 90 % 2 == 1 && (a += .001), m[s] = a })), a.style.zIndex = -Math.abs(Math.round(o)) + e.length; const g = u.join(", "), v = `rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`, w = c < 0 ? `scale(${1 + (1 - f.scale) * c * n})` : `scale(${1 - (1 - f.scale) * c * n})`, b = c < 0 ? 1 + (1 - f.opacity) * c * n : 1 - (1 - f.opacity) * c * n, y = `translate3d(${g}) ${v} ${w}`; if (h && f.shadow || !h) { let e = a.querySelector(".swiper-slide-shadow"); if (!e && f.shadow && (e = me("creative", a)), e) { const t = r.shadowPerProgress ? d * (1 / r.limitProgress) : d; e.style.opacity = Math.min(Math.max(Math.abs(t), 0), 1) } } const E = pe(0, a); E.style.transform = y, E.style.opacity = b, f.origin && (E.style.transformOrigin = f.origin) } }, setTransition: e => { const s = t.slides.map((e => h(e))); s.forEach((t => { t.style.transitionDuration = `${e}ms`, t.querySelectorAll(".swiper-slide-shadow").forEach((t => { t.style.transitionDuration = `${e}ms` })) })), ue({ swiper: t, duration: e, transformElements: s, allSlides: !0 }) }, perspective: () => t.params.creativeEffect.perspective, overwriteParams: () => ({ watchSlidesProgress: !0, virtualTranslate: !t.params.cssMode }) }) }, function (e) { let { swiper: t, extendParams: s, on: a } = e; s({ cardsEffect: { slideShadows: !0, rotate: !0, perSlideRotate: 2, perSlideOffset: 8 } }), ce({ effect: "cards", swiper: t, on: a, setTranslate: () => { const { slides: e, activeIndex: s, rtlTranslate: a } = t, i = t.params.cardsEffect, { startTranslate: r, isTouched: n } = t.touchEventsData, l = a ? -t.translate : t.translate; for (let o = 0; o < e.length; o += 1) { const d = e[o], c = d.progress, p = Math.min(Math.max(c, -4), 4); let u = d.swiperSlideOffset; t.params.centeredSlides && !t.params.cssMode && (t.wrapperEl.style.transform = `translateX(${t.minTranslate()}px)`), t.params.centeredSlides && t.params.cssMode && (u -= e[0].swiperSlideOffset); let m = t.params.cssMode ? -u - t.translate : -u, h = 0; const f = -100 * Math.abs(p); let g = 1, v = -i.perSlideRotate * p, w = i.perSlideOffset - .75 * Math.abs(p); const b = t.virtual && t.params.virtual.enabled ? t.virtual.from + o : o, y = (b === s || b === s - 1) && p > 0 && p < 1 && (n || t.params.cssMode) && l < r, E = (b === s || b === s + 1) && p < 0 && p > -1 && (n || t.params.cssMode) && l > r; if (y || E) { const e = (1 - Math.abs((Math.abs(p) - .5) / .5)) ** .5; v += -28 * p * e, g += -.5 * e, w += 96 * e, h = -25 * e * Math.abs(p) + "%" } if (m = p < 0 ? `calc(${m}px ${a ? "-" : "+"} (${w * Math.abs(p)}%))` : p > 0 ? `calc(${m}px ${a ? "-" : "+"} (-${w * Math.abs(p)}%))` : `${m}px`, !t.isHorizontal()) { const e = h; h = m, m = e } const x = p < 0 ? "" + (1 + (1 - g) * p) : "" + (1 - (1 - g) * p), S = `\n translate3d(${m}, ${h}, ${f}px)\n rotateZ(${i.rotate ? a ? -v : v : 0}deg)\n scale(${x})\n `; if (i.slideShadows) { let e = d.querySelector(".swiper-slide-shadow"); e || (e = me("cards", d)), e && (e.style.opacity = Math.min(Math.max((Math.abs(p) - .5) / .5, 0), 1)) } d.style.zIndex = -Math.abs(Math.round(c)) + e.length; pe(0, d).style.transform = S } }, setTransition: e => { const s = t.slides.map((e => h(e))); s.forEach((t => { t.style.transitionDuration = `${e}ms`, t.querySelectorAll(".swiper-slide-shadow").forEach((t => { t.style.transitionDuration = `${e}ms` })) })), ue({ swiper: t, duration: e, transformElements: s }) }, perspective: () => !0, overwriteParams: () => ({ watchSlidesProgress: !0, virtualTranslate: !t.params.cssMode }) }) }]; return se.use(he), se }(); +//# sourceMappingURL=swiper-bundle.min.js.map + + +const videoCarouselElement = document.querySelectorAll('.video-carousel-swiper-container'); +if (videoCarouselElement.length) { + + + var videoCarousel = new Swiper('.video-carousel-swiper-container', { + // Optional parameters + loop: true, + spaceBetween: 21, // Adjust the space between slides as needed. + loopedSlides: 4, + slidesPerView: 6, + slidesPerGroup: 3, + centeredSlides: false, + initialSlide: 3, + watchSlidesProgress: true, + loopFillGroupWithBlank: true, + speed: 800, + a11y: true, + keyboard: { + enabled: true, + onlyInViewport: true, + }, + // Navigation arrows + navigation: { + nextEl: '.swiper-button-next', + prevEl: '.swiper-button-prev', + }, + + // Responsive breakpoints + breakpoints: { + 1: { + slidesPerView: 3, + slidesPerGroup: 1, + }, + 768: { + slidesPerView: 4, + }, + 1400: { + slidesPerView: 6, + } + }, + + + on: { + // Remove the class from all slides on initialization + init: function () { + this.slides.forEach(slide => { + slide.classList.remove('keyboard-focused'); + }); + }, + // Update the class on slides when the active slide changes + slideChange: function () { + this.slides.forEach(slide => { + slide.classList.remove('keyboard-focused'); + }); + + const activeSlide = this.slides[this.activeIndex]; + if (activeSlide) { + activeSlide.classList.add('keyboard-focused'); + } + }, + transitionStart: function () { + + var videos = document.querySelectorAll('video'); + + Array.prototype.forEach.call(videos, function (video) { + video.pause(); + }); + + }, + } + }); + + function updateVisibleSlidesClass(swiper) { + // Only proceed if viewport is greater than 768 pixels + if (window.innerWidth > 1) { + // Remove the class from all slides first + swiper.slides.forEach(slide => { + slide.classList.remove('first-visible-slide', 'last-visible-slide'); + }); + + // Filter for visible slides + const visibleSlides = Array.from(swiper.slides).filter(slide => slide.classList.contains('swiper-slide-visible')); + + // Check if there are visible slides + if (visibleSlides.length > 0) { + // Add the class to the first and last visible slides + visibleSlides[0].classList.add('first-visible-slide'); + visibleSlides[visibleSlides.length - 1].classList.add('last-visible-slide'); + } + } else { + // Optionally, ensure classes are removed when viewport is less than or equal to 768 pixels + swiper.slides.forEach(slide => { + slide.classList.remove('first-visible-slide', 'last-visible-slide'); + }); + } + } + + // Function to handle resize event with debounce to improve performance + let resizeTimer; + function onResize() { + clearTimeout(resizeTimer); + resizeTimer = setTimeout(function () { + updateVisibleSlidesClass(videoCarousel); + }, 250); // Adjust debounce time as needed + } + + // Add event listeners for Swiper events + videoCarousel.on('init slideChange update', function () { + updateVisibleSlidesClass(this); + }); + + // Listen to resize events + window.addEventListener('resize', onResize); + + // Trigger the update function initially in case the Swiper is already initialized + updateVisibleSlidesClass(videoCarousel); + + let isKeyboardNavigation = false; + + // Function to handle keyboard navigation including Arrow keys, Tab, and Shift+Tab + function handleKeyboardNavigation(event) { + const key = event.key; + let isTabPressed = key === 'Tab'; + let isShiftPressed = event.shiftKey; + + // Check for navigation keys + if (key === 'ArrowLeft' || key === 'ArrowRight' || isTabPressed && !isShiftPressed || isTabPressed && isShiftPressed) { + isKeyboardNavigation = true; + setTimeout(() => { + if (isKeyboardNavigation) { + videoCarousel.slides.forEach(slide => slide.classList.add('keyboard-focused')); + isKeyboardNavigation = true; + } else { + videoCarousel.slides.forEach(slide => slide.classList.remove('keyboard-focused')); + } + }, 50); // Adjust delay as necessary + } + } + + // Add a global listener for keyboard events + document.addEventListener('keydown', handleKeyboardNavigation); + + function clearKeyboardFocus() { + videoCarousel.slides.forEach(slide => { + slide.classList.remove('keyboard-focused'); + }); + videoCarouselElement[0].classList.remove('keyboard-focused'); + isKeyboardNavigation = false; // Reset the flag when the mouse is used + } + + document.addEventListener('click', function (event) { + // Check if the clicked element is a Swiper pagination bullet + if (event.target.classList.contains('swiper-button-next')) { + clearKeyboardFocus(); + } + if (event.target.classList.contains('swiper-button-prev')) { + clearKeyboardFocus(); + } + }); + + setTimeout(() => { + clearKeyboardFocus() + }, 200); + + + window.addEventListener('resize', function () { + setTimeout(() => { + clearKeyboardFocus() + }, 200); + }); + + + + // Assuming 'video-carousel-swiper-container' is the class of your Swiper container + const swiperContainer = document.querySelector('.video-carousel-swiper-container'); + + if (!swiperContainer) { + console.warn('Swiper container not found.'); + } + + // This function checks if the focused element is what we're interested in + function isTargetElement(element) { + // Check if the element is an .image-placeholder-action or a video tag + return element.classList.contains('image-placeholder-action') || element.tagName === 'VIDEO' || element.classList.contains('btn'); + } + + // Adds a class to the swiper container when a target element within any slide gains focus + function handleFocusIn(event) { + const focusedElement = event.target; + + if (isTargetElement(focusedElement)) { + swiperContainer.classList.add('container-focused-class'); // Replace 'container-focused-class' with your desired class + } + } + + // Removes the class from the swiper container when focus moves away from a target element within any slide + function handleFocusOut(event) { + const blurredElement = event.target; + + if (isTargetElement(blurredElement)) { + swiperContainer.classList.remove('container-focused-class'); // Ensure this matches the class added in handleFocusIn + } + } + + // Add event listeners for focusin and focusout within the swiper container + swiperContainer.addEventListener('focusin', handleFocusIn); + swiperContainer.addEventListener('focusout', handleFocusOut); + +} + diff --git a/assets/js/global-min.js b/assets/js/global-min.js index 9a05818..2f6012f 100644 --- a/assets/js/global-min.js +++ b/assets/js/global-min.js @@ -1 +1 @@ -jQuery((function($){function e(){return $(".site-header").height()}function t(){var e=$(this).scrollTop();Math.abs(o-e)<=5||(e>r?e>o&&!$(".site-header .nav-menu").hasClass("active")?$("body").removeClass("nav-down").addClass("nav-up"):e+$(window).height()<$(document).height()&&$("body").removeClass("nav-up").addClass("nav-down"):$("body").removeClass("nav-down").removeClass("nav-up"),o=e)}var n=!1,o=0,i=5,r=e();$(window).scroll((function(){n=!0})),setInterval((function(){n&&(t(),n=!1)}),250),$(".backtotop").click((function(){$("body").removeClass("nav-up").removeClass("nav-down")}))})),window.addEventListener("load",(function(){function e(e){var e;0==i?i=0:i--,r="tab-"+i,document.querySelector(`button[data-link="${r}"]`).focus()}function t(e){var e;i++,r="tab-"+i,document.querySelector(`button[data-link="${r}"]`).focus()}let n=null,o=null,i=0,r="tab-0";const c=document.querySelector(".tabbed-content-block"),a=document.querySelectorAll(".tabbed-content__nav-item button");c&&a.forEach((n=>{n.addEventListener("keydown",(function(o){var i=o.currentTarget,r=!1;switch(o.key){case"ArrowLeft":e(n),r=!0;break;case"ArrowRight":t(n),r=!0;break;default:break}r&&(o.stopPropagation(),o.preventDefault())})),n.addEventListener("click",(function(){let e=n.getAttribute("data-link"),t;if(a.forEach((e=>e.classList.remove("active"))),a.forEach((e=>e.setAttribute("aria-selected","false"))),a.forEach((e=>e.setAttribute("tabindex","-1"))),document.querySelectorAll(".tabbed-content__content__pane").forEach((e=>{e.classList.remove("tabbed-content__content__pane--active")})),e){let t;document.querySelectorAll("#"+e).forEach((e=>{e.classList.add("tabbed-content__content__pane--active")}))}n.classList.add("active"),n.setAttribute("aria-selected","true"),n.removeAttribute("tabindex")}))}))})),window.addEventListener("load",(function(){const e=undefined;if(document.querySelector(".resource-links-container")){const a=document.querySelectorAll("button.resource-links-container-links-link-button , .dropdown-li");function t(e){var t=e.currentTarget;switch(e.key){case"ArrowUp":i(t);break;case"ArrowDown":o(t);break;default:break}}function n(e){var t=e.currentTarget;switch(e.key){case"ArrowLeft":c(t);break;case"ArrowRight":r(t);break;default:break}}function o(e){let t=Array.from(document.querySelectorAll(".dropdown-li")).indexOf(e);-1!==t&&t{e.addEventListener("click",(function(t){let n=e.getAttribute("data-resourcelink"),o;if(a.forEach((e=>e.classList.remove("active"))),document.querySelectorAll(".resource-links-loop-container-item").forEach((e=>{e.classList.remove("resource-links-loop-container-item--active")})),n){let e;document.querySelectorAll("#"+n).forEach((e=>{e.classList.add("resource-links-loop-container-item--active")}))}e.classList.add("active");let i=document.getElementById(n).querySelector(".title");i&&i.focus()}))})),a.forEach((e=>{e.addEventListener("keydown",n)})),document.querySelectorAll("#resource-links-dropdown").forEach((function(e){e.addEventListener("click",(function(){this.classList.toggle("active");var e=document.querySelector(".resource-links-dropdown-list");e.classList.toggle("active"),e.focus()}))})),document.querySelectorAll(".dropdown-li").forEach((function(e){e.addEventListener("click",(function(t){let n=document.getElementById("resource-links-dropdown"),o;document.querySelector(".resource-links-dropdown-list").classList.remove("active"),n.innerHTML=e.innerHTML,n.classList.remove("active")})),e.addEventListener("keydown",(function(t){if(13==t.keyCode){let n=document.getElementById("resource-links-dropdown"),o;document.querySelector(".resource-links-dropdown-list").classList.remove("active"),n.innerHTML=e.innerHTML,n.classList.remove("active");let i=t.target.getAttribute("data-resourcelink"),r;if(a.forEach((e=>e.classList.remove("active"))),document.querySelectorAll(".resource-links-loop-container-item").forEach((e=>{e.classList.remove("resource-links-loop-container-item--active")})),i){let e;document.querySelectorAll("#"+i).forEach((e=>{e.classList.add("resource-links-loop-container-item--active")}))}let c=document.getElementById(i).querySelector("a");c&&c.focus()}}))})),document.querySelector("#resource-links-dropdown").addEventListener("keydown",(function(e){if("ArrowDown"==e.key){let e=document.querySelector(".resource-links-dropdown-list .dropdown-li");e&&e.focus()}})),document.querySelectorAll(".dropdown-li").forEach((e=>{e.addEventListener("keydown",t)}))}})),document.addEventListener("DOMContentLoaded",(function(){function e(){const e=document.querySelectorAll(".widget-title");var t;document.querySelectorAll('[id^="nav_menu-"]').forEach((function(e){var t,n=e.id+"_footer",o=e.querySelector(".menu-footer-container");o&&(o.id=n),(o=e.querySelector(".menu-home-footer-container"))&&(o.id=n),(o=e.querySelector(".menu-footer-privacy-container"))&&(o.id=n)})),e.forEach((function(e){var t=e.nextElementSibling;if(t&&t.classList.contains("menu-footer-container")){var n=t.id;e.setAttribute("aria-controls",n)}if(t&&t.classList.contains("menu-home-footer-container")){var n=t.id;e.setAttribute("aria-controls",n)}if(t&&t.classList.contains("menu-footer-privacy-container")){var n=t.id;e.setAttribute("aria-controls",n)}e.setAttribute("tabindex","0"),e.setAttribute("role","button"),e.setAttribute("aria-expanded","false")})),e.forEach((function(e){e.addEventListener("click",(function(){this.classList.toggle("active");let t=this.nextElementSibling;var n=e.getAttribute("aria-expanded");this.nextElementSibling.classList.toggle("active"),this.setAttribute("aria-expanded",n?"false":"true")}),!0)}))}function t(){this.classList.toggle("active");let e=this.nextElementSibling;if(e){var t=this.getAttribute("aria-expanded");e.classList.toggle("active"),this.setAttribute("aria-expanded",t?"false":"true")}}let n=document.querySelectorAll(".widget-title");window.addEventListener("resize",(function(){window.innerWidth<768?(e(),n.forEach((e=>{e.addEventListener("click",t)}))):n.forEach((e=>{e.removeAttribute("tabindex"),e.removeAttribute("role"),e.removeAttribute("aria-expanded"),e.removeAttribute("aria-controls"),e.removeEventListener("click",t)}))})),window.innerWidth<768&&e()})),jQuery((function($){function e(e,t){var n,o;27==t.which&&(o=e.find("*").filter(".modal .close-btn"),i(),t.preventDefault())}function t(e,t){var n,o,i,c,a;9==t.which&&(o=e.find("*").filter(r).filter(":visible"),i=jQuery(":focus"),c=o.length,a=o.index(i),t.shiftKey?0==a&&(o.get(c-1).focus(),t.preventDefault()):a==c-1&&(o.get(0).focus(),t.preventDefault()))}function n(e){var t=$(e).find("*");console.log(t.filter(r).filter(":visible")),t.filter(r).filter(":visible").first().focus()}function o(e){jQuery("body").attr("aria-hidden","true"),jQuery("#"+e).css("display","block"),jQuery("#"+e).attr("aria-hidden","false"),jQuery("body").addClass("modal-active"),jQuery("body").on("focusin","body",(function(){n("#"+e)})),c=jQuery(":focus"),n("#"+e);var t=jQuery("#"+e).find(".video-modal-autoplay").get(0);t&&t.play()}function i(){jQuery("body").removeClass("modal-active"),jQuery(".modal").css("display","none"),jQuery(".modal").attr("aria-hidden","true"),jQuery(" body").attr("aria-hidden","false"),jQuery(".modal-btn").attr("aria-expanded",!1),jQuery("body").off("focusin"," body"),jQuery(".modal").attr("aria-hidden","true");const e=undefined;document.querySelectorAll(".modal video").forEach((function(e){e.pause()})),c.focus()}var r="a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, video, object, embed, *[tabindex], *[contenteditable]",c;$(document).ready((function(){$(".iframe_capture").on("focus",(function(){$(this).closest(".close-btn").focus()}))})),$(document).ready((function(){jQuery(".modal-btn").click((function(e){var t="true"===$(this).attr("aria-expanded");modalId=$(e.currentTarget).data("modal"),o(modalId),$(this).attr("aria-expanded",!t)})),jQuery(".modal .close-btn").click((function(e){i()})),jQuery(".modal .close-btnButton").click((function(e){i()})),jQuery(".modal").keydown((function(e){t($(this),e)})),jQuery(".modal").keydown((function(t){e($(this),t)}))}))})),window.addEventListener("DOMContentLoaded",(function(){let e=document.querySelectorAll(".accordion-block-container-accordion__button");e.length>0&&e.forEach((e=>{e.addEventListener("click",(()=>{const t=e.getAttribute("aria-controls"),n=document.getElementById(t);"true"===e.getAttribute("aria-expanded")?(e.setAttribute("aria-expanded","false"),n.classList.remove("active-content")):(e.setAttribute("aria-expanded","true"),n.classList.add("active-content"))}))}))}),!1),window.addEventListener("load",(function(){const e=document.querySelectorAll(".tab-block-container-tab-block_header-buttons .tab-block-container__heading__button");if(e.length){function t(){e.forEach((e=>{const t=e.getAttribute("aria-controls"),n=undefined;document.getElementById(t).classList.remove("active-content"),e.setAttribute("aria-selected","false"),e.setAttribute("tabindex","-1")}))}e.forEach(((n,o)=>{n.addEventListener("click",(function(){let e;t(),n.focus(),n.removeAttribute("tabindex"),n.setAttribute("aria-selected","true"),document.getElementById(n.getAttribute("aria-controls")).classList.add("active-content")})),n.addEventListener("keydown",(function(n){let i;if(36===n.keyCode){let o;n.preventDefault(),i=0,t(),e[i].focus(),e[i].removeAttribute("tabindex"),e[i].setAttribute("aria-selected","true"),document.getElementById(e[i].getAttribute("aria-controls")).classList.add("active-content")}else if(35===n.keyCode){let o;n.preventDefault(),i=e.length-1,t(),e[i].focus(),e[i].removeAttribute("tabindex"),e[i].setAttribute("aria-selected","true"),document.getElementById(e[i].getAttribute("aria-controls")).classList.add("active-content")}if(37===n.keyCode){let n;i=(o-1+e.length)%e.length,t(),e[i].focus(),e[i].removeAttribute("tabindex"),e[i].setAttribute("aria-selected","true"),document.getElementById(e[i].getAttribute("aria-controls")).classList.add("active-content")}else{if(39!==n.keyCode)return;{let n;i=(o+1)%e.length,t(),e[i].focus(),e[i].removeAttribute("tabindex"),e[i].setAttribute("aria-selected","true"),document.getElementById(e[i].getAttribute("aria-controls")).classList.add("active-content")}}}))}));const n=document.querySelector(".tab-block-container-tab-block_header-buttons_mobile_select");n.addEventListener("change",(function(){const e=n.options[n.selectedIndex],o=e.getAttribute("aria-controls"),i=document.getElementById(o);t(),i.classList.add("active-content"),e.setAttribute("aria-selected","true"),e.setAttribute("tabindex","0")}))}})),window.addEventListener("load",(function(){function e(){var e;t(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)}function t(e){let t=document.querySelector(".team-hightlight-block-container-team-hightlight__load_more button"),n=document.querySelector(".team-hightlight-block-container-team-hightlight__load_more button .text");if(t){let o=document.querySelectorAll(".team-hightlight-block-container-team-hightlight-member"),i=n.innerText,r=!1;o.length>=6&&(e<=768?(o.forEach((function(e,t){e.tabIndex=t<6?0:-1})),o[0].tabIndex=0):document.querySelector(".team-hightlight-block-styling-1")||o.forEach((function(e){e.tabIndex=0})),t.addEventListener("click",(function(){o.forEach((function(e){r?(e.classList.add("hidden"),e.classList.remove("animate"),o.forEach((function(e,t){e.tabIndex=t<6?0:-1}))):(e.classList.remove("hidden"),e.classList.add("animate"))}));var e="true"===this.getAttribute("aria-expanded");this.setAttribute("aria-expanded",e?"false":"true");for(var t=0;t<6&&t=3&&(e<=768&&o.forEach((function(e,t){e.tabIndex=t<3?0:-1})),t.addEventListener("click",(function(){o.forEach((function(e){r?(e.classList.add("hidden"),e.classList.remove("animate")):(e.classList.remove("hidden"),e.classList.add("animate"))}));var e="true"===this.getAttribute("aria-expanded");this.setAttribute("aria-expanded",e?"false":"true");for(var t=0;t<3&&t{let e=document.querySelectorAll(".single .post_type_layout_standard .entry-content"),t=document.querySelectorAll(".toc_container");if(t.length>0||e.length>0){let n,o;t.length>0?(n=document.querySelector(".toc_container"),o=n.querySelectorAll("h2")):e.length>0&&(n=document.querySelector(".post_type_layout_standard .entry-content"),o=document.querySelectorAll(".post_type_layout_standard .entry-content >h2"));const i=[];o.forEach(((e,t)=>{const n=`toc_${t+1}`;e.id=n,i.push(n)}));const r=document.querySelector(".toc-nav"),c=document.createElement("ul");i.forEach((e=>{const t=document.createElement("li"),n=document.createElement("a");n.href=`#${e}`,n.textContent=document.querySelector(`#${e}`).textContent,t.appendChild(n),c.appendChild(t)})),r.appendChild(c);const a=document.querySelector(".toc-nav"),l=document.querySelector(".contents-nav-mobile-menu"),d=document.querySelector(".toc_content_load_point");if(a&&l){const e=a.cloneNode(!0);for(;e.firstChild;)l.appendChild(e.firstChild)}if(d){const e=a.cloneNode(!0);for(;e.firstChild;)d.appendChild(e.firstChild)}let s=null,u=null,m=null,f=document.querySelector(".toc_content_load_point");const v=new IntersectionObserver((e=>{e.forEach((e=>{const t=e.target.getAttribute("id");let n;if(null!=document.querySelector(".toc-nav li a")&&e.intersectionRatio>0){u&&u.classList.remove("active"),s&&s.classList.remove("active"),m&&m.classList.remove("active");const e=document.querySelector(`.toc-nav li a[href="#${t}"]`).parentElement,n=document.querySelector(`.contents-nav-mobile-menu li a[href="#${t}"]`).parentElement;if(f){const e=document.querySelector(`.toc_content_load_point li a[href="#${t}"]`).parentElement;e.classList.add("active"),m=e}e.classList.add("active"),n.classList.add("active"),s=e,u=n}}))}));let h;t.length>0?h=document.querySelectorAll(".toc_container h2"):e.length>0&&(h=document.querySelectorAll(".single .post_type_layout_standard .entry-content h2")),h.forEach((e=>{v.observe(e)})),window.addEventListener("scroll",(function(){var e=document.querySelector(".inner-hero");if(e){var t=e.getBoundingClientRect().bottom,n=document.querySelector(".contents-nav-mobile"),o=document.querySelector(".site-header");t<0?(n.classList.add("scroll_active"),o.classList.add("scroll_active")):(n.classList.remove("scroll_active"),o.classList.remove("scroll_active"))}}));const b=undefined;document.querySelectorAll(".contents-nav-mobile-menu a, .toc-nav a").forEach((e=>{e.addEventListener("click",(t=>{t.preventDefault();const n=e.getAttribute("href"),o=document.querySelector(n);if(o){let e;o.focus(),document.querySelector(".contents-nav-mobile").classList.toggle("active");const t=undefined,n=o.getBoundingClientRect().top+window.pageYOffset-100;window.scrollTo({top:n,behavior:"smooth"})}}))}));const y=document.querySelector(".contents-nav-mobile-header-dropdown-select"),p=document.querySelector(".contents-nav-mobile");y.addEventListener("click",(()=>{p.classList.toggle("active")}))}})),document.addEventListener("DOMContentLoaded",(function(){const e=document.querySelectorAll(".vendor_information_block_container_column_two_link_more_info");e.length>0&&e.forEach((e=>{e.addEventListener("click",(e=>{const t=e.target.getAttribute("aria-controls"),n=document.getElementById(t);if(n){e.target.classList.toggle("active_btn"),n.toggleAttribute("hidden");const t="true"===e.target.getAttribute("aria-expanded");e.target.setAttribute("aria-expanded",!t),e.target.innerHTML=t?'More Information ':'Less Information'}}))}));const t=undefined;document.querySelectorAll(".tablet_chevron").length>0&&document.querySelector(".tablet_chevron").addEventListener("click",(function(){var e=document.querySelector(".tabbed-content__nav-list"),t=e.querySelectorAll(".tabbed-content__nav-item"),n=e.querySelector(".active"),o,i=t[Array.from(t).indexOf(n)+1]||t[0];i&&(i.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"}),n.classList.remove("active"),i.classList.add("active"))}))})),document.addEventListener("DOMContentLoaded",(function(){const e=document.querySelectorAll(".video-carousel-swiper-container");if(e.length){var t=new Swiper(".video-carousel-swiper-container",{loop:!0,spaceBetween:21,loopedSlides:4,slidesPerView:6,slidesPerGroup:3,centeredSlides:!1,initialSlide:3,watchSlidesProgress:!0,loopFillGroupWithBlank:!0,speed:800,a11y:!0,keyboard:{enabled:!0,onlyInViewport:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},breakpoints:{1:{slidesPerView:3,slidesPerGroup:1},768:{slidesPerView:4},1400:{slidesPerView:6}},on:{init:function(){this.slides.forEach((e=>{e.classList.remove("keyboard-focused")}))},slideChange:function(){this.slides.forEach((e=>{e.classList.remove("keyboard-focused")}));const e=this.slides[this.activeIndex];e&&e.classList.add("keyboard-focused")},transitionStart:function(){var e=document.querySelectorAll("video");Array.prototype.forEach.call(e,(function(e){e.pause()}))}}});function n(e){if(window.innerWidth>1){e.slides.forEach((e=>{e.classList.remove("first-visible-slide","last-visible-slide")}));const t=Array.from(e.slides).filter((e=>e.classList.contains("swiper-slide-visible")));t.length>0&&(t[0].classList.add("first-visible-slide"),t[t.length-1].classList.add("last-visible-slide"))}else e.slides.forEach((e=>{e.classList.remove("first-visible-slide","last-visible-slide")}))}let d;function o(){clearTimeout(d),d=setTimeout((function(){n(t)}),250)}t.on("init slideChange update",(function(){n(this)})),window.addEventListener("resize",o),n(t);let s=!1;function i(e){const n=e.key;let o="Tab"===n,i=e.shiftKey;("ArrowLeft"===n||"ArrowRight"===n||o&&!i||o&&i)&&(s=!0,setTimeout((()=>{s?(t.slides.forEach((e=>e.classList.add("keyboard-focused"))),s=!0):t.slides.forEach((e=>e.classList.remove("keyboard-focused")))}),50))}function r(){t.slides.forEach((e=>{e.classList.remove("keyboard-focused")})),e[0].classList.remove("keyboard-focused"),s=!1}document.addEventListener("keydown",i),document.addEventListener("click",(function(e){e.target.classList.contains("swiper-button-next")&&r(),e.target.classList.contains("swiper-button-prev")&&r()})),setTimeout((()=>{r()}),200),window.addEventListener("resize",(function(){setTimeout((()=>{r()}),200)}));const u=document.querySelector(".video-carousel-swiper-container");if(!u)return void console.warn("Swiper container not found.");function c(e){return e.classList.contains("image-placeholder-action")||"VIDEO"===e.tagName||e.classList.contains("btn")}function a(e){const t=undefined;c(e.target)&&u.classList.add("container-focused-class")}function l(e){const t=undefined;c(e.target)&&u.classList.remove("container-focused-class")}u.addEventListener("focusin",a),u.addEventListener("focusout",l)}})),document.addEventListener("DOMContentLoaded",(function(){const e=undefined;if(document.querySelectorAll(".image-placeholder-action").length){var t=document.querySelectorAll(".image-placeholder-action"),n=document.querySelectorAll(".image-placeholder"),o=document.querySelectorAll(".image-object");function i(e){o.forEach((function(e){e.classList.remove("image-hold")})),n.forEach((function(e){e.classList.remove("image-hold")}));var t=e.closest(".slide-container"),i=t.querySelector(".image-placeholder"),r=t.querySelector("video"),c=t.querySelector(".image-object");document.querySelectorAll(".slide-container").forEach((function(e){e.classList.remove("image-hold")})),document.querySelectorAll(".slide-container video").forEach((function(n){n!==e.closest(".slide-container").querySelector("video")&&(n.pause(),n.controls=!1,i.classList.remove("image-hold"),t.classList.remove("image-hold"))})),r.paused&&(i.classList.add("image-hold"),c.classList.add("image-hold"),t.classList.add("image-hold"),r.controls=!0),r.addEventListener("ended",(function(){document.querySelectorAll(".slide-container video").forEach((function(e){e!==r&&(e.pause(),e.controls=!1,i.classList.remove("image-hold"),i.classList.remove("image-hold"),c.classList.remove("image-hold"),t.classList.remove("image-hold"))}))})),r.paused?r.play():r.pause()}t.forEach((function(e){e.addEventListener("click",(function(){i(e)}))})),document.getElementById("video-placeholder").play(),jQuery(".video-placeholder").on("click",(function(){var e=jQuery("#video-placeholder").get(0);e.paused?(e.play(),jQuery(this).hide()):(e.pause(),jQuery(this).show())}));var r=document.getElementById("video-placeholder"),c=document.querySelector(".video_block_template_container_media_placeholder_action_btn"),a=document.querySelector(".video_block_template_container_media_placeholder_action_btn .text");c.addEventListener("click",(function(){r.paused?(r.play(),c.ariaPressed=!1,a.textContent="Pause Video"):(r.pause(),c.ariaPressed=!0,a.textContent="Play Video")}))}})),document.addEventListener("DOMContentLoaded",(function(){const e=undefined;if(document.querySelectorAll(".pricing_calculator_template").length){class i{constructor(e){this.rootEl=e,this.buttonEl=this.rootEl.querySelector("button[aria-expanded]");const t=this.buttonEl.getAttribute("aria-controls");this.contentEl=document.getElementById(t),this.open="true"===this.buttonEl.getAttribute("aria-expanded"),this.buttonEl.addEventListener("click",this.onButtonClick.bind(this))}onButtonClick(){this.toggle(!this.open)}toggle(e){e!==this.open&&(this.open=e,this.buttonEl.setAttribute("aria-expanded",`${e}`),e?this.contentEl.removeAttribute("hidden"):this.contentEl.setAttribute("hidden",""))}open(){this.toggle(!0)}close(){this.toggle(!1)}}const r=undefined;function t(e){var t=parseInt(e.data("price"),10),o=parseInt(e.data("enrollment"),10),i=e.data("benefits"),r=e.data("disclaimer"),c=e.data("unique-id"),a=jQuery(".large_set .price"),l=jQuery(".info_set_number"),d=jQuery(".pricing_calculator_template_container_main_info_ul ul"),s=jQuery(".pricing_calculator_template_container_main_pricing_disclaimer"),u=parseInt(a.text(),10),m=parseInt(l.text(),10);a.text(u+t),l.text(m+o),d.append(i),s.append(''+r+""),n()}function n(){function e(t){let n="";return t.childNodes.forEach((function(t){t.nodeType===Node.TEXT_NODE?n+=t.textContent.trim()+" ":t.nodeType===Node.ELEMENT_NODE&&(n+=e(t))})),n}var t,n=e(document.querySelector(".pricing_calculator_template_container_main")).trim(),o=document.getElementById("aria-read");o?o.textContent=n:console.log('Element with ID "aria-read" not found.')}function o(e){var t=parseInt(e.data("price"),10),o=parseInt(e.data("enrollment"),10),i=e.data("benefits"),r=e.data("disclaimer"),c=e.data("unique-id"),a=jQuery(".large_set .price"),l=jQuery(".info_set_number"),d=jQuery(".pricing_calculator_template_container_main_info_ul ul"),s=jQuery(".pricing_calculator_template_container_main_pricing_disclaimer"),u=parseInt(a.text(),10),m=parseInt(l.text(),10);a.text(u-t),l.text(m-o),d.find('[data-unique-id="'+c+'"]').remove(),s.find('[data-unique-id="'+c+'"]').remove(),n()}document.querySelectorAll(".pricing_calculator_accordion .pricing_calculator_accordion_item_title").forEach((e=>{new i(e)})),jQuery(".action, .pricing_calculator_accordion_add").on("click",(function(){var e=jQuery(this),n=e.data("added"),i=e.closest(".pricing_calculator_accordion_item");n?(e.closest(".pricing_calculator_accordion_item").find(".pricing_calculator_accordion_add,.action.btn").data("added",!1).attr("data-added","false"),e.closest(".pricing_calculator_accordion_item").find(".pricing_calculator_accordion_add,.action.btn").attr("aria-pressed","false"),jQuery(i).removeClass("pricing_calculator_accordion_add_active"),o(e),e.closest(".pricing_calculator_accordion_item").find(".action").text("Add Service")):(e.closest(".pricing_calculator_accordion_item").find(".pricing_calculator_accordion_add,.action.btn").data("added",!0).attr("data-added","true"),e.closest(".pricing_calculator_accordion_item").find(".pricing_calculator_accordion_add,.action.btn").attr("aria-pressed","true"),t(e),jQuery(i).addClass("pricing_calculator_accordion_add_active"),e.closest(".pricing_calculator_accordion_item").find(".action").text("Remove Service"))}))}})); \ No newline at end of file +jQuery((function($){function e(){return $(".site-header").height()}function t(){var e=$(this).scrollTop();Math.abs(o-e)<=5||(e>r?e>o&&!$(".site-header .nav-menu").hasClass("active")?$("body").removeClass("nav-down").addClass("nav-up"):e+$(window).height()<$(document).height()&&$("body").removeClass("nav-up").addClass("nav-down"):$("body").removeClass("nav-down").removeClass("nav-up"),o=e)}var n=!1,o=0,i=5,r=e();$(window).scroll((function(){n=!0})),setInterval((function(){n&&(t(),n=!1)}),250),$(".backtotop").click((function(){$("body").removeClass("nav-up").removeClass("nav-down")}))})),window.addEventListener("load",(function(){function e(e){var e;0==i?i=0:i--,r="tab-"+i,document.querySelector(`button[data-link="${r}"]`).focus()}function t(e){var e;i++,r="tab-"+i,document.querySelector(`button[data-link="${r}"]`).focus()}let n=null,o=null,i=0,r="tab-0";const c=document.querySelector(".tabbed-content-block"),a=document.querySelectorAll(".tabbed-content__nav-item button");c&&a.forEach((n=>{n.addEventListener("keydown",(function(o){var i=o.currentTarget,r=!1;switch(o.key){case"ArrowLeft":e(n),r=!0;break;case"ArrowRight":t(n),r=!0;break;default:break}r&&(o.stopPropagation(),o.preventDefault())})),n.addEventListener("click",(function(){let e=n.getAttribute("data-link"),t;if(a.forEach((e=>e.classList.remove("active"))),a.forEach((e=>e.setAttribute("aria-selected","false"))),a.forEach((e=>e.setAttribute("tabindex","-1"))),document.querySelectorAll(".tabbed-content__content__pane").forEach((e=>{e.classList.remove("tabbed-content__content__pane--active")})),e){let t;document.querySelectorAll("#"+e).forEach((e=>{e.classList.add("tabbed-content__content__pane--active")}))}n.classList.add("active"),n.setAttribute("aria-selected","true"),n.removeAttribute("tabindex")}))}))})),window.addEventListener("load",(function(){const e=undefined;if(document.querySelector(".resource-links-container")){const a=document.querySelectorAll("button.resource-links-container-links-link-button , .dropdown-li");function t(e){var t=e.currentTarget;switch(e.key){case"ArrowUp":i(t);break;case"ArrowDown":o(t);break;default:break}}function n(e){var t=e.currentTarget;switch(e.key){case"ArrowLeft":c(t);break;case"ArrowRight":r(t);break;default:break}}function o(e){let t=Array.from(document.querySelectorAll(".dropdown-li")).indexOf(e);-1!==t&&t{e.addEventListener("click",(function(t){let n=e.getAttribute("data-resourcelink"),o;if(a.forEach((e=>e.classList.remove("active"))),document.querySelectorAll(".resource-links-loop-container-item").forEach((e=>{e.classList.remove("resource-links-loop-container-item--active")})),n){let e;document.querySelectorAll("#"+n).forEach((e=>{e.classList.add("resource-links-loop-container-item--active")}))}e.classList.add("active");let i=document.getElementById(n).querySelector(".title");i&&i.focus()}))})),a.forEach((e=>{e.addEventListener("keydown",n)})),document.querySelectorAll("#resource-links-dropdown").forEach((function(e){e.addEventListener("click",(function(){this.classList.toggle("active");var e=document.querySelector(".resource-links-dropdown-list");e.classList.toggle("active"),e.focus()}))})),document.querySelectorAll(".dropdown-li").forEach((function(e){e.addEventListener("click",(function(t){let n=document.getElementById("resource-links-dropdown"),o;document.querySelector(".resource-links-dropdown-list").classList.remove("active"),n.innerHTML=e.innerHTML,n.classList.remove("active")})),e.addEventListener("keydown",(function(t){if(13==t.keyCode){let n=document.getElementById("resource-links-dropdown"),o;document.querySelector(".resource-links-dropdown-list").classList.remove("active"),n.innerHTML=e.innerHTML,n.classList.remove("active");let i=t.target.getAttribute("data-resourcelink"),r;if(a.forEach((e=>e.classList.remove("active"))),document.querySelectorAll(".resource-links-loop-container-item").forEach((e=>{e.classList.remove("resource-links-loop-container-item--active")})),i){let e;document.querySelectorAll("#"+i).forEach((e=>{e.classList.add("resource-links-loop-container-item--active")}))}let c=document.getElementById(i).querySelector("a");c&&c.focus()}}))})),document.querySelector("#resource-links-dropdown").addEventListener("keydown",(function(e){if("ArrowDown"==e.key){let e=document.querySelector(".resource-links-dropdown-list .dropdown-li");e&&e.focus()}})),document.querySelectorAll(".dropdown-li").forEach((e=>{e.addEventListener("keydown",t)}))}})),document.addEventListener("DOMContentLoaded",(function(){function e(){const e=document.querySelectorAll(".widget-title");var t;document.querySelectorAll('[id^="nav_menu-"]').forEach((function(e){var t,n=e.id+"_footer",o=e.querySelector(".menu-footer-container");o&&(o.id=n),(o=e.querySelector(".menu-home-footer-container"))&&(o.id=n),(o=e.querySelector(".menu-footer-privacy-container"))&&(o.id=n)})),e.forEach((function(e){var t=e.nextElementSibling;if(t&&t.classList.contains("menu-footer-container")){var n=t.id;e.setAttribute("aria-controls",n)}if(t&&t.classList.contains("menu-home-footer-container")){var n=t.id;e.setAttribute("aria-controls",n)}if(t&&t.classList.contains("menu-footer-privacy-container")){var n=t.id;e.setAttribute("aria-controls",n)}e.setAttribute("tabindex","0"),e.setAttribute("role","button"),e.setAttribute("aria-expanded","false")})),e.forEach((function(e){e.addEventListener("click",(function(){this.classList.toggle("active");let t=this.nextElementSibling;var n=e.getAttribute("aria-expanded");this.nextElementSibling.classList.toggle("active"),this.setAttribute("aria-expanded",n?"false":"true")}),!0)}))}function t(){this.classList.toggle("active");let e=this.nextElementSibling;if(e){var t=this.getAttribute("aria-expanded");e.classList.toggle("active"),this.setAttribute("aria-expanded",t?"false":"true")}}let n=document.querySelectorAll(".widget-title");window.addEventListener("resize",(function(){window.innerWidth<768?(e(),n.forEach((e=>{e.addEventListener("click",t)}))):n.forEach((e=>{e.removeAttribute("tabindex"),e.removeAttribute("role"),e.removeAttribute("aria-expanded"),e.removeAttribute("aria-controls"),e.removeEventListener("click",t)}))})),window.innerWidth<768&&e()})),jQuery((function($){function e(e,t){var n,o;27==t.which&&(o=e.find("*").filter(".modal .close-btn"),i(),t.preventDefault())}function t(e,t){var n,o,i,c,a;9==t.which&&(o=e.find("*").filter(r).filter(":visible"),i=jQuery(":focus"),c=o.length,a=o.index(i),t.shiftKey?0==a&&(o.get(c-1).focus(),t.preventDefault()):a==c-1&&(o.get(0).focus(),t.preventDefault()))}function n(e){var t=$(e).find("*");console.log(t.filter(r).filter(":visible")),t.filter(r).filter(":visible").first().focus()}function o(e){jQuery("body").attr("aria-hidden","true"),jQuery("#"+e).css("display","block"),jQuery("#"+e).attr("aria-hidden","false"),jQuery("body").addClass("modal-active"),jQuery("body").on("focusin","body",(function(){n("#"+e)})),c=jQuery(":focus"),n("#"+e);var t=jQuery("#"+e).find(".video-modal-autoplay").get(0);t&&t.play()}function i(){jQuery("body").removeClass("modal-active"),jQuery(".modal").css("display","none"),jQuery(".modal").attr("aria-hidden","true"),jQuery(" body").attr("aria-hidden","false"),jQuery(".modal-btn").attr("aria-expanded",!1),jQuery("body").off("focusin"," body"),jQuery(".modal").attr("aria-hidden","true");const e=undefined;document.querySelectorAll(".modal video").forEach((function(e){e.pause()})),c.focus()}var r="a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, video, object, embed, *[tabindex], *[contenteditable]",c;$(document).ready((function(){$(".iframe_capture").on("focus",(function(){$(this).closest(".close-btn").focus()}))})),$(document).ready((function(){jQuery(".modal-btn").click((function(e){var t="true"===$(this).attr("aria-expanded");modalId=$(e.currentTarget).data("modal"),o(modalId),$(this).attr("aria-expanded",!t)})),jQuery(".modal .close-btn").click((function(e){i()})),jQuery(".modal .close-btnButton").click((function(e){i()})),jQuery(".modal").keydown((function(e){t($(this),e)})),jQuery(".modal").keydown((function(t){e($(this),t)}))}))})),window.addEventListener("DOMContentLoaded",(function(){let e=document.querySelectorAll(".accordion-block-container-accordion__button");e.length>0&&e.forEach((e=>{e.addEventListener("click",(()=>{const t=e.getAttribute("aria-controls"),n=document.getElementById(t);"true"===e.getAttribute("aria-expanded")?(e.setAttribute("aria-expanded","false"),n.classList.remove("active-content")):(e.setAttribute("aria-expanded","true"),n.classList.add("active-content"))}))}))}),!1),window.addEventListener("load",(function(){const e=document.querySelectorAll(".tab-block-container-tab-block_header-buttons .tab-block-container__heading__button");if(e.length){function t(){e.forEach((e=>{const t=e.getAttribute("aria-controls"),n=undefined;document.getElementById(t).classList.remove("active-content"),e.setAttribute("aria-selected","false"),e.setAttribute("tabindex","-1")}))}e.forEach(((n,o)=>{n.addEventListener("click",(function(){let e;t(),n.focus(),n.removeAttribute("tabindex"),n.setAttribute("aria-selected","true"),document.getElementById(n.getAttribute("aria-controls")).classList.add("active-content")})),n.addEventListener("keydown",(function(n){let i;if(36===n.keyCode){let o;n.preventDefault(),i=0,t(),e[i].focus(),e[i].removeAttribute("tabindex"),e[i].setAttribute("aria-selected","true"),document.getElementById(e[i].getAttribute("aria-controls")).classList.add("active-content")}else if(35===n.keyCode){let o;n.preventDefault(),i=e.length-1,t(),e[i].focus(),e[i].removeAttribute("tabindex"),e[i].setAttribute("aria-selected","true"),document.getElementById(e[i].getAttribute("aria-controls")).classList.add("active-content")}if(37===n.keyCode){let n;i=(o-1+e.length)%e.length,t(),e[i].focus(),e[i].removeAttribute("tabindex"),e[i].setAttribute("aria-selected","true"),document.getElementById(e[i].getAttribute("aria-controls")).classList.add("active-content")}else{if(39!==n.keyCode)return;{let n;i=(o+1)%e.length,t(),e[i].focus(),e[i].removeAttribute("tabindex"),e[i].setAttribute("aria-selected","true"),document.getElementById(e[i].getAttribute("aria-controls")).classList.add("active-content")}}}))}));const n=document.querySelector(".tab-block-container-tab-block_header-buttons_mobile_select");n.addEventListener("change",(function(){const e=n.options[n.selectedIndex],o=e.getAttribute("aria-controls"),i=document.getElementById(o);t(),i.classList.add("active-content"),e.setAttribute("aria-selected","true"),e.setAttribute("tabindex","0")}))}})),window.addEventListener("load",(function(){function e(){var e;t(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)}function t(e){let t=document.querySelector(".team-hightlight-block-container-team-hightlight__load_more button"),n=document.querySelector(".team-hightlight-block-container-team-hightlight__load_more button .text");if(t){let o=document.querySelectorAll(".team-hightlight-block-container-team-hightlight-member"),i=n.innerText,r=!1;o.length>=6&&(e<=768?(o.forEach((function(e,t){e.tabIndex=t<6?0:-1})),o[0].tabIndex=0):document.querySelector(".team-hightlight-block-styling-1")||o.forEach((function(e){e.tabIndex=0})),t.addEventListener("click",(function(){o.forEach((function(e){r?(e.classList.add("hidden"),e.classList.remove("animate"),o.forEach((function(e,t){e.tabIndex=t<6?0:-1}))):(e.classList.remove("hidden"),e.classList.add("animate"))}));var e="true"===this.getAttribute("aria-expanded");this.setAttribute("aria-expanded",e?"false":"true");for(var t=0;t<6&&t=3&&(e<=768&&o.forEach((function(e,t){e.tabIndex=t<3?0:-1})),t.addEventListener("click",(function(){o.forEach((function(e){r?(e.classList.add("hidden"),e.classList.remove("animate")):(e.classList.remove("hidden"),e.classList.add("animate"))}));var e="true"===this.getAttribute("aria-expanded");this.setAttribute("aria-expanded",e?"false":"true");for(var t=0;t<3&&t{let e=document.querySelectorAll(".single .post_type_layout_standard .entry-content"),t=document.querySelectorAll(".toc_container");if(t.length>0||e.length>0){let n,o;t.length>0?(n=document.querySelector(".toc_container"),o=n.querySelectorAll("h2")):e.length>0&&(n=document.querySelector(".post_type_layout_standard .entry-content"),o=document.querySelectorAll(".post_type_layout_standard .entry-content >h2"));const i=[];o.forEach(((e,t)=>{const n=`toc_${t+1}`;e.id=n,i.push(n)}));const r=document.querySelector(".toc-nav"),c=document.createElement("ul");i.forEach((e=>{const t=document.createElement("li"),n=document.createElement("a");n.href=`#${e}`,n.textContent=document.querySelector(`#${e}`).textContent,t.appendChild(n),c.appendChild(t)})),r.appendChild(c);const a=document.querySelector(".toc-nav"),l=document.querySelector(".contents-nav-mobile-menu"),d=document.querySelector(".toc_content_load_point");if(a&&l){const e=a.cloneNode(!0);for(;e.firstChild;)l.appendChild(e.firstChild)}if(d){const e=a.cloneNode(!0);for(;e.firstChild;)d.appendChild(e.firstChild)}let s=null,u=null,m=null,f=document.querySelector(".toc_content_load_point");const v=new IntersectionObserver((e=>{e.forEach((e=>{const t=e.target.getAttribute("id");let n;if(null!=document.querySelector(".toc-nav li a")&&e.intersectionRatio>0){u&&u.classList.remove("active"),s&&s.classList.remove("active"),m&&m.classList.remove("active");const e=document.querySelector(`.toc-nav li a[href="#${t}"]`).parentElement,n=document.querySelector(`.contents-nav-mobile-menu li a[href="#${t}"]`).parentElement;if(f){const e=document.querySelector(`.toc_content_load_point li a[href="#${t}"]`).parentElement;e.classList.add("active"),m=e}e.classList.add("active"),n.classList.add("active"),s=e,u=n}}))}));let h;t.length>0?h=document.querySelectorAll(".toc_container h2"):e.length>0&&(h=document.querySelectorAll(".single .post_type_layout_standard .entry-content h2")),h.forEach((e=>{v.observe(e)})),window.addEventListener("scroll",(function(){var e=document.querySelector(".inner-hero");if(e){var t=e.getBoundingClientRect().bottom,n=document.querySelector(".contents-nav-mobile"),o=document.querySelector(".site-header");t<0?(n.classList.add("scroll_active"),o.classList.add("scroll_active")):(n.classList.remove("scroll_active"),o.classList.remove("scroll_active"))}}));const y=undefined;document.querySelectorAll(".contents-nav-mobile-menu a, .toc-nav a").forEach((e=>{e.addEventListener("click",(t=>{t.preventDefault();const n=e.getAttribute("href"),o=document.querySelector(n);if(o){let e;o.focus(),document.querySelector(".contents-nav-mobile").classList.toggle("active");const t=undefined,n=o.getBoundingClientRect().top+window.pageYOffset-100;window.scrollTo({top:n,behavior:"smooth"})}}))}));const b=document.querySelector(".contents-nav-mobile-header-dropdown-select"),g=document.querySelector(".contents-nav-mobile");b.addEventListener("click",(()=>{g.classList.toggle("active")}))}})),document.addEventListener("DOMContentLoaded",(function(){const e=document.querySelectorAll(".vendor_information_block_container_column_two_link_more_info");e.length>0&&e.forEach((e=>{e.addEventListener("click",(e=>{const t=e.target.getAttribute("aria-controls"),n=document.getElementById(t);if(n){e.target.classList.toggle("active_btn"),n.toggleAttribute("hidden");const t="true"===e.target.getAttribute("aria-expanded");e.target.setAttribute("aria-expanded",!t),e.target.innerHTML=t?'More Information ':'Less Information'}}))}));const t=undefined;document.querySelectorAll(".tablet_chevron").length>0&&document.querySelector(".tablet_chevron").addEventListener("click",(function(){var e=document.querySelector(".tabbed-content__nav-list"),t=e.querySelectorAll(".tabbed-content__nav-item"),n=e.querySelector(".active"),o,i=t[Array.from(t).indexOf(n)+1]||t[0];i&&(i.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"}),n.classList.remove("active"),i.classList.add("active"))}))})),document.addEventListener("DOMContentLoaded",(function(){const e=undefined;if(document.querySelectorAll(".image-placeholder-action").length){var t=document.querySelectorAll(".image-placeholder-action"),n=document.querySelectorAll(".image-placeholder"),o=document.querySelectorAll(".image-object");function i(e){o.forEach((function(e){e.classList.remove("image-hold")})),n.forEach((function(e){e.classList.remove("image-hold")}));var t=e.closest(".slide-container"),i=t.querySelector(".image-placeholder"),r=t.querySelector("video"),c=t.querySelector(".image-object");document.querySelectorAll(".slide-container").forEach((function(e){e.classList.remove("image-hold")})),document.querySelectorAll(".slide-container video").forEach((function(n){n!==e.closest(".slide-container").querySelector("video")&&(n.pause(),n.controls=!1,i.classList.remove("image-hold"),t.classList.remove("image-hold"))})),r.paused&&(i.classList.add("image-hold"),c.classList.add("image-hold"),t.classList.add("image-hold"),r.controls=!0),r.addEventListener("ended",(function(){document.querySelectorAll(".slide-container video").forEach((function(e){e!==r&&(e.pause(),e.controls=!1,i.classList.remove("image-hold"),i.classList.remove("image-hold"),c.classList.remove("image-hold"),t.classList.remove("image-hold"))}))})),r.paused?r.play():r.pause()}t.forEach((function(e){e.addEventListener("click",(function(){i(e)}))})),document.getElementById("video-placeholder").play(),jQuery(".video-placeholder").on("click",(function(){var e=jQuery("#video-placeholder").get(0);e.paused?(e.play(),jQuery(this).hide()):(e.pause(),jQuery(this).show())}));var r=document.getElementById("video-placeholder"),c=document.querySelector(".video_block_template_container_media_placeholder_action_btn"),a=document.querySelector(".video_block_template_container_media_placeholder_action_btn .text");c.addEventListener("click",(function(){r.paused?(r.play(),c.ariaPressed=!1,a.textContent="Pause Video"):(r.pause(),c.ariaPressed=!0,a.textContent="Play Video")}))}})),document.addEventListener("DOMContentLoaded",(function(){const e=undefined;if(document.querySelectorAll(".pricing_calculator_template").length){class i{constructor(e){this.rootEl=e,this.buttonEl=this.rootEl.querySelector("button[aria-expanded]");const t=this.buttonEl.getAttribute("aria-controls");this.contentEl=document.getElementById(t),this.open="true"===this.buttonEl.getAttribute("aria-expanded"),this.buttonEl.addEventListener("click",this.onButtonClick.bind(this))}onButtonClick(){this.toggle(!this.open)}toggle(e){e!==this.open&&(this.open=e,this.buttonEl.setAttribute("aria-expanded",`${e}`),e?this.contentEl.removeAttribute("hidden"):this.contentEl.setAttribute("hidden",""))}open(){this.toggle(!0)}close(){this.toggle(!1)}}const r=undefined;function t(e){var t=parseInt(e.data("price"),10),o=parseInt(e.data("enrollment"),10),i=e.data("benefits"),r=e.data("disclaimer"),c=e.data("unique-id"),a=jQuery(".large_set .price"),l=jQuery(".info_set_number"),d=jQuery(".pricing_calculator_template_container_main_info_ul ul"),s=jQuery(".pricing_calculator_template_container_main_pricing_disclaimer"),u=parseInt(a.text(),10),m=parseInt(l.text(),10);a.text(u+t),l.text(m+o),d.append(i),s.append(''+r+""),n()}function n(){function e(t){let n="";return t.childNodes.forEach((function(t){t.nodeType===Node.TEXT_NODE?n+=t.textContent.trim()+" ":t.nodeType===Node.ELEMENT_NODE&&(n+=e(t))})),n}var t,n=e(document.querySelector(".pricing_calculator_template_container_main")).trim(),o=document.getElementById("aria-read");o?o.textContent=n:console.log('Element with ID "aria-read" not found.')}function o(e){var t=parseInt(e.data("price"),10),o=parseInt(e.data("enrollment"),10),i=e.data("benefits"),r=e.data("disclaimer"),c=e.data("unique-id"),a=jQuery(".large_set .price"),l=jQuery(".info_set_number"),d=jQuery(".pricing_calculator_template_container_main_info_ul ul"),s=jQuery(".pricing_calculator_template_container_main_pricing_disclaimer"),u=parseInt(a.text(),10),m=parseInt(l.text(),10);a.text(u-t),l.text(m-o),d.find('[data-unique-id="'+c+'"]').remove(),s.find('[data-unique-id="'+c+'"]').remove(),n()}document.querySelectorAll(".pricing_calculator_accordion .pricing_calculator_accordion_item_title").forEach((e=>{new i(e)})),jQuery(".action, .pricing_calculator_accordion_add").on("click",(function(){var e=jQuery(this),n=e.data("added"),i=e.closest(".pricing_calculator_accordion_item");n?(e.closest(".pricing_calculator_accordion_item").find(".pricing_calculator_accordion_add,.action.btn").data("added",!1).attr("data-added","false"),e.closest(".pricing_calculator_accordion_item").find(".pricing_calculator_accordion_add,.action.btn").attr("aria-pressed","false"),jQuery(i).removeClass("pricing_calculator_accordion_add_active"),o(e),e.closest(".pricing_calculator_accordion_item").find(".action").text("Add Service")):(e.closest(".pricing_calculator_accordion_item").find(".pricing_calculator_accordion_add,.action.btn").data("added",!0).attr("data-added","true"),e.closest(".pricing_calculator_accordion_item").find(".pricing_calculator_accordion_add,.action.btn").attr("aria-pressed","true"),t(e),jQuery(i).addClass("pricing_calculator_accordion_add_active"),e.closest(".pricing_calculator_accordion_item").find(".action").text("Remove Service"))}))}})); \ No newline at end of file diff --git a/assets/js/src/global.js b/assets/js/src/global.js index eaa09e8..57430c4 100644 --- a/assets/js/src/global.js +++ b/assets/js/src/global.js @@ -1162,220 +1162,6 @@ document.addEventListener('DOMContentLoaded', function () { }); -document.addEventListener('DOMContentLoaded', function () { - - const videoCarouselElement = document.querySelectorAll('.video-carousel-swiper-container'); - if (videoCarouselElement.length) { - - var videoCarousel = new Swiper('.video-carousel-swiper-container', { - // Optional parameters - loop: true, - spaceBetween: 21, // Adjust the space between slides as needed. - loopedSlides: 4, - slidesPerView: 6, - slidesPerGroup:3, - centeredSlides: false, - initialSlide: 3, - watchSlidesProgress: true, - loopFillGroupWithBlank: true, - speed:800, - a11y: true, - keyboard: { - enabled: true, - onlyInViewport: true, - }, - // Navigation arrows - navigation: { - nextEl: '.swiper-button-next', - prevEl: '.swiper-button-prev', - }, - - // Responsive breakpoints - breakpoints: { - 1: { - slidesPerView: 3, - slidesPerGroup:1, - }, - 768: { - slidesPerView: 4, - }, - 1400: { - slidesPerView: 6, - } - }, - - - on: { - // Remove the class from all slides on initialization - init: function () { - this.slides.forEach(slide => { - slide.classList.remove('keyboard-focused'); - }); - }, - // Update the class on slides when the active slide changes - slideChange: function () { - this.slides.forEach(slide => { - slide.classList.remove('keyboard-focused'); - }); - - const activeSlide = this.slides[this.activeIndex]; - if (activeSlide) { - activeSlide.classList.add('keyboard-focused'); - } - }, - transitionStart: function () { - - var videos = document.querySelectorAll('video'); - - Array.prototype.forEach.call(videos, function (video) { - video.pause(); - }); - - }, - } - }); - - function updateVisibleSlidesClass(swiper) { - // Only proceed if viewport is greater than 768 pixels - if (window.innerWidth > 1) { - // Remove the class from all slides first - swiper.slides.forEach(slide => { - slide.classList.remove('first-visible-slide', 'last-visible-slide'); - }); - - // Filter for visible slides - const visibleSlides = Array.from(swiper.slides).filter(slide => slide.classList.contains('swiper-slide-visible')); - - // Check if there are visible slides - if (visibleSlides.length > 0) { - // Add the class to the first and last visible slides - visibleSlides[0].classList.add('first-visible-slide'); - visibleSlides[visibleSlides.length - 1].classList.add('last-visible-slide'); - } - } else { - // Optionally, ensure classes are removed when viewport is less than or equal to 768 pixels - swiper.slides.forEach(slide => { - slide.classList.remove('first-visible-slide', 'last-visible-slide'); - }); - } - } - - // Function to handle resize event with debounce to improve performance - let resizeTimer; - function onResize() { - clearTimeout(resizeTimer); - resizeTimer = setTimeout(function () { - updateVisibleSlidesClass(videoCarousel); - }, 250); // Adjust debounce time as needed - } - - // Add event listeners for Swiper events - videoCarousel.on('init slideChange update', function () { - updateVisibleSlidesClass(this); - }); - - // Listen to resize events - window.addEventListener('resize', onResize); - - // Trigger the update function initially in case the Swiper is already initialized - updateVisibleSlidesClass(videoCarousel); - - let isKeyboardNavigation = false; - - // Function to handle keyboard navigation including Arrow keys, Tab, and Shift+Tab - function handleKeyboardNavigation(event) { - const key = event.key; - let isTabPressed = key === 'Tab'; - let isShiftPressed = event.shiftKey; - - // Check for navigation keys - if (key === 'ArrowLeft' || key === 'ArrowRight' || isTabPressed && !isShiftPressed || isTabPressed && isShiftPressed) { - isKeyboardNavigation = true; - setTimeout(() => { - if (isKeyboardNavigation) { - videoCarousel.slides.forEach(slide => slide.classList.add('keyboard-focused')); - isKeyboardNavigation = true; - } else { - videoCarousel.slides.forEach(slide => slide.classList.remove('keyboard-focused')); - } - }, 50); // Adjust delay as necessary - } - } - - // Add a global listener for keyboard events - document.addEventListener('keydown', handleKeyboardNavigation); - - function clearKeyboardFocus() { - videoCarousel.slides.forEach(slide => { - slide.classList.remove('keyboard-focused'); - }); - videoCarouselElement[0].classList.remove('keyboard-focused'); - isKeyboardNavigation = false; // Reset the flag when the mouse is used - } - - document.addEventListener('click', function (event) { - // Check if the clicked element is a Swiper pagination bullet - if (event.target.classList.contains('swiper-button-next')) { - clearKeyboardFocus(); - } - if (event.target.classList.contains('swiper-button-prev')) { - clearKeyboardFocus(); - } - }); - - setTimeout(() => { - clearKeyboardFocus() - }, 200); - - - window.addEventListener('resize', function () { - setTimeout(() => { - clearKeyboardFocus() - }, 200); - }); - - - - // Assuming 'video-carousel-swiper-container' is the class of your Swiper container - const swiperContainer = document.querySelector('.video-carousel-swiper-container'); - - if (!swiperContainer) { - console.warn('Swiper container not found.'); - return; - } - - // This function checks if the focused element is what we're interested in - function isTargetElement(element) { - // Check if the element is an .image-placeholder-action or a video tag - return element.classList.contains('image-placeholder-action') || element.tagName === 'VIDEO' || element.classList.contains('btn') ; - } - - // Adds a class to the swiper container when a target element within any slide gains focus - function handleFocusIn(event) { - const focusedElement = event.target; - - if (isTargetElement(focusedElement)) { - swiperContainer.classList.add('container-focused-class'); // Replace 'container-focused-class' with your desired class - } - } - - // Removes the class from the swiper container when focus moves away from a target element within any slide - function handleFocusOut(event) { - const blurredElement = event.target; - - if (isTargetElement(blurredElement)) { - swiperContainer.classList.remove('container-focused-class'); // Ensure this matches the class added in handleFocusIn - } - } - - // Add event listeners for focusin and focusout within the swiper container - swiperContainer.addEventListener('focusin', handleFocusIn); - swiperContainer.addEventListener('focusout', handleFocusOut); - - - } - -}); document.addEventListener('DOMContentLoaded', function () { @@ -1584,7 +1370,7 @@ document.addEventListener('DOMContentLoaded', function () { // Function to recursively grab text content from nodes function getTextWithSpacing(node) { let text = ''; - node.childNodes.forEach(function(child) { + node.childNodes.forEach(function (child) { if (child.nodeType === Node.TEXT_NODE) { // For text nodes, trim and add space to avoid extra whitespace issues text += child.textContent.trim() + ' '; diff --git a/assets/js/video-carousel-min.js b/assets/js/video-carousel-min.js new file mode 100644 index 0000000..be7739d --- /dev/null +++ b/assets/js/video-carousel-min.js @@ -0,0 +1,5 @@ +var Swiper=function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}function s(){const e="undefined"!=typeof document?document:{};return t(e,U),e}function a(){const e="undefined"!=typeof window?window:{};return t(e,K),e}function i(e){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}function r(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function n(){return Date.now()}function l(e,t){void 0===t&&(t="x");const s=a();let i,r,n;const l=function(e){const t=a();let s;return t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentStyle),s||(s=e.style),s}(e);return s.WebKitCSSMatrix?(r=l.transform||l.webkitTransform,r.split(",").length>6&&(r=r.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===r?"":r)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),i=n.toString().split(",")),"x"===t&&(r=s.WebKitCSSMatrix?n.m41:16===i.length?parseFloat(i[12]):parseFloat(i[4])),"y"===t&&(r=s.WebKitCSSMatrix?n.m42:16===i.length?parseFloat(i[13]):parseFloat(i[5])),r||0}function o(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function d(e){const t=Object(arguments.length<=0?void 0:e),s=["__proto__","constructor","prototype"];for(let e=1;es.indexOf(e)<0));for(let s=0,a=e.length;sn?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),a=.5-Math.cos(e*Math.PI)/2;let c=n+a*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[i]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[i]:c})})),void r.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=r.requestAnimationFrame(u)};u()}function u(e){return e.querySelector(".swiper-slide-transform")||e.shadowRoot&&e.shadowRoot.querySelector(".swiper-slide-transform")||e}function m(e,t){return void 0===t&&(t=""),[...e.children].filter((e=>e.matches(t)))}function h(e){try{return void console.warn(e)}catch(e){}}function f(e,t){void 0===t&&(t=[]);const s=document.createElement(e);return s.classList.add(...Array.isArray(t)?t:i(t)),s}function g(e){const t=a(),i=s(),r=e.getBoundingClientRect(),n=i.body,l=e.clientTop||n.clientTop||0,o=e.clientLeft||n.clientLeft||0,d=e===t?t.scrollY:e.scrollTop,c=e===t?t.scrollX:e.scrollLeft;return{top:r.top+d-l,left:r.left+c-o}}function v(e,t){return a().getComputedStyle(e,null).getPropertyValue(t)}function w(e){let t,s=e;if(s){for(t=0;null!==(s=s.previousSibling);)1===s.nodeType&&(t+=1);return t}}function b(e,t){const s=[];let a=e.parentElement;for(;a;)t?a.matches(t)&&s.push(a):s.push(a),a=a.parentElement;return s}function y(e,t){t&&e.addEventListener("transitionend",(function s(a){a.target===e&&(t.call(e,a),e.removeEventListener("transitionend",s))}))}function E(e,t,s){const i=a();return s?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(i.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(i.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}function x(e){return(Array.isArray(e)?e:[e]).filter((e=>!!e))}function S(){return Z||(Z=function(){const e=a(),t=s();return{smoothScroll:t.documentElement&&t.documentElement.style&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch)}}()),Z}function T(e){return void 0===e&&(e={}),Q||(Q=function(e){let{userAgent:t}=void 0===e?{}:e;const s=S(),i=a(),r=i.navigator.platform,n=t||i.navigator.userAgent,l={ios:!1,android:!1},o=i.screen.width,d=i.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),m=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===r;let f="MacIntel"===r;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!h&&(l.os="android",l.android=!0),(p||m||u)&&(l.os="ios",l.ios=!0),l}(e)),Q}function M(){return J||(J=function(){function e(){const e=t.navigator.userAgent.toLowerCase();return e.indexOf("safari")>=0&&e.indexOf("chrome")<0&&e.indexOf("android")<0}const t=a(),s=T();let i=!1;if(e()){const e=String(t.navigator.userAgent);if(e.includes("Version/")){const[t,s]=e.split("Version/")[1].split(" ")[0].split(".").map((e=>Number(e)));i=t<16||16===t&&s<2}}const r=/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(t.navigator.userAgent),n=e();return{isSafari:i||n,needPerspectiveFix:i,need3dFix:n||r&&s.ios,isWebView:r}}()),J}function C(e){let{swiper:t,runCallbacks:s,direction:a,step:i}=e;const{activeIndex:r,previousIndex:n}=t;let l=a;if(l||(l=r>n?"next":r=i.innerWidth-l)||"prevent"===n&&(t.preventDefault(),!0)}function P(e){const t=this,i=s();let r=e;r.originalEvent&&(r=r.originalEvent);const l=t.touchEventsData;if("pointerdown"===r.type){if(null!==l.pointerId&&l.pointerId!==r.pointerId)return;l.pointerId=r.pointerId}else"touchstart"===r.type&&1===r.targetTouches.length&&(l.touchId=r.targetTouches[0].identifier);if("touchstart"===r.type)return void L(t,r,r.targetTouches[0].pageX);const{params:o,touches:d,enabled:c}=t;if(!c)return;if(!o.simulateTouch&&"mouse"===r.pointerType)return;if(t.animating&&o.preventInteractionOnTransition)return;!t.animating&&o.cssMode&&o.loop&&t.loopFix();let p=r.target;if("wrapper"===o.touchEventsTarget&&!t.wrapperEl.contains(p))return;if("which"in r&&3===r.which)return;if("button"in r&&r.button>0)return;if(l.isTouched&&l.isMoved)return;const u=!!o.noSwipingClass&&""!==o.noSwipingClass,m=r.composedPath?r.composedPath():r.path;u&&r.target&&r.target.shadowRoot&&m&&(p=m[0]);const h=o.noSwipingSelector?o.noSwipingSelector:`.${o.noSwipingClass}`,f=!(!r.target||!r.target.shadowRoot);if(o.noSwiping&&(f?function(e,t){return void 0===t&&(t=this),function t(i){if(!i||i===s()||i===a())return null;i.assignedSlot&&(i=i.assignedSlot);const r=i.closest(e);return r||i.getRootNode?r||t(i.getRootNode().host):null}(t)}(h,p):p.closest(h)))return void(t.allowClick=!0);if(o.swipeHandler&&!p.closest(o.swipeHandler))return;d.currentX=r.pageX,d.currentY=r.pageY;const g=d.currentX,v=d.currentY;if(!L(t,r,g))return;Object.assign(l,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),d.startX=g,d.startY=v,l.touchStartTime=n(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,o.threshold>0&&(l.allowThresholdMove=!1);let w=!0;p.matches(l.focusableElements)&&(w=!1,"SELECT"===p.nodeName&&(l.isTouched=!1)),i.activeElement&&i.activeElement.matches(l.focusableElements)&&i.activeElement!==p&&i.activeElement.blur();const b=w&&t.allowTouchMove&&o.touchStartPreventDefault;!o.touchStartForcePreventDefault&&!b||p.isContentEditable||r.preventDefault(),o.freeMode&&o.freeMode.enabled&&t.freeMode&&t.animating&&!o.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",r)}function I(e){const t=s(),a=this,i=a.touchEventsData,{params:r,touches:l,rtlTranslate:o,enabled:d}=a;if(!d)return;if(!r.simulateTouch&&"mouse"===e.pointerType)return;let c,p=e;if(p.originalEvent&&(p=p.originalEvent),"pointermove"===p.type){if(null!==i.touchId)return;if(p.pointerId!==i.pointerId)return}if("touchmove"===p.type){if(c=[...p.changedTouches].filter((e=>e.identifier===i.touchId))[0],!c||c.identifier!==i.touchId)return}else c=p;if(!i.isTouched)return void(i.startMoving&&i.isScrolling&&a.emit("touchMoveOpposite",p));const u=c.pageX,m=c.pageY;if(p.preventedByNestedSwiper)return l.startX=u,void(l.startY=m);if(!a.allowTouchMove)return p.target.matches(i.focusableElements)||(a.allowClick=!1),void(i.isTouched&&(Object.assign(l,{startX:u,startY:m,currentX:u,currentY:m}),i.touchStartTime=n()));if(r.touchReleaseOnEdges&&!r.loop)if(a.isVertical()){if(ml.startY&&a.translate>=a.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(ul.startX&&a.translate>=a.minTranslate())return;if(t.activeElement&&p.target===t.activeElement&&p.target.matches(i.focusableElements))return i.isMoved=!0,void(a.allowClick=!1);i.allowTouchCallbacks&&a.emit("touchMove",p),l.previousX=l.currentX,l.previousY=l.currentY,l.currentX=u,l.currentY=m;const h=l.currentX-l.startX,f=l.currentY-l.startY;if(a.params.threshold&&Math.sqrt(h**2+f**2)=25&&(e=180*Math.atan2(Math.abs(f),Math.abs(h))/Math.PI,i.isScrolling=a.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&a.emit("touchMoveOpposite",p),void 0===i.startMoving&&(l.currentX===l.startX&&l.currentY===l.startY||(i.startMoving=!0)),i.isScrolling||"touchmove"===p.type&&i.preventTouchMoveFromPointerMove)return void(i.isTouched=!1);if(!i.startMoving)return;a.allowClick=!1,!r.cssMode&&p.cancelable&&p.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&p.stopPropagation();let g=a.isHorizontal()?h:f,v=a.isHorizontal()?l.currentX-l.previousX:l.currentY-l.previousY;r.oneWayMovement&&(g=Math.abs(g)*(o?1:-1),v=Math.abs(v)*(o?1:-1)),l.diff=g,g*=r.touchRatio,o&&(g=-g,v=-v);const w=a.touchesDirection;a.swipeDirection=g>0?"prev":"next",a.touchesDirection=v>0?"prev":"next";const b=a.params.loop&&!r.cssMode,y="next"===a.touchesDirection&&a.allowSlideNext||"prev"===a.touchesDirection&&a.allowSlidePrev;if(!i.isMoved){if(b&&y&&a.loopFix({direction:a.swipeDirection}),i.startTranslate=a.getTranslate(),a.setTransition(0),a.animating){const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});a.wrapperEl.dispatchEvent(e)}i.allowMomentumBounce=!1,!r.grabCursor||!0!==a.allowSlideNext&&!0!==a.allowSlidePrev||a.setGrabCursor(!0),a.emit("sliderFirstMove",p)}if((new Date).getTime(),i.isMoved&&i.allowThresholdMove&&w!==a.touchesDirection&&b&&y&&Math.abs(g)>=1)return Object.assign(l,{startX:u,startY:m,currentX:u,currentY:m,startTranslate:i.currentTranslate}),i.loopSwapReset=!0,void(i.startTranslate=i.currentTranslate);a.emit("sliderMove",p),i.isMoved=!0,i.currentTranslate=g+i.startTranslate;let E=!0,x=r.resistanceRatio;if(r.touchReleaseOnEdges&&(x=0),g>0?(b&&y&&i.allowThresholdMove&&i.currentTranslate>(r.centeredSlides?a.minTranslate()-a.slidesSizesGrid[a.activeIndex+1]:a.minTranslate())&&a.loopFix({direction:"prev",setTranslate:!0,activeSlideIndex:0}),i.currentTranslate>a.minTranslate()&&(E=!1,r.resistance&&(i.currentTranslate=a.minTranslate()-1+(-a.minTranslate()+i.startTranslate+g)**x))):g<0&&(b&&y&&i.allowThresholdMove&&i.currentTranslate<(r.centeredSlides?a.maxTranslate()+a.slidesSizesGrid[a.slidesSizesGrid.length-1]:a.maxTranslate())&&a.loopFix({direction:"next",setTranslate:!0,activeSlideIndex:a.slides.length-("auto"===r.slidesPerView?a.slidesPerViewDynamic():Math.ceil(parseFloat(r.slidesPerView,10)))}),i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),a.allowSlidePrev||a.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(g)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,l.startX=l.currentX,l.startY=l.currentY,i.currentTranslate=i.startTranslate,void(l.diff=a.isHorizontal()?l.currentX-l.startX:l.currentY-l.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&a.freeMode||r.watchSlidesProgress)&&(a.updateActiveIndex(),a.updateSlidesClasses()),r.freeMode&&r.freeMode.enabled&&a.freeMode&&a.freeMode.onTouchMove(),a.updateProgress(i.currentTranslate),a.setTranslate(i.currentTranslate))}function A(e){const t=this,s=t.touchEventsData;let a,i=e;if(i.originalEvent&&(i=i.originalEvent),"touchend"===i.type||"touchcancel"===i.type){if(a=[...i.changedTouches].filter((e=>e.identifier===s.touchId))[0],!a||a.identifier!==s.touchId)return}else{if(null!==s.touchId)return;if(i.pointerId!==s.pointerId)return;a=i}if(["pointercancel","pointerout","pointerleave","contextmenu"].includes(i.type)&&(!["pointercancel","contextmenu"].includes(i.type)||!t.browser.isSafari&&!t.browser.isWebView))return;s.pointerId=null,s.touchId=null;const{params:l,touches:o,rtlTranslate:d,slidesGrid:c,enabled:p}=t;if(!p)return;if(!l.simulateTouch&&"mouse"===i.pointerType)return;if(s.allowTouchCallbacks&&t.emit("touchEnd",i),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&l.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);l.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const u=n(),m=u-s.touchStartTime;if(t.allowClick){const e=i.path||i.composedPath&&i.composedPath();t.updateClickedSlide(e&&e[0]||i.target,e),t.emit("tap click",i),m<300&&u-s.lastClickTime<300&&t.emit("doubleTap doubleClick",i)}if(s.lastClickTime=n(),r((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===o.diff&&!s.loopSwapReset||s.currentTranslate===s.startTranslate&&!s.loopSwapReset)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=l.followFinger?d?t.translate:-t.translate:-s.currentTranslate,l.cssMode)return;if(l.freeMode&&l.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});const f=h>=-t.maxTranslate()&&!t.params.loop;let g=0,v=t.slidesSizesGrid[0];for(let e=0;e=c[e]&&h=c[e])&&(g=e,v=c[c.length-1]-c[c.length-2])}let w=null,b=null;l.rewind&&(t.isBeginning?b=l.virtual&&l.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(w=0));const y=(h-c[g])/v,E=gl.longSwipesMs){if(!l.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(y>=l.longSwipesRatio?t.slideTo(l.rewind&&t.isEnd?w:g+E):t.slideTo(g)),"prev"===t.swipeDirection&&(y>1-l.longSwipesRatio?t.slideTo(g+E):null!==b&&y<0&&Math.abs(y)>l.longSwipesRatio?t.slideTo(b):t.slideTo(g))}else{if(!l.shortSwipes)return void t.slideTo(t.activeIndex);!t.navigation||i.target!==t.navigation.nextEl&&i.target!==t.navigation.prevEl?("next"===t.swipeDirection&&t.slideTo(null!==w?w:g+E),"prev"===t.swipeDirection&&t.slideTo(null!==b?b:g)):i.target===t.navigation.nextEl?t.slideTo(g+E):t.slideTo(g)}}function z(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e,n=e.virtual&&e.params.virtual.enabled;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses();const l=n&&t.loop;!("auto"===t.slidesPerView||t.slidesPerView>1)||!e.isEnd||e.isBeginning||e.params.centeredSlides||l?e.params.loop&&!n?e.slideToLoop(e.realIndex,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0):e.slideTo(e.slides.length-1,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&(clearTimeout(e.autoplay.resizeTimeout),e.autoplay.resizeTimeout=setTimeout((()=>{e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.resume()}),500)),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function k(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function O(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}function D(e){const t=this;te(t,e.target),t.params.cssMode||"auto"!==t.params.slidesPerView&&!t.params.autoHeight||t.update()}function G(){const e=this;e.documentTouchHandlerProceeded||(e.documentTouchHandlerProceeded=!0,e.params.touchReleaseOnEdges&&(e.el.style.touchAction="auto"))}function N(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(!0===e[a]&&(e[a]={enabled:!0}),"navigation"===a&&e[a]&&e[a].enabled&&!e[a].prevEl&&!e[a].nextEl&&(e[a].auto=!0),["pagination","scrollbar"].indexOf(a)>=0&&e[a]&&e[a].enabled&&!e[a].el&&(e[a].auto=!0),a in e&&"enabled"in i?("object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),d(t,s)):d(t,s)):d(t,s)}}function H(e,t,s,a){return e.params.createElements&&Object.keys(a).forEach((i=>{if(!s[i]&&!0===s.auto){let r=m(e.el,`.${a[i]}`)[0];r||(r=f("div",a[i]),r.className=a[i],e.el.append(r)),s[i]=r,t[i]=r}})),s}function X(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!+\/])/g,"\\$1").replace(/ /g,".")}`}function B(e){const t=this,{params:s,slidesEl:a}=t;s.loop&&t.loopDestroy();const i=e=>{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,a.append(t.children[0]),t.innerHTML=""}else a.append(e)};if("object"==typeof e&&"length"in e)for(let t=0;t{if("string"==typeof e){const t=document.createElement("div");t.innerHTML=e,i.prepend(t.children[0]),t.innerHTML=""}else i.prepend(e)};if("object"==typeof e&&"length"in e){for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides[t];e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else r.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.forEach((e=>{e.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((e=>e.remove()))})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function _(e,t){const s=u(t);return s!==t&&(s.style.backfaceVisibility="hidden",s.style["-webkit-backface-visibility"]="hidden"),s}function W(e){let{swiper:t,duration:s,transformElements:a,allSlides:i}=e;const{activeIndex:r}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a:a.filter((e=>{const s=e.classList.contains("swiper-slide-transform")?(e=>e.parentElement?e.parentElement:t.slides.filter((t=>t.shadowRoot&&t.shadowRoot===e.parentNode))[0])(e):e;return t.getSlideIndex(s)===r})),e.forEach((e=>{y(e,(()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=new window.CustomEvent("transitionend",{bubbles:!0,cancelable:!0});t.wrapperEl.dispatchEvent(e)}))}))}}function j(e,t,s){const a=`swiper-slide-shadow${s?`-${s}`:""}${e?` swiper-slide-shadow-${e}`:""}`,i=u(t);let r=i.querySelector(`.${a.split(" ").join(".")}`);return r||(r=f("div",a.split(" ")),i.append(r)),r}const U={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}},K={document:U,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};let Z,Q,J;var ee={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){function a(){i.off(e,a),a.__emitterProxy&&delete a.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};const $=(e,t,s)=>{t&&!e.classList.contains(s)?e.classList.add(s):!t&&e.classList.contains(s)&&e.classList.remove(s)},te=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){let t=s.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(s.shadowRoot?t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame((()=>{s.shadowRoot&&(t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&t.remove())}))),t&&t.remove()}},se=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},ae=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const s=e.slides.length;if(!s||!t||t<0)return;t=Math.min(t,s);const a="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),i=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=i,r=[s-t];return r.push(...Array.from({length:t}).map(((e,t)=>s+a+t))),void e.slides.forEach(((t,s)=>{r.includes(t.column)&&se(e,s)}))}const r=i+a-1;if(e.params.rewind||e.params.loop)for(let a=i-t;a<=r+t;a+=1){const t=(a%s+s)%s;(tr)&&se(e,t)}else for(let a=Math.max(i-t,0);a<=Math.min(r+t,s-1);a+=1)a!==i&&(a>r||a=0?S=parseFloat(S.replace("%",""))/100*r:"string"==typeof S&&(S=parseFloat(S)),t.virtualSize=-S,p.forEach((e=>{n?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(c(a,"--swiper-centered-offset-before",""),c(a,"--swiper-centered-offset-after",""));const L=s.grid&&s.grid.rows>1&&t.grid;let P;L?t.grid.initSlides(p):t.grid&&t.grid.unsetSlides();const I="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let a=0;a1&&h.push(t.virtualSize-r)}if(o&&s.loop){const e=g[0]+S;if(s.slidesPerGroup>1){const a=Math.ceil((t.virtual.slidesBefore+t.virtual.slidesAfter)/s.slidesPerGroup),i=e*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==p.length-1)).forEach((t=>{t.style[e]=`${S}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;g.forEach((t=>{e+=t+(S||0)})),e-=S;const t=e-r;h=h.map((e=>e<=0?-w:e>t?t+b:e))}if(s.centerInsufficientSlides){let e=0;if(g.forEach((t=>{e+=t+(S||0)})),e-=S,e{h[s]=e-t})),f.forEach(((e,s)=>{f[s]=e+t}))}}if(Object.assign(t,{slides:p,snapGrid:h,slidesGrid:f,slidesSizesGrid:g}),s.centeredSlides&&s.cssMode&&!s.centeredSlidesBounds){c(a,"--swiper-centered-offset-before",-h[0]+"px"),c(a,"--swiper-centered-offset-after",t.size/2-g[g.length-1]/2+"px");const e=-t.snapGrid[0],s=-t.slidesGrid[0];t.snapGrid=t.snapGrid.map((t=>t+e)),t.slidesGrid=t.slidesGrid.map((e=>e+s))}if(u!==d&&t.emit("slidesLengthChange"),h.length!==y&&(t.params.watchOverflow&&t.checkOverflow(),t.emit("snapGridLengthChange")),f.length!==x&&t.emit("slidesGridLengthChange"),s.watchSlidesProgress&&t.updateSlidesOffset(),t.emit("slidesUpdated"),!(o||s.cssMode||"slide"!==s.effect&&"fade"!==s.effect)){const e=`${s.containerModifierClass}backface-hidden`,a=t.el.classList.contains(e);u<=s.maxBackfaceHiddenSlides?a||t.el.classList.add(e):a&&t.el.classList.remove(e)}},updateAutoHeight:function(e){ +const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides[t.getSlideIndexByData(e)]:t.slides[e];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||[]).forEach((e=>{s.push(e)}));else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&(t.wrapperEl.style.height=`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides,s=e.isElement?e.isHorizontal()?e.wrapperEl.offsetLeft:e.wrapperEl.offsetTop:0;for(let a=0;a{e.classList.remove(s.slideVisibleClass,s.slideFullyVisibleClass)})),t.visibleSlidesIndexes=[],t.visibleSlides=[];let l=s.spaceBetween;"string"==typeof l&&l.indexOf("%")>=0?l=parseFloat(l.replace("%",""))/100*t.size:"string"==typeof l&&(l=parseFloat(l));for(let e=0;e=0&&u<=t.size-t.slidesSizesGrid[e];(u>=0&&u1&&m<=t.size||u<=0&&m>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(e),a[e].classList.add(s.slideVisibleClass)),h&&a[e].classList.add(s.slideFullyVisibleClass),o.progress=i?-c:c,o.originalProgress=i?-p:p}},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n,progressLoop:l}=t;const o=r,d=n;if(0===a)i=0,r=!0,n=!0;else{i=(e-t.minTranslate())/a;const s=Math.abs(e-t.minTranslate())<1,l=Math.abs(e-t.maxTranslate())<1;r=s||i<=0,n=l||i>=1,s&&(i=0),l&&(i=1)}if(s.loop){const s=t.getSlideIndexByData(0),a=t.getSlideIndexByData(t.slides.length-1),i=t.slidesGrid[s],r=t.slidesGrid[a],n=t.slidesGrid[t.slidesGrid.length-1],o=Math.abs(e);l=o>=i?(o-i)/n:(o+n-r)/n,l>1&&(l-=1)}Object.assign(t,{progress:i,progressLoop:l,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!o&&t.emit("reachBeginning toEdge"),n&&!d&&t.emit("reachEnd toEdge"),(o&&!r||d&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,slidesEl:a,activeIndex:i}=e,r=e.virtual&&s.virtual.enabled,n=e.grid&&s.grid&&s.grid.rows>1,l=e=>m(a,`.${s.slideClass}${e}, swiper-slide${e}`)[0];let o,d,c;if(r)if(s.loop){let t=i-e.virtual.slidesBefore;t<0&&(t=e.virtual.slides.length+t),t>=e.virtual.slides.length&&(t-=e.virtual.slides.length),o=l(`[data-swiper-slide-index="${t}"]`)}else o=l(`[data-swiper-slide-index="${i}"]`);else n?(o=t.filter((e=>e.column===i))[0],c=t.filter((e=>e.column===i+1))[0],d=t.filter((e=>e.column===i-1))[0]):o=t[i];o&&(n||(c=function(e,t){const s=[];for(;e.nextElementSibling;){const a=e.nextElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&!c&&(c=t[0]),d=function(e,t){const s=[];for(;e.previousElementSibling;){const a=e.previousElementSibling;t?a.matches(t)&&s.push(a):s.push(a),e=a}return s}(o,`.${s.slideClass}, swiper-slide`)[0],s.loop&&0===!d&&(d=t[t.length-1]))),t.forEach((e=>{$(e,e===o,s.slideActiveClass),$(e,e===c,s.slideNextClass),$(e,e===d,s.slidePrevClass)})),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{snapGrid:a,params:i,activeIndex:r,realIndex:n,snapIndex:l}=t;let o,d=e;const c=e=>{let s=e-t.virtual.slidesBefore;return s<0&&(s=t.virtual.slides.length+s),s>=t.virtual.slides.length&&(s-=t.virtual.slides.length),s};if(void 0===d&&(d=function(e){const{slidesGrid:t,params:s}=e,a=e.rtlTranslate?e.translate:-e.translate;let i;for(let e=0;e=t[e]&&a=t[e]&&a=t[e]&&(i=e);return s.normalizeSlideIndex&&(i<0||void 0===i)&&(i=0),i}(t)),a.indexOf(s)>=0)o=a.indexOf(s);else{const e=Math.min(i.slidesPerGroupSkip,d);o=e+Math.floor((d-e)/i.slidesPerGroup)}if(o>=a.length&&(o=a.length-1),d===r&&!t.params.loop)return void(o!==l&&(t.snapIndex=o,t.emit("snapIndexChange")));if(d===r&&t.params.loop&&t.virtual&&t.params.virtual.enabled)return void(t.realIndex=c(d));const p=t.grid&&i.grid&&i.grid.rows>1;let u;if(t.virtual&&i.virtual.enabled&&i.loop)u=c(d);else if(p){const e=t.slides.filter((e=>e.column===d))[0];let s=parseInt(e.getAttribute("data-swiper-slide-index"),10);Number.isNaN(s)&&(s=Math.max(t.slides.indexOf(e),0)),u=Math.floor(s/i.grid.rows)}else if(t.slides[d]){const e=t.slides[d].getAttribute("data-swiper-slide-index");u=e?parseInt(e,10):d}else u=d;Object.assign(t,{previousSnapIndex:l,snapIndex:o,previousRealIndex:n,realIndex:u,previousIndex:r,activeIndex:d}),t.initialized&&ae(t),t.emit("activeIndexChange"),t.emit("snapIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&(n!==u&&t.emit("realIndexChange"),t.emit("slideChange"))},updateClickedSlide:function(e,t){const s=this,a=s.params;let i=e.closest(`.${a.slideClass}, swiper-slide`);!i&&s.isElement&&t&&t.length>1&&t.includes(e)&&[...t.slice(t.indexOf(e)+1,t.length)].forEach((e=>{!i&&e.matches&&e.matches(`.${a.slideClass}, swiper-slide`)&&(i=e)}));let r,n=!1;if(i)for(let e=0;eo?o:a&&e=o.length&&(v=o.length-1);const w=-o[v];if(l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==u){if(!r.allowSlideNext&&(m?w>r.translate&&w>r.minTranslate():wr.translate&&w>r.maxTranslate()&&(u||0)!==n)return!1}let b;if(n!==(c||0)&&s&&r.emit("beforeSlideChangeStart"),r.updateProgress(w),b=n>u?"next":n0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1}))}else{if(!r.support.smoothScroll)return p({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){void 0===e&&(e=0),void 0===s&&(s=!0),"string"==typeof e&&(e=parseInt(e,10));const i=this;if(i.destroyed)return;void 0===t&&(t=i.params.speed);const r=i.grid&&i.params.grid&&i.params.grid.rows>1;let n=e;if(i.params.loop)if(i.virtual&&i.params.virtual.enabled)n+=i.virtual.slidesBefore;else{let e;if(r){const t=n*i.params.grid.rows;e=i.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===t))[0].column}else e=i.getSlideIndexByData(n);const t=r?Math.ceil(i.slides.length/i.params.grid.rows):i.slides.length,{centeredSlides:s}=i.params;let l=i.params.slidesPerView;"auto"===l?l=i.slidesPerViewDynamic():(l=Math.ceil(parseFloat(i.params.slidesPerView,10)),s&&l%2==0&&(l+=1));let o=t-e1*t.getAttribute("data-swiper-slide-index")===e))[0].column}else n=i.getSlideIndexByData(n)}return requestAnimationFrame((()=>{i.slideTo(n,t,s,a)})),i},slideNext:function(e,t,s){void 0===t&&(t=!0);const a=this,{enabled:i,params:r,animating:n}=a;if(!i||a.destroyed)return a;void 0===e&&(e=a.params.speed);let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndex{a.slideTo(a.activeIndex+o,e,t,s)})),!0}return r.rewind&&a.isEnd?a.slideTo(0,e,t,s):a.slideTo(a.activeIndex+o,e,t,s)},slidePrev:function(e,t,s){function a(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}void 0===t&&(t=!0);const i=this,{params:r,snapGrid:n,slidesGrid:l,rtlTranslate:o,enabled:d,animating:c}=i;if(!d||i.destroyed)return i;void 0===e&&(e=i.params.speed);const p=i.virtual&&r.virtual.enabled;if(r.loop){if(c&&!p&&r.loopPreventsSliding)return!1;i.loopFix({direction:"prev"}),i._clientLeft=i.wrapperEl.clientLeft}const u=a(o?i.translate:-i.translate),m=n.map((e=>a(e)));let h=n[m.indexOf(u)-1];if(void 0===h&&r.cssMode){let e;n.forEach(((t,s)=>{u>=t&&(e=s)})),void 0!==e&&(h=n[e>0?e-1:e])}let f=0;if(void 0!==h&&(f=l.indexOf(h),f<0&&(f=i.activeIndex-1),"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(f=f-i.slidesPerViewDynamic("previous",!0)+1,f=Math.max(f,0))),r.rewind&&i.isBeginning){const a=i.params.virtual&&i.params.virtual.enabled&&i.virtual?i.virtual.slides.length-1:i.slides.length-1;return i.slideTo(a,e,t,s)}return r.loop&&0===i.activeIndex&&r.cssMode?(requestAnimationFrame((()=>{i.slideTo(f,e,t,s)})),!0):i.slideTo(f,e,t,s)},slideReset:function(e,t,s){void 0===t&&(t=!0);const a=this;if(!a.destroyed)return void 0===e&&(e=a.params.speed),a.slideTo(a.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;if(i.destroyed)return;void 0===e&&(e=i.params.speed);let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this;if(e.destroyed)return;const{params:t,slidesEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,n=e.clickedIndex;const l=e.isElement?"swiper-slide":`.${t.slideClass}`;if(t.loop){if(e.animating)return;i=parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10),t.centeredSlides?ne.slides.length-e.loopedSlides+a/2?(e.loopFix(),n=e.getSlideIndex(m(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),r((()=>{e.slideTo(n)}))):e.slideTo(n):n>e.slides.length-a?(e.loopFix(),n=e.getSlideIndex(m(s,`${l}[data-swiper-slide-index="${i}"]`)[0]),r((()=>{e.slideTo(n)}))):e.slideTo(n)}else e.slideTo(n)}},le={loopCreate:function(e){const t=this,{params:s,slidesEl:a}=t;if(!s.loop||t.virtual&&t.params.virtual.enabled)return;const i=()=>{m(a,`.${s.slideClass}, swiper-slide`).forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t)}))},r=t.grid&&s.grid&&s.grid.rows>1,n=s.slidesPerGroup*(r?s.grid.rows:1),l=t.slides.length%n!=0,o=r&&t.slides.length%s.grid.rows!=0,d=e=>{for(let a=0;a1;d.lengthe.classList.contains(m.slideActiveClass)))[0]):x=r;const S="next"===a||!a,T="prev"===a||!a;let M=0,C=0;const L=b?Math.ceil(d.length/m.grid.rows):d.length,P=(b?d[r].column:r)+(f&&void 0===i?-g/2+.5:0);if(P=0;t-=1)d[t].column===e&&y.push(t)}else y.push(L-t-1)}}else if(P+g>L-w){C=Math.max(P-(L-2*w),v);for(let e=0;e{e.column===t&&E.push(s)})):E.push(t)}}if(o.__preventObserver__=!0,requestAnimationFrame((()=>{o.__preventObserver__=!1})),T&&y.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.prepend(d[e]),d[e].swiperLoopMoveDOM=!1})),S&&E.forEach((e=>{d[e].swiperLoopMoveDOM=!0,u.append(d[e]),d[e].swiperLoopMoveDOM=!1})),o.recalcSlides(),"auto"===m.slidesPerView?o.updateSlides():b&&(y.length>0&&T||E.length>0&&S)&&o.slides.forEach(((e,t)=>{o.grid.updateSlide(t,e,o.slides)})),m.watchSlidesProgress&&o.updateSlidesOffset(),s)if(y.length>0&&T){if(void 0===t){const e=o.slidesGrid[x],t=o.slidesGrid[x+M]-e;l?o.setTranslate(o.translate-t):(o.slideTo(x+Math.ceil(M),0,!1,!0),i&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else if(i){const e=b?y.length/m.grid.rows:y.length;o.slideTo(o.activeIndex+e,0,!1,!0),o.touchEventsData.currentTranslate=o.translate}}else if(E.length>0&&S)if(void 0===t){const e=o.slidesGrid[x],t=o.slidesGrid[x-C]-e;l?o.setTranslate(o.translate-t):(o.slideTo(x-C,0,!1,!0),i&&(o.touchEventsData.startTranslate=o.touchEventsData.startTranslate-t,o.touchEventsData.currentTranslate=o.touchEventsData.currentTranslate-t))}else{const e=b?E.length/m.grid.rows:E.length;o.slideTo(o.activeIndex-e,0,!1,!0)}if(o.allowSlidePrev=c,o.allowSlideNext=p,o.controller&&o.controller.control&&!n){const e={slideRealIndex:t,direction:a,setTranslate:i,activeSlideIndex:r,byController:!0};Array.isArray(o.controller.control)?o.controller.control.forEach((t=>{!t.destroyed&&t.params.loop&&t.loopFix({...e,slideTo:t.params.slidesPerView===m.slidesPerView&&s})})):o.controller.control instanceof o.constructor&&o.controller.control.params.loop&&o.controller.control.loopFix({...e,slideTo:o.controller.control.params.slidesPerView===m.slidesPerView&&s})}o.emit("loopFix")},loopDestroy:function(){const e=this,{params:t,slidesEl:s}=e;if(!t.loop||e.virtual&&e.params.virtual.enabled)return;e.recalcSlides();const a=[];e.slides.forEach((e=>{const t=void 0===e.swiperSlideIndex?1*e.getAttribute("data-swiper-slide-index"):e.swiperSlideIndex;a[t]=e})),e.slides.forEach((e=>{e.removeAttribute("data-swiper-slide-index")})),a.forEach((e=>{s.append(e)})),e.recalcSlides(),e.slideTo(e.realIndex,0)}};const oe=(e,t)=>{const a=s(),{params:i,el:r,wrapperEl:n,device:l}=e,o=!!i.nested,d="on"===t?"addEventListener":"removeEventListener",c=t;a[d]("touchstart",e.onDocumentTouchStart,{passive:!1,capture:o}),r[d]("touchstart",e.onTouchStart,{passive:!1}),r[d]("pointerdown",e.onTouchStart,{passive:!1}),a[d]("touchmove",e.onTouchMove,{passive:!1,capture:o}),a[d]("pointermove",e.onTouchMove,{passive:!1,capture:o}),a[d]("touchend",e.onTouchEnd,{passive:!0}),a[d]("pointerup",e.onTouchEnd,{passive:!0}),a[d]("pointercancel",e.onTouchEnd,{passive:!0}),a[d]("touchcancel",e.onTouchEnd,{passive:!0}),a[d]("pointerout",e.onTouchEnd,{passive:!0}),a[d]("pointerleave",e.onTouchEnd,{passive:!0}),a[d]("contextmenu",e.onTouchEnd,{passive:!0}),(i.preventClicks||i.preventClicksPropagation)&&r[d]("click",e.onClick,!0),i.cssMode&&n[d]("scroll",e.onScroll),i.updateOnWindowResize?e[c](l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",z,!0):e[c]("observerUpdate",z,!0),r[d]("load",e.onLoad,{capture:!0})},de=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var ce={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:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:5,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.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};const pe={eventsEmitter:ee,update:ie,translate:re,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||(s.wrapperEl.style.transitionDuration=`${e}ms`,s.wrapperEl.style.transitionDelay=0===e?"0ms":""),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),C({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),C({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:ne,loop:le,grabCursor:{setGrabCursor:function(e){const t=this;if(!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;t.isElement&&(t.__preventObserver__=!0),s.style.cursor="move",s.style.cursor=e?"grabbing":"grab",t.isElement&&requestAnimationFrame((()=>{t.__preventObserver__=!1}))},unsetGrabCursor:function(){const e=this;e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.isElement&&(e.__preventObserver__=!0),e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="",e.isElement&&requestAnimationFrame((()=>{e.__preventObserver__=!1})))}},events:{attachEvents:function(){const e=this,{params:t}=e;e.onTouchStart=P.bind(e),e.onTouchMove=I.bind(e),e.onTouchEnd=A.bind(e),e.onDocumentTouchStart=G.bind(e),t.cssMode&&(e.onScroll=O.bind(e)),e.onClick=k.bind(e),e.onLoad=D.bind(e),oe(e,"on")},detachEvents:function(){oe(this,"off")}},breakpoints:{setBreakpoint:function(){const e=this,{realIndex:t,initialized:s,params:a,el:i}=e,r=a.breakpoints;if(!r||r&&0===Object.keys(r).length)return;const n=e.getBreakpoint(r,e.params.breakpointsBase,e.el);if(!n||e.currentBreakpoint===n)return;const l=(n in r?r[n]:void 0)||e.originalParams,o=de(e,a),c=de(e,l),p=e.params.grabCursor,u=l.grabCursor,m=a.enabled;o&&!c?(i.classList.remove(`${a.containerModifierClass}grid`,`${a.containerModifierClass}grid-column`),e.emitContainerClasses()):!o&&c&&(i.classList.add(`${a.containerModifierClass}grid`),(l.grid.fill&&"column"===l.grid.fill||!l.grid.fill&&"column"===a.grid.fill)&&i.classList.add(`${a.containerModifierClass}grid-column`),e.emitContainerClasses()),p&&!u?e.unsetGrabCursor():!p&&u&&e.setGrabCursor(),["navigation","pagination","scrollbar"].forEach((t=>{if(void 0===l[t])return;const s=a[t]&&a[t].enabled,i=l[t]&&l[t].enabled;s&&!i&&e[t].disable(),!s&&i&&e[t].enable()}));const h=l.direction&&l.direction!==a.direction,f=a.loop&&(l.slidesPerView!==a.slidesPerView||h),g=a.loop;h&&s&&e.changeDirection(),d(e.params,l);const v=e.params.enabled,w=e.params.loop;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),m&&!v?e.disable():!m&&v&&e.enable(),e.currentBreakpoint=n,e.emit("_beforeBreakpoint",l),s&&(f?(e.loopDestroy(),e.loopCreate(t),e.updateSlides()):!g&&w?(e.loopCreate(t),e.updateSlides()):g&&!w&&e.loopDestroy()),e.emit("breakpoint",l)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let i=!1;const r=a(),n="window"===t?r.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:{addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,el:i,device:r}=e,n=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...n),i.classList.add(...t),e.emitContainerClasses()},removeClasses:function(){const{el:e,classNames:t}=this;e.classList.remove(...t),this.emitContainerClasses()}}},ue={};class me{constructor(){let e,t;for(var a=arguments.length,i=new Array(a),r=0;r1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const a=d({},t,{el:s});e.push(new me(a))})),e}const l=this;l.__swiper__=!0,l.support=S(),l.device=T({userAgent:t.userAgent}),l.browser=M(),l.eventsListeners={},l.eventsAnyListeners=[],l.modules=[...l.__modules__],t.modules&&Array.isArray(t.modules)&&l.modules.push(...t.modules);const o={};l.modules.forEach((e=>{e({params:t,swiper:l,extendParams:N(t,o),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const c=d({},ce,o);return l.params=d({},c,ue,t),l.originalParams=d({},l.params),l.passedParams=d({},t),l.params&&l.params.on&&Object.keys(l.params.on).forEach((e=>{l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),Object.assign(l,{enabled:l.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===l.params.direction,isVertical:()=>"vertical"===l.params.direction,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:l.params.allowSlideNext,allowSlidePrev:l.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:l.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.emit("_swiper"),l.params.init&&l.init(),l}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:t,params:s}=this,a=w(m(t,`.${s.slideClass}, swiper-slide`)[0]);return w(e)-a}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter((t=>1*t.getAttribute("data-swiper-slide-index")===e))[0])}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=m(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((s=>{ +const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if("number"==typeof s.slidesPerView)return s.slidesPerView;if(s.centeredSlides){let e,t=a[l]?Math.ceil(a[l].swiperSlideSize):0;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1)i[l]-i[e]{e.complete&&te(t,e)})),t.updateSize(),t.updateSlides(),t.updateProgress(),t.updateSlidesClasses(),a.freeMode&&a.freeMode.enabled&&!a.cssMode)e(),a.autoHeight&&t.updateAutoHeight();else{if(("auto"===a.slidesPerView||a.slidesPerView>1)&&t.isEnd&&!a.centeredSlides){const e=t.virtual&&a.virtual.enabled?t.virtual.slides:t.slides;i=t.slideTo(e.length-1,0,!1,!0)}else i=t.slideTo(t.activeIndex,0,!1,!0);i||e()}a.watchOverflow&&s!==t.snapGrid&&t.checkOverflow(),t.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.el.classList.remove(`${s.params.containerModifierClass}${a}`),s.el.classList.add(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.forEach((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.el.classList.add(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.el.classList.remove(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;let s=e||t.params.el;if("string"==typeof s&&(s=document.querySelector(s)),!s)return!1;s.swiper=t,s.parentNode&&s.parentNode.host&&s.parentNode.host.nodeName===t.params.swiperElementNodeName.toUpperCase()&&(t.isElement=!0);const a=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let i=s&&s.shadowRoot&&s.shadowRoot.querySelector?s.shadowRoot.querySelector(a()):m(s,a())[0];return!i&&t.params.createElements&&(i=f("div",t.params.wrapperClass),s.append(i),m(s,`.${t.params.slideClass}`).forEach((e=>{i.append(e)}))),Object.assign(t,{el:s,wrapperEl:i,slidesEl:t.isElement&&!s.parentNode.host.slideSlots?s.parentNode.host:i,hostEl:t.isElement?s.parentNode.host:s,mounted:!0,rtl:"rtl"===s.dir.toLowerCase()||"rtl"===v(s,"direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===s.dir.toLowerCase()||"rtl"===v(s,"direction")),wrongRTL:"-webkit-box"===v(i,"display")}),!0}init(e){const t=this;if(t.initialized)return t;if(!1===t.mount(e))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 s=[...t.el.querySelectorAll('[loading="lazy"]')];return t.isElement&&s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')),s.forEach((e=>{e.complete?te(t,e):e.addEventListener("load",(e=>{te(t,e.target)}))})),ae(t),t.initialized=!0,ae(t),t.emit("init"),t.emit("afterInit"),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,el:i,wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttribute("style"),r.removeAttribute("style"),n&&n.length&&n.forEach((e=>{e.classList.remove(a.slideVisibleClass,a.slideFullyVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass),e.removeAttribute("style"),e.removeAttribute("data-swiper-slide-index")}))),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.el.swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){d(ue,e)}static get extendedDefaults(){return ue}static get defaults(){return ce}static installModule(e){me.prototype.__modules__||(me.prototype.__modules__=[]);const t=me.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>me.installModule(e))),me):(me.installModule(e),me)}}Object.keys(pe).forEach((e=>{Object.keys(pe[e]).forEach((t=>{me.prototype[t]=pe[e][t]}))})),me.use([function(e){let{swiper:t,on:s,emit:i}=e;const r=a();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(i("beforeResize"),i("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&i("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==r.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=r.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(r.addEventListener("resize",o),r.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&r.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),r.removeEventListener("resize",o),r.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const n=[],l=a(),o=function(e,s){void 0===s&&(s={});const a=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(t.__preventObserver__)return;if(1===e.length)return void r("observerUpdate",e[0]);const s=function(){r("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(s):l.setTimeout(s,0)}));a.observe(e,{attributes:void 0===s.attributes||s.attributes,childList:void 0===s.childList||s.childList,characterData:void 0===s.characterData||s.characterData}),n.push(a)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),i("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=b(t.hostEl);for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const he=[function(e){function t(e,t){const s=r.params.virtual;if(s.cache&&r.virtual.cache[t])return r.virtual.cache[t];let a;return s.renderSlide?(a=s.renderSlide.call(r,e,t),"string"==typeof a&&(p.innerHTML=a,a=p.children[0])):a=r.isElement?f("swiper-slide"):f("div",r.params.slideClass),a.setAttribute("data-swiper-slide-index",t),s.renderSlide||(a.innerHTML=e),s.cache&&(r.virtual.cache[t]=a),a}function a(e,s){function a(){r.updateSlides(),r.updateProgress(),r.updateSlidesClasses(),o("virtualUpdate")}const{slidesPerView:i,slidesPerGroup:n,centeredSlides:l,loop:d,initialSlide:c}=r.params;if(s&&!d&&c>0)return;const{addSlidesBefore:p,addSlidesAfter:u}=r.params.virtual,{from:h,to:f,slides:g,slidesGrid:v,offset:w}=r.virtual;r.params.cssMode||r.updateActiveIndex();const b=r.activeIndex||0;let y,E,x;y=r.rtlTranslate?"right":r.isHorizontal()?"left":"top",l?(E=Math.floor(i/2)+n+u,x=Math.floor(i/2)+n+p):(E=i+(n-1)+u,x=(d?i:n)+p);let S=b-x,T=b+E;d||(S=Math.max(S,0),T=Math.min(T,g.length-1));let M=(r.slidesGrid[S]||0)-(r.slidesGrid[0]||0);if(d&&b>=x?(S-=x,l||(M+=r.slidesGrid[0])):d&&b{e.style[y]=M-Math.abs(r.cssOverflowAdjustment())+"px"})),r.updateProgress(),void o("virtualUpdate");if(r.params.virtual.renderExternal)return r.params.virtual.renderExternal.call(r,{offset:M,from:S,to:T,slides:function(){const e=[];for(let t=S;t<=T;t+=1)e.push(g[t]);return e}()}),void(r.params.virtual.renderExternalUpdate?a():o("virtualUpdate"));const C=[],L=[],P=e=>{let t=e;return e<0?t=g.length+e:t>=g.length&&(t-=g.length),t};if(e)r.slides.filter((e=>e.matches(`.${r.params.slideClass}, swiper-slide`))).forEach((e=>{e.remove()}));else for(let e=h;e<=f;e+=1)if(eT){const t=P(e);r.slides.filter((e=>e.matches(`.${r.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]`))).forEach((e=>{e.remove()}))}const I=d?-g.length:0,A=d?2*g.length:g.length;for(let t=I;t=S&&t<=T){const s=P(t);void 0===f||e?L.push(s):(t>f&&L.push(s),t{r.slidesEl.append(t(g[e],e))})),d)for(let e=C.length-1;e>=0;e-=1){const s=C[e];r.slidesEl.prepend(t(g[s],s))}else C.sort(((e,t)=>t-e)),C.forEach((e=>{r.slidesEl.prepend(t(g[e],e))}));m(r.slidesEl,".swiper-slide, swiper-slide").forEach((e=>{e.style[y]=M-Math.abs(r.cssOverflowAdjustment())+"px"})),a()}let i,{swiper:r,extendParams:n,on:l,emit:o}=e;n({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}});const d=s();r.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]};const p=d.createElement("div");l("beforeInit",(()=>{if(!r.params.virtual.enabled)return;let e;if(void 0===r.passedParams.virtual.slides){const t=[...r.slidesEl.children].filter((e=>e.matches(`.${r.params.slideClass}, swiper-slide`)));t&&t.length&&(r.virtual.slides=[...t],e=!0,t.forEach(((e,t)=>{e.setAttribute("data-swiper-slide-index",t),r.virtual.cache[t]=e,e.remove()})))}e||(r.virtual.slides=r.params.virtual.slides),r.classNames.push(`${r.params.containerModifierClass}virtual`),r.params.watchSlidesProgress=!0,r.originalParams.watchSlidesProgress=!0,a(!1,!0)})),l("setTranslate",(()=>{r.params.virtual.enabled&&(r.params.cssMode&&!r._immediateVirtual?(clearTimeout(i),i=setTimeout((()=>{a()}),100)):a())})),l("init update resize",(()=>{r.params.virtual.enabled&&r.params.cssMode&&c(r.wrapperEl,"--swiper-virtual-size",`${r.virtualSize}px`)})),Object.assign(r.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.getAttribute("data-swiper-slide-index");r&&a.setAttribute("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),r.virtual.cache=t}a(!0),r.slideTo(s,0)},removeSlide:function(e){if(null==e)return;let t=r.activeIndex;if(Array.isArray(e))for(let s=e.length-1;s>=0;s-=1)r.params.virtual.cache&&(delete r.virtual.cache[e[s]],Object.keys(r.virtual.cache).forEach((t=>{t>e&&(r.virtual.cache[t-1]=r.virtual.cache[t],r.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete r.virtual.cache[t])}))),r.virtual.slides.splice(e[s],1),e[s]{t>e&&(r.virtual.cache[t-1]=r.virtual.cache[t],r.virtual.cache[t-1].setAttribute("data-swiper-slide-index",t-1),delete r.virtual.cache[t])}))),r.virtual.slides.splice(e,1),e0&&0===b(n.el,`.${n.params.slideActiveClass}`).length)return;const s=n.el,a=s.clientWidth,i=s.clientHeight,r=p.innerWidth,l=p.innerHeight,o=g(s);t&&(o.left-=s.scrollLeft);const d=[[o.left,o.top],[o.left+a,o.top],[o.left,o.top+i],[o.left+a,o.top+i]];for(let t=0;t=0&&s[0]<=r&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}n.isHorizontal()?((r||l||o||u)&&(s.preventDefault?s.preventDefault():s.returnValue=!1),((l||u)&&!t||(r||o)&&t)&&n.slideNext(),((r||o)&&!t||(l||u)&&t)&&n.slidePrev()):((r||l||m||h)&&(s.preventDefault?s.preventDefault():s.returnValue=!1),(l||h)&&n.slideNext(),(r||m)&&n.slidePrev()),d("keyPress",a)}}function i(){n.keyboard.enabled||(c.addEventListener("keydown",t),n.keyboard.enabled=!0)}function r(){n.keyboard.enabled&&(c.removeEventListener("keydown",t),n.keyboard.enabled=!1)}let{swiper:n,extendParams:l,on:o,emit:d}=e;const c=s(),p=a();n.keyboard={enabled:!1},l({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),o("init",(()=>{n.params.keyboard.enabled&&i()})),o("destroy",(()=>{n.keyboard.enabled&&r()})),Object.assign(n.keyboard,{enable:i,disable:r})},function(e){function t(){p.enabled&&(p.mouseEntered=!0)}function s(){p.enabled&&(p.mouseEntered=!1)}function i(e){return!(p.params.mousewheel.thresholdDelta&&e.delta=6&&n()-w<60)&&(e.direction<0?p.isEnd&&!p.params.loop||p.animating||(p.slideNext(),h("scroll",e.raw)):p.isBeginning&&!p.params.loop||p.animating||(p.slidePrev(),h("scroll",e.raw)),w=(new f.Date).getTime(),1))}function l(e){let t=e,s=!0;if(!p.enabled)return;if(e.target.closest(`.${p.params.mousewheel.noMousewheelClass}`))return;const a=p.params.mousewheel;p.params.cssMode&&t.preventDefault();let l=p.el;"container"!==p.params.mousewheel.eventsTarget&&(l=document.querySelector(p.params.mousewheel.eventsTarget));const o=l&&l.contains(t.target);if(!p.mouseEntered&&!o&&!a.releaseOnEdges)return!0;t.originalEvent&&(t=t.originalEvent);let d=0;const c=p.rtlTranslate?-1:1,u=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(t);if(a.forceToAxis)if(p.isHorizontal()){if(!(Math.abs(u.pixelX)>Math.abs(u.pixelY)))return!0;d=-u.pixelX*c}else{if(!(Math.abs(u.pixelY)>Math.abs(u.pixelX)))return!0;d=-u.pixelY}else d=Math.abs(u.pixelX)>Math.abs(u.pixelY)?-u.pixelX*c:-u.pixelY;if(0===d)return!0;a.invert&&(d=-d);let m=p.getTranslate()+d*a.sensitivity;if(m>=p.minTranslate()&&(m=p.minTranslate()),m<=p.maxTranslate()&&(m=p.maxTranslate()),s=!!p.params.loop||!(m===p.minTranslate()||m===p.maxTranslate()),s&&p.params.nested&&t.stopPropagation(),p.params.freeMode&&p.params.freeMode.enabled){const e={time:n(),delta:Math.abs(d),direction:Math.sign(d)},s=v&&e.time=p.minTranslate()&&(i=p.minTranslate()),i<=p.maxTranslate()&&(i=p.maxTranslate()),p.setTransition(0),p.setTranslate(i),p.updateProgress(),p.updateActiveIndex(),p.updateSlidesClasses(),(!n&&p.isBeginning||!l&&p.isEnd)&&p.updateSlidesClasses(),p.params.loop&&p.loopFix({direction:e.direction<0?"next":"prev",byMousewheel:!0}),p.params.freeMode.sticky){clearTimeout(g),g=void 0,b.length>=15&&b.shift();const t=b.length?b[b.length-1]:void 0,s=b[0];if(b.push(e),t&&(e.delta>t.delta||e.direction!==t.direction))b.splice(0);else if(b.length>=15&&e.time-s.time<500&&s.delta-e.delta>=1&&e.delta<=6){const t=d>0?.8:.2;v=e,b.splice(0),g=r((()=>{p.slideToClosest(p.params.speed,!0,void 0,t)}),0)}g||(g=r((()=>{v=e,b.splice(0),p.slideToClosest(p.params.speed,!0,void 0,.5)}),500))}if(s||h("scroll",t),p.params.autoplay&&p.params.autoplayDisableOnInteraction&&p.autoplay.stop(),a.releaseOnEdges&&(i===p.minTranslate()||i===p.maxTranslate()))return!0}}else{const t={time:n(),delta:Math.abs(d),direction:Math.sign(d),raw:e};b.length>=2&&b.shift();const s=b.length?b[b.length-1]:void 0;if(b.push(t),s?(t.direction!==s.direction||t.delta>s.delta||t.time>s.time+150)&&i(t):i(t),function(e){const t=p.params.mousewheel;if(e.direction<0){if(p.isEnd&&!p.params.loop&&t.releaseOnEdges)return!0}else if(p.isBeginning&&!p.params.loop&&t.releaseOnEdges)return!0;return!1}(t))return!0}return t.preventDefault?t.preventDefault():t.returnValue=!1,!1}function o(e){let a=p.el;"container"!==p.params.mousewheel.eventsTarget&&(a=document.querySelector(p.params.mousewheel.eventsTarget)),a[e]("mouseenter",t),a[e]("mouseleave",s),a[e]("wheel",l)}function d(){return p.params.cssMode?(p.wrapperEl.removeEventListener("wheel",l),!0):!p.mousewheel.enabled&&(o("addEventListener"),p.mousewheel.enabled=!0,!0)}function c(){return p.params.cssMode?(p.wrapperEl.addEventListener(event,l),!0):!!p.mousewheel.enabled&&(o("removeEventListener"),p.mousewheel.enabled=!1,!0)}let{swiper:p,extendParams:u,on:m,emit:h}=e;const f=a();let g;u({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null,noMousewheelClass:"swiper-no-mousewheel"}}),p.mousewheel={enabled:!1};let v,w=n();const b=[];m("init",(()=>{!p.params.mousewheel.enabled&&p.params.cssMode&&c(),p.params.mousewheel.enabled&&d()})),m("destroy",(()=>{p.params.cssMode&&d(),p.mousewheel.enabled&&c()})),Object.assign(p.mousewheel,{enable:d,disable:c})},function(e){function t(e){let t;return e&&"string"==typeof e&&o.isElement&&(t=o.el.querySelector(e),t)?t:(e&&("string"==typeof e&&(t=[...document.querySelectorAll(e)]),o.params.uniqueNavElements&&"string"==typeof e&&t&&t.length>1&&1===o.el.querySelectorAll(e).length?t=o.el.querySelector(e):t&&1===t.length&&(t=t[0])),e&&!t?e:t)}function s(e,t){const s=o.params.navigation;(e=x(e)).forEach((e=>{e&&(e.classList[t?"add":"remove"](...s.disabledClass.split(" ")),"BUTTON"===e.tagName&&(e.disabled=t),o.params.watchOverflow&&o.enabled&&e.classList[o.isLocked?"add":"remove"](s.lockClass))}))}function a(){const{nextEl:e,prevEl:t}=o.navigation;if(o.params.loop)return s(t,!1),void s(e,!1);s(t,o.isBeginning&&!o.params.rewind),s(e,o.isEnd&&!o.params.rewind)}function i(e){e.preventDefault(),(!o.isBeginning||o.params.loop||o.params.rewind)&&(o.slidePrev(),p("navigationPrev"))}function r(e){e.preventDefault(),(!o.isEnd||o.params.loop||o.params.rewind)&&(o.slideNext(),p("navigationNext"))}function n(){const e=o.params.navigation;if(o.params.navigation=H(o,o.originalParams.navigation,o.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;let s=t(e.nextEl),a=t(e.prevEl);Object.assign(o.navigation,{nextEl:s,prevEl:a}),s=x(s),a=x(a);const n=(t,s)=>{t&&t.addEventListener("click","next"===s?r:i),!o.enabled&&t&&t.classList.add(...e.lockClass.split(" "))};s.forEach((e=>n(e,"next"))),a.forEach((e=>n(e,"prev")))}function l(){let{nextEl:e,prevEl:t}=o.navigation;e=x(e),t=x(t);const s=(e,t)=>{e.removeEventListener("click","next"===t?r:i),e.classList.remove(...o.params.navigation.disabledClass.split(" "))};e.forEach((e=>s(e,"next"))),t.forEach((e=>s(e,"prev")))}let{swiper:o,extendParams:d,on:c,emit:p}=e;d({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),o.navigation={nextEl:null,prevEl:null},c("init",(()=>{!1===o.params.navigation.enabled?u():(n(),a())})),c("toEdge fromEdge lock unlock",(()=>{a()})),c("destroy",(()=>{l()})),c("enable disable",(()=>{let{nextEl:e,prevEl:t}=o.navigation;e=x(e),t=x(t),o.enabled?a():[...e,...t].filter((e=>!!e)).forEach((e=>e.classList.add(o.params.navigation.lockClass)))})),c("click",((e,t)=>{let{nextEl:s,prevEl:a}=o.navigation;s=x(s),a=x(a);const i=t.target;if(o.params.navigation.hideOnClick&&!a.includes(i)&&!s.includes(i)){if(o.pagination&&o.params.pagination&&o.params.pagination.clickable&&(o.pagination.el===i||o.pagination.el.contains(i)))return;let e;s.length?e=s[0].classList.contains(o.params.navigation.hiddenClass):a.length&&(e=a[0].classList.contains(o.params.navigation.hiddenClass)),p(!0===e?"navigationShow":"navigationHide"),[...s,...a].filter((e=>!!e)).forEach((e=>e.classList.toggle(o.params.navigation.hiddenClass)))}}));const u=()=>{o.el.classList.add(...o.params.navigation.navigationDisabledClass.split(" ")),l()};Object.assign(o.navigation,{enable:()=>{o.el.classList.remove(...o.params.navigation.navigationDisabledClass.split(" ")),n(),a()},disable:u,update:a,init:n,destroy:l})},function(e){function t(){return!o.params.pagination.el||!o.pagination.el||Array.isArray(o.pagination.el)&&0===o.pagination.el.length}function s(e,t){const{bulletActiveClass:s}=o.params.pagination;e&&(e=e[("prev"===t?"previous":"next")+"ElementSibling"])&&(e.classList.add(`${s}-${t}`),(e=e[("prev"===t?"previous":"next")+"ElementSibling"])&&e.classList.add(`${s}-${t}-${t}`))}function a(e){const t=e.target.closest(X(o.params.pagination.bulletClass));if(!t)return;e.preventDefault();const s=w(t)*o.params.slidesPerGroup;if(o.params.loop){if(o.realIndex===s)return;o.slideToLoop(s)}else o.slideTo(s)}function i(){const e=o.rtl,a=o.params.pagination;if(t())return;let i,r,n=o.pagination.el;n=x(n);const l=o.virtual&&o.params.virtual.enabled?o.virtual.slides.length:o.slides.length,d=o.params.loop?Math.ceil(l/o.params.slidesPerGroup):o.snapGrid.length;if(o.params.loop?(r=o.previousRealIndex||0,i=o.params.slidesPerGroup>1?Math.floor(o.realIndex/o.params.slidesPerGroup):o.realIndex):void 0!==o.snapIndex?(i=o.snapIndex,r=o.previousSnapIndex):(r=o.previousIndex||0,i=o.activeIndex||0),"bullets"===a.type&&o.pagination.bullets&&o.pagination.bullets.length>0){const t=o.pagination.bullets;let l,d,c;if(a.dynamicBullets&&(m=E(t[0],o.isHorizontal()?"width":"height",!0),n.forEach((e=>{e.style[o.isHorizontal()?"width":"height"]=m*(a.dynamicMainBullets+4)+"px"})),a.dynamicMainBullets>1&&void 0!==r&&(h+=i-(r||0),h>a.dynamicMainBullets-1?h=a.dynamicMainBullets-1:h<0&&(h=0)),l=Math.max(i-h,0),d=l+(Math.min(t.length,a.dynamicMainBullets)-1),c=(d+l)/2),t.forEach((e=>{const t=[...["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${a.bulletActiveClass}${e}`))].map((e=>"string"==typeof e&&e.includes(" ")?e.split(" "):e)).flat();e.classList.remove(...t)})),n.length>1)t.forEach((e=>{const t=w(e);t===i?e.classList.add(...a.bulletActiveClass.split(" ")):o.isElement&&e.setAttribute("part","bullet"),a.dynamicBullets&&(t>=l&&t<=d&&e.classList.add(...`${a.bulletActiveClass}-main`.split(" ")),t===l&&s(e,"prev"),t===d&&s(e,"next"))}));else{const e=t[i];if(e&&e.classList.add(...a.bulletActiveClass.split(" ")),o.isElement&&t.forEach(((e,t)=>{e.setAttribute("part",t===i?"bullet-active":"bullet")})),a.dynamicBullets){const e=t[l],i=t[d];for(let e=l;e<=d;e+=1)t[e]&&t[e].classList.add(...`${a.bulletActiveClass}-main`.split(" "));s(e,"prev"),s(i,"next")}}if(a.dynamicBullets){const s=Math.min(t.length,a.dynamicMainBullets+4),i=(m*s-m)/2-c*m,r=e?"right":"left";t.forEach((e=>{e.style[o.isHorizontal()?r:"top"]=`${i}px`}))}}n.forEach(((e,t)=>{if("fraction"===a.type&&(e.querySelectorAll(X(a.currentClass)).forEach((e=>{e.textContent=a.formatFractionCurrent(i+1)})),e.querySelectorAll(X(a.totalClass)).forEach((e=>{e.textContent=a.formatFractionTotal(d)}))),"progressbar"===a.type){let t;t=a.progressbarOpposite?o.isHorizontal()?"vertical":"horizontal":o.isHorizontal()?"horizontal":"vertical";const s=(i+1)/d;let r=1,n=1;"horizontal"===t?r=s:n=s,e.querySelectorAll(X(a.progressbarFillClass)).forEach((e=>{e.style.transform=`translate3d(0,0,0) scaleX(${r}) scaleY(${n})`,e.style.transitionDuration=`${o.params.speed}ms`}))}"custom"===a.type&&a.renderCustom?(e.innerHTML=a.renderCustom(o,i+1,d),0===t&&p("paginationRender",e)):(0===t&&p("paginationRender",e),p("paginationUpdate",e)),o.params.watchOverflow&&o.enabled&&e.classList[o.isLocked?"add":"remove"](a.lockClass)}))}function r(){const e=o.params.pagination;if(t())return;const s=o.virtual&&o.params.virtual.enabled?o.virtual.slides.length:o.grid&&o.params.grid.rows>1?o.slides.length/Math.ceil(o.params.grid.rows):o.slides.length;let a=o.pagination.el;a=x(a);let i="";if("bullets"===e.type){let t=o.params.loop?Math.ceil(s/o.params.slidesPerGroup):o.snapGrid.length;o.params.freeMode&&o.params.freeMode.enabled&&t>s&&(t=s);for(let s=0;s`}"fraction"===e.type&&(i=e.renderFraction?e.renderFraction.call(o,e.currentClass,e.totalClass):` / `),"progressbar"===e.type&&(i=e.renderProgressbar?e.renderProgressbar.call(o,e.progressbarFillClass):``),o.pagination.bullets=[],a.forEach((t=>{"custom"!==e.type&&(t.innerHTML=i||""),"bullets"===e.type&&o.pagination.bullets.push(...t.querySelectorAll(X(e.bulletClass)))})),"custom"!==e.type&&p("paginationRender",a[0])}function n(){o.params.pagination=H(o,o.originalParams.pagination,o.params.pagination,{el:"swiper-pagination"});const e=o.params.pagination;if(!e.el)return;let t;"string"==typeof e.el&&o.isElement&&(t=o.el.querySelector(e.el)),t||"string"!=typeof e.el||(t=[...document.querySelectorAll(e.el)]),t||(t=e.el),t&&0!==t.length&&(o.params.uniqueNavElements&&"string"==typeof e.el&&Array.isArray(t)&&t.length>1&&(t=[...o.el.querySelectorAll(e.el)],t.length>1&&(t=t.filter((e=>b(e,".swiper")[0]===o.el))[0])),Array.isArray(t)&&1===t.length&&(t=t[0]),Object.assign(o.pagination,{el:t}),t=x(t),t.forEach((t=>{"bullets"===e.type&&e.clickable&&t.classList.add(...(e.clickableClass||"").split(" ")),t.classList.add(e.modifierClass+e.type),t.classList.add(o.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(t.classList.add(`${e.modifierClass}${e.type}-dynamic`),h=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&t.classList.add(e.progressbarOppositeClass),e.clickable&&t.addEventListener("click",a),o.enabled||t.classList.add(e.lockClass)})))}function l(){const e=o.params.pagination;if(t())return;let s=o.pagination.el;s&&(s=x(s),s.forEach((t=>{t.classList.remove(e.hiddenClass),t.classList.remove(e.modifierClass+e.type),t.classList.remove(o.isHorizontal()?e.horizontalClass:e.verticalClass),e.clickable&&(t.classList.remove(...(e.clickableClass||"").split(" ")),t.removeEventListener("click",a))}))),o.pagination.bullets&&o.pagination.bullets.forEach((t=>t.classList.remove(...e.bulletActiveClass.split(" "))))}let{swiper:o,extendParams:d,on:c,emit:p}=e;const u="swiper-pagination";let m;d({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:e=>e,formatFractionTotal:e=>e,bulletClass:`${u}-bullet`,bulletActiveClass:`${u}-bullet-active`,modifierClass:`${u}-`,currentClass:`${u}-current`,totalClass:`${u}-total`,hiddenClass:`${u}-hidden`,progressbarFillClass:`${u}-progressbar-fill`,progressbarOppositeClass:`${u}-progressbar-opposite`,clickableClass:`${u}-clickable`,lockClass:`${u}-lock`,horizontalClass:`${u}-horizontal`,verticalClass:`${u}-vertical`,paginationDisabledClass:`${u}-disabled`}}),o.pagination={el:null,bullets:[]};let h=0;c("changeDirection",(()=>{if(!o.pagination||!o.pagination.el)return;const e=o.params.pagination;let{el:t}=o.pagination;t=x(t),t.forEach((t=>{t.classList.remove(e.horizontalClass,e.verticalClass),t.classList.add(o.isHorizontal()?e.horizontalClass:e.verticalClass)}))})),c("init",(()=>{!1===o.params.pagination.enabled?f():(n(),r(),i())})),c("activeIndexChange",(()=>{void 0===o.snapIndex&&i()})),c("snapIndexChange",(()=>{i()})),c("snapGridLengthChange",(()=>{r(),i()})),c("destroy",(()=>{l()})),c("enable disable",(()=>{let{el:e}=o.pagination;e&&(e=x(e),e.forEach((e=>e.classList[o.enabled?"remove":"add"](o.params.pagination.lockClass))))})),c("lock unlock",(()=>{i()})),c("click",((e,t)=>{const s=t.target,a=x(o.pagination.el);if(o.params.pagination.el&&o.params.pagination.hideOnClick&&a&&a.length>0&&!s.classList.contains(o.params.pagination.bulletClass)){if(o.navigation&&(o.navigation.nextEl&&s===o.navigation.nextEl||o.navigation.prevEl&&s===o.navigation.prevEl))return;const e=a[0].classList.contains(o.params.pagination.hiddenClass);p(!0===e?"paginationShow":"paginationHide"),a.forEach((e=>e.classList.toggle(o.params.pagination.hiddenClass)))}}));const f=()=>{o.el.classList.add(o.params.pagination.paginationDisabledClass);let{el:e}=o.pagination;e&&(e=x(e),e.forEach((e=>e.classList.add(o.params.pagination.paginationDisabledClass)))),l()};Object.assign(o.pagination,{enable:()=>{o.el.classList.remove(o.params.pagination.paginationDisabledClass);let{el:e}=o.pagination;e&&(e=x(e),e.forEach((e=>e.classList.remove(o.params.pagination.paginationDisabledClass)))),n(),r(),i()},disable:f,render:r,update:i,init:n,destroy:l})},function(e){function t(){if(!h.params.scrollbar.el||!h.scrollbar.el)return;const{scrollbar:e,rtlTranslate:t}=h,{dragEl:s,el:a}=e,i=h.params.scrollbar,r=h.params.loop?h.progressLoop:h.progress;let n=S,l=(T-S)*r;t?(l=-l,l>0?(n=S-l,l=0):-l+S>T&&(n=T+l)):l<0?(n=S+l,l=0):l+S>T&&(n=T-l),h.isHorizontal()?(s.style.transform=`translate3d(${l}px, 0, 0)`,s.style.width=`${n}px`):(s.style.transform=`translate3d(0px, ${l}px, 0)`,s.style.height=`${n}px`),i.hide&&(clearTimeout(L),a.style.opacity=1,L=setTimeout((()=>{a.style.opacity=0,a.style.transitionDuration="400ms"}),1e3))}function a(){if(!h.params.scrollbar.el||!h.scrollbar.el)return;const{scrollbar:e}=h,{dragEl:t,el:s}=e;t.style.width="",t.style.height="",T=h.isHorizontal()?s.offsetWidth:s.offsetHeight,M=h.size/(h.virtualSize+h.params.slidesOffsetBefore-(h.params.centeredSlides?h.snapGrid[0]:0)),S="auto"===h.params.scrollbar.dragSize?T*M:parseInt(h.params.scrollbar.dragSize,10),h.isHorizontal()?t.style.width=`${S}px`:t.style.height=`${S}px`,s.style.display=M>=1?"none":"",h.params.scrollbar.hide&&(s.style.opacity=0),h.params.watchOverflow&&h.enabled&&e.el.classList[h.isLocked?"add":"remove"](h.params.scrollbar.lockClass)}function n(e){return h.isHorizontal()?e.clientX:e.clientY}function l(e){const{scrollbar:t,rtlTranslate:s}=h,{el:a}=t;let i;i=(n(e)-g(a)[h.isHorizontal()?"left":"top"]-(null!==E?E:S/2))/(T-S),i=Math.max(Math.min(i,1),0),s&&(i=1-i);const r=h.minTranslate()+(h.maxTranslate()-h.minTranslate())*i;h.updateProgress(r),h.setTranslate(r),h.updateActiveIndex(), +h.updateSlidesClasses()}function o(e){const t=h.params.scrollbar,{scrollbar:s,wrapperEl:a}=h,{el:i,dragEl:r}=s;C=!0,E=e.target===r?n(e)-e.target.getBoundingClientRect()[h.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),a.style.transitionDuration="100ms",r.style.transitionDuration="100ms",l(e),clearTimeout(P),i.style.transitionDuration="0ms",t.hide&&(i.style.opacity=1),h.params.cssMode&&(h.wrapperEl.style["scroll-snap-type"]="none"),b("scrollbarDragStart",e)}function d(e){const{scrollbar:t,wrapperEl:s}=h,{el:a,dragEl:i}=t;C&&(e.preventDefault&&e.cancelable?e.preventDefault():e.returnValue=!1,l(e),s.style.transitionDuration="0ms",a.style.transitionDuration="0ms",i.style.transitionDuration="0ms",b("scrollbarDragMove",e))}function c(e){const t=h.params.scrollbar,{scrollbar:s,wrapperEl:a}=h,{el:i}=s;C&&(C=!1,h.params.cssMode&&(h.wrapperEl.style["scroll-snap-type"]="",a.style.transitionDuration=""),t.hide&&(clearTimeout(P),P=r((()=>{i.style.opacity=0,i.style.transitionDuration="400ms"}),1e3)),b("scrollbarDragEnd",e),t.snapOnRelease&&h.slideToClosest())}function p(e){const{scrollbar:t,params:s}=h,a=t.el;if(!a)return;const i=a,r=!!s.passiveListeners&&{passive:!1,capture:!1},n=!!s.passiveListeners&&{passive:!0,capture:!1};if(!i)return;const l="on"===e?"addEventListener":"removeEventListener";i[l]("pointerdown",o,r),y[l]("pointermove",d,r),y[l]("pointerup",c,n)}function u(){const{scrollbar:e,el:t}=h;h.params.scrollbar=H(h,h.originalParams.scrollbar,h.params.scrollbar,{el:"swiper-scrollbar"});const s=h.params.scrollbar;if(!s.el)return;let a,r;if("string"==typeof s.el&&h.isElement&&(a=h.el.querySelector(s.el)),a||"string"!=typeof s.el)a||(a=s.el);else if(a=y.querySelectorAll(s.el),!a.length)return;h.params.uniqueNavElements&&"string"==typeof s.el&&a.length>1&&1===t.querySelectorAll(s.el).length&&(a=t.querySelector(s.el)),a.length>0&&(a=a[0]),a.classList.add(h.isHorizontal()?s.horizontalClass:s.verticalClass),a&&(r=a.querySelector(X(h.params.scrollbar.dragClass)),r||(r=f("div",h.params.scrollbar.dragClass),a.append(r))),Object.assign(e,{el:a,dragEl:r}),s.draggable&&h.params.scrollbar.el&&h.scrollbar.el&&p("on"),a&&a.classList[h.enabled?"remove":"add"](...i(h.params.scrollbar.lockClass))}function m(){const e=h.params.scrollbar,t=h.scrollbar.el;t&&t.classList.remove(...i(h.isHorizontal()?e.horizontalClass:e.verticalClass)),h.params.scrollbar.el&&h.scrollbar.el&&p("off")}let{swiper:h,extendParams:v,on:w,emit:b}=e;const y=s();let E,S,T,M,C=!1,L=null,P=null;v({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"}}),h.scrollbar={el:null,dragEl:null},w("changeDirection",(()=>{if(!h.scrollbar||!h.scrollbar.el)return;const e=h.params.scrollbar;let{el:t}=h.scrollbar;t=x(t),t.forEach((t=>{t.classList.remove(e.horizontalClass,e.verticalClass),t.classList.add(h.isHorizontal()?e.horizontalClass:e.verticalClass)}))})),w("init",(()=>{!1===h.params.scrollbar.enabled?I():(u(),a(),t())})),w("update resize observerUpdate lock unlock changeDirection",(()=>{a()})),w("setTranslate",(()=>{t()})),w("setTransition",((e,t)=>{!function(e){h.params.scrollbar.el&&h.scrollbar.el&&(h.scrollbar.dragEl.style.transitionDuration=`${e}ms`)}(t)})),w("enable disable",(()=>{const{el:e}=h.scrollbar;e&&e.classList[h.enabled?"remove":"add"](...i(h.params.scrollbar.lockClass))})),w("destroy",(()=>{m()}));const I=()=>{h.el.classList.add(...i(h.params.scrollbar.scrollbarDisabledClass)),h.scrollbar.el&&h.scrollbar.el.classList.add(...i(h.params.scrollbar.scrollbarDisabledClass)),m()};Object.assign(h.scrollbar,{enable:()=>{h.el.classList.remove(...i(h.params.scrollbar.scrollbarDisabledClass)),h.scrollbar.el&&h.scrollbar.el.classList.remove(...i(h.params.scrollbar.scrollbarDisabledClass)),u(),a(),t()},disable:I,updateSize:a,setTranslate:t,init:u,destroy:m})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i="[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]",r=(e,s)=>{const{rtl:a}=t,i=a?-1:1,r=e.getAttribute("data-swiper-parallax")||"0";let n=e.getAttribute("data-swiper-parallax-x"),l=e.getAttribute("data-swiper-parallax-y");const o=e.getAttribute("data-swiper-parallax-scale"),d=e.getAttribute("data-swiper-parallax-opacity"),c=e.getAttribute("data-swiper-parallax-rotate");if(n||l?(n=n||"0",l=l||"0"):t.isHorizontal()?(n=r,l="0"):(l=r,n="0"),n=n.indexOf("%")>=0?parseInt(n,10)*s*i+"%":n*s*i+"px",l=l.indexOf("%")>=0?parseInt(l,10)*s+"%":l*s+"px",null!=d){const t=d-(d-1)*(1-Math.abs(s));e.style.opacity=t}let p=`translate3d(${n}, ${l}, 0px)`;null!=o&&(p+=` scale(${o-(o-1)*(1-Math.abs(s))})`),c&&null!=c&&(p+=` rotate(${c*s*-1}deg)`),e.style.transform=p},n=()=>{const{el:e,slides:s,progress:a,snapGrid:n,isElement:l}=t,o=m(e,i);t.isElement&&o.push(...m(t.hostEl,i)),o.forEach((e=>{r(e,a)})),s.forEach(((e,s)=>{let l=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(l+=Math.ceil(s/2)-a*(n.length-1)),l=Math.min(Math.max(l,-1),1),e.querySelectorAll(`${i}, [data-swiper-parallax-rotate]`).forEach((e=>{r(e,l)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&n()})),a("setTranslate",(()=>{t.params.parallax.enabled&&n()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{el:s,hostEl:a}=t,r=[...s.querySelectorAll(i)];t.isElement&&r.push(...a.querySelectorAll(i)),r.forEach((t=>{let s=parseInt(t.getAttribute("data-swiper-parallax-duration"),10)||e;0===e&&(s=0),t.style.transitionDuration=`${s}ms`}))}(s)}))},function(e){function t(){if(I.length<2)return 1;const e=I[0].pageX,t=I[0].pageY,s=I[1].pageX,a=I[1].pageY;return Math.sqrt((s-e)**2+(a-t)**2)}function s(){const e=y.params.zoom,t=A.imageWrapEl.getAttribute("data-swiper-zoom")||e.maxRatio;if(e.limitToOriginalSize&&A.imageEl&&A.imageEl.naturalWidth){const e=A.imageEl.naturalWidth/A.imageEl.offsetWidth;return Math.min(e,t)}return t}function i(e){const t=y.isElement?"swiper-slide":`.${y.params.slideClass}`;return!!e.target.matches(t)||y.slides.filter((t=>t.contains(e.target))).length>0}function r(e){if("mouse"===e.pointerType&&I.splice(0,I.length),!i(e))return;const a=y.params.zoom;if(M=!1,C=!1,I.push(e),!(I.length<2)){if(M=!0,A.scaleStart=t(),!A.slideEl){A.slideEl=e.target.closest(`.${y.params.slideClass}, swiper-slide`),A.slideEl||(A.slideEl=y.slides[y.activeIndex]);let t=A.slideEl.querySelector(`.${a.containerClass}`);if(t&&(t=t.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),A.imageEl=t,A.imageWrapEl=t?b(A.imageEl,`.${a.containerClass}`)[0]:void 0,!A.imageWrapEl)return void(A.imageEl=void 0);A.maxRatio=s()}if(A.imageEl){const[e,t]=function(){if(I.length<2)return{x:null,y:null};const e=A.imageEl.getBoundingClientRect();return[(I[0].pageX+(I[1].pageX-I[0].pageX)/2-e.x-T.scrollX)/L,(I[0].pageY+(I[1].pageY-I[0].pageY)/2-e.y-T.scrollY)/L]}();A.originX=e,A.originY=t,A.imageEl.style.transitionDuration="0ms"}P=!0}}function n(e){if(!i(e))return;const s=y.params.zoom,a=y.zoom,r=I.findIndex((t=>t.pointerId===e.pointerId));r>=0&&(I[r]=e),I.length<2||(C=!0,A.scaleMove=t(),A.imageEl&&(a.scale=A.scaleMove/A.scaleStart*L,a.scale>A.maxRatio&&(a.scale=A.maxRatio-1+(a.scale-A.maxRatio+1)**.5),a.scalet.pointerId===e.pointerId));a>=0&&I.splice(a,1),M&&C&&(M=!1,C=!1,A.imageEl&&(s.scale=Math.max(Math.min(s.scale,A.maxRatio),t.minRatio),A.imageEl.style.transitionDuration=`${y.params.speed}ms`,A.imageEl.style.transform=`translate3d(0,0,0) scale(${s.scale})`,L=s.scale,P=!1,s.scale>1&&A.slideEl?A.slideEl.classList.add(`${t.zoomedSlideClass}`):s.scale<=1&&A.slideEl&&A.slideEl.classList.remove(`${t.zoomedSlideClass}`),1===s.scale&&(A.originX=0,A.originY=0,A.slideEl=void 0)))}function d(){y.touchEventsData.preventTouchMoveFromPointerMove=!1}function c(e){if(!i(e)||!function(e){const t=`.${y.params.zoom.containerClass}`;return!!e.target.matches(t)||[...y.hostEl.querySelectorAll(t)].filter((t=>t.contains(e.target))).length>0}(e))return;const t=y.zoom;if(!A.imageEl)return;if(!z.isTouched||!A.slideEl)return;z.isMoved||(z.width=A.imageEl.offsetWidth||A.imageEl.clientWidth,z.height=A.imageEl.offsetHeight||A.imageEl.clientHeight,z.startX=l(A.imageWrapEl,"x")||0,z.startY=l(A.imageWrapEl,"y")||0,A.slideWidth=A.slideEl.offsetWidth,A.slideHeight=A.slideEl.offsetHeight,A.imageWrapEl.style.transitionDuration="0ms");const s=z.width*t.scale,a=z.height*t.scale;if(s0?I[0].pageX:e.pageX,z.touchesCurrent.y=I.length>0?I[0].pageY:e.pageY,Math.max(Math.abs(z.touchesCurrent.x-z.touchesStart.x),Math.abs(z.touchesCurrent.y-z.touchesStart.y))>5&&(y.allowClick=!1),!z.isMoved&&!P){if(y.isHorizontal()&&(Math.floor(z.minX)===Math.floor(z.startX)&&z.touchesCurrent.xz.touchesStart.x))return z.isTouched=!1,void d();if(!y.isHorizontal()&&(Math.floor(z.minY)===Math.floor(z.startY)&&z.touchesCurrent.yz.touchesStart.y))return z.isTouched=!1,void d()}e.cancelable&&e.preventDefault(),e.stopPropagation(),clearTimeout(O),y.touchEventsData.preventTouchMoveFromPointerMove=!0,O=setTimeout((()=>{d()})),z.isMoved=!0;const r=(t.scale-L)/(A.maxRatio-y.params.zoom.minRatio),{originX:n,originY:o}=A;z.currentX=z.touchesCurrent.x-z.touchesStart.x+z.startX+r*(z.width-2*n),z.currentY=z.touchesCurrent.y-z.touchesStart.y+z.startY+r*(z.height-2*o),z.currentXz.maxX&&(z.currentX=z.maxX-1+(z.currentX-z.maxX+1)**.8),z.currentYz.maxY&&(z.currentY=z.maxY-1+(z.currentY-z.maxY+1)**.8),k.prevPositionX||(k.prevPositionX=z.touchesCurrent.x),k.prevPositionY||(k.prevPositionY=z.touchesCurrent.y),k.prevTime||(k.prevTime=Date.now()),k.x=(z.touchesCurrent.x-k.prevPositionX)/(Date.now()-k.prevTime)/2,k.y=(z.touchesCurrent.y-k.prevPositionY)/(Date.now()-k.prevTime)/2,Math.abs(z.touchesCurrent.x-k.prevPositionX)<2&&(k.x=0),Math.abs(z.touchesCurrent.y-k.prevPositionY)<2&&(k.y=0),k.prevPositionX=z.touchesCurrent.x,k.prevPositionY=z.touchesCurrent.y,k.prevTime=Date.now(),A.imageWrapEl.style.transform=`translate3d(${z.currentX}px, ${z.currentY}px,0)`}function p(){const e=y.zoom;A.slideEl&&y.activeIndex!==y.slides.indexOf(A.slideEl)&&(A.imageEl&&(A.imageEl.style.transform="translate3d(0,0,0) scale(1)"),A.imageWrapEl&&(A.imageWrapEl.style.transform="translate3d(0,0,0)"),A.slideEl.classList.remove(`${y.params.zoom.zoomedSlideClass}`),e.scale=1,L=1,A.slideEl=void 0,A.imageEl=void 0,A.imageWrapEl=void 0,A.originX=0,A.originY=0)}function u(e){const t=y.zoom,a=y.params.zoom;if(!A.slideEl){e&&e.target&&(A.slideEl=e.target.closest(`.${y.params.slideClass}, swiper-slide`)),A.slideEl||(y.params.virtual&&y.params.virtual.enabled&&y.virtual?A.slideEl=m(y.slidesEl,`.${y.params.slideActiveClass}`)[0]:A.slideEl=y.slides[y.activeIndex]);let t=A.slideEl.querySelector(`.${a.containerClass}`);t&&(t=t.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),A.imageEl=t,A.imageWrapEl=t?b(A.imageEl,`.${a.containerClass}`)[0]:void 0}if(!A.imageEl||!A.imageWrapEl)return;let i,r,n,l,o,d,c,p,u,h,f,v,w,E,x,S,M,C;y.params.cssMode&&(y.wrapperEl.style.overflow="hidden",y.wrapperEl.style.touchAction="none"),A.slideEl.classList.add(`${a.zoomedSlideClass}`),void 0===z.touchesStart.x&&e?(i=e.pageX,r=e.pageY):(i=z.touchesStart.x,r=z.touchesStart.y);const P="number"==typeof e?e:null;1===L&&P&&(i=void 0,r=void 0);const I=s();t.scale=P||I,L=P||I,!e||1===L&&P?(c=0,p=0):(M=A.slideEl.offsetWidth,C=A.slideEl.offsetHeight,n=g(A.slideEl).left+T.scrollX,l=g(A.slideEl).top+T.scrollY,o=n+M/2-i,d=l+C/2-r,u=A.imageEl.offsetWidth||A.imageEl.clientWidth,h=A.imageEl.offsetHeight||A.imageEl.clientHeight,f=u*t.scale,v=h*t.scale,w=Math.min(M/2-f/2,0),E=Math.min(C/2-v/2,0),x=-w,S=-E,c=o*t.scale,p=d*t.scale,cx&&(c=x),pS&&(p=S)),P&&1===t.scale&&(A.originX=0,A.originY=0),A.imageWrapEl.style.transitionDuration="300ms",A.imageWrapEl.style.transform=`translate3d(${c}px, ${p}px,0)`,A.imageEl.style.transitionDuration="300ms",A.imageEl.style.transform=`translate3d(0,0,0) scale(${t.scale})`}function h(){const e=y.zoom,t=y.params.zoom;if(!A.slideEl){y.params.virtual&&y.params.virtual.enabled&&y.virtual?A.slideEl=m(y.slidesEl,`.${y.params.slideActiveClass}`)[0]:A.slideEl=y.slides[y.activeIndex];let e=A.slideEl.querySelector(`.${t.containerClass}`);e&&(e=e.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),A.imageEl=e,A.imageWrapEl=e?b(A.imageEl,`.${t.containerClass}`)[0]:void 0}A.imageEl&&A.imageWrapEl&&(y.params.cssMode&&(y.wrapperEl.style.overflow="",y.wrapperEl.style.touchAction=""),e.scale=1,L=1,A.imageWrapEl.style.transitionDuration="300ms",A.imageWrapEl.style.transform="translate3d(0,0,0)",A.imageEl.style.transitionDuration="300ms",A.imageEl.style.transform="translate3d(0,0,0) scale(1)",A.slideEl.classList.remove(`${t.zoomedSlideClass}`),A.slideEl=void 0,A.originX=0,A.originY=0)}function $(e){const t=y.zoom;t.scale&&1!==t.scale?h():u(e)}function f(){return{passiveListener:!!y.params.passiveListeners&&{passive:!0,capture:!1},activeListenerWithCapture:!y.params.passiveListeners||{passive:!1,capture:!0}}}function v(){const e=y.zoom;if(e.enabled)return;e.enabled=!0;const{passiveListener:t,activeListenerWithCapture:s}=f();y.wrapperEl.addEventListener("pointerdown",r,t),y.wrapperEl.addEventListener("pointermove",n,s),["pointerup","pointercancel","pointerout"].forEach((e=>{y.wrapperEl.addEventListener(e,o,t)})),y.wrapperEl.addEventListener("pointermove",c,s)}function w(){const e=y.zoom;if(!e.enabled)return;e.enabled=!1;const{passiveListener:t,activeListenerWithCapture:s}=f();y.wrapperEl.removeEventListener("pointerdown",r,t),y.wrapperEl.removeEventListener("pointermove",n,s),["pointerup","pointercancel","pointerout"].forEach((e=>{y.wrapperEl.removeEventListener(e,o,t)})),y.wrapperEl.removeEventListener("pointermove",c,s)}let{swiper:y,extendParams:E,on:x,emit:S}=e;const T=a();E({zoom:{enabled:!1,limitToOriginalSize:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),y.zoom={enabled:!1};let M,C,L=1,P=!1;const I=[],A={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},z={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:{}},k={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let O,D=1;Object.defineProperty(y.zoom,"scale",{get:()=>D,set(e){if(D!==e){const t=A.imageEl,s=A.slideEl;S("zoomChange",e,t,s)}D=e}}),x("init",(()=>{y.params.zoom.enabled&&v()})),x("destroy",(()=>{w()})),x("touchStart",((e,t)=>{y.zoom.enabled&&function(e){const t=y.device;if(!A.imageEl)return;if(z.isTouched)return;t.android&&e.cancelable&&e.preventDefault(),z.isTouched=!0;const s=I.length>0?I[0]:e;z.touchesStart.x=s.pageX,z.touchesStart.y=s.pageY}(t)})),x("touchEnd",((e,t)=>{y.zoom.enabled&&function(){const e=y.zoom;if(!A.imageEl)return;if(!z.isTouched||!z.isMoved)return z.isTouched=!1,void(z.isMoved=!1);z.isTouched=!1,z.isMoved=!1;let t=300,s=300;const a=k.x*t,i=z.currentX+a,r=k.y*s,n=z.currentY+r;0!==k.x&&(t=Math.abs((i-z.currentX)/k.x)),0!==k.y&&(s=Math.abs((n-z.currentY)/k.y));const l=Math.max(t,s);z.currentX=i,z.currentY=n;const o=z.width*e.scale,d=z.height*e.scale;z.minX=Math.min(A.slideWidth/2-o/2,0),z.maxX=-z.minX,z.minY=Math.min(A.slideHeight/2-d/2,0),z.maxY=-z.minY,z.currentX=Math.max(Math.min(z.currentX,z.maxX),z.minX),z.currentY=Math.max(Math.min(z.currentY,z.maxY),z.minY),A.imageWrapEl.style.transitionDuration=`${l}ms`,A.imageWrapEl.style.transform=`translate3d(${z.currentX}px, ${z.currentY}px,0)`}()})),x("doubleTap",((e,t)=>{!y.animating&&y.params.zoom.enabled&&y.zoom.enabled&&y.params.zoom.toggle&&$(t)})),x("transitionEnd",(()=>{y.zoom.enabled&&y.params.zoom.enabled&&p()})),x("slideChange",(()=>{y.zoom.enabled&&y.params.zoom.enabled&&y.params.cssMode&&p()})),Object.assign(y.zoom,{enable:v,disable:w,in:u,out:h,toggle:$})},function(e){function t(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function s(){a.controller.control&&a.controller.spline&&(a.controller.spline=void 0,delete a.controller.spline)}let{swiper:a,extendParams:i,on:n}=e;i({controller:{control:void 0,inverse:!1,by:"slide"}}),a.controller={control:void 0},n("beforeInit",(()=>{if("undefined"!=typeof window&&("string"==typeof a.params.controller.control||a.params.controller.control instanceof HTMLElement)){const e=document.querySelector(a.params.controller.control);if(e&&e.swiper)a.controller.control=e.swiper;else if(e){const t=s=>{a.controller.control=s.detail[0],a.update(),e.removeEventListener("init",t)};e.addEventListener("init",t)}}else a.controller.control=a.params.controller.control})),n("update",(()=>{s()})),n("resize",(()=>{s()})),n("observerUpdate",(()=>{s()})),n("setTranslate",((e,t,s)=>{a.controller.control&&!a.controller.control.destroyed&&a.controller.setTranslate(t,s)})),n("setTransition",((e,t,s)=>{a.controller.control&&!a.controller.control.destroyed&&a.controller.setTransition(t,s)})),Object.assign(a.controller,{setTranslate:function(e,s){function i(e){if(e.destroyed)return;const s=a.rtlTranslate?-a.translate:a.translate;"slide"===a.params.controller.by&&(function(e){a.controller.spline=a.params.loop?new t(a.slidesGrid,e.slidesGrid):new t(a.snapGrid,e.snapGrid)}(e),l=-a.controller.spline.interpolate(-s)),l&&"container"!==a.params.controller.by||(n=(e.maxTranslate()-e.minTranslate())/(a.maxTranslate()-a.minTranslate()),!Number.isNaN(n)&&Number.isFinite(n)||(n=1),l=(s-a.minTranslate())*n+e.minTranslate()),a.params.controller.inverse&&(l=e.maxTranslate()-l),e.updateProgress(l),e.setTranslate(l,a),e.updateActiveIndex(),e.updateSlidesClasses()}const r=a.controller.control;let n,l;const o=a.constructor;if(Array.isArray(r))for(let e=0;e{t.updateAutoHeight()})),y(t.wrapperEl,(()=>{n&&t.transitionEnd()}))))}const i=a.constructor,n=a.controller.control;let l;if(Array.isArray(n))for(l=0;l{e.setAttribute("tabIndex","0")}))}function i(e){(e=x(e)).forEach((e=>{e.setAttribute("tabIndex","-1")}))}function r(e,t){(e=x(e)).forEach((e=>{e.setAttribute("role",t)}))}function n(e,t){(e=x(e)).forEach((e=>{e.setAttribute("aria-roledescription",t)}))}function l(e,t){(e=x(e)).forEach((e=>{e.setAttribute("aria-label",t)}))}function o(e){(e=x(e)).forEach((e=>{e.setAttribute("aria-disabled",!0)}))}function d(e){(e=x(e)).forEach((e=>{e.setAttribute("aria-disabled",!1)}))}function c(e){if(13!==e.keyCode&&32!==e.keyCode)return;const s=m.params.a11y,a=e.target;if(!m.pagination||!m.pagination.el||a!==m.pagination.el&&!m.pagination.el.contains(e.target)||e.target.matches(X(m.params.pagination.bulletClass))){if(m.navigation&&m.navigation.prevEl&&m.navigation.nextEl){const e=x(m.navigation.prevEl);x(m.navigation.nextEl).includes(a)&&(m.isEnd&&!m.params.loop||m.slideNext(),m.isEnd?t(s.lastSlideMessage):t(s.nextSlideMessage)),e.includes(a)&&(m.isBeginning&&!m.params.loop||m.slidePrev(),m.isBeginning?t(s.firstSlideMessage):t(s.prevSlideMessage))}m.pagination&&a.matches(X(m.params.pagination.bulletClass))&&a.click()}}function p(){return m.pagination&&m.pagination.bullets&&m.pagination.bullets.length}function u(){return p()&&m.params.pagination.clickable}let{swiper:m,extendParams:h,on:g}=e;h({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}}),m.a11y={clicked:!1};let v,b,y=null,E=(new Date).getTime();const S=(e,t,s)=>{a(e),"BUTTON"!==e.tagName&&(r(e,"button"),e.addEventListener("keydown",c)),l(e,s),function(e,t){(e=x(e)).forEach((e=>{e.setAttribute("aria-controls",t)}))}(e,t)},T=e=>{b&&b!==e.target&&!b.contains(e.target)&&(v=!0),m.a11y.clicked=!0},M=()=>{v=!1,requestAnimationFrame((()=>{requestAnimationFrame((()=>{m.destroyed||(m.a11y.clicked=!1)}))}))},C=e=>{E=(new Date).getTime()},L=e=>{if(m.a11y.clicked)return;if((new Date).getTime()-E<100)return;const t=e.target.closest(`.${m.params.slideClass}, swiper-slide`);if(!t||!m.slides.includes(t))return;b=t;const s=m.slides.indexOf(t)===m.activeIndex,a=m.params.watchSlidesProgress&&m.visibleSlides&&m.visibleSlides.includes(t);s||a||e.sourceCapabilities&&e.sourceCapabilities.firesTouchEvents||(m.isHorizontal()?m.el.scrollLeft=0:m.el.scrollTop=0,requestAnimationFrame((()=>{v||(m.slideTo(m.slides.indexOf(t),0),v=!1)})))},P=()=>{const e=m.params.a11y;e.itemRoleDescriptionMessage&&n(m.slides,e.itemRoleDescriptionMessage),e.slideRole&&r(m.slides,e.slideRole);const t=m.slides.length;e.slideLabelMessage&&m.slides.forEach(((s,a)=>{const i=m.params.loop?parseInt(s.getAttribute("data-swiper-slide-index"),10):a;l(s,e.slideLabelMessage.replace(/\{\{index\}\}/,i+1).replace(/\{\{slidesLength\}\}/,t))}))},I=()=>{const e=m.params.a11y;m.el.append(y);const t=m.el;e.containerRoleDescriptionMessage&&n(t,e.containerRoleDescriptionMessage),e.containerMessage&&l(t,e.containerMessage);const a=m.wrapperEl,i=e.id||a.getAttribute("id")||`swiper-wrapper-${r=16,void 0===r&&(r=16),"x".repeat(r).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var r;const o=m.params.autoplay&&m.params.autoplay.enabled?"off":"polite";var d;d=i,x(a).forEach((e=>{e.setAttribute("id",d)})),function(e,t){(e=x(e)).forEach((e=>{e.setAttribute("aria-live",t)}))}(a,o),P();let{nextEl:p,prevEl:h}=m.navigation?m.navigation:{};p=x(p),h=x(h),p&&p.forEach((t=>S(t,i,e.nextSlideMessage))),h&&h.forEach((t=>S(t,i,e.prevSlideMessage))),u()&&x(m.pagination.el).forEach((e=>{e.addEventListener("keydown",c)})),s().addEventListener("visibilitychange",C),m.el.addEventListener("focus",L,!0),m.el.addEventListener("focus",L,!0),m.el.addEventListener("pointerdown",T,!0),m.el.addEventListener("pointerup",M,!0)};g("beforeInit",(()=>{y=f("span",m.params.a11y.notificationClass),y.setAttribute("aria-live","assertive"),y.setAttribute("aria-atomic","true")})),g("afterInit",(()=>{m.params.a11y.enabled&&I()})),g("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{m.params.a11y.enabled&&P()})),g("fromEdge toEdge afterInit lock unlock",(()=>{m.params.a11y.enabled&&function(){if(m.params.loop||m.params.rewind||!m.navigation)return;const{nextEl:e,prevEl:t}=m.navigation;t&&(m.isBeginning?(o(t),i(t)):(d(t),a(t))),e&&(m.isEnd?(o(e),i(e)):(d(e),a(e)))}()})),g("paginationUpdate",(()=>{m.params.a11y.enabled&&function(){const e=m.params.a11y;p()&&m.pagination.bullets.forEach((t=>{m.params.pagination.clickable&&(a(t),m.params.pagination.renderBullet||(r(t,"button"),l(t,e.paginationBulletMessage.replace(/\{\{index\}\}/,w(t)+1)))),t.matches(X(m.params.pagination.bulletActiveClass))?t.setAttribute("aria-current","true"):t.removeAttribute("aria-current")}))}()})),g("destroy",(()=>{m.params.a11y.enabled&&function(){y&&y.remove();let{nextEl:e,prevEl:t}=m.navigation?m.navigation:{};e=x(e),t=x(t),e&&e.forEach((e=>e.removeEventListener("keydown",c))),t&&t.forEach((e=>e.removeEventListener("keydown",c))),u()&&x(m.pagination.el).forEach((e=>{e.removeEventListener("keydown",c)})),s().removeEventListener("visibilitychange",C),m.el.removeEventListener("focus",L,!0),m.el.removeEventListener("pointerdown",T,!0),m.el.removeEventListener("pointerup",M,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:i}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let r=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=a();let s;s=e?new URL(e):t.location;const i=s.pathname.slice(1).split("/").filter((e=>""!==e)),r=i.length;return{key:i[r-2],value:i[r-1]}},d=(e,s)=>{const i=a();if(!r||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):i.location;const o=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${s}"]`):t.slides[s];let d=l(o.getAttribute("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e?`${e}/`:""}${d}`}else n.pathname.includes(e)||(d=`${e?`${e}/`:""}${d}`);t.params.history.keepQuery&&(d+=n.search);const c=i.history.state;c&&c.value===d||(t.params.history.replaceState?i.history.replaceState({value:d},null,d):i.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};i("init",(()=>{t.params.history.enabled&&(()=>{const e=a();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);r=!0,n=o(t.params.url),n.key||n.value?(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p)):t.params.history.replaceState||e.addEventListener("popstate",p)}})()})),i("destroy",(()=>{t.params.history.enabled&&(()=>{const e=a();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),i("transitionEnd _freeModeNoMomentumRelease",(()=>{r&&d(t.params.history.key,t.activeIndex)})),i("slideChange",(()=>{r&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:i,emit:r,on:n}=e,l=!1;const o=s(),d=a();i({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1,getSlideIndex(e,s){if(t.virtual&&t.params.virtual.enabled){const e=t.slides.filter((e=>e.getAttribute("data-hash")===s))[0];return e?parseInt(e.getAttribute("data-swiper-slide-index"),10):0}return t.getSlideIndex(m(t.slidesEl,`.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]`)[0])}}});const c=()=>{r("hashChange");const e=o.location.hash.replace("#",""),s=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex];if(e!==(s?s.getAttribute("data-hash"):"")){const s=t.params.hashNavigation.getSlideIndex(t,e);if(void 0===s||Number.isNaN(s))return;t.slideTo(s)}},p=()=>{if(!l||!t.params.hashNavigation.enabled)return;const e=t.virtual&&t.params.virtual.enabled?t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`):t.slides[t.activeIndex],s=e?e.getAttribute("data-hash")||e.getAttribute("data-history"):"";t.params.hashNavigation.replaceState&&d.history&&d.history.replaceState?(d.history.replaceState(null,null,`#${s}`||""),r("hashSet")):(o.location.hash=s||"",r("hashSet"))};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0,a=t.params.hashNavigation.getSlideIndex(t,e);t.slideTo(a||0,s,t.params.runCallbacksOnInit,!0)}t.params.hashNavigation.watchState&&d.addEventListener("hashchange",c)})()})),n("destroy",(()=>{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d.removeEventListener("hashchange",c)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&p()})),n("slideChange",(()=>{l&&t.params.cssMode&&p()}))},function(e){function t(e){r&&!r.destroyed&&r.wrapperEl&&e.target===r.wrapperEl&&(r.wrapperEl.removeEventListener("transitionend",t),v||C())}let a,i,{swiper:r,extendParams:n,on:l,emit:o,params:d}=e;r.autoplay={running:!1,paused:!1,timeLeft:0},n({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!1,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}});let c,p,u,m,h,f,g,v,w=d&&d.autoplay?d.autoplay.delay:3e3,b=d&&d.autoplay?d.autoplay.delay:3e3,y=(new Date).getTime();const E=()=>{if(r.destroyed||!r.autoplay.running)return;r.autoplay.paused?p=!0:p&&(b=c,p=!1);const e=r.autoplay.paused?c:y+b-(new Date).getTime();r.autoplay.timeLeft=e,o("autoplayTimeLeft",e,e/w),i=requestAnimationFrame((()=>{E()}))},x=e=>{if(r.destroyed||!r.autoplay.running)return;cancelAnimationFrame(i),E();let t=void 0===e?r.params.autoplay.delay:e;w=r.params.autoplay.delay,b=r.params.autoplay.delay;const s=(()=>{let e;if(e=r.virtual&&r.params.virtual.enabled?r.slides.filter((e=>e.classList.contains("swiper-slide-active")))[0]:r.slides[r.activeIndex],e)return parseInt(e.getAttribute("data-swiper-autoplay"),10)})();!Number.isNaN(s)&&s>0&&void 0===e&&(t=s,w=s,b=s),c=t;const n=r.params.speed,l=()=>{r&&!r.destroyed&&(r.params.autoplay.reverseDirection?!r.isBeginning||r.params.loop||r.params.rewind?(r.slidePrev(n,!0,!0),o("autoplay")):r.params.autoplay.stopOnLastSlide||(r.slideTo(r.slides.length-1,n,!0,!0),o("autoplay")):!r.isEnd||r.params.loop||r.params.rewind?(r.slideNext(n,!0,!0),o("autoplay")):r.params.autoplay.stopOnLastSlide||(r.slideTo(0,n,!0,!0),o("autoplay")),r.params.cssMode&&(y=(new Date).getTime(),requestAnimationFrame((()=>{x()}))))};return t>0?(clearTimeout(a),a=setTimeout((()=>{l()}),t)):requestAnimationFrame((()=>{l()})),t},S=()=>{y=(new Date).getTime(),r.autoplay.running=!0,x(),o("autoplayStart")},T=()=>{r.autoplay.running=!1,clearTimeout(a),cancelAnimationFrame(i),o("autoplayStop")},M=(e,s)=>{if(r.destroyed||!r.autoplay.running)return;clearTimeout(a),e||(g=!0);const i=()=>{o("autoplayPause"),r.params.autoplay.waitForTransition?r.wrapperEl.addEventListener("transitionend",t):C()};if(r.autoplay.paused=!0,s)return f&&(c=r.params.autoplay.delay),f=!1,void i();const n=c||r.params.autoplay.delay;c=n-((new Date).getTime()-y),r.isEnd&&c<0&&!r.params.loop||(c<0&&(c=0),i())},C=()=>{r.isEnd&&c<0&&!r.params.loop||r.destroyed||!r.autoplay.running||(y=(new Date).getTime(),g?(g=!1,x(c)):x(),r.autoplay.paused=!1,o("autoplayResume"))},L=()=>{if(r.destroyed||!r.autoplay.running)return;const e=s();"hidden"===e.visibilityState&&(g=!0,M(!0)),"visible"===e.visibilityState&&C()},P=e=>{"mouse"===e.pointerType&&(g=!0,v=!0,r.animating||r.autoplay.paused||M(!0))},I=e=>{"mouse"===e.pointerType&&(v=!1,r.autoplay.paused&&C())};l("init",(()=>{r.params.autoplay.enabled&&(r.params.autoplay.pauseOnMouseEnter&&(r.el.addEventListener("pointerenter",P),r.el.addEventListener("pointerleave",I)),s().addEventListener("visibilitychange",L),S())})), +l("destroy",(()=>{r.el.removeEventListener("pointerenter",P),r.el.removeEventListener("pointerleave",I),s().removeEventListener("visibilitychange",L),r.autoplay.running&&T()})),l("_freeModeStaticRelease",(()=>{(m||g)&&C()})),l("_freeModeNoMomentumRelease",(()=>{r.params.autoplay.disableOnInteraction?T():M(!0,!0)})),l("beforeTransitionStart",((e,t,s)=>{!r.destroyed&&r.autoplay.running&&(s||!r.params.autoplay.disableOnInteraction?M(!0,!0):T())})),l("sliderFirstMove",(()=>{!r.destroyed&&r.autoplay.running&&(r.params.autoplay.disableOnInteraction?T():(u=!0,m=!1,g=!1,h=setTimeout((()=>{g=!0,m=!0,M(!0)}),200)))})),l("touchEnd",(()=>{if(!r.destroyed&&r.autoplay.running&&u){if(clearTimeout(h),clearTimeout(a),r.params.autoplay.disableOnInteraction)return m=!1,void(u=!1);m&&r.params.cssMode&&C(),m=!1,u=!1}})),l("slideChange",(()=>{!r.destroyed&&r.autoplay.running&&(f=!0)})),Object.assign(r.autoplay,{start:S,stop:T,pause:M,resume:C})},function(e){function t(){const e=r.thumbs.swiper;if(!e||e.destroyed)return;const t=e.clickedIndex,s=e.clickedSlide;if(s&&s.classList.contains(r.params.thumbs.slideThumbActiveClass))return;if(null==t)return;let a;a=e.params.loop?parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"),10):t,r.params.loop?r.slideToLoop(a):r.slideTo(a)}function a(){const{thumbs:e}=r.params;if(d)return!1;d=!0;const s=r.constructor;if(e.swiper instanceof s)r.thumbs.swiper=e.swiper,Object.assign(r.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Object.assign(r.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1}),r.thumbs.swiper.update();else if(o(e.swiper)){const t=Object.assign({},e.swiper);Object.assign(t,{watchSlidesProgress:!0,slideToClickedSlide:!1}),r.thumbs.swiper=new s(t),c=!0}return r.thumbs.swiper.el.classList.add(r.params.thumbs.thumbsContainerClass),r.thumbs.swiper.on("tap",t),!0}function i(e){const t=r.thumbs.swiper;if(!t||t.destroyed)return;const s="auto"===t.params.slidesPerView?t.slidesPerViewDynamic():t.params.slidesPerView;let a=1;const i=r.params.thumbs.slideThumbActiveClass;if(r.params.slidesPerView>1&&!r.params.centeredSlides&&(a=r.params.slidesPerView),r.params.thumbs.multipleActiveThumbs||(a=1),a=Math.floor(a),t.slides.forEach((e=>e.classList.remove(i))),t.params.loop||t.params.virtual&&t.params.virtual.enabled)for(let e=0;e{e.classList.add(i)}));else for(let e=0;ee.getAttribute("data-swiper-slide-index")===`${r.realIndex}`))[0];i=t.slides.indexOf(e),o=r.activeIndex>r.previousIndex?"next":"prev"}else i=r.realIndex,o=i>r.previousIndex?"next":"prev";l&&(i+="next"===o?n:-1*n),t.visibleSlidesIndexes&&t.visibleSlidesIndexes.indexOf(i)<0&&(t.params.centeredSlides?i=i>a?i-Math.floor(s/2)+1:i+Math.floor(s/2)-1:i>a&&t.params.slidesPerGroup,t.slideTo(i,e?0:void 0))}}let{swiper:r,extendParams:n,on:l}=e;n({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let d=!1,c=!1;r.thumbs={swiper:null},l("beforeInit",(()=>{const{thumbs:e}=r.params;if(e&&e.swiper)if("string"==typeof e.swiper||e.swiper instanceof HTMLElement){const t=s(),n=()=>{const s="string"==typeof e.swiper?t.querySelector(e.swiper):e.swiper;if(s&&s.swiper)e.swiper=s.swiper,a(),i(!0);else if(s){const t=n=>{e.swiper=n.detail[0],s.removeEventListener("init",t),a(),i(!0),e.swiper.update(),r.update()};s.addEventListener("init",t)}return s},l=()=>{r.destroyed||n()||requestAnimationFrame(l)};requestAnimationFrame(l)}else a(),i(!0)})),l("slideChange update resize observerUpdate",(()=>{i()})),l("setTransition",((e,t)=>{const s=r.thumbs.swiper;s&&!s.destroyed&&s.setTransition(t)})),l("beforeDestroy",(()=>{const e=r.thumbs.swiper;e&&!e.destroyed&&c&&e.destroy()})),Object.assign(r.thumbs,{init:a,update:i})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){if(t.params.cssMode)return;const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){if(t.params.cssMode)return;const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:n()})},onTouchEnd:function(e){let{currentPos:s}=e;if(t.params.cssMode)return;const{params:r,wrapperEl:l,rtlTranslate:o,snapGrid:d,touchEventsData:c}=t,p=n()-c.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=c.velocities.pop(),s=c.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||n()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,c.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let p=t.translate+s;o&&(p=-p);let u,m=!1;const h=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(pt.minTranslate())r.freeMode.momentumBounce?(p-t.minTranslate()>h&&(p=t.minTranslate()+h),u=t.minTranslate(),m=!0,c.allowMomentumBounce=!0):p=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-p){e=t;break}p=Math.abs(d[e]-p){t.loopFix()})),0!==t.velocity){if(e=o?Math.abs((-p-t.translate)/t.velocity):Math.abs((p-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((o?-p:p)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&c.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(u),y(l,(()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(p),t.setTransition(e),t.setTranslate(p),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,y(l,(()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(p),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||p>=r.longSwipesMs)&&(a("_freeModeStaticRelease"),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,i,{swiper:r,extendParams:n,on:l}=e;n({grid:{rows:1,fill:"column"}});const o=()=>{let e=r.params.spaceBetween;return"string"==typeof e&&e.indexOf("%")>=0?e=parseFloat(e.replace("%",""))/100*r.size:"string"==typeof e&&(e=parseFloat(e)),e};l("init",(()=>{i=r.params.grid&&r.params.grid.rows>1})),l("update",(()=>{const{params:e,el:t}=r,s=e.grid&&e.grid.rows>1;i&&!s?(t.classList.remove(`${e.containerModifierClass}grid`,`${e.containerModifierClass}grid-column`),a=1,r.emitContainerClasses()):!i&&s&&(t.classList.add(`${e.containerModifierClass}grid`),"column"===e.grid.fill&&t.classList.add(`${e.containerModifierClass}grid-column`),r.emitContainerClasses()),i=s})),r.grid={initSlides:e=>{const{slidesPerView:i}=r.params,{rows:n,fill:l}=r.params.grid,o=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:e.length;a=Math.floor(o/n),t=Math.floor(o/n)===o/n?o:Math.ceil(o/n)*n,"auto"!==i&&"row"===l&&(t=Math.max(t,i*n)),s=t/n},unsetSlides:()=>{r.slides&&r.slides.forEach((e=>{e.swiperSlideGridSet&&(e.style.height="",e.style[r.getDirectionLabel("margin-top")]="")}))},updateSlide:(e,i,n)=>{const{slidesPerGroup:l}=r.params,d=o(),{rows:c,fill:p}=r.params.grid,u=r.virtual&&r.params.virtual.enabled?r.virtual.slides.length:n.length;let m,h,f;if("row"===p&&l>1){const s=Math.floor(e/(l*c)),a=e-c*l*s,r=0===s?l:Math.min(Math.ceil((u-s*c*l)/c),l);f=Math.floor(a/r),h=a-f*r+s*l,m=h+f*t/c,i.style.order=m}else"column"===p?(h=Math.floor(e/c),f=e-h*c,(h>a||h===a&&f===c-1)&&(f+=1,f>=c&&(f=0,h+=1))):(f=Math.floor(e/s),h=e-f*s);i.row=f,i.column=h,i.style.height=`calc((100% - ${(c-1)*d}px) / ${c})`,i.style[r.getDirectionLabel("margin-top")]=0!==f?d&&`${d}px`:"",i.swiperSlideGridSet=!0},updateWrapperSize:(e,s)=>{const{centeredSlides:a,roundLengths:i}=r.params,n=o(),{rows:l}=r.params.grid;if(r.virtualSize=(e+n)*t,r.virtualSize=Math.ceil(r.virtualSize/l)-n,r.params.cssMode||(r.wrapperEl.style[r.getDirectionLabel("width")]=`${r.virtualSize+n}px`),a){const e=[];for(let t=0;t{const{slides:e}=t;t.params.fadeEffect;for(let s=0;s{const s=t.slides.map((e=>u(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`})),W({swiper:t,duration:e,transformElements:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=s?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=f("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"left":"top")).split(" ")),e.append(a)),i||(i=f("div",("swiper-slide-shadow-cube swiper-slide-shadow-"+(s?"right":"bottom")).split(" ")),e.append(i)),a&&(a.style.opacity=Math.max(-t,0)),i&&(i.style.opacity=Math.max(t,0))};q({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{el:e,wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:d}=t,c=t.params.cubeEffect,p=t.isHorizontal(),u=t.virtual&&t.params.virtual.enabled;let m,h=0;c.shadow&&(p?(m=t.wrapperEl.querySelector(".swiper-cube-shadow"),m||(m=f("div","swiper-cube-shadow"),t.wrapperEl.append(m)),m.style.height=`${r}px`):(m=e.querySelector(".swiper-cube-shadow"),m||(m=f("div","swiper-cube-shadow"),e.append(m))));for(let e=0;e-1&&(h=90*r+90*m,l&&(h=90*-r-90*m),t.browser&&t.browser.need3dFix&&Math.abs(h)/90%2==1&&(h+=.001)),s.style.transform=w,c.slideShadows&&i(s,m,p)}if(s.style.transformOrigin=`50% 50% -${o/2}px`,s.style["-webkit-transform-origin"]=`50% 50% -${o/2}px`,c.shadow)if(p)m.style.transform=`translate3d(0px, ${r/2+c.shadowOffset}px, ${-r/2}px) rotateX(89.99deg) rotateZ(0deg) scale(${c.shadowScale})`;else{const e=Math.abs(h)-90*Math.floor(Math.abs(h)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=c.shadowScale,a=c.shadowScale/t,i=c.shadowOffset;m.style.transform=`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-89.99deg)`}const g=(d.isSafari||d.isWebView)&&d.needPerspectiveFix?-o/2:0;s.style.transform=`translate3d(0px,0,${g}px) rotateX(${t.isHorizontal()?0:h}deg) rotateY(${t.isHorizontal()?-h:0}deg)`,s.style.setProperty("--swiper-cube-translate-z",`${g}px`)},setTransition:e=>{const{el:s,slides:a}=t;if(a.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),t.params.cubeEffect.shadow&&!t.isHorizontal()){const t=s.querySelector(".swiper-cube-shadow");t&&(t.style.transitionDuration=`${e}ms`)}},recreateShadows:()=>{const e=t.isHorizontal();t.slides.forEach((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(t,s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0}});const i=(e,s)=>{let a=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-left"):e.querySelector(".swiper-slide-shadow-top"),i=t.isHorizontal()?e.querySelector(".swiper-slide-shadow-right"):e.querySelector(".swiper-slide-shadow-bottom");a||(a=j("flip",e,t.isHorizontal()?"left":"top")),i||(i=j("flip",e,t.isHorizontal()?"right":"bottom")),a&&(a.style.opacity=Math.max(-s,0)),i&&(i.style.opacity=Math.max(s,0))};q({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r{const s=t.slides.map((e=>u(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),W({swiper:t,duration:e,transformElements:s})},recreateShadows:()=>{t.params.flipEffect,t.slides.forEach((e=>{let s=e.progress;t.params.flipEffect.limitRotation&&(s=Math.max(Math.min(e.progress,1),-1)),i(e,s)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}}),q({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,s=a.length;e0?u:0),t&&(t.style.opacity=-u>0?-u:0)}}},setTransition:e=>{t.slides.map((e=>u(e))).forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))}))},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({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 i=e=>"string"==typeof e?e:`${e}px`;q({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.style.transform=`translateX(calc(50% - ${e}px))`}for(let s=0;s0&&(f=r.prev,h=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),m.forEach(((e,s)=>{let a=f.rotate[s]*Math.abs(d*n);t.browser&&t.browser.need3dFix&&Math.abs(a)/90%2==1&&(a+=.001),m[s]=a})),a.style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,y=`translate3d(${g}) ${v} ${w}`;if(h&&f.shadow||!h){let e=a.querySelector(".swiper-slide-shadow");if(!e&&f.shadow&&(e=j("creative",a)),e){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e.style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const E=_(0,a);E.style.transform=y,E.style.opacity=b,f.origin&&(E.style.transformOrigin=f.origin)}},setTransition:e=>{const s=t.slides.map((e=>u(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),W({swiper:t,duration:e,transformElements:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,rotate:!0,perSlideRotate:2,perSlideOffset:8}}),q({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s,rtlTranslate:a}=t,i=t.params.cardsEffect,{startTranslate:r,isTouched:n}=t.touchEventsData,l=a?-t.translate:t.translate;for(let o=0;o0&&p<1&&(n||t.params.cssMode)&&l-1&&(n||t.params.cssMode)&&l>r;if(y||E){const e=(1-Math.abs((Math.abs(p)-.5)/.5))**.5;v+=-28*p*e,g+=-.5*e,w+=96*e,h=-25*e*Math.abs(p)+"%"}if(m=p<0?`calc(${m}px ${a?"-":"+"} (${w*Math.abs(p)}%))`:p>0?`calc(${m}px ${a?"-":"+"} (-${w*Math.abs(p)}%))`:`${m}px`,!t.isHorizontal()){const e=h;h=m,m=e}const x=p<0?""+(1+(1-g)*p):""+(1-(1-g)*p),S=`\n translate3d(${m}, ${h}, ${f}px)\n rotateZ(${i.rotate?a?-v:v:0}deg)\n scale(${x})\n `;if(i.slideShadows){let e=d.querySelector(".swiper-slide-shadow");e||(e=j("cards",d)),e&&(e.style.opacity=Math.min(Math.max((Math.abs(p)-.5)/.5,0),1))}d.style.zIndex=-Math.abs(Math.round(c))+e.length,_(0,d).style.transform=S}},setTransition:e=>{const s=t.slides.map((e=>u(e)));s.forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow").forEach((t=>{t.style.transitionDuration=`${e}ms`}))})),W({swiper:t,duration:e,transformElements:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return me.use(he),me}();const videoCarouselElement=document.querySelectorAll(".video-carousel-swiper-container");if(videoCarouselElement.length){var videoCarousel=new Swiper(".video-carousel-swiper-container",{loop:!0,spaceBetween:21,loopedSlides:4,slidesPerView:6,slidesPerGroup:3,centeredSlides:!1,initialSlide:3,watchSlidesProgress:!0,loopFillGroupWithBlank:!0,speed:800,a11y:!0,keyboard:{enabled:!0,onlyInViewport:!0},navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},breakpoints:{1:{slidesPerView:3,slidesPerGroup:1},768:{slidesPerView:4},1400:{slidesPerView:6}},on:{init:function(){this.slides.forEach((e=>{e.classList.remove("keyboard-focused")}))},slideChange:function(){this.slides.forEach((e=>{e.classList.remove("keyboard-focused")}));const e=this.slides[this.activeIndex];e&&e.classList.add("keyboard-focused")},transitionStart:function(){var e=document.querySelectorAll("video");Array.prototype.forEach.call(e,(function(e){e.pause()}))}}});function updateVisibleSlidesClass(e){if(window.innerWidth>1){e.slides.forEach((e=>{e.classList.remove("first-visible-slide","last-visible-slide")}));const t=Array.from(e.slides).filter((e=>e.classList.contains("swiper-slide-visible")));t.length>0&&(t[0].classList.add("first-visible-slide"),t[t.length-1].classList.add("last-visible-slide"))}else e.slides.forEach((e=>{e.classList.remove("first-visible-slide","last-visible-slide")}))}let e;function onResize(){clearTimeout(e),e=setTimeout((function(){updateVisibleSlidesClass(videoCarousel)}),250)}videoCarousel.on("init slideChange update",(function(){updateVisibleSlidesClass(this)})),window.addEventListener("resize",onResize),updateVisibleSlidesClass(videoCarousel);let t=!1;function handleKeyboardNavigation(e){const s=e.key;let a="Tab"===s,i=e.shiftKey;("ArrowLeft"===s||"ArrowRight"===s||a&&!i||a&&i)&&(t=!0,setTimeout((()=>{t?(videoCarousel.slides.forEach((e=>e.classList.add("keyboard-focused"))),t=!0):videoCarousel.slides.forEach((e=>e.classList.remove("keyboard-focused")))}),50))}function clearKeyboardFocus(){videoCarousel.slides.forEach((e=>{e.classList.remove("keyboard-focused")})),videoCarouselElement[0].classList.remove("keyboard-focused"),t=!1}document.addEventListener("keydown",handleKeyboardNavigation),document.addEventListener("click",(function(e){e.target.classList.contains("swiper-button-next")&&clearKeyboardFocus(),e.target.classList.contains("swiper-button-prev")&&clearKeyboardFocus()})),setTimeout((()=>{clearKeyboardFocus()}),200),window.addEventListener("resize",(function(){setTimeout((()=>{clearKeyboardFocus()}),200)}));const s=document.querySelector(".video-carousel-swiper-container");function isTargetElement(e){return e.classList.contains("image-placeholder-action")||"VIDEO"===e.tagName||e.classList.contains("btn")}function handleFocusIn(e){const t=undefined;isTargetElement(e.target)&&s.classList.add("container-focused-class")}function handleFocusOut(e){const t=undefined;isTargetElement(e.target)&&s.classList.remove("container-focused-class")}s||console.warn("Swiper container not found."),s.addEventListener("focusin",handleFocusIn),s.addEventListener("focusout",handleFocusOut)} \ No newline at end of file diff --git a/config.codekit3 b/config.codekit3 index ff5cb9f..198b768 100644 --- a/config.codekit3 +++ b/config.codekit3 @@ -2555,6 +2555,17 @@ "q" : 100, "rq" : 75 }, + "\/assets\/js\/block\/video-carousel.js" : { + "bF" : 0, + "ft" : 64, + "ma" : 0, + "mi" : 1, + "oA" : 0, + "oAP" : "\/assets\/js\/video-carousel-min.js", + "oF" : 0, + "sC" : 3, + "tS" : 0 + }, "\/assets\/js\/blocks-min.js" : { "bF" : 0, "ft" : 64, @@ -2651,6 +2662,28 @@ "sC" : 3, "tS" : 0 }, + "\/assets\/js\/vendor\/swiper-bundle.min.js" : { + "bF" : 0, + "ft" : 64, + "ma" : 0, + "mi" : 1, + "oA" : 0, + "oAP" : "\/assets\/js\/swiper-bundle.min-min.js", + "oF" : 0, + "sC" : 3, + "tS" : 0 + }, + "\/assets\/js\/video-carousel-min.js" : { + "bF" : 0, + "ft" : 64, + "ma" : 0, + "mi" : 1, + "oA" : 0, + "oAP" : "\/assets\/video-carousel-min-min.js", + "oF" : 0, + "sC" : 3, + "tS" : 0 + }, "\/assets\/scss\/blocks\/_affiliate-landing.scss" : { "aP" : 0, "bl" : 0, diff --git a/inc/helper-functions.php b/inc/helper-functions.php index 7e1a17f..40c9966 100644 --- a/inc/helper-functions.php +++ b/inc/helper-functions.php @@ -465,51 +465,26 @@ function eqd_logo_setup() { } add_action( 'after_setup_theme', 'eqd_logo_setup' ); -function eqd_enqueue_swiper_assets() { +function enqueue_block_editor_assets_vc() { - // Only proceed if we're on a singular page and it has content. - if ( is_singular() && have_posts() ) { - the_post(); // Load the post data. - $content = get_the_content(); - - // Check if our ACF block is in the content. - if ( has_block( 'acf/video-carousel', $content ) ) { - // Enqueue Swiper.js CSS - wp_enqueue_style( 'swiper-css', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css' ); - - // Enqueue Swiper.js Script - wp_enqueue_script( 'swiper-js', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js', array(), null, true ); - } - - // Rewind posts so that the loop can run as expected elsewhere. - rewind_posts(); - } + wp_enqueue_style('swiper-css', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css', array(), '11.0.0'); } -add_action( 'wp_enqueue_scripts', 'eqd_enqueue_swiper_assets' ); +add_action('enqueue_block_editor_assets', 'enqueue_block_editor_assets_vc'); -function eqd_enqueue_swiper_assets_admin($hook_suffix) { - // Only proceed on post edit screens. - if ('post.php' !== $hook_suffix && 'post-new.php' !== $hook_suffix) { - return; - } +function enqueue_swiper_assets() { + // Global post object to check the current post content global $post; - if ($post && has_blocks($post->post_content)) { - $blocks = parse_blocks($post->post_content); - foreach ($blocks as $block) { - if ($block['blockName'] === 'acf/video-carousel') { - // Enqueue Swiper.js CSS for Admin - wp_enqueue_style('swiper-css-admin', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css'); - - // Enqueue Swiper.js Script for Admin - wp_enqueue_script('swiper-js-admin', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js', array(), null, true); - - // No need to check further blocks - break; - } - } + + // Check if the post is loaded and contains the specific block + if (is_a($post, 'WP_Post') && has_block('acf/video-carousel', $post)) { + // Enqueue Swiper CSS + wp_enqueue_style('swiper-css', 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css', array(), '11.0.0'); + + // Enqueue your custom JS to initialize Swiper + wp_enqueue_script('custom-swiper-initialization', get_template_directory_uri() . '/assets/js/video-carousel-min.js', array(), '1.0.0', true); } } -add_action('admin_enqueue_scripts', 'eqd_enqueue_swiper_assets_admin'); +add_action('wp_enqueue_scripts', 'enqueue_swiper_assets'); diff --git a/template-parts/blocks/video-carousel/template.php b/template-parts/blocks/video-carousel/template.php index 1976026..2146e65 100644 --- a/template-parts/blocks/video-carousel/template.php +++ b/template-parts/blocks/video-carousel/template.php @@ -36,6 +36,7 @@ $image_path = get_template_directory_uri() . '/assets/images/'; ?> +
+ + + + tag + echo ''; + } else { + // Handle the error if the file could not be read + echo ''; + } + ?> + + + + + +