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
JavaScript
/**
* 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)