"use strict"; var _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) { return typeof e } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e }; !function (e, t) { "object" == ("undefined" == typeof exports ? "undefined" : _typeof(exports)) && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = e || self).Swiper = t() }(void 0, function () { function e(e, t) { for (var i = 0; i < t.length; i++) { var s = t[i]; s.enumerable = s.enumerable || !1, s.configurable = !0, "value" in s && (s.writable = !0), Object.defineProperty(e, s.key, s) } } function t() { return (t = Object.assign || function (e) { for (var t = 1; t < arguments.length; t++) { var i, s = arguments[t]; for (i in s) Object.prototype.hasOwnProperty.call(s, i) && (e[i] = s[i]) } return e }).apply(this, arguments) } function s(e) { return null !== e && "object" == (void 0 === e ? "undefined" : _typeof(e)) && "constructor" in e && e.constructor === Object } function a(t, i) { void 0 === t && (t = {}), void 0 === i && (i = {}), Object.keys(i).forEach(function (e) { void 0 === t[e] ? t[e] = i[e] : s(i[e]) && s(t[e]) && 0 < Object.keys(i[e]).length && a(t[e], i[e]) }) } var i = { body: {}, addEventListener: function () { }, removeEventListener: function () { }, activeElement: { blur: function () { }, nodeName: "" }, querySelector: function () { return null }, querySelectorAll: function () { return [] }, getElementById: function () { return null }, createEvent: function () { return { initEvent: function () { } } }, createElement: function () { return { children: [], childNodes: [], style: {}, setAttribute: function () { }, getElementsByTagName: function () { return [] } } }, createElementNS: function () { return {} }, importNode: function () { return null }, location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" } }; function g() { var e = "undefined" != typeof document ? document : {}; return a(e, i), e } var r = { document: i, navigator: { userAgent: "" }, location: { hash: "", host: "", hostname: "", href: "", origin: "", pathname: "", protocol: "", search: "" }, history: { replaceState: function () { }, pushState: function () { }, go: function () { }, back: function () { } }, CustomEvent: function () { return this }, addEventListener: function () { }, removeEventListener: function () { }, getComputedStyle: function () { return { getPropertyValue: function () { return "" } } }, Image: function () { }, Date: function () { }, screen: {}, setTimeout: function () { }, clearTimeout: function () { }, matchMedia: function () { return {} }, requestAnimationFrame: function (e) { return "undefined" == typeof setTimeout ? (e(), null) : setTimeout(e, 0) }, cancelAnimationFrame: function (e) { "undefined" != typeof setTimeout && clearTimeout(e) } }; function j() { var e = "undefined" != typeof window ? window : {}; return a(e, r), e } function n(e) { return (n = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) { return e.__proto__ || Object.getPrototypeOf(e) })(e) } function o(e, t) { return (o = Object.setPrototypeOf || function (e, t) { return e.__proto__ = t, e })(e, t) } function l(e, t, i) { return (l = function () { if ("undefined" != typeof Reflect && Reflect.construct && !Reflect.construct.sham) { if ("function" == typeof Proxy) return 1; try { return Date.prototype.toString.call(Reflect.construct(Date, [], function () { })), 1 } catch (e) { return } } }() ? Reflect.construct : function (e, t, i) { var s = [null]; s.push.apply(s, t); s = new (Function.bind.apply(e, s)); return i && o(s, i.prototype), s }).apply(null, arguments) } function d(e) { var i = "function" == typeof Map ? new Map : void 0; return function (e) { if (null === e || -1 === Function.toString.call(e).indexOf("[native code]")) return e; if ("function" != typeof e) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== i) { if (i.has(e)) return i.get(e); i.set(e, t) } function t() { return l(e, arguments, n(this).constructor) } return t.prototype = Object.create(e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } }), o(t, e) }(e) } var h, p = (h = d(Array), O = h, (A = u).prototype = Object.create(O.prototype), (A.prototype.constructor = A).__proto__ = O, u); function u(e) { var t = h.call.apply(h, [this].concat(e)) || this, e = function (e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e }(t), i = e.__proto__; return Object.defineProperty(e, "__proto__", { get: function () { return i }, set: function (e) { i.__proto__ = e } }), t } function c(e) { var t = []; return (e = void 0 === e ? [] : e).forEach(function (e) { Array.isArray(e) ? t.push.apply(t, c(e)) : t.push(e) }), t } function m(e, t) { return Array.prototype.filter.call(e, t) } function T(e, a) { var t = j(), r = g(), i = []; if (!a && e instanceof p) return e; if (!e) return new p(i); if ("string" == typeof e) { var s = e.trim(); if (0 <= s.indexOf("<") && 0 <= s.indexOf(">")) { var n = "div"; 0 === s.indexOf("
= M && (A = 0, O += 1)) : O = k - (A = Math.floor(k / z)) * z, V.css("margin-" + (this.isHorizontal() ? "top" : "left"), 0 !== A && i.spaceBetween && i.spaceBetween + "px")), "none" !== V.css("display") && ("auto" === i.slidesPerView ? (Y = e.getComputedStyle(V[0], null), I = V[0].style.transform, O = V[0].style.webkitTransform, I && (V[0].style.transform = "none"), O && (V[0].style.webkitTransform = "none"), D = i.roundLengths ? this.isHorizontal() ? V.outerWidth(!0) : V.outerHeight(!0) : this.isHorizontal() ? (G = parseFloat(Y.getPropertyValue("width") || 0), N = parseFloat(Y.getPropertyValue("padding-left") || 0), B = parseFloat(Y.getPropertyValue("padding-right") || 0), H = parseFloat(Y.getPropertyValue("margin-left") || 0), X = parseFloat(Y.getPropertyValue("margin-right") || 0), (A = Y.getPropertyValue("box-sizing")) && "border-box" === A ? G + H + X : G + N + B + H + X) : (G = parseFloat(Y.getPropertyValue("height") || 0), N = parseFloat(Y.getPropertyValue("padding-top") || 0), B = parseFloat(Y.getPropertyValue("padding-bottom") || 0), H = parseFloat(Y.getPropertyValue("margin-top") || 0), X = parseFloat(Y.getPropertyValue("margin-bottom") || 0), (Y = Y.getPropertyValue("box-sizing")) && "border-box" === Y ? G + H + X : G + N + B + H + X), I && (V[0].style.transform = I), O && (V[0].style.webkitTransform = O), i.roundLengths && (D = Math.floor(D))) : (D = (s - (i.slidesPerView - 1) * b) / i.slidesPerView, i.roundLengths && (D = Math.floor(D)), l[k] && (this.isHorizontal() ? l[k].style.width = D + "px" : l[k].style.height = D + "px")), l[k] && (l[k].swiperSlideSize = D), u.push(D), i.centeredSlides ? (y = y + D / 2 + w / 2 + b, 0 === w && 0 !== k && (y = y - s / 2 - b), 0 === k && (y = y - s / 2 - b), Math.abs(y) < .001 && (y = 0), i.roundLengths && (y = Math.floor(y)), E % i.slidesPerGroup == 0 && h.push(y), p.push(y)) : (i.roundLengths && (y = Math.floor(y)), (E - Math.min(this.params.slidesPerGroupSkip, E)) % this.params.slidesPerGroup == 0 && h.push(y), p.push(y), y = y + D + b), this.virtualSize += D + b, w = D, E += 1) } if (this.virtualSize = Math.max(this.virtualSize, s) + f, a && r && ("slide" === i.effect || "coverflow" === i.effect) && t.css({ width: this.virtualSize + i.spaceBetween + "px" }), i.setWrapperSize && (this.isHorizontal() ? t.css({ width: this.virtualSize + i.spaceBetween + "px" }) : t.css({ height: this.virtualSize + i.spaceBetween + "px" })), 1 < i.slidesPerColumn && (this.virtualSize = (D + i.spaceBetween) * v, this.virtualSize = Math.ceil(this.virtualSize / i.slidesPerColumn) - i.spaceBetween, this.isHorizontal() ? t.css({ width: this.virtualSize + i.spaceBetween + "px" }) : t.css({ height: this.virtualSize + i.spaceBetween + "px" }), i.centeredSlides)) { for (var F = [], W = 0; W < h.length; W += 1) { var R = h[W]; i.roundLengths && (R = Math.floor(R)), h[W] < this.virtualSize + h[0] && F.push(R) } h = F } if (!i.centeredSlides) { F = []; for (var q = 0; q < h.length; q += 1) { var _ = h[q]; i.roundLengths && (_ = Math.floor(_)), h[q] <= this.virtualSize - s && F.push(_) } h = F, 1 < Math.floor(this.virtualSize - s) - Math.floor(h[h.length - 1]) && h.push(this.virtualSize - s) } 0 === h.length && (h = [0]), 0 !== i.spaceBetween && (this.isHorizontal() ? a ? l.filter(c).css({ marginLeft: b + "px" }) : l.filter(c).css({ marginRight: b + "px" }) : l.filter(c).css({ marginBottom: b + "px" })), i.centeredSlides && i.centeredSlidesBounds && (x = 0, u.forEach(function (e) { x += e + (i.spaceBetween || 0) }), T = (x -= i.spaceBetween) - s, h = h.map(function (e) { return e < 0 ? -m : T < e ? T + f : e })), i.centerInsufficientSlides && (S = 0, u.forEach(function (e) { S += e + (i.spaceBetween || 0) }), (S -= i.spaceBetween) < s && (C = (s - S) / 2, h.forEach(function (e, t) { h[t] = e - C }), p.forEach(function (e, t) { p[t] = e + C }))), U(this, { slides: l, snapGrid: h, slidesGrid: p, slidesSizesGrid: u }), d !== o && this.emit("slidesLengthChange"), h.length !== g && (this.params.watchOverflow && this.checkOverflow(), this.emit("snapGridLengthChange")), p.length !== n && this.emit("slidesGridLengthChange"), (i.watchSlidesProgress || i.watchSlidesVisibility) && this.updateSlidesOffset() } }, updateAutoHeight: function (e) { var t, i, s = [], a = 0; if ("number" == typeof e ? this.setTransition(e) : !0 === e && this.setTransition(this.params.speed), "auto" !== this.params.slidesPerView && 1 < this.params.slidesPerView) if (this.params.centeredSlides) this.visibleSlides.each(function (e) { s.push(e) }); else for (t = 0; t < Math.ceil(this.params.slidesPerView); t += 1) { var r = this.activeIndex + t; if (r > this.slides.length) break; s.push(this.slides.eq(r)[0]) } else s.push(this.slides.eq(this.activeIndex)[0]); for (t = 0; t < s.length; t += 1)void 0 !== s[t] && (a = a < (i = s[t].offsetHeight) ? i : a); a && this.$wrapperEl.css("height", a + "px") }, updateSlidesOffset: function () { for (var e = this.slides, t = 0; t < e.length; t += 1)e[t].swiperSlideOffset = this.isHorizontal() ? e[t].offsetLeft : e[t].offsetTop }, updateSlidesProgress: function (e) { void 0 === e && (e = this && this.translate || 0); var t = this.params, i = this.slides, s = this.rtlTranslate; if (0 !== i.length) { void 0 === i[0].swiperSlideOffset && this.updateSlidesOffset(); var a = s ? e : -e; i.removeClass(t.slideVisibleClass), this.visibleSlidesIndexes = [], this.visibleSlides = []; for (var r = 0; r < i.length; r += 1) { var n, o, l = i[r], d = (a + (t.centeredSlides ? this.minTranslate() : 0) - l.swiperSlideOffset) / (l.swiperSlideSize + t.spaceBetween); (t.watchSlidesVisibility || t.centeredSlides && t.autoHeight) && (o = (n = -(a - l.swiperSlideOffset)) + this.slidesSizesGrid[r], (0 <= n && n < this.size - 1 || 1 < o && o <= this.size || n <= 0 && o >= this.size) && (this.visibleSlides.push(l), this.visibleSlidesIndexes.push(r), i.eq(r).addClass(t.slideVisibleClass))), l.progress = s ? -d : d } this.visibleSlides = T(this.visibleSlides) } }, updateProgress: function (e) { void 0 === e && (n = this.rtlTranslate ? -1 : 1, e = this && this.translate && this.translate * n || 0); var t = this.params, i = this.maxTranslate() - this.minTranslate(), s = this.progress, a = this.isBeginning, r = a, n = o = this.isEnd, o = 0 == i ? a = !(s = 0) : (a = (s = (e - this.minTranslate()) / i) <= 0, 1 <= s); U(this, { progress: s, isBeginning: a, isEnd: o }), (t.watchSlidesProgress || t.watchSlidesVisibility || t.centeredSlides && t.autoHeight) && this.updateSlidesProgress(e), a && !r && this.emit("reachBeginning toEdge"), o && !n && this.emit("reachEnd toEdge"), (r && !a || n && !o) && this.emit("fromEdge"), this.emit("progress", s) }, updateSlidesClasses: function () { var e = this.slides, t = this.params, i = this.$wrapperEl, s = this.activeIndex, a = this.realIndex, r = this.virtual && t.virtual.enabled; e.removeClass(t.slideActiveClass + " " + t.slideNextClass + " " + t.slidePrevClass + " " + t.slideDuplicateActiveClass + " " + t.slideDuplicateNextClass + " " + t.slideDuplicatePrevClass), (s = r ? this.$wrapperEl.find("." + t.slideClass + '[data-swiper-slide-index="' + s + '"]') : e.eq(s)).addClass(t.slideActiveClass), t.loop && (s.hasClass(t.slideDuplicateClass) ? i.children("." + t.slideClass + ":not(." + t.slideDuplicateClass + ')[data-swiper-slide-index="' + a + '"]') : i.children("." + t.slideClass + "." + t.slideDuplicateClass + '[data-swiper-slide-index="' + a + '"]')).addClass(t.slideDuplicateActiveClass); a = s.nextAll("." + t.slideClass).eq(0).addClass(t.slideNextClass); t.loop && 0 === a.length && (a = e.eq(0)).addClass(t.slideNextClass); s = s.prevAll("." + t.slideClass).eq(0).addClass(t.slidePrevClass); t.loop && 0 === s.length && (s = e.eq(-1)).addClass(t.slidePrevClass), t.loop && ((a.hasClass(t.slideDuplicateClass) ? i.children("." + t.slideClass + ":not(." + t.slideDuplicateClass + ')[data-swiper-slide-index="' + a.attr("data-swiper-slide-index") + '"]') : i.children("." + t.slideClass + "." + t.slideDuplicateClass + '[data-swiper-slide-index="' + a.attr("data-swiper-slide-index") + '"]')).addClass(t.slideDuplicateNextClass), (s.hasClass(t.slideDuplicateClass) ? i.children("." + t.slideClass + ":not(." + t.slideDuplicateClass + ')[data-swiper-slide-index="' + s.attr("data-swiper-slide-index") + '"]') : i.children("." + t.slideClass + "." + t.slideDuplicateClass + '[data-swiper-slide-index="' + s.attr("data-swiper-slide-index") + '"]')).addClass(t.slideDuplicatePrevClass)), this.emitSlidesClasses() }, updateActiveIndex: function (e) { var t = this.rtlTranslate ? this.translate : -this.translate, i = this.slidesGrid, s = this.snapGrid, a = this.params, r = this.activeIndex, n = this.realIndex, o = this.snapIndex, l = e; if (void 0 === l) { for (var d = 0; d < i.length; d += 1)void 0 !== i[d + 1] ? t >= i[d] && t < i[d + 1] - (i[d + 1] - i[d]) / 2 ? l = d : t >= i[d] && t < i[d + 1] && (l = d + 1) : t >= i[d] && (l = d); a.normalizeSlideIndex && (l < 0 || void 0 === l) && (l = 0) } (a = 0 <= s.indexOf(t) ? s.indexOf(t) : (e = Math.min(a.slidesPerGroupSkip, l)) + Math.floor((l - e) / a.slidesPerGroup)) >= s.length && (a = s.length - 1), l !== r ? (s = parseInt(this.slides.eq(l).attr("data-swiper-slide-index") || l, 10), U(this, { snapIndex: a, realIndex: s, previousIndex: r, activeIndex: l }), this.emit("activeIndexChange"), this.emit("snapIndexChange"), n !== s && this.emit("realIndexChange"), (this.initialized || this.params.runCallbacksOnInit) && this.emit("slideChange")) : a !== o && (this.snapIndex = a, this.emit("snapIndexChange")) }, updateClickedSlide: function (e) { var t = this.params, i = T(e.target).closest("." + t.slideClass)[0], s = !1; if (i) for (var a = 0; a < this.slides.length; a += 1)this.slides[a] === i && (s = !0); if (!i || !s) return this.clickedSlide = void 0, void (this.clickedIndex = void 0); this.clickedSlide = i, this.virtual && this.params.virtual.enabled ? this.clickedIndex = parseInt(T(i).attr("data-swiper-slide-index"), 10) : this.clickedIndex = T(i).index(), t.slideToClickedSlide && void 0 !== this.clickedIndex && this.clickedIndex !== this.activeIndex && this.slideToClickedSlide() } }, translate: { getTranslate: function (e) { void 0 === e && (e = this.isHorizontal() ? "x" : "y"); var t = this.params, i = this.rtlTranslate, s = this.translate, a = this.$wrapperEl; if (t.virtualTranslate) return i ? -s : s; if (t.cssMode) return s; e = b(a[0], e); return (e = i ? -e : e) || 0 }, setTranslate: function (e, t) { var i = this.rtlTranslate, s = this.params, a = this.$wrapperEl, r = this.wrapperEl, n = this.progress, o = 0, l = 0; this.isHorizontal() ? o = i ? -e : e : l = e, s.roundLengths && (o = Math.floor(o), l = Math.floor(l)), s.cssMode ? r[this.isHorizontal() ? "scrollLeft" : "scrollTop"] = this.isHorizontal() ? -o : -l : s.virtualTranslate || a.transform("translate3d(" + o + "px, " + l + "px, 0px)"), this.previousTranslate = this.translate, this.translate = this.isHorizontal() ? o : l; l = this.maxTranslate() - this.minTranslate(); (0 == l ? 0 : (e - this.minTranslate()) / l) !== n && this.updateProgress(e), this.emit("setTranslate", this.translate, t) }, minTranslate: function () { return -this.snapGrid[0] }, maxTranslate: function () { return -this.snapGrid[this.snapGrid.length - 1] }, translateTo: function (e, t, i, s, a) { void 0 === e && (e = 0), void 0 === t && (t = this.params.speed), void 0 === i && (i = !0), void 0 === s && (s = !0); var r = this, n = r.params, o = r.wrapperEl; if (r.animating && n.preventInteractionOnTransition) return !1; var l = r.minTranslate(), d = r.maxTranslate(), d = s && l < e ? l : s && e < d ? d : e; if (r.updateProgress(d), n.cssMode) { e = r.isHorizontal(); return 0 !== t && o.scrollTo ? o.scrollTo(((n = {})[e ? "left" : "top"] = -d, n.behavior = "smooth", n)) : o[e ? "scrollLeft" : "scrollTop"] = -d, !0 } return 0 === t ? (r.setTransition(0), r.setTranslate(d), i && (r.emit("beforeTransitionStart", t, a), r.emit("transitionEnd"))) : (r.setTransition(t), r.setTranslate(d), i && (r.emit("beforeTransitionStart", t, a), 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, i && r.emit("transitionEnd")) }), r.$wrapperEl[0].addEventListener("transitionend", r.onTranslateToWrapperTransitionEnd), r.$wrapperEl[0].addEventListener("webkitTransitionEnd", r.onTranslateToWrapperTransitionEnd))), !0 } }, transition: { setTransition: function (e, t) { this.params.cssMode || this.$wrapperEl.transition(e), this.emit("setTransition", e, t) }, transitionStart: function (e, t) { void 0 === e && (e = !0); var i = this.activeIndex, s = this.params, a = this.previousIndex; s.cssMode || (s.autoHeight && this.updateAutoHeight(), t = (t = t) || (a < i ? "next" : i < a ? "prev" : "reset"), this.emit("transitionStart"), e && i !== a && ("reset" !== t ? (this.emit("slideChangeTransitionStart"), "next" === t ? this.emit("slideNextTransitionStart") : this.emit("slidePrevTransitionStart")) : this.emit("slideResetTransitionStart"))) }, transitionEnd: function (e, t) { void 0 === e && (e = !0); var i = this.activeIndex, s = this.previousIndex, a = this.params; this.animating = !1, a.cssMode || (this.setTransition(0), t = (t = t) || (s < i ? "next" : i < s ? "prev" : "reset"), this.emit("transitionEnd"), e && i !== s && ("reset" !== t ? (this.emit("slideChangeTransitionEnd"), "next" === t ? this.emit("slideNextTransitionEnd") : this.emit("slidePrevTransitionEnd")) : this.emit("slideResetTransitionEnd"))) } }, slide: { slideTo: function (e, t, i, s) { void 0 === t && (t = this.params.speed), void 0 === i && (i = !0); var a = this, r = e = void 0 === e ? 0 : e; r < 0 && (r = 0); var n = a.params, o = a.snapGrid, l = a.slidesGrid, d = a.previousIndex, h = a.activeIndex, p = a.rtlTranslate, u = a.wrapperEl; if (a.animating && n.preventInteractionOnTransition) return !1; e = Math.min(a.params.slidesPerGroupSkip, r), e += Math.floor((r - e) / a.params.slidesPerGroup); e >= o.length && (e = o.length - 1), (h || n.initialSlide || 0) === (d || 0) && i && a.emit("beforeSlideChangeStart"); var c, m = -o[e]; if (a.updateProgress(m), n.normalizeSlideIndex) for (var f = 0; f < l.length; f += 1)-Math.floor(100 * m) >= Math.floor(100 * l[f]) && (r = f); if (a.initialized && r !== h) { if (!a.allowSlideNext && m < a.translate && m < a.minTranslate()) return !1; if (!a.allowSlidePrev && m > a.translate && m > a.maxTranslate() && (h || 0) !== r) return !1 } if (c = h < r ? "next" : r < h ? "prev" : "reset", p && -m === a.translate || !p && m === a.translate) return a.updateActiveIndex(r), n.autoHeight && a.updateAutoHeight(), a.updateSlidesClasses(), "slide" !== n.effect && a.setTranslate(m), "reset" != c && (a.transitionStart(i, c), a.transitionEnd(i, c)), !1; if (n.cssMode) { h = a.isHorizontal(), n = -m; return p && (n = u.scrollWidth - u.offsetWidth - n), 0 !== t && u.scrollTo ? u.scrollTo(((p = {})[h ? "left" : "top"] = n, p.behavior = "smooth", p)) : u[h ? "scrollLeft" : "scrollTop"] = n, !0 } return 0 === t ? (a.setTransition(0), a.setTranslate(m), a.updateActiveIndex(r), a.updateSlidesClasses(), a.emit("beforeTransitionStart", t, s), a.transitionStart(i, c), a.transitionEnd(i, c)) : (a.setTransition(t), a.setTranslate(m), a.updateActiveIndex(r), a.updateSlidesClasses(), a.emit("beforeTransitionStart", t, s), a.transitionStart(i, c), a.animating || (a.animating = !0, a.onSlideToWrapperTransitionEnd || (a.onSlideToWrapperTransitionEnd = function (e) { a && !a.destroyed && e.target === this && (a.$wrapperEl[0].removeEventListener("transitionend", a.onSlideToWrapperTransitionEnd), a.$wrapperEl[0].removeEventListener("webkitTransitionEnd", a.onSlideToWrapperTransitionEnd), a.onSlideToWrapperTransitionEnd = null, delete a.onSlideToWrapperTransitionEnd, a.transitionEnd(i, c)) }), a.$wrapperEl[0].addEventListener("transitionend", a.onSlideToWrapperTransitionEnd), a.$wrapperEl[0].addEventListener("webkitTransitionEnd", a.onSlideToWrapperTransitionEnd))), !0 }, slideToLoop: function (e, t, i, s) { void 0 === t && (t = this.params.speed); e = void 0 === e ? 0 : e; return this.params.loop && (e += this.loopedSlides), this.slideTo(e, t, i = void 0 === i ? !0 : i, s) }, slideNext: function (e, t, i) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); var s = this.params, a = this.animating, r = this.activeIndex < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup; if (s.loop) { if (a && s.loopPreventsSlide) return !1; this.loopFix(), this._clientLeft = this.$wrapperEl[0].clientLeft } return this.slideTo(this.activeIndex + r, e, t, i) }, slidePrev: function (e, t, i) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); var s = this.params, a = this.animating, r = this.snapGrid, n = this.slidesGrid, o = this.rtlTranslate; if (s.loop) { if (a && s.loopPreventsSlide) return !1; this.loopFix(), this._clientLeft = this.$wrapperEl[0].clientLeft } function l(e) { return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e) } var d, h = l(o ? this.translate : -this.translate), o = r.map(l), p = (r[o.indexOf(h)], r[o.indexOf(h) - 1]); return void 0 === p && s.cssMode && r.forEach(function (e) { !p && e <= h && (p = e) }), void 0 !== p && (d = n.indexOf(p)) < 0 && (d = this.activeIndex - 1), this.slideTo(d, e, t, i) }, slideReset: function (e, t, i) { return void 0 === e && (e = this.params.speed), this.slideTo(this.activeIndex, e, t = void 0 === t ? !0 : t, i) }, slideToClosest: function (e, t, i, s) { void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), void 0 === s && (s = .5); var a = this.activeIndex, r = Math.min(this.params.slidesPerGroupSkip, a), n = r + Math.floor((a - r) / this.params.slidesPerGroup), o = this.rtlTranslate ? this.translate : -this.translate; return o >= this.snapGrid[n] ? o - (r = this.snapGrid[n]) > (this.snapGrid[n + 1] - r) * s && (a += this.params.slidesPerGroup) : o - (o = this.snapGrid[n - 1]) <= (this.snapGrid[n] - o) * s && (a -= this.params.slidesPerGroup), a = Math.max(a, 0), a = Math.min(a, this.slidesGrid.length - 1), this.slideTo(a, e, t, i) }, slideToClickedSlide: function () { var e, t = this, i = t.params, s = t.$wrapperEl, a = "auto" === i.slidesPerView ? t.slidesPerViewDynamic() : i.slidesPerView, r = t.clickedIndex; i.loop ? t.animating || (e = parseInt(T(t.clickedSlide).attr("data-swiper-slide-index"), 10), i.centeredSlides ? r < t.loopedSlides - a / 2 || r > t.slides.length - t.loopedSlides + a / 2 ? (t.loopFix(), r = s.children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + i.slideDuplicateClass + ")").eq(0).index(), S(function () { t.slideTo(r) })) : t.slideTo(r) : r > t.slides.length - a ? (t.loopFix(), r = s.children("." + i.slideClass + '[data-swiper-slide-index="' + e + '"]:not(.' + i.slideDuplicateClass + ")").eq(0).index(), S(function () { t.slideTo(r) })) : t.slideTo(r)) : t.slideTo(r) } }, loop: { loopCreate: function () { var s = this, e = g(), t = s.params, i = s.$wrapperEl; i.children("." + t.slideClass + "." + t.slideDuplicateClass).remove(); var a = i.children("." + t.slideClass); if (t.loopFillGroupWithBlank) { var r = t.slidesPerGroup - a.length % t.slidesPerGroup; if (r !== t.slidesPerGroup) { for (var n = 0; n < r; n += 1) { var o = T(e.createElement("div")).addClass(t.slideClass + " " + t.slideBlankClass); i.append(o) } a = i.children("." + t.slideClass) } } "auto" !== t.slidesPerView || t.loopedSlides || (t.loopedSlides = a.length), s.loopedSlides = Math.ceil(parseFloat(t.loopedSlides || t.slidesPerView, 10)), s.loopedSlides += t.loopAdditionalSlides, s.loopedSlides > a.length && (s.loopedSlides = a.length); var l = [], d = []; a.each(function (e, t) { var i = T(e); t < s.loopedSlides && d.push(e), t < a.length && t >= a.length - s.loopedSlides && l.push(e), i.attr("data-swiper-slide-index", t) }); for (var h = 0; h < d.length; h += 1)i.append(T(d[h].cloneNode(!0)).addClass(t.slideDuplicateClass)); for (var p = l.length - 1; 0 <= p; --p)i.prepend(T(l[p].cloneNode(!0)).addClass(t.slideDuplicateClass)) }, loopFix: function () { this.emit("beforeLoopFix"); var e, t = this.activeIndex, i = this.slides, s = this.loopedSlides, a = this.allowSlidePrev, r = this.allowSlideNext, n = this.snapGrid, o = this.rtlTranslate; this.allowSlidePrev = !0, this.allowSlideNext = !0; n = -n[t] - this.getTranslate(); t < s ? (e = i.length - 3 * s + t, this.slideTo(e += s, 0, !1, !0) && 0 != n && this.setTranslate((o ? -this.translate : this.translate) - n)) : t >= i.length - s && (e = -i.length + t + s, this.slideTo(e += s, 0, !1, !0) && 0 != n && this.setTranslate((o ? -this.translate : this.translate) - n)), this.allowSlidePrev = a, this.allowSlideNext = r, this.emit("loopFix") }, loopDestroy: function () { var e = this.$wrapperEl, t = this.params, i = this.slides; e.children("." + t.slideClass + "." + t.slideDuplicateClass + ",." + t.slideClass + "." + t.slideBlankClass).remove(), i.removeAttr("data-swiper-slide-index") } }, grabCursor: { setGrabCursor: function (e) { var t; this.support.touch || !this.params.simulateTouch || this.params.watchOverflow && this.isLocked || this.params.cssMode || ((t = this.el).style.cursor = "move", t.style.cursor = e ? "-webkit-grabbing" : "-webkit-grab", t.style.cursor = e ? "-moz-grabbin" : "-moz-grab", t.style.cursor = e ? "grabbing" : "grab") }, unsetGrabCursor: function () { this.support.touch || this.params.watchOverflow && this.isLocked || this.params.cssMode || (this.el.style.cursor = "") } }, manipulation: { appendSlide: function (e) { var t = this.$wrapperEl, i = this.params; if (i.loop && this.loopDestroy(), "object" == (void 0 === e ? "undefined" : _typeof(e)) && "length" in e) for (var s = 0; s < e.length; s += 1)e[s] && t.append(e[s]); else t.append(e); i.loop && this.loopCreate(), i.observer && this.support.observer || this.update() }, prependSlide: function (e) { var t = this.params, i = this.$wrapperEl, s = this.activeIndex; t.loop && this.loopDestroy(); var a = s + 1; if ("object" == (void 0 === e ? "undefined" : _typeof(e)) && "length" in e) { for (var r = 0; r < e.length; r += 1)e[r] && i.prepend(e[r]); a = s + e.length } else i.prepend(e); t.loop && this.loopCreate(), t.observer && this.support.observer || this.update(), this.slideTo(a, 0, !1) }, addSlide: function (e, t) { var i = this.$wrapperEl, s = this.params, a = this.activeIndex; s.loop && (a -= this.loopedSlides, this.loopDestroy(), this.slides = i.children("." + s.slideClass)); var r = this.slides.length; if (e <= 0) this.prependSlide(t); else if (r <= e) this.appendSlide(t); else { for (var n = e < a ? a + 1 : a, o = [], l = r - 1; e <= l; --l) { var d = this.slides.eq(l); d.remove(), o.unshift(d) } if ("object" == (void 0 === t ? "undefined" : _typeof(t)) && "length" in t) { for (var h = 0; h < t.length; h += 1)t[h] && i.append(t[h]); n = e < a ? a + t.length : a } else i.append(t); for (var p = 0; p < o.length; p += 1)i.append(o[p]); s.loop && this.loopCreate(), s.observer && this.support.observer || this.update(), s.loop ? this.slideTo(n + this.loopedSlides, 0, !1) : this.slideTo(n, 0, !1) } }, removeSlide: function (e) { var t = this.params, i = this.$wrapperEl, s = this.activeIndex; t.loop && (s -= this.loopedSlides, this.loopDestroy(), this.slides = i.children("." + t.slideClass)); var a, r = s; if ("object" == (void 0 === e ? "undefined" : _typeof(e)) && "length" in e) { for (var n = 0; n < e.length; n += 1)a = e[n], this.slides[a] && this.slides.eq(a).remove(), a < r && --r; r = Math.max(r, 0) } else this.slides[a = e] && this.slides.eq(a).remove(), a < r && --r, r = Math.max(r, 0); t.loop && this.loopCreate(), t.observer && this.support.observer || this.update(), t.loop ? this.slideTo(r + this.loopedSlides, 0, !1) : this.slideTo(r, 0, !1) }, removeAllSlides: function () { for (var e = [], t = 0; t < this.slides.length; t += 1)e.push(t); this.removeSlide(e) } }, events: { attachEvents: function () { var e = g(), t = this.params, i = this.touchEvents, s = this.el, a = this.wrapperEl, r = this.device, n = this.support; this.onTouchStart = function (e) { var t, i, s, a, r, n = g(), o = j(), l = this.touchEventsData, d = this.params, h = this.touches; this.animating && d.preventInteractionOnTransition || (i = T((t = (t = e).originalEvent ? t.originalEvent : t).target), "wrapper" === d.touchEventsTarget && !i.closest(this.wrapperEl).length || (l.isTouchEvent = "touchstart" === t.type, !l.isTouchEvent && "which" in t && 3 === t.which || !l.isTouchEvent && "button" in t && 0 < t.button || l.isTouched && l.isMoved) || (d.noSwiping && i.closest(d.noSwipingSelector || "." + d.noSwipingClass)[0] ? this.allowClick = !0 : d.swipeHandler && !i.closest(d.swipeHandler)[0] || (h.currentX = ("touchstart" === t.type ? t.targetTouches[0] : t).pageX, h.currentY = ("touchstart" === t.type ? t.targetTouches[0] : t).pageY, s = h.currentX, r = h.currentY, a = d.edgeSwipeDetection || d.iOSEdgeSwipeDetection, e = d.edgeSwipeThreshold || d.iOSEdgeSwipeThreshold, a && (s <= e || s >= o.screen.width - e) || (U(l, { isTouched: !0, isMoved: !1, allowTouchCallbacks: !0, isScrolling: void 0, startMoving: void 0 }), h.startX = s, h.startY = r, l.touchStartTime = C(), this.allowClick = !0, this.updateSize(), this.swipeDirection = void 0, 0 < d.threshold && (l.allowThresholdMove = !1), "touchstart" !== t.type && (r = !0, i.is(l.formElements) && (r = !1), n.activeElement && T(n.activeElement).is(l.formElements) && n.activeElement !== i[0] && n.activeElement.blur(), r = r && this.allowTouchMove && d.touchStartPreventDefault, (d.touchStartForcePreventDefault || r) && t.preventDefault()), this.emit("touchStart", t))))) }.bind(this), this.onTouchMove = function (e) { var t = g(), i = this.touchEventsData, s = this.params, a = this.touches, r = this.rtlTranslate, n = e; if (n.originalEvent && (n = n.originalEvent), i.isTouched) { if (!i.isTouchEvent || "touchmove" === n.type) { var o = "touchmove" === n.type && n.targetTouches && (n.targetTouches[0] || n.changedTouches[0]), e = ("touchmove" === n.type ? o : n).pageX, o = ("touchmove" === n.type ? o : n).pageY; if (n.preventedByNestedSwiper) return a.startX = e, void (a.startY = o); if (!this.allowTouchMove) return this.allowClick = !1, void (i.isTouched && (U(a, { startX: e, startY: o, currentX: e, currentY: o }), i.touchStartTime = C())); if (i.isTouchEvent && s.touchReleaseOnEdges && !s.loop) if (this.isVertical()) { if (o < a.startY && this.translate <= this.maxTranslate() || o > a.startY && this.translate >= this.minTranslate()) return i.isTouched = !1, void (i.isMoved = !1) } else if (e < a.startX && this.translate <= this.maxTranslate() || e > a.startX && this.translate >= this.minTranslate()) return; if (i.isTouchEvent && t.activeElement && n.target === t.activeElement && T(n.target).is(i.formElements)) return i.isMoved = !0, void (this.allowClick = !1); if (i.allowTouchCallbacks && this.emit("touchMove", n), !(n.targetTouches && 1 < n.targetTouches.length)) { a.currentX = e, a.currentY = o; t = a.currentX - a.startX, e = a.currentY - a.startY; if (!(this.params.threshold && Math.sqrt(Math.pow(t, 2) + Math.pow(e, 2)) < this.params.threshold)) if (void 0 === i.isScrolling && (this.isHorizontal() && a.currentY === a.startY || this.isVertical() && a.currentX === a.startX ? i.isScrolling = !1 : 25 <= t * t + e * e && (o = 180 * Math.atan2(Math.abs(e), Math.abs(t)) / Math.PI, i.isScrolling = this.isHorizontal() ? o > s.touchAngle : 90 - o > s.touchAngle)), i.isScrolling && this.emit("touchMoveOpposite", n), void 0 === i.startMoving && (a.currentX === a.startX && a.currentY === a.startY || (i.startMoving = !0)), i.isScrolling) i.isTouched = !1; else if (i.startMoving) { this.allowClick = !1, !s.cssMode && n.cancelable && n.preventDefault(), s.touchMoveStopPropagation && !s.nested && n.stopPropagation(), i.isMoved || (s.loop && this.loopFix(), i.startTranslate = this.getTranslate(), this.setTransition(0), this.animating && this.$wrapperEl.trigger("webkitTransitionEnd transitionend"), i.allowMomentumBounce = !1, !s.grabCursor || !0 !== this.allowSlideNext && !0 !== this.allowSlidePrev || this.setGrabCursor(!0), this.emit("sliderFirstMove", n)), this.emit("sliderMove", n), i.isMoved = !0; t = this.isHorizontal() ? t : e; a.diff = t, t *= s.touchRatio, this.swipeDirection = 0 < (t = r ? -t : t) ? "prev" : "next", i.currentTranslate = t + i.startTranslate; e = !0, r = s.resistanceRatio; if (s.touchReleaseOnEdges && (r = 0), 0 < t && i.currentTranslate > this.minTranslate() ? (e = !1, s.resistance && (i.currentTranslate = this.minTranslate() - 1 + Math.pow(-this.minTranslate() + i.startTranslate + t, r))) : t < 0 && i.currentTranslate < this.maxTranslate() && (e = !1, s.resistance && (i.currentTranslate = this.maxTranslate() + 1 - Math.pow(this.maxTranslate() - i.startTranslate - t, r))), e && (n.preventedByNestedSwiper = !0), !this.allowSlideNext && "next" === this.swipeDirection && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate), !this.allowSlidePrev && "prev" === this.swipeDirection && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate), 0 < s.threshold) { if (!(Math.abs(t) > s.threshold || i.allowThresholdMove)) return void (i.currentTranslate = i.startTranslate); if (!i.allowThresholdMove) return i.allowThresholdMove = !0, a.startX = a.currentX, a.startY = a.currentY, i.currentTranslate = i.startTranslate, void (a.diff = this.isHorizontal() ? a.currentX - a.startX : a.currentY - a.startY) } s.followFinger && !s.cssMode && ((s.freeMode || s.watchSlidesProgress || s.watchSlidesVisibility) && (this.updateActiveIndex(), this.updateSlidesClasses()), s.freeMode && (0 === i.velocities.length && i.velocities.push({ position: a[this.isHorizontal() ? "startX" : "startY"], time: i.touchStartTime }), i.velocities.push({ position: a[this.isHorizontal() ? "currentX" : "currentY"], time: C() })), this.updateProgress(i.currentTranslate), this.setTranslate(i.currentTranslate)) } } } } else i.startMoving && i.isScrolling && this.emit("touchMoveOpposite", n) }.bind(this), this.onTouchEnd = function (e) { var t = this, i = t.touchEventsData, s = t.params, a = t.touches, r = t.rtlTranslate, n = t.$wrapperEl, o = t.slidesGrid, l = t.snapGrid, d = e; if (d.originalEvent && (d = d.originalEvent), i.allowTouchCallbacks && t.emit("touchEnd", d), i.allowTouchCallbacks = !1, !i.isTouched) return i.isMoved && s.grabCursor && t.setGrabCursor(!1), i.isMoved = !1, void (i.startMoving = !1); s.grabCursor && i.isMoved && i.isTouched && (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && t.setGrabCursor(!1); var h, p = C(), e = p - i.touchStartTime; if (t.allowClick && (t.updateClickedSlide(d), t.emit("tap click", d), e < 300 && p - i.lastClickTime < 300 && t.emit("doubleTap doubleClick", d)), i.lastClickTime = C(), S(function () { t.destroyed || (t.allowClick = !0) }), !i.isTouched || !i.isMoved || !t.swipeDirection || 0 === a.diff || i.currentTranslate === i.startTranslate) return i.isTouched = !1, i.isMoved = !1, void (i.startMoving = !1); if (i.isTouched = !1, i.isMoved = !1, i.startMoving = !1, h = s.followFinger ? r ? t.translate : -t.translate : -i.currentTranslate, !s.cssMode) if (s.freeMode) if (h < -t.minTranslate()) t.slideTo(t.activeIndex); else if (h > -t.maxTranslate()) t.slides.length < l.length ? t.slideTo(l.length - 1) : t.slideTo(t.slides.length - 1); else { if (s.freeModeMomentum) { 1 < i.velocities.length ? (g = i.velocities.pop(), c = i.velocities.pop(), u = g.position - c.position, c = g.time - c.time, t.velocity = u / c, t.velocity /= 2, Math.abs(t.velocity) < s.freeModeMinimumVelocity && (t.velocity = 0), (150 < c || 300 < C() - g.time) && (t.velocity = 0)) : t.velocity = 0, t.velocity *= s.freeModeMomentumVelocityRatio, i.velocities.length = 0; var u = 1e3 * s.freeModeMomentumRatio, c = t.velocity * u, m = t.translate + c; r && (m = -m); var f, v, g = !1, c = 20 * Math.abs(t.velocity) * s.freeModeMomentumBounceRatio; if (m < t.maxTranslate()) s.freeModeMomentumBounce ? (m + t.maxTranslate() < -c && (m = t.maxTranslate() - c), f = t.maxTranslate(), i.allowMomentumBounce = g = !0) : m = t.maxTranslate(), s.loop && s.centeredSlides && (v = !0); else if (m > t.minTranslate()) s.freeModeMomentumBounce ? (m - t.minTranslate() > c && (m = t.minTranslate() + c), f = t.minTranslate(), i.allowMomentumBounce = g = !0) : m = t.minTranslate(), s.loop && s.centeredSlides && (v = !0); else if (s.freeModeSticky) { for (var b, y = 0; y < l.length; y += 1)if (l[y] > -m) { b = y; break } m = -(Math.abs(l[b] - m) < Math.abs(l[b - 1] - m) || "next" === t.swipeDirection ? l[b] : l[b - 1]) } if (v && t.once("transitionEnd", function () { t.loopFix() }), 0 !== t.velocity) u = r ? Math.abs((-m - t.translate) / t.velocity) : Math.abs((m - t.translate) / t.velocity), s.freeModeSticky && (u = (v = Math.abs((r ? -m : m) - t.translate)) < (r = t.slidesSizesGrid[t.activeIndex]) ? s.speed : v < 2 * r ? 1.5 * s.speed : 2.5 * s.speed); else if (s.freeModeSticky) return void t.slideToClosest(); s.freeModeMomentumBounce && g ? (t.updateProgress(f), t.setTransition(u), t.setTranslate(m), t.transitionStart(!0, t.swipeDirection), t.animating = !0, n.transitionEnd(function () { t && !t.destroyed && i.allowMomentumBounce && (t.emit("momentumBounce"), t.setTransition(s.speed), setTimeout(function () { t.setTranslate(f), n.transitionEnd(function () { t && !t.destroyed && t.transitionEnd() }) }, 0)) })) : t.velocity ? (t.updateProgress(m), t.setTransition(u), t.setTranslate(m), t.transitionStart(!0, t.swipeDirection), t.animating || (t.animating = !0, n.transitionEnd(function () { t && !t.destroyed && t.transitionEnd() }))) : t.updateProgress(m), t.updateActiveIndex(), t.updateSlidesClasses() } else if (s.freeModeSticky) return void t.slideToClosest(); (!s.freeModeMomentum || e >= s.longSwipesMs) && (t.updateProgress(), t.updateActiveIndex(), t.updateSlidesClasses()) } else { for (var w = 0, E = t.slidesSizesGrid[0], x = 0; x < o.length; x += x < s.slidesPerGroupSkip ? 1 : s.slidesPerGroup) { var T = x < s.slidesPerGroupSkip - 1 ? 1 : s.slidesPerGroup; void 0 !== o[x + T] ? h >= o[x] && h < o[x + T] && (E = o[(w = x) + T] - o[x]) : h >= o[x] && (w = x, E = o[o.length - 1] - o[o.length - 2]) } g = (h - o[w]) / E, u = w < s.slidesPerGroupSkip - 1 ? 1 : s.slidesPerGroup; e > s.longSwipesMs ? s.longSwipes ? ("next" === t.swipeDirection && (g >= s.longSwipesRatio ? t.slideTo(w + u) : t.slideTo(w)), "prev" === t.swipeDirection && (g > 1 - s.longSwipesRatio ? t.slideTo(w + u) : t.slideTo(w))) : t.slideTo(t.activeIndex) : s.shortSwipes ? !t.navigation || d.target !== t.navigation.nextEl && d.target !== t.navigation.prevEl ? ("next" === t.swipeDirection && t.slideTo(w + u), "prev" === t.swipeDirection && t.slideTo(w)) : d.target === t.navigation.nextEl ? t.slideTo(w + u) : t.slideTo(w) : t.slideTo(t.activeIndex) } }.bind(this), t.cssMode && (this.onScroll = function () { var e = this.wrapperEl, t = this.rtlTranslate; this.previousTranslate = this.translate, this.isHorizontal() ? this.translate = t ? e.scrollWidth - e.offsetWidth - e.scrollLeft : -e.scrollLeft : this.translate = -e.scrollTop, -0 === this.translate && (this.translate = 0), this.updateActiveIndex(), this.updateSlidesClasses(), (0 == (e = this.maxTranslate() - this.minTranslate()) ? 0 : (this.translate - this.minTranslate()) / e) !== this.progress && this.updateProgress(t ? -this.translate : this.translate), this.emit("setTranslate", this.translate, !1) }.bind(this)), this.onClick = function (e) { this.allowClick || (this.params.preventClicks && e.preventDefault(), this.params.preventClicksPropagation && this.animating && (e.stopPropagation(), e.stopImmediatePropagation())) }.bind(this); var o, l = !!t.nested; !n.touch && n.pointerEvents ? (s.addEventListener(i.start, this.onTouchStart, !1), e.addEventListener(i.move, this.onTouchMove, l), e.addEventListener(i.end, this.onTouchEnd, !1)) : (n.touch && (o = !("touchstart" !== i.start || !n.passiveListener || !t.passiveListeners) && { passive: !0, capture: !1 }, s.addEventListener(i.start, this.onTouchStart, o), s.addEventListener(i.move, this.onTouchMove, n.passiveListener ? { passive: !1, capture: l } : l), s.addEventListener(i.end, this.onTouchEnd, o), i.cancel && s.addEventListener(i.cancel, this.onTouchEnd, o), L || (e.addEventListener("touchstart", I), L = !0)), (t.simulateTouch && !r.ios && !r.android || t.simulateTouch && !n.touch && r.ios) && (s.addEventListener("mousedown", this.onTouchStart, !1), e.addEventListener("mousemove", this.onTouchMove, l), e.addEventListener("mouseup", this.onTouchEnd, !1))), (t.preventClicks || t.preventClicksPropagation) && s.addEventListener("click", this.onClick, !0), t.cssMode && a.addEventListener("scroll", this.onScroll), t.updateOnWindowResize ? this.on(r.ios || r.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", $, !0) : this.on("observerUpdate", $, !0) }, detachEvents: function () { var e, t = g(), i = this.params, s = this.touchEvents, a = this.el, r = this.wrapperEl, n = this.device, o = this.support, l = !!i.nested; !o.touch && o.pointerEvents ? (a.removeEventListener(s.start, this.onTouchStart, !1), t.removeEventListener(s.move, this.onTouchMove, l), t.removeEventListener(s.end, this.onTouchEnd, !1)) : (o.touch && (e = !("onTouchStart" !== s.start || !o.passiveListener || !i.passiveListeners) && { passive: !0, capture: !1 }, a.removeEventListener(s.start, this.onTouchStart, e), a.removeEventListener(s.move, this.onTouchMove, l), a.removeEventListener(s.end, this.onTouchEnd, e), s.cancel && a.removeEventListener(s.cancel, this.onTouchEnd, e)), (i.simulateTouch && !n.ios && !n.android || i.simulateTouch && !o.touch && n.ios) && (a.removeEventListener("mousedown", this.onTouchStart, !1), t.removeEventListener("mousemove", this.onTouchMove, l), t.removeEventListener("mouseup", this.onTouchEnd, !1))), (i.preventClicks || i.preventClicksPropagation) && a.removeEventListener("click", this.onClick, !0), i.cssMode && r.removeEventListener("scroll", this.onScroll), this.off(n.ios || n.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", $) } }, breakpoints: { setBreakpoint: function () { var e, i, t, s = this.activeIndex, a = this.initialized, r = this.loopedSlides, n = void 0 === r ? 0 : r, o = this.params, l = this.$el, d = o.breakpoints; d && 0 !== Object.keys(d).length && (e = this.getBreakpoint(d)) && this.currentBreakpoint !== e && ((i = e in d ? d[e] : void 0) && ["slidesPerView", "spaceBetween", "slidesPerGroup", "slidesPerGroupSkip", "slidesPerColumn"].forEach(function (e) { var t = i[e]; void 0 !== t && (i[e] = "slidesPerView" !== e || "AUTO" !== t && "auto" !== t ? "slidesPerView" === e ? parseFloat(t) : parseInt(t, 10) : "auto") }), t = i || this.originalParams, r = 1 < o.slidesPerColumn, d = 1 < t.slidesPerColumn, r && !d ? (l.removeClass(o.containerModifierClass + "multirow " + o.containerModifierClass + "multirow-column"), this.emitContainerClasses()) : !r && d && (l.addClass(o.containerModifierClass + "multirow"), "column" === t.slidesPerColumnFill && l.addClass(o.containerModifierClass + "multirow-column"), this.emitContainerClasses()), l = t.direction && t.direction !== o.direction, o = o.loop && (t.slidesPerView !== o.slidesPerView || l), l && a && this.changeDirection(), U(this.params, t), U(this, { allowTouchMove: this.params.allowTouchMove, allowSlideNext: this.params.allowSlideNext, allowSlidePrev: this.params.allowSlidePrev }), this.currentBreakpoint = e, o && a && (this.loopDestroy(), this.loopCreate(), this.updateSlides(), this.slideTo(s - n + this.loopedSlides, 0, !1)), this.emit("breakpoint", t)) }, getBreakpoint: function (e) { var i = j(); if (e) { var t = !1, s = Object.keys(e).map(function (e) { if ("string" != typeof e || 0 !== e.indexOf("@")) return { value: e, point: e }; var t = parseFloat(e.substr(1)); return { value: i.innerHeight * t, point: e } }); s.sort(function (e, t) { return parseInt(e.value, 10) - parseInt(t.value, 10) }); for (var a = 0; a < s.length; a += 1) { var r = s[a], n = r.point; r.value <= i.innerWidth && (t = n) } return t || "max" } } }, checkOverflow: { checkOverflow: function () { var e = this.params, t = this.isLocked, i = 0 < this.slides.length && e.slidesOffsetBefore + e.spaceBetween * (this.slides.length - 1) + this.slides[0].offsetWidth * this.slides.length; e.slidesOffsetBefore && e.slidesOffsetAfter && i ? this.isLocked = i <= this.size : this.isLocked = 1 === this.snapGrid.length, this.allowSlideNext = !this.isLocked, this.allowSlidePrev = !this.isLocked, t !== this.isLocked && this.emit(this.isLocked ? "lock" : "unlock"), t && t !== this.isLocked && (this.isEnd = !1, this.navigation && this.navigation.update()) } }, classes: { addClasses: function () { var t = this.classNames, i = this.params, e = this.rtl, s = this.$el, a = this.device, r = []; r.push("initialized"), r.push(i.direction), i.freeMode && r.push("free-mode"), i.autoHeight && r.push("autoheight"), e && r.push("rtl"), 1 < i.slidesPerColumn && (r.push("multirow"), "column" === i.slidesPerColumnFill && r.push("multirow-column")), a.android && r.push("android"), a.ios && r.push("ios"), i.cssMode && r.push("css-mode"), r.forEach(function (e) { t.push(i.containerModifierClass + e) }), s.addClass(t.join(" ")), this.emitContainerClasses() }, removeClasses: function () { var e = this.$el, t = this.classNames; e.removeClass(t.join(" ")), this.emitContainerClasses() } }, images: { loadImage: function (e, t, i, s, a, r) { var n = j(); function o() { r && r() } !(T(e).parent("picture")[0] || e.complete && a) && t ? ((n = new n.Image).onload = o, n.onerror = o, s && (n.sizes = s), i && (n.srcset = i), t && (n.src = t)) : o() }, preloadImages: function () { var 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 (var i = 0; i < e.imagesToLoad.length; i += 1) { var s = e.imagesToLoad[i]; e.loadImage(s, s.currentSrc || s.getAttribute("src"), s.srcset || s.getAttribute("srcset"), s.sizes || s.getAttribute("sizes"), !0, t) } } } }, N = {}, A = ((A = B.prototype).emitContainerClasses = function () { var e, t = this; t.params._emitClasses && t.el && (e = t.el.className.split(" ").filter(function (e) { return 0 === e.indexOf("swiper-container") || 0 === e.indexOf(t.params.containerModifierClass) }), t.emit("_containerClasses", e.join(" "))) }, A.emitSlidesClasses = function () { var i = this; i.params._emitClasses && i.el && i.slides.each(function (e) { var t = e.className.split(" ").filter(function (e) { return 0 === e.indexOf("swiper-slide") || 0 === e.indexOf(i.params.slideClass) }); i.emit("_slideClass", e, t.join(" ")) }) }, A.slidesPerViewDynamic = function () { var e = this.params, t = this.slides, i = this.slidesGrid, s = this.size, a = this.activeIndex, r = 1; if (e.centeredSlides) { for (var n, o = t[a].swiperSlideSize, l = a + 1; l < t.length; l += 1)t[l] && !n && (r += 1, (o += t[l].swiperSlideSize) > s && (n = !0)); for (var d = a - 1; 0 <= d; --d)t[d] && !n && (r += 1, (o += t[d].swiperSlideSize) > s && (n = !0)) } else for (var h = a + 1; h < t.length; h += 1)i[h] - i[a] < s && (r += 1); return r }, A.update = function () { var e, t, i = this; function s() { var e = i.rtlTranslate ? -1 * i.translate : i.translate, e = Math.min(Math.max(e, i.maxTranslate()), i.minTranslate()); i.setTranslate(e), i.updateActiveIndex(), i.updateSlidesClasses() } i && !i.destroyed && (e = i.snapGrid, (t = i.params).breakpoints && i.setBreakpoint(), i.updateSize(), i.updateSlides(), i.updateProgress(), i.updateSlidesClasses(), i.params.freeMode ? (s(), i.params.autoHeight && i.updateAutoHeight()) : (("auto" === i.params.slidesPerView || 1 < i.params.slidesPerView) && i.isEnd && !i.params.centeredSlides ? i.slideTo(i.slides.length - 1, 0, !1, !0) : i.slideTo(i.activeIndex, 0, !1, !0)) || s(), t.watchOverflow && e !== i.snapGrid && i.checkOverflow(), i.emit("update")) }, A.changeDirection = function (t, e) { void 0 === e && (e = !0); var i = this.params.direction; return (t = t || ("horizontal" === i ? "vertical" : "horizontal")) === i || "horizontal" !== t && "vertical" !== t || (this.$el.removeClass("" + this.params.containerModifierClass + i).addClass("" + this.params.containerModifierClass + t), this.emitContainerClasses(), this.params.direction = t, this.slides.each(function (e) { "vertical" === t ? e.style.width = "" : e.style.height = "" }), this.emit("changeDirection"), e && this.update()), this }, A.init = function () { this.initialized || (this.emit("beforeInit"), this.params.breakpoints && this.setBreakpoint(), this.addClasses(), this.params.loop && this.loopCreate(), this.updateSize(), this.updateSlides(), this.params.watchOverflow && this.checkOverflow(), this.params.grabCursor && this.setGrabCursor(), this.params.preloadImages && this.preloadImages(), this.params.loop ? this.slideTo(this.params.initialSlide + this.loopedSlides, 0, this.params.runCallbacksOnInit) : this.slideTo(this.params.initialSlide, 0, this.params.runCallbacksOnInit), this.attachEvents(), this.initialized = !0, this.emit("init")) }, A.destroy = function (e, t) { void 0 === e && (e = !0), void 0 === t && (t = !0); var i, s = this, a = s.params, r = s.$el, n = s.$wrapperEl, o = s.slides; return void 0 === s.params || s.destroyed || (s.emit("beforeDestroy"), s.initialized = !1, s.detachEvents(), a.loop && s.loopDestroy(), t && (s.removeClasses(), r.removeAttr("style"), n.removeAttr("style"), o && o.length && o.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(function (e) { s.off(e) }), !1 !== e && (s.$el[0].swiper = null, i = s, Object.keys(i).forEach(function (e) { try { i[e] = null } catch (e) { } try { delete i[e] } catch (e) { } })), s.destroyed = !0), null }, B.extendDefaults = function (e) { U(N, e) }, B.installModule = function (e) { B.prototype.modules || (B.prototype.modules = {}); var t = e.name || Object.keys(B.prototype.modules).length + "_" + C(); B.prototype.modules[t] = e }, B.use = function (e) { return Array.isArray(e) ? e.forEach(function (e) { return B.installModule(e) }) : B.installModule(e), B }, O = B, A = [{ key: "extendedDefaults", get: function () { return N } }, { key: "defaults", get: function () { return D } }], null && e(O.prototype, null), e(O, A), B); function B() { for (var i, e = arguments.length, t = new Array(e), s = 0; s < e; s++)t[s] = arguments[s]; i = U({}, i = (i = 1 === t.length && t[0].constructor && t[0].constructor === Object ? t[0] : (b = t[0], t[1])) || {}), b && !i.el && (i.el = b); var a, r, n, o, l, d, h, p, u, c, m, f = this; f.support = M(), f.device = (void 0 === (a = { userAgent: i.userAgent }) && (a = {}), E || (r = (void 0 === a ? {} : a).userAgent, n = M(), o = j(), l = o.navigator.platform, d = r || o.navigator.userAgent, h = { ios: !1, android: !1 }, p = o.screen.width, u = o.screen.height, c = d.match(/(Android);?[\s\/]+([\d.]+)?/), m = d.match(/(iPad).*OS\s([\d_]+)/), a = d.match(/(iPod)(.*OS\s([\d_]+))?/), r = !m && d.match(/(iPhone\sOS|iOS)\s([\d_]+)/), o = "Win32" === l, l = "MacIntel" === l, !m && l && n.touch && 0 <= ["1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112", "1112x834", "768x1024", "1024x768"].indexOf(p + "x" + u) && ((m = d.match(/(Version)\/([\d.]+)/)) || (m = [0, 1, "13_0_0"]), l = !1), c && !o && (h.os = "android", h.android = !0), (m || r || a) && (h.os = "ios", h.ios = !0), E = h), E), f.browser = (x || (v = j(), x = { isEdge: !!v.navigator.userAgent.match(/Edge/g), isSafari: 0 <= (h = v.navigator.userAgent.toLowerCase()).indexOf("safari") && h.indexOf("chrome") < 0 && h.indexOf("android") < 0, isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(v.navigator.userAgent) }), x), f.eventsListeners = {}, f.eventsAnyListeners = [], Object.keys(G).forEach(function (t) { Object.keys(G[t]).forEach(function (e) { B.prototype[e] || (B.prototype[e] = G[t][e]) }) }), void 0 === f.modules && (f.modules = {}), Object.keys(f.modules).forEach(function (e) { var t = f.modules[e]; t.params && (e = Object.keys(t.params)[0], "object" == (void 0 === (t = t.params[e]) ? "undefined" : _typeof(t)) && null !== t && e in i && "enabled" in t && (!0 === i[e] && (i[e] = { enabled: !0 }), "object" != _typeof(i[e]) || "enabled" in i[e] || (i[e].enabled = !0), i[e] || (i[e] = { enabled: !1 }))) }); var v = U({}, D); f.useParams(v), f.params = U({}, v, N, i), f.originalParams = U({}, f.params), f.passedParams = U({}, i), f.params && f.params.on && Object.keys(f.params.on).forEach(function (e) { f.on(e, f.params.on[e]) }); var g, b, y = (f.$ = T)(f.params.el); if (b = y[0]) { if (1 < y.length) { var w = []; return y.each(function (e) { e = U({}, i, { el: e }); w.push(new B(e)) }), w } return b.swiper = f, b && b.shadowRoot && b.shadowRoot.querySelector ? (g = T(b.shadowRoot.querySelector("." + f.params.wrapperClass))).children = function (e) { return y.children(e) } : g = y.children("." + f.params.wrapperClass), U(f, { $el: y, el: b, $wrapperEl: g, wrapperEl: g[0], classNames: [], slides: T(), slidesGrid: [], snapGrid: [], slidesSizesGrid: [], isHorizontal: function () { return "horizontal" === f.params.direction }, isVertical: function () { return "vertical" === f.params.direction }, rtl: "rtl" === b.dir.toLowerCase() || "rtl" === y.css("direction"), rtlTranslate: "horizontal" === f.params.direction && ("rtl" === b.dir.toLowerCase() || "rtl" === y.css("direction")), wrongRTL: "-webkit-box" === g.css("display"), activeIndex: 0, realIndex: 0, isBeginning: !0, isEnd: !1, translate: 0, previousTranslate: 0, progress: 0, velocity: 0, animating: !1, allowSlideNext: f.params.allowSlideNext, allowSlidePrev: f.params.allowSlidePrev, touchEvents: (b = ["mousedown", "mousemove", "mouseup"], f.support.pointerEvents && (b = ["pointerdown", "pointermove", "pointerup"]), f.touchEventsTouch = { start: (g = ["touchstart", "touchmove", "touchend", "touchcancel"])[0], move: g[1], end: g[2], cancel: g[3] }, f.touchEventsDesktop = { start: b[0], move: b[1], end: b[2] }, f.support.touch || !f.params.simulateTouch ? f.touchEventsTouch : f.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, formElements: "input, select, option, textarea, button, video, label", lastClickTime: C(), clickTimeout: void 0, velocities: [], allowMomentumBounce: void 0, isTouchEvent: void 0, startMoving: void 0 }, allowClick: !0, allowTouchMove: f.params.allowTouchMove, touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, imagesToLoad: [], imagesLoaded: 0 }), f.useModules(), f.emit("_swiper"), f.params.init && f.init(), f } } A.use([z, k]); var H = { update: function (e) { var t = this, i = t.params, s = i.slidesPerView, a = i.slidesPerGroup, r = i.centeredSlides, n = t.params.virtual, o = n.addSlidesBefore, l = n.addSlidesAfter, d = t.virtual, h = d.from, p = d.to, u = d.slides, c = d.slidesGrid, m = d.renderSlide, i = d.offset; t.updateActiveIndex(); var n = t.activeIndex || 0, d = t.rtlTranslate ? "right" : t.isHorizontal() ? "left" : "top", o = r ? (g = Math.floor(s / 2) + a + l, Math.floor(s / 2) + a + o) : (g = s + (a - 1) + l, a + o), f = Math.max((n || 0) - o, 0), v = Math.min((n || 0) + g, u.length - 1), g = (t.slidesGrid[f] || 0) - (t.slidesGrid[0] || 0); function b() { t.updateSlides(), t.updateProgress(), t.updateSlidesClasses(), t.lazy && t.params.lazy.enabled && t.lazy.load() } if (U(t.virtual, { from: f, to: v, offset: g, slidesGrid: t.slidesGrid }), h === f && p === v && !e) return t.slidesGrid !== c && g !== i && t.slides.css(d, g + "px"), void t.updateProgress(); if (t.params.virtual.renderExternal) return t.params.virtual.renderExternal.call(t, { offset: g, from: f, to: v, slides: function () { for (var e = [], t = f; t <= v; t += 1)e.push(u[t]); return e }() }), void (t.params.virtual.renderExternalUpdate && b()); var y = [], w = []; if (e) t.$wrapperEl.find("." + t.params.slideClass).remove(); else for (var E = h; E <= p; E += 1)(E < f || v < E) && t.$wrapperEl.find("." + t.params.slideClass + '[data-swiper-slide-index="' + E + '"]').remove(); for (var x = 0; x < u.length; x += 1)f <= x && x <= v && (void 0 === p || e ? w.push(x) : (p < x && w.push(x), x < h && y.push(x))); w.forEach(function (e) { t.$wrapperEl.append(m(u[e], e)) }), y.sort(function (e, t) { return t - e }).forEach(function (e) { t.$wrapperEl.prepend(m(u[e], e)) }), t.$wrapperEl.children(".swiper-slide").css(d, g + "px"), b() }, renderSlide: function (e, t) { var i = this.params.virtual; if (i.cache && this.virtual.cache[t]) return this.virtual.cache[t]; e = i.renderSlide ? T(i.renderSlide.call(this, e, t)) : T('' + e + "
"); return e.attr("data-swiper-slide-index") || e.attr("data-swiper-slide-index", t), i.cache && (this.virtual.cache[t] = e), e }, appendSlide: function (e) { if ("object" == (void 0 === e ? "undefined" : _typeof(e)) && "length" in e) for (var t = 0; t < e.length; t += 1)e[t] && this.virtual.slides.push(e[t]); else this.virtual.slides.push(e); this.virtual.update(!0) }, prependSlide: function (e) { var s, a, t = this.activeIndex, i = t + 1, r = 1; if (Array.isArray(e)) { for (var n = 0; n < e.length; n += 1)e[n] && this.virtual.slides.unshift(e[n]); i = t + e.length, r = e.length } else this.virtual.slides.unshift(e); this.params.virtual.cache && (s = this.virtual.cache, a = {}, Object.keys(s).forEach(function (e) { var t = s[e], i = t.attr("data-swiper-slide-index"); i && t.attr("data-swiper-slide-index", parseInt(i, 10) + 1), a[parseInt(e, 10) + r] = t }), this.virtual.cache = a), this.virtual.update(!0), this.slideTo(i, 0) }, removeSlide: function (e) { if (null != e) { var t = this.activeIndex; if (Array.isArray(e)) for (var i = e.length - 1; 0 <= i; --i)this.virtual.slides.splice(e[i], 1), this.params.virtual.cache && delete this.virtual.cache[e[i]], e[i] < t && --t, t = Math.max(t, 0); else this.virtual.slides.splice(e, 1), this.params.virtual.cache && delete this.virtual.cache[e], e < t && --t, t = Math.max(t, 0); this.virtual.update(!0), this.slideTo(t, 0) } }, removeAllSlides: function () { this.virtual.slides = [], this.params.virtual.cache && (this.virtual.cache = {}), this.virtual.update(!0), this.slideTo(0, 0) } }, z = { name: "virtual", params: { virtual: { enabled: !1, slides: [], cache: !0, renderSlide: null, renderExternal: null, renderExternalUpdate: !0, addSlidesBefore: 0, addSlidesAfter: 0 } }, create: function () { w(this, { virtual: t(t({}, H), {}, { slides: this.params.virtual.slides, cache: {} }) }) }, on: { beforeInit: function (e) { var t; e.params.virtual.enabled && (e.classNames.push(e.params.containerModifierClass + "virtual"), U(e.params, t = { watchSlidesProgress: !0 }), U(e.originalParams, t), e.params.initialSlide || e.virtual.update()) }, setTranslate: function (e) { e.params.virtual.enabled && e.virtual.update() } } }, X = { handle: function (e) { var t = j(), i = g(), s = this.rtlTranslate, a = e, r = (a = a.originalEvent ? a.originalEvent : a).keyCode || a.charCode, n = this.params.keyboard.pageUpDown, o = n && 33 === r, l = n && 34 === r, d = 37 === r, h = 39 === r, e = 38 === r, n = 40 === r; if (!this.allowSlideNext && (this.isHorizontal() && h || this.isVertical() && n || l)) return !1; if (!this.allowSlidePrev && (this.isHorizontal() && d || this.isVertical() && e || o)) return !1; if (!(a.shiftKey || a.altKey || a.ctrlKey || a.metaKey || i.activeElement && i.activeElement.nodeName && ("input" === i.activeElement.nodeName.toLowerCase() || "textarea" === i.activeElement.nodeName.toLowerCase()))) { if (this.params.keyboard.onlyInViewport && (o || l || d || h || e || n)) { var p = !1; if (0 < this.$el.parents("." + this.params.slideClass).length && 0 === this.$el.parents("." + this.params.slideActiveClass).length) return; var u = t.innerWidth, c = t.innerHeight, t = this.$el.offset(); s && (t.left -= this.$el[0].scrollLeft); for (var m = [[t.left, t.top], [t.left + this.width, t.top], [t.left, t.top + this.height], [t.left + this.width, t.top + this.height]], f = 0; f < m.length; f += 1) { var v = m[f]; 0 <= v[0] && v[0] <= u && 0 <= v[1] && v[1] <= c && (p = !0) } if (!p) return } this.isHorizontal() ? ((o || l || d || h) && (a.preventDefault ? a.preventDefault() : a.returnValue = !1), ((l || h) && !s || (o || d) && s) && this.slideNext(), ((o || d) && !s || (l || h) && s) && this.slidePrev()) : ((o || l || e || n) && (a.preventDefault ? a.preventDefault() : a.returnValue = !1), (l || n) && this.slideNext(), (o || e) && this.slidePrev()), this.emit("keyPress", r) } }, enable: function () { var e = g(); this.keyboard.enabled || (T(e).on("keydown", this.keyboard.handle), this.keyboard.enabled = !0) }, disable: function () { var e = g(); this.keyboard.enabled && (T(e).off("keydown", this.keyboard.handle), this.keyboard.enabled = !1) } }, k = { name: "keyboard", params: { keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } }, create: function () { w(this, { keyboard: t({ enabled: !1 }, X) }) }, on: { init: function (e) { e.params.keyboard.enabled && e.keyboard.enable() }, destroy: function (e) { e.keyboard.enabled && e.keyboard.disable() } } }, Y = { lastScrollTime: C(), lastEventBeforeSnap: void 0, recentWheelEvents: [], event: function () { return -1 < j().navigator.userAgent.indexOf("firefox") ? "DOMMouseScroll" : (t = g(), (i = "onwheel" in t) || ((e = t.createElement("div")).setAttribute("onwheel", "return;"), i = "function" == typeof e.onwheel), (i = !i && t.implementation && t.implementation.hasFeature && !0 !== t.implementation.hasFeature("", "") ? t.implementation.hasFeature("Events.wheel", "3.0") : i) ? "wheel" : "mousewheel"); var e, t, i }, normalize: function (e) { var t = 0, i = 0, s = 0, a = 0; return "detail" in e && (i = e.detail), "wheelDelta" in e && (i = -e.wheelDelta / 120), "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (t = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (t = i, i = 0), s = 10 * t, a = 10 * i, "deltaY" in e && (a = e.deltaY), "deltaX" in e && (s = e.deltaX), e.shiftKey && !s && (s = a, a = 0), (s || a) && e.deltaMode && (1 === e.deltaMode ? (s *= 40, a *= 40) : (s *= 800, a *= 800)), { spinX: t = s && !t ? s < 1 ? -1 : 1 : t, spinY: i = a && !i ? a < 1 ? -1 : 1 : i, pixelX: s, pixelY: a } }, handleMouseEnter: function () { this.mouseEntered = !0 }, handleMouseLeave: function () { this.mouseEntered = !1 }, handle: function (e) { var t = e, i = this, s = i.params.mousewheel; i.params.cssMode && t.preventDefault(); var a = i.$el; if ("container" !== i.params.mousewheel.eventsTarget && (a = T(i.params.mousewheel.eventsTarget)), !i.mouseEntered && !a[0].contains(t.target) && !s.releaseOnEdges) return !0; t.originalEvent && (t = t.originalEvent); var r = 0, n = i.rtlTranslate ? -1 : 1, a = Y.normalize(t); if (s.forceToAxis) if (i.isHorizontal()) { if (!(Math.abs(a.pixelX) > Math.abs(a.pixelY))) return !0; r = -a.pixelX * n } else { if (!(Math.abs(a.pixelY) > Math.abs(a.pixelX))) return !0; r = -a.pixelY } else r = Math.abs(a.pixelX) > Math.abs(a.pixelY) ? -a.pixelX * n : -a.pixelY; if (0 === r) return !0; if (s.invert && (r = -r), i.params.freeMode) { var o = { time: C(), delta: Math.abs(r), direction: Math.sign(r) }, n = i.mousewheel.lastEventBeforeSnap, a = n && o.time < n.time + 500 && o.delta <= n.delta && o.direction === n.direction; if (!a) { i.mousewheel.lastEventBeforeSnap = void 0, i.params.loop && i.loopFix(); var l, d, h = i.getTranslate() + r * s.sensitivity, n = i.isBeginning, s = i.isEnd; if ((h = h >= i.minTranslate() ? i.minTranslate() : h) <= i.maxTranslate() && (h = i.maxTranslate()), i.setTransition(0), i.setTranslate(h), i.updateProgress(), i.updateActiveIndex(), i.updateSlidesClasses(), (!n && i.isBeginning || !s && i.isEnd) && i.updateSlidesClasses(), i.params.freeModeSticky && (clearTimeout(i.mousewheel.timeout), i.mousewheel.timeout = void 0, 15 <= (l = i.mousewheel.recentWheelEvents).length && l.shift(), n = l.length ? l[l.length - 1] : void 0, s = l[0], l.push(o), n && (o.delta > n.delta || o.direction !== n.direction) ? l.splice(0) : 15 <= l.length && o.time - s.time < 500 && 1 <= s.delta - o.delta && o.delta <= 6 && (d = 0 < r ? .8 : .2, i.mousewheel.lastEventBeforeSnap = o, l.splice(0), i.mousewheel.timeout = S(function () { i.slideToClosest(i.params.speed, !0, void 0, d) }, 0)), i.mousewheel.timeout || (i.mousewheel.timeout = S(function () { i.mousewheel.lastEventBeforeSnap = o, l.splice(0), i.slideToClosest(i.params.speed, !0, void 0, .5) }, 500))), a || i.emit("scroll", t), i.params.autoplay && i.params.autoplayDisableOnInteraction && i.autoplay.stop(), h === i.minTranslate() || h === i.maxTranslate()) return !0 } } else { h = { time: C(), delta: Math.abs(r), direction: Math.sign(r), raw: e }, r = i.mousewheel.recentWheelEvents; 2 <= r.length && r.shift(); e = r.length ? r[r.length - 1] : void 0; if (r.push(h), (!e || h.direction !== e.direction || h.delta > e.delta || h.time > e.time + 150) && i.mousewheel.animateSlider(h), i.mousewheel.releaseScroll(h)) return !0 } return t.preventDefault ? t.preventDefault() : t.returnValue = !1, !1 }, animateSlider: function (e) { var t = j(); return !(this.params.mousewheel.thresholdDelta && e.delta < this.params.mousewheel.thresholdDelta || this.params.mousewheel.thresholdTime && C() - this.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime || !(6 <= e.delta && C() - this.mousewheel.lastScrollTime < 60) && (e.direction < 0 ? this.isEnd && !this.params.loop || this.animating || (this.slideNext(), this.emit("scroll", e.raw)) : this.isBeginning && !this.params.loop || this.animating || (this.slidePrev(), this.emit("scroll", e.raw)), this.mousewheel.lastScrollTime = (new t.Date).getTime(), 1)) }, releaseScroll: function (e) { var t = this.params.mousewheel; if (e.direction < 0) { if (this.isEnd && !this.params.loop && t.releaseOnEdges) return !0 } else if (this.isBeginning && !this.params.loop && t.releaseOnEdges) return !0; return !1 }, enable: function () { var e = Y.event(); if (this.params.cssMode) return this.wrapperEl.removeEventListener(e, this.mousewheel.handle), !0; if (!e) return !1; if (this.mousewheel.enabled) return !1; var t = this.$el; return (t = "container" !== this.params.mousewheel.eventsTarget ? T(this.params.mousewheel.eventsTarget) : t).on("mouseenter", this.mousewheel.handleMouseEnter), t.on("mouseleave", this.mousewheel.handleMouseLeave), t.on(e, this.mousewheel.handle), this.mousewheel.enabled = !0 }, disable: function () { var e = Y.event(); if (this.params.cssMode) return this.wrapperEl.addEventListener(e, this.mousewheel.handle), !0; if (!e) return !1; if (!this.mousewheel.enabled) return !1; var t = this.$el; return (t = "container" !== this.params.mousewheel.eventsTarget ? T(this.params.mousewheel.eventsTarget) : t).off(e, this.mousewheel.handle), !(this.mousewheel.enabled = !1) } }, V = { update: function () { var e, t, i = this.params.navigation; this.params.loop || (e = (t = this.navigation).$nextEl, (t = t.$prevEl) && 0 < t.length && (this.isBeginning ? t.addClass(i.disabledClass) : t.removeClass(i.disabledClass), t[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](i.lockClass)), e && 0 < e.length && (this.isEnd ? e.addClass(i.disabledClass) : e.removeClass(i.disabledClass), e[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](i.lockClass))) }, onPrevClick: function (e) { e.preventDefault(), this.isBeginning && !this.params.loop || this.slidePrev() }, onNextClick: function (e) { e.preventDefault(), this.isEnd && !this.params.loop || this.slideNext() }, init: function () { var e, t, i = this.params.navigation; (i.nextEl || i.prevEl) && (i.nextEl && (e = T(i.nextEl), this.params.uniqueNavElements && "string" == typeof i.nextEl && 1 < e.length && 1 === this.$el.find(i.nextEl).length && (e = this.$el.find(i.nextEl))), i.prevEl && (t = T(i.prevEl), this.params.uniqueNavElements && "string" == typeof i.prevEl && 1 < t.length && 1 === this.$el.find(i.prevEl).length && (t = this.$el.find(i.prevEl))), e && 0 < e.length && e.on("click", this.navigation.onNextClick), t && 0 < t.length && t.on("click", this.navigation.onPrevClick), U(this.navigation, { $nextEl: e, nextEl: e && e[0], $prevEl: t, prevEl: t && t[0] })) }, destroy: function () { var e = this.navigation, t = e.$nextEl, e = e.$prevEl; t && t.length && (t.off("click", this.navigation.onNextClick), t.removeClass(this.params.navigation.disabledClass)), e && e.length && (e.off("click", this.navigation.onPrevClick), e.removeClass(this.params.navigation.disabledClass)) } }, F = { update: function () { var e = this.rtl, i = this.params.pagination; if (i.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length) { var s, t = (this.virtual && this.params.virtual.enabled ? this.virtual : this).slides.length, a = this.pagination.$el, r = this.params.loop ? Math.ceil((t - 2 * this.loopedSlides) / this.params.slidesPerGroup) : this.snapGrid.length; if (this.params.loop ? ((s = Math.ceil((this.activeIndex - this.loopedSlides) / this.params.slidesPerGroup)) > t - 1 - 2 * this.loopedSlides && (s -= t - 2 * this.loopedSlides), r - 1 < s && (s -= r), s < 0 && "bullets" !== this.params.paginationType && (s = r + s)) : s = void 0 !== this.snapIndex ? this.snapIndex : this.activeIndex || 0, "bullets" === i.type && this.pagination.bullets && 0 < this.pagination.bullets.length) { var n, o, l, d, h, p = this.pagination.bullets; if (i.dynamicBullets && (this.pagination.bulletSize = p.eq(0)[this.isHorizontal() ? "outerWidth" : "outerHeight"](!0), a.css(this.isHorizontal() ? "width" : "height", this.pagination.bulletSize * (i.dynamicMainBullets + 4) + "px"), 1 < i.dynamicMainBullets && void 0 !== this.previousIndex && (this.pagination.dynamicBulletIndex += s - this.previousIndex, this.pagination.dynamicBulletIndex > i.dynamicMainBullets - 1 ? this.pagination.dynamicBulletIndex = i.dynamicMainBullets - 1 : this.pagination.dynamicBulletIndex < 0 && (this.pagination.dynamicBulletIndex = 0)), n = s - this.pagination.dynamicBulletIndex, l = ((o = n + (Math.min(p.length, i.dynamicMainBullets) - 1)) + n) / 2), p.removeClass(i.bulletActiveClass + " " + i.bulletActiveClass + "-next " + i.bulletActiveClass + "-next-next " + i.bulletActiveClass + "-prev " + i.bulletActiveClass + "-prev-prev " + i.bulletActiveClass + "-main"), 1 < a.length) p.each(function (e) { var t = T(e), e = t.index(); e === s && t.addClass(i.bulletActiveClass), i.dynamicBullets && (n <= e && e <= o && t.addClass(i.bulletActiveClass + "-main"), e === n && t.prev().addClass(i.bulletActiveClass + "-prev").prev().addClass(i.bulletActiveClass + "-prev-prev"), e === o && t.next().addClass(i.bulletActiveClass + "-next").next().addClass(i.bulletActiveClass + "-next-next")) }); else { var u = p.eq(s), c = u.index(); if (u.addClass(i.bulletActiveClass), i.dynamicBullets) { for (var t = p.eq(n), u = p.eq(o), m = n; m <= o; m += 1)p.eq(m).addClass(i.bulletActiveClass + "-main"); if (this.params.loop) if (c >= p.length - i.dynamicMainBullets) { for (var f = i.dynamicMainBullets; 0 <= f; --f)p.eq(p.length - f).addClass(i.bulletActiveClass + "-main"); p.eq(p.length - i.dynamicMainBullets - 1).addClass(i.bulletActiveClass + "-prev") } else t.prev().addClass(i.bulletActiveClass + "-prev").prev().addClass(i.bulletActiveClass + "-prev-prev"), u.next().addClass(i.bulletActiveClass + "-next").next().addClass(i.bulletActiveClass + "-next-next"); else t.prev().addClass(i.bulletActiveClass + "-prev").prev().addClass(i.bulletActiveClass + "-prev-prev"), u.next().addClass(i.bulletActiveClass + "-next").next().addClass(i.bulletActiveClass + "-next-next") } } i.dynamicBullets && (h = Math.min(p.length, i.dynamicMainBullets + 4), d = (this.pagination.bulletSize * h - this.pagination.bulletSize) / 2 - l * this.pagination.bulletSize, h = e ? "right" : "left", p.css(this.isHorizontal() ? h : "top", d + "px")) } "fraction" === i.type && (a.find("." + i.currentClass).text(i.formatFractionCurrent(s + 1)), a.find("." + i.totalClass).text(i.formatFractionTotal(r))), "progressbar" === i.type && (l = i.progressbarOpposite ? this.isHorizontal() ? "vertical" : "horizontal" : this.isHorizontal() ? "horizontal" : "vertical", e = (s + 1) / r, d = h = 1, "horizontal" == l ? h = e : d = e, a.find("." + i.progressbarFillClass).transform("translate3d(0,0,0) scaleX(" + h + ") scaleY(" + d + ")").transition(this.params.speed)), "custom" === i.type && i.renderCustom ? (a.html(i.renderCustom(this, s + 1, r)), this.emit("paginationRender", a[0])) : this.emit("paginationUpdate", a[0]), a[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](i.lockClass) } }, render: function () { var e = this.params.pagination; if (e.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length) { var t = (this.virtual && this.params.virtual.enabled ? this.virtual : this).slides.length, i = this.pagination.$el, s = ""; if ("bullets" === e.type) { for (var a = this.params.loop ? Math.ceil((t - 2 * this.loopedSlides) / this.params.slidesPerGroup) : this.snapGrid.length, r = 0; r < a; r += 1)e.renderBullet ? s += e.renderBullet.call(this, r, e.bulletClass) : s += "<" + e.bulletElement + ' class="' + e.bulletClass + '">' + e.bulletElement + ">"; i.html(s), this.pagination.bullets = i.find("." + e.bulletClass) } "fraction" === e.type && (s = e.renderFraction ? e.renderFraction.call(this, e.currentClass, e.totalClass) : ' / ', i.html(s)), "progressbar" === e.type && (s = e.renderProgressbar ? e.renderProgressbar.call(this, e.progressbarFillClass) : '', i.html(s)), "custom" !== e.type && this.emit("paginationRender", this.pagination.$el[0]) } }, init: function () { var e, t = this, i = t.params.pagination; !i.el || 0 !== (e = T(i.el)).length && (t.params.uniqueNavElements && "string" == typeof i.el && 1 < e.length && (e = t.$el.find(i.el)), "bullets" === i.type && i.clickable && e.addClass(i.clickableClass), e.addClass(i.modifierClass + i.type), "bullets" === i.type && i.dynamicBullets && (e.addClass("" + i.modifierClass + i.type + "-dynamic"), t.pagination.dynamicBulletIndex = 0, i.dynamicMainBullets < 1 && (i.dynamicMainBullets = 1)), "progressbar" === i.type && i.progressbarOpposite && e.addClass(i.progressbarOppositeClass), i.clickable && e.on("click", "." + i.bulletClass, function (e) { e.preventDefault(); e = T(this).index() * t.params.slidesPerGroup; t.params.loop && (e += t.loopedSlides), t.slideTo(e) }), U(t.pagination, { $el: e, el: e[0] })) }, destroy: function () { var e, t = this.params.pagination; t.el && this.pagination.el && this.pagination.$el && 0 !== this.pagination.$el.length && ((e = this.pagination.$el).removeClass(t.hiddenClass), e.removeClass(t.modifierClass + t.type), this.pagination.bullets && this.pagination.bullets.removeClass(t.bulletActiveClass), t.clickable && e.off("click", "." + t.bulletClass)) } }, W = { setTranslate: function () { var e, t, i, s, a, r, n, o; this.params.scrollbar.el && this.scrollbar.el && (n = this.scrollbar, e = this.rtlTranslate, o = this.progress, t = n.dragSize, i = n.trackSize, s = n.$dragEl, a = n.$el, r = this.params.scrollbar, o = (i - (n = t)) * o, e ? 0 < (o = -o) ? (n = t - o, o = 0) : i < -o + t && (n = i + o) : o < 0 ? (n = t + o, o = 0) : i < o + t && (n = i - o), this.isHorizontal() ? (s.transform("translate3d(" + o + "px, 0, 0)"), s[0].style.width = n + "px") : (s.transform("translate3d(0px, " + o + "px, 0)"), s[0].style.height = n + "px"), r.hide && (clearTimeout(this.scrollbar.timeout), a[0].style.opacity = 1, this.scrollbar.timeout = setTimeout(function () { a[0].style.opacity = 0, a.transition(400) }, 1e3))) }, setTransition: function (e) { this.params.scrollbar.el && this.scrollbar.el && this.scrollbar.$dragEl.transition(e) }, updateSize: function () { var e, t, i, s, a, r, n; this.params.scrollbar.el && this.scrollbar.el && (t = (e = this.scrollbar).$dragEl, i = e.$el, t[0].style.width = "", t[0].style.height = "", s = this.isHorizontal() ? i[0].offsetWidth : i[0].offsetHeight, r = (a = this.size / this.virtualSize) * (s / this.size), n = "auto" === this.params.scrollbar.dragSize ? s * a : parseInt(this.params.scrollbar.dragSize, 10), this.isHorizontal() ? t[0].style.width = n + "px" : t[0].style.height = n + "px", i[0].style.display = 1 <= a ? "none" : "", this.params.scrollbar.hide && (i[0].style.opacity = 0), U(e, { trackSize: s, divider: a, moveDivider: r, dragSize: n }), e.$el[this.params.watchOverflow && this.isLocked ? "addClass" : "removeClass"](this.params.scrollbar.lockClass)) }, getPointerPosition: function (e) { return this.isHorizontal() ? ("touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0] : e).clientX : ("touchstart" === e.type || "touchmove" === e.type ? e.targetTouches[0] : e).clientY }, setDragPosition: function (e) { var t = this.scrollbar, i = this.rtlTranslate, s = t.$el, a = t.dragSize, r = t.trackSize, n = t.dragStartPos, a = (t.getPointerPosition(e) - s.offset()[this.isHorizontal() ? "left" : "top"] - (null !== n ? n : a / 2)) / (r - a); a = Math.max(Math.min(a, 1), 0), i && (a = 1 - a); a = this.minTranslate() + (this.maxTranslate() - this.minTranslate()) * a; this.updateProgress(a), this.setTranslate(a), this.updateActiveIndex(), this.updateSlidesClasses() }, onDragStart: function (e) { var t = this.params.scrollbar, i = this.scrollbar, s = this.$wrapperEl, a = i.$el, r = i.$dragEl; this.scrollbar.isTouched = !0, this.scrollbar.dragStartPos = e.target === r[0] || e.target === r ? i.getPointerPosition(e) - e.target.getBoundingClientRect()[this.isHorizontal() ? "left" : "top"] : null, e.preventDefault(), e.stopPropagation(), s.transition(100), r.transition(100), i.setDragPosition(e), clearTimeout(this.scrollbar.dragTimeout), a.transition(0), t.hide && a.css("opacity", 1), this.params.cssMode && this.$wrapperEl.css("scroll-snap-type", "none"), this.emit("scrollbarDragStart", e) }, onDragMove: function (e) { var t = this.scrollbar, i = this.$wrapperEl, s = t.$el, a = t.$dragEl; this.scrollbar.isTouched && (e.preventDefault ? e.preventDefault() : e.returnValue = !1, t.setDragPosition(e), i.transition(0), s.transition(0), a.transition(0), this.emit("scrollbarDragMove", e)) }, onDragEnd: function (e) { var t = this.params.scrollbar, i = this.scrollbar, s = this.$wrapperEl, a = i.$el; this.scrollbar.isTouched && (this.scrollbar.isTouched = !1, this.params.cssMode && (this.$wrapperEl.css("scroll-snap-type", ""), s.transition("")), t.hide && (clearTimeout(this.scrollbar.dragTimeout), this.scrollbar.dragTimeout = S(function () { a.css("opacity", 0), a.transition(400) }, 1e3)), this.emit("scrollbarDragEnd", e), t.snapOnRelease && this.slideToClosest()) }, enableDraggable: function () { var e, t, i, s, a, r, n; this.params.scrollbar.el && (e = g(), r = this.scrollbar, t = this.touchEventsTouch, i = this.touchEventsDesktop, n = this.params, s = this.support, a = r.$el[0], r = !(!s.passiveListener || !n.passiveListeners) && { passive: !1, capture: !1 }, n = !(!s.passiveListener || !n.passiveListeners) && { passive: !0, capture: !1 }, s.touch ? (a.addEventListener(t.start, this.scrollbar.onDragStart, r), a.addEventListener(t.move, this.scrollbar.onDragMove, r), a.addEventListener(t.end, this.scrollbar.onDragEnd, n)) : (a.addEventListener(i.start, this.scrollbar.onDragStart, r), e.addEventListener(i.move, this.scrollbar.onDragMove, r), e.addEventListener(i.end, this.scrollbar.onDragEnd, n))) }, disableDraggable: function () { var e, t, i, s, a, r, n; this.params.scrollbar.el && (e = g(), r = this.scrollbar, t = this.touchEventsTouch, i = this.touchEventsDesktop, n = this.params, s = this.support, a = r.$el[0], r = !(!s.passiveListener || !n.passiveListeners) && { passive: !1, capture: !1 }, n = !(!s.passiveListener || !n.passiveListeners) && { passive: !0, capture: !1 }, s.touch ? (a.removeEventListener(t.start, this.scrollbar.onDragStart, r), a.removeEventListener(t.move, this.scrollbar.onDragMove, r), a.removeEventListener(t.end, this.scrollbar.onDragEnd, n)) : (a.removeEventListener(i.start, this.scrollbar.onDragStart, r), e.removeEventListener(i.move, this.scrollbar.onDragMove, r), e.removeEventListener(i.end, this.scrollbar.onDragEnd, n))) }, init: function () { var e, t, i, s; this.params.scrollbar.el && (e = this.scrollbar, s = this.$el, i = T((t = this.params.scrollbar).el), 0 === (s = (i = this.params.uniqueNavElements && "string" == typeof t.el && 1 < i.length && 1 === s.find(t.el).length ? s.find(t.el) : i).find("." + this.params.scrollbar.dragClass)).length && (s = T(''), i.append(s)), U(e, { $el: i, el: i[0], $dragEl: s, dragEl: s[0] }), t.draggable && e.enableDraggable()) }, destroy: function () { this.scrollbar.disableDraggable() } }, R = { setTransform: function (e, t) { var i = this.rtl, s = T(e), a = i ? -1 : 1, r = s.attr("data-swiper-parallax") || "0", n = s.attr("data-swiper-parallax-x"), o = s.attr("data-swiper-parallax-y"), e = s.attr("data-swiper-parallax-scale"), i = s.attr("data-swiper-parallax-opacity"); n || o ? (n = n || "0", o = o || "0") : this.isHorizontal() ? (n = r, o = "0") : (o = r, n = "0"), n = 0 <= n.indexOf("%") ? parseInt(n, 10) * t * a + "%" : n * t * a + "px", o = 0 <= o.indexOf("%") ? parseInt(o, 10) * t + "%" : o * t + "px", null != i && (i = i - (i - 1) * (1 - Math.abs(t)), s[0].style.opacity = i), null == e ? s.transform("translate3d(" + n + ", " + o + ", 0px)") : (t = e - (e - 1) * (1 - Math.abs(t)), s.transform("translate3d(" + n + ", " + o + ", 0px) scale(" + t + ")")) }, setTranslate: function () { var s = this, e = s.$el, t = s.slides, a = s.progress, r = s.snapGrid; e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function (e) { s.parallax.setTransform(e, a) }), t.each(function (e, t) { var i = e.progress; 1 < s.params.slidesPerGroup && "auto" !== s.params.slidesPerView && (i += Math.ceil(t / 2) - a * (r.length - 1)), i = Math.min(Math.max(i, -1), 1), T(e).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function (e) { s.parallax.setTransform(e, i) }) }) }, setTransition: function (i) { void 0 === i && (i = this.params.speed), this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each(function (e) { var t = T(e), e = parseInt(t.attr("data-swiper-parallax-duration"), 10) || i; 0 === i && (e = 0), t.transition(e) }) } }, q = { getDistanceBetweenTouches: function (e) { if (e.targetTouches.length < 2) return 1; var t = e.targetTouches[0].pageX, i = e.targetTouches[0].pageY, s = e.targetTouches[1].pageX, e = e.targetTouches[1].pageY; return Math.sqrt(Math.pow(s - t, 2) + Math.pow(e - i, 2)) }, onGestureStart: function (e) { var t = this.support, i = this.params.zoom, s = this.zoom, a = s.gesture; if (s.fakeGestureTouched = !1, s.fakeGestureMoved = !1, !t.gestures) { if ("touchstart" !== e.type || "touchstart" === e.type && e.targetTouches.length < 2) return; s.fakeGestureTouched = !0, a.scaleStart = q.getDistanceBetweenTouches(e) } a.$slideEl && a.$slideEl.length || (a.$slideEl = T(e.target).closest("." + this.params.slideClass), 0 === a.$slideEl.length && (a.$slideEl = this.slides.eq(this.activeIndex)), a.$imageEl = a.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"), a.$imageWrapEl = a.$imageEl.parent("." + i.containerClass), a.maxRatio = a.$imageWrapEl.attr("data-swiper-zoom") || i.maxRatio, 0 !== a.$imageWrapEl.length) ? (a.$imageEl && a.$imageEl.transition(0), this.zoom.isScaling = !0) : a.$imageEl = void 0 }, onGestureChange: function (e) { var t = this.support, i = this.params.zoom, s = this.zoom, a = s.gesture; if (!t.gestures) { if ("touchmove" !== e.type || "touchmove" === e.type && e.targetTouches.length < 2) return; s.fakeGestureMoved = !0, a.scaleMove = q.getDistanceBetweenTouches(e) } a.$imageEl && 0 !== a.$imageEl.length ? (t.gestures ? s.scale = e.scale * s.currentScale : s.scale = a.scaleMove / a.scaleStart * s.currentScale, s.scale > a.maxRatio && (s.scale = a.maxRatio - 1 + Math.pow(s.scale - a.maxRatio + 1, .5)), s.scale < i.minRatio && (s.scale = i.minRatio + 1 - Math.pow(i.minRatio - s.scale + 1, .5)), a.$imageEl.transform("translate3d(0,0,0) scale(" + s.scale + ")")) : "gesturechange" === e.type && s.onGestureStart(e) }, onGestureEnd: function (e) { var t = this.device, i = this.support, s = this.params.zoom, a = this.zoom, r = a.gesture; if (!i.gestures) { if (!a.fakeGestureTouched || !a.fakeGestureMoved) return; if ("touchend" !== e.type || "touchend" === e.type && e.changedTouches.length < 2 && !t.android) return; a.fakeGestureTouched = !1, a.fakeGestureMoved = !1 } r.$imageEl && 0 !== r.$imageEl.length && (a.scale = Math.max(Math.min(a.scale, r.maxRatio), s.minRatio), r.$imageEl.transition(this.params.speed).transform("translate3d(0,0,0) scale(" + a.scale + ")"), a.currentScale = a.scale, a.isScaling = !1, 1 === a.scale && (r.$slideEl = void 0)) }, onTouchStart: function (e) { var t = this.device, i = this.zoom, s = i.gesture, i = i.image; s.$imageEl && 0 !== s.$imageEl.length && (i.isTouched || (t.android && e.cancelable && e.preventDefault(), i.isTouched = !0, i.touchesStart.x = ("touchstart" === e.type ? e.targetTouches[0] : e).pageX, i.touchesStart.y = ("touchstart" === e.type ? e.targetTouches[0] : e).pageY)) }, onTouchMove: function (e) { var t = this.zoom, i = t.gesture, s = t.image, a = t.velocity; if (i.$imageEl && 0 !== i.$imageEl.length && (this.allowClick = !1, s.isTouched && i.$slideEl)) { s.isMoved || (s.width = i.$imageEl[0].offsetWidth, s.height = i.$imageEl[0].offsetHeight, s.startX = b(i.$imageWrapEl[0], "x") || 0, s.startY = b(i.$imageWrapEl[0], "y") || 0, i.slideWidth = i.$slideEl[0].offsetWidth, i.slideHeight = i.$slideEl[0].offsetHeight, i.$imageWrapEl.transition(0), this.rtl && (s.startX = -s.startX, s.startY = -s.startY)); var r = s.width * t.scale, n = s.height * t.scale; if (!(r < i.slideWidth && n < i.slideHeight)) { if (s.minX = Math.min(i.slideWidth / 2 - r / 2, 0), s.maxX = -s.minX, s.minY = Math.min(i.slideHeight / 2 - n / 2, 0), s.maxY = -s.minY, s.touchesCurrent.x = ("touchmove" === e.type ? e.targetTouches[0] : e).pageX, s.touchesCurrent.y = ("touchmove" === e.type ? e.targetTouches[0] : e).pageY, !s.isMoved && !t.isScaling) { if (this.isHorizontal() && (Math.floor(s.minX) === Math.floor(s.startX) && s.touchesCurrent.x < s.touchesStart.x || Math.floor(s.maxX) === Math.floor(s.startX) && s.touchesCurrent.x > s.touchesStart.x)) return void (s.isTouched = !1); if (!this.isHorizontal() && (Math.floor(s.minY) === Math.floor(s.startY) && s.touchesCurrent.y < s.touchesStart.y || Math.floor(s.maxY) === Math.floor(s.startY) && s.touchesCurrent.y > s.touchesStart.y)) return void (s.isTouched = !1) } e.cancelable && e.preventDefault(), e.stopPropagation(), s.isMoved = !0, s.currentX = s.touchesCurrent.x - s.touchesStart.x + s.startX, s.currentY = s.touchesCurrent.y - s.touchesStart.y + s.startY, s.currentX < s.minX && (s.currentX = s.minX + 1 - Math.pow(s.minX - s.currentX + 1, .8)), s.currentX > s.maxX && (s.currentX = s.maxX - 1 + Math.pow(s.currentX - s.maxX + 1, .8)), s.currentY < s.minY && (s.currentY = s.minY + 1 - Math.pow(s.minY - s.currentY + 1, .8)), s.currentY > s.maxY && (s.currentY = s.maxY - 1 + Math.pow(s.currentY - s.maxY + 1, .8)), a.prevPositionX || (a.prevPositionX = s.touchesCurrent.x), a.prevPositionY || (a.prevPositionY = s.touchesCurrent.y), a.prevTime || (a.prevTime = Date.now()), a.x = (s.touchesCurrent.x - a.prevPositionX) / (Date.now() - a.prevTime) / 2, a.y = (s.touchesCurrent.y - a.prevPositionY) / (Date.now() - a.prevTime) / 2, Math.abs(s.touchesCurrent.x - a.prevPositionX) < 2 && (a.x = 0), Math.abs(s.touchesCurrent.y - a.prevPositionY) < 2 && (a.y = 0), a.prevPositionX = s.touchesCurrent.x, a.prevPositionY = s.touchesCurrent.y, a.prevTime = Date.now(), i.$imageWrapEl.transform("translate3d(" + s.currentX + "px, " + s.currentY + "px,0)") } } }, onTouchEnd: function () { var e = this.zoom, t = e.gesture, i = e.image, s = e.velocity; if (t.$imageEl && 0 !== t.$imageEl.length) { if (!i.isTouched || !i.isMoved) return i.isTouched = !1, void (i.isMoved = !1); i.isTouched = !1, i.isMoved = !1; var a = 300, r = 300, n = s.x * a, o = i.currentX + n, n = s.y * r, n = i.currentY + n; 0 !== s.x && (a = Math.abs((o - i.currentX) / s.x)), 0 !== s.y && (r = Math.abs((n - i.currentY) / s.y)); r = Math.max(a, r); i.currentX = o, i.currentY = n; n = i.width * e.scale, e = i.height * e.scale; i.minX = Math.min(t.slideWidth / 2 - n / 2, 0), i.maxX = -i.minX, i.minY = Math.min(t.slideHeight / 2 - e / 2, 0), i.maxY = -i.minY, i.currentX = Math.max(Math.min(i.currentX, i.maxX), i.minX), i.currentY = Math.max(Math.min(i.currentY, i.maxY), i.minY), t.$imageWrapEl.transition(r).transform("translate3d(" + i.currentX + "px, " + i.currentY + "px,0)") } }, onTransitionEnd: function () { var e = this.zoom, t = e.gesture; t.$slideEl && this.previousIndex !== this.activeIndex && (t.$imageEl && t.$imageEl.transform("translate3d(0,0,0) scale(1)"), t.$imageWrapEl && t.$imageWrapEl.transform("translate3d(0,0,0)"), e.scale = 1, e.currentScale = 1, t.$slideEl = void 0, t.$imageEl = void 0, t.$imageWrapEl = void 0) }, toggle: function (e) { var t = this.zoom; t.scale && 1 !== t.scale ? t.out() : t.in(e) }, in: function (e) { var t, i, s, a = this.zoom, r = this.params.zoom, n = a.gesture, o = a.image; n.$slideEl || (this.params.virtual && this.params.virtual.enabled && this.virtual ? n.$slideEl = this.$wrapperEl.children("." + this.params.slideActiveClass) : n.$slideEl = this.slides.eq(this.activeIndex), n.$imageEl = n.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"), n.$imageWrapEl = n.$imageEl.parent("." + r.containerClass)), n.$imageEl && 0 !== n.$imageEl.length && (n.$slideEl.addClass("" + r.zoomedSlideClass), o = void 0 === o.touchesStart.x && e ? (s = ("touchend" === e.type ? e.changedTouches[0] : e).pageX, ("touchend" === e.type ? e.changedTouches[0] : e).pageY) : (s = o.touchesStart.x, o.touchesStart.y), a.scale = n.$imageWrapEl.attr("data-swiper-zoom") || r.maxRatio, a.currentScale = n.$imageWrapEl.attr("data-swiper-zoom") || r.maxRatio, e ? (r = n.$slideEl[0].offsetWidth, e = n.$slideEl[0].offsetHeight, t = n.$slideEl.offset().left + r / 2 - s, i = n.$slideEl.offset().top + e / 2 - o, s = n.$imageEl[0].offsetWidth, o = n.$imageEl[0].offsetHeight, s = s * a.scale, o = o * a.scale, s = -(r = Math.min(r / 2 - s / 2, 0)), o = -(e = Math.min(e / 2 - o / 2, 0)), s < (t = (t = t * a.scale) < r ? r : t) && (t = s), o < (i = (i = i * a.scale) < e ? e : i) && (i = o)) : i = t = 0, n.$imageWrapEl.transition(300).transform("translate3d(" + t + "px, " + i + "px,0)"), n.$imageEl.transition(300).transform("translate3d(0,0,0) scale(" + a.scale + ")")) }, out: function () { var e = this.zoom, t = this.params.zoom, i = e.gesture; i.$slideEl || (this.params.virtual && this.params.virtual.enabled && this.virtual ? i.$slideEl = this.$wrapperEl.children("." + this.params.slideActiveClass) : i.$slideEl = this.slides.eq(this.activeIndex), i.$imageEl = i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"), i.$imageWrapEl = i.$imageEl.parent("." + t.containerClass)), i.$imageEl && 0 !== i.$imageEl.length && (e.scale = 1, e.currentScale = 1, i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"), i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"), i.$slideEl.removeClass("" + t.zoomedSlideClass), i.$slideEl = void 0) }, toggleGestures: function (e) { var t = this.zoom, i = t.slideSelector, s = t.passiveListener; this.$wrapperEl[e]("gesturestart", i, t.onGestureStart, s), this.$wrapperEl[e]("gesturechange", i, t.onGestureChange, s), this.$wrapperEl[e]("gestureend", i, t.onGestureEnd, s) }, enableGestures: function () { this.zoom.gesturesEnabled || (this.zoom.gesturesEnabled = !0, this.zoom.toggleGestures("on")) }, disableGestures: function () { this.zoom.gesturesEnabled && (this.zoom.gesturesEnabled = !1, this.zoom.toggleGestures("off")) }, enable: function () { var e, t, i, s = this.support, a = this.zoom; a.enabled || (a.enabled = !0, e = !("touchstart" !== this.touchEvents.start || !s.passiveListener || !this.params.passiveListeners) && { passive: !0, capture: !1 }, t = !s.passiveListener || { passive: !1, capture: !0 }, i = "." + this.params.slideClass, this.zoom.passiveListener = e, this.zoom.slideSelector = i, s.gestures ? (this.$wrapperEl.on(this.touchEvents.start, this.zoom.enableGestures, e), this.$wrapperEl.on(this.touchEvents.end, this.zoom.disableGestures, e)) : "touchstart" === this.touchEvents.start && (this.$wrapperEl.on(this.touchEvents.start, i, a.onGestureStart, e), this.$wrapperEl.on(this.touchEvents.move, i, a.onGestureChange, t), this.$wrapperEl.on(this.touchEvents.end, i, a.onGestureEnd, e), this.touchEvents.cancel && this.$wrapperEl.on(this.touchEvents.cancel, i, a.onGestureEnd, e)), this.$wrapperEl.on(this.touchEvents.move, "." + this.params.zoom.containerClass, a.onTouchMove, t)) }, disable: function () { var e, t, i, s, a = this.zoom; a.enabled && (e = this.support, this.zoom.enabled = !1, t = !("touchstart" !== this.touchEvents.start || !e.passiveListener || !this.params.passiveListeners) && { passive: !0, capture: !1 }, i = !e.passiveListener || { passive: !1, capture: !0 }, s = "." + this.params.slideClass, e.gestures ? (this.$wrapperEl.off(this.touchEvents.start, this.zoom.enableGestures, t), this.$wrapperEl.off(this.touchEvents.end, this.zoom.disableGestures, t)) : "touchstart" === this.touchEvents.start && (this.$wrapperEl.off(this.touchEvents.start, s, a.onGestureStart, t), this.$wrapperEl.off(this.touchEvents.move, s, a.onGestureChange, i), this.$wrapperEl.off(this.touchEvents.end, s, a.onGestureEnd, t), this.touchEvents.cancel && this.$wrapperEl.off(this.touchEvents.cancel, s, a.onGestureEnd, t)), this.$wrapperEl.off(this.touchEvents.move, "." + this.params.zoom.containerClass, a.onTouchMove, i)) } }, _ = { loadInSlide: function (e, l) { void 0 === l && (l = !0); var d, h = this, p = h.params.lazy; void 0 !== e && 0 !== h.slides.length && (e = (d = h.virtual && h.params.virtual.enabled ? h.$wrapperEl.children("." + h.params.slideClass + '[data-swiper-slide-index="' + e + '"]') : h.slides.eq(e)).find("." + p.elementClass + ":not(." + p.loadedClass + "):not(." + p.loadingClass + ")"), !d.hasClass(p.elementClass) || d.hasClass(p.loadedClass) || d.hasClass(p.loadingClass) || e.push(d[0]), 0 !== e.length && e.each(function (e) { var i = T(e); i.addClass(p.loadingClass); var s = i.attr("data-background"), a = i.attr("data-src"), r = i.attr("data-srcset"), n = i.attr("data-sizes"), o = i.parent("picture"); h.loadImage(i[0], a || s, r, n, !1, function () { var e, t; null == h || !h || h && !h.params || h.destroyed || (s ? (i.css("background-image", 'url("' + s + '")'), i.removeAttr("data-background")) : (r && (i.attr("srcset", r), i.removeAttr("data-srcset")), n && (i.attr("sizes", n), i.removeAttr("data-sizes")), o.length && o.children("source").each(function (e) { e = T(e); e.attr("data-srcset") && (e.attr("srcset", e.attr("data-srcset")), e.removeAttr("data-srcset")) }), a && (i.attr("src", a), i.removeAttr("data-src"))), i.addClass(p.loadedClass).removeClass(p.loadingClass), d.find("." + p.preloaderClass).remove(), h.params.loop && l && (t = d.attr("data-swiper-slide-index"), d.hasClass(h.params.slideDuplicateClass) ? (e = h.$wrapperEl.children('[data-swiper-slide-index="' + t + '"]:not(.' + h.params.slideDuplicateClass + ")"), h.lazy.loadInSlide(e.index(), !1)) : (t = h.$wrapperEl.children("." + h.params.slideDuplicateClass + '[data-swiper-slide-index="' + t + '"]'), h.lazy.loadInSlide(t.index(), !1))), h.emit("lazyImageReady", d[0], i[0]), h.params.autoHeight && h.updateAutoHeight()) }), h.emit("lazyImageLoad", d[0], i[0]) })) }, load: function () { var t = this, i = t.$wrapperEl, s = t.params, a = t.slides, e = t.activeIndex, r = t.virtual && s.virtual.enabled, n = s.lazy, o = s.slidesPerView; function l(e) { if (r) { if (i.children("." + s.slideClass + '[data-swiper-slide-index="' + e + '"]').length) return 1 } else if (a[e]) return 1 } function d(e) { return r ? T(e).attr("data-swiper-slide-index") : T(e).index() } if ("auto" === o && (o = 0), t.lazy.initialImageLoaded || (t.lazy.initialImageLoaded = !0), t.params.watchSlidesVisibility) i.children("." + s.slideVisibleClass).each(function (e) { e = r ? T(e).attr("data-swiper-slide-index") : T(e).index(); t.lazy.loadInSlide(e) }); else if (1 < o) for (var h = e; h < e + o; h += 1)l(h) && t.lazy.loadInSlide(h); else t.lazy.loadInSlide(e); if (n.loadPrevNext) if (1 < o || n.loadPrevNextAmount && 1 < n.loadPrevNextAmount) { for (var p = n.loadPrevNextAmount, n = o, u = Math.min(e + n + Math.max(p, n), a.length), p = Math.max(e - Math.max(n, p), 0), c = e + o; c < u; c += 1)l(c) && t.lazy.loadInSlide(c); for (var m = p; m < e; m += 1)l(m) && t.lazy.loadInSlide(m) } else { p = i.children("." + s.slideNextClass); 0 < p.length && t.lazy.loadInSlide(d(p)); p = i.children("." + s.slidePrevClass); 0 < p.length && t.lazy.loadInSlide(d(p)) } } }, K = { LinearSpline: function (e, t) { var i, s, a, r, n; return this.x = e, this.y = t, this.lastIndex = e.length - 1, this.interpolate = function (e) { return e ? (n = function (e, t) { for (s = -1, i = e.length; 1 < i - s;)e[a = i + s >> 1] <= t ? s = a : i = a; return i }(this.x, e), r = n - 1, (e - this.x[r]) * (this.y[n] - this.y[r]) / (this.x[n] - this.x[r]) + this.y[r]) : 0 }, this }, getInterpolateFunction: function (e) { this.controller.spline || (this.controller.spline = this.params.loop ? new K.LinearSpline(this.slidesGrid, e.slidesGrid) : new K.LinearSpline(this.snapGrid, e.snapGrid)) }, setTranslate: function (e, t) { var i, s, a = this, r = a.controller.control, n = a.constructor; function o(e) { var t = a.rtlTranslate ? -a.translate : a.translate; "slide" === a.params.controller.by && (a.controller.getInterpolateFunction(e), s = -a.controller.spline.interpolate(-t)), s && "container" !== a.params.controller.by || (i = (e.maxTranslate() - e.minTranslate()) / (a.maxTranslate() - a.minTranslate()), s = (t - a.minTranslate()) * i + e.minTranslate()), a.params.controller.inverse && (s = e.maxTranslate() - s), e.updateProgress(s), e.setTranslate(s, a), e.updateActiveIndex(), e.updateSlidesClasses() } if (Array.isArray(r)) for (var l = 0; l < r.length; l += 1)r[l] !== t && r[l] instanceof n && o(r[l]); else r instanceof n && t !== r && o(r) }, setTransition: function (t, e) { var i, s = this, a = s.constructor, r = s.controller.control; function n(e) { e.setTransition(t, s), 0 !== t && (e.transitionStart(), e.params.autoHeight && S(function () { e.updateAutoHeight() }), e.$wrapperEl.transitionEnd(function () { r && (e.params.loop && "slide" === s.params.controller.by && e.loopFix(), e.transitionEnd()) })) } if (Array.isArray(r)) for (i = 0; i < r.length; i += 1)r[i] !== e && r[i] instanceof a && n(r[i]); else r instanceof a && e !== r && n(r) } }, Z = { makeElFocusable: function (e) { return e.attr("tabIndex", "0"), e }, makeElNotFocusable: function (e) { return e.attr("tabIndex", "-1"), e }, addElRole: function (e, t) { return e.attr("role", t), e }, addElLabel: function (e, t) { return e.attr("aria-label", t), e }, disableEl: function (e) { return e.attr("aria-disabled", !0), e }, enableEl: function (e) { return e.attr("aria-disabled", !1), e }, onEnterKey: function (e) { var t = this.params.a11y; 13 === e.keyCode && (e = T(e.target), this.navigation && this.navigation.$nextEl && e.is(this.navigation.$nextEl) && (this.isEnd && !this.params.loop || this.slideNext(), this.isEnd ? this.a11y.notify(t.lastSlideMessage) : this.a11y.notify(t.nextSlideMessage)), this.navigation && this.navigation.$prevEl && e.is(this.navigation.$prevEl) && (this.isBeginning && !this.params.loop || this.slidePrev(), this.isBeginning ? this.a11y.notify(t.firstSlideMessage) : this.a11y.notify(t.prevSlideMessage)), this.pagination && e.is("." + this.params.pagination.bulletClass) && e[0].click()) }, notify: function (e) { var t = this.a11y.liveRegion; 0 !== t.length && (t.html(""), t.html(e)) }, updateNavigation: function () { var e, t; !this.params.loop && this.navigation && (e = (t = this.navigation).$nextEl, (t = t.$prevEl) && 0 < t.length && (this.isBeginning ? (this.a11y.disableEl(t), this.a11y.makeElNotFocusable(t)) : (this.a11y.enableEl(t), this.a11y.makeElFocusable(t))), e && 0 < e.length && (this.isEnd ? (this.a11y.disableEl(e), this.a11y.makeElNotFocusable(e)) : (this.a11y.enableEl(e), this.a11y.makeElFocusable(e)))) }, updatePagination: function () { var t = this, i = t.params.a11y; t.pagination && t.params.pagination.clickable && t.pagination.bullets && t.pagination.bullets.length && t.pagination.bullets.each(function (e) { e = T(e); t.a11y.makeElFocusable(e), t.a11y.addElRole(e, "button"), t.a11y.addElLabel(e, i.paginationBulletMessage.replace(/\{\{index\}\}/, e.index() + 1)) }) }, init: function () { this.$el.append(this.a11y.liveRegion); var e, t, i = this.params.a11y; this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl), this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl), e && (this.a11y.makeElFocusable(e), this.a11y.addElRole(e, "button"), this.a11y.addElLabel(e, i.nextSlideMessage), e.on("keydown", this.a11y.onEnterKey)), t && (this.a11y.makeElFocusable(t), this.a11y.addElRole(t, "button"), this.a11y.addElLabel(t, i.prevSlideMessage), t.on("keydown", this.a11y.onEnterKey)), this.pagination && this.params.pagination.clickable && this.pagination.bullets && this.pagination.bullets.length && this.pagination.$el.on("keydown", "." + this.params.pagination.bulletClass, this.a11y.onEnterKey) }, destroy: function () { var e, t; this.a11y.liveRegion && 0 < this.a11y.liveRegion.length && this.a11y.liveRegion.remove(), this.navigation && this.navigation.$nextEl && (e = this.navigation.$nextEl), this.navigation && this.navigation.$prevEl && (t = this.navigation.$prevEl), e && e.off("keydown", this.a11y.onEnterKey), t && t.off("keydown", this.a11y.onEnterKey), this.pagination && this.params.pagination.clickable && this.pagination.bullets && this.pagination.bullets.length && this.pagination.$el.off("keydown", "." + this.params.pagination.bulletClass, this.a11y.onEnterKey) } }, J = { init: function () { var e = j(); if (this.params.history) { if (!e.history || !e.history.pushState) return this.params.history.enabled = !1, void (this.params.hashNavigation.enabled = !0); var t = this.history; t.initialized = !0, t.paths = J.getPathValues(this.params.url), (t.paths.key || t.paths.value) && (t.scrollToSlide(0, t.paths.value, this.params.runCallbacksOnInit), this.params.history.replaceState || e.addEventListener("popstate", this.history.setHistoryPopState)) } }, destroy: function () { var e = j(); this.params.history.replaceState || e.removeEventListener("popstate", this.history.setHistoryPopState) }, setHistoryPopState: function () { this.history.paths = J.getPathValues(this.params.url), this.history.scrollToSlide(this.params.speed, this.history.paths.value, !1) }, getPathValues: function (e) { var t = j(), e = (e ? new URL(e) : t.location).pathname.slice(1).split("/").filter(function (e) { return "" !== e }), t = e.length; return { key: e[t - 2], value: e[t - 1] } }, setHistory: function (e, t) { var i, s = j(); this.history.initialized && this.params.history.enabled && (i = this.params.url ? new URL(this.params.url) : s.location, t = this.slides.eq(t), t = J.slugify(t.attr("data-history")), i.pathname.includes(e) || (t = e + "/" + t), (e = s.history.state) && e.value === t || (this.params.history.replaceState ? s.history.replaceState({ value: t }, null, t) : s.history.pushState({ value: t }, null, t))) }, slugify: function (e) { return e.toString().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-").replace(/^-+/, "").replace(/-+$/, "") }, scrollToSlide: function (e, t, i) { if (t) for (var s = 0, a = this.slides.length; s < a; s += 1) { var r = this.slides.eq(s); J.slugify(r.attr("data-history")) !== t || r.hasClass(this.params.slideDuplicateClass) || (r = r.index(), this.slideTo(r, e, i)) } else this.slideTo(0, e, i) } }, Q = { onHashCange: function () { var e = g(); this.emit("hashChange"); e = e.location.hash.replace("#", ""); e === this.slides.eq(this.activeIndex).attr("data-hash") || void 0 !== (e = this.$wrapperEl.children("." + this.params.slideClass + '[data-hash="' + e + '"]').index()) && this.slideTo(e) }, setHash: function () { var e = j(), t = g(); this.hashNavigation.initialized && this.params.hashNavigation.enabled && (this.params.hashNavigation.replaceState && e.history && e.history.replaceState ? e.history.replaceState(null, null, "#" + this.slides.eq(this.activeIndex).attr("data-hash") || "") : (e = (e = this.slides.eq(this.activeIndex)).attr("data-hash") || e.attr("data-history"), t.location.hash = e || ""), this.emit("hashSet")) }, init: function () { var e = g(), t = j(); if (!(!this.params.hashNavigation.enabled || this.params.history && this.params.history.enabled)) { this.hashNavigation.initialized = !0; var i = e.location.hash.replace("#", ""); if (i) for (var s = 0, a = this.slides.length; s < a; s += 1) { var r = this.slides.eq(s); (r.attr("data-hash") || r.attr("data-history")) !== i || r.hasClass(this.params.slideDuplicateClass) || (r = r.index(), this.slideTo(r, 0, this.params.runCallbacksOnInit, !0)) } this.params.hashNavigation.watchState && T(t).on("hashchange", this.hashNavigation.onHashCange) } }, destroy: function () { var e = j(); this.params.hashNavigation.watchState && T(e).off("hashchange", this.hashNavigation.onHashCange) } }, ee = { run: function () { var e = this, t = e.slides.eq(e.activeIndex), i = e.params.autoplay.delay; t.attr("data-swiper-autoplay") && (i = t.attr("data-swiper-autoplay") || e.params.autoplay.delay), clearTimeout(e.autoplay.timeout), e.autoplay.timeout = S(function () { e.params.autoplay.reverseDirection ? e.params.loop ? (e.loopFix(), e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.isBeginning ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(e.slides.length - 1, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slidePrev(e.params.speed, !0, !0), e.emit("autoplay")) : e.params.loop ? (e.loopFix(), e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")) : e.isEnd ? e.params.autoplay.stopOnLastSlide ? e.autoplay.stop() : (e.slideTo(0, e.params.speed, !0, !0), e.emit("autoplay")) : (e.slideNext(e.params.speed, !0, !0), e.emit("autoplay")), e.params.cssMode && e.autoplay.running && e.autoplay.run() }, i) }, start: function () { return void 0 === this.autoplay.timeout && !this.autoplay.running && (this.autoplay.running = !0, this.emit("autoplayStart"), this.autoplay.run(), !0) }, stop: function () { return !!this.autoplay.running && void 0 !== this.autoplay.timeout && (this.autoplay.timeout && (clearTimeout(this.autoplay.timeout), this.autoplay.timeout = void 0), this.autoplay.running = !1, this.emit("autoplayStop"), !0) }, pause: function (e) { this.autoplay.running && (this.autoplay.paused || (this.autoplay.timeout && clearTimeout(this.autoplay.timeout), this.autoplay.paused = !0, 0 !== e && this.params.autoplay.waitForTransition ? (this.$wrapperEl[0].addEventListener("transitionend", this.autoplay.onTransitionEnd), this.$wrapperEl[0].addEventListener("webkitTransitionEnd", this.autoplay.onTransitionEnd)) : (this.autoplay.paused = !1, this.autoplay.run()))) }, onVisibilityChange: function () { var e = g(); "hidden" === e.visibilityState && this.autoplay.running && this.autoplay.pause(), "visible" === e.visibilityState && this.autoplay.paused && (this.autoplay.run(), this.autoplay.paused = !1) }, onTransitionEnd: function (e) { this && !this.destroyed && this.$wrapperEl && e.target === this.$wrapperEl[0] && (this.$wrapperEl[0].removeEventListener("transitionend", this.autoplay.onTransitionEnd), this.$wrapperEl[0].removeEventListener("webkitTransitionEnd", this.autoplay.onTransitionEnd), this.autoplay.paused = !1, this.autoplay.running ? this.autoplay.run() : this.autoplay.stop()) } }, te = { setTranslate: function () { for (var e = this.slides, t = 0; t < e.length; t += 1) { var i = this.slides.eq(t), s = -i[0].swiperSlideOffset; this.params.virtualTranslate || (s -= this.translate); var a = 0; this.isHorizontal() || (a = s, s = 0); var r = this.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(i[0].progress), 0) : 1 + Math.min(Math.max(i[0].progress, -1), 0); i.css({ opacity: r }).transform("translate3d(" + s + "px, " + a + "px, 0px)") } }, setTransition: function (e) { var i, s = this, t = s.slides, a = s.$wrapperEl; t.transition(e), s.params.virtualTranslate && 0 !== e && (i = !1, t.transitionEnd(function () { if (!i && s && !s.destroyed) { i = !0, s.animating = !1; for (var e = ["webkitTransitionEnd", "transitionend"], t = 0; t < e.length; t += 1)a.trigger(e[t]) } })) } }, ie = { setTranslate: function () { var e, t = this.$el, i = this.$wrapperEl, s = this.slides, a = this.width, r = this.height, n = this.rtlTranslate, o = this.size, l = this.browser, d = this.params.cubeEffect, h = this.isHorizontal(), p = this.virtual && this.params.virtual.enabled, u = 0; d.shadow && (h ? (0 === (e = i.find(".swiper-cube-shadow")).length && (e = T(''), i.append(e)), e.css({ height: a + "px" })) : 0 === (e = t.find(".swiper-cube-shadow")).length && (e = T(''), t.append(e))); for (var c, m = 0; m < s.length; m += 1) { var f = s.eq(m), v = m, g = 90 * (v = p ? parseInt(f.attr("data-swiper-slide-index"), 10) : v), b = Math.floor(g / 360); n && (g = -g, b = Math.floor(-g / 360)); var y = Math.max(Math.min(f[0].progress, 1), -1), w = 0, E = 0, x = 0; v % 4 == 0 ? (w = 4 * -b * o, x = 0) : (v - 1) % 4 == 0 ? (w = 0, x = 4 * -b * o) : (v - 2) % 4 == 0 ? (w = o + 4 * b * o, x = o) : (v - 3) % 4 == 0 && (w = -o, x = 3 * o + 4 * o * b), n && (w = -w), h || (E = w, w = 0), y <= 1 && -1 < y && (u = n ? 90 * -v - 90 * y : 90 * v + 90 * y), f.transform("rotateX(" + (h ? 0 : -g) + "deg) rotateY(" + (h ? g : 0) + "deg) translate3d(" + w + "px, " + E + "px, " + x + "px)"), d.slideShadows && (E = h ? f.find(".swiper-slide-shadow-left") : f.find(".swiper-slide-shadow-top"), x = h ? f.find(".swiper-slide-shadow-right") : f.find(".swiper-slide-shadow-bottom"), 0 === E.length && (E = T(''), f.append(E)), 0 === x.length && (x = T(''), f.append(x)), E.length && (E[0].style.opacity = Math.max(-y, 0)), x.length && (x[0].style.opacity = Math.max(y, 0))) } i.css({ "-webkit-transform-origin": "50% 50% -" + o / 2 + "px", "-moz-transform-origin": "50% 50% -" + o / 2 + "px", "-ms-transform-origin": "50% 50% -" + o / 2 + "px", "transform-origin": "50% 50% -" + o / 2 + "px" }), d.shadow && (h ? e.transform("translate3d(0px, " + (a / 2 + d.shadowOffset) + "px, " + -a / 2 + "px) rotateX(90deg) rotateZ(0deg) scale(" + d.shadowScale + ")") : (c = Math.abs(u) - 90 * Math.floor(Math.abs(u) / 90), t = 1.5 - (Math.sin(2 * c * Math.PI / 360) / 2 + Math.cos(2 * c * Math.PI / 360) / 2), a = d.shadowScale, c = d.shadowScale / t, t = d.shadowOffset, e.transform("scale3d(" + a + ", 1, " + c + ") translate3d(0px, " + (r / 2 + t) + "px, " + -r / 2 / c + "px) rotateX(-90deg)"))); l = l.isSafari || l.isWebView ? -o / 2 : 0; i.transform("translate3d(0px,0," + l + "px) rotateX(" + (this.isHorizontal() ? 0 : u) + "deg) rotateY(" + (this.isHorizontal() ? -u : 0) + "deg)") }, setTransition: function (e) { var t = this.$el; this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), this.params.cubeEffect.shadow && !this.isHorizontal() && t.find(".swiper-cube-shadow").transition(e) } }, se = { setTranslate: function () { for (var e = this.slides, t = this.rtlTranslate, i = 0; i < e.length; i += 1) { var s, a, r = e.eq(i), n = r[0].progress, o = -180 * (n = this.params.flipEffect.limitRotation ? Math.max(Math.min(r[0].progress, 1), -1) : n), l = 0, d = -r[0].swiperSlideOffset, h = 0; this.isHorizontal() ? t && (o = -o) : (h = d, l = -o, o = d = 0), r[0].style.zIndex = -Math.abs(Math.round(n)) + e.length, this.params.flipEffect.slideShadows && (s = this.isHorizontal() ? r.find(".swiper-slide-shadow-left") : r.find(".swiper-slide-shadow-top"), a = this.isHorizontal() ? r.find(".swiper-slide-shadow-right") : r.find(".swiper-slide-shadow-bottom"), 0 === s.length && (s = T(''), r.append(s)), 0 === a.length && (a = T(''), r.append(a)), s.length && (s[0].style.opacity = Math.max(-n, 0)), a.length && (a[0].style.opacity = Math.max(n, 0))), r.transform("translate3d(" + d + "px, " + h + "px, 0px) rotateX(" + l + "deg) rotateY(" + o + "deg)") } }, setTransition: function (e) { var i, s = this, t = s.slides, a = s.activeIndex, r = s.$wrapperEl; t.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e), s.params.virtualTranslate && 0 !== e && (i = !1, t.eq(a).transitionEnd(function () { if (!i && s && !s.destroyed) { i = !0, s.animating = !1; for (var e = ["webkitTransitionEnd", "transitionend"], t = 0; t < e.length; t += 1)r.trigger(e[t]) } })) } }, ae = { setTranslate: function () { for (var e = this.width, t = this.height, i = this.slides, s = this.slidesSizesGrid, a = this.params.coverflowEffect, r = this.isHorizontal(), n = this.translate, o = r ? e / 2 - n : t / 2 - n, l = r ? a.rotate : -a.rotate, d = a.depth, h = 0, p = i.length; h < p; h += 1) { var u = i.eq(h), c = s[h], m = (o - u[0].swiperSlideOffset - c / 2) / c * a.modifier, f = r ? l * m : 0, v = r ? 0 : l * m, g = -d * Math.abs(m), b = a.stretch; "string" == typeof b && -1 !== b.indexOf("%") && (b = parseFloat(a.stretch) / 100 * c); var y = r ? 0 : b * m, c = r ? b * m : 0, b = 1 - (1 - a.scale) * Math.abs(m); Math.abs(c) < .001 && (c = 0), Math.abs(y) < .001 && (y = 0), Math.abs(g) < .001 && (g = 0), Math.abs(f) < .001 && (f = 0), Math.abs(v) < .001 && (v = 0), Math.abs(b) < .001 && (b = 0), u.transform("translate3d(" + c + "px," + y + "px," + g + "px) rotateX(" + v + "deg) rotateY(" + f + "deg) scale(" + b + ")"), u[0].style.zIndex = 1 - Math.abs(Math.round(m)), a.slideShadows && (f = r ? u.find(".swiper-slide-shadow-left") : u.find(".swiper-slide-shadow-top"), b = r ? u.find(".swiper-slide-shadow-right") : u.find(".swiper-slide-shadow-bottom"), 0 === f.length && (f = T(''), u.append(f)), 0 === b.length && (b = T(''), u.append(b)), f.length && (f[0].style.opacity = 0 < m ? m : 0), b.length && (b[0].style.opacity = 0 < -m ? -m : 0)) } }, setTransition: function (e) { this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e) } }, re = { init: function () { var e = this.params.thumbs; if (this.thumbs.initialized) return !1; this.thumbs.initialized = !0; var t = this.constructor; return e.swiper instanceof t ? (this.thumbs.swiper = e.swiper, U(this.thumbs.swiper.originalParams, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), U(this.thumbs.swiper.params, { watchSlidesProgress: !0, slideToClickedSlide: !1 })) : y(e.swiper) && (this.thumbs.swiper = new t(U({}, e.swiper, { watchSlidesVisibility: !0, watchSlidesProgress: !0, slideToClickedSlide: !1 })), this.thumbs.swiperCreated = !0), this.thumbs.swiper.$el.addClass(this.params.thumbs.thumbsContainerClass), this.thumbs.swiper.on("tap", this.thumbs.onThumbClick), !0 }, onThumbClick: function () { var e, t, i, s = this.thumbs.swiper; s && (t = s.clickedIndex, (e = s.clickedSlide) && T(e).hasClass(this.params.thumbs.slideThumbActiveClass) || null == t || (i = s.params.loop ? parseInt(T(s.clickedSlide).attr("data-swiper-slide-index"), 10) : t, this.params.loop && (e = this.activeIndex, this.slides.eq(e).hasClass(this.params.slideDuplicateClass) && (this.loopFix(), this._clientLeft = this.$wrapperEl[0].clientLeft, e = this.activeIndex), s = this.slides.eq(e).prevAll('[data-swiper-slide-index="' + i + '"]').eq(0).index(), t = this.slides.eq(e).nextAll('[data-swiper-slide-index="' + i + '"]').eq(0).index(), i = void 0 === s || void 0 !== t && t - e < e - s ? t : s), this.slideTo(i))) }, update: function (e) { var t = this.thumbs.swiper; if (t) { var i, s, a, r = "auto" === t.params.slidesPerView ? t.slidesPerViewDynamic() : t.params.slidesPerView, n = this.params.thumbs.autoScrollOffset, o = n && !t.params.loop; this.realIndex === t.realIndex && !o || (i = t.activeIndex, a = t.params.loop ? (t.slides.eq(i).hasClass(t.params.slideDuplicateClass) && (t.loopFix(), t._clientLeft = t.$wrapperEl[0].clientLeft, i = t.activeIndex), a = t.slides.eq(i).prevAll('[data-swiper-slide-index="' + this.realIndex + '"]').eq(0).index(), s = t.slides.eq(i).nextAll('[data-swiper-slide-index="' + this.realIndex + '"]').eq(0).index(), s = void 0 === a ? s : void 0 === s ? a : s - i == i - a ? i : s - i < i - a ? s : a, this.activeIndex > this.previousIndex ? "next" : "prev") : (s = this.realIndex) > this.previousIndex ? "next" : "prev", o && (s += "next" === a ? n : -1 * n), t.visibleSlidesIndexes && t.visibleSlidesIndexes.indexOf(s) < 0 && (t.params.centeredSlides ? s = i < s ? s - Math.floor(r / 2) + 1 : s + Math.floor(r / 2) - 1 : i < s && (s = s - r + 1), t.slideTo(s, e ? 0 : void 0))); var l = 1, d = this.params.thumbs.slideThumbActiveClass; if (1 < this.params.slidesPerView && !this.params.centeredSlides && (l = this.params.slidesPerView), this.params.thumbs.multipleActiveThumbs || (l = 1), l = Math.floor(l), t.slides.removeClass(d), t.params.loop || t.params.virtual && t.params.virtual.enabled) for (var h = 0; h < l; h += 1)t.$wrapperEl.children('[data-swiper-slide-index="' + (this.realIndex + h) + '"]').addClass(d); else for (var p = 0; p < l; p += 1)t.slides.eq(this.realIndex + p).addClass(d) } } }, k = [z, k, { name: "mousewheel", params: { mousewheel: { enabled: !1, releaseOnEdges: !1, invert: !1, forceToAxis: !1, sensitivity: 1, eventsTarget: "container", thresholdDelta: null, thresholdTime: null } }, create: function () { w(this, { mousewheel: { enabled: !1, lastScrollTime: C(), lastEventBeforeSnap: void 0, recentWheelEvents: [], enable: Y.enable, disable: Y.disable, handle: Y.handle, handleMouseEnter: Y.handleMouseEnter, handleMouseLeave: Y.handleMouseLeave, animateSlider: Y.animateSlider, releaseScroll: Y.releaseScroll } }) }, on: { init: function (e) { !e.params.mousewheel.enabled && e.params.cssMode && e.mousewheel.disable(), e.params.mousewheel.enabled && e.mousewheel.enable() }, destroy: function (e) { e.params.cssMode && e.mousewheel.enable(), e.mousewheel.enabled && e.mousewheel.disable() } } }, { name: "navigation", params: { navigation: { nextEl: null, prevEl: null, hideOnClick: !1, disabledClass: "swiper-button-disabled", hiddenClass: "swiper-button-hidden", lockClass: "swiper-button-lock" } }, create: function () { w(this, { navigation: t({}, V) }) }, on: { init: function (e) { e.navigation.init(), e.navigation.update() }, toEdge: function (e) { e.navigation.update() }, fromEdge: function (e) { e.navigation.update() }, destroy: function (e) { e.navigation.destroy() }, click: function (e, t) { var i, s = e.navigation, a = s.$nextEl, s = s.$prevEl; !e.params.navigation.hideOnClick || T(t.target).is(s) || T(t.target).is(a) || (a ? i = a.hasClass(e.params.navigation.hiddenClass) : s && (i = s.hasClass(e.params.navigation.hiddenClass)), !0 === i ? e.emit("navigationShow") : e.emit("navigationHide"), a && a.toggleClass(e.params.navigation.hiddenClass), s && s.toggleClass(e.params.navigation.hiddenClass)) } } }, { name: "pagination", params: { 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: function (e) { return e }, formatFractionTotal: function (e) { return e }, bulletClass: "swiper-pagination-bullet", bulletActiveClass: "swiper-pagination-bullet-active", modifierClass: "swiper-pagination-", currentClass: "swiper-pagination-current", totalClass: "swiper-pagination-total", hiddenClass: "swiper-pagination-hidden", progressbarFillClass: "swiper-pagination-progressbar-fill", progressbarOppositeClass: "swiper-pagination-progressbar-opposite", clickableClass: "swiper-pagination-clickable", lockClass: "swiper-pagination-lock" } }, create: function () { w(this, { pagination: t({ dynamicBulletIndex: 0 }, F) }) }, on: { init: function (e) { e.pagination.init(), e.pagination.render(), e.pagination.update() }, activeIndexChange: function (e) { !e.params.loop && void 0 !== e.snapIndex || e.pagination.update() }, snapIndexChange: function (e) { e.params.loop || e.pagination.update() }, slidesLengthChange: function (e) { e.params.loop && (e.pagination.render(), e.pagination.update()) }, snapGridLengthChange: function (e) { e.params.loop || (e.pagination.render(), e.pagination.update()) }, destroy: function (e) { e.pagination.destroy() }, click: function (e, t) { e.params.pagination.el && e.params.pagination.hideOnClick && 0 < e.pagination.$el.length && !T(t.target).hasClass(e.params.pagination.bulletClass) && (!0 === e.pagination.$el.hasClass(e.params.pagination.hiddenClass) ? e.emit("paginationShow") : e.emit("paginationHide"), e.pagination.$el.toggleClass(e.params.pagination.hiddenClass)) } } }, { name: "scrollbar", params: { scrollbar: { el: null, dragSize: "auto", hide: !1, draggable: !1, snapOnRelease: !0, lockClass: "swiper-scrollbar-lock", dragClass: "swiper-scrollbar-drag" } }, create: function () { w(this, { scrollbar: t({ isTouched: !1, timeout: null, dragTimeout: null }, W) }) }, on: { init: function (e) { e.scrollbar.init(), e.scrollbar.updateSize(), e.scrollbar.setTranslate() }, update: function (e) { e.scrollbar.updateSize() }, resize: function (e) { e.scrollbar.updateSize() }, observerUpdate: function (e) { e.scrollbar.updateSize() }, setTranslate: function (e) { e.scrollbar.setTranslate() }, setTransition: function (e, t) { e.scrollbar.setTransition(t) }, destroy: function (e) { e.scrollbar.destroy() } } }, { name: "parallax", params: { parallax: { enabled: !1 } }, create: function () { w(this, { parallax: t({}, R) }) }, on: { beforeInit: function (e) { e.params.parallax.enabled && (e.params.watchSlidesProgress = !0, e.originalParams.watchSlidesProgress = !0) }, init: function (e) { e.params.parallax.enabled && e.parallax.setTranslate() }, setTranslate: function (e) { e.params.parallax.enabled && e.parallax.setTranslate() }, setTransition: function (e, t) { e.params.parallax.enabled && e.parallax.setTransition(t) } } }, { name: "zoom", params: { zoom: { enabled: !1, maxRatio: 3, minRatio: 1, toggle: !0, containerClass: "swiper-zoom-container", zoomedSlideClass: "swiper-slide-zoomed" } }, create: function () { var s = this; w(s, { zoom: t({ enabled: !1, scale: 1, currentScale: 1, isScaling: !1, gesture: { $slideEl: void 0, slideWidth: void 0, slideHeight: void 0, $imageEl: void 0, $imageWrapEl: void 0, maxRatio: 3 }, image: { 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: {} }, velocity: { x: void 0, y: void 0, prevPositionX: void 0, prevPositionY: void 0, prevTime: void 0 } }, q) }); var a = 1; Object.defineProperty(s.zoom, "scale", { get: function () { return a }, set: function (e) { var t, i; a !== e && (t = s.zoom.gesture.$imageEl ? s.zoom.gesture.$imageEl[0] : void 0, i = s.zoom.gesture.$slideEl ? s.zoom.gesture.$slideEl[0] : void 0, s.emit("zoomChange", e, t, i)), a = e } }) }, on: { init: function (e) { e.params.zoom.enabled && e.zoom.enable() }, destroy: function (e) { e.zoom.disable() }, touchStart: function (e, t) { e.zoom.enabled && e.zoom.onTouchStart(t) }, touchEnd: function (e, t) { e.zoom.enabled && e.zoom.onTouchEnd(t) }, doubleTap: function (e, t) { e.params.zoom.enabled && e.zoom.enabled && e.params.zoom.toggle && e.zoom.toggle(t) }, transitionEnd: function (e) { e.zoom.enabled && e.params.zoom.enabled && e.zoom.onTransitionEnd() }, slideChange: function (e) { e.zoom.enabled && e.params.zoom.enabled && e.params.cssMode && e.zoom.onTransitionEnd() } } }, { name: "lazy", params: { lazy: { enabled: !1, loadPrevNext: !1, loadPrevNextAmount: 1, loadOnTransitionStart: !1, elementClass: "swiper-lazy", loadingClass: "swiper-lazy-loading", loadedClass: "swiper-lazy-loaded", preloaderClass: "swiper-lazy-preloader" } }, create: function () { w(this, { lazy: t({ initialImageLoaded: !1 }, _) }) }, on: { beforeInit: function (e) { e.params.lazy.enabled && e.params.preloadImages && (e.params.preloadImages = !1) }, init: function (e) { e.params.lazy.enabled && !e.params.loop && 0 === e.params.initialSlide && e.lazy.load() }, scroll: function (e) { e.params.freeMode && !e.params.freeModeSticky && e.lazy.load() }, resize: function (e) { e.params.lazy.enabled && e.lazy.load() }, scrollbarDragMove: function (e) { e.params.lazy.enabled && e.lazy.load() }, transitionStart: function (e) { e.params.lazy.enabled && (e.params.lazy.loadOnTransitionStart || !e.params.lazy.loadOnTransitionStart && !e.lazy.initialImageLoaded) && e.lazy.load() }, transitionEnd: function (e) { e.params.lazy.enabled && !e.params.lazy.loadOnTransitionStart && e.lazy.load() }, slideChange: function (e) { e.params.lazy.enabled && e.params.cssMode && e.lazy.load() } } }, { name: "controller", params: { controller: { control: void 0, inverse: !1, by: "slide" } }, create: function () { w(this, { controller: t({ control: this.params.controller.control }, K) }) }, on: { update: function (e) { e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline) }, resize: function (e) { e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline) }, observerUpdate: function (e) { e.controller.control && e.controller.spline && (e.controller.spline = void 0, delete e.controller.spline) }, setTranslate: function (e, t, i) { e.controller.control && e.controller.setTranslate(t, i) }, setTransition: function (e, t, i) { e.controller.control && e.controller.setTransition(t, i) } } }, { name: "a11y", params: { 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}}" } }, create: function () { w(this, { a11y: t(t({}, Z), {}, { liveRegion: T('') }) }) }, on: { init: function (e) { e.params.a11y.enabled && (e.a11y.init(), e.a11y.updateNavigation()) }, toEdge: function (e) { e.params.a11y.enabled && e.a11y.updateNavigation() }, fromEdge: function (e) { e.params.a11y.enabled && e.a11y.updateNavigation() }, paginationUpdate: function (e) { e.params.a11y.enabled && e.a11y.updatePagination() }, destroy: function (e) { e.params.a11y.enabled && e.a11y.destroy() } } }, { name: "history", params: { history: { enabled: !1, replaceState: !1, key: "slides" } }, create: function () { w(this, { history: t({}, J) }) }, on: { init: function (e) { e.params.history.enabled && e.history.init() }, destroy: function (e) { e.params.history.enabled && e.history.destroy() }, transitionEnd: function (e) { e.history.initialized && e.history.setHistory(e.params.history.key, e.activeIndex) }, slideChange: function (e) { e.history.initialized && e.params.cssMode && e.history.setHistory(e.params.history.key, e.activeIndex) } } }, { name: "hash-navigation", params: { hashNavigation: { enabled: !1, replaceState: !1, watchState: !1 } }, create: function () { w(this, { hashNavigation: t({ initialized: !1 }, Q) }) }, on: { init: function (e) { e.params.hashNavigation.enabled && e.hashNavigation.init() }, destroy: function (e) { e.params.hashNavigation.enabled && e.hashNavigation.destroy() }, transitionEnd: function (e) { e.hashNavigation.initialized && e.hashNavigation.setHash() }, slideChange: function (e) { e.hashNavigation.initialized && e.params.cssMode && e.hashNavigation.setHash() } } }, { name: "autoplay", params: { autoplay: { enabled: !1, delay: 3e3, waitForTransition: !0, disableOnInteraction: !0, stopOnLastSlide: !1, reverseDirection: !1 } }, create: function () { w(this, { autoplay: t(t({}, ee), {}, { running: !1, paused: !1 }) }) }, on: { init: function (e) { e.params.autoplay.enabled && (e.autoplay.start(), g().addEventListener("visibilitychange", e.autoplay.onVisibilityChange)) }, beforeTransitionStart: function (e, t, i) { e.autoplay.running && (i || !e.params.autoplay.disableOnInteraction ? e.autoplay.pause(t) : e.autoplay.stop()) }, sliderFirstMove: function (e) { e.autoplay.running && (e.params.autoplay.disableOnInteraction ? e.autoplay.stop() : e.autoplay.pause()) }, touchEnd: function (e) { e.params.cssMode && e.autoplay.paused && !e.params.autoplay.disableOnInteraction && e.autoplay.run() }, destroy: function (e) { e.autoplay.running && e.autoplay.stop(), g().removeEventListener("visibilitychange", e.autoplay.onVisibilityChange) } } }, { name: "effect-fade", params: { fadeEffect: { crossFade: !1 } }, create: function () { w(this, { fadeEffect: t({}, te) }) }, on: { beforeInit: function (e) { var t; "fade" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "fade"), U(e.params, t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 }), U(e.originalParams, t)) }, setTranslate: function (e) { "fade" === e.params.effect && e.fadeEffect.setTranslate() }, setTransition: function (e, t) { "fade" === e.params.effect && e.fadeEffect.setTransition(t) } } }, { name: "effect-cube", params: { cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: .94 } }, create: function () { w(this, { cubeEffect: t({}, ie) }) }, on: { beforeInit: function (e) { var t; "cube" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "cube"), e.classNames.push(e.params.containerModifierClass + "3d"), U(e.params, t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, resistanceRatio: 0, spaceBetween: 0, centeredSlides: !1, virtualTranslate: !0 }), U(e.originalParams, t)) }, setTranslate: function (e) { "cube" === e.params.effect && e.cubeEffect.setTranslate() }, setTransition: function (e, t) { "cube" === e.params.effect && e.cubeEffect.setTransition(t) } } }, { name: "effect-flip", params: { flipEffect: { slideShadows: !0, limitRotation: !0 } }, create: function () { w(this, { flipEffect: t({}, se) }) }, on: { beforeInit: function (e) { var t; "flip" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "flip"), e.classNames.push(e.params.containerModifierClass + "3d"), U(e.params, t = { slidesPerView: 1, slidesPerColumn: 1, slidesPerGroup: 1, watchSlidesProgress: !0, spaceBetween: 0, virtualTranslate: !0 }), U(e.originalParams, t)) }, setTranslate: function (e) { "flip" === e.params.effect && e.flipEffect.setTranslate() }, setTransition: function (e, t) { "flip" === e.params.effect && e.flipEffect.setTransition(t) } } }, { name: "effect-coverflow", params: { coverflowEffect: { rotate: 50, stretch: 0, depth: 100, scale: 1, modifier: 1, slideShadows: !0 } }, create: function () { w(this, { coverflowEffect: t({}, ae) }) }, on: { beforeInit: function (e) { "coverflow" === e.params.effect && (e.classNames.push(e.params.containerModifierClass + "coverflow"), e.classNames.push(e.params.containerModifierClass + "3d"), e.params.watchSlidesProgress = !0, e.originalParams.watchSlidesProgress = !0) }, setTranslate: function (e) { "coverflow" === e.params.effect && e.coverflowEffect.setTranslate() }, setTransition: function (e, t) { "coverflow" === e.params.effect && e.coverflowEffect.setTransition(t) } } }, { name: "thumbs", params: { thumbs: { swiper: null, multipleActiveThumbs: !0, autoScrollOffset: 0, slideThumbActiveClass: "swiper-slide-thumb-active", thumbsContainerClass: "swiper-container-thumbs" } }, create: function () { w(this, { thumbs: t({ swiper: null, initialized: !1 }, re) }) }, on: { beforeInit: function (e) { var t = e.params.thumbs; t && t.swiper && (e.thumbs.init(), e.thumbs.update(!0)) }, slideChange: function (e) { e.thumbs.swiper && e.thumbs.update() }, update: function (e) { e.thumbs.swiper && e.thumbs.update() }, resize: function (e) { e.thumbs.swiper && e.thumbs.update() }, observerUpdate: function (e) { e.thumbs.swiper && e.thumbs.update() }, setTransition: function (e, t) { e = e.thumbs.swiper; e && e.setTransition(t) }, beforeDestroy: function (e) { var t = e.thumbs.swiper; t && e.thumbs.swiperCreated && t && t.destroy() } } }]; return A.use(k), A });