UNPKG

inertialrush-game-test

Version:

This package enables the integration of the Inertial Rush game into any React application, making it easy to showcase the game.

1,382 lines (1,381 loc) 1.37 MB
/** * Swiper 10.0.4 * Most modern mobile touch slider and framework with hardware accelerated transitions * https://swiperjs.com * * Copyright 2014-2023 Vladimir Kharlampidi * * Released under the MIT License * * Released on: July 8, 2023 */ 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, t) { return void 0 === t && (t = 0), setTimeout(e, t); } function l() { return Date.now(); } function o(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 d(e) { return ( "object" == typeof e && null !== e && e.constructor && "Object" === Object.prototype.toString.call(e).slice(8, -1) ); } function c() { 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 && (d(e[a]) && d(i[a]) ? i[a].__swiper__ ? (e[a] = i[a]) : c(e[a], i[a]) : !d(e[a]) && d(i[a]) ? ((e[a] = {}), i[a].__swiper__ ? (e[a] = i[a]) : c(e[a], i[a])) : (e[a] = i[a])); } } } var s; return e; } function p(e, t, s) { e.style.setProperty(t, s); } function u(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 = 0.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 m(e) { return ( e.querySelector(".swiper-slide-transform") || (e.shadowRoot && e.shadowRoot.querySelector(".swiper-slide-transform")) || e ); } function h(e, t) { return void 0 === t && (t = ""), [...e.children].filter((e) => e.matches(t)); } function f(e, t) { void 0 === t && (t = []); const s = document.createElement(e); return s.classList.add(...(Array.isArray(t) ? t : [t])), s; } function g(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 v(e, t) { return r().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 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; } let x, S, T; function M() { return ( x || (x = (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)), }; })()), x ); } function C(e) { return ( void 0 === e && (e = {}), S || (S = (function (e) { let { userAgent: t } = void 0 === e ? {} : e; const s = M(), 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)), S ); } function P() { return ( T || (T = (function () { const e = r(); let t = !1; function s() { const t = e.navigator.userAgent.toLowerCase(); return t.indexOf("safari") >= 0 && t.indexOf("chrome") < 0 && t.indexOf("android") < 0; } if (s()) { const s = String(e.navigator.userAgent); if (s.includes("Version/")) { const [e, a] = s .split("Version/")[1] .split(" ")[0] .split(".") .map((e) => Number(e)); t = e < 16 || (16 === e && a < 2); } } return { isSafari: t || s(), needPerspectiveFix: t, isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent), }; })()), T ); } var L = { 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 z = (e, t) => { if (!e || e.destroyed || !e.params) return; const s = t.closest(e.isElement ? "swiper-slide" : `.${e.params.slideClass}`); if (s) { const t = s.querySelector(`.${e.params.lazyPreloaderClass}`); t && t.remove(); } }, A = (e, t) => { if (!e.slides[t]) return; const s = e.slides[t].querySelector('[loading="lazy"]'); s && s.removeAttribute("loading"); }, $ = (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) && A(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) && A(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) && A(e, a); }; var I = { 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(v(a, "padding-left") || 0, 10) - parseInt(v(a, "padding-right") || 0, 10)), (s = s - parseInt(v(a, "padding-top") || 0, 10) - parseInt(v(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) { return e.isHorizontal() ? t : { 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", }[t]; } function s(e, s) { return parseFloat(e.getPropertyValue(t(s)) || 0); } const a = e.params, { wrapperEl: i, slidesEl: r, size: n, rtlTranslate: l, wrongRTL: o } = e, d = e.virtual && a.virtual.enabled, c = d ? e.virtual.slides.length : e.slides.length, u = h(r, `.${e.params.slideClass}, swiper-slide`), m = d ? e.virtual.slides.length : u.length; let f = []; const g = [], w = []; let b = a.slidesOffsetBefore; "function" == typeof b && (b = a.slidesOffsetBefore.call(e)); let y = a.slidesOffsetAfter; "function" == typeof y && (y = a.slidesOffsetAfter.call(e)); const x = e.snapGrid.length, S = e.slidesGrid.length; let T = a.spaceBetween, M = -b, C = 0, P = 0; if (void 0 === n) return; "string" == typeof T && T.indexOf("%") >= 0 ? (T = (parseFloat(T.replace("%", "")) / 100) * n) : "string" == typeof T && (T = parseFloat(T)), (e.virtualSize = -T), u.forEach((e) => { l ? (e.style.marginLeft = "") : (e.style.marginRight = ""), (e.style.marginBottom = ""), (e.style.marginTop = ""); }), a.centeredSlides && a.cssMode && (p(i, "--swiper-centered-offset-before", ""), p(i, "--swiper-centered-offset-after", "")); const L = a.grid && a.grid.rows > 1 && e.grid; let z; L && e.grid.initSlides(m); const A = "auto" === a.slidesPerView && a.breakpoints && Object.keys(a.breakpoints).filter((e) => void 0 !== a.breakpoints[e].slidesPerView).length > 0; for (let i = 0; i < m; i += 1) { let r; if ( ((z = 0), u[i] && (r = u[i]), L && e.grid.updateSlide(i, r, m, t), !u[i] || "none" !== v(r, "display")) ) { if ("auto" === a.slidesPerView) { A && (u[i].style[t("width")] = ""); const n = getComputedStyle(r), l = r.style.transform, o = r.style.webkitTransform; if ( (l && (r.style.transform = "none"), o && (r.style.webkitTransform = "none"), a.roundLengths) ) z = e.isHorizontal() ? E(r, "width", !0) : E(r, "height", !0); else { const e = s(n, "width"), t = s(n, "padding-left"), a = s(n, "padding-right"), i = s(n, "margin-left"), l = s(n, "margin-right"), o = n.getPropertyValue("box-sizing"); if (o && "border-box" === o) z = e + i + l; else { const { clientWidth: s, offsetWidth: n } = r; z = e + t + a + i + l + (n - s); } } l && (r.style.transform = l), o && (r.style.webkitTransform = o), a.roundLengths && (z = Math.floor(z)); } else (z = (n - (a.slidesPerView - 1) * T) / a.slidesPerView), a.roundLengths && (z = Math.floor(z)), u[i] && (u[i].style[t("width")] = `${z}px`); u[i] && (u[i].swiperSlideSize = z), w.push(z), a.centeredSlides ? ((M = M + z / 2 + C / 2 + T), 0 === C && 0 !== i && (M = M - n / 2 - T), 0 === i && (M = M - n / 2 - T), Math.abs(M) < 0.001 && (M = 0), a.roundLengths && (M = Math.floor(M)), P % a.slidesPerGroup == 0 && f.push(M), g.push(M)) : (a.roundLengths && (M = Math.floor(M)), (P - Math.min(e.params.slidesPerGroupSkip, P)) % e.params.slidesPerGroup == 0 && f.push(M), g.push(M), (M = M + z + T)), (e.virtualSize += z + T), (C = z), (P += 1); } } if ( ((e.virtualSize = Math.max(e.virtualSize, n) + y), l && o && ("slide" === a.effect || "coverflow" === a.effect) && (i.style.width = `${e.virtualSize + T}px`), a.setWrapperSize && (i.style[t("width")] = `${e.virtualSize + T}px`), L && e.grid.updateWrapperSize(z, f, t), !a.centeredSlides) ) { const t = []; for (let s = 0; s < f.length; s += 1) { let i = f[s]; a.roundLengths && (i = Math.floor(i)), f[s] <= e.virtualSize - n && t.push(i); } (f = t), Math.floor(e.virtualSize - n) - Math.floor(f[f.length - 1]) > 1 && f.push(e.virtualSize - n); } if (d && a.loop) { const t = w[0] + T; if (a.slidesPerGroup > 1) { const s = Math.ceil((e.virtual.slidesBefore + e.virtual.slidesAfter) / a.slidesPerGroup), i = t * a.slidesPerGroup; for (let e = 0; e < s; e += 1) f.push(f[f.length - 1] + i); } for (let s = 0; s < e.virtual.slidesBefore + e.virtual.slidesAfter; s += 1) 1 === a.slidesPerGroup && f.push(f[f.length - 1] + t), g.push(g[g.length - 1] + t), (e.virtualSize += t); } if ((0 === f.length && (f = [0]), 0 !== T)) { const s = e.isHorizontal() && l ? "marginLeft" : t("marginRight"); u.filter((e, t) => !(a.cssMode && !a.loop) || t !== u.length - 1).forEach((e) => { e.style[s] = `${T}px`; }); } if (a.centeredSlides && a.centeredSlidesBounds) { let e = 0; w.forEach((t) => { e += t + (T || 0); }), (e -= T); const t = e - n; f = f.map((e) => (e <= 0 ? -b : e > t ? t + y : e)); } if (a.centerInsufficientSlides) { let e = 0; if ( (w.forEach((t) => { e += t + (T || 0); }), (e -= T), e < n) ) { const t = (n - e) / 2; f.forEach((e, s) => { f[s] = e - t; }), g.forEach((e, s) => { g[s] = e + t; }); } } if ( (Object.assign(e, { slides: u, snapGrid: f, slidesGrid: g, slidesSizesGrid: w }), a.centeredSlides && a.cssMode && !a.centeredSlidesBounds) ) { p(i, "--swiper-centered-offset-before", -f[0] + "px"), p(i, "--swiper-centered-offset-after", e.size / 2 - w[w.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 ( (m !== c && e.emit("slidesLengthChange"), f.length !== x && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")), g.length !== S && e.emit("slidesGridLengthChange"), a.watchSlidesProgress && e.updateSlidesOffset(), !(d || a.cssMode || ("slide" !== a.effect && "fade" !== a.effect))) ) { const t = `${a.containerModifierClass}backface-hidden`, s = e.el.classList.contains(t); m <= a.maxBackfaceHiddenSlides ? s || e.el.classList.add(t) : s && 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); }), (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]; ((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)), (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) => h(a, `.${s.slideClass}${e}, swiper-slide${e}`)[0]; let l; if ( (t.forEach((e) => { e.classList.remove(s.slideActiveClass, s.slideNextClass, s.slidePrevClass); }), 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), (l = n(`[data-swiper-slide-index="${t}"]`)); } else l = n(`[data-swiper-slide-index="${i}"]`); else l = t[i]; if (l) { l.classList.add(s.slideActiveClass); let e = (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; })(l, `.${s.slideClass}, swiper-slide`)[0]; s.loop && !e && (e = t[0]), e && e.classList.add(s.slideNextClass); let a = (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; })(l, `.${s.slideClass}, swiper-slide`)[0]; s.loop && 0 === !a && (a = t[t.length - 1]), a && a.classList.add(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)) return ( o !== l && ((t.snapIndex = o), t.emit("snapIndexChange")), void (t.params.loop && t.virtual && t.params.virtual.enabled && (t.realIndex = c(d))) ); let p; (p = t.virtual && i.virtual.enabled && i.loop ? c(d) : t.slides[d] ? parseInt(t.slides[d].getAttribute("data-swiper-slide-index") || d, 10) : d), Object.assign(t, { previousSnapIndex: l, snapIndex: o, previousRealIndex: n, realIndex: p, previousIndex: r, activeIndex: d, }), t.initialized && $(t), t.emit("activeIndexChange"), t.emit("snapIndexChange"), n !== p && t.emit("realIndexChange"), (t.initialized || t.params.runCallbacksOnInit) && t.emit("slideChange"); }, updateClickedSlide: function (e) { const t = this, s = t.params, a = e.closest(`.${s.slideClass}, swiper-slide`); let i, r = !1; if (a) for (let e = 0; e < t.slides.length; e += 1) if (t.slides[e] === a) { (r = !0), (i = e); break; } if (!a || !r) return (t.clickedSlide = void 0), void (t.clickedIndex = void 0); (t.clickedSlide = a), t.virtual && t.params.virtual.enabled ? (t.clickedIndex = parseInt(a.getAttribute("data-swiper-slide-index"), 10)) : (t.clickedIndex = i), s.slideToClickedSlide && void 0 !== t.clickedIndex && t.clickedIndex !== t.activeIndex && t.slideToClickedSlide(); }, }; var k = { 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 = o(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 u({ 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, s && r.emit("transitionEnd")); }), r.wrapperEl.addEventListener("transitionend", r.onTranslateToWrapperTransitionEnd))), !0 ); }, }; function O(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 D = { slideTo: function (e, t, s, a, i) { void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), 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: m, wrapperEl: h, enabled: f, } = r; if ((r.animating && l.preventInteractionOnTransition) || (!f && !a && !i)) return !1; 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 && (m ? 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"), (m && -w === r.translate) || (!m && 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 = m ? 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 u({ 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 === t && (t = this.params.speed), void 0 === s && (s = !0), "string" == typeof e) ) { e = parseInt(e, 10); } const i = this; let r = e; return ( i.params.loop && (i.virtual && i.params.virtual.enabled ? (r += i.virtual.slidesBefore) : (r = i.getSlideIndexByData(r))), i.slideTo(r, t, s, a) ); }, slideNext: function (e, t, s) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); const a = this, { enabled: i, params: r, animating: n } = a; if (!i) return a; 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; a.loopFix({ direction: "next" }), (a._clientLeft = a.wrapperEl.clientLeft); } 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 === e && (e = this.params.speed), void 0 === t && (t = !0); const a = this, { params: i, snapGrid: r, slidesGrid: n, rtlTranslate: l, enabled: o, animating: d } = a; if (!o) return a; 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 a.slideTo(f, e, t, s); }, slideReset: function (e, t, s) { return ( void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), this.slideTo(this.activeIndex, e, t, s) ); }, slideToClosest: function (e, t, s, a) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), void 0 === a && (a = 0.5); const i = this; 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, { params: t, slidesEl: s } = e, a = "auto" === t.slidesPerView ? e.slidesPerViewDynamic() : t.slidesPerView; let i, r = 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 ? r < e.loopedSlides - a / 2 || r > e.slides.length - e.loopedSlides + a / 2 ? (e.loopFix(), (r = e.getSlideIndex(h(s, `${l}[data-swiper-slide-index="${i}"]`)[0])), n(() => { e.slideTo(r); })) : e.slideTo(r) : r > e.slides.length - a ? (e.loopFix(), (r = e.getSlideIndex(h(s, `${l}[data-swiper-slide-index="${i}"]`)[0])), n(() => { e.slideTo(r); })) : e.slideTo(r); } else e.slideTo(r); }, }; var G = { loopCreate: function (e) { const t = this, { params: s, slidesEl: a } = t; if (!s.loop || (t.virtual && t.params.virtual.enabled)) return; h(a, `.${s.slideClass}, swiper-slide`).forEach((e, t) => { e.setAttribute("data-swiper-slide-index", t); }), 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; 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") ); const h = "auto" === m.slidesPerView ? o.slidesPerViewDynamic() : Math.ceil(parseFloat(m.slidesPerView, 10)); let f = m.loopedSlides || h; f % m.slidesPerGroup != 0 && (f += m.slidesPerGroup - (f % m.slidesPerGroup)), (o.loopedSlides = f); const g = [], v = []; let w = o.activeIndex; void 0 === r ? (r = o.getSlideIndex(o.slides.filter((e) => e.classList.contains(m.slideActiveClass))[0])) : (w = r); const b = "next" === a || !a, y = "prev" === a || !a; let E = 0, x = 0; if (r < f) { E = Math.max(f - r, m.slidesPerGroup); for (let e = 0; e < f - r; e += 1) { const t = e - Math.floor(e / d.length) * d.length; g.push(d.length - t - 1); } } else if (r > o.slides.length - 2 * f) { x = Math.max(r - (o.slides.length - 2 * f), m.slidesPerGroup); for (let e = 0; e < x; e += 1) { const t = e - Math.floor(e / d.length) * d.length; v.push(t); } } if ( (y && g.forEach((e) => { (o.slides[e].swiperLoopMoveDOM = !0), u.prepend(o.slides[e]), (o.slides[e].swiperLoopMoveDOM = !1); }), b && v.forEach((e) => { (o.slides[e].swiperLoopMoveDOM = !0), u.append(o.slides[e]), (o.slides[e].swiperLoopMoveDOM = !1); }), o.recalcSlides(), "auto" === m.slidesPerView && o.updateSlides(), m.watchSlidesProgress && o.updateSlidesOffset(), s) ) if (g.length > 0 && y) if (void 0 === t) { const e = o.slidesGrid[w], t = o.slidesGrid[w + E] - e; l ? o.setTranslate(o.translate - t) : (o.slideTo(w + E, 0, !1, !0), i && (o.touches[o.isHorizontal() ? "startX" : "startY"] += t)); } else i && o.slideToLoop(t, 0, !1, !0); else if (v.length > 0 && b)