/**
* swiper 8.3.0
* most modern mobile touch slider and framework with hardware accelerated transitions
* https://swiperjs.com
*
* copyright 2014-2022 vladimir kharlampidi
*
* released under the mit license
*
* released on: july 6, 2022
*/
! function(e, t) {
"object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define &&
define.amd ? define(t) : (e = "undefined" != typeof globalthis ? globalthis : e || self).swiper = t()
}(this, (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
}
class n extends array {
constructor(e) {
"number" == typeof e ? super(e) : (super(...e || []), function(e) {
const t = e.__proto__;
object.defineproperty(e, "__proto__", {
get: () => t,
set(e) {
t.__proto__ = e
}
})
}(this))
}
}
function l(e) {
void 0 === e && (e = []);
const t = [];
return e.foreach((e => {
array.isarray(e) ? t.push(...l(e)) : t.push(e)
})), t
}
function o(e, t) {
return array.prototype.filter.call(e, t)
}
function d(e, t) {
const s = r(),
i = a();
let l = [];
if (!t && e instanceof n) return e;
if (!e) return new n(l);
if ("string" == typeof e) {
const s = e.trim();
if (s.indexof("<") >= 0 && s.indexof(">") >= 0) {
let e = "div";
0 === s.indexof("
e.split(" "))));
return this.foreach((e => {
e.classlist.add(...a)
})), this
},
removeclass: function() {
for (var e = arguments.length, t = new array(e), s = 0; s < e; s++) t[s] = arguments[s];
const a = l(t.map((e => e.split(" "))));
return this.foreach((e => {
e.classlist.remove(...a)
})), this
},
hasclass: function() {
for (var e = arguments.length, t = new array(e), s = 0; s < e; s++) t[s] = arguments[s];
const a = l(t.map((e => e.split(" "))));
return o(this, (e => a.filter((t => e.classlist.contains(t))).length > 0)).length > 0
},
toggleclass: function() {
for (var e = arguments.length, t = new array(e), s = 0; s < e; s++) t[s] = arguments[s];
const a = l(t.map((e => e.split(" "))));
this.foreach((e => {
a.foreach((t => {
e.classlist.toggle(t)
}))
}))
},
attr: function(e, t) {
if (1 === arguments.length && "string" == typeof e) return this[0] ? this[0].getattribute(
e) : void 0;
for (let s = 0; s < this.length; s += 1)
if (2 === arguments.length) this[s].setattribute(e, t);
else
for (const t in e) this[s][t] = e[t], this[s].setattribute(t, e[t]);
return this
},
removeattr: function(e) {
for (let t = 0; t < this.length; t += 1) this[t].removeattribute(e);
return this
},
transform: function(e) {
for (let t = 0; t < this.length; t += 1) this[t].style.transform = e;
return this
},
transition: function(e) {
for (let t = 0; t < this.length; t += 1) this[t].style.transitionduration = "string" !=
typeof e ? `${e}ms` : e;
return this
},
on: function() {
for (var e = arguments.length, t = new array(e), s = 0; s < e; s++) t[s] = arguments[s];
let [a, i, r, n] = t;
function l(e) {
const t = e.target;
if (!t) return;
const s = e.target.dom7eventdata || [];
if (s.indexof(e) < 0 && s.unshift(e), d(t).is(i)) r.apply(t, s);
else {
const e = d(t).parents();
for (let t = 0; t < e.length; t += 1) d(e[t]).is(i) && r.apply(e[t], s)
}
}
function o(e) {
const t = e && e.target && e.target.dom7eventdata || [];
t.indexof(e) < 0 && t.unshift(e), r.apply(this, t)
}
"function" == typeof t[1] && ([a, r, n] = t, i = void 0), n || (n = !1);
const c = a.split(" ");
let p;
for (let e = 0; e < this.length; e += 1) {
const t = this[e];
if (i)
for (p = 0; p < c.length; p += 1) {
const e = c[p];
t.dom7livelisteners || (t.dom7livelisteners = {}), t.dom7livelisteners[e] || (t
.dom7livelisteners[e] = []), t.dom7livelisteners[e].push({
listener: r,
proxylistener: l
}), t.addeventlistener(e, l, n)
} else
for (p = 0; p < c.length; p += 1) {
const e = c[p];
t.dom7listeners || (t.dom7listeners = {}), t.dom7listeners[e] || (t
.dom7listeners[e] = []), t.dom7listeners[e].push({
listener: r,
proxylistener: o
}), t.addeventlistener(e, o, n)
}
}
return this
},
off: function() {
for (var e = arguments.length, t = new array(e), s = 0; s < e; s++) t[s] = arguments[s];
let [a, i, r, n] = t;
"function" == typeof t[1] && ([a, r, n] = t, i = void 0), n || (n = !1);
const l = a.split(" ");
for (let e = 0; e < l.length; e += 1) {
const t = l[e];
for (let e = 0; e < this.length; e += 1) {
const s = this[e];
let a;
if (!i && s.dom7listeners ? a = s.dom7listeners[t] : i && s.dom7livelisteners && (
a = s.dom7livelisteners[t]), a && a.length)
for (let e = a.length - 1; e >= 0; e -= 1) {
const i = a[e];
r && i.listener === r || r && i.listener && i.listener.dom7proxy && i
.listener.dom7proxy === r ? (s.removeeventlistener(t, i.proxylistener,
n), a.splice(e, 1)) : r || (s.removeeventlistener(t, i
.proxylistener, n), a.splice(e, 1))
}
}
}
return this
},
trigger: function() {
const e = r();
for (var t = arguments.length, s = new array(t), a = 0; a < t; a++) s[a] = arguments[a];
const i = s[0].split(" "),
n = s[1];
for (let t = 0; t < i.length; t += 1) {
const a = i[t];
for (let t = 0; t < this.length; t += 1) {
const i = this[t];
if (e.customevent) {
const t = new e.customevent(a, {
detail: n,
bubbles: !0,
cancelable: !0
});
i.dom7eventdata = s.filter(((e, t) => t > 0)), i.dispatchevent(t), i
.dom7eventdata = [], delete i.dom7eventdata
}
}
}
return this
},
transitionend: function(e) {
const t = this;
return e && t.on("transitionend", (function s(a) {
a.target === this && (e.call(this, a), t.off("transitionend", s))
})), this
},
outerwidth: function(e) {
if (this.length > 0) {
if (e) {
const e = this.styles();
return this[0].offsetwidth + parsefloat(e.getpropertyvalue("margin-right")) +
parsefloat(e.getpropertyvalue("margin-left"))
}
return this[0].offsetwidth
}
return null
},
outerheight: function(e) {
if (this.length > 0) {
if (e) {
const e = this.styles();
return this[0].offsetheight + parsefloat(e.getpropertyvalue("margin-top")) +
parsefloat(e.getpropertyvalue("margin-bottom"))
}
return this[0].offsetheight
}
return null
},
styles: function() {
const e = r();
return this[0] ? e.getcomputedstyle(this[0], null) : {}
},
offset: function() {
if (this.length > 0) {
const e = r(),
t = a(),
s = this[0],
i = s.getboundingclientrect(),
n = t.body,
l = s.clienttop || n.clienttop || 0,
o = s.clientleft || n.clientleft || 0,
d = s === e ? e.scrolly : s.scrolltop,
c = s === e ? e.scrollx : s.scrollleft;
return {
top: i.top + d - l,
left: i.left + c - o
}
}
return null
},
css: function(e, t) {
const s = r();
let a;
if (1 === arguments.length) {
if ("string" != typeof e) {
for (a = 0; a < this.length; a += 1)
for (const t in e) this[a].style[t] = e[t];
return this
}
if (this[0]) return s.getcomputedstyle(this[0], null).getpropertyvalue(e)
}
if (2 === arguments.length && "string" == typeof e) {
for (a = 0; a < this.length; a += 1) this[a].style[e] = t;
return this
}
return this
},
each: function(e) {
return e ? (this.foreach(((t, s) => {
e.apply(t, [t, s])
})), this) : this
},
html: function(e) {
if (void 0 === e) return this[0] ? this[0].innerhtml : null;
for (let t = 0; t < this.length; t += 1) this[t].innerhtml = e;
return this
},
text: function(e) {
if (void 0 === e) return this[0] ? this[0].textcontent.trim() : null;
for (let t = 0; t < this.length; t += 1) this[t].textcontent = e;
return this
},
is: function(e) {
const t = r(),
s = a(),
i = this[0];
let l, o;
if (!i || void 0 === e) return !1;
if ("string" == typeof e) {
if (i.matches) return i.matches(e);
if (i.webkitmatchesselector) return i.webkitmatchesselector(e);
if (i.msmatchesselector) return i.msmatchesselector(e);
for (l = d(e), o = 0; o < l.length; o += 1)
if (l[o] === i) return !0;
return !1
}
if (e === s) return i === s;
if (e === t) return i === t;
if (e.nodetype || e instanceof n) {
for (l = e.nodetype ? [e] : e, o = 0; o < l.length; o += 1)
if (l[o] === i) return !0;
return !1
}
return !1
},
index: function() {
let e, t = this[0];
if (t) {
for (e = 0; null !== (t = t.previoussibling);) 1 === t.nodetype && (e += 1);
return e
}
},
eq: function(e) {
if (void 0 === e) return this;
const t = this.length;
if (e > t - 1) return d([]);
if (e < 0) {
const s = t + e;
return d(s < 0 ? [] : [this[s]])
}
return d([this[e]])
},
append: function() {
let e;
const t = a();
for (let s = 0; s < arguments.length; s += 1) {
e = s < 0 || arguments.length <= s ? void 0 : arguments[s];
for (let s = 0; s < this.length; s += 1)
if ("string" == typeof e) {
const a = t.createelement("div");
for (a.innerhtml = e; a.firstchild;) this[s].appendchild(a.firstchild)
} else if (e instanceof n)
for (let t = 0; t < e.length; t += 1) this[s].appendchild(e[t]);
else this[s].appendchild(e)
}
return this
},
prepend: function(e) {
const t = a();
let s, i;
for (s = 0; s < this.length; s += 1)
if ("string" == typeof e) {
const a = t.createelement("div");
for (a.innerhtml = e, i = a.childnodes.length - 1; i >= 0; i -= 1) this[s]
.insertbefore(a.childnodes[i], this[s].childnodes[0])
} else if (e instanceof n)
for (i = 0; i < e.length; i += 1) this[s].insertbefore(e[i], this[s].childnodes[0]);
else this[s].insertbefore(e, this[s].childnodes[0]);
return this
},
next: function(e) {
return this.length > 0 ? e ? this[0].nextelementsibling && d(this[0].nextelementsibling).is(
e) ? d([this[0].nextelementsibling]) : d([]) : this[0].nextelementsibling ? d([this[
0].nextelementsibling]) : d([]) : d([])
},
nextall: function(e) {
const t = [];
let s = this[0];
if (!s) return d([]);
for (; s.nextelementsibling;) {
const a = s.nextelementsibling;
e ? d(a).is(e) && t.push(a) : t.push(a), s = a
}
return d(t)
},
prev: function(e) {
if (this.length > 0) {
const t = this[0];
return e ? t.previouselementsibling && d(t.previouselementsibling).is(e) ? d([t
.previouselementsibling
]) : d([]) : t.previouselementsibling ? d([t.previouselementsibling]) : d([])
}
return d([])
},
prevall: function(e) {
const t = [];
let s = this[0];
if (!s) return d([]);
for (; s.previouselementsibling;) {
const a = s.previouselementsibling;
e ? d(a).is(e) && t.push(a) : t.push(a), s = a
}
return d(t)
},
parent: function(e) {
const t = [];
for (let s = 0; s < this.length; s += 1) null !== this[s].parentnode && (e ? d(this[s]
.parentnode).is(e) && t.push(this[s].parentnode) : t.push(this[s].parentnode));
return d(t)
},
parents: function(e) {
const t = [];
for (let s = 0; s < this.length; s += 1) {
let a = this[s].parentnode;
for (; a;) e ? d(a).is(e) && t.push(a) : t.push(a), a = a.parentnode
}
return d(t)
},
closest: function(e) {
let t = this;
return void 0 === e ? d([]) : (t.is(e) || (t = t.parents(e).eq(0)), t)
},
find: function(e) {
const t = [];
for (let s = 0; s < this.length; s += 1) {
const a = this[s].queryselectorall(e);
for (let e = 0; e < a.length; e += 1) t.push(a[e])
}
return d(t)
},
children: function(e) {
const t = [];
for (let s = 0; s < this.length; s += 1) {
const a = this[s].children;
for (let s = 0; s < a.length; s += 1) e && !d(a[s]).is(e) || t.push(a[s])
}
return d(t)
},
filter: function(e) {
return d(o(this, e))
},
remove: function() {
for (let e = 0; e < this.length; e += 1) this[e].parentnode && this[e].parentnode
.removechild(this[e]);
return this
}
};
function p(e, t) {
return void 0 === t && (t = 0), settimeout(e, t)
}
function u() {
return date.now()
}
function h(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 m(e) {
return "object" == typeof e && null !== e && e.constructor && "object" === object.prototype.tostring
.call(e).slice(8, -1)
}
function f(e) {
return "undefined" != typeof window && void 0 !== window.htmlelement ? e instanceof htmlelement : e && (
1 === e.nodetype || 11 === e.nodetype)
}
function g() {
const e = object(arguments.length <= 0 ? void 0 : arguments[0]),
t = ["__proto__", "constructor", "prototype"];
for (let s = 1; s < arguments.length; s += 1) {
const a = s < 0 || arguments.length <= s ? void 0 : arguments[s];
if (null != a && !f(a)) {
const s = object.keys(object(a)).filter((e => t.indexof(e) < 0));
for (let t = 0, i = s.length; t < i; t += 1) {
const i = s[t],
r = object.getownpropertydescriptor(a, i);
void 0 !== r && r.enumerable && (m(e[i]) && m(a[i]) ? a[i].__swiper__ ? e[i] = a[i] : g(e[
i], a[i]) : !m(e[i]) && m(a[i]) ? (e[i] = {}, a[i].__swiper__ ? e[i] = a[i] : g(
e[i], a[i])) : e[i] = a[i])
}
}
}
return e
}
function v(e, t, s) {
e.style.setproperty(t, s)
}
function w(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()
}
let b, x, y;
function e() {
return b || (b = function() {
const e = r(),
t = a();
return {
smoothscroll: t.documentelement && "scrollbehavior" in t.documentelement.style,
touch: !!("ontouchstart" in e || e.documenttouch && t instanceof e.documenttouch),
passivelistener: function() {
let t = !1;
try {
const s = object.defineproperty({}, "passive", {
get() {
t = !0
}
});
e.addeventlistener("testpassivelistener", null, s)
} catch (e) {}
return t
}(),
gestures: "ongesturestart" in e
}
}()), b
}
function c(e) {
return void 0 === e && (e = {}), x || (x = function(e) {
let {
useragent: t
} = void 0 === e ? {} : e;
const s = e(),
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_]+))?/),
h = !p && n.match(/(iphone\sos|ios)\s([\d_]+)/),
m = "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 && !m && (l.os = "android", l.android = !0), (p || h || u) && (l.os =
"ios", l.ios = !0), l
}(e)), x
}
function t() {
return y || (y = function() {
const e = r();
return {
issafari: function() {
const t = e.navigator.useragent.tolowercase();
return t.indexof("safari") >= 0 && t.indexof("chrome") < 0 && t.indexof(
"android") < 0
}(),
iswebview: /(iphone|ipod|ipad).*applewebkit(?!.*safari)/i.test(e.navigator.useragent)
}
}()), y
}
object.keys(c).foreach((e => {
object.defineproperty(d.fn, e, {
value: c[e],
writable: !0
})
}));
var $ = {
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
}
};
var s = {
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[0]
.clientwidth, s = void 0 !== e.params.height && null !== e.params.height ? e.params
.height : a[0].clientheight, 0 === t && e.ishorizontal() || 0 === s && e.isvertical() ||
(t = t - parseint(a.css("padding-left") || 0, 10) - parseint(a.css("padding-right") ||
0, 10), s = s - parseint(a.css("padding-top") || 0, 10) - parseint(a.css(
"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,
size: r,
rtltranslate: n,
wrongrtl: l
} = e,
o = e.virtual && a.virtual.enabled,
d = o ? e.virtual.slides.length : e.slides.length,
c = i.children(`.${e.params.slideclass}`),
p = o ? e.virtual.slides.length : c.length;
let u = [];
const h = [],
m = [];
let f = a.slidesoffsetbefore;
"function" == typeof f && (f = a.slidesoffsetbefore.call(e));
let g = a.slidesoffsetafter;
"function" == typeof g && (g = a.slidesoffsetafter.call(e));
const w = e.snapgrid.length,
b = e.slidesgrid.length;
let x = a.spacebetween,
y = -f,
e = 0,
c = 0;
if (void 0 === r) return;
"string" == typeof x && x.indexof("%") >= 0 && (x = parsefloat(x.replace("%", "")) / 100 *
r), e.virtualsize = -x, n ? c.css({
marginleft: "",
marginbottom: "",
margintop: ""
}) : c.css({
marginright: "",
marginbottom: "",
margintop: ""
}), a.centeredslides && a.cssmode && (v(e.wrapperel, "--swiper-centered-offset-before",
""), v(e.wrapperel, "--swiper-centered-offset-after", ""));
const t = a.grid && a.grid.rows > 1 && e.grid;
let $;
t && e.grid.initslides(p);
const s = "auto" === a.slidesperview && a.breakpoints && object.keys(a.breakpoints).filter((
e => void 0 !== a.breakpoints[e].slidesperview)).length > 0;
for (let i = 0; i < p; i += 1) {
$ = 0;
const n = c.eq(i);
if (t && e.grid.updateslide(i, n, p, t), "none" !== n.css("display")) {
if ("auto" === a.slidesperview) {
s && (c[i].style[t("width")] = "");
const r = getcomputedstyle(n[0]),
l = n[0].style.transform,
o = n[0].style.webkittransform;
if (l && (n[0].style.transform = "none"), o && (n[0].style.webkittransform =
"none"), a.roundlengths) $ = e.ishorizontal() ? n.outerwidth(!0) : n
.outerheight(!0);
else {
const e = s(r, "width"),
t = s(r, "padding-left"),
a = s(r, "padding-right"),
i = s(r, "margin-left"),
l = s(r, "margin-right"),
o = r.getpropertyvalue("box-sizing");
if (o && "border-box" === o) $ = e + i + l;
else {
const {
clientwidth: s,
offsetwidth: r
} = n[0];
$ = e + t + a + i + l + (r - s)
}
}
l && (n[0].style.transform = l), o && (n[0].style.webkittransform = o), a
.roundlengths && ($ = math.floor($))
} else $ = (r - (a.slidesperview - 1) * x) / a.slidesperview, a.roundlengths && ($ =
math.floor($)), c[i] && (c[i].style[t("width")] = `${$}px`);
c[i] && (c[i].swiperslidesize = $), m.push($), a.centeredslides ? (y = y + $ / 2 +
e / 2 + x, 0 === e && 0 !== i && (y = y - r / 2 - x), 0 === i && (y = y -
r / 2 - x), math.abs(y) < .001 && (y = 0), a.roundlengths && (y = math
.floor(y)), c % a.slidespergroup == 0 && u.push(y), h.push(y)) : (a
.roundlengths && (y = math.floor(y)), (c - math.min(e.params
.slidespergroupskip, c)) % e.params.slidespergroup == 0 && u.push(y), h
.push(y), y = y + $ + x), e.virtualsize += $ + x, e = $, c += 1
}
}
if (e.virtualsize = math.max(e.virtualsize, r) + g, n && l && ("slide" === a.effect ||
"coverflow" === a.effect) && i.css({
width: `${e.virtualsize+a.spacebetween}px`
}), a.setwrappersize && i.css({
[t("width")]: `${e.virtualsize+a.spacebetween}px`
}), t && e.grid.updatewrappersize($, u, t), !a.centeredslides) {
const t = [];
for (let s = 0; s < u.length; s += 1) {
let i = u[s];
a.roundlengths && (i = math.floor(i)), u[s] <= e.virtualsize - r && t.push(i)
}
u = t, math.floor(e.virtualsize - r) - math.floor(u[u.length - 1]) > 1 && u.push(e
.virtualsize - r)
}
if (0 === u.length && (u = [0]), 0 !== a.spacebetween) {
const s = e.ishorizontal() && n ? "marginleft" : t("marginright");
c.filter(((e, t) => !a.cssmode || t !== c.length - 1)).css({
[s]: `${x}px`
})
}
if (a.centeredslides && a.centeredslidesbounds) {
let e = 0;
m.foreach((t => {
e += t + (a.spacebetween ? a.spacebetween : 0)
})), e -= a.spacebetween;
const t = e - r;
u = u.map((e => e < 0 ? -f : e > t ? t + g : e))
}
if (a.centerinsufficientslides) {
let e = 0;
if (m.foreach((t => {
e += t + (a.spacebetween ? a.spacebetween : 0)
})), e -= a.spacebetween, e < r) {
const t = (r - e) / 2;
u.foreach(((e, s) => {
u[s] = e - t
})), h.foreach(((e, s) => {
h[s] = e + t
}))
}
}
if (object.assign(e, {
slides: c,
snapgrid: u,
slidesgrid: h,
slidessizesgrid: m
}), a.centeredslides && a.cssmode && !a.centeredslidesbounds) {
v(e.wrapperel, "--swiper-centered-offset-before", -u[0] + "px"), v(e.wrapperel,
"--swiper-centered-offset-after", e.size / 2 - m[m.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"), u.length !== w && (e.params.watchoverflow && e
.checkoverflow(), e.emit("snapgridlengthchange")), h.length !== b && e.emit(
"slidesgridlengthchange"), a.watchslidesprogress && e.updateslidesoffset(), !(o || a
.cssmode || "slide" !== a.effect && "fade" !== a.effect)) {
const t = `${a.containermodifierclass}backface-hidden`,
s = e.$el.hasclass(t);
p <= a.maxbackfacehiddenslides ? s || e.$el.addclass(t) : s && e.$el.removeclass(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.filter((t => parseint(t.getattribute("data-swiper-slide-index"),
10) === e))[0] : t.slides.eq(e)[0];
if ("auto" !== t.params.slidesperview && t.params.slidesperview > 1)
if (t.params.centeredslides)(t.visibleslides || d([])).each((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.css("height", `${r}px`)
},
updateslidesoffset: function() {
const e = this,
t = e.slides;
for (let s = 0; s < t.length; s += 1) t[s].swiperslideoffset = e.ishorizontal() ? t[s]
.offsetleft : t[s].offsettop
},
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.removeclass(s.slidevisibleclass), t.visibleslidesindexes = [], t
.visibleslides = [];
for (let e = 0; e < a.length; e += 1) {
const l = a[e];
let o = l.swiperslideoffset;
s.cssmode && s.centeredslides && (o -= a[0].swiperslideoffset);
const d = (n + (s.centeredslides ? t.mintranslate() : 0) - o) / (l.swiperslidesize + s
.spacebetween),
c = (n - r[0] + (s.centeredslides ? t.mintranslate() : 0) - o) / (l
.swiperslidesize + s.spacebetween),
p = -(n - o),
u = p + t.slidessizesgrid[e];
(p >= 0 && p < t.size - 1 || u > 1 && u <= t.size || p <= 0 && u >= t.size) && (t
.visibleslides.push(l), t.visibleslidesindexes.push(e), a.eq(e).addclass(s
.slidevisibleclass)), l.progress = i ? -d : d, l.originalprogress = i ? -c : c
}
t.visibleslides = d(t.visibleslides)
},
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
} = t;
const l = r,
o = n;
0 === a ? (i = 0, r = !0, n = !0) : (i = (e - t.mintranslate()) / a, r = i <= 0, n = i >=
1), object.assign(t, {
progress: i,
isbeginning: r,
isend: n
}), (s.watchslidesprogress || s.centeredslides && s.autoheight) && t
.updateslidesprogress(e), r && !l && t.emit("reachbeginning toedge"), n && !o && t.emit(
"reachend toedge"), (l && !r || o && !n) && t.emit("fromedge"), t.emit("progress",
i)
},
updateslidesclasses: function() {
const e = this,
{
slides: t,
params: s,
$wrapperel: a,
activeindex: i,
realindex: r
} = e,
n = e.virtual && s.virtual.enabled;
let l;
t.removeclass(
`${s.slideactiveclass} ${s.slidenextclass} ${s.slideprevclass} ${s.slideduplicateactiveclass} ${s.slideduplicatenextclass} ${s.slideduplicateprevclass}`
), l = n ? e.$wrapperel.find(`.${s.slideclass}[data-swiper-slide-index="${i}"]`) : t
.eq(i), l.addclass(s.slideactiveclass), s.loop && (l.hasclass(s.slideduplicateclass) ? a
.children(
`.${s.slideclass}:not(.${s.slideduplicateclass})[data-swiper-slide-index="${r}"]`
).addclass(s.slideduplicateactiveclass) : a.children(
`.${s.slideclass}.${s.slideduplicateclass}[data-swiper-slide-index="${r}"]`)
.addclass(s.slideduplicateactiveclass));
let o = l.nextall(`.${s.slideclass}`).eq(0).addclass(s.slidenextclass);
s.loop && 0 === o.length && (o = t.eq(0), o.addclass(s.slidenextclass));
let d = l.prevall(`.${s.slideclass}`).eq(0).addclass(s.slideprevclass);
s.loop && 0 === d.length && (d = t.eq(-1), d.addclass(s.slideprevclass)), s.loop && (o
.hasclass(s.slideduplicateclass) ? a.children(
`.${s.slideclass}:not(.${s.slideduplicateclass})[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`
).addclass(s.slideduplicatenextclass) : a.children(
`.${s.slideclass}.${s.slideduplicateclass}[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`
).addclass(s.slideduplicatenextclass), d.hasclass(s.slideduplicateclass) ? a
.children(
`.${s.slideclass}:not(.${s.slideduplicateclass})[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`
).addclass(s.slideduplicateprevclass) : a.children(
`.${s.slideclass}.${s.slideduplicateclass}[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`
).addclass(s.slideduplicateprevclass)), e.emitslidesclasses()
},
updateactiveindex: function(e) {
const t = this,
s = t.rtltranslate ? t.translate : -t.translate,
{
slidesgrid: a,
snapgrid: i,
params: r,
activeindex: n,
realindex: l,
snapindex: o
} = t;
let d, c = e;
if (void 0 === c) {
for (let e = 0; e < a.length; e += 1) void 0 !== a[e + 1] ? s >= a[e] && s < a[e + 1] -
(a[e + 1] - a[e]) / 2 ? c = e : s >= a[e] && s < a[e + 1] && (c = e + 1) : s >= a[
e] && (c = e);
r.normalizeslideindex && (c < 0 || void 0 === c) && (c = 0)
}
if (i.indexof(s) >= 0) d = i.indexof(s);
else {
const e = math.min(r.slidespergroupskip, c);
d = e + math.floor((c - e) / r.slidespergroup)
}
if (d >= i.length && (d = i.length - 1), c === n) return void(d !== o && (t.snapindex = d, t
.emit("snapindexchange")));
const p = parseint(t.slides.eq(c).attr("data-swiper-slide-index") || c, 10);
object.assign(t, {
snapindex: d,
realindex: p,
previousindex: n,
activeindex: c
}), t.emit("activeindexchange"), t.emit("snapindexchange"), l !== p && t.emit(
"realindexchange"), (t.initialized || t.params.runcallbacksoninit) && t.emit(
"slidechange")
},
updateclickedslide: function(e) {
const t = this,
s = t.params,
a = d(e).closest(`.${s.slideclass}`)[0];
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(d(a)
.attr("data-swiper-slide-index"), 10) : t.clickedindex = i, s.slidetoclickedslide &&
void 0 !== t.clickedindex && t.clickedindex !== t.activeindex && t.slidetoclickedslide()
}
};
var m = {
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 = h(i[0], e);
return s && (r = -r), r || 0
},
settranslate: function(e, t) {
const s = this,
{
rtltranslate: a,
params: i,
$wrapperel: r,
wrapperel: n,
progress: l
} = s;
let o, d = 0,
c = 0;
s.ishorizontal() ? d = a ? -e : e : c = e, i.roundlengths && (d = math.floor(d), c = math
.floor(c)), i.cssmode ? n[s.ishorizontal() ? "scrollleft" : "scrolltop"] = s
.ishorizontal() ? -d : -c : i.virtualtranslate || r.transform(
`translate3d(${d}px, ${c}px, 0px)`), s.previoustranslate = s.translate, s
.translate = s.ishorizontal() ? d : c;
const p = s.maxtranslate() - s.mintranslate();
o = 0 === p ? 0 : (e - s.mintranslate()) / p, o !== l && 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 w({
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[0]
.removeeventlistener("transitionend", r
.ontranslatetowrappertransitionend), r.$wrapperel[0]
.removeeventlistener("webkittransitionend", r
.ontranslatetowrappertransitionend), r
.ontranslatetowrappertransitionend = null, delete r
.ontranslatetowrappertransitionend, s && r.emit("transitionend")
)
}), r.$wrapperel[0].addeventlistener("transitionend", r
.ontranslatetowrappertransitionend), r.$wrapperel[0].addeventlistener(
"webkittransitionend", r.ontranslatetowrappertransitionend))), !0
}
};
function p(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 k = {
slideto: function(e, t, s, a, i) {
if (void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === s && (s = !
0), "number" != typeof e && "string" != typeof e) throw new error(
`the 'index' argument cannot have type other than 'number' or 'string'. [${typeof e}] given.`
);
if ("string" == typeof e) {
const t = parseint(e, 10);
if (!isfinite(t)) throw new error(
`the passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`
);
e = t
}
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: m
} = r;
if (r.animating && l.preventinteractionontransition || !m && !a && !i) return !1;
const f = math.min(r.params.slidespergroupskip, n);
let g = f + math.floor((n - f) / r.params.slidespergroup);
g >= o.length && (g = o.length - 1), (p || l.initialslide || 0) === (c || 0) && s && r.emit(
"beforeslidechangestart");
const v = -o[g];
if (r.updateprogress(v), l.normalizeslideindex)
for (let e = 0; e < d.length; e += 1) {
const t = -math.floor(100 * v),
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 && v < r.translate && v < r.mintranslate()) return !1;
if (!r.allowslideprev && v > r.translate && v > r.maxtranslate() && (p || 0) !== n)
return !1
}
let b;
if (b = n > p ? "next" : n < p ? "prev" : "reset", u && -v === r.translate || !u && v === r
.translate) return r.updateactiveindex(n), l.autoheight && r.updateautoheight(), r
.updateslidesclasses(), "slide" !== l.effect && r.settranslate(v), "reset" !== b &&
(r.transitionstart(s, b), r.transitionend(s, b)), !1;
if (l.cssmode) {
const e = r.ishorizontal(),
s = u ? v : -v;
if (0 === t) {
const t = r.virtual && r.params.virtual.enabled;
t && (r.wrapperel.style.scrollsnaptype = "none", r._immediatevirtual = !0), h[e ?
"scrollleft" : "scrolltop"] = s, t && requestanimationframe((() => {
r.wrapperel.style.scrollsnaptype = "", r._swiperimmediatevirtual = !
1
}))
} else {
if (!r.support.smoothscroll) return w({
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(v), 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[0]
.removeeventlistener("transitionend", r
.onslidetowrappertransitionend), r.$wrapperel[0]
.removeeventlistener("webkittransitionend", r
.onslidetowrappertransitionend), r
.onslidetowrappertransitionend = null, delete r
.onslidetowrappertransitionend, r.transitionend(s, b))
}), r.$wrapperel[0].addeventlistener("transitionend", r
.onslidetowrappertransitionend), r.$wrapperel[0].addeventlistener(
"webkittransitionend", 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) {
const t = parseint(e, 10);
if (!isfinite(t)) throw new error(
`the passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`
);
e = t
}
const i = this;
let r = e;
return i.params.loop && (r += i.loopedslides), 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,
{
animating: i,
enabled: r,
params: n
} = a;
if (!r) return a;
let l = n.slidespergroup;
"auto" === n.slidesperview && 1 === n.slidespergroup && n.slidespergroupauto && (l = math
.max(a.slidesperviewdynamic("current", !0), 1));
const o = a.activeindex < n.slidespergroupskip ? 1 : l;
if (n.loop) {
if (i && n.looppreventsslide) return !1;
a.loopfix(), a._clientleft = a.$wrapperel[0].clientleft
}
return n.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,
animating: r,
snapgrid: n,
slidesgrid: l,
rtltranslate: o,
enabled: d
} = a;
if (!d) return a;
if (i.loop) {
if (r && i.looppreventsslide) return !1;
a.loopfix(), a._clientleft = a.$wrapperel[0].clientleft
}
function c(e) {
return e < 0 ? -math.floor(math.abs(e)) : math.floor(e)
}
const p = c(o ? a.translate : -a.translate),
u = n.map((e => c(e)));
let h = n[u.indexof(p) - 1];
if (void 0 === h && i.cssmode) {
let e;
n.foreach(((t, s) => {
p >= t && (e = s)
})), void 0 !== e && (h = n[e > 0 ? e - 1 : e])
}
let m = 0;
if (void 0 !== h && (m = l.indexof(h), m < 0 && (m = a.activeindex - 1), "auto" === i
.slidesperview && 1 === i.slidespergroup && i.slidespergroupauto && (m = m - a
.slidesperviewdynamic("previous", !0) + 1, m = math.max(m, 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(m, 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 = .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,
$wrapperel: s
} = e,
a = "auto" === t.slidesperview ? e.slidesperviewdynamic() : t.slidesperview;
let i, r = e.clickedindex;
if (t.loop) {
if (e.animating) return;
i = parseint(d(e.clickedslide).attr("data-swiper-slide-index"), 10), t.centeredslides ?
r < e.loopedslides - a / 2 || r > e.slides.length - e.loopedslides + a / 2 ? (e
.loopfix(), r = s.children(
`.${t.slideclass}[data-swiper-slide-index="${i}"]:not(.${t.slideduplicateclass})`
).eq(0).index(), p((() => {
e.slideto(r)
}))) : e.slideto(r) : r > e.slides.length - a ? (e.loopfix(), r = s.children(
`.${t.slideclass}[data-swiper-slide-index="${i}"]:not(.${t.slideduplicateclass})`
).eq(0).index(), p((() => {
e.slideto(r)
}))) : e.slideto(r)
} else e.slideto(r)
}
};
var z = {
loopcreate: function() {
const e = this,
t = a(),
{
params: s,
$wrapperel: i
} = e,
r = i.children().length > 0 ? d(i.children()[0].parentnode) : i;
r.children(`.${s.slideclass}.${s.slideduplicateclass}`).remove();
let n = r.children(`.${s.slideclass}`);
if (s.loopfillgroupwithblank) {
const e = s.slidespergroup - n.length % s.slidespergroup;
if (e !== s.slidespergroup) {
for (let a = 0; a < e; a += 1) {
const e = d(t.createelement("div")).addclass(
`${s.slideclass} ${s.slideblankclass}`);
r.append(e)
}
n = r.children(`.${s.slideclass}`)
}
}
"auto" !== s.slidesperview || s.loopedslides || (s.loopedslides = n.length), e
.loopedslides = math.ceil(parsefloat(s.loopedslides || s.slidesperview, 10)), e
.loopedslides += s.loopadditionalslides, e.loopedslides > n.length && (e.loopedslides =
n.length);
const l = [],
o = [];
n.each(((t, s) => {
const a = d(t);
s < e.loopedslides && o.push(t), s < n.length && s >= n.length - e
.loopedslides && l.push(t), a.attr("data-swiper-slide-index", s)
}));
for (let e = 0; e < o.length; e += 1) r.append(d(o[e].clonenode(!0)).addclass(s
.slideduplicateclass));
for (let e = l.length - 1; e >= 0; e -= 1) r.prepend(d(l[e].clonenode(!0)).addclass(s
.slideduplicateclass))
},
loopfix: function() {
const e = this;
e.emit("beforeloopfix");
const {
activeindex: t,
slides: s,
loopedslides: a,
allowslideprev: i,
allowslidenext: r,
snapgrid: n,
rtltranslate: l
} = e;
let o;
e.allowslideprev = !0, e.allowslidenext = !0;
const d = -n[t] - e.gettranslate();
if (t < a) {
o = s.length - 3 * a + t, o += a;
e.slideto(o, 0, !1, !0) && 0 !== d && e.settranslate((l ? -e.translate : e.translate) -
d)
} else if (t >= s.length - a) {
o = -s.length + t + a, o += a;
e.slideto(o, 0, !1, !0) && 0 !== d && e.settranslate((l ? -e.translate : e.translate) -
d)
}
e.allowslideprev = i, e.allowslidenext = r, e.emit("loopfix")
},
loopdestroy: function() {
const {
$wrapperel: e,
params: t,
slides: s
} = this;
e.children(
`.${t.slideclass}.${t.slideduplicateclass},.${t.slideclass}.${t.slideblankclass}`)
.remove(), s.removeattr("data-swiper-slide-index")
}
};
function l(e) {
const t = this,
s = a(),
i = r(),
n = t.toucheventsdata,
{
params: l,
touches: o,
enabled: c
} = t;
if (!c) return;
if (t.animating && l.preventinteractionontransition) return;
!t.animating && l.cssmode && l.loop && t.loopfix();
let p = e;
p.originalevent && (p = p.originalevent);
let h = d(p.target);
if ("wrapper" === l.toucheventstarget && !h.closest(t.wrapperel).length) return;
if (n.istouchevent = "touchstart" === p.type, !n.istouchevent && "which" in p && 3 === p.which) return;
if (!n.istouchevent && "button" in p && p.button > 0) return;
if (n.istouched && n.ismoved) return;
!!l.noswipingclass && "" !== l.noswipingclass && p.target && p.target.shadowroot && e.path && e.path[
0] && (h = d(e.path[0]));
const m = l.noswipingselector ? l.noswipingselector : `.${l.noswipingclass}`,
f = !(!p.target || !p.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)
}(m, h[0]) : h.closest(m)[0])) return void(t.allowclick = !0);
if (l.swipehandler && !h.closest(l.swipehandler)[0]) return;
o.currentx = "touchstart" === p.type ? p.targettouches[0].pagex : p.pagex, o.currenty = "touchstart" ===
p.type ? p.targettouches[0].pagey : p.pagey;
const g = o.currentx,
v = o.currenty,
w = l.edgeswipedetection || l.iosedgeswipedetection,
b = l.edgeswipethreshold || l.iosedgeswipethreshold;
if (w && (g <= b || g >= i.innerwidth - b)) {
if ("prevent" !== w) return;
e.preventdefault()
}
if (object.assign(n, {
istouched: !0,
ismoved: !1,
allowtouchcallbacks: !0,
isscrolling: void 0,
startmoving: void 0
}), o.startx = g, o.starty = v, n.touchstarttime = u(), t.allowclick = !0, t.updatesize(), t
.swipedirection = void 0, l.threshold > 0 && (n.allowthresholdmove = !1), "touchstart" !== p.type) {
let e = !0;
h.is(n.focusableelements) && (e = !1, "select" === h[0].nodename && (n.istouched = !1)), s
.activeelement && d(s.activeelement).is(n.focusableelements) && s.activeelement !== h[0] && s
.activeelement.blur();
const a = e && t.allowtouchmove && l.touchstartpreventdefault;
!l.touchstartforcepreventdefault && !a || h[0].iscontenteditable || p.preventdefault()
}
t.params.freemode && t.params.freemode.enabled && t.freemode && t.animating && !l.cssmode && t.freemode
.ontouchstart(), t.emit("touchstart", p)
}
function o(e) {
const t = a(),
s = this,
i = s.toucheventsdata,
{
params: r,
touches: n,
rtltranslate: l,
enabled: o
} = s;
if (!o) return;
let c = e;
if (c.originalevent && (c = c.originalevent), !i.istouched) return void(i.startmoving && i
.isscrolling && s.emit("touchmoveopposite", c));
if (i.istouchevent && "touchmove" !== c.type) return;
const p = "touchmove" === c.type && c.targettouches && (c.targettouches[0] || c.changedtouches[0]),
h = "touchmove" === c.type ? p.pagex : c.pagex,
m = "touchmove" === c.type ? p.pagey : c.pagey;
if (c.preventedbynestedswiper) return n.startx = h, void(n.starty = m);
if (!s.allowtouchmove) return d(c.target).is(i.focusableelements) || (s.allowclick = !1), void(i
.istouched && (object.assign(n, {
startx: h,
starty: m,
currentx: h,
currenty: m
}), i.touchstarttime = u()));
if (i.istouchevent && 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 (h < n.startx && s.translate <= s.maxtranslate() || h > n.startx && s.translate >= s
.mintranslate()) return;
if (i.istouchevent && t.activeelement && c.target === t.activeelement && d(c.target).is(i
.focusableelements)) return i.ismoved = !0, void(s.allowclick = !1);
if (i.allowtouchcallbacks && s.emit("touchmove", c), c.targettouches && c.targettouches.length > 1)
return;
n.currentx = h, n.currenty = m;
const f = n.currentx - n.startx,
g = n.currenty - n.starty;
if (s.params.threshold && math.sqrt(f ** 2 + g ** 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 : f * f + g * g >= 25 && (e = 180 * math.atan2(math.abs(g), math.abs(f)) /
math.pi, i.isscrolling = s.ishorizontal() ? e > r.touchangle : 90 - e > r.touchangle)
}
if (i.isscrolling && s.emit("touchmoveopposite", c), void 0 === i.startmoving && (n.currentx === n
.startx && n.currenty === n.starty || (i.startmoving = !0)), i.isscrolling) return void(i
.istouched = !1);
if (!i.startmoving) return;
s.allowclick = !1, !r.cssmode && c.cancelable && c.preventdefault(), r.touchmovestoppropagation && !r
.nested && c.stoppropagation(), i.ismoved || (r.loop && !r.cssmode && s.loopfix(), i
.starttranslate = s.gettranslate(), s.settransition(0), s.animating && s.$wrapperel.trigger(
"webkittransitionend transitionend"), i.allowmomentumbounce = !1, !r.grabcursor || !0 !== s
.allowslidenext && !0 !== s.allowslideprev || s.setgrabcursor(!0), s.emit("sliderfirstmove", c)
), s.emit("slidermove", c), i.ismoved = !0;
let v = s.ishorizontal() ? f : g;
n.diff = v, v *= r.touchratio, l && (v = -v), s.swipedirection = v > 0 ? "prev" : "next", i
.currenttranslate = v + i.starttranslate;
let w = !0,
b = r.resistanceratio;
if (r.touchreleaseonedges && (b = 0), v > 0 && i.currenttranslate > s.mintranslate() ? (w = !1, r
.resistance && (i.currenttranslate = s.mintranslate() - 1 + (-s.mintranslate() + i
.starttranslate + v) ** b)) : v < 0 && i.currenttranslate < s.maxtranslate() && (w = !1, r
.resistance && (i.currenttranslate = s.maxtranslate() + 1 - (s.maxtranslate() - i
.starttranslate - v) ** b)), w && (c.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(v) > 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()), s.params
.freemode && r.freemode.enabled && s.freemode && s.freemode.ontouchmove(), s.updateprogress(i
.currenttranslate), s.settranslate(i.currenttranslate))
}
function i(e) {
const t = this,
s = t.toucheventsdata,
{
params: a,
touches: i,
rtltranslate: r,
slidesgrid: n,
enabled: l
} = t;
if (!l) return;
let o = e;
if (o.originalevent && (o = o.originalevent), s.allowtouchcallbacks && t.emit("touchend", o), s
.allowtouchcallbacks = !1, !s.istouched) return s.ismoved && a.grabcursor && t.setgrabcursor(!1), s
.ismoved = !1, void(s.startmoving = !1);
a.grabcursor && s.ismoved && s.istouched && (!0 === t.allowslidenext || !0 === t.allowslideprev) && t
.setgrabcursor(!1);
const d = u(),
c = d - s.touchstarttime;
if (t.allowclick) {
const e = o.path || o.composedpath && o.composedpath();
t.updateclickedslide(e && e[0] || o.target), t.emit("tap click", o), c < 300 && d - s
.lastclicktime < 300 && t.emit("doubletap doubleclick", o)
}
if (s.lastclicktime = u(), p((() => {
t.destroyed || (t.allowclick = !0)
})), !s.istouched || !s.ismoved || !t.swipedirection || 0 === i.diff || s.currenttranslate === s
.starttranslate) return s.istouched = !1, s.ismoved = !1, void(s.startmoving = !1);
let h;
if (s.istouched = !1, s.ismoved = !1, s.startmoving = !1, h = a.followfinger ? r ? t.translate : -t
.translate : -s.currenttranslate, a.cssmode) return;
if (t.params.freemode && a.freemode.enabled) return void t.freemode.ontouchend({
currentpos: h
});
let m = 0,
f = t.slidessizesgrid[0];
for (let e = 0; e < n.length; e += e < a.slidespergroupskip ? 1 : a.slidespergroup) {
const t = e < a.slidespergroupskip - 1 ? 1 : a.slidespergroup;
void 0 !== n[e + t] ? h >= n[e] && h < n[e + t] && (m = e, f = n[e + t] - n[e]) : h >= n[e] && (m =
e, f = n[n.length - 1] - n[n.length - 2])
}
let g = null,
v = null;
a.rewind && (t.isbeginning ? v = t.params.virtual && t.params.virtual.enabled && t.virtual ? t.virtual
.slides.length - 1 : t.slides.length - 1 : t.isend && (g = 0));
const w = (h - n[m]) / f,
b = m < a.slidespergroupskip - 1 ? 1 : a.slidespergroup;
if (c > a.longswipesms) {
if (!a.longswipes) return void t.slideto(t.activeindex);
"next" === t.swipedirection && (w >= a.longswipesratio ? t.slideto(a.rewind && t.isend ? g : m +
b) : t.slideto(m)), "prev" === t.swipedirection && (w > 1 - a.longswipesratio ? t.slideto(
m + b) : null !== v && w < 0 && math.abs(w) > a.longswipesratio ? t.slideto(v) : t
.slideto(m))
} else {
if (!a.shortswipes) return void t.slideto(t.activeindex);
t.navigation && (o.target === t.navigation.nextel || o.target === t.navigation.prevel) ? o
.target === t.navigation.nextel ? t.slideto(m + b) : t.slideto(m) : ("next" === t
.swipedirection && t.slideto(null !== g ? g : m + b), "prev" === t.swipedirection && t
.slideto(null !== v ? v : m))
}
}
function a() {
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;
e.allowslidenext = !0, e.allowslideprev = !0, e.updatesize(), e.updateslides(), e.updateslidesclasses(),
("auto" === t.slidesperview || t.slidesperview > 1) && e.isend && !e.isbeginning && !e.params
.centeredslides ? e.slideto(e.slides.length - 1, 0, !1, !0) : e.slideto(e.activeindex, 0, !1, !0), e
.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.run(), e.allowslideprev = i, e
.allowslidenext = a, e.params.watchoverflow && r !== e.snapgrid && e.checkoverflow()
}
function d(e) {
const t = this;
t.enabled && (t.allowclick || (t.params.preventclicks && e.preventdefault(), t.params
.preventclickspropagation && t.animating && (e.stoppropagation(), e
.stopimmediatepropagation())))
}
function g() {
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)
}
let n = !1;
function b() {}
const h = (e, t) => {
const s = a(),
{
params: i,
touchevents: r,
el: n,
wrapperel: l,
device: o,
support: d
} = e,
c = !!i.nested,
p = "on" === t ? "addeventlistener" : "removeeventlistener",
u = t;
if (d.touch) {
const t = !("touchstart" !== r.start || !d.passivelistener || !i.passivelisteners) && {
passive: !0,
capture: !1
};
n[p](r.start, e.ontouchstart, t), n[p](r.move, e.ontouchmove, d.passivelistener ? {
passive: !1,
capture: c
} : c), n[p](r.end, e.ontouchend, t), r.cancel && n[p](r.cancel, e.ontouchend, t)
} else n[p](r.start, e.ontouchstart, !1), s[p](r.move, e.ontouchmove, c), s[p](r.end, e.ontouchend,
!1);
(i.preventclicks || i.preventclickspropagation) && n[p]("click", e.onclick, !0), i.cssmode && l[p](
"scroll", e.onscroll), i.updateonwindowresize ? e[u](o.ios || o.android ?
"resize orientationchange observerupdate" : "resize observerupdate", a, !0) : e[u](
"observerupdate", a, !0)
};
var x = {
attachevents: function() {
const e = this,
t = a(),
{
params: s,
support: i
} = e;
e.ontouchstart = l.bind(e), e.ontouchmove = o.bind(e), e.ontouchend = i.bind(e), s
.cssmode && (e.onscroll = g.bind(e)), e.onclick = d.bind(e), i.touch && !n && (t
.addeventlistener("touchstart", b), n = !0), h(e, "on")
},
detachevents: function() {
h(this, "off")
}
};
const y = (e, t) => e.grid && t.grid && t.grid.rows > 1;
var r = {
addclasses: function() {
const e = this,
{
classnames: t,
params: s,
rtl: a,
$el: i,
device: r,
support: n
} = e,
l = 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, {
"pointer-events": !n.touch
}, {
"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(...l), i.addclass([...t].join(" ")), e.emitcontainerclasses()
},
removeclasses: function() {
const {
$el: e,
classnames: t
} = this;
e.removeclass(t.join(" ")), this.emitcontainerclasses()
}
};
var w = {
init: !0,
direction: "horizontal",
toucheventstarget: "wrapper",
initialslide: 0,
speed: 300,
cssmode: !1,
updateonwindowresize: !0,
resizeobserver: !0,
nested: !1,
createelements: !1,
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: 0,
touchmovestoppropagation: !1,
touchstartpreventdefault: !0,
touchstartforcepreventdefault: !1,
touchreleaseonedges: !1,
uniquenavelements: !0,
resistance: !0,
resistanceratio: .85,
watchslidesprogress: !1,
grabcursor: !1,
preventclicks: !0,
preventclickspropagation: !0,
slidetoclickedslide: !1,
preloadimages: !0,
updateonimagesready: !0,
loop: !1,
loopadditionalslides: 0,
loopedslides: null,
loopfillgroupwithblank: !1,
looppreventsslide: !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-invisible-blank",
slideactiveclass: "swiper-slide-active",
slideduplicateactiveclass: "swiper-slide-duplicate-active",
slidevisibleclass: "swiper-slide-visible",
slideduplicateclass: "swiper-slide-duplicate",
slidenextclass: "swiper-slide-next",
slideduplicatenextclass: "swiper-slide-duplicate-next",
slideprevclass: "swiper-slide-prev",
slideduplicateprevclass: "swiper-slide-duplicate-prev",
wrapperclass: "swiper-wrapper",
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 ? (["navigation", "pagination", "scrollbar"].indexof(a) >=
0 && !0 === e[a] && (e[a] = {
auto: !0
}), a in e && "enabled" in i ? (!0 === e[a] && (e[a] = {
enabled: !0
}), "object" != typeof e[a] || "enabled" in e[a] || (e[a].enabled = !0), e[a] || (e[
a] = {
enabled: !1
}), g(t, s)) : g(t, s)) : g(t, s)
}
}
const _ = {
eventsemitter: $,
update: s,
translate: m,
transition: {
settransition: function(e, t) {
const s = this;
s.params.cssmode || s.$wrapperel.transition(e), 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(), p({
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), p({
swiper: s,
runcallbacks: e,
direction: t,
step: "end"
}))
}
},
slide: k,
loop: z,
grabcursor: {
setgrabcursor: function(e) {
const t = this;
if (t.support.touch || !t.params.simulatetouch || t.params.watchoverflow && t
.islocked || t.params.cssmode) return;
const s = "container" === t.params.toucheventstarget ? t.el : t.wrapperel;
s.style.cursor = "move", s.style.cursor = e ? "grabbing" : "grab"
},
unsetgrabcursor: function() {
const e = this;
e.support.touch || e.params.watchoverflow && e.islocked || e.params.cssmode || (e[
"container" === e.params.toucheventstarget ? "el" : "wrapperel"].style
.cursor = "")
}
},
events: x,
breakpoints: {
setbreakpoint: function() {
const e = this,
{
activeindex: t,
initialized: s,
loopedslides: a = 0,
params: i,
$el: r
} = e,
n = i.breakpoints;
if (!n || n && 0 === object.keys(n).length) return;
const l = e.getbreakpoint(n, e.params.breakpointsbase, e.el);
if (!l || e.currentbreakpoint === l) return;
const o = (l in n ? n[l] : void 0) || e.originalparams,
d = y(e, i),
c = y(e, o),
p = i.enabled;
d && !c ? (r.removeclass(
`${i.containermodifierclass}grid ${i.containermodifierclass}grid-column`), e
.emitcontainerclasses()) : !d && c && (r.addclass(
`${i.containermodifierclass}grid`), (o.grid.fill && "column" === o.grid
.fill || !o.grid.fill && "column" === i.grid.fill) && r.addclass(
`${i.containermodifierclass}grid-column`), e.emitcontainerclasses()), [
"navigation", "pagination", "scrollbar"
].foreach((t => {
const s = i[t] && i[t].enabled,
a = o[t] && o[t].enabled;
s && !a && e[t].disable(), !s && a && e[t].enable()
}));
const u = o.direction && o.direction !== i.direction,
h = i.loop && (o.slidesperview !== i.slidesperview || u);
u && s && e.changedirection(), g(e.params, o);
const m = e.params.enabled;
object.assign(e, {
allowtouchmove: e.params.allowtouchmove,
allowslidenext: e.params.allowslidenext,
allowslideprev: e.params.allowslideprev
}), p && !m ? e.disable() : !p && m && e.enable(), e.currentbreakpoint = l, e.emit(
"_beforebreakpoint", o), h && s && (e.loopdestroy(), e.loopcreate(), e
.updateslides(), e.slideto(t - a + e.loopedslides, 0, !1)), e.emit("breakpoint",
o)
},
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: r,
images: {
loadimage: function(e, t, s, a, i, n) {
const l = r();
let o;
function c() {
n && n()
}
d(e).parent("picture")[0] || e.complete && i ? c() : t ? (o = new l.image, o.onload = c,
o.onerror = c, a && (o.sizes = a), s && (o.srcset = s), t && (o.src = t)) : c()
},
preloadimages: function() {
const e = this;
function t() {
null != e && e && !e.destroyed && (void 0 !== e.imagesloaded && (e.imagesloaded +=
1), e.imagesloaded === e.imagestoload.length && (e.params
.updateonimagesready && e.update(), e.emit("imagesready")))
}
e.imagestoload = e.$el.find("img");
for (let s = 0; s < e.imagestoload.length; s += 1) {
const a = e.imagestoload[s];
e.loadimage(a, a.currentsrc || a.getattribute("src"), a.srcset || a.getattribute(
"srcset"), a.sizes || a.getattribute("sizes"), !0, t)
}
}
}
},
q = {};
class v {
constructor() {
let e, t;
for (var s = arguments.length, a = new array(s), i = 0; i < s; i++) a[i] = arguments[i];
if (1 === a.length && a[0].constructor && "object" === object.prototype.tostring.call(a[0])
.slice(8, -1) ? t = a[0] : [e, t] = a, t || (t = {}), t = g({}, t), e && !t.el && (t.el =
e), t.el && d(t.el).length > 1) {
const e = [];
return d(t.el).each((s => {
const a = g({}, t, {
el: s
});
e.push(new v(a))
})), e
}
const r = this;
r.__swiper__ = !0, r.support = e(), r.device = c({
useragent: t.useragent
}), r.browser = t(), r.eventslisteners = {}, r.eventsanylisteners = [], r.modules = [...r
.__modules__
], t.modules && array.isarray(t.modules) && r.modules.push(...t.modules);
const n = {};
r.modules.foreach((e => {
e({
swiper: r,
extendparams: j(t, n),
on: r.on.bind(r),
once: r.once.bind(r),
off: r.off.bind(r),
emit: r.emit.bind(r)
})
}));
const l = g({}, w, n);
return r.params = g({}, l, q, t), r.originalparams = g({}, r.params), r.passedparams = g({}, t),
r.params && r.params.on && object.keys(r.params.on).foreach((e => {
r.on(e, r.params.on[e])
})), r.params && r.params.onany && r.onany(r.params.onany), r.$ = d, object.assign(r, {
enabled: r.params.enabled,
el: e,
classnames: [],
slides: d(),
slidesgrid: [],
snapgrid: [],
slidessizesgrid: [],
ishorizontal: () => "horizontal" === r.params.direction,
isvertical: () => "vertical" === r.params.direction,
activeindex: 0,
realindex: 0,
isbeginning: !0,
isend: !1,
translate: 0,
previoustranslate: 0,
progress: 0,
velocity: 0,
animating: !1,
allowslidenext: r.params.allowslidenext,
allowslideprev: r.params.allowslideprev,
touchevents: function() {
const e = ["touchstart", "touchmove", "touchend", "touchcancel"],
t = ["pointerdown", "pointermove", "pointerup"];
return r.toucheventstouch = {
start: e[0],
move: e[1],
end: e[2],
cancel: e[3]
}, r.toucheventsdesktop = {
start: t[0],
move: t[1],
end: t[2]
}, r.support.touch || !r.params.simulatetouch ? r.toucheventstouch : r
.toucheventsdesktop
}(),
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: r.params.focusableelements,
lastclicktime: u(),
clicktimeout: void 0,
velocities: [],
allowmomentumbounce: void 0,
istouchevent: void 0,
startmoving: void 0
},
allowclick: !0,
allowtouchmove: r.params.allowtouchmove,
touches: {
startx: 0,
starty: 0,
currentx: 0,
currenty: 0,
diff: 0
},
imagestoload: [],
imagesloaded: 0
}), r.emit("_swiper"), r.params.init && r.init(), r
}
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.each((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 (s.centeredslides) {
let e, t = a[l].swiperslidesize;
for (let s = l + 1; s < a.length; s += 1) a[s] && !e && (t += 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;
s.breakpoints && e.setbreakpoint(), e.updatesize(), e.updateslides(), e.updateprogress(), e
.updateslidesclasses(), e.params.freemode && e.params.freemode.enabled ? (a(), e.params
.autoheight && e.updateautoheight()) : (i = ("auto" === e.params.slidesperview || e
.params.slidesperview > 1) && e.isend && !e.params.centeredslides ? e.slideto(e
.slides.length - 1, 0, !1, !0) : 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.removeclass(`${s.params.containermodifierclass}${a}`)
.addclass(`${s.params.containermodifierclass}${e}`), s.emitcontainerclasses(), s.params
.direction = e, s.slides.each((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.addclass(
`${t.params.containermodifierclass}rtl`), t.el.dir = "rtl") : (t.$el.removeclass(
`${t.params.containermodifierclass}rtl`), t.el.dir = "ltr"), t.update())
}
mount(e) {
const t = this;
if (t.mounted) return !0;
const s = d(e || t.params.el);
if (!(e = s[0])) return !1;
e.swiper = t;
const i = () => `.${(t.params.wrapperclass||"").trim().split(" ").join(".")}`;
let r = (() => {
if (e && e.shadowroot && e.shadowroot.queryselector) {
const t = d(e.shadowroot.queryselector(i()));
return t.children = e => s.children(e), t
}
return s.children ? s.children(i()) : d(s).children(i())
})();
if (0 === r.length && t.params.createelements) {
const e = a().createelement("div");
r = d(e), e.classname = t.params.wrapperclass, s.append(e), s.children(
`.${t.params.slideclass}`).each((e => {
r.append(e)
}))
}
return object.assign(t, {
$el: s,
el: e,
$wrapperel: r,
wrapperel: r[0],
mounted: !0,
rtl: "rtl" === e.dir.tolowercase() || "rtl" === s.css("direction"),
rtltranslate: "horizontal" === t.params.direction && ("rtl" === e.dir
.tolowercase() || "rtl" === s.css("direction")),
wrongrtl: "-webkit-box" === r.css("display")
}), !0
}
init(e) {
const t = this;
if (t.initialized) return t;
return !1 === t.mount(e) || (t.emit("beforeinit"), t.params.breakpoints && t.setbreakpoint(), t
.addclasses(), t.params.loop && t.loopcreate(), t.updatesize(), t.updateslides(), t
.params.watchoverflow && t.checkoverflow(), t.params.grabcursor && t.enabled && t
.setgrabcursor(), t.params.preloadimages && t.preloadimages(), t.params.loop ? t
.slideto(t.params.initialslide + t.loopedslides, 0, t.params.runcallbacksoninit, !1, !
0) : t.slideto(t.params.initialslide, 0, t.params.runcallbacksoninit, !1, !0), t
.attachevents(), t.initialized = !0, 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.removeattr(
"style"), r.removeattr("style"), n && n.length && n.removeclass([a
.slidevisibleclass, a.slideactiveclass, a.slidenextclass, a.slideprevclass
].join(" ")).removeattr("style").removeattr("data-swiper-slide-index")), s.emit(
"destroy"), object.keys(s.eventslisteners).foreach((e => {
s.off(e)
})), !1 !== e && (s.$el[0].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) {
g(q, e)
}
static get extendeddefaults() {
return q
}
static get defaults() {
return w
}
static installmodule(e) {
v.prototype.__modules__ || (v.prototype.__modules__ = []);
const t = v.prototype.__modules__;
"function" == typeof e && t.indexof(e) < 0 && t.push(e)
}
static use(e) {
return array.isarray(e) ? (e.foreach((e => v.installmodule(e))), v) : (v.installmodule(e), v)
}
}
function f(e, t, s, i) {
const r = a();
return e.params.createelements && object.keys(i).foreach((a => {
if (!s[a] && !0 === s.auto) {
let n = e.$el.children(`.${i[a]}`)[0];
n || (n = r.createelement("div"), n.classname = i[a], e.$el.append(n)), s[a] = n, t[
a] = n
}
})), s
}
function u(e) {
return void 0 === e && (e = ""), `.${e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}`
}
function k(e) {
const t = this,
{
$wrapperel: s,
params: a
} = t;
if (a.loop && t.loopdestroy(), "object" == typeof e && "length" in e)
for (let t = 0; t < e.length; t += 1) e[t] && s.append(e[t]);
else s.append(e);
a.loop && t.loopcreate(), a.observer || t.update()
}
function z(e) {
const t = this,
{
params: s,
$wrapperel: a,
activeindex: i
} = t;
s.loop && t.loopdestroy();
let r = i + 1;
if ("object" == typeof e && "length" in e) {
for (let t = 0; t < e.length; t += 1) e[t] && a.prepend(e[t]);
r = i + e.length
} else a.prepend(e);
s.loop && t.loopcreate(), s.observer || t.update(), t.slideto(r, 0, !1)
}
function q(e, t) {
const s = this,
{
$wrapperel: a,
params: i,
activeindex: r
} = s;
let n = r;
i.loop && (n -= s.loopedslides, s.loopdestroy(), s.slides = a.children(`.${i.slideclass}`));
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.eq(t);
e.remove(), d.unshift(e)
}
if ("object" == typeof t && "length" in t) {
for (let e = 0; e < t.length; e += 1) t[e] && a.append(t[e]);
o = n > e ? n + t.length : n
} else a.append(t);
for (let e = 0; e < d.length; e += 1) a.append(d[e]);
i.loop && s.loopcreate(), i.observer || s.update(), i.loop ? s.slideto(o + s.loopedslides, 0, !1) : s
.slideto(o, 0, !1)
}
function j(e) {
const t = this,
{
params: s,
$wrapperel: a,
activeindex: i
} = t;
let r = i;
s.loop && (r -= t.loopedslides, t.loopdestroy(), t.slides = a.children(`.${s.slideclass}`));
let n, l = r;
if ("object" == typeof e && "length" in e) {
for (let s = 0; s < e.length; s += 1) n = e[s], t.slides[n] && t.slides.eq(n).remove(), n < l && (
l -= 1);
l = math.max(l, 0)
} else n = e, t.slides[n] && t.slides.eq(n).remove(), n < l && (l -= 1), l = math.max(l, 0);
s.loop && t.loopcreate(), s.observer || t.update(), s.loop ? t.slideto(l + t.loopedslides, 0, !1) : t
.slideto(l, 0, !1)
}
function ee() {
const e = this,
t = [];
for (let s = 0; s < e.slides.length; s += 1) t.push(s);
e.removeslide(t)
}
function te(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.each((e => {
s.$(e).find(
".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
).remove()
})), o()
}
})), a("virtualupdate", (() => {
s.params.effect === t && (s.slides.length || (c = !0), requestanimationframe((() => {
c && s.slides && s.slides.length && (i(), c = !1)
})))
}))
}
function se(e, t) {
return e.transformel ? t.find(e.transformel).css({
"backface-visibility": "hidden",
"-webkit-backface-visibility": "hidden"
}) : t
}
function ae(e) {
let {
swiper: t,
duration: s,
transformel: a,
allslides: i
} = e;
const {
slides: r,
activeindex: n,
$wrapperel: l
} = t;
if (t.params.virtualtranslate && 0 !== s) {
let e, s = !1;
e = i ? a ? r.find(a) : r : a ? r.eq(n).find(a) : r.eq(n), e.transitionend((() => {
if (s) return;
if (!t || t.destroyed) return;
s = !0, t.animating = !1;
const e = ["webkittransitionend", "transitionend"];
for (let t = 0; t < e.length; t += 1) l.trigger(e[t])
}))
}
}
function ie(e, t, s) {
const a = "swiper-slide-shadow" + (s ? `-${s}` : ""),
i = e.transformel ? t.find(e.transformel) : t;
let r = i.children(`.${a}`);
return r.length || (r = d(``), i.append(r)), r
}
object.keys(_).foreach((e => {
object.keys(_[e]).foreach((t => {
v.prototype[t] = _[e][t]
}))
})), v.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, t) {
void 0 === t && (t = {});
const s = new(l.mutationobserver || l.webkitmutationobserver)((e => {
if (1 === e.length) return void i("observerupdate", e[0]);
const t = function() {
i("observerupdate", e[0])
};
l.requestanimationframe ? l.requestanimationframe(t) : l.settimeout(
t, 0)
}));
s.observe(e, {
attributes: void 0 === t.attributes || t.attributes,
childlist: void 0 === t.childlist || t.childlist,
characterdata: void 0 === t.characterdata || t.characterdata
}), n.push(s)
};
s({
observer: !1,
observeparents: !1,
observeslidechildren: !1
}), a("init", (() => {
if (t.params.observer) {
if (t.params.observeparents) {
const e = t.$el.parents();
for (let t = 0; t < e.length; t += 1) o(e[t])
}
o(t.$el[0], {
childlist: t.params.observeslidechildren
}), o(t.$wrapperel[0], {
attributes: !1
})
}
})), a("destroy", (() => {
n.foreach((e => {
e.disconnect()
})), n.splice(0, n.length)
}))
}]);
const re = [function(e) {
let t, {
swiper: s,
extendparams: a,
on: i,
emit: r
} = e;
function n(e, t) {
const a = s.params.virtual;
if (a.cache && s.virtual.cache[t]) return s.virtual.cache[t];
const i = a.renderslide ? d(a.renderslide.call(s, e, t)) : d(
`${e}
`);
return i.attr("data-swiper-slide-index") || i.attr("data-swiper-slide-index", t), a.cache &&
(s.virtual.cache[t] = i), i
}
function l(e) {
const {
slidesperview: t,
slidespergroup: a,
centeredslides: i
} = s.params, {
addslidesbefore: l,
addslidesafter: o
} = s.params.virtual, {
from: d,
to: c,
slides: p,
slidesgrid: u,
offset: h
} = s.virtual;
s.params.cssmode || s.updateactiveindex();
const m = s.activeindex || 0;
let f, g, v;
f = s.rtltranslate ? "right" : s.ishorizontal() ? "left" : "top", i ? (g = math.floor(t /
2) + a + o, v = math.floor(t / 2) + a + l) : (g = t + (a - 1) + o, v = a + l);
const w = math.max((m || 0) - v, 0),
b = math.min((m || 0) + g, p.length - 1),
x = (s.slidesgrid[w] || 0) - (s.slidesgrid[0] || 0);
function y() {
s.updateslides(), s.updateprogress(), s.updateslidesclasses(), s.lazy && s.params.lazy
.enabled && s.lazy.load(), r("virtualupdate")
}
if (object.assign(s.virtual, {
from: w,
to: b,
offset: x,
slidesgrid: s.slidesgrid
}), d === w && c === b && !e) return s.slidesgrid !== u && x !== h && s.slides.css(f,
`${x}px`), s.updateprogress(), void r("virtualupdate");
if (s.params.virtual.renderexternal) return s.params.virtual.renderexternal.call(s, {
offset: x,
from: w,
to: b,
slides: function() {
const e = [];
for (let t = w; t <= b; t += 1) e.push(p[t]);
return e
}()
}), void(s.params.virtual.renderexternalupdate ? y() : r("virtualupdate"));
const e = [],
c = [];
if (e) s.$wrapperel.find(`.${s.params.slideclass}`).remove();
else
for (let e = d; e <= c; e += 1)(e < w || e > b) && s.$wrapperel.find(
`.${s.params.slideclass}[data-swiper-slide-index="${e}"]`).remove();
for (let t = 0; t < p.length; t += 1) t >= w && t <= b && (void 0 === c || e ? c.push(t) : (
t > c && c.push(t), t < d && e.push(t)));
c.foreach((e => {
s.$wrapperel.append(n(p[e], e))
})), e.sort(((e, t) => t - e)).foreach((e => {
s.$wrapperel.prepend(n(p[e], e))
})), s.$wrapperel.children(".swiper-slide").css(f, `${x}px`), y()
}
a({
virtual: {
enabled: !1,
slides: [],
cache: !0,
renderslide: null,
renderexternal: null,
renderexternalupdate: !0,
addslidesbefore: 0,
addslidesafter: 0
}
}), s.virtual = {
cache: {},
from: void 0,
to: void 0,
slides: [],
offset: 0,
slidesgrid: []
}, i("beforeinit", (() => {
s.params.virtual.enabled && (s.virtual.slides = s.params.virtual.slides, s
.classnames.push(`${s.params.containermodifierclass}virtual`), s.params
.watchslidesprogress = !0, s.originalparams.watchslidesprogress = !0, s
.params.initialslide || l())
})), i("settranslate", (() => {
s.params.virtual.enabled && (s.params.cssmode && !s._immediatevirtual ? (
cleartimeout(t), t = settimeout((() => {
l()
}), 100)) : l())
})), i("init update resize", (() => {
s.params.virtual.enabled && s.params.cssmode && v(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);
l(!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.attr("data-swiper-slide-index");
r && a.attr("data-swiper-slide-index", parseint(r, 10) +
i), t[parseint(s, 10) + i] = a
})), s.virtual.cache = t
}
l(!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.virtual.slides.splice(e[a],
1), s.params.virtual.cache && delete s.virtual.cache[e[a]], e[
a] < t && (t -= 1), t = math.max(t, 0);
else s.virtual.slides.splice(e, 1), s.params.virtual.cache && delete s
.virtual.cache[e], e < t && (t -= 1), t = math.max(t, 0);
l(!0), s.slideto(t, 0)
},
removeallslides: function() {
s.virtual.slides = [], s.params.virtual.cache && (s.virtual.cache = {}), l(!
0), s.slideto(0, 0)
},
update: l
})
}, function(e) {
let {
swiper: t,
extendparams: s,
on: i,
emit: n
} = e;
const l = a(),
o = r();
function c(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,
h = 38 === i,
m = 40 === i;
if (!t.allowslidenext && (t.ishorizontal() && u || t.isvertical() && m || c)) return !1;
if (!t.allowslideprev && (t.ishorizontal() && p || t.isvertical() && h || 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 || h || m)) {
let e = !1;
if (t.$el.parents(`.${t.params.slideclass}`).length > 0 && 0 === t.$el.parents(
`.${t.params.slideactiveclass}`).length) return;
const a = t.$el,
i = a[0].clientwidth,
r = a[0].clientheight,
n = o.innerwidth,
l = o.innerheight,
d = t.$el.offset();
s && (d.left -= t.$el[0].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 || h || m) && (a
.preventdefault ? a.preventdefault() : a.returnvalue = !1), (c || m) && t
.slidenext(), (d || h) && t.slideprev()), n("keypress", i)
}
}
function p() {
t.keyboard.enabled || (d(l).on("keydown", c), t.keyboard.enabled = !0)
}
function u() {
t.keyboard.enabled && (d(l).off("keydown", c), t.keyboard.enabled = !1)
}
t.keyboard = {
enabled: !1
}, s({
keyboard: {
enabled: !1,
onlyinviewport: !0,
pageupdown: !0
}
}), i("init", (() => {
t.params.keyboard.enabled && p()
})), i("destroy", (() => {
t.keyboard.enabled && u()
})), object.assign(t.keyboard, {
enable: p,
disable: u
})
}, function(e) {
let {
swiper: t,
extendparams: s,
on: a,
emit: i
} = e;
const n = r();
let l;
s({
mousewheel: {
enabled: !1,
releaseonedges: !1,
invert: !1,
forcetoaxis: !1,
sensitivity: 1,
eventstarget: "container",
thresholddelta: null,
thresholdtime: null
}
}), t.mousewheel = {
enabled: !1
};
let o, c = u();
const h = [];
function m() {
t.enabled && (t.mouseentered = !0)
}
function f() {
t.enabled && (t.mouseentered = !1)
}
function g(e) {
return !(t.params.mousewheel.thresholddelta && e.delta < t.params.mousewheel
.thresholddelta) && (!(t.params.mousewheel.thresholdtime && u() - c < t.params
.mousewheel.thresholdtime) && (e.delta >= 6 && u() - c < 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)), c = (new n.date).gettime(), !1)))
}
function v(e) {
let s = e,
a = !0;
if (!t.enabled) return;
const r = t.params.mousewheel;
t.params.cssmode && s.preventdefault();
let n = t.$el;
if ("container" !== t.params.mousewheel.eventstarget && (n = d(t.params.mousewheel
.eventstarget)), !t.mouseentered && !n[0].contains(s.target) && !r.releaseonedges)
return !0;
s.originalevent && (s = s.originalevent);
let c = 0;
const m = t.rtltranslate ? -1 : 1,
f = 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(f.pixelx) > math.abs(f.pixely))) return !0;
c = -f.pixelx * m
} else {
if (!(math.abs(f.pixely) > math.abs(f.pixelx))) return !0;
c = -f.pixely
}
else c = math.abs(f.pixelx) > math.abs(f.pixely) ? -f.pixelx * m : -f.pixely;
if (0 === c) return !0;
r.invert && (c = -c);
let v = t.gettranslate() + c * 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: u(),
delta: math.abs(c),
direction: math.sign(c)
},
a = o && e.time < o.time + 500 && e.delta <= o.delta && e.direction === o.direction;
if (!a) {
o = void 0, t.params.loop && t.loopfix();
let n = t.gettranslate() + c * r.sensitivity;
const d = t.isbeginning,
u = 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(), (!d && t.isbeginning || !u && t
.isend) && t.updateslidesclasses(), t.params.freemode.sticky) {
cleartimeout(l), l = void 0, h.length >= 15 && h.shift();
const s = h.length ? h[h.length - 1] : void 0,
a = h[0];
if (h.push(e), s && (e.delta > s.delta || e.direction !== s.direction)) h
.splice(0);
else if (h.length >= 15 && e.time - a.time < 500 && a.delta - e.delta >= 1 && e
.delta <= 6) {
const s = c > 0 ? .8 : .2;
o = e, h.splice(0), l = p((() => {
t.slidetoclosest(t.params.speed, !0, void 0, s)
}), 0)
}
l || (l = p((() => {
o = e, h.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(), n === t.mintranslate() ||
n === t.maxtranslate()) return !0
}
} else {
const s = {
time: u(),
delta: math.abs(c),
direction: math.sign(c),
raw: e
};
h.length >= 2 && h.shift();
const a = h.length ? h[h.length - 1] : void 0;
if (h.push(s), a ? (s.direction !== a.direction || s.delta > a.delta || s.time > a
.time + 150) && g(s) : g(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 w(e) {
let s = t.$el;
"container" !== t.params.mousewheel.eventstarget && (s = d(t.params.mousewheel
.eventstarget)), s[e]("mouseenter", m), s[e]("mouseleave", f), s[e]("wheel", v)
}
function b() {
return t.params.cssmode ? (t.wrapperel.removeeventlistener("wheel", v), !0) : !t.mousewheel
.enabled && (w("on"), t.mousewheel.enabled = !0, !0)
}
function x() {
return t.params.cssmode ? (t.wrapperel.addeventlistener(event, v), !0) : !!t.mousewheel
.enabled && (w("off"), t.mousewheel.enabled = !1, !0)
}
a("init", (() => {
!t.params.mousewheel.enabled && t.params.cssmode && x(), t.params.mousewheel
.enabled && b()
})), a("destroy", (() => {
t.params.cssmode && b(), t.mousewheel.enabled && x()
})), object.assign(t.mousewheel, {
enable: b,
disable: x
})
}, function(e) {
let {
swiper: t,
extendparams: s,
on: a,
emit: i
} = e;
function r(e) {
let s;
return e && (s = d(e), t.params.uniquenavelements && "string" == typeof e && s.length > 1 &&
1 === t.$el.find(e).length && (s = t.$el.find(e))), s
}
function n(e, s) {
const a = t.params.navigation;
e && e.length > 0 && (e[s ? "addclass" : "removeclass"](a.disabledclass), e[0] &&
"button" === e[0].tagname && (e[0].disabled = s), t.params.watchoverflow && t
.enabled && e[t.islocked ? "addclass" : "removeclass"](a.lockclass))
}
function l() {
if (t.params.loop) return;
const {
$nextel: e,
$prevel: s
} = t.navigation;
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 c(e) {
e.preventdefault(), (!t.isend || t.params.loop || t.params.rewind) && (t.slidenext(), i(
"navigationnext"))
}
function p() {
const e = t.params.navigation;
if (t.params.navigation = f(t, t.originalparams.navigation, t.params.navigation, {
nextel: "swiper-button-next",
prevel: "swiper-button-prev"
}), !e.nextel && !e.prevel) return;
const s = r(e.nextel),
a = r(e.prevel);
s && s.length > 0 && s.on("click", c), a && a.length > 0 && a.on("click", o), object.assign(
t.navigation, {
$nextel: s,
nextel: s && s[0],
$prevel: a,
prevel: a && a[0]
}), t.enabled || (s && s.addclass(e.lockclass), a && a.addclass(e.lockclass))
}
function u() {
const {
$nextel: e,
$prevel: s
} = t.navigation;
e && e.length && (e.off("click", c), e.removeclass(t.params.navigation.disabledclass)), s &&
s.length && (s.off("click", o), s.removeclass(t.params.navigation.disabledclass))
}
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,
$nextel: null,
prevel: null,
$prevel: null
}, a("init", (() => {
!1 === t.params.navigation.enabled ? h() : (p(), l())
})), a("toedge fromedge lock unlock", (() => {
l()
})), a("destroy", (() => {
u()
})), a("enable disable", (() => {
const {
$nextel: e,
$prevel: s
} = t.navigation;
e && e[t.enabled ? "removeclass" : "addclass"](t.params.navigation.lockclass),
s && s[t.enabled ? "removeclass" : "addclass"](t.params.navigation
.lockclass)
})), a("click", ((e, s) => {
const {
$nextel: a,
$prevel: r
} = t.navigation, n = s.target;
if (t.params.navigation.hideonclick && !d(n).is(r) && !d(n).is(a)) {
if (t.pagination && t.params.pagination && t.params.pagination.clickable &&
(t.pagination.el === n || t.pagination.el.contains(n))) return;
let e;
a ? e = a.hasclass(t.params.navigation.hiddenclass) : r && (e = r.hasclass(t
.params.navigation.hiddenclass)), i(!0 === e ? "navigationshow" :
"navigationhide"), a && a.toggleclass(t.params.navigation
.hiddenclass), r && r.toggleclass(t.params.navigation.hiddenclass)
}
}));
const h = () => {
t.$el.addclass(t.params.navigation.navigationdisabledclass), u()
};
object.assign(t.navigation, {
enable: () => {
t.$el.removeclass(t.params.navigation.navigationdisabledclass), p(), l()
},
disable: h,
update: l,
init: p,
destroy: u
})
}, 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,
$el: null,
bullets: []
};
let l = 0;
function o() {
return !t.params.pagination.el || !t.pagination.el || !t.pagination.$el || 0 === t
.pagination.$el.length
}
function c(e, s) {
const {
bulletactiveclass: a
} = t.params.pagination;
e[s]().addclass(`${a}-${s}`)[s]().addclass(`${a}-${s}-${s}`)
}
function p() {
const e = t.rtl,
s = t.params.pagination;
if (o()) return;
const a = t.virtual && t.params.virtual.enabled ? t.virtual.slides.length : t.slides.length,
r = t.pagination.$el;
let p;
const u = t.params.loop ? math.ceil((a - 2 * t.loopedslides) / t.params.slidespergroup) : t
.snapgrid.length;
if (t.params.loop ? (p = math.ceil((t.activeindex - t.loopedslides) / t.params
.slidespergroup), p > a - 1 - 2 * t.loopedslides && (p -= a - 2 * t
.loopedslides), p > u - 1 && (p -= u), p < 0 && "bullets" !== t.params
.paginationtype && (p = u + p)) : p = void 0 !== t.snapindex ? t.snapindex : t
.activeindex || 0, "bullets" === s.type && t.pagination.bullets && t.pagination.bullets
.length > 0) {
const a = t.pagination.bullets;
let i, o, u;
if (s.dynamicbullets && (n = a.eq(0)[t.ishorizontal() ? "outerwidth" : "outerheight"](!
0), r.css(t.ishorizontal() ? "width" : "height", n * (s.dynamicmainbullets +
4) + "px"), s.dynamicmainbullets > 1 && void 0 !== t.previousindex && (l +=
p - (t.previousindex - t.loopedslides || 0), l > s.dynamicmainbullets - 1 ?
l = s.dynamicmainbullets - 1 : l < 0 && (l = 0)), i = math.max(p - l, 0),
o = i + (math.min(a.length, s.dynamicmainbullets) - 1), u = (o + i) / 2), a
.removeclass(["", "-next", "-next-next", "-prev", "-prev-prev", "-main"].map((e =>
`${s.bulletactiveclass}${e}`)).join(" ")), r.length > 1) a.each((e => {
const t = d(e),
a = t.index();
a === p && t.addclass(s.bulletactiveclass), s.dynamicbullets && (a >=
i && a <= o && t.addclass(`${s.bulletactiveclass}-main`), a ===
i && c(t, "prev"), a === o && c(t, "next"))
}));
else {
const e = a.eq(p),
r = e.index();
if (e.addclass(s.bulletactiveclass), s.dynamicbullets) {
const e = a.eq(i),
n = a.eq(o);
for (let e = i; e <= o; e += 1) a.eq(e).addclass(`${s.bulletactiveclass}-main`);
if (t.params.loop)
if (r >= a.length) {
for (let e = s.dynamicmainbullets; e >= 0; e -= 1) a.eq(a.length - e)
.addclass(`${s.bulletactiveclass}-main`);
a.eq(a.length - s.dynamicmainbullets - 1).addclass(
`${s.bulletactiveclass}-prev`)
} else c(e, "prev"), c(n, "next");
else c(e, "prev"), c(n, "next")
}
}
if (s.dynamicbullets) {
const i = math.min(a.length, s.dynamicmainbullets + 4),
r = (n * i - n) / 2 - u * n,
l = e ? "right" : "left";
a.css(t.ishorizontal() ? l : "top", `${r}px`)
}
}
if ("fraction" === s.type && (r.find(u(s.currentclass)).text(s.formatfractioncurrent(p +
1)), r.find(u(s.totalclass)).text(s.formatfractiontotal(u))), "progressbar" === s
.type) {
let e;
e = s.progressbaropposite ? t.ishorizontal() ? "vertical" : "horizontal" : t
.ishorizontal() ? "horizontal" : "vertical";
const a = (p + 1) / u;
let i = 1,
n = 1;
"horizontal" === e ? i = a : n = a, r.find(u(s.progressbarfillclass)).transform(
`translate3d(0,0,0) scalex(${i}) scaley(${n})`).transition(t.params.speed)
}
"custom" === s.type && s.rendercustom ? (r.html(s.rendercustom(t, p + 1, u)), i(
"paginationrender", r[0])) : i("paginationupdate", r[0]), t.params.watchoverflow &&
t.enabled && r[t.islocked ? "addclass" : "removeclass"](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.slides.length,
a = t.pagination.$el;
let r = "";
if ("bullets" === e.type) {
let i = t.params.loop ? math.ceil((s - 2 * t.loopedslides) / t.params.slidespergroup) :
t.snapgrid.length;
t.params.freemode && t.params.freemode.enabled && !t.params.loop && i > s && (i = s);
for (let s = 0; s < i; s += 1) e.renderbullet ? r += e.renderbullet.call(t, s, e
.bulletclass) : r +=
`<${e.bulletelement} class="${e.bulletclass}">${e.bulletelement}>`;
a.html(r), t.pagination.bullets = a.find(u(e.bulletclass))
}
"fraction" === e.type && (r = e.renderfraction ? e.renderfraction.call(t, e.currentclass, e
.totalclass) :
` / `, a
.html(r)), "progressbar" === e.type && (r = e.renderprogressbar ? e
.renderprogressbar.call(t, e.progressbarfillclass) :
``, a.html(r)), "custom" !== e
.type && i("paginationrender", t.pagination.$el[0])
}
function h() {
t.params.pagination = f(t, t.originalparams.pagination, t.params.pagination, {
el: "swiper-pagination"
});
const e = t.params.pagination;
if (!e.el) return;
let s = d(e.el);
0 !== s.length && (t.params.uniquenavelements && "string" == typeof e.el && s.length > 1 &&
(s = t.$el.find(e.el), s.length > 1 && (s = s.filter((e => d(e).parents(".swiper")[
0] === t.el)))), "bullets" === e.type && e.clickable && s.addclass(e
.clickableclass), s.addclass(e.modifierclass + e.type), s.addclass(t
.ishorizontal() ? e.horizontalclass : e.verticalclass), "bullets" === e.type &&
e.dynamicbullets && (s.addclass(`${e.modifierclass}${e.type}-dynamic`), l = 0, e
.dynamicmainbullets < 1 && (e.dynamicmainbullets = 1)), "progressbar" === e
.type && e.progressbaropposite && s.addclass(e.progressbaroppositeclass), e
.clickable && s.on("click", u(e.bulletclass), (function(e) {
e.preventdefault();
let s = d(this).index() * t.params.slidespergroup;
t.params.loop && (s += t.loopedslides), t.slideto(s)
})), object.assign(t.pagination, {
$el: s,
el: s[0]
}), t.enabled || s.addclass(e.lockclass))
}
function m() {
const e = t.params.pagination;
if (o()) return;
const s = t.pagination.$el;
s.removeclass(e.hiddenclass), s.removeclass(e.modifierclass + e.type), s.removeclass(t
.ishorizontal() ? e.horizontalclass : e.verticalclass), t.pagination.bullets && t
.pagination.bullets.removeclass && t.pagination.bullets.removeclass(e
.bulletactiveclass), e.clickable && s.off("click", u(e.bulletclass))
}
a("init", (() => {
!1 === t.params.pagination.enabled ? f() : (h(), u(), p())
})), a("activeindexchange", (() => {
(t.params.loop || void 0 === t.snapindex) && p()
})), a("snapindexchange", (() => {
t.params.loop || p()
})), a("slideslengthchange", (() => {
t.params.loop && (u(), p())
})), a("snapgridlengthchange", (() => {
t.params.loop || (u(), p())
})), a("destroy", (() => {
m()
})), a("enable disable", (() => {
const {
$el: e
} = t.pagination;
e && e[t.enabled ? "removeclass" : "addclass"](t.params.pagination.lockclass)
})), a("lock unlock", (() => {
p()
})), a("click", ((e, s) => {
const a = s.target,
{
$el: r
} = t.pagination;
if (t.params.pagination.el && t.params.pagination.hideonclick && r && r.length >
0 && !d(a).hasclass(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.hasclass(t.params.pagination.hiddenclass);
i(!0 === e ? "paginationshow" : "paginationhide"), r.toggleclass(t.params
.pagination.hiddenclass)
}
}));
const f = () => {
t.$el.addclass(t.params.pagination.paginationdisabledclass), t.pagination.$el && t
.pagination.$el.addclass(t.params.pagination.paginationdisabledclass), m()
};
object.assign(t.pagination, {
enable: () => {
t.$el.removeclass(t.params.pagination.paginationdisabledclass), t.pagination
.$el && t.pagination.$el.removeclass(t.params.pagination
.paginationdisabledclass), h(), u(), p()
},
disable: f,
render: u,
update: p,
init: h,
destroy: m
})
}, function(e) {
let {
swiper: t,
extendparams: s,
on: i,
emit: r
} = e;
const n = a();
let l, o, c, u, h = !1,
m = null,
f = null;
function g() {
if (!t.params.scrollbar.el || !t.scrollbar.el) return;
const {
scrollbar: e,
rtltranslate: s,
progress: a
} = t, {
$dragel: i,
$el: r
} = e, n = t.params.scrollbar;
let l = o,
d = (c - o) * a;
s ? (d = -d, d > 0 ? (l = o - d, d = 0) : -d + o > c && (l = c + d)) : d < 0 ? (l = o + d,
d = 0) : d + o > c && (l = c - d), t.ishorizontal() ? (i.transform(
`translate3d(${d}px, 0, 0)`), i[0].style.width = `${l}px`) : (i.transform(
`translate3d(0px, ${d}px, 0)`), i[0].style.height = `${l}px`), n.hide && (
cleartimeout(m), r[0].style.opacity = 1, m = settimeout((() => {
r[0].style.opacity = 0, r.transition(400)
}), 1e3))
}
function v() {
if (!t.params.scrollbar.el || !t.scrollbar.el) return;
const {
scrollbar: e
} = t, {
$dragel: s,
$el: a
} = e;
s[0].style.width = "", s[0].style.height = "", c = t.ishorizontal() ? a[0].offsetwidth : a[
0].offsetheight, u = t.size / (t.virtualsize + t.params.slidesoffsetbefore - (t
.params.centeredslides ? t.snapgrid[0] : 0)), o = "auto" === t.params.scrollbar
.dragsize ? c * u : parseint(t.params.scrollbar.dragsize, 10), t.ishorizontal() ? s[0]
.style.width = `${o}px` : s[0].style.height = `${o}px`, a[0].style.display = u >= 1 ?
"none" : "", t.params.scrollbar.hide && (a[0].style.opacity = 0), t.params
.watchoverflow && t.enabled && e.$el[t.islocked ? "addclass" : "removeclass"](t.params
.scrollbar.lockclass)
}
function w(e) {
return t.ishorizontal() ? "touchstart" === e.type || "touchmove" === e.type ? e
.targettouches[0].clientx : e.clientx : "touchstart" === e.type || "touchmove" === e
.type ? e.targettouches[0].clienty : e.clienty
}
function b(e) {
const {
scrollbar: s,
rtltranslate: a
} = t, {
$el: i
} = s;
let r;
r = (w(e) - i.offset()[t.ishorizontal() ? "left" : "top"] - (null !== l ? l : o / 2)) / (c -
o), 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: o
} = a;
h = !0, l = e.target === o[0] || e.target === o ? w(e) - e.target.getboundingclientrect()[t
.ishorizontal() ? "left" : "top"] : null, e.preventdefault(), e.stoppropagation(), i
.transition(100), o.transition(100), b(e), cleartimeout(f), n.transition(0), s.hide && n
.css("opacity", 1), t.params.cssmode && t.$wrapperel.css("scroll-snap-type", "none"), r(
"scrollbardragstart", e)
}
function y(e) {
const {
scrollbar: s,
$wrapperel: a
} = t, {
$el: i,
$dragel: n
} = s;
h && (e.preventdefault ? e.preventdefault() : e.returnvalue = !1, b(e), a.transition(0), i
.transition(0), n.transition(0), r("scrollbardragmove", e))
}
function e(e) {
const s = t.params.scrollbar,
{
scrollbar: a,
$wrapperel: i
} = t,
{
$el: n
} = a;
h && (h = !1, t.params.cssmode && (t.$wrapperel.css("scroll-snap-type", ""), i.transition(
"")), s.hide && (cleartimeout(f), f = p((() => {
n.css("opacity", 0), n.transition(400)
}), 1e3)), r("scrollbardragend", e), s.snaponrelease && t.slidetoclosest())
}
function c(e) {
const {
scrollbar: s,
toucheventstouch: a,
toucheventsdesktop: i,
params: r,
support: l
} = t, o = s.$el;
if (!o) return;
const d = o[0],
c = !(!l.passivelistener || !r.passivelisteners) && {
passive: !1,
capture: !1
},
p = !(!l.passivelistener || !r.passivelisteners) && {
passive: !0,
capture: !1
};
if (!d) return;
const u = "on" === e ? "addeventlistener" : "removeeventlistener";
l.touch ? (d[u](a.start, x, c), d[u](a.move, y, c), d[u](a.end, e, p)) : (d[u](i.start, x,
c), n[u](i.move, y, c), n[u](i.end, e, p))
}
function t() {
const {
scrollbar: e,
$el: s
} = t;
t.params.scrollbar = f(t, t.originalparams.scrollbar, t.params.scrollbar, {
el: "swiper-scrollbar"
});
const a = t.params.scrollbar;
if (!a.el) return;
let i = d(a.el);
t.params.uniquenavelements && "string" == typeof a.el && i.length > 1 && 1 === s.find(a.el)
.length && (i = s.find(a.el)), i.addclass(t.ishorizontal() ? a.horizontalclass : a
.verticalclass);
let r = i.find(`.${t.params.scrollbar.dragclass}`);
0 === r.length && (r = d(``), i.append(
r)), object.assign(e, {
$el: i,
el: i[0],
$dragel: r,
dragel: r[0]
}), a.draggable && t.params.scrollbar.el && t.scrollbar.el && c("on"), i && i[t
.enabled ? "removeclass" : "addclass"](t.params.scrollbar.lockclass)
}
function $() {
const e = t.params.scrollbar,
s = t.scrollbar.$el;
s && s.removeclass(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,
$el: null,
$dragel: null
}, i("init", (() => {
!1 === t.params.scrollbar.enabled ? s() : (t(), v(), g())
})), i("update resize observerupdate lock unlock", (() => {
v()
})), i("settranslate", (() => {
g()
})), i("settransition", ((e, s) => {
! function(e) {
t.params.scrollbar.el && t.scrollbar.el && t.scrollbar.$dragel.transition(e)
}(s)
})), i("enable disable", (() => {
const {
$el: e
} = t.scrollbar;
e && e[t.enabled ? "removeclass" : "addclass"](t.params.scrollbar.lockclass)
})), i("destroy", (() => {
$()
}));
const s = () => {
t.$el.addclass(t.params.scrollbar.scrollbardisabledclass), t.scrollbar.$el && t
.scrollbar.$el.addclass(t.params.scrollbar.scrollbardisabledclass), $()
};
object.assign(t.scrollbar, {
enable: () => {
t.$el.removeclass(t.params.scrollbar.scrollbardisabledclass), t.scrollbar
.$el && t.scrollbar.$el.removeclass(t.params.scrollbar
.scrollbardisabledclass), t(), v(), g()
},
disable: s,
updatesize: v,
settranslate: g,
init: t,
destroy: $
})
}, function(e) {
let {
swiper: t,
extendparams: s,
on: a
} = e;
s({
parallax: {
enabled: !1
}
});
const i = (e, s) => {
const {
rtl: a
} = t, i = d(e), r = a ? -1 : 1, n = i.attr("data-swiper-parallax") || "0";
let l = i.attr("data-swiper-parallax-x"),
o = i.attr("data-swiper-parallax-y");
const c = i.attr("data-swiper-parallax-scale"),
p = i.attr("data-swiper-parallax-opacity");
if (l || o ? (l = l || "0", o = o || "0") : t.ishorizontal() ? (l = n, o = "0") : (o =
n, l = "0"), l = l.indexof("%") >= 0 ? parseint(l, 10) * s * r + "%" : l * s *
r + "px", o = o.indexof("%") >= 0 ? parseint(o, 10) * s + "%" : o * s + "px",
null != p) {
const e = p - (p - 1) * (1 - math.abs(s));
i[0].style.opacity = e
}
if (null == c) i.transform(`translate3d(${l}, ${o}, 0px)`);
else {
const e = c - (c - 1) * (1 - math.abs(s));
i.transform(`translate3d(${l}, ${o}, 0px) scale(${e})`)
}
},
r = () => {
const {
$el: e,
slides: s,
progress: a,
snapgrid: r
} = t;
e.children(
"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]"
).each((e => {
i(e, a)
})), s.each(((e, s) => {
let n = e.progress;
t.params.slidespergroup > 1 && "auto" !== t.params.slidesperview && (
n += math.ceil(s / 2) - a * (r.length - 1)), n = math.min(math
.max(n, -1), 1), d(e).find(
"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]"
).each((e => {
i(e, n)
}))
}))
};
a("beforeinit", (() => {
t.params.parallax.enabled && (t.params.watchslidesprogress = !0, t
.originalparams.watchslidesprogress = !0)
})), a("init", (() => {
t.params.parallax.enabled && r()
})), a("settranslate", (() => {
t.params.parallax.enabled && r()
})), a("settransition", ((e, s) => {
t.params.parallax.enabled && function(e) {
void 0 === e && (e = t.params.speed);
const {
$el: s
} = t;
s.find(
"[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]")
.each((t => {
const s = d(t);
let a = parseint(s.attr(
"data-swiper-parallax-duration"), 10) || e;
0 === e && (a = 0), s.transition(a)
}))
}(s)
}))
}, function(e) {
let {
swiper: t,
extendparams: s,
on: a,
emit: i
} = e;
const n = r();
s({
zoom: {
enabled: !1,
maxratio: 3,
minratio: 1,
toggle: !0,
containerclass: "swiper-zoom-container",
zoomedslideclass: "swiper-slide-zoomed"
}
}), t.zoom = {
enabled: !1
};
let l, o, c, p = 1,
u = !1;
const m = {
$slideel: void 0,
slidewidth: void 0,
slideheight: void 0,
$imageel: void 0,
$imagewrapel: void 0,
maxratio: 3
},
f = {
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 = 1;
function w(e) {
if (e.targettouches.length < 2) return 1;
const t = e.targettouches[0].pagex,
s = e.targettouches[0].pagey,
a = e.targettouches[1].pagex,
i = e.targettouches[1].pagey;
return math.sqrt((a - t) ** 2 + (i - s) ** 2)
}
function b(e) {
const s = t.support,
a = t.params.zoom;
if (o = !1, c = !1, !s.gestures) {
if ("touchstart" !== e.type || "touchstart" === e.type && e.targettouches.length < 2)
return;
o = !0, m.scalestart = w(e)
}
m.$slideel && m.$slideel.length || (m.$slideel = d(e.target).closest(
`.${t.params.slideclass}`), 0 === m.$slideel.length && (m.$slideel = t.slides
.eq(t.activeindex)), m.$imageel = m.$slideel.find(`.${a.containerclass}`).eq(0)
.find("picture, img, svg, canvas, .swiper-zoom-target").eq(0), m.$imagewrapel = m
.$imageel.parent(`.${a.containerclass}`), m.maxratio = m.$imagewrapel.attr(
"data-swiper-zoom") || a.maxratio, 0 !== m.$imagewrapel.length) ? (m.$imageel &&
m.$imageel.transition(0), u = !0) : m.$imageel = void 0
}
function x(e) {
const s = t.support,
a = t.params.zoom,
i = t.zoom;
if (!s.gestures) {
if ("touchmove" !== e.type || "touchmove" === e.type && e.targettouches.length < 2)
return;
c = !0, m.scalemove = w(e)
}
m.$imageel && 0 !== m.$imageel.length ? (s.gestures ? i.scale = e.scale * p : i.scale = m
.scalemove / m.scalestart * p, i.scale > m.maxratio && (i.scale = m.maxratio - 1 + (
i.scale - m.maxratio + 1) ** .5), i.scale < a.minratio && (i.scale = a
.minratio + 1 - (a.minratio - i.scale + 1) ** .5), m.$imageel.transform(
`translate3d(0,0,0) scale(${i.scale})`)) : "gesturechange" === e.type && b(e)
}
function y(e) {
const s = t.device,
a = t.support,
i = t.params.zoom,
r = t.zoom;
if (!a.gestures) {
if (!o || !c) return;
if ("touchend" !== e.type || "touchend" === e.type && e.changedtouches.length < 2 && !s
.android) return;
o = !1, c = !1
}
m.$imageel && 0 !== m.$imageel.length && (r.scale = math.max(math.min(r.scale, m.maxratio),
i.minratio), m.$imageel.transition(t.params.speed).transform(
`translate3d(0,0,0) scale(${r.scale})`), p = r.scale, u = !1, 1 === r.scale && (
m.$slideel = void 0))
}
function e(e) {
const s = t.zoom;
if (!m.$imageel || 0 === m.$imageel.length) return;
if (t.allowclick = !1, !f.istouched || !m.$slideel) return;
f.ismoved || (f.width = m.$imageel[0].offsetwidth, f.height = m.$imageel[0].offsetheight, f
.startx = h(m.$imagewrapel[0], "x") || 0, f.starty = h(m.$imagewrapel[0], "y") || 0,
m.slidewidth = m.$slideel[0].offsetwidth, m.slideheight = m.$slideel[0]
.offsetheight, m.$imagewrapel.transition(0));
const a = f.width * s.scale,
i = f.height * s.scale;
if (!(a < m.slidewidth && i < m.slideheight)) {
if (f.minx = math.min(m.slidewidth / 2 - a / 2, 0), f.maxx = -f.minx, f.miny = math.min(
m.slideheight / 2 - i / 2, 0), f.maxy = -f.miny, f.touchescurrent.x =
"touchmove" === e.type ? e.targettouches[0].pagex : e.pagex, f.touchescurrent.y =
"touchmove" === e.type ? e.targettouches[0].pagey : e.pagey, !f.ismoved && !u) {
if (t.ishorizontal() && (math.floor(f.minx) === math.floor(f.startx) && f
.touchescurrent.x < f.touchesstart.x || math.floor(f.maxx) === math.floor(f
.startx) && f.touchescurrent.x > f.touchesstart.x)) return void(f
.istouched = !1);
if (!t.ishorizontal() && (math.floor(f.miny) === math.floor(f.starty) && f
.touchescurrent.y < f.touchesstart.y || math.floor(f.maxy) === math.floor(f
.starty) && f.touchescurrent.y > f.touchesstart.y)) return void(f
.istouched = !1)
}
e.cancelable && e.preventdefault(), e.stoppropagation(), f.ismoved = !0, f.currentx = f
.touchescurrent.x - f.touchesstart.x + f.startx, f.currenty = f.touchescurrent.y - f
.touchesstart.y + f.starty, f.currentx < f.minx && (f.currentx = f.minx + 1 - (f
.minx - f.currentx + 1) ** .8), f.currentx > f.maxx && (f.currentx = f.maxx -
1 + (f.currentx - f.maxx + 1) ** .8), f.currenty < f.miny && (f.currenty = f
.miny + 1 - (f.miny - f.currenty + 1) ** .8), f.currenty > f.maxy && (f
.currenty = f.maxy - 1 + (f.currenty - f.maxy + 1) ** .8), g.prevpositionx || (g
.prevpositionx = f.touchescurrent.x), g.prevpositiony || (g.prevpositiony = f
.touchescurrent.y), g.prevtime || (g.prevtime = date.now()), g.x = (f
.touchescurrent.x - g.prevpositionx) / (date.now() - g.prevtime) / 2, g.y = (f
.touchescurrent.y - g.prevpositiony) / (date.now() - g.prevtime) / 2, math.abs(f
.touchescurrent.x - g.prevpositionx) < 2 && (g.x = 0), math.abs(f.touchescurrent
.y - g.prevpositiony) < 2 && (g.y = 0), g.prevpositionx = f.touchescurrent.x, g
.prevpositiony = f.touchescurrent.y, g.prevtime = date.now(), m.$imagewrapel
.transform(`translate3d(${f.currentx}px, ${f.currenty}px,0)`)
}
}
function c() {
const e = t.zoom;
m.$slideel && t.previousindex !== t.activeindex && (m.$imageel && m.$imageel.transform(
"translate3d(0,0,0) scale(1)"), m.$imagewrapel && m.$imagewrapel.transform(
"translate3d(0,0,0)"), e.scale = 1, p = 1, m.$slideel = void 0, m.$imageel =
void 0, m.$imagewrapel = void 0)
}
function t(e) {
const s = t.zoom,
a = t.params.zoom;
if (m.$slideel || (e && e.target && (m.$slideel = d(e.target).closest(
`.${t.params.slideclass}`)), m.$slideel || (t.params.virtual && t.params.virtual
.enabled && t.virtual ? m.$slideel = t.$wrapperel.children(
`.${t.params.slideactiveclass}`) : m.$slideel = t.slides.eq(t.activeindex)),
m.$imageel = m.$slideel.find(`.${a.containerclass}`).eq(0).find(
"picture, img, svg, canvas, .swiper-zoom-target").eq(0), m.$imagewrapel = m
.$imageel.parent(`.${a.containerclass}`)), !m.$imageel || 0 === m.$imageel.length ||
!m.$imagewrapel || 0 === m.$imagewrapel.length) return;
let i, r, l, o, c, u, h, g, v, w, b, x, y, e, c, t, $, s;
t.params.cssmode && (t.wrapperel.style.overflow = "hidden", t.wrapperel.style.touchaction =
"none"), m.$slideel.addclass(`${a.zoomedslideclass}`), void 0 === f.touchesstart
.x && e ? (i = "touchend" === e.type ? e.changedtouches[0].pagex : e.pagex, r =
"touchend" === e.type ? e.changedtouches[0].pagey : e.pagey) : (i = f.touchesstart
.x, r = f.touchesstart.y), s.scale = m.$imagewrapel.attr("data-swiper-zoom") || a
.maxratio, p = m.$imagewrapel.attr("data-swiper-zoom") || a.maxratio, e ? ($ = m
.$slideel[0].offsetwidth, s = m.$slideel[0].offsetheight, l = m.$slideel.offset()
.left + n.scrollx, o = m.$slideel.offset().top + n.scrolly, c = l + $ / 2 - i, u =
o + s / 2 - r, v = m.$imageel[0].offsetwidth, w = m.$imageel[0].offsetheight, b =
v * s.scale, x = w * s.scale, y = math.min($ / 2 - b / 2, 0), e = math.min(s / 2 -
x / 2, 0), c = -y, t = -e, h = c * s.scale, g = u * s.scale, h < y && (h = y),
h > c && (h = c), g < e && (g = e), g > t && (g = t)) : (h = 0, g = 0), m
.$imagewrapel.transition(300).transform(`translate3d(${h}px, ${g}px,0)`), m.$imageel
.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)
}
function $() {
const e = t.zoom,
s = t.params.zoom;
m.$slideel || (t.params.virtual && t.params.virtual.enabled && t.virtual ? m.$slideel = t
.$wrapperel.children(`.${t.params.slideactiveclass}`) : m.$slideel = t.slides.eq(t
.activeindex), m.$imageel = m.$slideel.find(`.${s.containerclass}`).eq(0).find(
"picture, img, svg, canvas, .swiper-zoom-target").eq(0), m.$imagewrapel = m
.$imageel.parent(`.${s.containerclass}`)), m.$imageel && 0 !== m.$imageel.length &&
m.$imagewrapel && 0 !== m.$imagewrapel.length && (t.params.cssmode && (t.wrapperel.style
.overflow = "", t.wrapperel.style.touchaction = ""), e.scale = 1, p = 1, m
.$imagewrapel.transition(300).transform("translate3d(0,0,0)"), m.$imageel
.transition(300).transform("translate3d(0,0,0) scale(1)"), m.$slideel.removeclass(
`${s.zoomedslideclass}`), m.$slideel = void 0)
}
function s(e) {
const s = t.zoom;
s.scale && 1 !== s.scale ? $() : t(e)
}
function m() {
const e = t.support;
return {
passivelistener: !("touchstart" !== t.touchevents.start || !e.passivelistener || !t
.params.passivelisteners) && {
passive: !0,
capture: !1
},
activelistenerwithcapture: !e.passivelistener || {
passive: !1,
capture: !0
}
}
}
function p() {
return `.${t.params.slideclass}`
}
function k(e) {
const {
passivelistener: s
} = m(), a = p();
t.$wrapperel[e]("gesturestart", a, b, s), t.$wrapperel[e]("gesturechange", a, x, s), t
.$wrapperel[e]("gestureend", a, y, s)
}
function z() {
l || (l = !0, k("on"))
}
function l() {
l && (l = !1, k("off"))
}
function o() {
const e = t.zoom;
if (e.enabled) return;
e.enabled = !0;
const s = t.support,
{
passivelistener: a,
activelistenerwithcapture: i
} = m(),
r = p();
s.gestures ? (t.$wrapperel.on(t.touchevents.start, z, a), t.$wrapperel.on(t.touchevents.end,
l, a)) : "touchstart" === t.touchevents.start && (t.$wrapperel.on(t.touchevents
.start, r, b, a), t.$wrapperel.on(t.touchevents.move, r, x, i), t.$wrapperel.on(
t.touchevents.end, r, y, a), t.touchevents.cancel && t.$wrapperel.on(t
.touchevents.cancel, r, y, a)), t.$wrapperel.on(t.touchevents.move,
`.${t.params.zoom.containerclass}`, e, i)
}
function i() {
const e = t.zoom;
if (!e.enabled) return;
const s = t.support;
e.enabled = !1;
const {
passivelistener: a,
activelistenerwithcapture: i
} = m(), r = p();
s.gestures ? (t.$wrapperel.off(t.touchevents.start, z, a), t.$wrapperel.off(t.touchevents
.end, l, a)) : "touchstart" === t.touchevents.start && (t.$wrapperel.off(t
.touchevents.start, r, b, a), t.$wrapperel.off(t.touchevents.move, r, x, i), t
.$wrapperel.off(t.touchevents.end, r, y, a), t.touchevents.cancel && t.$wrapperel
.off(t.touchevents.cancel, r, y, a)), t.$wrapperel.off(t.touchevents.move,
`.${t.params.zoom.containerclass}`, e, i)
}
object.defineproperty(t.zoom, "scale", {
get: () => v,
set(e) {
if (v !== e) {
const t = m.$imageel ? m.$imageel[0] : void 0,
s = m.$slideel ? m.$slideel[0] : void 0;
i("zoomchange", e, t, s)
}
v = e
}
}), a("init", (() => {
t.params.zoom.enabled && o()
})), a("destroy", (() => {
i()
})), a("touchstart", ((e, s) => {
t.zoom.enabled && function(e) {
const s = t.device;
m.$imageel && 0 !== m.$imageel.length && (f.istouched || (s.android && e
.cancelable && e.preventdefault(), f.istouched = !0, f
.touchesstart.x = "touchstart" === e.type ? e.targettouches[
0].pagex : e.pagex, f.touchesstart.y = "touchstart" ===
e.type ? e.targettouches[0].pagey : e.pagey))
}(s)
})), a("touchend", ((e, s) => {
t.zoom.enabled && function() {
const e = t.zoom;
if (!m.$imageel || 0 === m.$imageel.length) return;
if (!f.istouched || !f.ismoved) return f.istouched = !1, void(f
.ismoved = !1);
f.istouched = !1, f.ismoved = !1;
let s = 300,
a = 300;
const i = g.x * s,
r = f.currentx + i,
n = g.y * a,
l = f.currenty + n;
0 !== g.x && (s = math.abs((r - f.currentx) / g.x)), 0 !== g.y && (a =
math.abs((l - f.currenty) / g.y));
const o = math.max(s, a);
f.currentx = r, f.currenty = l;
const d = f.width * e.scale,
c = f.height * e.scale;
f.minx = math.min(m.slidewidth / 2 - d / 2, 0), f.maxx = -f.minx, f
.miny = math.min(m.slideheight / 2 - c / 2, 0), f.maxy = -f.miny, f
.currentx = math.max(math.min(f.currentx, f.maxx), f.minx), f
.currenty = math.max(math.min(f.currenty, f.maxy), f.miny), m
.$imagewrapel.transition(o).transform(
`translate3d(${f.currentx}px, ${f.currenty}px,0)`)
}()
})), a("doubletap", ((e, s) => {
!t.animating && t.params.zoom.enabled && t.zoom.enabled && t.params.zoom
.toggle && s(s)
})), a("transitionend", (() => {
t.zoom.enabled && t.params.zoom.enabled && c()
})), a("slidechange", (() => {
t.zoom.enabled && t.params.zoom.enabled && t.params.cssmode && c()
})), object.assign(t.zoom, {
enable: o,
disable: i,
in: t,
out: $,
toggle: s
})
}, function(e) {
let {
swiper: t,
extendparams: s,
on: a,
emit: i
} = e;
s({
lazy: {
checkinview: !1,
enabled: !1,
loadprevnext: !1,
loadprevnextamount: 1,
loadontransitionstart: !1,
scrollingelement: "",
elementclass: "swiper-lazy",
loadingclass: "swiper-lazy-loading",
loadedclass: "swiper-lazy-loaded",
preloaderclass: "swiper-lazy-preloader"
}
}), t.lazy = {};
let n = !1,
l = !1;
function o(e, s) {
void 0 === s && (s = !0);
const a = t.params.lazy;
if (void 0 === e) return;
if (0 === t.slides.length) return;
const r = t.virtual && t.params.virtual.enabled ? t.$wrapperel.children(
`.${t.params.slideclass}[data-swiper-slide-index="${e}"]`) : t.slides.eq(e),
n = r.find(`.${a.elementclass}:not(.${a.loadedclass}):not(.${a.loadingclass})`);
!r.hasclass(a.elementclass) || r.hasclass(a.loadedclass) || r.hasclass(a.loadingclass) || n
.push(r[0]), 0 !== n.length && n.each((e => {
const n = d(e);
n.addclass(a.loadingclass);
const l = n.attr("data-background"),
c = n.attr("data-src"),
p = n.attr("data-srcset"),
u = n.attr("data-sizes"),
h = n.parent("picture");
t.loadimage(n[0], c || l, p, u, !1, (() => {
if (null != t && t && (!t || t.params) && !t.destroyed) {
if (l ? (n.css("background-image", `url("${l}")`), n
.removeattr("data-background")) : (p && (n.attr(
"srcset", p), n.removeattr(
"data-srcset")), u && (n.attr("sizes", u), n
.removeattr("data-sizes")), h.length && h
.children("source").each((e => {
const t = d(e);
t.attr("data-srcset") && (t.attr(
"srcset", t.attr(
"data-srcset")), t
.removeattr("data-srcset"))
})), c && (n.attr("src", c), n.removeattr(
"data-src"))), n.addclass(a.loadedclass)
.removeclass(a.loadingclass), r.find(
`.${a.preloaderclass}`).remove(), t.params
.loop && s) {
const e = r.attr("data-swiper-slide-index");
if (r.hasclass(t.params.slideduplicateclass)) {
o(t.$wrapperel.children(
`[data-swiper-slide-index="${e}"]:not(.${t.params.slideduplicateclass})`
).index(), !1)
} else {
o(t.$wrapperel.children(
`.${t.params.slideduplicateclass}[data-swiper-slide-index="${e}"]`
).index(), !1)
}
}
i("lazyimageready", r[0], n[0]), t.params.autoheight &&
t.updateautoheight()
}
})), i("lazyimageload", r[0], n[0])
}))
}
function c() {
const {
$wrapperel: e,
params: s,
slides: a,
activeindex: i
} = t, r = t.virtual && s.virtual.enabled, n = s.lazy;
let c = s.slidesperview;
function p(t) {
if (r) {
if (e.children(`.${s.slideclass}[data-swiper-slide-index="${t}"]`).length) return !0
} else if (a[t]) return !0;
return !1
}
function u(e) {
return r ? d(e).attr("data-swiper-slide-index") : d(e).index()
}
if ("auto" === c && (c = 0), l || (l = !0), t.params.watchslidesprogress) e.children(
`.${s.slidevisibleclass}`).each((e => {
o(r ? d(e).attr("data-swiper-slide-index") : d(e).index())
}));
else if (c > 1)
for (let e = i; e < i + c; e += 1) p(e) && o(e);
else o(i);
if (n.loadprevnext)
if (c > 1 || n.loadprevnextamount && n.loadprevnextamount > 1) {
const e = n.loadprevnextamount,
t = math.ceil(c),
s = math.min(i + t + math.max(e, t), a.length),
r = math.max(i - math.max(t, e), 0);
for (let e = i + t; e < s; e += 1) p(e) && o(e);
for (let e = r; e < i; e += 1) p(e) && o(e)
} else {
const t = e.children(`.${s.slidenextclass}`);
t.length > 0 && o(u(t));
const a = e.children(`.${s.slideprevclass}`);
a.length > 0 && o(u(a))
}
}
function p() {
const e = r();
if (!t || t.destroyed) return;
const s = t.params.lazy.scrollingelement ? d(t.params.lazy.scrollingelement) : d(e),
a = s[0] === e,
i = a ? e.innerwidth : s[0].offsetwidth,
l = a ? e.innerheight : s[0].offsetheight,
o = t.$el.offset(),
{
rtltranslate: u
} = t;
let h = !1;
u && (o.left -= t.$el[0].scrollleft);
const m = [
[o.left, o.top],
[o.left + t.width, o.top],
[o.left, o.top + t.height],
[o.left + t.width, o.top + t.height]
];
for (let e = 0; e < m.length; e += 1) {
const t = m[e];
if (t[0] >= 0 && t[0] <= i && t[1] >= 0 && t[1] <= l) {
if (0 === t[0] && 0 === t[1]) continue;
h = !0
}
}
const f = !("touchstart" !== t.touchevents.start || !t.support.passivelistener || !t.params
.passivelisteners) && {
passive: !0,
capture: !1
};
h ? (c(), s.off("scroll", p, f)) : n || (n = !0, s.on("scroll", p, f))
}
a("beforeinit", (() => {
t.params.lazy.enabled && t.params.preloadimages && (t.params.preloadimages = !1)
})), a("init", (() => {
t.params.lazy.enabled && (t.params.lazy.checkinview ? p() : c())
})), a("scroll", (() => {
t.params.freemode && t.params.freemode.enabled && !t.params.freemode.sticky &&
c()
})), a("scrollbardragmove resize _freemodenomomentumrelease", (() => {
t.params.lazy.enabled && (t.params.lazy.checkinview ? p() : c())
})), a("transitionstart", (() => {
t.params.lazy.enabled && (t.params.lazy.loadontransitionstart || !t.params.lazy
.loadontransitionstart && !l) && (t.params.lazy.checkinview ? p() : c())
})), a("transitionend", (() => {
t.params.lazy.enabled && !t.params.lazy.loadontransitionstart && (t.params.lazy
.checkinview ? p() : c())
})), a("slidechange", (() => {
const {
lazy: e,
cssmode: s,
watchslidesprogress: a,
touchreleaseonedges: i,
resistanceratio: r
} = t.params;
e.enabled && (s || a && (i || 0 === r)) && c()
})), a("destroy", (() => {
t.$el && t.$el.find(`.${t.params.lazy.loadingclass}`).removeclass(t.params.lazy
.loadingclass)
})), object.assign(t.lazy, {
load: c,
loadinslide: o
})
}, 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", (() => {
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.settranslate(s, a)
})), a("settransition", ((e, s, a) => {
t.controller.control && 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) {
const s = t.rtltranslate ? -t.translate : t.translate;
"slide" === t.params.controller.by && (! function(e) {
t.controller.spline || (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()),
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.settransition(e, t), 0 !== e && (s.transitionstart(), s.params
.autoheight && p((() => {
s.updateautoheight()
})), s.$wrapperel.transitionend((() => {
i && (s.params.loop && "slide" === t.params
.controller.by && s.loopfix(), 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: a
} = 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
}
});
let i = null;
function r(e) {
const t = i;
0 !== t.length && (t.html(""), t.html(e))
}
function n(e) {
e.attr("tabindex", "0")
}
function l(e) {
e.attr("tabindex", "-1")
}
function o(e, t) {
e.attr("role", t)
}
function c(e, t) {
e.attr("aria-roledescription", t)
}
function p(e, t) {
e.attr("aria-label", t)
}
function u(e) {
e.attr("aria-disabled", !0)
}
function h(e) {
e.attr("aria-disabled", !1)
}
function m(e) {
if (13 !== e.keycode && 32 !== e.keycode) return;
const s = t.params.a11y,
a = d(e.target);
t.navigation && t.navigation.$nextel && a.is(t.navigation.$nextel) && (t.isend && !t.params
.loop || t.slidenext(), t.isend ? r(s.lastslidemessage) : r(s.nextslidemessage)), t
.navigation && t.navigation.$prevel && a.is(t.navigation.$prevel) && (t.isbeginning && !
t.params.loop || t.slideprev(), t.isbeginning ? r(s.firstslidemessage) : r(s
.prevslidemessage)), t.pagination && a.is(u(t.params.pagination.bulletclass)) &&
a[0].click()
}
function f() {
return t.pagination && t.pagination.bullets && t.pagination.bullets.length
}
function g() {
return f() && t.params.pagination.clickable
}
const v = (e, t, s) => {
n(e), "button" !== e[0].tagname && (o(e, "button"), e.on("keydown", m)), p(e, s),
function(e, t) {
e.attr("aria-controls", t)
}(e, t)
},
w = e => {
const s = e.target.closest(`.${t.params.slideclass}`);
if (!s || !t.slides.includes(s)) return;
const a = t.slides.indexof(s) === t.activeindex,
i = t.params.watchslidesprogress && t.visibleslides && t.visibleslides.includes(s);
a || i || t.slideto(t.slides.indexof(s), 0)
},
b = () => {
const e = t.params.a11y;
e.itemroledescriptionmessage && c(d(t.slides), e.itemroledescriptionmessage), e
.sliderole && o(d(t.slides), e.sliderole);
const s = t.params.loop ? t.slides.filter((e => !e.classlist.contains(t.params
.slideduplicateclass))).length : t.slides.length;
e.slidelabelmessage && t.slides.each(((a, i) => {
const r = d(a),
n = t.params.loop ? parseint(r.attr("data-swiper-slide-index"),
10) : i;
p(r, e.slidelabelmessage.replace(/\{\{index\}\}/, n + 1).replace(
/\{\{slideslength\}\}/, s))
}))
},
x = () => {
const e = t.params.a11y;
t.$el.append(i);
const s = t.$el;
e.containerroledescriptionmessage && c(s, e.containerroledescriptionmessage), e
.containermessage && p(s, e.containermessage);
const a = t.$wrapperel,
r = e.id || a.attr("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 l = t.params.autoplay && t.params.autoplay.enabled ? "off" : "polite";
var o;
let d, u;
o = r, a.attr("id", o),
function(e, t) {
e.attr("aria-live", t)
}(a, l), b(), t.navigation && t.navigation.$nextel && (d = t.navigation.$nextel), t
.navigation && t.navigation.$prevel && (u = t.navigation.$prevel), d && d.length &&
v(d, r, e.nextslidemessage), u && u.length && v(u, r, e.prevslidemessage), g() && t
.pagination.$el.on("keydown", u(t.params.pagination.bulletclass), m), t.$el.on(
"focus", w, !0)
};
a("beforeinit", (() => {
i = d(
``)
})), a("afterinit", (() => {
t.params.a11y.enabled && x()
})), a("slideslengthchange snapgridlengthchange slidesgridlengthchange", (() => {
t.params.a11y.enabled && b()
})), a("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 && s.length > 0 && (t.isbeginning ? (u(s), l(s)) : (h(s), n(s))), e &&
e.length > 0 && (t.isend ? (u(e), l(e)) : (h(e), n(e)))
}()
})), a("paginationupdate", (() => {
t.params.a11y.enabled && function() {
const e = t.params.a11y;
f() && t.pagination.bullets.each((s => {
const a = d(s);
t.params.pagination.clickable && (n(a), t.params
.pagination.renderbullet || (o(a, "button"), p(
a, e.paginationbulletmessage.replace(
/\{\{index\}\}/, a.index() + 1)))), a
.is(`.${t.params.pagination.bulletactiveclass}`) ? a
.attr("aria-current", "true") : a.removeattr(
"aria-current")
}))
}()
})), a("destroy", (() => {
t.params.a11y.enabled && function() {
let e, s;
i && i.length > 0 && i.remove(), t.navigation && t.navigation.$nextel &&
(e = t.navigation.$nextel), t.navigation && t.navigation.$prevel &&
(s = t.navigation.$prevel), e && e.off("keydown", m), s && s.off(
"keydown", m), g() && t.pagination.$el.off("keydown", u(t.params
.pagination.bulletclass), m), t.$el.off("focus", w, !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.slides.eq(s);
let d = l(o.attr("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}/${d}`
} else n.pathname.includes(e) || (d = `${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.eq(i);
if (l(r.attr("data-history")) === s && !r.hasclass(t.params
.slideduplicateclass)) {
const s = r.index();
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))
}
})()
})), 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(),
c = r();
s({
hashnavigation: {
enabled: !1,
replacestate: !1,
watchstate: !1
}
});
const p = () => {
i("hashchange");
const e = o.location.hash.replace("#", "");
if (e !== t.slides.eq(t.activeindex).attr("data-hash")) {
const s = t.$wrapperel.children(`.${t.params.slideclass}[data-hash="${e}"]`)
.index();
if (void 0 === s) return;
t.slideto(s)
}
},
u = () => {
if (l && t.params.hashnavigation.enabled)
if (t.params.hashnavigation.replacestate && c.history && c.history.replacestate) c
.history.replacestate(null, null,
`#${t.slides.eq(t.activeindex).attr("data-hash")}` || ""), i("hashset");
else {
const e = t.slides.eq(t.activeindex),
s = e.attr("data-hash") || e.attr("data-history");
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;
for (let a = 0, i = t.slides.length; a < i; a += 1) {
const i = t.slides.eq(a);
if ((i.attr("data-hash") || i.attr("data-history")) === e &&
!i.hasclass(t.params.slideduplicateclass)) {
const e = i.index();
t.slideto(e, s, t.params.runcallbacksoninit, !0)
}
}
}
t.params.hashnavigation.watchstate && d(c).on("hashchange", p)
})()
})), n("destroy", (() => {
t.params.hashnavigation.enabled && t.params.hashnavigation.watchstate && d(c)
.off("hashchange", p)
})), n("transitionend _freemodenomomentumrelease", (() => {
l && u()
})), n("slidechange", (() => {
l && t.params.cssmode && u()
}))
}, function(e) {
let t, {
swiper: s,
extendparams: i,
on: r,
emit: n
} = e;
function l() {
const e = s.slides.eq(s.activeindex);
let a = s.params.autoplay.delay;
e.attr("data-swiper-autoplay") && (a = e.attr("data-swiper-autoplay") || s.params.autoplay
.delay), cleartimeout(t), t = p((() => {
let e;
s.params.autoplay.reversedirection ? s.params.loop ? (s.loopfix(), e = s
.slideprev(s.params.speed, !0, !0), n("autoplay")) : s.isbeginning ?
s.params.autoplay.stoponlastslide ? d() : (e = s.slideto(s.slides
.length - 1, s.params.speed, !0, !0), n("autoplay")) : (e = s
.slideprev(s.params.speed, !0, !0), n("autoplay")) : s.params.loop ?
(s.loopfix(), e = s.slidenext(s.params.speed, !0, !0), n("autoplay")) :
s.isend ? s.params.autoplay.stoponlastslide ? d() : (e = s.slideto(0, s
.params.speed, !0, !0), n("autoplay")) : (e = s.slidenext(s.params
.speed, !0, !0), n("autoplay")), (s.params.cssmode && s.autoplay
.running || !1 === e) && l()
}), a)
}
function o() {
return void 0 === t && (!s.autoplay.running && (s.autoplay.running = !0, n("autoplaystart"),
l(), !0))
}
function d() {
return !!s.autoplay.running && (void 0 !== t && (t && (cleartimeout(t), t = void 0), s
.autoplay.running = !1, n("autoplaystop"), !0))
}
function c(e) {
s.autoplay.running && (s.autoplay.paused || (t && cleartimeout(t), s.autoplay.paused = !0,
0 !== e && s.params.autoplay.waitfortransition ? ["transitionend",
"webkittransitionend"
].foreach((e => {
s.$wrapperel[0].addeventlistener(e, h)
})) : (s.autoplay.paused = !1, l())))
}
function u() {
const e = a();
"hidden" === e.visibilitystate && s.autoplay.running && c(), "visible" === e
.visibilitystate && s.autoplay.paused && (l(), s.autoplay.paused = !1)
}
function h(e) {
s && !s.destroyed && s.$wrapperel && e.target === s.$wrapperel[0] && (["transitionend",
"webkittransitionend"
].foreach((e => {
s.$wrapperel[0].removeeventlistener(e, h)
})), s.autoplay.paused = !1, s.autoplay.running ? l() : d())
}
function m() {
s.params.autoplay.disableoninteraction ? d() : (n("autoplaypause"), c()), ["transitionend",
"webkittransitionend"
].foreach((e => {
s.$wrapperel[0].removeeventlistener(e, h)
}))
}
function f() {
s.params.autoplay.disableoninteraction || (s.autoplay.paused = !1, n("autoplayresume"), l())
}
s.autoplay = {
running: !1,
paused: !1
}, i({
autoplay: {
enabled: !1,
delay: 3e3,
waitfortransition: !0,
disableoninteraction: !0,
stoponlastslide: !1,
reversedirection: !1,
pauseonmouseenter: !1
}
}), r("init", (() => {
if (s.params.autoplay.enabled) {
o();
a().addeventlistener("visibilitychange", u), s.params.autoplay
.pauseonmouseenter && (s.$el.on("mouseenter", m), s.$el.on("mouseleave",
f))
}
})), r("beforetransitionstart", ((e, t, a) => {
s.autoplay.running && (a || !s.params.autoplay.disableoninteraction ? s.autoplay
.pause(t) : d())
})), r("sliderfirstmove", (() => {
s.autoplay.running && (s.params.autoplay.disableoninteraction ? d() : c())
})), r("touchend", (() => {
s.params.cssmode && s.autoplay.paused && !s.params.autoplay
.disableoninteraction && l()
})), r("destroy", (() => {
s.$el.off("mouseenter", m), s.$el.off("mouseleave", f), s.autoplay.running &&
d();
a().removeeventlistener("visibilitychange", u)
})), object.assign(s.autoplay, {
pause: c,
run: l,
start: o,
stop: d
})
}, function(e) {
let {
swiper: t,
extendparams: s,
on: a
} = e;
s({
thumbs: {
swiper: null,
multipleactivethumbs: !0,
autoscrolloffset: 0,
slidethumbactiveclass: "swiper-slide-thumb-active",
thumbscontainerclass: "swiper-thumbs"
}
});
let i = !1,
r = !1;
function n() {
const e = t.thumbs.swiper;
if (!e || e.destroyed) return;
const s = e.clickedindex,
a = e.clickedslide;
if (a && d(a).hasclass(t.params.thumbs.slidethumbactiveclass)) return;
if (null == s) return;
let i;
if (i = e.params.loop ? parseint(d(e.clickedslide).attr("data-swiper-slide-index"), 10) : s,
t.params.loop) {
let e = t.activeindex;
t.slides.eq(e).hasclass(t.params.slideduplicateclass) && (t.loopfix(), t._clientleft = t
.$wrapperel[0].clientleft, e = t.activeindex);
const s = t.slides.eq(e).prevall(`[data-swiper-slide-index="${i}"]`).eq(0).index(),
a = t.slides.eq(e).nextall(`[data-swiper-slide-index="${i}"]`).eq(0).index();
i = void 0 === s ? a : void 0 === a ? s : a - e < e - s ? a : s
}
t.slideto(i)
}
function l() {
const {
thumbs: e
} = t.params;
if (i) return !1;
i = !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
});
else if (m(e.swiper)) {
const a = object.assign({}, e.swiper);
object.assign(a, {
watchslidesprogress: !0,
slidetoclickedslide: !1
}), t.thumbs.swiper = new s(a), r = !0
}
return t.thumbs.swiper.$el.addclass(t.params.thumbs.thumbscontainerclass), t.thumbs.swiper
.on("tap", n), !0
}
function o(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
.removeclass(r), s.params.loop || s.params.virtual && s.params.virtual.enabled)
for (let e = 0; e < i; e += 1) s.$wrapperel.children(
`[data-swiper-slide-index="${t.realindex+e}"]`).addclass(r);
else
for (let e = 0; e < i; e += 1) s.slides.eq(t.realindex + e).addclass(r);
const n = t.params.thumbs.autoscrolloffset,
l = n && !s.params.loop;
if (t.realindex !== s.realindex || l) {
let i, r, o = s.activeindex;
if (s.params.loop) {
s.slides.eq(o).hasclass(s.params.slideduplicateclass) && (s.loopfix(), s
._clientleft = s.$wrapperel[0].clientleft, o = s.activeindex);
const e = s.slides.eq(o).prevall(`[data-swiper-slide-index="${t.realindex}"]`).eq(0)
.index(),
a = s.slides.eq(o).nextall(`[data-swiper-slide-index="${t.realindex}"]`).eq(0)
.index();
i = void 0 === e ? a : void 0 === a ? e : a - o == o - e ? s.params.slidespergroup >
1 ? a : o : a - o < o - e ? a : e, r = t.activeindex > t.previousindex ?
"next" : "prev"
} else i = t.realindex, r = i > t.previousindex ? "next" : "prev";
l && (i += "next" === r ? n : -1 * n), s.visibleslidesindexes && s.visibleslidesindexes
.indexof(i) < 0 && (s.params.centeredslides ? i = i > o ? i - math.floor(a / 2) +
1 : i + math.floor(a / 2) - 1 : i > o && s.params.slidespergroup, s.slideto(i,
e ? 0 : void 0))
}
}
t.thumbs = {
swiper: null
}, a("beforeinit", (() => {
const {
thumbs: e
} = t.params;
e && e.swiper && (l(), o(!0))
})), a("slidechange update resize observerupdate", (() => {
o()
})), a("settransition", ((e, s) => {
const a = t.thumbs.swiper;
a && !a.destroyed && a.settransition(s)
})), a("beforedestroy", (() => {
const e = t.thumbs.swiper;
e && !e.destroyed && r && e.destroy()
})), object.assign(t.thumbs, {
init: l,
update: o
})
}, 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() {
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() {
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: u()
})
},
ontouchend: function(e) {
let {
currentpos: s
} = e;
const {
params: r,
$wrapperel: n,
rtltranslate: l,
snapgrid: o,
toucheventsdata: d
} = t, c = u() - d.touchstarttime;
if (s < -t.mintranslate()) t.slideto(t.activeindex);
else if (s > -t.maxtranslate()) t.slides.length < o.length ? t.slideto(o
.length - 1) : t.slideto(t.slides.length - 1);
else {
if (r.freemode.momentum) {
if (d.velocities.length > 1) {
const e = d.velocities.pop(),
s = d.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 || u() - e.time > 300) && (t.velocity = 0)
} else t.velocity = 0;
t.velocity *= r.freemode.momentumvelocityratio, d.velocities
.length = 0;
let e = 1e3 * r.freemode.momentumratio;
const s = t.velocity * e;
let c = t.translate + s;
l && (c = -c);
let p, h = !1;
const m = 20 * math.abs(t.velocity) * r.freemode
.momentumbounceratio;
let f;
if (c < t.maxtranslate()) r.freemode.momentumbounce ? (c + t
.maxtranslate() < -m && (c = t.maxtranslate() - m), p =
t.maxtranslate(), h = !0, d.allowmomentumbounce = !0) :
c = t.maxtranslate(), r.loop && r.centeredslides && (f = !
0);
else if (c > t.mintranslate()) r.freemode.momentumbounce ? (c -
t.mintranslate() > m && (c = t.mintranslate() + m), p =
t.mintranslate(), h = !0, d.allowmomentumbounce = !0) :
c = t.mintranslate(), r.loop && r.centeredslides && (f = !
0);
else if (r.freemode.sticky) {
let e;
for (let t = 0; t < o.length; t += 1)
if (o[t] > -c) {
e = t;
break
} c = math.abs(o[e] - c) < math.abs(o[e - 1] - c) ||
"next" === t.swipedirection ? o[e] : o[e - 1], c = -c
}
if (f && i("transitionend", (() => {
t.loopfix()
})), 0 !== t.velocity) {
if (e = l ? math.abs((-c - t.translate) / t.velocity) : math
.abs((c - t.translate) / t.velocity), r.freemode.sticky
) {
const s = math.abs((l ? -c : c) - 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 && h ? (t.updateprogress(p), t
.settransition(e), t.settranslate(c), t.transitionstart(
!0, t.swipedirection), t.animating = !0, n
.transitionend((() => {
t && !t.destroyed && d
.allowmomentumbounce && (a(
"momentumbounce"), t
.settransition(r.speed), settimeout(
(() => {
t.settranslate(p), n
.transitionend((
() => {
t && !t
.destroyed &&
t
.transitionend()
}))
}), 0))
}))) : t.velocity ? (a("_freemodenomomentumrelease"), t
.updateprogress(c), t.settransition(e), t.settranslate(
c), t.transitionstart(!0, t.swipedirection), t
.animating || (t.animating = !0, n.transitionend((
() => {
t && !t.destroyed && t.transitionend()
})))) : t.updateprogress(c), t.updateactiveindex(), t
.updateslidesclasses()
} else {
if (r.freemode.sticky) return void t.slidetoclosest();
r.freemode && a("_freemodenomomentumrelease")
}(!r.freemode.momentum || c >= r.longswipesms) && (t
.updateprogress(), t.updateactiveindex(), t
.updateslidesclasses())
}
}
}
})
}, function(e) {
let t, s, a, {
swiper: i,
extendparams: r
} = e;
r({
grid: {
rows: 1,
fill: "column"
}
}), i.grid = {
initslides: e => {
const {
slidesperview: r
} = i.params, {
rows: n,
fill: l
} = i.params.grid;
s = t / n, a = math.floor(e / n), t = math.floor(e / n) === e / n ? e : math
.ceil(e / n) * n, "auto" !== r && "row" === l && (t = math.max(t, r * n))
},
updateslide: (e, r, n, l) => {
const {
slidespergroup: o,
spacebetween: d
} = i.params, {
rows: c,
fill: p
} = i.params.grid;
let u, h, m;
if ("row" === p && o > 1) {
const s = math.floor(e / (o * c)),
a = e - c * o * s,
i = 0 === s ? o : math.min(math.ceil((n - s * c * o) / c), o);
m = math.floor(a / i), h = a - m * i + s * o, u = h + m * t / c, r.css({
"-webkit-order": u,
order: u
})
} else "column" === p ? (h = math.floor(e / c), m = e - h * c, (h > a || h ===
a && m === c - 1) && (m += 1, m >= c && (m = 0, h += 1))) : (m = math
.floor(e / s), h = e - m * s);
r.css(l("margin-top"), 0 !== m ? d && `${d}px` : "")
},
updatewrappersize: (e, s, a) => {
const {
spacebetween: r,
centeredslides: n,
roundlengths: l
} = i.params, {
rows: o
} = i.params.grid;
if (i.virtualsize = (e + r) * t, i.virtualsize = math.ceil(i.virtualsize / o) -
r, i.$wrapperel.css({
[a("width")]: `${i.virtualsize+r}px`
}), n) {
s.splice(0, s.length);
const e = [];
for (let t = 0; t < s.length; t += 1) {
let a = s[t];
l && (a = math.floor(a)), s[t] < i.virtualsize + s[0] && e.push(a)
}
s.push(...e)
}
}
}
}, function(e) {
let {
swiper: t
} = e;
object.assign(t, {
appendslide: k.bind(t),
prependslide: z.bind(t),
addslide: q.bind(t),
removeslide: j.bind(t),
removeallslides: ee.bind(t)
})
}, function(e) {
let {
swiper: t,
extendparams: s,
on: a
} = e;
s({
fadeeffect: {
crossfade: !1,
transformel: null
}
}), te({
effect: "fade",
swiper: t,
on: a,
settranslate: () => {
const {
slides: e
} = t, s = t.params.fadeeffect;
for (let a = 0; a < e.length; a += 1) {
const e = t.slides.eq(a);
let i = -e[0].swiperslideoffset;
t.params.virtualtranslate || (i -= t.translate);
let r = 0;
t.ishorizontal() || (r = i, i = 0);
const n = t.params.fadeeffect.crossfade ? math.max(1 - math.abs(e[0]
.progress), 0) : 1 + math.min(math.max(e[0].progress, -1), 0);
se(s, e).css({
opacity: n
}).transform(`translate3d(${i}px, ${r}px, 0px)`)
}
},
settransition: e => {
const {
transformel: s
} = t.params.fadeeffect;
(s ? t.slides.find(s) : t.slides).transition(e), ae({
swiper: t,
duration: e,
transformel: 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.find(".swiper-slide-shadow-left") : e.find(".swiper-slide-shadow-top"),
i = s ? e.find(".swiper-slide-shadow-right") : e.find(
".swiper-slide-shadow-bottom");
0 === a.length && (a = d(``), e
.append(a)), 0 === i.length && (i = d(
``), e.append(
i)), a.length && (a[0].style.opacity = math.max(-t, 0)), i.length && (i[0].style
.opacity = math.max(t, 0))
};
te({
effect: "cube",
swiper: t,
on: a,
settranslate: () => {
const {
$el: e,
$wrapperel: s,
slides: a,
width: r,
height: n,
rtltranslate: l,
size: o,
browser: c
} = t, p = t.params.cubeeffect, u = t.ishorizontal(), h = t.virtual && t
.params.virtual.enabled;
let m, f = 0;
p.shadow && (u ? (m = s.find(".swiper-cube-shadow"), 0 === m.length && (m =
d(''), s.append(m)), m
.css({
height: `${r}px`
})) : (m = e.find(".swiper-cube-shadow"), 0 === m.length && (m =
d(''), e.append(m))));
for (let e = 0; e < a.length; e += 1) {
const t = a.eq(e);
let s = e;
h && (s = parseint(t.attr("data-swiper-slide-index"), 10));
let r = 90 * s,
n = math.floor(r / 360);
l && (r = -r, n = math.floor(-r / 360));
const d = math.max(math.min(t[0].progress, 1), -1);
let c = 0,
m = 0,
g = 0;
s % 4 == 0 ? (c = 4 * -n * o, g = 0) : (s - 1) % 4 == 0 ? (c = 0, g =
4 * -n * o) : (s - 2) % 4 == 0 ? (c = o + 4 * n * o, g = o) : (
s - 3) % 4 == 0 && (c = -o, g = 3 * o + 4 * o * n), l && (c = -
c), u || (m = c, c = 0);
const v =
`rotatex(${u?0:-r}deg) rotatey(${u?r:0}deg) translate3d(${c}px, ${m}px, ${g}px)`;
d <= 1 && d > -1 && (f = 90 * s + 90 * d, l && (f = 90 * -s - 90 * d)),
t.transform(v), p.slideshadows && i(t, d, u)
}
if (s.css({
"-webkit-transform-origin": `50% 50% -${o/2}px`,
"transform-origin": `50% 50% -${o/2}px`
}), p.shadow)
if (u) m.transform(
`translate3d(0px, ${r/2+p.shadowoffset}px, ${-r/2}px) rotatex(90deg) rotatez(0deg) scale(${p.shadowscale})`
);
else {
const e = math.abs(f) - 90 * math.floor(math.abs(f) / 90),
t = 1.5 - (math.sin(2 * e * math.pi / 360) / 2 + math.cos(2 *
e * math.pi / 360) / 2),
s = p.shadowscale,
a = p.shadowscale / t,
i = p.shadowoffset;
m.transform(
`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotatex(-90deg)`
)
} const g = c.issafari || c.iswebview ? -o / 2 : 0;
s.transform(
`translate3d(0px,0,${g}px) rotatex(${t.ishorizontal()?0:f}deg) rotatey(${t.ishorizontal()?-f:0}deg)`
), s[0].style.setproperty("--swiper-cube-translate-z", `${g}px`)
},
settransition: e => {
const {
$el: s,
slides: a
} = t;
a.transition(e).find(
".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
).transition(e), t.params.cubeeffect.shadow && !t.ishorizontal() &&
s.find(".swiper-cube-shadow").transition(e)
},
recreateshadows: () => {
const e = t.ishorizontal();
t.slides.each((t => {
const s = math.max(math.min(t.progress, 1), -1);
i(d(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,
transformel: null
}
});
const i = (e, s, a) => {
let i = t.ishorizontal() ? e.find(".swiper-slide-shadow-left") : e.find(
".swiper-slide-shadow-top"),
r = t.ishorizontal() ? e.find(".swiper-slide-shadow-right") : e.find(
".swiper-slide-shadow-bottom");
0 === i.length && (i = ie(a, e, t.ishorizontal() ? "left" : "top")), 0 === r.length && (
r = ie(a, e, t.ishorizontal() ? "right" : "bottom")), i.length && (i[0].style
.opacity = math.max(-s, 0)), r.length && (r[0].style.opacity = math.max(s, 0))
};
te({
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.eq(r);
let l = n[0].progress;
t.params.flipeffect.limitrotation && (l = math.max(math.min(n[0]
.progress, 1), -1));
const o = n[0].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), n[0]
.style.zindex = -math.abs(math.round(l)) + e.length, a
.slideshadows && i(n, l, a);
const h =
`translate3d(${p}px, ${u}px, 0px) rotatex(${c}deg) rotatey(${d}deg)`;
se(a, n).transform(h)
}
},
settransition: e => {
const {
transformel: s
} = t.params.flipeffect;
(s ? t.slides.find(s) : t.slides).transition(e).find(
".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
).transition(e), ae({
swiper: t,
duration: e,
transformel: s
})
},
recreateshadows: () => {
const e = t.params.flipeffect;
t.slides.each((s => {
const a = d(s);
let r = a[0].progress;
t.params.flipeffect.limitrotation && (r = math.max(math.min(
s.progress, 1), -1)), i(a, r, e)
}))
},
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,
transformel: null
}
}), te({
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, t = a.length; e < t; e += 1) {
const t = a.eq(e),
s = i[e],
l = (o - t[0].swiperslideoffset - s / 2) / s,
p = "function" == typeof r.modifier ? r.modifier(l) : l * r
.modifier;
let u = n ? d * p : 0,
h = n ? 0 : d * p,
m = -c * math.abs(p),
f = r.stretch;
"string" == typeof f && -1 !== f.indexof("%") && (f = parsefloat(r
.stretch) / 100 * s);
let g = n ? 0 : f * p,
v = n ? f * p : 0,
w = 1 - (1 - r.scale) * math.abs(p);
math.abs(v) < .001 && (v = 0), math.abs(g) < .001 && (g = 0), math.abs(
m) < .001 && (m = 0), math.abs(u) < .001 && (u = 0), math.abs(
h) < .001 && (h = 0), math.abs(w) < .001 && (w = 0);
const b =
`translate3d(${v}px,${g}px,${m}px) rotatex(${h}deg) rotatey(${u}deg) scale(${w})`;
if (se(r, t).transform(b), t[0].style.zindex = 1 - math.abs(math.round(
p)), r.slideshadows) {
let e = n ? t.find(".swiper-slide-shadow-left") : t.find(
".swiper-slide-shadow-top"),
s = n ? t.find(".swiper-slide-shadow-right") : t.find(
".swiper-slide-shadow-bottom");
0 === e.length && (e = ie(r, t, n ? "left" : "top")), 0 === s
.length && (s = ie(r, t, n ? "right" : "bottom")), e.length && (
e[0].style.opacity = p > 0 ? p : 0), s.length && (s[0].style
.opacity = -p > 0 ? -p : 0)
}
}
},
settransition: e => {
const {
transformel: s
} = t.params.coverfloweffect;
(s ? t.slides.find(s) : t.slides).transition(e).find(
".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left"
).transition(e)
},
perspective: () => !0,
overwriteparams: () => ({
watchslidesprogress: !0
})
})
}, function(e) {
let {
swiper: t,
extendparams: s,
on: a
} = e;
s({
creativeeffect: {
transformel: null,
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`;
te({
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.transform(`translatex(calc(50% - ${e}px))`)
}
for (let s = 0; s < e.length; s += 1) {
const a = e.eq(s),
o = a[0].progress,
d = math.min(math.max(a[0].progress, -r.limitprogress), r
.limitprogress);
let c = d;
l || (c = math.min(math.max(a[0].originalprogress, -r.limitprogress), r
.limitprogress));
const p = a[0].swiperslideoffset,
u = [t.params.cssmode ? -p - t.translate : -p, 0, 0],
h = [0, 0, 0];
let m = !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, m = !0) : d > 0 && (f = r.prev, m = !0), u.foreach(
((e, t) => {
u[t] =
`calc(${e}px + (${i(f.translate[t])} * ${math.abs(d*n)}))`
})), h.foreach(((e, t) => {
h[t] = f.rotate[t] * math.abs(d * n)
})), a[0].style.zindex = -math.abs(math.round(o)) + e.length;
const g = u.join(", "),
v = `rotatex(${h[0]}deg) rotatey(${h[1]}deg) rotatez(${h[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,
x = `translate3d(${g}) ${v} ${w}`;
if (m && f.shadow || !m) {
let e = a.children(".swiper-slide-shadow");
if (0 === e.length && f.shadow && (e = ie(r, a)), e.length) {
const t = r.shadowperprogress ? d * (1 / r.limitprogress) : d;
e[0].style.opacity = math.min(math.max(math.abs(t), 0), 1)
}
}
const y = se(r, a);
y.transform(x).css({
opacity: b
}), f.origin && y.css("transform-origin", f.origin)
}
},
settransition: e => {
const {
transformel: s
} = t.params.creativeeffect;
(s ? t.slides.find(s) : t.slides).transition(e).find(".swiper-slide-shadow")
.transition(e), ae({
swiper: t,
duration: e,
transformel: 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,
transformel: null,
rotate: !0
}
}), te({
effect: "cards",
swiper: t,
on: a,
settranslate: () => {
const {
slides: e,
activeindex: s
} = t, a = t.params.cardseffect, {
starttranslate: i,
istouched: r
} = t.toucheventsdata, n = t.translate;
for (let l = 0; l < e.length; l += 1) {
const o = e.eq(l),
d = o[0].progress,
c = math.min(math.max(d, -4), 4);
let p = o[0].swiperslideoffset;
t.params.centeredslides && !t.params.cssmode && t.$wrapperel.transform(
`translatex(${t.mintranslate()}px)`), t.params.centeredslides &&
t.params.cssmode && (p -= e[0].swiperslideoffset);
let u = t.params.cssmode ? -p - t.translate : -p,
h = 0;
const m = -100 * math.abs(c);
let f = 1,
g = -2 * c,
v = 8 - .75 * math.abs(c);
const w = t.virtual && t.params.virtual.enabled ? t.virtual.from + l :
l,
b = (w === s || w === s - 1) && c > 0 && c < 1 && (r || t.params
.cssmode) && n < i,
x = (w === s || w === s + 1) && c < 0 && c > -1 && (r || t.params
.cssmode) && n > i;
if (b || x) {
const e = (1 - math.abs((math.abs(c) - .5) / .5)) ** .5;
g += -28 * c * e, f += -.5 * e, v += 96 * e, h = -25 * e * math.abs(
c) + "%"
}
if (u = c < 0 ? `calc(${u}px + (${v*math.abs(c)}%))` : c > 0 ?
`calc(${u}px + (-${v*math.abs(c)}%))` : `${u}px`, !t.ishorizontal()
) {
const e = h;
h = u, u = e
}
const y = c < 0 ? "" + (1 + (1 - f) * c) : "" + (1 - (1 - f) * c),
e =
`\n translate3d(${u}, ${h}, ${m}px)\n rotatez(${a.rotate?g:0}deg)\n scale(${y})\n `;
if (a.slideshadows) {
let e = o.find(".swiper-slide-shadow");
0 === e.length && (e = ie(a, o)), e.length && (e[0].style.opacity =
math.min(math.max((math.abs(c) - .5) / .5, 0), 1))
}
o[0].style.zindex = -math.abs(math.round(d)) + e.length;
se(a, o).transform(e)
}
},
settransition: e => {
const {
transformel: s
} = t.params.cardseffect;
(s ? t.slides.find(s) : t.slides).transition(e).find(".swiper-slide-shadow")
.transition(e), ae({
swiper: t,
duration: e,
transformel: s
})
},
perspective: () => !0,
overwriteparams: () => ({
watchslidesprogress: !0,
virtualtranslate: !t.params.cssmode
})
})
}];
return v.use(re), v
}));
//# sourcemappingurl=swiper-bundle.min.js.map