diff --git a/assets/swiper/swiper-bundle_11.min.js b/assets/swiper/swiper-bundle_11.min.js new file mode 100644 index 0000000..aa6233f --- /dev/null +++ b/assets/swiper/swiper-bundle_11.min.js @@ -0,0 +1,6473 @@ +/** + * Swiper 11.0.4 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2023 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2023 + */ + +var Swiper = (function () { + 'use strict'; + function e(e) { + return null !== e && 'object' == typeof e && 'constructor' in e && e.constructor === Object; + } + function t(s, a) { + void 0 === s && (s = {}), + void 0 === a && (a = {}), + Object.keys(a).forEach((i) => { + void 0 === s[i] + ? (s[i] = a[i]) + : e(a[i]) && e(s[i]) && Object.keys(a[i]).length > 0 && t(s[i], a[i]); + }); + } + const s = { + body: {}, + addEventListener() {}, + removeEventListener() {}, + activeElement: { blur() {}, nodeName: '' }, + querySelector: () => null, + querySelectorAll: () => [], + getElementById: () => null, + createEvent: () => ({ initEvent() {} }), + createElement: () => ({ + children: [], + childNodes: [], + style: {}, + setAttribute() {}, + getElementsByTagName: () => [], + }), + createElementNS: () => ({}), + importNode: () => null, + location: { + hash: '', + host: '', + hostname: '', + href: '', + origin: '', + pathname: '', + protocol: '', + search: '', + }, + }; + function a() { + const e = 'undefined' != typeof document ? document : {}; + return t(e, s), e; + } + const i = { + document: s, + navigator: { userAgent: '' }, + location: { + hash: '', + host: '', + hostname: '', + href: '', + origin: '', + pathname: '', + protocol: '', + search: '', + }, + history: { replaceState() {}, pushState() {}, go() {}, back() {} }, + CustomEvent: function () { + return this; + }, + addEventListener() {}, + removeEventListener() {}, + getComputedStyle: () => ({ getPropertyValue: () => '' }), + Image() {}, + Date() {}, + screen: {}, + setTimeout() {}, + clearTimeout() {}, + matchMedia: () => ({}), + requestAnimationFrame: (e) => + 'undefined' == typeof setTimeout ? (e(), null) : setTimeout(e, 0), + cancelAnimationFrame(e) { + 'undefined' != typeof setTimeout && clearTimeout(e); + }, + }; + function r() { + const e = 'undefined' != typeof window ? window : {}; + return t(e, i), e; + } + function n(e) { + return ( + void 0 === e && (e = ''), + e + .trim() + .split(' ') + .filter((e) => !!e.trim()) + ); + } + function l(e, t) { + return void 0 === t && (t = 0), setTimeout(e, t); + } + function o() { + return Date.now(); + } + function d(e, t) { + void 0 === t && (t = 'x'); + const s = r(); + let a, i, n; + const l = (function (e) { + const t = r(); + let s; + return ( + t.getComputedStyle && (s = t.getComputedStyle(e, null)), + !s && e.currentStyle && (s = e.currentStyle), + s || (s = e.style), + s + ); + })(e); + return ( + s.WebKitCSSMatrix + ? ((i = l.transform || l.webkitTransform), + i.split(',').length > 6 && + (i = i + .split(', ') + .map((e) => e.replace(',', '.')) + .join(', ')), + (n = new s.WebKitCSSMatrix('none' === i ? '' : i))) + : ((n = + l.MozTransform || + l.OTransform || + l.MsTransform || + l.msTransform || + l.transform || + l.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,')), + (a = n.toString().split(','))), + 'x' === t && + (i = s.WebKitCSSMatrix ? n.m41 : 16 === a.length ? parseFloat(a[12]) : parseFloat(a[4])), + 'y' === t && + (i = s.WebKitCSSMatrix ? n.m42 : 16 === a.length ? parseFloat(a[13]) : parseFloat(a[5])), + i || 0 + ); + } + function c(e) { + return ( + 'object' == typeof e && + null !== e && + e.constructor && + 'Object' === Object.prototype.toString.call(e).slice(8, -1) + ); + } + function p() { + const e = Object(arguments.length <= 0 ? void 0 : arguments[0]), + t = ['__proto__', 'constructor', 'prototype']; + for (let a = 1; a < arguments.length; a += 1) { + const i = a < 0 || arguments.length <= a ? void 0 : arguments[a]; + if ( + null != i && + ((s = i), + !('undefined' != typeof window && void 0 !== window.HTMLElement + ? s instanceof HTMLElement + : s && (1 === s.nodeType || 11 === s.nodeType))) + ) { + const s = Object.keys(Object(i)).filter((e) => t.indexOf(e) < 0); + for (let t = 0, a = s.length; t < a; t += 1) { + const a = s[t], + r = Object.getOwnPropertyDescriptor(i, a); + void 0 !== r && + r.enumerable && + (c(e[a]) && c(i[a]) + ? i[a].__swiper__ + ? (e[a] = i[a]) + : p(e[a], i[a]) + : !c(e[a]) && c(i[a]) + ? ((e[a] = {}), i[a].__swiper__ ? (e[a] = i[a]) : p(e[a], i[a])) + : (e[a] = i[a])); + } + } + } + var s; + return e; + } + function u(e, t, s) { + e.style.setProperty(t, s); + } + function m(e) { + let { swiper: t, targetPosition: s, side: a } = e; + const i = r(), + n = -t.translate; + let l, + o = null; + const d = t.params.speed; + (t.wrapperEl.style.scrollSnapType = 'none'), i.cancelAnimationFrame(t.cssModeFrameID); + const c = s > n ? 'next' : 'prev', + p = (e, t) => ('next' === c && e >= t) || ('prev' === c && e <= t), + u = () => { + (l = new Date().getTime()), null === o && (o = l); + const e = Math.max(Math.min((l - o) / d, 1), 0), + r = 0.5 - Math.cos(e * Math.PI) / 2; + let c = n + r * (s - n); + if ((p(c, s) && (c = s), t.wrapperEl.scrollTo({ [a]: c }), p(c, s))) + return ( + (t.wrapperEl.style.overflow = 'hidden'), + (t.wrapperEl.style.scrollSnapType = ''), + setTimeout(() => { + (t.wrapperEl.style.overflow = ''), t.wrapperEl.scrollTo({ [a]: c }); + }), + void i.cancelAnimationFrame(t.cssModeFrameID) + ); + t.cssModeFrameID = i.requestAnimationFrame(u); + }; + u(); + } + function h(e) { + return ( + e.querySelector('.swiper-slide-transform') || + (e.shadowRoot && e.shadowRoot.querySelector('.swiper-slide-transform')) || + e + ); + } + function f(e, t) { + return void 0 === t && (t = ''), [...e.children].filter((e) => e.matches(t)); + } + function g(e) { + try { + return void console.warn(e); + } catch (e) {} + } + function v(e, t) { + void 0 === t && (t = []); + const s = document.createElement(e); + return s.classList.add(...(Array.isArray(t) ? t : n(t))), s; + } + function w(e) { + const t = r(), + s = a(), + i = e.getBoundingClientRect(), + n = s.body, + l = e.clientTop || n.clientTop || 0, + o = e.clientLeft || n.clientLeft || 0, + d = e === t ? t.scrollY : e.scrollTop, + c = e === t ? t.scrollX : e.scrollLeft; + return { top: i.top + d - l, left: i.left + c - o }; + } + function b(e, t) { + return r().getComputedStyle(e, null).getPropertyValue(t); + } + function y(e) { + let t, + s = e; + if (s) { + for (t = 0; null !== (s = s.previousSibling); ) 1 === s.nodeType && (t += 1); + return t; + } + } + function E(e, t) { + const s = []; + let a = e.parentElement; + for (; a; ) t ? a.matches(t) && s.push(a) : s.push(a), (a = a.parentElement); + return s; + } + function x(e, t) { + t && + e.addEventListener('transitionend', function s(a) { + a.target === e && (t.call(e, a), e.removeEventListener('transitionend', s)); + }); + } + function S(e, t, s) { + const a = r(); + return s + ? e['width' === t ? 'offsetWidth' : 'offsetHeight'] + + parseFloat( + a + .getComputedStyle(e, null) + .getPropertyValue('width' === t ? 'margin-right' : 'margin-top') + ) + + parseFloat( + a + .getComputedStyle(e, null) + .getPropertyValue('width' === t ? 'margin-left' : 'margin-bottom') + ) + : e.offsetWidth; + } + let T, M, C; + function P() { + return ( + T || + (T = (function () { + const e = r(), + t = a(); + return { + smoothScroll: + t.documentElement && + t.documentElement.style && + 'scrollBehavior' in t.documentElement.style, + touch: !!('ontouchstart' in e || (e.DocumentTouch && t instanceof e.DocumentTouch)), + }; + })()), + T + ); + } + function L(e) { + return ( + void 0 === e && (e = {}), + M || + (M = (function (e) { + let { userAgent: t } = void 0 === e ? {} : e; + const s = P(), + a = r(), + i = a.navigator.platform, + n = t || a.navigator.userAgent, + l = { ios: !1, android: !1 }, + o = a.screen.width, + d = a.screen.height, + c = n.match(/(Android);?[\s\/]+([\d.]+)?/); + let p = n.match(/(iPad).*OS\s([\d_]+)/); + const u = n.match(/(iPod)(.*OS\s([\d_]+))?/), + m = !p && n.match(/(iPhone\sOS|iOS)\s([\d_]+)/), + h = 'Win32' === i; + let f = 'MacIntel' === i; + return ( + !p && + f && + s.touch && + [ + '1024x1366', + '1366x1024', + '834x1194', + '1194x834', + '834x1112', + '1112x834', + '768x1024', + '1024x768', + '820x1180', + '1180x820', + '810x1080', + '1080x810', + ].indexOf(`${o}x${d}`) >= 0 && + ((p = n.match(/(Version)\/([\d.]+)/)), p || (p = [0, 1, '13_0_0']), (f = !1)), + c && !h && ((l.os = 'android'), (l.android = !0)), + (p || m || u) && ((l.os = 'ios'), (l.ios = !0)), + l + ); + })(e)), + M + ); + } + function A() { + return ( + C || + (C = (function () { + const e = r(); + let t = !1; + function s() { + const t = e.navigator.userAgent.toLowerCase(); + return t.indexOf('safari') >= 0 && t.indexOf('chrome') < 0 && t.indexOf('android') < 0; + } + if (s()) { + const s = String(e.navigator.userAgent); + if (s.includes('Version/')) { + const [e, a] = s + .split('Version/')[1] + .split(' ')[0] + .split('.') + .map((e) => Number(e)); + t = e < 16 || (16 === e && a < 2); + } + } + return { + isSafari: t || s(), + needPerspectiveFix: t, + isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent), + }; + })()), + C + ); + } + var I = { + on(e, t, s) { + const a = this; + if (!a.eventsListeners || a.destroyed) return a; + if ('function' != typeof t) return a; + const i = s ? 'unshift' : 'push'; + return ( + e.split(' ').forEach((e) => { + a.eventsListeners[e] || (a.eventsListeners[e] = []), a.eventsListeners[e][i](t); + }), + a + ); + }, + once(e, t, s) { + const a = this; + if (!a.eventsListeners || a.destroyed) return a; + if ('function' != typeof t) return a; + function i() { + a.off(e, i), i.__emitterProxy && delete i.__emitterProxy; + for (var s = arguments.length, r = new Array(s), n = 0; n < s; n++) r[n] = arguments[n]; + t.apply(a, r); + } + return (i.__emitterProxy = t), a.on(e, i, s); + }, + onAny(e, t) { + const s = this; + if (!s.eventsListeners || s.destroyed) return s; + if ('function' != typeof e) return s; + const a = t ? 'unshift' : 'push'; + return s.eventsAnyListeners.indexOf(e) < 0 && s.eventsAnyListeners[a](e), s; + }, + offAny(e) { + const t = this; + if (!t.eventsListeners || t.destroyed) return t; + if (!t.eventsAnyListeners) return t; + const s = t.eventsAnyListeners.indexOf(e); + return s >= 0 && t.eventsAnyListeners.splice(s, 1), t; + }, + off(e, t) { + const s = this; + return !s.eventsListeners || s.destroyed + ? s + : s.eventsListeners + ? (e.split(' ').forEach((e) => { + void 0 === t + ? (s.eventsListeners[e] = []) + : s.eventsListeners[e] && + s.eventsListeners[e].forEach((a, i) => { + (a === t || (a.__emitterProxy && a.__emitterProxy === t)) && + s.eventsListeners[e].splice(i, 1); + }); + }), + s) + : s; + }, + emit() { + const e = this; + if (!e.eventsListeners || e.destroyed) return e; + if (!e.eventsListeners) return e; + let t, s, a; + for (var i = arguments.length, r = new Array(i), n = 0; n < i; n++) r[n] = arguments[n]; + 'string' == typeof r[0] || Array.isArray(r[0]) + ? ((t = r[0]), (s = r.slice(1, r.length)), (a = e)) + : ((t = r[0].events), (s = r[0].data), (a = r[0].context || e)), + s.unshift(a); + return ( + (Array.isArray(t) ? t : t.split(' ')).forEach((t) => { + e.eventsAnyListeners && + e.eventsAnyListeners.length && + e.eventsAnyListeners.forEach((e) => { + e.apply(a, [t, ...s]); + }), + e.eventsListeners && + e.eventsListeners[t] && + e.eventsListeners[t].forEach((e) => { + e.apply(a, s); + }); + }), + e + ); + }, + }; + const z = (e, t) => { + if (!e || e.destroyed || !e.params) return; + const s = t.closest(e.isElement ? 'swiper-slide' : `.${e.params.slideClass}`); + if (s) { + let t = s.querySelector(`.${e.params.lazyPreloaderClass}`); + !t && + e.isElement && + (s.shadowRoot + ? (t = s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`)) + : requestAnimationFrame(() => { + s.shadowRoot && + ((t = s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`)), + t && t.remove()); + })), + t && t.remove(); + } + }, + $ = (e, t) => { + if (!e.slides[t]) return; + const s = e.slides[t].querySelector('[loading="lazy"]'); + s && s.removeAttribute('loading'); + }, + k = (e) => { + if (!e || e.destroyed || !e.params) return; + let t = e.params.lazyPreloadPrevNext; + const s = e.slides.length; + if (!s || !t || t < 0) return; + t = Math.min(t, s); + const a = + 'auto' === e.params.slidesPerView + ? e.slidesPerViewDynamic() + : Math.ceil(e.params.slidesPerView), + i = e.activeIndex; + if (e.params.grid && e.params.grid.rows > 1) { + const s = i, + r = [s - t]; + return ( + r.push(...Array.from({ length: t }).map((e, t) => s + a + t)), + void e.slides.forEach((t, s) => { + r.includes(t.column) && $(e, s); + }) + ); + } + const r = i + a - 1; + if (e.params.rewind || e.params.loop) + for (let a = i - t; a <= r + t; a += 1) { + const t = ((a % s) + s) % s; + (t < i || t > r) && $(e, t); + } + else + for (let a = Math.max(i - t, 0); a <= Math.min(r + t, s - 1); a += 1) + a !== i && (a > r || a < i) && $(e, a); + }; + var O = { + updateSize: function () { + const e = this; + let t, s; + const a = e.el; + (t = void 0 !== e.params.width && null !== e.params.width ? e.params.width : a.clientWidth), + (s = + void 0 !== e.params.height && null !== e.params.height + ? e.params.height + : a.clientHeight), + (0 === t && e.isHorizontal()) || + (0 === s && e.isVertical()) || + ((t = + t - parseInt(b(a, 'padding-left') || 0, 10) - parseInt(b(a, 'padding-right') || 0, 10)), + (s = + s - parseInt(b(a, 'padding-top') || 0, 10) - parseInt(b(a, 'padding-bottom') || 0, 10)), + Number.isNaN(t) && (t = 0), + Number.isNaN(s) && (s = 0), + Object.assign(e, { width: t, height: s, size: e.isHorizontal() ? t : s })); + }, + updateSlides: function () { + const e = this; + function t(t, s) { + return parseFloat(t.getPropertyValue(e.getDirectionLabel(s)) || 0); + } + const s = e.params, + { wrapperEl: a, slidesEl: i, size: r, rtlTranslate: n, wrongRTL: l } = e, + o = e.virtual && s.virtual.enabled, + d = o ? e.virtual.slides.length : e.slides.length, + c = f(i, `.${e.params.slideClass}, swiper-slide`), + p = o ? e.virtual.slides.length : c.length; + let m = []; + const h = [], + g = []; + let v = s.slidesOffsetBefore; + 'function' == typeof v && (v = s.slidesOffsetBefore.call(e)); + let w = s.slidesOffsetAfter; + 'function' == typeof w && (w = s.slidesOffsetAfter.call(e)); + const y = e.snapGrid.length, + E = e.slidesGrid.length; + let x = s.spaceBetween, + T = -v, + M = 0, + C = 0; + if (void 0 === r) return; + 'string' == typeof x && x.indexOf('%') >= 0 + ? (x = (parseFloat(x.replace('%', '')) / 100) * r) + : 'string' == typeof x && (x = parseFloat(x)), + (e.virtualSize = -x), + c.forEach((e) => { + n ? (e.style.marginLeft = '') : (e.style.marginRight = ''), + (e.style.marginBottom = ''), + (e.style.marginTop = ''); + }), + s.centeredSlides && + s.cssMode && + (u(a, '--swiper-centered-offset-before', ''), u(a, '--swiper-centered-offset-after', '')); + const P = s.grid && s.grid.rows > 1 && e.grid; + let L; + P ? e.grid.initSlides(c) : e.grid && e.grid.unsetSlides(); + const A = + 'auto' === s.slidesPerView && + s.breakpoints && + Object.keys(s.breakpoints).filter((e) => void 0 !== s.breakpoints[e].slidesPerView).length > + 0; + for (let a = 0; a < p; a += 1) { + let i; + if ( + ((L = 0), + c[a] && (i = c[a]), + P && e.grid.updateSlide(a, i, c), + !c[a] || 'none' !== b(i, 'display')) + ) { + if ('auto' === s.slidesPerView) { + A && (c[a].style[e.getDirectionLabel('width')] = ''); + const r = getComputedStyle(i), + n = i.style.transform, + l = i.style.webkitTransform; + if ( + (n && (i.style.transform = 'none'), + l && (i.style.webkitTransform = 'none'), + s.roundLengths) + ) + L = e.isHorizontal() ? S(i, 'width', !0) : S(i, 'height', !0); + else { + const e = t(r, 'width'), + s = t(r, 'padding-left'), + a = t(r, 'padding-right'), + n = t(r, 'margin-left'), + l = t(r, 'margin-right'), + o = r.getPropertyValue('box-sizing'); + if (o && 'border-box' === o) L = e + n + l; + else { + const { clientWidth: t, offsetWidth: r } = i; + L = e + s + a + n + l + (r - t); + } + } + n && (i.style.transform = n), + l && (i.style.webkitTransform = l), + s.roundLengths && (L = Math.floor(L)); + } else + (L = (r - (s.slidesPerView - 1) * x) / s.slidesPerView), + s.roundLengths && (L = Math.floor(L)), + c[a] && (c[a].style[e.getDirectionLabel('width')] = `${L}px`); + c[a] && (c[a].swiperSlideSize = L), + g.push(L), + s.centeredSlides + ? ((T = T + L / 2 + M / 2 + x), + 0 === M && 0 !== a && (T = T - r / 2 - x), + 0 === a && (T = T - r / 2 - x), + Math.abs(T) < 0.001 && (T = 0), + s.roundLengths && (T = Math.floor(T)), + C % s.slidesPerGroup == 0 && m.push(T), + h.push(T)) + : (s.roundLengths && (T = Math.floor(T)), + (C - Math.min(e.params.slidesPerGroupSkip, C)) % e.params.slidesPerGroup == 0 && + m.push(T), + h.push(T), + (T = T + L + x)), + (e.virtualSize += L + x), + (M = L), + (C += 1); + } + } + if ( + ((e.virtualSize = Math.max(e.virtualSize, r) + w), + n && + l && + ('slide' === s.effect || 'coverflow' === s.effect) && + (a.style.width = `${e.virtualSize + x}px`), + s.setWrapperSize && (a.style[e.getDirectionLabel('width')] = `${e.virtualSize + x}px`), + P && e.grid.updateWrapperSize(L, m), + !s.centeredSlides) + ) { + const t = []; + for (let a = 0; a < m.length; a += 1) { + let i = m[a]; + s.roundLengths && (i = Math.floor(i)), m[a] <= e.virtualSize - r && t.push(i); + } + (m = t), + Math.floor(e.virtualSize - r) - Math.floor(m[m.length - 1]) > 1 && + m.push(e.virtualSize - r); + } + if (o && s.loop) { + const t = g[0] + x; + if (s.slidesPerGroup > 1) { + const a = Math.ceil((e.virtual.slidesBefore + e.virtual.slidesAfter) / s.slidesPerGroup), + i = t * s.slidesPerGroup; + for (let e = 0; e < a; e += 1) m.push(m[m.length - 1] + i); + } + for (let a = 0; a < e.virtual.slidesBefore + e.virtual.slidesAfter; a += 1) + 1 === s.slidesPerGroup && m.push(m[m.length - 1] + t), + h.push(h[h.length - 1] + t), + (e.virtualSize += t); + } + if ((0 === m.length && (m = [0]), 0 !== x)) { + const t = e.isHorizontal() && n ? 'marginLeft' : e.getDirectionLabel('marginRight'); + c.filter((e, t) => !(s.cssMode && !s.loop) || t !== c.length - 1).forEach((e) => { + e.style[t] = `${x}px`; + }); + } + if (s.centeredSlides && s.centeredSlidesBounds) { + let e = 0; + g.forEach((t) => { + e += t + (x || 0); + }), + (e -= x); + const t = e - r; + m = m.map((e) => (e <= 0 ? -v : e > t ? t + w : e)); + } + if (s.centerInsufficientSlides) { + let e = 0; + if ( + (g.forEach((t) => { + e += t + (x || 0); + }), + (e -= x), + e < r) + ) { + const t = (r - e) / 2; + m.forEach((e, s) => { + m[s] = e - t; + }), + h.forEach((e, s) => { + h[s] = e + t; + }); + } + } + if ( + (Object.assign(e, { slides: c, snapGrid: m, slidesGrid: h, slidesSizesGrid: g }), + s.centeredSlides && s.cssMode && !s.centeredSlidesBounds) + ) { + u(a, '--swiper-centered-offset-before', -m[0] + 'px'), + u(a, '--swiper-centered-offset-after', e.size / 2 - g[g.length - 1] / 2 + 'px'); + const t = -e.snapGrid[0], + s = -e.slidesGrid[0]; + (e.snapGrid = e.snapGrid.map((e) => e + t)), + (e.slidesGrid = e.slidesGrid.map((e) => e + s)); + } + if ( + (p !== d && e.emit('slidesLengthChange'), + m.length !== y && + (e.params.watchOverflow && e.checkOverflow(), e.emit('snapGridLengthChange')), + h.length !== E && e.emit('slidesGridLengthChange'), + s.watchSlidesProgress && e.updateSlidesOffset(), + !(o || s.cssMode || ('slide' !== s.effect && 'fade' !== s.effect))) + ) { + const t = `${s.containerModifierClass}backface-hidden`, + a = e.el.classList.contains(t); + p <= s.maxBackfaceHiddenSlides ? a || e.el.classList.add(t) : a && e.el.classList.remove(t); + } + }, + updateAutoHeight: function (e) { + const t = this, + s = [], + a = t.virtual && t.params.virtual.enabled; + let i, + r = 0; + 'number' == typeof e ? t.setTransition(e) : !0 === e && t.setTransition(t.params.speed); + const n = (e) => (a ? t.slides[t.getSlideIndexByData(e)] : t.slides[e]); + if ('auto' !== t.params.slidesPerView && t.params.slidesPerView > 1) + if (t.params.centeredSlides) + (t.visibleSlides || []).forEach((e) => { + s.push(e); + }); + else + for (i = 0; i < Math.ceil(t.params.slidesPerView); i += 1) { + const e = t.activeIndex + i; + if (e > t.slides.length && !a) break; + s.push(n(e)); + } + else s.push(n(t.activeIndex)); + for (i = 0; i < s.length; i += 1) + if (void 0 !== s[i]) { + const e = s[i].offsetHeight; + r = e > r ? e : r; + } + (r || 0 === r) && (t.wrapperEl.style.height = `${r}px`); + }, + updateSlidesOffset: function () { + const e = this, + t = e.slides, + s = e.isElement ? (e.isHorizontal() ? e.wrapperEl.offsetLeft : e.wrapperEl.offsetTop) : 0; + for (let a = 0; a < t.length; a += 1) + t[a].swiperSlideOffset = + (e.isHorizontal() ? t[a].offsetLeft : t[a].offsetTop) - s - e.cssOverflowAdjustment(); + }, + updateSlidesProgress: function (e) { + void 0 === e && (e = (this && this.translate) || 0); + const t = this, + s = t.params, + { slides: a, rtlTranslate: i, snapGrid: r } = t; + if (0 === a.length) return; + void 0 === a[0].swiperSlideOffset && t.updateSlidesOffset(); + let n = -e; + i && (n = e), + a.forEach((e) => { + e.classList.remove(s.slideVisibleClass, s.slideFullyVisibleClass); + }), + (t.visibleSlidesIndexes = []), + (t.visibleSlides = []); + let l = s.spaceBetween; + 'string' == typeof l && l.indexOf('%') >= 0 + ? (l = (parseFloat(l.replace('%', '')) / 100) * t.size) + : 'string' == typeof l && (l = parseFloat(l)); + for (let e = 0; e < a.length; e += 1) { + const o = a[e]; + let d = o.swiperSlideOffset; + s.cssMode && s.centeredSlides && (d -= a[0].swiperSlideOffset); + const c = (n + (s.centeredSlides ? t.minTranslate() : 0) - d) / (o.swiperSlideSize + l), + p = (n - r[0] + (s.centeredSlides ? t.minTranslate() : 0) - d) / (o.swiperSlideSize + l), + u = -(n - d), + m = u + t.slidesSizesGrid[e], + h = u >= 0 && u <= t.size - t.slidesSizesGrid[e]; + ((u >= 0 && u < t.size - 1) || (m > 1 && m <= t.size) || (u <= 0 && m >= t.size)) && + (t.visibleSlides.push(o), + t.visibleSlidesIndexes.push(e), + a[e].classList.add(s.slideVisibleClass)), + h && a[e].classList.add(s.slideFullyVisibleClass), + (o.progress = i ? -c : c), + (o.originalProgress = i ? -p : p); + } + }, + updateProgress: function (e) { + const t = this; + if (void 0 === e) { + const s = t.rtlTranslate ? -1 : 1; + e = (t && t.translate && t.translate * s) || 0; + } + const s = t.params, + a = t.maxTranslate() - t.minTranslate(); + let { progress: i, isBeginning: r, isEnd: n, progressLoop: l } = t; + const o = r, + d = n; + if (0 === a) (i = 0), (r = !0), (n = !0); + else { + i = (e - t.minTranslate()) / a; + const s = Math.abs(e - t.minTranslate()) < 1, + l = Math.abs(e - t.maxTranslate()) < 1; + (r = s || i <= 0), (n = l || i >= 1), s && (i = 0), l && (i = 1); + } + if (s.loop) { + const s = t.getSlideIndexByData(0), + a = t.getSlideIndexByData(t.slides.length - 1), + i = t.slidesGrid[s], + r = t.slidesGrid[a], + n = t.slidesGrid[t.slidesGrid.length - 1], + o = Math.abs(e); + (l = o >= i ? (o - i) / n : (o + n - r) / n), l > 1 && (l -= 1); + } + Object.assign(t, { progress: i, progressLoop: l, isBeginning: r, isEnd: n }), + (s.watchSlidesProgress || (s.centeredSlides && s.autoHeight)) && t.updateSlidesProgress(e), + r && !o && t.emit('reachBeginning toEdge'), + n && !d && t.emit('reachEnd toEdge'), + ((o && !r) || (d && !n)) && t.emit('fromEdge'), + t.emit('progress', i); + }, + updateSlidesClasses: function () { + const e = this, + { slides: t, params: s, slidesEl: a, activeIndex: i } = e, + r = e.virtual && s.virtual.enabled, + n = e.grid && s.grid && s.grid.rows > 1, + l = (e) => f(a, `.${s.slideClass}${e}, swiper-slide${e}`)[0]; + let o, d, c; + if ( + (t.forEach((e) => { + e.classList.remove(s.slideActiveClass, s.slideNextClass, s.slidePrevClass); + }), + r) + ) + if (s.loop) { + let t = i - e.virtual.slidesBefore; + t < 0 && (t = e.virtual.slides.length + t), + t >= e.virtual.slides.length && (t -= e.virtual.slides.length), + (o = l(`[data-swiper-slide-index="${t}"]`)); + } else o = l(`[data-swiper-slide-index="${i}"]`); + else + n + ? ((o = t.filter((e) => e.column === i)[0]), + (c = t.filter((e) => e.column === i + 1)[0]), + (d = t.filter((e) => e.column === i - 1)[0])) + : (o = t[i]); + o && + (o.classList.add(s.slideActiveClass), + n + ? (c && c.classList.add(s.slideNextClass), d && d.classList.add(s.slidePrevClass)) + : ((c = (function (e, t) { + const s = []; + for (; e.nextElementSibling; ) { + const a = e.nextElementSibling; + t ? a.matches(t) && s.push(a) : s.push(a), (e = a); + } + return s; + })(o, `.${s.slideClass}, swiper-slide`)[0]), + s.loop && !c && (c = t[0]), + c && c.classList.add(s.slideNextClass), + (d = (function (e, t) { + const s = []; + for (; e.previousElementSibling; ) { + const a = e.previousElementSibling; + t ? a.matches(t) && s.push(a) : s.push(a), (e = a); + } + return s; + })(o, `.${s.slideClass}, swiper-slide`)[0]), + s.loop && 0 === !d && (d = t[t.length - 1]), + d && d.classList.add(s.slidePrevClass))), + e.emitSlidesClasses(); + }, + updateActiveIndex: function (e) { + const t = this, + s = t.rtlTranslate ? t.translate : -t.translate, + { snapGrid: a, params: i, activeIndex: r, realIndex: n, snapIndex: l } = t; + let o, + d = e; + const c = (e) => { + let s = e - t.virtual.slidesBefore; + return ( + s < 0 && (s = t.virtual.slides.length + s), + s >= t.virtual.slides.length && (s -= t.virtual.slides.length), + s + ); + }; + if ( + (void 0 === d && + (d = (function (e) { + const { slidesGrid: t, params: s } = e, + a = e.rtlTranslate ? e.translate : -e.translate; + let i; + for (let e = 0; e < t.length; e += 1) + void 0 !== t[e + 1] + ? a >= t[e] && a < t[e + 1] - (t[e + 1] - t[e]) / 2 + ? (i = e) + : a >= t[e] && a < t[e + 1] && (i = e + 1) + : a >= t[e] && (i = e); + return s.normalizeSlideIndex && (i < 0 || void 0 === i) && (i = 0), i; + })(t)), + a.indexOf(s) >= 0) + ) + o = a.indexOf(s); + else { + const e = Math.min(i.slidesPerGroupSkip, d); + o = e + Math.floor((d - e) / i.slidesPerGroup); + } + if ((o >= a.length && (o = a.length - 1), d === r && !t.params.loop)) + return void (o !== l && ((t.snapIndex = o), t.emit('snapIndexChange'))); + if (d === r && t.params.loop && t.virtual && t.params.virtual.enabled) + return void (t.realIndex = c(d)); + const p = t.grid && i.grid && i.grid.rows > 1; + let u; + if (t.virtual && i.virtual.enabled && i.loop) u = c(d); + else if (p) { + const e = t.slides.filter((e) => e.column === d)[0]; + let s = parseInt(e.getAttribute('data-swiper-slide-index'), 10); + Number.isNaN(s) && (s = Math.max(t.slides.indexOf(e), 0)), + (u = Math.floor(s / i.grid.rows)); + } else if (t.slides[d]) { + const e = t.slides[d].getAttribute('data-swiper-slide-index'); + u = e ? parseInt(e, 10) : d; + } else u = d; + Object.assign(t, { + previousSnapIndex: l, + snapIndex: o, + previousRealIndex: n, + realIndex: u, + previousIndex: r, + activeIndex: d, + }), + t.initialized && k(t), + t.emit('activeIndexChange'), + t.emit('snapIndexChange'), + (t.initialized || t.params.runCallbacksOnInit) && + (n !== u && t.emit('realIndexChange'), t.emit('slideChange')); + }, + updateClickedSlide: function (e, t) { + const s = this, + a = s.params; + let i = e.closest(`.${a.slideClass}, swiper-slide`); + !i && + s.isElement && + t && + t.length > 1 && + t.includes(e) && + [...t.slice(t.indexOf(e) + 1, t.length)].forEach((e) => { + !i && e.matches && e.matches(`.${a.slideClass}, swiper-slide`) && (i = e); + }); + let r, + n = !1; + if (i) + for (let e = 0; e < s.slides.length; e += 1) + if (s.slides[e] === i) { + (n = !0), (r = e); + break; + } + if (!i || !n) return (s.clickedSlide = void 0), void (s.clickedIndex = void 0); + (s.clickedSlide = i), + s.virtual && s.params.virtual.enabled + ? (s.clickedIndex = parseInt(i.getAttribute('data-swiper-slide-index'), 10)) + : (s.clickedIndex = r), + a.slideToClickedSlide && + void 0 !== s.clickedIndex && + s.clickedIndex !== s.activeIndex && + s.slideToClickedSlide(); + }, + }; + var D = { + getTranslate: function (e) { + void 0 === e && (e = this.isHorizontal() ? 'x' : 'y'); + const { params: t, rtlTranslate: s, translate: a, wrapperEl: i } = this; + if (t.virtualTranslate) return s ? -a : a; + if (t.cssMode) return a; + let r = d(i, e); + return (r += this.cssOverflowAdjustment()), s && (r = -r), r || 0; + }, + setTranslate: function (e, t) { + const s = this, + { rtlTranslate: a, params: i, wrapperEl: r, progress: n } = s; + let l, + o = 0, + d = 0; + s.isHorizontal() ? (o = a ? -e : e) : (d = e), + i.roundLengths && ((o = Math.floor(o)), (d = Math.floor(d))), + (s.previousTranslate = s.translate), + (s.translate = s.isHorizontal() ? o : d), + i.cssMode + ? (r[s.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = s.isHorizontal() ? -o : -d) + : i.virtualTranslate || + (s.isHorizontal() ? (o -= s.cssOverflowAdjustment()) : (d -= s.cssOverflowAdjustment()), + (r.style.transform = `translate3d(${o}px, ${d}px, 0px)`)); + const c = s.maxTranslate() - s.minTranslate(); + (l = 0 === c ? 0 : (e - s.minTranslate()) / c), + l !== n && s.updateProgress(e), + s.emit('setTranslate', s.translate, t); + }, + minTranslate: function () { + return -this.snapGrid[0]; + }, + maxTranslate: function () { + return -this.snapGrid[this.snapGrid.length - 1]; + }, + translateTo: function (e, t, s, a, i) { + void 0 === e && (e = 0), + void 0 === t && (t = this.params.speed), + void 0 === s && (s = !0), + void 0 === a && (a = !0); + const r = this, + { params: n, wrapperEl: l } = r; + if (r.animating && n.preventInteractionOnTransition) return !1; + const o = r.minTranslate(), + d = r.maxTranslate(); + let c; + if (((c = a && e > o ? o : a && e < d ? d : e), r.updateProgress(c), n.cssMode)) { + const e = r.isHorizontal(); + if (0 === t) l[e ? 'scrollLeft' : 'scrollTop'] = -c; + else { + if (!r.support.smoothScroll) + return m({ swiper: r, targetPosition: -c, side: e ? 'left' : 'top' }), !0; + l.scrollTo({ [e ? 'left' : 'top']: -c, behavior: 'smooth' }); + } + return !0; + } + return ( + 0 === t + ? (r.setTransition(0), + r.setTranslate(c), + s && (r.emit('beforeTransitionStart', t, i), r.emit('transitionEnd'))) + : (r.setTransition(t), + r.setTranslate(c), + s && (r.emit('beforeTransitionStart', t, i), r.emit('transitionStart')), + r.animating || + ((r.animating = !0), + r.onTranslateToWrapperTransitionEnd || + (r.onTranslateToWrapperTransitionEnd = function (e) { + r && + !r.destroyed && + e.target === this && + (r.wrapperEl.removeEventListener( + 'transitionend', + r.onTranslateToWrapperTransitionEnd + ), + (r.onTranslateToWrapperTransitionEnd = null), + delete r.onTranslateToWrapperTransitionEnd, + s && r.emit('transitionEnd')); + }), + r.wrapperEl.addEventListener('transitionend', r.onTranslateToWrapperTransitionEnd))), + !0 + ); + }, + }; + function G(e) { + let { swiper: t, runCallbacks: s, direction: a, step: i } = e; + const { activeIndex: r, previousIndex: n } = t; + let l = a; + if ( + (l || (l = r > n ? 'next' : r < n ? 'prev' : 'reset'), t.emit(`transition${i}`), s && r !== n) + ) { + if ('reset' === l) return void t.emit(`slideResetTransition${i}`); + t.emit(`slideChangeTransition${i}`), + 'next' === l ? t.emit(`slideNextTransition${i}`) : t.emit(`slidePrevTransition${i}`); + } + } + var X = { + slideTo: function (e, t, s, a, i) { + void 0 === e && (e = 0), + void 0 === t && (t = this.params.speed), + void 0 === s && (s = !0), + 'string' == typeof e && (e = parseInt(e, 10)); + const r = this; + let n = e; + n < 0 && (n = 0); + const { + params: l, + snapGrid: o, + slidesGrid: d, + previousIndex: c, + activeIndex: p, + rtlTranslate: u, + wrapperEl: h, + enabled: f, + } = r; + if ((r.animating && l.preventInteractionOnTransition) || (!f && !a && !i)) return !1; + const g = Math.min(r.params.slidesPerGroupSkip, n); + let v = g + Math.floor((n - g) / r.params.slidesPerGroup); + v >= o.length && (v = o.length - 1); + const w = -o[v]; + if (l.normalizeSlideIndex) + for (let e = 0; e < d.length; e += 1) { + const t = -Math.floor(100 * w), + s = Math.floor(100 * d[e]), + a = Math.floor(100 * d[e + 1]); + void 0 !== d[e + 1] + ? t >= s && t < a - (a - s) / 2 + ? (n = e) + : t >= s && t < a && (n = e + 1) + : t >= s && (n = e); + } + if (r.initialized && n !== p) { + if ( + !r.allowSlideNext && + (u ? w > r.translate && w > r.minTranslate() : w < r.translate && w < r.minTranslate()) + ) + return !1; + if (!r.allowSlidePrev && w > r.translate && w > r.maxTranslate() && (p || 0) !== n) + return !1; + } + let b; + if ( + (n !== (c || 0) && s && r.emit('beforeSlideChangeStart'), + r.updateProgress(w), + (b = n > p ? 'next' : n < p ? 'prev' : 'reset'), + (u && -w === r.translate) || (!u && w === r.translate)) + ) + return ( + r.updateActiveIndex(n), + l.autoHeight && r.updateAutoHeight(), + r.updateSlidesClasses(), + 'slide' !== l.effect && r.setTranslate(w), + 'reset' !== b && (r.transitionStart(s, b), r.transitionEnd(s, b)), + !1 + ); + if (l.cssMode) { + const e = r.isHorizontal(), + s = u ? w : -w; + if (0 === t) { + const t = r.virtual && r.params.virtual.enabled; + t && ((r.wrapperEl.style.scrollSnapType = 'none'), (r._immediateVirtual = !0)), + t && !r._cssModeVirtualInitialSet && r.params.initialSlide > 0 + ? ((r._cssModeVirtualInitialSet = !0), + requestAnimationFrame(() => { + h[e ? 'scrollLeft' : 'scrollTop'] = s; + })) + : (h[e ? 'scrollLeft' : 'scrollTop'] = s), + t && + requestAnimationFrame(() => { + (r.wrapperEl.style.scrollSnapType = ''), (r._immediateVirtual = !1); + }); + } else { + if (!r.support.smoothScroll) + return m({ swiper: r, targetPosition: s, side: e ? 'left' : 'top' }), !0; + h.scrollTo({ [e ? 'left' : 'top']: s, behavior: 'smooth' }); + } + return !0; + } + return ( + r.setTransition(t), + r.setTranslate(w), + r.updateActiveIndex(n), + r.updateSlidesClasses(), + r.emit('beforeTransitionStart', t, a), + r.transitionStart(s, b), + 0 === t + ? r.transitionEnd(s, b) + : r.animating || + ((r.animating = !0), + r.onSlideToWrapperTransitionEnd || + (r.onSlideToWrapperTransitionEnd = function (e) { + r && + !r.destroyed && + e.target === this && + (r.wrapperEl.removeEventListener( + 'transitionend', + r.onSlideToWrapperTransitionEnd + ), + (r.onSlideToWrapperTransitionEnd = null), + delete r.onSlideToWrapperTransitionEnd, + r.transitionEnd(s, b)); + }), + r.wrapperEl.addEventListener('transitionend', r.onSlideToWrapperTransitionEnd)), + !0 + ); + }, + slideToLoop: function (e, t, s, a) { + if ( + (void 0 === e && (e = 0), + void 0 === t && (t = this.params.speed), + void 0 === s && (s = !0), + 'string' == typeof e) + ) { + e = parseInt(e, 10); + } + const i = this, + r = i.grid && i.params.grid && i.params.grid.rows > 1; + let n = e; + if (i.params.loop) + if (i.virtual && i.params.virtual.enabled) n += i.virtual.slidesBefore; + else { + let e; + if (r) { + const t = n * i.params.grid.rows; + e = i.slides.filter((e) => 1 * e.getAttribute('data-swiper-slide-index') === t)[0] + .column; + } else e = i.getSlideIndexByData(n); + const t = r ? Math.ceil(i.slides.length / i.params.grid.rows) : i.slides.length, + { centeredSlides: s } = i.params; + let a = i.params.slidesPerView; + 'auto' === a + ? (a = i.slidesPerViewDynamic()) + : ((a = Math.ceil(parseFloat(i.params.slidesPerView, 10))), + s && a % 2 == 0 && (a += 1)); + let l = t - e < a; + if ((s && (l = l || e < Math.ceil(a / 2)), l)) { + const a = s + ? e < i.activeIndex + ? 'prev' + : 'next' + : e - i.activeIndex - 1 < i.params.slidesPerView + ? 'next' + : 'prev'; + i.loopFix({ + direction: a, + slideTo: !0, + activeSlideIndex: 'next' === a ? e + 1 : e - t + 1, + slideRealIndex: 'next' === a ? i.realIndex : void 0, + }); + } + if (r) { + const e = n * i.params.grid.rows; + n = i.slides.filter((t) => 1 * t.getAttribute('data-swiper-slide-index') === e)[0] + .column; + } else n = i.getSlideIndexByData(n); + } + return ( + requestAnimationFrame(() => { + i.slideTo(n, t, s, a); + }), + i + ); + }, + slideNext: function (e, t, s) { + void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); + const a = this, + { enabled: i, params: r, animating: n } = a; + if (!i) return a; + let l = r.slidesPerGroup; + 'auto' === r.slidesPerView && + 1 === r.slidesPerGroup && + r.slidesPerGroupAuto && + (l = Math.max(a.slidesPerViewDynamic('current', !0), 1)); + const o = a.activeIndex < r.slidesPerGroupSkip ? 1 : l, + d = a.virtual && r.virtual.enabled; + if (r.loop) { + if (n && !d && r.loopPreventsSliding) return !1; + if ( + (a.loopFix({ direction: 'next' }), + (a._clientLeft = a.wrapperEl.clientLeft), + a.activeIndex === a.slides.length - 1 && r.cssMode) + ) + return ( + requestAnimationFrame(() => { + a.slideTo(a.activeIndex + o, e, t, s); + }), + !0 + ); + } + return r.rewind && a.isEnd ? a.slideTo(0, e, t, s) : a.slideTo(a.activeIndex + o, e, t, s); + }, + slidePrev: function (e, t, s) { + void 0 === e && (e = this.params.speed), void 0 === t && (t = !0); + const a = this, + { params: i, snapGrid: r, slidesGrid: n, rtlTranslate: l, enabled: o, animating: d } = a; + if (!o) return a; + const c = a.virtual && i.virtual.enabled; + if (i.loop) { + if (d && !c && i.loopPreventsSliding) return !1; + a.loopFix({ direction: 'prev' }), (a._clientLeft = a.wrapperEl.clientLeft); + } + function p(e) { + return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e); + } + const u = p(l ? a.translate : -a.translate), + m = r.map((e) => p(e)); + let h = r[m.indexOf(u) - 1]; + if (void 0 === h && i.cssMode) { + let e; + r.forEach((t, s) => { + u >= t && (e = s); + }), + void 0 !== e && (h = r[e > 0 ? e - 1 : e]); + } + let f = 0; + if ( + (void 0 !== h && + ((f = n.indexOf(h)), + f < 0 && (f = a.activeIndex - 1), + 'auto' === i.slidesPerView && + 1 === i.slidesPerGroup && + i.slidesPerGroupAuto && + ((f = f - a.slidesPerViewDynamic('previous', !0) + 1), (f = Math.max(f, 0)))), + i.rewind && a.isBeginning) + ) { + const i = + a.params.virtual && a.params.virtual.enabled && a.virtual + ? a.virtual.slides.length - 1 + : a.slides.length - 1; + return a.slideTo(i, e, t, s); + } + return i.loop && 0 === a.activeIndex && i.cssMode + ? (requestAnimationFrame(() => { + a.slideTo(f, e, t, s); + }), + !0) + : a.slideTo(f, e, t, s); + }, + slideReset: function (e, t, s) { + return ( + void 0 === e && (e = this.params.speed), + void 0 === t && (t = !0), + this.slideTo(this.activeIndex, e, t, s) + ); + }, + slideToClosest: function (e, t, s, a) { + void 0 === e && (e = this.params.speed), void 0 === t && (t = !0), void 0 === a && (a = 0.5); + const i = this; + let r = i.activeIndex; + const n = Math.min(i.params.slidesPerGroupSkip, r), + l = n + Math.floor((r - n) / i.params.slidesPerGroup), + o = i.rtlTranslate ? i.translate : -i.translate; + if (o >= i.snapGrid[l]) { + const e = i.snapGrid[l]; + o - e > (i.snapGrid[l + 1] - e) * a && (r += i.params.slidesPerGroup); + } else { + const e = i.snapGrid[l - 1]; + o - e <= (i.snapGrid[l] - e) * a && (r -= i.params.slidesPerGroup); + } + return ( + (r = Math.max(r, 0)), (r = Math.min(r, i.slidesGrid.length - 1)), i.slideTo(r, e, t, s) + ); + }, + slideToClickedSlide: function () { + const e = this, + { params: t, slidesEl: s } = e, + a = 'auto' === t.slidesPerView ? e.slidesPerViewDynamic() : t.slidesPerView; + let i, + r = e.clickedIndex; + const n = e.isElement ? 'swiper-slide' : `.${t.slideClass}`; + if (t.loop) { + if (e.animating) return; + (i = parseInt(e.clickedSlide.getAttribute('data-swiper-slide-index'), 10)), + t.centeredSlides + ? r < e.loopedSlides - a / 2 || r > e.slides.length - e.loopedSlides + a / 2 + ? (e.loopFix(), + (r = e.getSlideIndex(f(s, `${n}[data-swiper-slide-index="${i}"]`)[0])), + l(() => { + e.slideTo(r); + })) + : e.slideTo(r) + : r > e.slides.length - a + ? (e.loopFix(), + (r = e.getSlideIndex(f(s, `${n}[data-swiper-slide-index="${i}"]`)[0])), + l(() => { + e.slideTo(r); + })) + : e.slideTo(r); + } else e.slideTo(r); + }, + }; + var H = { + loopCreate: function (e) { + const t = this, + { params: s, slidesEl: a } = t; + if (!s.loop || (t.virtual && t.params.virtual.enabled)) return; + const i = () => { + f(a, `.${s.slideClass}, swiper-slide`).forEach((e, t) => { + e.setAttribute('data-swiper-slide-index', t); + }); + }, + r = t.grid && s.grid && s.grid.rows > 1, + n = s.slidesPerGroup * (r ? s.grid.rows : 1), + l = t.slides.length % n != 0, + o = r && t.slides.length % s.grid.rows != 0, + d = (e) => { + for (let a = 0; a < e; a += 1) { + const e = t.isElement + ? v('swiper-slide', [s.slideBlankClass]) + : v('div', [s.slideClass, s.slideBlankClass]); + t.slidesEl.append(e); + } + }; + if (l) { + if (s.loopAddBlankSlides) { + d(n - (t.slides.length % n)), t.recalcSlides(), t.updateSlides(); + } else + g( + 'Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)' + ); + i(); + } else if (o) { + if (s.loopAddBlankSlides) { + d(s.grid.rows - (t.slides.length % s.grid.rows)), t.recalcSlides(), t.updateSlides(); + } else + g( + 'Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)' + ); + i(); + } else i(); + t.loopFix({ slideRealIndex: e, direction: s.centeredSlides ? void 0 : 'next' }); + }, + loopFix: function (e) { + let { + slideRealIndex: t, + slideTo: s = !0, + direction: a, + setTranslate: i, + activeSlideIndex: r, + byController: n, + byMousewheel: l, + } = void 0 === e ? {} : e; + const o = this; + if (!o.params.loop) return; + o.emit('beforeLoopFix'); + const { slides: d, allowSlidePrev: c, allowSlideNext: p, slidesEl: u, params: m } = o, + { centeredSlides: h } = m; + if (((o.allowSlidePrev = !0), (o.allowSlideNext = !0), o.virtual && m.virtual.enabled)) + return ( + s && + (m.centeredSlides || 0 !== o.snapIndex + ? m.centeredSlides && o.snapIndex < m.slidesPerView + ? o.slideTo(o.virtual.slides.length + o.snapIndex, 0, !1, !0) + : o.snapIndex === o.snapGrid.length - 1 && + o.slideTo(o.virtual.slidesBefore, 0, !1, !0) + : o.slideTo(o.virtual.slides.length, 0, !1, !0)), + (o.allowSlidePrev = c), + (o.allowSlideNext = p), + void o.emit('loopFix') + ); + let f = m.slidesPerView; + 'auto' === f + ? (f = o.slidesPerViewDynamic()) + : ((f = Math.ceil(parseFloat(m.slidesPerView, 10))), h && f % 2 == 0 && (f += 1)); + const v = m.slidesPerGroupAuto ? f : m.slidesPerGroup; + let w = v; + w % v != 0 && (w += v - (w % v)), (w += m.loopAdditionalSlides), (o.loopedSlides = w); + const b = o.grid && m.grid && m.grid.rows > 1; + d.length < f + w + ? g( + 'Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters' + ) + : b && + 'row' === m.grid.fill && + g('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`'); + const y = [], + E = []; + let x = o.activeIndex; + void 0 === r + ? (r = o.getSlideIndex(d.filter((e) => e.classList.contains(m.slideActiveClass))[0])) + : (x = r); + const S = 'next' === a || !a, + T = 'prev' === a || !a; + let M = 0, + C = 0; + const P = b ? Math.ceil(d.length / m.grid.rows) : d.length, + L = (b ? d[r].column : r) + (h && void 0 === i ? -f / 2 + 0.5 : 0); + if (L < w) { + M = Math.max(w - L, v); + for (let e = 0; e < w - L; e += 1) { + const t = e - Math.floor(e / P) * P; + if (b) { + const e = P - t - 1; + for (let t = d.length - 1; t >= 0; t -= 1) d[t].column === e && y.push(t); + } else y.push(P - t - 1); + } + } else if (L + f > P - w) { + C = Math.max(L - (P - 2 * w), v); + for (let e = 0; e < C; e += 1) { + const t = e - Math.floor(e / P) * P; + b + ? d.forEach((e, s) => { + e.column === t && E.push(s); + }) + : E.push(t); + } + } + if ( + ((o.__preventObserver__ = !0), + requestAnimationFrame(() => { + o.__preventObserver__ = !1; + }), + T && + y.forEach((e) => { + (d[e].swiperLoopMoveDOM = !0), u.prepend(d[e]), (d[e].swiperLoopMoveDOM = !1); + }), + S && + E.forEach((e) => { + (d[e].swiperLoopMoveDOM = !0), u.append(d[e]), (d[e].swiperLoopMoveDOM = !1); + }), + o.recalcSlides(), + 'auto' === m.slidesPerView + ? o.updateSlides() + : b && + ((y.length > 0 && T) || (E.length > 0 && S)) && + o.slides.forEach((e, t) => { + o.grid.updateSlide(t, e, o.slides); + }), + m.watchSlidesProgress && o.updateSlidesOffset(), + s) + ) + if (y.length > 0 && T) { + if (void 0 === t) { + const e = o.slidesGrid[x], + t = o.slidesGrid[x + M] - e; + l + ? o.setTranslate(o.translate - t) + : (o.slideTo(x + M, 0, !1, !0), + i && + ((o.touchEventsData.startTranslate = o.touchEventsData.startTranslate - t), + (o.touchEventsData.currentTranslate = o.touchEventsData.currentTranslate - t))); + } else if (i) { + const e = b ? y.length / m.grid.rows : y.length; + o.slideTo(o.activeIndex + e, 0, !1, !0), + (o.touchEventsData.currentTranslate = o.translate); + } + } else if (E.length > 0 && S) + if (void 0 === t) { + const e = o.slidesGrid[x], + t = o.slidesGrid[x - C] - e; + l + ? o.setTranslate(o.translate - t) + : (o.slideTo(x - C, 0, !1, !0), + i && + ((o.touchEventsData.startTranslate = o.touchEventsData.startTranslate - t), + (o.touchEventsData.currentTranslate = o.touchEventsData.currentTranslate - t))); + } else { + const e = b ? E.length / m.grid.rows : E.length; + o.slideTo(o.activeIndex - e, 0, !1, !0); + } + if ( + ((o.allowSlidePrev = c), (o.allowSlideNext = p), o.controller && o.controller.control && !n) + ) { + const e = { + slideRealIndex: t, + direction: a, + setTranslate: i, + activeSlideIndex: r, + byController: !0, + }; + Array.isArray(o.controller.control) + ? o.controller.control.forEach((t) => { + !t.destroyed && + t.params.loop && + t.loopFix({ ...e, slideTo: t.params.slidesPerView === m.slidesPerView && s }); + }) + : o.controller.control instanceof o.constructor && + o.controller.control.params.loop && + o.controller.control.loopFix({ + ...e, + slideTo: o.controller.control.params.slidesPerView === m.slidesPerView && s, + }); + } + o.emit('loopFix'); + }, + loopDestroy: function () { + const e = this, + { params: t, slidesEl: s } = e; + if (!t.loop || (e.virtual && e.params.virtual.enabled)) return; + e.recalcSlides(); + const a = []; + e.slides.forEach((e) => { + const t = + void 0 === e.swiperSlideIndex + ? 1 * e.getAttribute('data-swiper-slide-index') + : e.swiperSlideIndex; + a[t] = e; + }), + e.slides.forEach((e) => { + e.removeAttribute('data-swiper-slide-index'); + }), + a.forEach((e) => { + s.append(e); + }), + e.recalcSlides(), + e.slideTo(e.realIndex, 0); + }, + }; + function N(e, t, s) { + const a = r(), + { params: i } = e, + n = i.edgeSwipeDetection, + l = i.edgeSwipeThreshold; + return ( + !n || !(s <= l || s >= a.innerWidth - l) || ('prevent' === n && (t.preventDefault(), !0)) + ); + } + function Y(e) { + const t = this, + s = a(); + let i = e; + i.originalEvent && (i = i.originalEvent); + const n = t.touchEventsData; + if ('pointerdown' === i.type) { + if (null !== n.pointerId && n.pointerId !== i.pointerId) return; + n.pointerId = i.pointerId; + } else + 'touchstart' === i.type && + 1 === i.targetTouches.length && + (n.touchId = i.targetTouches[0].identifier); + if ('touchstart' === i.type) return void N(t, i, i.targetTouches[0].pageX); + const { params: l, touches: d, enabled: c } = t; + if (!c) return; + if (!l.simulateTouch && 'mouse' === i.pointerType) return; + if (t.animating && l.preventInteractionOnTransition) return; + !t.animating && l.cssMode && l.loop && t.loopFix(); + let p = i.target; + if ('wrapper' === l.touchEventsTarget && !t.wrapperEl.contains(p)) return; + if ('which' in i && 3 === i.which) return; + if ('button' in i && i.button > 0) return; + if (n.isTouched && n.isMoved) return; + const u = !!l.noSwipingClass && '' !== l.noSwipingClass, + m = i.composedPath ? i.composedPath() : i.path; + u && i.target && i.target.shadowRoot && m && (p = m[0]); + const h = l.noSwipingSelector ? l.noSwipingSelector : `.${l.noSwipingClass}`, + f = !(!i.target || !i.target.shadowRoot); + if ( + l.noSwiping && + (f + ? (function (e, t) { + return ( + void 0 === t && (t = this), + (function t(s) { + if (!s || s === a() || s === r()) return null; + s.assignedSlot && (s = s.assignedSlot); + const i = s.closest(e); + return i || s.getRootNode ? i || t(s.getRootNode().host) : null; + })(t) + ); + })(h, p) + : p.closest(h)) + ) + return void (t.allowClick = !0); + if (l.swipeHandler && !p.closest(l.swipeHandler)) return; + (d.currentX = i.pageX), (d.currentY = i.pageY); + const g = d.currentX, + v = d.currentY; + if (!N(t, i, g)) return; + Object.assign(n, { + isTouched: !0, + isMoved: !1, + allowTouchCallbacks: !0, + isScrolling: void 0, + startMoving: void 0, + }), + (d.startX = g), + (d.startY = v), + (n.touchStartTime = o()), + (t.allowClick = !0), + t.updateSize(), + (t.swipeDirection = void 0), + l.threshold > 0 && (n.allowThresholdMove = !1); + let w = !0; + p.matches(n.focusableElements) && ((w = !1), 'SELECT' === p.nodeName && (n.isTouched = !1)), + s.activeElement && + s.activeElement.matches(n.focusableElements) && + s.activeElement !== p && + s.activeElement.blur(); + const b = w && t.allowTouchMove && l.touchStartPreventDefault; + (!l.touchStartForcePreventDefault && !b) || p.isContentEditable || i.preventDefault(), + l.freeMode && + l.freeMode.enabled && + t.freeMode && + t.animating && + !l.cssMode && + t.freeMode.onTouchStart(), + t.emit('touchStart', i); + } + function B(e) { + const t = a(), + s = this, + i = s.touchEventsData, + { params: r, touches: n, rtlTranslate: l, enabled: d } = s; + if (!d) return; + if (!r.simulateTouch && 'mouse' === e.pointerType) return; + let c, + p = e; + if ((p.originalEvent && (p = p.originalEvent), 'pointermove' === p.type)) { + if (null !== i.touchId) return; + if (p.pointerId !== i.pointerId) return; + } + if ('touchmove' === p.type) { + if ( + ((c = [...p.changedTouches].filter((e) => e.identifier === i.touchId)[0]), + !c || c.identifier !== i.touchId) + ) + return; + } else c = p; + if (!i.isTouched) + return void (i.startMoving && i.isScrolling && s.emit('touchMoveOpposite', p)); + const u = c.pageX, + m = c.pageY; + if (p.preventedByNestedSwiper) return (n.startX = u), void (n.startY = m); + if (!s.allowTouchMove) + return ( + p.target.matches(i.focusableElements) || (s.allowClick = !1), + void ( + i.isTouched && + (Object.assign(n, { startX: u, startY: m, currentX: u, currentY: m }), + (i.touchStartTime = o())) + ) + ); + if (r.touchReleaseOnEdges && !r.loop) + if (s.isVertical()) { + if ( + (m < n.startY && s.translate <= s.maxTranslate()) || + (m > n.startY && s.translate >= s.minTranslate()) + ) + return (i.isTouched = !1), void (i.isMoved = !1); + } else if ( + (u < n.startX && s.translate <= s.maxTranslate()) || + (u > n.startX && s.translate >= s.minTranslate()) + ) + return; + if (t.activeElement && p.target === t.activeElement && p.target.matches(i.focusableElements)) + return (i.isMoved = !0), void (s.allowClick = !1); + i.allowTouchCallbacks && s.emit('touchMove', p), + (n.previousX = n.currentX), + (n.previousY = n.currentY), + (n.currentX = u), + (n.currentY = m); + const h = n.currentX - n.startX, + f = n.currentY - n.startY; + if (s.params.threshold && Math.sqrt(h ** 2 + f ** 2) < s.params.threshold) return; + if (void 0 === i.isScrolling) { + let e; + (s.isHorizontal() && n.currentY === n.startY) || (s.isVertical() && n.currentX === n.startX) + ? (i.isScrolling = !1) + : h * h + f * f >= 25 && + ((e = (180 * Math.atan2(Math.abs(f), Math.abs(h))) / Math.PI), + (i.isScrolling = s.isHorizontal() ? e > r.touchAngle : 90 - e > r.touchAngle)); + } + if ( + (i.isScrolling && s.emit('touchMoveOpposite', p), + void 0 === i.startMoving && + ((n.currentX === n.startX && n.currentY === n.startY) || (i.startMoving = !0)), + i.isScrolling) + ) + return void (i.isTouched = !1); + if (!i.startMoving) return; + (s.allowClick = !1), + !r.cssMode && p.cancelable && p.preventDefault(), + r.touchMoveStopPropagation && !r.nested && p.stopPropagation(); + let g = s.isHorizontal() ? h : f, + v = s.isHorizontal() ? n.currentX - n.previousX : n.currentY - n.previousY; + r.oneWayMovement && ((g = Math.abs(g) * (l ? 1 : -1)), (v = Math.abs(v) * (l ? 1 : -1))), + (n.diff = g), + (g *= r.touchRatio), + l && ((g = -g), (v = -v)); + const w = s.touchesDirection; + (s.swipeDirection = g > 0 ? 'prev' : 'next'), (s.touchesDirection = v > 0 ? 'prev' : 'next'); + const b = s.params.loop && !r.cssMode, + y = + ('next' === s.touchesDirection && s.allowSlideNext) || + ('prev' === s.touchesDirection && s.allowSlidePrev); + if (!i.isMoved) { + if ( + (b && y && s.loopFix({ direction: s.swipeDirection }), + (i.startTranslate = s.getTranslate()), + s.setTransition(0), + s.animating) + ) { + const e = new window.CustomEvent('transitionend', { bubbles: !0, cancelable: !0 }); + s.wrapperEl.dispatchEvent(e); + } + (i.allowMomentumBounce = !1), + !r.grabCursor || + (!0 !== s.allowSlideNext && !0 !== s.allowSlidePrev) || + s.setGrabCursor(!0), + s.emit('sliderFirstMove', p); + } + if ( + (new Date().getTime(), + i.isMoved && i.allowThresholdMove && w !== s.touchesDirection && b && y && Math.abs(g) >= 1) + ) + return ( + Object.assign(n, { + startX: u, + startY: m, + currentX: u, + currentY: m, + startTranslate: i.currentTranslate, + }), + (i.loopSwapReset = !0), + void (i.startTranslate = i.currentTranslate) + ); + s.emit('sliderMove', p), (i.isMoved = !0), (i.currentTranslate = g + i.startTranslate); + let E = !0, + x = r.resistanceRatio; + if ( + (r.touchReleaseOnEdges && (x = 0), + g > 0 + ? (b && + y && + i.allowThresholdMove && + i.currentTranslate > + (r.centeredSlides + ? s.minTranslate() - s.slidesSizesGrid[s.activeIndex + 1] + : s.minTranslate()) && + s.loopFix({ direction: 'prev', setTranslate: !0, activeSlideIndex: 0 }), + i.currentTranslate > s.minTranslate() && + ((E = !1), + r.resistance && + (i.currentTranslate = + s.minTranslate() - 1 + (-s.minTranslate() + i.startTranslate + g) ** x))) + : g < 0 && + (b && + y && + i.allowThresholdMove && + i.currentTranslate < + (r.centeredSlides + ? s.maxTranslate() + s.slidesSizesGrid[s.slidesSizesGrid.length - 1] + : s.maxTranslate()) && + s.loopFix({ + direction: 'next', + setTranslate: !0, + activeSlideIndex: + s.slides.length - + ('auto' === r.slidesPerView + ? s.slidesPerViewDynamic() + : Math.ceil(parseFloat(r.slidesPerView, 10))), + }), + i.currentTranslate < s.maxTranslate() && + ((E = !1), + r.resistance && + (i.currentTranslate = + s.maxTranslate() + 1 - (s.maxTranslate() - i.startTranslate - g) ** x))), + E && (p.preventedByNestedSwiper = !0), + !s.allowSlideNext && + 'next' === s.swipeDirection && + i.currentTranslate < i.startTranslate && + (i.currentTranslate = i.startTranslate), + !s.allowSlidePrev && + 'prev' === s.swipeDirection && + i.currentTranslate > i.startTranslate && + (i.currentTranslate = i.startTranslate), + s.allowSlidePrev || s.allowSlideNext || (i.currentTranslate = i.startTranslate), + r.threshold > 0) + ) { + if (!(Math.abs(g) > r.threshold || i.allowThresholdMove)) + return void (i.currentTranslate = i.startTranslate); + if (!i.allowThresholdMove) + return ( + (i.allowThresholdMove = !0), + (n.startX = n.currentX), + (n.startY = n.currentY), + (i.currentTranslate = i.startTranslate), + void (n.diff = s.isHorizontal() ? n.currentX - n.startX : n.currentY - n.startY) + ); + } + r.followFinger && + !r.cssMode && + (((r.freeMode && r.freeMode.enabled && s.freeMode) || r.watchSlidesProgress) && + (s.updateActiveIndex(), s.updateSlidesClasses()), + r.freeMode && r.freeMode.enabled && s.freeMode && s.freeMode.onTouchMove(), + s.updateProgress(i.currentTranslate), + s.setTranslate(i.currentTranslate)); + } + function R(e) { + const t = this, + s = t.touchEventsData; + let a, + i = e; + i.originalEvent && (i = i.originalEvent); + if ('touchend' === i.type || 'touchcancel' === i.type) { + if ( + ((a = [...i.changedTouches].filter((e) => e.identifier === s.touchId)[0]), + !a || a.identifier !== s.touchId) + ) + return; + } else { + if (null !== s.touchId) return; + if (i.pointerId !== s.pointerId) return; + a = i; + } + if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(i.type)) { + if ( + !( + ['pointercancel', 'contextmenu'].includes(i.type) && + (t.browser.isSafari || t.browser.isWebView) + ) + ) + return; + } + (s.pointerId = null), (s.touchId = null); + const { params: r, touches: n, rtlTranslate: d, slidesGrid: c, enabled: p } = t; + if (!p) return; + if (!r.simulateTouch && 'mouse' === i.pointerType) return; + if ( + (s.allowTouchCallbacks && t.emit('touchEnd', i), (s.allowTouchCallbacks = !1), !s.isTouched) + ) + return ( + s.isMoved && r.grabCursor && t.setGrabCursor(!1), + (s.isMoved = !1), + void (s.startMoving = !1) + ); + r.grabCursor && + s.isMoved && + s.isTouched && + (!0 === t.allowSlideNext || !0 === t.allowSlidePrev) && + t.setGrabCursor(!1); + const u = o(), + m = u - s.touchStartTime; + if (t.allowClick) { + const e = i.path || (i.composedPath && i.composedPath()); + t.updateClickedSlide((e && e[0]) || i.target, e), + t.emit('tap click', i), + m < 300 && u - s.lastClickTime < 300 && t.emit('doubleTap doubleClick', i); + } + if ( + ((s.lastClickTime = o()), + l(() => { + t.destroyed || (t.allowClick = !0); + }), + !s.isTouched || + !s.isMoved || + !t.swipeDirection || + (0 === n.diff && !s.loopSwapReset) || + (s.currentTranslate === s.startTranslate && !s.loopSwapReset)) + ) + return (s.isTouched = !1), (s.isMoved = !1), void (s.startMoving = !1); + let h; + if ( + ((s.isTouched = !1), + (s.isMoved = !1), + (s.startMoving = !1), + (h = r.followFinger ? (d ? t.translate : -t.translate) : -s.currentTranslate), + r.cssMode) + ) + return; + if (r.freeMode && r.freeMode.enabled) return void t.freeMode.onTouchEnd({ currentPos: h }); + let f = 0, + g = t.slidesSizesGrid[0]; + for (let e = 0; e < c.length; e += e < r.slidesPerGroupSkip ? 1 : r.slidesPerGroup) { + const t = e < r.slidesPerGroupSkip - 1 ? 1 : r.slidesPerGroup; + void 0 !== c[e + t] + ? h >= c[e] && h < c[e + t] && ((f = e), (g = c[e + t] - c[e])) + : h >= c[e] && ((f = e), (g = c[c.length - 1] - c[c.length - 2])); + } + let v = null, + w = null; + r.rewind && + (t.isBeginning + ? (w = + r.virtual && r.virtual.enabled && t.virtual + ? t.virtual.slides.length - 1 + : t.slides.length - 1) + : t.isEnd && (v = 0)); + const b = (h - c[f]) / g, + y = f < r.slidesPerGroupSkip - 1 ? 1 : r.slidesPerGroup; + if (m > r.longSwipesMs) { + if (!r.longSwipes) return void t.slideTo(t.activeIndex); + 'next' === t.swipeDirection && + (b >= r.longSwipesRatio ? t.slideTo(r.rewind && t.isEnd ? v : f + y) : t.slideTo(f)), + 'prev' === t.swipeDirection && + (b > 1 - r.longSwipesRatio + ? t.slideTo(f + y) + : null !== w && b < 0 && Math.abs(b) > r.longSwipesRatio + ? t.slideTo(w) + : t.slideTo(f)); + } else { + if (!r.shortSwipes) return void t.slideTo(t.activeIndex); + t.navigation && (i.target === t.navigation.nextEl || i.target === t.navigation.prevEl) + ? i.target === t.navigation.nextEl + ? t.slideTo(f + y) + : t.slideTo(f) + : ('next' === t.swipeDirection && t.slideTo(null !== v ? v : f + y), + 'prev' === t.swipeDirection && t.slideTo(null !== w ? w : f)); + } + } + function q() { + const e = this, + { params: t, el: s } = e; + if (s && 0 === s.offsetWidth) return; + t.breakpoints && e.setBreakpoint(); + const { allowSlideNext: a, allowSlidePrev: i, snapGrid: r } = e, + n = e.virtual && e.params.virtual.enabled; + (e.allowSlideNext = !0), + (e.allowSlidePrev = !0), + e.updateSize(), + e.updateSlides(), + e.updateSlidesClasses(); + const l = n && t.loop; + !('auto' === t.slidesPerView || t.slidesPerView > 1) || + !e.isEnd || + e.isBeginning || + e.params.centeredSlides || + l + ? e.params.loop && !n + ? e.slideToLoop(e.realIndex, 0, !1, !0) + : e.slideTo(e.activeIndex, 0, !1, !0) + : e.slideTo(e.slides.length - 1, 0, !1, !0), + e.autoplay && + e.autoplay.running && + e.autoplay.paused && + (clearTimeout(e.autoplay.resizeTimeout), + (e.autoplay.resizeTimeout = setTimeout(() => { + e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.resume(); + }, 500))), + (e.allowSlidePrev = i), + (e.allowSlideNext = a), + e.params.watchOverflow && r !== e.snapGrid && e.checkOverflow(); + } + function V(e) { + const t = this; + t.enabled && + (t.allowClick || + (t.params.preventClicks && e.preventDefault(), + t.params.preventClicksPropagation && + t.animating && + (e.stopPropagation(), e.stopImmediatePropagation()))); + } + function _() { + const e = this, + { wrapperEl: t, rtlTranslate: s, enabled: a } = e; + if (!a) return; + let i; + (e.previousTranslate = e.translate), + e.isHorizontal() ? (e.translate = -t.scrollLeft) : (e.translate = -t.scrollTop), + 0 === e.translate && (e.translate = 0), + e.updateActiveIndex(), + e.updateSlidesClasses(); + const r = e.maxTranslate() - e.minTranslate(); + (i = 0 === r ? 0 : (e.translate - e.minTranslate()) / r), + i !== e.progress && e.updateProgress(s ? -e.translate : e.translate), + e.emit('setTranslate', e.translate, !1); + } + function F(e) { + const t = this; + z(t, e.target), + t.params.cssMode || ('auto' !== t.params.slidesPerView && !t.params.autoHeight) || t.update(); + } + function j() { + const e = this; + e.documentTouchHandlerProceeded || + ((e.documentTouchHandlerProceeded = !0), + e.params.touchReleaseOnEdges && (e.el.style.touchAction = 'auto')); + } + const W = (e, t) => { + const s = a(), + { params: i, el: r, wrapperEl: n, device: l } = e, + o = !!i.nested, + d = 'on' === t ? 'addEventListener' : 'removeEventListener', + c = t; + s[d]('touchstart', e.onDocumentTouchStart, { passive: !1, capture: o }), + r[d]('touchstart', e.onTouchStart, { passive: !1 }), + r[d]('pointerdown', e.onTouchStart, { passive: !1 }), + s[d]('touchmove', e.onTouchMove, { passive: !1, capture: o }), + s[d]('pointermove', e.onTouchMove, { passive: !1, capture: o }), + s[d]('touchend', e.onTouchEnd, { passive: !0 }), + s[d]('pointerup', e.onTouchEnd, { passive: !0 }), + s[d]('pointercancel', e.onTouchEnd, { passive: !0 }), + s[d]('touchcancel', e.onTouchEnd, { passive: !0 }), + s[d]('pointerout', e.onTouchEnd, { passive: !0 }), + s[d]('pointerleave', e.onTouchEnd, { passive: !0 }), + s[d]('contextmenu', e.onTouchEnd, { passive: !0 }), + (i.preventClicks || i.preventClicksPropagation) && r[d]('click', e.onClick, !0), + i.cssMode && n[d]('scroll', e.onScroll), + i.updateOnWindowResize + ? e[c]( + l.ios || l.android + ? 'resize orientationchange observerUpdate' + : 'resize observerUpdate', + q, + !0 + ) + : e[c]('observerUpdate', q, !0), + r[d]('load', e.onLoad, { capture: !0 }); + }; + const U = (e, t) => e.grid && t.grid && t.grid.rows > 1; + var K = { + init: !0, + direction: 'horizontal', + oneWayMovement: !1, + touchEventsTarget: 'wrapper', + initialSlide: 0, + speed: 300, + cssMode: !1, + updateOnWindowResize: !0, + resizeObserver: !0, + nested: !1, + createElements: !1, + eventsPrefix: 'swiper', + enabled: !0, + focusableElements: 'input, select, option, textarea, button, video, label', + width: null, + height: null, + preventInteractionOnTransition: !1, + userAgent: null, + url: null, + edgeSwipeDetection: !1, + edgeSwipeThreshold: 20, + autoHeight: !1, + setWrapperSize: !1, + virtualTranslate: !1, + effect: 'slide', + breakpoints: void 0, + breakpointsBase: 'window', + spaceBetween: 0, + slidesPerView: 1, + slidesPerGroup: 1, + slidesPerGroupSkip: 0, + slidesPerGroupAuto: !1, + centeredSlides: !1, + centeredSlidesBounds: !1, + slidesOffsetBefore: 0, + slidesOffsetAfter: 0, + normalizeSlideIndex: !0, + centerInsufficientSlides: !1, + watchOverflow: !0, + roundLengths: !1, + touchRatio: 1, + touchAngle: 45, + simulateTouch: !0, + shortSwipes: !0, + longSwipes: !0, + longSwipesRatio: 0.5, + longSwipesMs: 300, + followFinger: !0, + allowTouchMove: !0, + threshold: 5, + touchMoveStopPropagation: !1, + touchStartPreventDefault: !0, + touchStartForcePreventDefault: !1, + touchReleaseOnEdges: !1, + uniqueNavElements: !0, + resistance: !0, + resistanceRatio: 0.85, + watchSlidesProgress: !1, + grabCursor: !1, + preventClicks: !0, + preventClicksPropagation: !0, + slideToClickedSlide: !1, + loop: !1, + loopAddBlankSlides: !0, + loopAdditionalSlides: 0, + loopPreventsSliding: !0, + rewind: !1, + allowSlidePrev: !0, + allowSlideNext: !0, + swipeHandler: null, + noSwiping: !0, + noSwipingClass: 'swiper-no-swiping', + noSwipingSelector: null, + passiveListeners: !0, + maxBackfaceHiddenSlides: 10, + containerModifierClass: 'swiper-', + slideClass: 'swiper-slide', + slideBlankClass: 'swiper-slide-blank', + slideActiveClass: 'swiper-slide-active', + slideVisibleClass: 'swiper-slide-visible', + slideFullyVisibleClass: 'swiper-slide-fully-visible', + slideNextClass: 'swiper-slide-next', + slidePrevClass: 'swiper-slide-prev', + wrapperClass: 'swiper-wrapper', + lazyPreloaderClass: 'swiper-lazy-preloader', + lazyPreloadPrevNext: 0, + runCallbacksOnInit: !0, + _emitClasses: !1, + }; + function Z(e, t) { + return function (s) { + void 0 === s && (s = {}); + const a = Object.keys(s)[0], + i = s[a]; + 'object' == typeof i && null !== i + ? (!0 === e[a] && (e[a] = { enabled: !0 }), + 'navigation' === a && + e[a] && + e[a].enabled && + !e[a].prevEl && + !e[a].nextEl && + (e[a].auto = !0), + ['pagination', 'scrollbar'].indexOf(a) >= 0 && + e[a] && + e[a].enabled && + !e[a].el && + (e[a].auto = !0), + a in e && 'enabled' in i + ? ('object' != typeof e[a] || 'enabled' in e[a] || (e[a].enabled = !0), + e[a] || (e[a] = { enabled: !1 }), + p(t, s)) + : p(t, s)) + : p(t, s); + }; + } + const Q = { + eventsEmitter: I, + update: O, + translate: D, + transition: { + setTransition: function (e, t) { + const s = this; + s.params.cssMode || + ((s.wrapperEl.style.transitionDuration = `${e}ms`), + (s.wrapperEl.style.transitionDelay = 0 === e ? '0ms' : '')), + s.emit('setTransition', e, t); + }, + transitionStart: function (e, t) { + void 0 === e && (e = !0); + const s = this, + { params: a } = s; + a.cssMode || + (a.autoHeight && s.updateAutoHeight(), + G({ swiper: s, runCallbacks: e, direction: t, step: 'Start' })); + }, + transitionEnd: function (e, t) { + void 0 === e && (e = !0); + const s = this, + { params: a } = s; + (s.animating = !1), + a.cssMode || + (s.setTransition(0), G({ swiper: s, runCallbacks: e, direction: t, step: 'End' })); + }, + }, + slide: X, + loop: H, + grabCursor: { + setGrabCursor: function (e) { + const t = this; + if (!t.params.simulateTouch || (t.params.watchOverflow && t.isLocked) || t.params.cssMode) + return; + const s = 'container' === t.params.touchEventsTarget ? t.el : t.wrapperEl; + t.isElement && (t.__preventObserver__ = !0), + (s.style.cursor = 'move'), + (s.style.cursor = e ? 'grabbing' : 'grab'), + t.isElement && + requestAnimationFrame(() => { + t.__preventObserver__ = !1; + }); + }, + unsetGrabCursor: function () { + const e = this; + (e.params.watchOverflow && e.isLocked) || + e.params.cssMode || + (e.isElement && (e.__preventObserver__ = !0), + (e['container' === e.params.touchEventsTarget ? 'el' : 'wrapperEl'].style.cursor = ''), + e.isElement && + requestAnimationFrame(() => { + e.__preventObserver__ = !1; + })); + }, + }, + events: { + attachEvents: function () { + const e = this, + { params: t } = e; + (e.onTouchStart = Y.bind(e)), + (e.onTouchMove = B.bind(e)), + (e.onTouchEnd = R.bind(e)), + (e.onDocumentTouchStart = j.bind(e)), + t.cssMode && (e.onScroll = _.bind(e)), + (e.onClick = V.bind(e)), + (e.onLoad = F.bind(e)), + W(e, 'on'); + }, + detachEvents: function () { + W(this, 'off'); + }, + }, + breakpoints: { + setBreakpoint: function () { + const e = this, + { realIndex: t, initialized: s, params: a, el: i } = e, + r = a.breakpoints; + if (!r || (r && 0 === Object.keys(r).length)) return; + const n = e.getBreakpoint(r, e.params.breakpointsBase, e.el); + if (!n || e.currentBreakpoint === n) return; + const l = (n in r ? r[n] : void 0) || e.originalParams, + o = U(e, a), + d = U(e, l), + c = a.enabled; + o && !d + ? (i.classList.remove( + `${a.containerModifierClass}grid`, + `${a.containerModifierClass}grid-column` + ), + e.emitContainerClasses()) + : !o && + d && + (i.classList.add(`${a.containerModifierClass}grid`), + ((l.grid.fill && 'column' === l.grid.fill) || + (!l.grid.fill && 'column' === a.grid.fill)) && + i.classList.add(`${a.containerModifierClass}grid-column`), + e.emitContainerClasses()), + ['navigation', 'pagination', 'scrollbar'].forEach((t) => { + if (void 0 === l[t]) return; + const s = a[t] && a[t].enabled, + i = l[t] && l[t].enabled; + s && !i && e[t].disable(), !s && i && e[t].enable(); + }); + const u = l.direction && l.direction !== a.direction, + m = a.loop && (l.slidesPerView !== a.slidesPerView || u), + h = a.loop; + u && s && e.changeDirection(), p(e.params, l); + const f = e.params.enabled, + g = e.params.loop; + Object.assign(e, { + allowTouchMove: e.params.allowTouchMove, + allowSlideNext: e.params.allowSlideNext, + allowSlidePrev: e.params.allowSlidePrev, + }), + c && !f ? e.disable() : !c && f && e.enable(), + (e.currentBreakpoint = n), + e.emit('_beforeBreakpoint', l), + s && + (m + ? (e.loopDestroy(), e.loopCreate(t), e.updateSlides()) + : !h && g + ? (e.loopCreate(t), e.updateSlides()) + : h && !g && e.loopDestroy()), + e.emit('breakpoint', l); + }, + getBreakpoint: function (e, t, s) { + if ((void 0 === t && (t = 'window'), !e || ('container' === t && !s))) return; + let a = !1; + const i = r(), + n = 'window' === t ? i.innerHeight : s.clientHeight, + l = Object.keys(e).map((e) => { + if ('string' == typeof e && 0 === e.indexOf('@')) { + const t = parseFloat(e.substr(1)); + return { value: n * t, point: e }; + } + return { value: e, point: e }; + }); + l.sort((e, t) => parseInt(e.value, 10) - parseInt(t.value, 10)); + for (let e = 0; e < l.length; e += 1) { + const { point: r, value: n } = l[e]; + 'window' === t + ? i.matchMedia(`(min-width: ${n}px)`).matches && (a = r) + : n <= s.clientWidth && (a = r); + } + return a || 'max'; + }, + }, + checkOverflow: { + checkOverflow: function () { + const e = this, + { isLocked: t, params: s } = e, + { slidesOffsetBefore: a } = s; + if (a) { + const t = e.slides.length - 1, + s = e.slidesGrid[t] + e.slidesSizesGrid[t] + 2 * a; + e.isLocked = e.size > s; + } else e.isLocked = 1 === e.snapGrid.length; + !0 === s.allowSlideNext && (e.allowSlideNext = !e.isLocked), + !0 === s.allowSlidePrev && (e.allowSlidePrev = !e.isLocked), + t && t !== e.isLocked && (e.isEnd = !1), + t !== e.isLocked && e.emit(e.isLocked ? 'lock' : 'unlock'); + }, + }, + classes: { + addClasses: function () { + const e = this, + { classNames: t, params: s, rtl: a, el: i, device: r } = e, + n = (function (e, t) { + const s = []; + return ( + e.forEach((e) => { + 'object' == typeof e + ? Object.keys(e).forEach((a) => { + e[a] && s.push(t + a); + }) + : 'string' == typeof e && s.push(t + e); + }), + s + ); + })( + [ + 'initialized', + s.direction, + { 'free-mode': e.params.freeMode && s.freeMode.enabled }, + { autoheight: s.autoHeight }, + { rtl: a }, + { grid: s.grid && s.grid.rows > 1 }, + { 'grid-column': s.grid && s.grid.rows > 1 && 'column' === s.grid.fill }, + { android: r.android }, + { ios: r.ios }, + { 'css-mode': s.cssMode }, + { centered: s.cssMode && s.centeredSlides }, + { 'watch-progress': s.watchSlidesProgress }, + ], + s.containerModifierClass + ); + t.push(...n), i.classList.add(...t), e.emitContainerClasses(); + }, + removeClasses: function () { + const { el: e, classNames: t } = this; + e.classList.remove(...t), this.emitContainerClasses(); + }, + }, + }, + J = {}; + class ee { + constructor() { + let e, t; + for (var s = arguments.length, i = new Array(s), r = 0; r < s; r++) i[r] = arguments[r]; + 1 === i.length && + i[0].constructor && + 'Object' === Object.prototype.toString.call(i[0]).slice(8, -1) + ? (t = i[0]) + : ([e, t] = i), + t || (t = {}), + (t = p({}, t)), + e && !t.el && (t.el = e); + const n = a(); + if (t.el && 'string' == typeof t.el && n.querySelectorAll(t.el).length > 1) { + const e = []; + return ( + n.querySelectorAll(t.el).forEach((s) => { + const a = p({}, t, { el: s }); + e.push(new ee(a)); + }), + e + ); + } + const l = this; + (l.__swiper__ = !0), + (l.support = P()), + (l.device = L({ userAgent: t.userAgent })), + (l.browser = A()), + (l.eventsListeners = {}), + (l.eventsAnyListeners = []), + (l.modules = [...l.__modules__]), + t.modules && Array.isArray(t.modules) && l.modules.push(...t.modules); + const o = {}; + l.modules.forEach((e) => { + e({ + params: t, + swiper: l, + extendParams: Z(t, o), + on: l.on.bind(l), + once: l.once.bind(l), + off: l.off.bind(l), + emit: l.emit.bind(l), + }); + }); + const d = p({}, K, o); + return ( + (l.params = p({}, d, J, t)), + (l.originalParams = p({}, l.params)), + (l.passedParams = p({}, t)), + l.params && + l.params.on && + Object.keys(l.params.on).forEach((e) => { + l.on(e, l.params.on[e]); + }), + l.params && l.params.onAny && l.onAny(l.params.onAny), + Object.assign(l, { + enabled: l.params.enabled, + el: e, + classNames: [], + slides: [], + slidesGrid: [], + snapGrid: [], + slidesSizesGrid: [], + isHorizontal: () => 'horizontal' === l.params.direction, + isVertical: () => 'vertical' === l.params.direction, + activeIndex: 0, + realIndex: 0, + isBeginning: !0, + isEnd: !1, + translate: 0, + previousTranslate: 0, + progress: 0, + velocity: 0, + animating: !1, + cssOverflowAdjustment() { + return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; + }, + allowSlideNext: l.params.allowSlideNext, + allowSlidePrev: l.params.allowSlidePrev, + touchEventsData: { + isTouched: void 0, + isMoved: void 0, + allowTouchCallbacks: void 0, + touchStartTime: void 0, + isScrolling: void 0, + currentTranslate: void 0, + startTranslate: void 0, + allowThresholdMove: void 0, + focusableElements: l.params.focusableElements, + lastClickTime: 0, + clickTimeout: void 0, + velocities: [], + allowMomentumBounce: void 0, + startMoving: void 0, + pointerId: null, + touchId: null, + }, + allowClick: !0, + allowTouchMove: l.params.allowTouchMove, + touches: { startX: 0, startY: 0, currentX: 0, currentY: 0, diff: 0 }, + imagesToLoad: [], + imagesLoaded: 0, + }), + l.emit('_swiper'), + l.params.init && l.init(), + l + ); + } + getDirectionLabel(e) { + return this.isHorizontal() + ? e + : { + width: 'height', + 'margin-top': 'margin-left', + 'margin-bottom ': 'margin-right', + 'margin-left': 'margin-top', + 'margin-right': 'margin-bottom', + 'padding-left': 'padding-top', + 'padding-right': 'padding-bottom', + marginRight: 'marginBottom', + }[e]; + } + getSlideIndex(e) { + const { slidesEl: t, params: s } = this, + a = y(f(t, `.${s.slideClass}, swiper-slide`)[0]); + return y(e) - a; + } + getSlideIndexByData(e) { + return this.getSlideIndex( + this.slides.filter((t) => 1 * t.getAttribute('data-swiper-slide-index') === e)[0] + ); + } + recalcSlides() { + const { slidesEl: e, params: t } = this; + this.slides = f(e, `.${t.slideClass}, swiper-slide`); + } + enable() { + const e = this; + e.enabled || ((e.enabled = !0), e.params.grabCursor && e.setGrabCursor(), e.emit('enable')); + } + disable() { + const e = this; + e.enabled && + ((e.enabled = !1), e.params.grabCursor && e.unsetGrabCursor(), e.emit('disable')); + } + setProgress(e, t) { + const s = this; + e = Math.min(Math.max(e, 0), 1); + const a = s.minTranslate(), + i = (s.maxTranslate() - a) * e + a; + s.translateTo(i, void 0 === t ? 0 : t), s.updateActiveIndex(), s.updateSlidesClasses(); + } + emitContainerClasses() { + const e = this; + if (!e.params._emitClasses || !e.el) return; + const t = e.el.className + .split(' ') + .filter( + (t) => 0 === t.indexOf('swiper') || 0 === t.indexOf(e.params.containerModifierClass) + ); + e.emit('_containerClasses', t.join(' ')); + } + getSlideClasses(e) { + const t = this; + return t.destroyed + ? '' + : e.className + .split(' ') + .filter((e) => 0 === e.indexOf('swiper-slide') || 0 === e.indexOf(t.params.slideClass)) + .join(' '); + } + emitSlidesClasses() { + const e = this; + if (!e.params._emitClasses || !e.el) return; + const t = []; + e.slides.forEach((s) => { + const a = e.getSlideClasses(s); + t.push({ slideEl: s, classNames: a }), e.emit('_slideClass', s, a); + }), + e.emit('_slideClasses', t); + } + slidesPerViewDynamic(e, t) { + void 0 === e && (e = 'current'), void 0 === t && (t = !1); + const { + params: s, + slides: a, + slidesGrid: i, + slidesSizesGrid: r, + size: n, + activeIndex: l, + } = this; + let o = 1; + if ('number' == typeof s.slidesPerView) return s.slidesPerView; + if (s.centeredSlides) { + let e, + t = a[l] ? a[l].swiperSlideSize : 0; + for (let s = l + 1; s < a.length; s += 1) + a[s] && !e && ((t += a[s].swiperSlideSize), (o += 1), t > n && (e = !0)); + for (let s = l - 1; s >= 0; s -= 1) + a[s] && !e && ((t += a[s].swiperSlideSize), (o += 1), t > n && (e = !0)); + } else if ('current' === e) + for (let e = l + 1; e < a.length; e += 1) { + (t ? i[e] + r[e] - i[l] < n : i[e] - i[l] < n) && (o += 1); + } + else + for (let e = l - 1; e >= 0; e -= 1) { + i[l] - i[e] < n && (o += 1); + } + return o; + } + update() { + const e = this; + if (!e || e.destroyed) return; + const { snapGrid: t, params: s } = e; + function a() { + const t = e.rtlTranslate ? -1 * e.translate : e.translate, + s = Math.min(Math.max(t, e.maxTranslate()), e.minTranslate()); + e.setTranslate(s), e.updateActiveIndex(), e.updateSlidesClasses(); + } + let i; + if ( + (s.breakpoints && e.setBreakpoint(), + [...e.el.querySelectorAll('[loading="lazy"]')].forEach((t) => { + t.complete && z(e, t); + }), + e.updateSize(), + e.updateSlides(), + e.updateProgress(), + e.updateSlidesClasses(), + s.freeMode && s.freeMode.enabled && !s.cssMode) + ) + a(), s.autoHeight && e.updateAutoHeight(); + else { + if (('auto' === s.slidesPerView || s.slidesPerView > 1) && e.isEnd && !s.centeredSlides) { + const t = e.virtual && s.virtual.enabled ? e.virtual.slides : e.slides; + i = e.slideTo(t.length - 1, 0, !1, !0); + } else i = e.slideTo(e.activeIndex, 0, !1, !0); + i || a(); + } + s.watchOverflow && t !== e.snapGrid && e.checkOverflow(), e.emit('update'); + } + changeDirection(e, t) { + void 0 === t && (t = !0); + const s = this, + a = s.params.direction; + return ( + e || (e = 'horizontal' === a ? 'vertical' : 'horizontal'), + e === a || + ('horizontal' !== e && 'vertical' !== e) || + (s.el.classList.remove(`${s.params.containerModifierClass}${a}`), + s.el.classList.add(`${s.params.containerModifierClass}${e}`), + s.emitContainerClasses(), + (s.params.direction = e), + s.slides.forEach((t) => { + 'vertical' === e ? (t.style.width = '') : (t.style.height = ''); + }), + s.emit('changeDirection'), + t && s.update()), + s + ); + } + changeLanguageDirection(e) { + const t = this; + (t.rtl && 'rtl' === e) || + (!t.rtl && 'ltr' === e) || + ((t.rtl = 'rtl' === e), + (t.rtlTranslate = 'horizontal' === t.params.direction && t.rtl), + t.rtl + ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`), (t.el.dir = 'rtl')) + : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`), (t.el.dir = 'ltr')), + t.update()); + } + mount(e) { + const t = this; + if (t.mounted) return !0; + let s = e || t.params.el; + if (('string' == typeof s && (s = document.querySelector(s)), !s)) return !1; + (s.swiper = t), + s.parentNode && + s.parentNode.host && + 'SWIPER-CONTAINER' === s.parentNode.host.nodeName && + (t.isElement = !0); + const a = () => `.${(t.params.wrapperClass || '').trim().split(' ').join('.')}`; + let i = (() => { + if (s && s.shadowRoot && s.shadowRoot.querySelector) { + return s.shadowRoot.querySelector(a()); + } + return f(s, a())[0]; + })(); + return ( + !i && + t.params.createElements && + ((i = v('div', t.params.wrapperClass)), + s.append(i), + f(s, `.${t.params.slideClass}`).forEach((e) => { + i.append(e); + })), + Object.assign(t, { + el: s, + wrapperEl: i, + slidesEl: t.isElement && !s.parentNode.host.slideSlots ? s.parentNode.host : i, + hostEl: t.isElement ? s.parentNode.host : s, + mounted: !0, + rtl: 'rtl' === s.dir.toLowerCase() || 'rtl' === b(s, 'direction'), + rtlTranslate: + 'horizontal' === t.params.direction && + ('rtl' === s.dir.toLowerCase() || 'rtl' === b(s, 'direction')), + wrongRTL: '-webkit-box' === b(i, 'display'), + }), + !0 + ); + } + init(e) { + const t = this; + if (t.initialized) return t; + if (!1 === t.mount(e)) return t; + t.emit('beforeInit'), + t.params.breakpoints && t.setBreakpoint(), + t.addClasses(), + t.updateSize(), + t.updateSlides(), + t.params.watchOverflow && t.checkOverflow(), + t.params.grabCursor && t.enabled && t.setGrabCursor(), + t.params.loop && t.virtual && t.params.virtual.enabled + ? t.slideTo( + t.params.initialSlide + t.virtual.slidesBefore, + 0, + t.params.runCallbacksOnInit, + !1, + !0 + ) + : t.slideTo(t.params.initialSlide, 0, t.params.runCallbacksOnInit, !1, !0), + t.params.loop && t.loopCreate(), + t.attachEvents(); + const s = [...t.el.querySelectorAll('[loading="lazy"]')]; + return ( + t.isElement && s.push(...t.hostEl.querySelectorAll('[loading="lazy"]')), + s.forEach((e) => { + e.complete + ? z(t, e) + : e.addEventListener('load', (e) => { + z(t, e.target); + }); + }), + k(t), + (t.initialized = !0), + k(t), + t.emit('init'), + t.emit('afterInit'), + t + ); + } + destroy(e, t) { + void 0 === e && (e = !0), void 0 === t && (t = !0); + const s = this, + { params: a, el: i, wrapperEl: r, slides: n } = s; + return ( + void 0 === s.params || + s.destroyed || + (s.emit('beforeDestroy'), + (s.initialized = !1), + s.detachEvents(), + a.loop && s.loopDestroy(), + t && + (s.removeClasses(), + i.removeAttribute('style'), + r.removeAttribute('style'), + n && + n.length && + n.forEach((e) => { + e.classList.remove( + a.slideVisibleClass, + a.slideFullyVisibleClass, + a.slideActiveClass, + a.slideNextClass, + a.slidePrevClass + ), + e.removeAttribute('style'), + e.removeAttribute('data-swiper-slide-index'); + })), + s.emit('destroy'), + Object.keys(s.eventsListeners).forEach((e) => { + s.off(e); + }), + !1 !== e && + ((s.el.swiper = null), + (function (e) { + const t = e; + Object.keys(t).forEach((e) => { + try { + t[e] = null; + } catch (e) {} + try { + delete t[e]; + } catch (e) {} + }); + })(s)), + (s.destroyed = !0)), + null + ); + } + static extendDefaults(e) { + p(J, e); + } + static get extendedDefaults() { + return J; + } + static get defaults() { + return K; + } + static installModule(e) { + ee.prototype.__modules__ || (ee.prototype.__modules__ = []); + const t = ee.prototype.__modules__; + 'function' == typeof e && t.indexOf(e) < 0 && t.push(e); + } + static use(e) { + return Array.isArray(e) + ? (e.forEach((e) => ee.installModule(e)), ee) + : (ee.installModule(e), ee); + } + } + function te(e, t, s, a) { + return ( + e.params.createElements && + Object.keys(a).forEach((i) => { + if (!s[i] && !0 === s.auto) { + let r = f(e.el, `.${a[i]}`)[0]; + r || ((r = v('div', a[i])), (r.className = a[i]), e.el.append(r)), + (s[i] = r), + (t[i] = r); + } + }), + s + ); + } + function se(e) { + return ( + void 0 === e && (e = ''), + `.${e + .trim() + .replace(/([\.:!+\/])/g, '\\$1') + .replace(/ /g, '.')}` + ); + } + function ae(e) { + const t = this, + { params: s, slidesEl: a } = t; + s.loop && t.loopDestroy(); + const i = (e) => { + if ('string' == typeof e) { + const t = document.createElement('div'); + (t.innerHTML = e), a.append(t.children[0]), (t.innerHTML = ''); + } else a.append(e); + }; + if ('object' == typeof e && 'length' in e) + for (let t = 0; t < e.length; t += 1) e[t] && i(e[t]); + else i(e); + t.recalcSlides(), s.loop && t.loopCreate(), (s.observer && !t.isElement) || t.update(); + } + function ie(e) { + const t = this, + { params: s, activeIndex: a, slidesEl: i } = t; + s.loop && t.loopDestroy(); + let r = a + 1; + const n = (e) => { + if ('string' == typeof e) { + const t = document.createElement('div'); + (t.innerHTML = e), i.prepend(t.children[0]), (t.innerHTML = ''); + } else i.prepend(e); + }; + if ('object' == typeof e && 'length' in e) { + for (let t = 0; t < e.length; t += 1) e[t] && n(e[t]); + r = a + e.length; + } else n(e); + t.recalcSlides(), + s.loop && t.loopCreate(), + (s.observer && !t.isElement) || t.update(), + t.slideTo(r, 0, !1); + } + function re(e, t) { + const s = this, + { params: a, activeIndex: i, slidesEl: r } = s; + let n = i; + a.loop && ((n -= s.loopedSlides), s.loopDestroy(), s.recalcSlides()); + const l = s.slides.length; + if (e <= 0) return void s.prependSlide(t); + if (e >= l) return void s.appendSlide(t); + let o = n > e ? n + 1 : n; + const d = []; + for (let t = l - 1; t >= e; t -= 1) { + const e = s.slides[t]; + e.remove(), d.unshift(e); + } + if ('object' == typeof t && 'length' in t) { + for (let e = 0; e < t.length; e += 1) t[e] && r.append(t[e]); + o = n > e ? n + t.length : n; + } else r.append(t); + for (let e = 0; e < d.length; e += 1) r.append(d[e]); + s.recalcSlides(), + a.loop && s.loopCreate(), + (a.observer && !s.isElement) || s.update(), + a.loop ? s.slideTo(o + s.loopedSlides, 0, !1) : s.slideTo(o, 0, !1); + } + function ne(e) { + const t = this, + { params: s, activeIndex: a } = t; + let i = a; + s.loop && ((i -= t.loopedSlides), t.loopDestroy()); + let r, + n = i; + if ('object' == typeof e && 'length' in e) { + for (let s = 0; s < e.length; s += 1) + (r = e[s]), t.slides[r] && t.slides[r].remove(), r < n && (n -= 1); + n = Math.max(n, 0); + } else (r = e), t.slides[r] && t.slides[r].remove(), r < n && (n -= 1), (n = Math.max(n, 0)); + t.recalcSlides(), + s.loop && t.loopCreate(), + (s.observer && !t.isElement) || t.update(), + s.loop ? t.slideTo(n + t.loopedSlides, 0, !1) : t.slideTo(n, 0, !1); + } + function le() { + const e = this, + t = []; + for (let s = 0; s < e.slides.length; s += 1) t.push(s); + e.removeSlide(t); + } + function oe(e) { + const { + effect: t, + swiper: s, + on: a, + setTranslate: i, + setTransition: r, + overwriteParams: n, + perspective: l, + recreateShadows: o, + getEffectParams: d, + } = e; + let c; + a('beforeInit', () => { + if (s.params.effect !== t) return; + s.classNames.push(`${s.params.containerModifierClass}${t}`), + l && l() && s.classNames.push(`${s.params.containerModifierClass}3d`); + const e = n ? n() : {}; + Object.assign(s.params, e), Object.assign(s.originalParams, e); + }), + a('setTranslate', () => { + s.params.effect === t && i(); + }), + a('setTransition', (e, a) => { + s.params.effect === t && r(a); + }), + a('transitionEnd', () => { + if (s.params.effect === t && o) { + if (!d || !d().slideShadows) return; + s.slides.forEach((e) => { + e.querySelectorAll( + '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left' + ).forEach((e) => e.remove()); + }), + o(); + } + }), + a('virtualUpdate', () => { + s.params.effect === t && + (s.slides.length || (c = !0), + requestAnimationFrame(() => { + c && s.slides && s.slides.length && (i(), (c = !1)); + })); + }); + } + function de(e, t) { + const s = h(t); + return ( + s !== t && + ((s.style.backfaceVisibility = 'hidden'), + (s.style['-webkit-backface-visibility'] = 'hidden')), + s + ); + } + function ce(e) { + let { swiper: t, duration: s, transformElements: a, allSlides: i } = e; + const { activeIndex: r } = t; + if (t.params.virtualTranslate && 0 !== s) { + let e, + s = !1; + (e = i + ? a + : a.filter((e) => { + const s = e.classList.contains('swiper-slide-transform') + ? ((e) => { + if (!e.parentElement) + return t.slides.filter((t) => t.shadowRoot && t.shadowRoot === e.parentNode)[0]; + return e.parentElement; + })(e) + : e; + return t.getSlideIndex(s) === r; + })), + e.forEach((e) => { + x(e, () => { + if (s) return; + if (!t || t.destroyed) return; + (s = !0), (t.animating = !1); + const e = new window.CustomEvent('transitionend', { bubbles: !0, cancelable: !0 }); + t.wrapperEl.dispatchEvent(e); + }); + }); + } + } + function pe(e, t, s) { + const a = `swiper-slide-shadow${s ? `-${s}` : ''}${e ? ` swiper-slide-shadow-${e}` : ''}`, + i = h(t); + let r = i.querySelector(`.${a.split(' ').join('.')}`); + return r || ((r = v('div', a.split(' '))), i.append(r)), r; + } + Object.keys(Q).forEach((e) => { + Object.keys(Q[e]).forEach((t) => { + ee.prototype[t] = Q[e][t]; + }); + }), + ee.use([ + function (e) { + let { swiper: t, on: s, emit: a } = e; + const i = r(); + let n = null, + l = null; + const o = () => { + t && !t.destroyed && t.initialized && (a('beforeResize'), a('resize')); + }, + d = () => { + t && !t.destroyed && t.initialized && a('orientationchange'); + }; + s('init', () => { + t.params.resizeObserver && void 0 !== i.ResizeObserver + ? t && + !t.destroyed && + t.initialized && + ((n = new ResizeObserver((e) => { + l = i.requestAnimationFrame(() => { + const { width: s, height: a } = t; + let i = s, + r = a; + e.forEach((e) => { + let { contentBoxSize: s, contentRect: a, target: n } = e; + (n && n !== t.el) || + ((i = a ? a.width : (s[0] || s).inlineSize), + (r = a ? a.height : (s[0] || s).blockSize)); + }), + (i === s && r === a) || o(); + }); + })), + n.observe(t.el)) + : (i.addEventListener('resize', o), i.addEventListener('orientationchange', d)); + }), + s('destroy', () => { + l && i.cancelAnimationFrame(l), + n && n.unobserve && t.el && (n.unobserve(t.el), (n = null)), + i.removeEventListener('resize', o), + i.removeEventListener('orientationchange', d); + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a, emit: i } = e; + const n = [], + l = r(), + o = function (e, s) { + void 0 === s && (s = {}); + const a = new (l.MutationObserver || l.WebkitMutationObserver)((e) => { + if (t.__preventObserver__) return; + if (1 === e.length) return void i('observerUpdate', e[0]); + const s = function () { + i('observerUpdate', e[0]); + }; + l.requestAnimationFrame ? l.requestAnimationFrame(s) : l.setTimeout(s, 0); + }); + a.observe(e, { + attributes: void 0 === s.attributes || s.attributes, + childList: void 0 === s.childList || s.childList, + characterData: void 0 === s.characterData || s.characterData, + }), + n.push(a); + }; + s({ observer: !1, observeParents: !1, observeSlideChildren: !1 }), + a('init', () => { + if (t.params.observer) { + if (t.params.observeParents) { + const e = E(t.hostEl); + for (let t = 0; t < e.length; t += 1) o(e[t]); + } + o(t.hostEl, { childList: t.params.observeSlideChildren }), + o(t.wrapperEl, { attributes: !1 }); + } + }), + a('destroy', () => { + n.forEach((e) => { + e.disconnect(); + }), + n.splice(0, n.length); + }); + }, + ]); + const ue = [ + function (e) { + let t, + { swiper: s, extendParams: i, on: r, emit: n } = e; + i({ + virtual: { + enabled: !1, + slides: [], + cache: !0, + renderSlide: null, + renderExternal: null, + renderExternalUpdate: !0, + addSlidesBefore: 0, + addSlidesAfter: 0, + }, + }); + const l = a(); + s.virtual = { cache: {}, from: void 0, to: void 0, slides: [], offset: 0, slidesGrid: [] }; + const o = l.createElement('div'); + function d(e, t) { + const a = s.params.virtual; + if (a.cache && s.virtual.cache[t]) return s.virtual.cache[t]; + let i; + return ( + a.renderSlide + ? ((i = a.renderSlide.call(s, e, t)), + 'string' == typeof i && ((o.innerHTML = i), (i = o.children[0]))) + : (i = s.isElement ? v('swiper-slide') : v('div', s.params.slideClass)), + i.setAttribute('data-swiper-slide-index', t), + a.renderSlide || (i.innerHTML = e), + a.cache && (s.virtual.cache[t] = i), + i + ); + } + function c(e) { + const { slidesPerView: t, slidesPerGroup: a, centeredSlides: i, loop: r } = s.params, + { addSlidesBefore: l, addSlidesAfter: o } = s.params.virtual, + { from: c, to: p, slides: u, slidesGrid: m, offset: h } = s.virtual; + s.params.cssMode || s.updateActiveIndex(); + const g = s.activeIndex || 0; + let v, w, b; + (v = s.rtlTranslate ? 'right' : s.isHorizontal() ? 'left' : 'top'), + i + ? ((w = Math.floor(t / 2) + a + o), (b = Math.floor(t / 2) + a + l)) + : ((w = t + (a - 1) + o), (b = (r ? t : a) + l)); + let y = g - b, + E = g + w; + r || ((y = Math.max(y, 0)), (E = Math.min(E, u.length - 1))); + let x = (s.slidesGrid[y] || 0) - (s.slidesGrid[0] || 0); + function S() { + s.updateSlides(), s.updateProgress(), s.updateSlidesClasses(), n('virtualUpdate'); + } + if ( + (r && g >= b + ? ((y -= b), i || (x += s.slidesGrid[0])) + : r && g < b && ((y = -b), i && (x += s.slidesGrid[0])), + Object.assign(s.virtual, { + from: y, + to: E, + offset: x, + slidesGrid: s.slidesGrid, + slidesBefore: b, + slidesAfter: w, + }), + c === y && p === E && !e) + ) + return ( + s.slidesGrid !== m && + x !== h && + s.slides.forEach((e) => { + e.style[v] = x - Math.abs(s.cssOverflowAdjustment()) + 'px'; + }), + s.updateProgress(), + void n('virtualUpdate') + ); + if (s.params.virtual.renderExternal) + return ( + s.params.virtual.renderExternal.call(s, { + offset: x, + from: y, + to: E, + slides: (function () { + const e = []; + for (let t = y; t <= E; t += 1) e.push(u[t]); + return e; + })(), + }), + void (s.params.virtual.renderExternalUpdate ? S() : n('virtualUpdate')) + ); + const T = [], + M = [], + C = (e) => { + let t = e; + return e < 0 ? (t = u.length + e) : t >= u.length && (t -= u.length), t; + }; + if (e) + s.slides + .filter((e) => e.matches(`.${s.params.slideClass}, swiper-slide`)) + .forEach((e) => { + e.remove(); + }); + else + for (let e = c; e <= p; e += 1) + if (e < y || e > E) { + const t = C(e); + s.slides + .filter((e) => + e.matches( + `.${s.params.slideClass}[data-swiper-slide-index="${t}"], swiper-slide[data-swiper-slide-index="${t}"]` + ) + ) + .forEach((e) => { + e.remove(); + }); + } + const P = r ? -u.length : 0, + L = r ? 2 * u.length : u.length; + for (let t = P; t < L; t += 1) + if (t >= y && t <= E) { + const s = C(t); + void 0 === p || e ? M.push(s) : (t > p && M.push(s), t < c && T.push(s)); + } + if ( + (M.forEach((e) => { + s.slidesEl.append(d(u[e], e)); + }), + r) + ) + for (let e = T.length - 1; e >= 0; e -= 1) { + const t = T[e]; + s.slidesEl.prepend(d(u[t], t)); + } + else + T.sort((e, t) => t - e), + T.forEach((e) => { + s.slidesEl.prepend(d(u[e], e)); + }); + f(s.slidesEl, '.swiper-slide, swiper-slide').forEach((e) => { + e.style[v] = x - Math.abs(s.cssOverflowAdjustment()) + 'px'; + }), + S(); + } + r('beforeInit', () => { + if (!s.params.virtual.enabled) return; + let e; + if (void 0 === s.passedParams.virtual.slides) { + const t = [...s.slidesEl.children].filter((e) => + e.matches(`.${s.params.slideClass}, swiper-slide`) + ); + t && + t.length && + ((s.virtual.slides = [...t]), + (e = !0), + t.forEach((e, t) => { + e.setAttribute('data-swiper-slide-index', t), (s.virtual.cache[t] = e), e.remove(); + })); + } + e || (s.virtual.slides = s.params.virtual.slides), + s.classNames.push(`${s.params.containerModifierClass}virtual`), + (s.params.watchSlidesProgress = !0), + (s.originalParams.watchSlidesProgress = !0), + c(); + }), + r('setTranslate', () => { + s.params.virtual.enabled && + (s.params.cssMode && !s._immediateVirtual + ? (clearTimeout(t), + (t = setTimeout(() => { + c(); + }, 100))) + : c()); + }), + r('init update resize', () => { + s.params.virtual.enabled && + s.params.cssMode && + u(s.wrapperEl, '--swiper-virtual-size', `${s.virtualSize}px`); + }), + Object.assign(s.virtual, { + appendSlide: function (e) { + if ('object' == typeof e && 'length' in e) + for (let t = 0; t < e.length; t += 1) e[t] && s.virtual.slides.push(e[t]); + else s.virtual.slides.push(e); + c(!0); + }, + prependSlide: function (e) { + const t = s.activeIndex; + let a = t + 1, + i = 1; + if (Array.isArray(e)) { + for (let t = 0; t < e.length; t += 1) e[t] && s.virtual.slides.unshift(e[t]); + (a = t + e.length), (i = e.length); + } else s.virtual.slides.unshift(e); + if (s.params.virtual.cache) { + const e = s.virtual.cache, + t = {}; + Object.keys(e).forEach((s) => { + const a = e[s], + r = a.getAttribute('data-swiper-slide-index'); + r && a.setAttribute('data-swiper-slide-index', parseInt(r, 10) + i), + (t[parseInt(s, 10) + i] = a); + }), + (s.virtual.cache = t); + } + c(!0), s.slideTo(a, 0); + }, + removeSlide: function (e) { + if (null == e) return; + let t = s.activeIndex; + if (Array.isArray(e)) + for (let a = e.length - 1; a >= 0; a -= 1) + s.params.virtual.cache && + (delete s.virtual.cache[e[a]], + Object.keys(s.virtual.cache).forEach((t) => { + t > e && + ((s.virtual.cache[t - 1] = s.virtual.cache[t]), + s.virtual.cache[t - 1].setAttribute('data-swiper-slide-index', t - 1), + delete s.virtual.cache[t]); + })), + s.virtual.slides.splice(e[a], 1), + e[a] < t && (t -= 1), + (t = Math.max(t, 0)); + else + s.params.virtual.cache && + (delete s.virtual.cache[e], + Object.keys(s.virtual.cache).forEach((t) => { + t > e && + ((s.virtual.cache[t - 1] = s.virtual.cache[t]), + s.virtual.cache[t - 1].setAttribute('data-swiper-slide-index', t - 1), + delete s.virtual.cache[t]); + })), + s.virtual.slides.splice(e, 1), + e < t && (t -= 1), + (t = Math.max(t, 0)); + c(!0), s.slideTo(t, 0); + }, + removeAllSlides: function () { + (s.virtual.slides = []), + s.params.virtual.cache && (s.virtual.cache = {}), + c(!0), + s.slideTo(0, 0); + }, + update: c, + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: i, emit: n } = e; + const l = a(), + o = r(); + function d(e) { + if (!t.enabled) return; + const { rtlTranslate: s } = t; + let a = e; + a.originalEvent && (a = a.originalEvent); + const i = a.keyCode || a.charCode, + r = t.params.keyboard.pageUpDown, + d = r && 33 === i, + c = r && 34 === i, + p = 37 === i, + u = 39 === i, + m = 38 === i, + h = 40 === i; + if (!t.allowSlideNext && ((t.isHorizontal() && u) || (t.isVertical() && h) || c)) return !1; + if (!t.allowSlidePrev && ((t.isHorizontal() && p) || (t.isVertical() && m) || d)) return !1; + if ( + !( + a.shiftKey || + a.altKey || + a.ctrlKey || + a.metaKey || + (l.activeElement && + l.activeElement.nodeName && + ('input' === l.activeElement.nodeName.toLowerCase() || + 'textarea' === l.activeElement.nodeName.toLowerCase())) + ) + ) { + if (t.params.keyboard.onlyInViewport && (d || c || p || u || m || h)) { + let e = !1; + if ( + E(t.el, `.${t.params.slideClass}, swiper-slide`).length > 0 && + 0 === E(t.el, `.${t.params.slideActiveClass}`).length + ) + return; + const a = t.el, + i = a.clientWidth, + r = a.clientHeight, + n = o.innerWidth, + l = o.innerHeight, + d = w(a); + s && (d.left -= a.scrollLeft); + const c = [ + [d.left, d.top], + [d.left + i, d.top], + [d.left, d.top + r], + [d.left + i, d.top + r], + ]; + for (let t = 0; t < c.length; t += 1) { + const s = c[t]; + if (s[0] >= 0 && s[0] <= n && s[1] >= 0 && s[1] <= l) { + if (0 === s[0] && 0 === s[1]) continue; + e = !0; + } + } + if (!e) return; + } + t.isHorizontal() + ? ((d || c || p || u) && (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)), + (((c || u) && !s) || ((d || p) && s)) && t.slideNext(), + (((d || p) && !s) || ((c || u) && s)) && t.slidePrev()) + : ((d || c || m || h) && (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)), + (c || h) && t.slideNext(), + (d || m) && t.slidePrev()), + n('keyPress', i); + } + } + function c() { + t.keyboard.enabled || (l.addEventListener('keydown', d), (t.keyboard.enabled = !0)); + } + function p() { + t.keyboard.enabled && (l.removeEventListener('keydown', d), (t.keyboard.enabled = !1)); + } + (t.keyboard = { enabled: !1 }), + s({ keyboard: { enabled: !1, onlyInViewport: !0, pageUpDown: !0 } }), + i('init', () => { + t.params.keyboard.enabled && c(); + }), + i('destroy', () => { + t.keyboard.enabled && p(); + }), + Object.assign(t.keyboard, { enable: c, disable: p }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a, emit: i } = e; + const n = r(); + let d; + s({ + mousewheel: { + enabled: !1, + releaseOnEdges: !1, + invert: !1, + forceToAxis: !1, + sensitivity: 1, + eventsTarget: 'container', + thresholdDelta: null, + thresholdTime: null, + noMousewheelClass: 'swiper-no-mousewheel', + }, + }), + (t.mousewheel = { enabled: !1 }); + let c, + p = o(); + const u = []; + function m() { + t.enabled && (t.mouseEntered = !0); + } + function h() { + t.enabled && (t.mouseEntered = !1); + } + function f(e) { + return ( + !(t.params.mousewheel.thresholdDelta && e.delta < t.params.mousewheel.thresholdDelta) && + !(t.params.mousewheel.thresholdTime && o() - p < t.params.mousewheel.thresholdTime) && + ((e.delta >= 6 && o() - p < 60) || + (e.direction < 0 + ? (t.isEnd && !t.params.loop) || t.animating || (t.slideNext(), i('scroll', e.raw)) + : (t.isBeginning && !t.params.loop) || + t.animating || + (t.slidePrev(), i('scroll', e.raw)), + (p = new n.Date().getTime()), + !1)) + ); + } + function g(e) { + let s = e, + a = !0; + if (!t.enabled) return; + if (e.target.closest(`.${t.params.mousewheel.noMousewheelClass}`)) return; + const r = t.params.mousewheel; + t.params.cssMode && s.preventDefault(); + let n = t.el; + 'container' !== t.params.mousewheel.eventsTarget && + (n = document.querySelector(t.params.mousewheel.eventsTarget)); + const p = n && n.contains(s.target); + if (!t.mouseEntered && !p && !r.releaseOnEdges) return !0; + s.originalEvent && (s = s.originalEvent); + let m = 0; + const h = t.rtlTranslate ? -1 : 1, + g = (function (e) { + let t = 0, + s = 0, + a = 0, + i = 0; + return ( + 'detail' in e && (s = e.detail), + 'wheelDelta' in e && (s = -e.wheelDelta / 120), + 'wheelDeltaY' in e && (s = -e.wheelDeltaY / 120), + 'wheelDeltaX' in e && (t = -e.wheelDeltaX / 120), + 'axis' in e && e.axis === e.HORIZONTAL_AXIS && ((t = s), (s = 0)), + (a = 10 * t), + (i = 10 * s), + 'deltaY' in e && (i = e.deltaY), + 'deltaX' in e && (a = e.deltaX), + e.shiftKey && !a && ((a = i), (i = 0)), + (a || i) && + e.deltaMode && + (1 === e.deltaMode ? ((a *= 40), (i *= 40)) : ((a *= 800), (i *= 800))), + a && !t && (t = a < 1 ? -1 : 1), + i && !s && (s = i < 1 ? -1 : 1), + { spinX: t, spinY: s, pixelX: a, pixelY: i } + ); + })(s); + if (r.forceToAxis) + if (t.isHorizontal()) { + if (!(Math.abs(g.pixelX) > Math.abs(g.pixelY))) return !0; + m = -g.pixelX * h; + } else { + if (!(Math.abs(g.pixelY) > Math.abs(g.pixelX))) return !0; + m = -g.pixelY; + } + else m = Math.abs(g.pixelX) > Math.abs(g.pixelY) ? -g.pixelX * h : -g.pixelY; + if (0 === m) return !0; + r.invert && (m = -m); + let v = t.getTranslate() + m * r.sensitivity; + if ( + (v >= t.minTranslate() && (v = t.minTranslate()), + v <= t.maxTranslate() && (v = t.maxTranslate()), + (a = !!t.params.loop || !(v === t.minTranslate() || v === t.maxTranslate())), + a && t.params.nested && s.stopPropagation(), + t.params.freeMode && t.params.freeMode.enabled) + ) { + const e = { time: o(), delta: Math.abs(m), direction: Math.sign(m) }, + a = c && e.time < c.time + 500 && e.delta <= c.delta && e.direction === c.direction; + if (!a) { + c = void 0; + let n = t.getTranslate() + m * r.sensitivity; + const o = t.isBeginning, + p = t.isEnd; + if ( + (n >= t.minTranslate() && (n = t.minTranslate()), + n <= t.maxTranslate() && (n = t.maxTranslate()), + t.setTransition(0), + t.setTranslate(n), + t.updateProgress(), + t.updateActiveIndex(), + t.updateSlidesClasses(), + ((!o && t.isBeginning) || (!p && t.isEnd)) && t.updateSlidesClasses(), + t.params.loop && + t.loopFix({ direction: e.direction < 0 ? 'next' : 'prev', byMousewheel: !0 }), + t.params.freeMode.sticky) + ) { + clearTimeout(d), (d = void 0), u.length >= 15 && u.shift(); + const s = u.length ? u[u.length - 1] : void 0, + a = u[0]; + if ((u.push(e), s && (e.delta > s.delta || e.direction !== s.direction))) u.splice(0); + else if ( + u.length >= 15 && + e.time - a.time < 500 && + a.delta - e.delta >= 1 && + e.delta <= 6 + ) { + const s = m > 0 ? 0.8 : 0.2; + (c = e), + u.splice(0), + (d = l(() => { + t.slideToClosest(t.params.speed, !0, void 0, s); + }, 0)); + } + d || + (d = l(() => { + (c = e), u.splice(0), t.slideToClosest(t.params.speed, !0, void 0, 0.5); + }, 500)); + } + if ( + (a || i('scroll', s), + t.params.autoplay && t.params.autoplayDisableOnInteraction && t.autoplay.stop(), + r.releaseOnEdges && (n === t.minTranslate() || n === t.maxTranslate())) + ) + return !0; + } + } else { + const s = { time: o(), delta: Math.abs(m), direction: Math.sign(m), raw: e }; + u.length >= 2 && u.shift(); + const a = u.length ? u[u.length - 1] : void 0; + if ( + (u.push(s), + a + ? (s.direction !== a.direction || s.delta > a.delta || s.time > a.time + 150) && f(s) + : f(s), + (function (e) { + const s = t.params.mousewheel; + if (e.direction < 0) { + if (t.isEnd && !t.params.loop && s.releaseOnEdges) return !0; + } else if (t.isBeginning && !t.params.loop && s.releaseOnEdges) return !0; + return !1; + })(s)) + ) + return !0; + } + return s.preventDefault ? s.preventDefault() : (s.returnValue = !1), !1; + } + function v(e) { + let s = t.el; + 'container' !== t.params.mousewheel.eventsTarget && + (s = document.querySelector(t.params.mousewheel.eventsTarget)), + s[e]('mouseenter', m), + s[e]('mouseleave', h), + s[e]('wheel', g); + } + function w() { + return t.params.cssMode + ? (t.wrapperEl.removeEventListener('wheel', g), !0) + : !t.mousewheel.enabled && (v('addEventListener'), (t.mousewheel.enabled = !0), !0); + } + function b() { + return t.params.cssMode + ? (t.wrapperEl.addEventListener(event, g), !0) + : !!t.mousewheel.enabled && (v('removeEventListener'), (t.mousewheel.enabled = !1), !0); + } + a('init', () => { + !t.params.mousewheel.enabled && t.params.cssMode && b(), t.params.mousewheel.enabled && w(); + }), + a('destroy', () => { + t.params.cssMode && w(), t.mousewheel.enabled && b(); + }), + Object.assign(t.mousewheel, { enable: w, disable: b }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a, emit: i } = e; + s({ + navigation: { + nextEl: null, + prevEl: null, + hideOnClick: !1, + disabledClass: 'swiper-button-disabled', + hiddenClass: 'swiper-button-hidden', + lockClass: 'swiper-button-lock', + navigationDisabledClass: 'swiper-navigation-disabled', + }, + }), + (t.navigation = { nextEl: null, prevEl: null }); + const r = (e) => (Array.isArray(e) ? e : [e]).filter((e) => !!e); + function n(e) { + let s; + return e && 'string' == typeof e && t.isElement && ((s = t.el.querySelector(e)), s) + ? s + : (e && + ('string' == typeof e && (s = [...document.querySelectorAll(e)]), + t.params.uniqueNavElements && + 'string' == typeof e && + s.length > 1 && + 1 === t.el.querySelectorAll(e).length && + (s = t.el.querySelector(e))), + e && !s ? e : s); + } + function l(e, s) { + const a = t.params.navigation; + (e = r(e)).forEach((e) => { + e && + (e.classList[s ? 'add' : 'remove'](...a.disabledClass.split(' ')), + 'BUTTON' === e.tagName && (e.disabled = s), + t.params.watchOverflow && + t.enabled && + e.classList[t.isLocked ? 'add' : 'remove'](a.lockClass)); + }); + } + function o() { + const { nextEl: e, prevEl: s } = t.navigation; + if (t.params.loop) return l(s, !1), void l(e, !1); + l(s, t.isBeginning && !t.params.rewind), l(e, t.isEnd && !t.params.rewind); + } + function d(e) { + e.preventDefault(), + (!t.isBeginning || t.params.loop || t.params.rewind) && + (t.slidePrev(), i('navigationPrev')); + } + function c(e) { + e.preventDefault(), + (!t.isEnd || t.params.loop || t.params.rewind) && (t.slideNext(), i('navigationNext')); + } + function p() { + const e = t.params.navigation; + if ( + ((t.params.navigation = te(t, t.originalParams.navigation, t.params.navigation, { + nextEl: 'swiper-button-next', + prevEl: 'swiper-button-prev', + })), + !e.nextEl && !e.prevEl) + ) + return; + let s = n(e.nextEl), + a = n(e.prevEl); + Object.assign(t.navigation, { nextEl: s, prevEl: a }), (s = r(s)), (a = r(a)); + const i = (s, a) => { + s && s.addEventListener('click', 'next' === a ? c : d), + !t.enabled && s && s.classList.add(...e.lockClass.split(' ')); + }; + s.forEach((e) => i(e, 'next')), a.forEach((e) => i(e, 'prev')); + } + function u() { + let { nextEl: e, prevEl: s } = t.navigation; + (e = r(e)), (s = r(s)); + const a = (e, s) => { + e.removeEventListener('click', 'next' === s ? c : d), + e.classList.remove(...t.params.navigation.disabledClass.split(' ')); + }; + e.forEach((e) => a(e, 'next')), s.forEach((e) => a(e, 'prev')); + } + a('init', () => { + !1 === t.params.navigation.enabled ? m() : (p(), o()); + }), + a('toEdge fromEdge lock unlock', () => { + o(); + }), + a('destroy', () => { + u(); + }), + a('enable disable', () => { + let { nextEl: e, prevEl: s } = t.navigation; + (e = r(e)), + (s = r(s)), + t.enabled + ? o() + : [...e, ...s] + .filter((e) => !!e) + .forEach((e) => e.classList.add(t.params.navigation.lockClass)); + }), + a('click', (e, s) => { + let { nextEl: a, prevEl: n } = t.navigation; + (a = r(a)), (n = r(n)); + const l = s.target; + if (t.params.navigation.hideOnClick && !n.includes(l) && !a.includes(l)) { + if ( + t.pagination && + t.params.pagination && + t.params.pagination.clickable && + (t.pagination.el === l || t.pagination.el.contains(l)) + ) + return; + let e; + a.length + ? (e = a[0].classList.contains(t.params.navigation.hiddenClass)) + : n.length && (e = n[0].classList.contains(t.params.navigation.hiddenClass)), + i(!0 === e ? 'navigationShow' : 'navigationHide'), + [...a, ...n] + .filter((e) => !!e) + .forEach((e) => e.classList.toggle(t.params.navigation.hiddenClass)); + } + }); + const m = () => { + t.el.classList.add(...t.params.navigation.navigationDisabledClass.split(' ')), u(); + }; + Object.assign(t.navigation, { + enable: () => { + t.el.classList.remove(...t.params.navigation.navigationDisabledClass.split(' ')), + p(), + o(); + }, + disable: m, + update: o, + init: p, + destroy: u, + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a, emit: i } = e; + const r = 'swiper-pagination'; + let n; + s({ + pagination: { + el: null, + bulletElement: 'span', + clickable: !1, + hideOnClick: !1, + renderBullet: null, + renderProgressbar: null, + renderFraction: null, + renderCustom: null, + progressbarOpposite: !1, + type: 'bullets', + dynamicBullets: !1, + dynamicMainBullets: 1, + formatFractionCurrent: (e) => e, + formatFractionTotal: (e) => e, + bulletClass: `${r}-bullet`, + bulletActiveClass: `${r}-bullet-active`, + modifierClass: `${r}-`, + currentClass: `${r}-current`, + totalClass: `${r}-total`, + hiddenClass: `${r}-hidden`, + progressbarFillClass: `${r}-progressbar-fill`, + progressbarOppositeClass: `${r}-progressbar-opposite`, + clickableClass: `${r}-clickable`, + lockClass: `${r}-lock`, + horizontalClass: `${r}-horizontal`, + verticalClass: `${r}-vertical`, + paginationDisabledClass: `${r}-disabled`, + }, + }), + (t.pagination = { el: null, bullets: [] }); + let l = 0; + const o = (e) => (Array.isArray(e) ? e : [e]).filter((e) => !!e); + function d() { + return ( + !t.params.pagination.el || + !t.pagination.el || + (Array.isArray(t.pagination.el) && 0 === t.pagination.el.length) + ); + } + function c(e, s) { + const { bulletActiveClass: a } = t.params.pagination; + e && + (e = e[('prev' === s ? 'previous' : 'next') + 'ElementSibling']) && + (e.classList.add(`${a}-${s}`), + (e = e[('prev' === s ? 'previous' : 'next') + 'ElementSibling']) && + e.classList.add(`${a}-${s}-${s}`)); + } + function p(e) { + const s = e.target.closest(se(t.params.pagination.bulletClass)); + if (!s) return; + e.preventDefault(); + const a = y(s) * t.params.slidesPerGroup; + if (t.params.loop) { + if (t.realIndex === a) return; + t.slideToLoop(a); + } else t.slideTo(a); + } + function u() { + const e = t.rtl, + s = t.params.pagination; + if (d()) return; + let a, + r, + p = t.pagination.el; + p = o(p); + const u = t.virtual && t.params.virtual.enabled ? t.virtual.slides.length : t.slides.length, + m = t.params.loop ? Math.ceil(u / t.params.slidesPerGroup) : t.snapGrid.length; + if ( + (t.params.loop + ? ((r = t.previousRealIndex || 0), + (a = + t.params.slidesPerGroup > 1 + ? Math.floor(t.realIndex / t.params.slidesPerGroup) + : t.realIndex)) + : void 0 !== t.snapIndex + ? ((a = t.snapIndex), (r = t.previousSnapIndex)) + : ((r = t.previousIndex || 0), (a = t.activeIndex || 0)), + 'bullets' === s.type && t.pagination.bullets && t.pagination.bullets.length > 0) + ) { + const i = t.pagination.bullets; + let o, d, u; + if ( + (s.dynamicBullets && + ((n = S(i[0], t.isHorizontal() ? 'width' : 'height', !0)), + p.forEach((e) => { + e.style[t.isHorizontal() ? 'width' : 'height'] = + n * (s.dynamicMainBullets + 4) + 'px'; + }), + s.dynamicMainBullets > 1 && + void 0 !== r && + ((l += a - (r || 0)), + l > s.dynamicMainBullets - 1 ? (l = s.dynamicMainBullets - 1) : l < 0 && (l = 0)), + (o = Math.max(a - l, 0)), + (d = o + (Math.min(i.length, s.dynamicMainBullets) - 1)), + (u = (d + o) / 2)), + i.forEach((e) => { + const t = [ + ...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map( + (e) => `${s.bulletActiveClass}${e}` + ), + ] + .map((e) => ('string' == typeof e && e.includes(' ') ? e.split(' ') : e)) + .flat(); + e.classList.remove(...t); + }), + p.length > 1) + ) + i.forEach((e) => { + const i = y(e); + i === a + ? e.classList.add(...s.bulletActiveClass.split(' ')) + : t.isElement && e.setAttribute('part', 'bullet'), + s.dynamicBullets && + (i >= o && i <= d && e.classList.add(...`${s.bulletActiveClass}-main`.split(' ')), + i === o && c(e, 'prev'), + i === d && c(e, 'next')); + }); + else { + const e = i[a]; + if ( + (e && e.classList.add(...s.bulletActiveClass.split(' ')), + t.isElement && + i.forEach((e, t) => { + e.setAttribute('part', t === a ? 'bullet-active' : 'bullet'); + }), + s.dynamicBullets) + ) { + const e = i[o], + t = i[d]; + for (let e = o; e <= d; e += 1) + i[e] && i[e].classList.add(...`${s.bulletActiveClass}-main`.split(' ')); + c(e, 'prev'), c(t, 'next'); + } + } + if (s.dynamicBullets) { + const a = Math.min(i.length, s.dynamicMainBullets + 4), + r = (n * a - n) / 2 - u * n, + l = e ? 'right' : 'left'; + i.forEach((e) => { + e.style[t.isHorizontal() ? l : 'top'] = `${r}px`; + }); + } + } + p.forEach((e, r) => { + if ( + ('fraction' === s.type && + (e.querySelectorAll(se(s.currentClass)).forEach((e) => { + e.textContent = s.formatFractionCurrent(a + 1); + }), + e.querySelectorAll(se(s.totalClass)).forEach((e) => { + e.textContent = s.formatFractionTotal(m); + })), + 'progressbar' === s.type) + ) { + let i; + i = s.progressbarOpposite + ? t.isHorizontal() + ? 'vertical' + : 'horizontal' + : t.isHorizontal() + ? 'horizontal' + : 'vertical'; + const r = (a + 1) / m; + let n = 1, + l = 1; + 'horizontal' === i ? (n = r) : (l = r), + e.querySelectorAll(se(s.progressbarFillClass)).forEach((e) => { + (e.style.transform = `translate3d(0,0,0) scaleX(${n}) scaleY(${l})`), + (e.style.transitionDuration = `${t.params.speed}ms`); + }); + } + 'custom' === s.type && s.renderCustom + ? ((e.innerHTML = s.renderCustom(t, a + 1, m)), 0 === r && i('paginationRender', e)) + : (0 === r && i('paginationRender', e), i('paginationUpdate', e)), + t.params.watchOverflow && + t.enabled && + e.classList[t.isLocked ? 'add' : 'remove'](s.lockClass); + }); + } + function m() { + const e = t.params.pagination; + if (d()) return; + const s = + t.virtual && t.params.virtual.enabled + ? t.virtual.slides.length + : t.grid && t.params.grid.rows > 1 + ? t.slides.length / Math.ceil(t.params.grid.rows) + : t.slides.length; + let a = t.pagination.el; + a = o(a); + let r = ''; + if ('bullets' === e.type) { + let a = t.params.loop ? Math.ceil(s / t.params.slidesPerGroup) : t.snapGrid.length; + t.params.freeMode && t.params.freeMode.enabled && a > s && (a = s); + for (let s = 0; s < a; s += 1) + e.renderBullet + ? (r += e.renderBullet.call(t, s, e.bulletClass)) + : (r += `<${e.bulletElement} ${t.isElement ? 'part="bullet"' : ''} class="${ + e.bulletClass + }">`); + } + 'fraction' === e.type && + (r = e.renderFraction + ? e.renderFraction.call(t, e.currentClass, e.totalClass) + : ` / `), + 'progressbar' === e.type && + (r = e.renderProgressbar + ? e.renderProgressbar.call(t, e.progressbarFillClass) + : ``), + (t.pagination.bullets = []), + a.forEach((s) => { + 'custom' !== e.type && (s.innerHTML = r || ''), + 'bullets' === e.type && + t.pagination.bullets.push(...s.querySelectorAll(se(e.bulletClass))); + }), + 'custom' !== e.type && i('paginationRender', a[0]); + } + function h() { + t.params.pagination = te(t, t.originalParams.pagination, t.params.pagination, { + el: 'swiper-pagination', + }); + const e = t.params.pagination; + if (!e.el) return; + let s; + 'string' == typeof e.el && t.isElement && (s = t.el.querySelector(e.el)), + s || 'string' != typeof e.el || (s = [...document.querySelectorAll(e.el)]), + s || (s = e.el), + s && + 0 !== s.length && + (t.params.uniqueNavElements && + 'string' == typeof e.el && + Array.isArray(s) && + s.length > 1 && + ((s = [...t.el.querySelectorAll(e.el)]), + s.length > 1 && (s = s.filter((e) => E(e, '.swiper')[0] === t.el)[0])), + Array.isArray(s) && 1 === s.length && (s = s[0]), + Object.assign(t.pagination, { el: s }), + (s = o(s)), + s.forEach((s) => { + 'bullets' === e.type && + e.clickable && + s.classList.add(...(e.clickableClass || '').split(' ')), + s.classList.add(e.modifierClass + e.type), + s.classList.add(t.isHorizontal() ? e.horizontalClass : e.verticalClass), + 'bullets' === e.type && + e.dynamicBullets && + (s.classList.add(`${e.modifierClass}${e.type}-dynamic`), + (l = 0), + e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)), + 'progressbar' === e.type && + e.progressbarOpposite && + s.classList.add(e.progressbarOppositeClass), + e.clickable && s.addEventListener('click', p), + t.enabled || s.classList.add(e.lockClass); + })); + } + function f() { + const e = t.params.pagination; + if (d()) return; + let s = t.pagination.el; + s && + ((s = o(s)), + s.forEach((s) => { + s.classList.remove(e.hiddenClass), + s.classList.remove(e.modifierClass + e.type), + s.classList.remove(t.isHorizontal() ? e.horizontalClass : e.verticalClass), + e.clickable && + (s.classList.remove(...(e.clickableClass || '').split(' ')), + s.removeEventListener('click', p)); + })), + t.pagination.bullets && + t.pagination.bullets.forEach((t) => + t.classList.remove(...e.bulletActiveClass.split(' ')) + ); + } + a('changeDirection', () => { + if (!t.pagination || !t.pagination.el) return; + const e = t.params.pagination; + let { el: s } = t.pagination; + (s = o(s)), + s.forEach((s) => { + s.classList.remove(e.horizontalClass, e.verticalClass), + s.classList.add(t.isHorizontal() ? e.horizontalClass : e.verticalClass); + }); + }), + a('init', () => { + !1 === t.params.pagination.enabled ? g() : (h(), m(), u()); + }), + a('activeIndexChange', () => { + void 0 === t.snapIndex && u(); + }), + a('snapIndexChange', () => { + u(); + }), + a('snapGridLengthChange', () => { + m(), u(); + }), + a('destroy', () => { + f(); + }), + a('enable disable', () => { + let { el: e } = t.pagination; + e && + ((e = o(e)), + e.forEach((e) => + e.classList[t.enabled ? 'remove' : 'add'](t.params.pagination.lockClass) + )); + }), + a('lock unlock', () => { + u(); + }), + a('click', (e, s) => { + const a = s.target, + r = o(t.pagination.el); + if ( + t.params.pagination.el && + t.params.pagination.hideOnClick && + r && + r.length > 0 && + !a.classList.contains(t.params.pagination.bulletClass) + ) { + if ( + t.navigation && + ((t.navigation.nextEl && a === t.navigation.nextEl) || + (t.navigation.prevEl && a === t.navigation.prevEl)) + ) + return; + const e = r[0].classList.contains(t.params.pagination.hiddenClass); + i(!0 === e ? 'paginationShow' : 'paginationHide'), + r.forEach((e) => e.classList.toggle(t.params.pagination.hiddenClass)); + } + }); + const g = () => { + t.el.classList.add(t.params.pagination.paginationDisabledClass); + let { el: e } = t.pagination; + e && + ((e = o(e)), + e.forEach((e) => e.classList.add(t.params.pagination.paginationDisabledClass))), + f(); + }; + Object.assign(t.pagination, { + enable: () => { + t.el.classList.remove(t.params.pagination.paginationDisabledClass); + let { el: e } = t.pagination; + e && + ((e = o(e)), + e.forEach((e) => e.classList.remove(t.params.pagination.paginationDisabledClass))), + h(), + m(), + u(); + }, + disable: g, + render: m, + update: u, + init: h, + destroy: f, + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: i, emit: r } = e; + const o = a(); + let d, + c, + p, + u, + m = !1, + h = null, + f = null; + function g() { + if (!t.params.scrollbar.el || !t.scrollbar.el) return; + const { scrollbar: e, rtlTranslate: s } = t, + { dragEl: a, el: i } = e, + r = t.params.scrollbar, + n = t.params.loop ? t.progressLoop : t.progress; + let l = c, + o = (p - c) * n; + s + ? ((o = -o), o > 0 ? ((l = c - o), (o = 0)) : -o + c > p && (l = p + o)) + : o < 0 + ? ((l = c + o), (o = 0)) + : o + c > p && (l = p - o), + t.isHorizontal() + ? ((a.style.transform = `translate3d(${o}px, 0, 0)`), (a.style.width = `${l}px`)) + : ((a.style.transform = `translate3d(0px, ${o}px, 0)`), (a.style.height = `${l}px`)), + r.hide && + (clearTimeout(h), + (i.style.opacity = 1), + (h = setTimeout(() => { + (i.style.opacity = 0), (i.style.transitionDuration = '400ms'); + }, 1e3))); + } + function b() { + if (!t.params.scrollbar.el || !t.scrollbar.el) return; + const { scrollbar: e } = t, + { dragEl: s, el: a } = e; + (s.style.width = ''), + (s.style.height = ''), + (p = t.isHorizontal() ? a.offsetWidth : a.offsetHeight), + (u = + t.size / + (t.virtualSize + + t.params.slidesOffsetBefore - + (t.params.centeredSlides ? t.snapGrid[0] : 0))), + (c = + 'auto' === t.params.scrollbar.dragSize + ? p * u + : parseInt(t.params.scrollbar.dragSize, 10)), + t.isHorizontal() ? (s.style.width = `${c}px`) : (s.style.height = `${c}px`), + (a.style.display = u >= 1 ? 'none' : ''), + t.params.scrollbar.hide && (a.style.opacity = 0), + t.params.watchOverflow && + t.enabled && + e.el.classList[t.isLocked ? 'add' : 'remove'](t.params.scrollbar.lockClass); + } + function y(e) { + return t.isHorizontal() ? e.clientX : e.clientY; + } + function E(e) { + const { scrollbar: s, rtlTranslate: a } = t, + { el: i } = s; + let r; + (r = (y(e) - w(i)[t.isHorizontal() ? 'left' : 'top'] - (null !== d ? d : c / 2)) / (p - c)), + (r = Math.max(Math.min(r, 1), 0)), + a && (r = 1 - r); + const n = t.minTranslate() + (t.maxTranslate() - t.minTranslate()) * r; + t.updateProgress(n), t.setTranslate(n), t.updateActiveIndex(), t.updateSlidesClasses(); + } + function x(e) { + const s = t.params.scrollbar, + { scrollbar: a, wrapperEl: i } = t, + { el: n, dragEl: l } = a; + (m = !0), + (d = + e.target === l + ? y(e) - e.target.getBoundingClientRect()[t.isHorizontal() ? 'left' : 'top'] + : null), + e.preventDefault(), + e.stopPropagation(), + (i.style.transitionDuration = '100ms'), + (l.style.transitionDuration = '100ms'), + E(e), + clearTimeout(f), + (n.style.transitionDuration = '0ms'), + s.hide && (n.style.opacity = 1), + t.params.cssMode && (t.wrapperEl.style['scroll-snap-type'] = 'none'), + r('scrollbarDragStart', e); + } + function S(e) { + const { scrollbar: s, wrapperEl: a } = t, + { el: i, dragEl: n } = s; + m && + (e.preventDefault ? e.preventDefault() : (e.returnValue = !1), + E(e), + (a.style.transitionDuration = '0ms'), + (i.style.transitionDuration = '0ms'), + (n.style.transitionDuration = '0ms'), + r('scrollbarDragMove', e)); + } + function T(e) { + const s = t.params.scrollbar, + { scrollbar: a, wrapperEl: i } = t, + { el: n } = a; + m && + ((m = !1), + t.params.cssMode && + ((t.wrapperEl.style['scroll-snap-type'] = ''), (i.style.transitionDuration = '')), + s.hide && + (clearTimeout(f), + (f = l(() => { + (n.style.opacity = 0), (n.style.transitionDuration = '400ms'); + }, 1e3))), + r('scrollbarDragEnd', e), + s.snapOnRelease && t.slideToClosest()); + } + function M(e) { + const { scrollbar: s, params: a } = t, + i = s.el; + if (!i) return; + const r = i, + n = !!a.passiveListeners && { passive: !1, capture: !1 }, + l = !!a.passiveListeners && { passive: !0, capture: !1 }; + if (!r) return; + const d = 'on' === e ? 'addEventListener' : 'removeEventListener'; + r[d]('pointerdown', x, n), o[d]('pointermove', S, n), o[d]('pointerup', T, l); + } + function C() { + const { scrollbar: e, el: s } = t; + t.params.scrollbar = te(t, t.originalParams.scrollbar, t.params.scrollbar, { + el: 'swiper-scrollbar', + }); + const a = t.params.scrollbar; + if (!a.el) return; + let i, r; + if ( + ('string' == typeof a.el && t.isElement && (i = t.el.querySelector(a.el)), + i || 'string' != typeof a.el) + ) + i || (i = a.el); + else if (((i = o.querySelectorAll(a.el)), !i.length)) return; + t.params.uniqueNavElements && + 'string' == typeof a.el && + i.length > 1 && + 1 === s.querySelectorAll(a.el).length && + (i = s.querySelector(a.el)), + i.length > 0 && (i = i[0]), + i.classList.add(t.isHorizontal() ? a.horizontalClass : a.verticalClass), + i && + ((r = i.querySelector(se(t.params.scrollbar.dragClass))), + r || ((r = v('div', t.params.scrollbar.dragClass)), i.append(r))), + Object.assign(e, { el: i, dragEl: r }), + a.draggable && t.params.scrollbar.el && t.scrollbar.el && M('on'), + i && i.classList[t.enabled ? 'remove' : 'add'](...n(t.params.scrollbar.lockClass)); + } + function P() { + const e = t.params.scrollbar, + s = t.scrollbar.el; + s && s.classList.remove(...n(t.isHorizontal() ? e.horizontalClass : e.verticalClass)), + t.params.scrollbar.el && t.scrollbar.el && M('off'); + } + s({ + scrollbar: { + el: null, + dragSize: 'auto', + hide: !1, + draggable: !1, + snapOnRelease: !0, + lockClass: 'swiper-scrollbar-lock', + dragClass: 'swiper-scrollbar-drag', + scrollbarDisabledClass: 'swiper-scrollbar-disabled', + horizontalClass: 'swiper-scrollbar-horizontal', + verticalClass: 'swiper-scrollbar-vertical', + }, + }), + (t.scrollbar = { el: null, dragEl: null }), + i('init', () => { + !1 === t.params.scrollbar.enabled ? L() : (C(), b(), g()); + }), + i('update resize observerUpdate lock unlock', () => { + b(); + }), + i('setTranslate', () => { + g(); + }), + i('setTransition', (e, s) => { + !(function (e) { + t.params.scrollbar.el && + t.scrollbar.el && + (t.scrollbar.dragEl.style.transitionDuration = `${e}ms`); + })(s); + }), + i('enable disable', () => { + const { el: e } = t.scrollbar; + e && e.classList[t.enabled ? 'remove' : 'add'](...n(t.params.scrollbar.lockClass)); + }), + i('destroy', () => { + P(); + }); + const L = () => { + t.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)), + t.scrollbar.el && + t.scrollbar.el.classList.add(...n(t.params.scrollbar.scrollbarDisabledClass)), + P(); + }; + Object.assign(t.scrollbar, { + enable: () => { + t.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)), + t.scrollbar.el && + t.scrollbar.el.classList.remove(...n(t.params.scrollbar.scrollbarDisabledClass)), + C(), + b(), + g(); + }, + disable: L, + updateSize: b, + setTranslate: g, + init: C, + destroy: P, + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a } = e; + s({ parallax: { enabled: !1 } }); + const i = + '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]', + r = (e, s) => { + const { rtl: a } = t, + i = a ? -1 : 1, + r = e.getAttribute('data-swiper-parallax') || '0'; + let n = e.getAttribute('data-swiper-parallax-x'), + l = e.getAttribute('data-swiper-parallax-y'); + const o = e.getAttribute('data-swiper-parallax-scale'), + d = e.getAttribute('data-swiper-parallax-opacity'), + c = e.getAttribute('data-swiper-parallax-rotate'); + if ( + (n || l + ? ((n = n || '0'), (l = l || '0')) + : t.isHorizontal() + ? ((n = r), (l = '0')) + : ((l = r), (n = '0')), + (n = n.indexOf('%') >= 0 ? parseInt(n, 10) * s * i + '%' : n * s * i + 'px'), + (l = l.indexOf('%') >= 0 ? parseInt(l, 10) * s + '%' : l * s + 'px'), + null != d) + ) { + const t = d - (d - 1) * (1 - Math.abs(s)); + e.style.opacity = t; + } + let p = `translate3d(${n}, ${l}, 0px)`; + if (null != o) { + p += ` scale(${o - (o - 1) * (1 - Math.abs(s))})`; + } + if (c && null != c) { + p += ` rotate(${c * s * -1}deg)`; + } + e.style.transform = p; + }, + n = () => { + const { el: e, slides: s, progress: a, snapGrid: n, isElement: l } = t, + o = f(e, i); + t.isElement && o.push(...f(t.hostEl, i)), + o.forEach((e) => { + r(e, a); + }), + s.forEach((e, s) => { + let l = e.progress; + t.params.slidesPerGroup > 1 && + 'auto' !== t.params.slidesPerView && + (l += Math.ceil(s / 2) - a * (n.length - 1)), + (l = Math.min(Math.max(l, -1), 1)), + e.querySelectorAll(`${i}, [data-swiper-parallax-rotate]`).forEach((e) => { + r(e, l); + }); + }); + }; + a('beforeInit', () => { + t.params.parallax.enabled && + ((t.params.watchSlidesProgress = !0), (t.originalParams.watchSlidesProgress = !0)); + }), + a('init', () => { + t.params.parallax.enabled && n(); + }), + a('setTranslate', () => { + t.params.parallax.enabled && n(); + }), + a('setTransition', (e, s) => { + t.params.parallax.enabled && + (function (e) { + void 0 === e && (e = t.params.speed); + const { el: s, hostEl: a } = t, + r = [...s.querySelectorAll(i)]; + t.isElement && r.push(...a.querySelectorAll(i)), + r.forEach((t) => { + let s = parseInt(t.getAttribute('data-swiper-parallax-duration'), 10) || e; + 0 === e && (s = 0), (t.style.transitionDuration = `${s}ms`); + }); + })(s); + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a, emit: i } = e; + const n = r(); + s({ + zoom: { + enabled: !1, + maxRatio: 3, + minRatio: 1, + toggle: !0, + containerClass: 'swiper-zoom-container', + zoomedSlideClass: 'swiper-slide-zoomed', + }, + }), + (t.zoom = { enabled: !1 }); + let l, + o, + c = 1, + p = !1; + const u = [], + m = { + originX: 0, + originY: 0, + slideEl: void 0, + slideWidth: void 0, + slideHeight: void 0, + imageEl: void 0, + imageWrapEl: void 0, + maxRatio: 3, + }, + h = { + isTouched: void 0, + isMoved: void 0, + currentX: void 0, + currentY: void 0, + minX: void 0, + minY: void 0, + maxX: void 0, + maxY: void 0, + width: void 0, + height: void 0, + startX: void 0, + startY: void 0, + touchesStart: {}, + touchesCurrent: {}, + }, + g = { + x: void 0, + y: void 0, + prevPositionX: void 0, + prevPositionY: void 0, + prevTime: void 0, + }; + let v = 1; + function b() { + if (u.length < 2) return 1; + const e = u[0].pageX, + t = u[0].pageY, + s = u[1].pageX, + a = u[1].pageY; + return Math.sqrt((s - e) ** 2 + (a - t) ** 2); + } + function y(e) { + const s = t.isElement ? 'swiper-slide' : `.${t.params.slideClass}`; + return !!e.target.matches(s) || t.slides.filter((t) => t.contains(e.target)).length > 0; + } + function x(e) { + if (('mouse' === e.pointerType && u.splice(0, u.length), !y(e))) return; + const s = t.params.zoom; + if (((l = !1), (o = !1), u.push(e), !(u.length < 2))) { + if (((l = !0), (m.scaleStart = b()), !m.slideEl)) { + (m.slideEl = e.target.closest(`.${t.params.slideClass}, swiper-slide`)), + m.slideEl || (m.slideEl = t.slides[t.activeIndex]); + let a = m.slideEl.querySelector(`.${s.containerClass}`); + if ( + (a && (a = a.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]), + (m.imageEl = a), + (m.imageWrapEl = a ? E(m.imageEl, `.${s.containerClass}`)[0] : void 0), + !m.imageWrapEl) + ) + return void (m.imageEl = void 0); + m.maxRatio = m.imageWrapEl.getAttribute('data-swiper-zoom') || s.maxRatio; + } + if (m.imageEl) { + const [e, t] = (function () { + if (u.length < 2) return { x: null, y: null }; + const e = m.imageEl.getBoundingClientRect(); + return [ + (u[0].pageX + (u[1].pageX - u[0].pageX) / 2 - e.x - n.scrollX) / c, + (u[0].pageY + (u[1].pageY - u[0].pageY) / 2 - e.y - n.scrollY) / c, + ]; + })(); + (m.originX = e), (m.originY = t), (m.imageEl.style.transitionDuration = '0ms'); + } + p = !0; + } + } + function S(e) { + if (!y(e)) return; + const s = t.params.zoom, + a = t.zoom, + i = u.findIndex((t) => t.pointerId === e.pointerId); + i >= 0 && (u[i] = e), + u.length < 2 || + ((o = !0), + (m.scaleMove = b()), + m.imageEl && + ((a.scale = (m.scaleMove / m.scaleStart) * c), + a.scale > m.maxRatio && + (a.scale = m.maxRatio - 1 + (a.scale - m.maxRatio + 1) ** 0.5), + a.scale < s.minRatio && + (a.scale = s.minRatio + 1 - (s.minRatio - a.scale + 1) ** 0.5), + (m.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`))); + } + function T(e) { + if (!y(e)) return; + if ('mouse' === e.pointerType && 'pointerout' === e.type) return; + const s = t.params.zoom, + a = t.zoom, + i = u.findIndex((t) => t.pointerId === e.pointerId); + i >= 0 && u.splice(i, 1), + l && + o && + ((l = !1), + (o = !1), + m.imageEl && + ((a.scale = Math.max(Math.min(a.scale, m.maxRatio), s.minRatio)), + (m.imageEl.style.transitionDuration = `${t.params.speed}ms`), + (m.imageEl.style.transform = `translate3d(0,0,0) scale(${a.scale})`), + (c = a.scale), + (p = !1), + a.scale > 1 && m.slideEl + ? m.slideEl.classList.add(`${s.zoomedSlideClass}`) + : a.scale <= 1 && m.slideEl && m.slideEl.classList.remove(`${s.zoomedSlideClass}`), + 1 === a.scale && ((m.originX = 0), (m.originY = 0), (m.slideEl = void 0)))); + } + function M(e) { + if ( + !y(e) || + !(function (e) { + const s = `.${t.params.zoom.containerClass}`; + return ( + !!e.target.matches(s) || + [...t.hostEl.querySelectorAll(s)].filter((t) => t.contains(e.target)).length > 0 + ); + })(e) + ) + return; + const s = t.zoom; + if (!m.imageEl) return; + if (!h.isTouched || !m.slideEl) return; + h.isMoved || + ((h.width = m.imageEl.offsetWidth), + (h.height = m.imageEl.offsetHeight), + (h.startX = d(m.imageWrapEl, 'x') || 0), + (h.startY = d(m.imageWrapEl, 'y') || 0), + (m.slideWidth = m.slideEl.offsetWidth), + (m.slideHeight = m.slideEl.offsetHeight), + (m.imageWrapEl.style.transitionDuration = '0ms')); + const a = h.width * s.scale, + i = h.height * s.scale; + if (a < m.slideWidth && i < m.slideHeight) return; + (h.minX = Math.min(m.slideWidth / 2 - a / 2, 0)), + (h.maxX = -h.minX), + (h.minY = Math.min(m.slideHeight / 2 - i / 2, 0)), + (h.maxY = -h.minY), + (h.touchesCurrent.x = u.length > 0 ? u[0].pageX : e.pageX), + (h.touchesCurrent.y = u.length > 0 ? u[0].pageY : e.pageY); + if ( + (Math.max( + Math.abs(h.touchesCurrent.x - h.touchesStart.x), + Math.abs(h.touchesCurrent.y - h.touchesStart.y) + ) > 5 && (t.allowClick = !1), + !h.isMoved && !p) + ) { + if ( + t.isHorizontal() && + ((Math.floor(h.minX) === Math.floor(h.startX) && + h.touchesCurrent.x < h.touchesStart.x) || + (Math.floor(h.maxX) === Math.floor(h.startX) && + h.touchesCurrent.x > h.touchesStart.x)) + ) + return void (h.isTouched = !1); + if ( + !t.isHorizontal() && + ((Math.floor(h.minY) === Math.floor(h.startY) && + h.touchesCurrent.y < h.touchesStart.y) || + (Math.floor(h.maxY) === Math.floor(h.startY) && + h.touchesCurrent.y > h.touchesStart.y)) + ) + return void (h.isTouched = !1); + } + e.cancelable && e.preventDefault(), e.stopPropagation(), (h.isMoved = !0); + const r = (s.scale - c) / (m.maxRatio - t.params.zoom.minRatio), + { originX: n, originY: l } = m; + (h.currentX = h.touchesCurrent.x - h.touchesStart.x + h.startX + r * (h.width - 2 * n)), + (h.currentY = h.touchesCurrent.y - h.touchesStart.y + h.startY + r * (h.height - 2 * l)), + h.currentX < h.minX && (h.currentX = h.minX + 1 - (h.minX - h.currentX + 1) ** 0.8), + h.currentX > h.maxX && (h.currentX = h.maxX - 1 + (h.currentX - h.maxX + 1) ** 0.8), + h.currentY < h.minY && (h.currentY = h.minY + 1 - (h.minY - h.currentY + 1) ** 0.8), + h.currentY > h.maxY && (h.currentY = h.maxY - 1 + (h.currentY - h.maxY + 1) ** 0.8), + g.prevPositionX || (g.prevPositionX = h.touchesCurrent.x), + g.prevPositionY || (g.prevPositionY = h.touchesCurrent.y), + g.prevTime || (g.prevTime = Date.now()), + (g.x = (h.touchesCurrent.x - g.prevPositionX) / (Date.now() - g.prevTime) / 2), + (g.y = (h.touchesCurrent.y - g.prevPositionY) / (Date.now() - g.prevTime) / 2), + Math.abs(h.touchesCurrent.x - g.prevPositionX) < 2 && (g.x = 0), + Math.abs(h.touchesCurrent.y - g.prevPositionY) < 2 && (g.y = 0), + (g.prevPositionX = h.touchesCurrent.x), + (g.prevPositionY = h.touchesCurrent.y), + (g.prevTime = Date.now()), + (m.imageWrapEl.style.transform = `translate3d(${h.currentX}px, ${h.currentY}px,0)`); + } + function C() { + const e = t.zoom; + m.slideEl && + t.activeIndex !== t.slides.indexOf(m.slideEl) && + (m.imageEl && (m.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'), + m.imageWrapEl && (m.imageWrapEl.style.transform = 'translate3d(0,0,0)'), + m.slideEl.classList.remove(`${t.params.zoom.zoomedSlideClass}`), + (e.scale = 1), + (c = 1), + (m.slideEl = void 0), + (m.imageEl = void 0), + (m.imageWrapEl = void 0), + (m.originX = 0), + (m.originY = 0)); + } + function P(e) { + const s = t.zoom, + a = t.params.zoom; + if (!m.slideEl) { + e && e.target && (m.slideEl = e.target.closest(`.${t.params.slideClass}, swiper-slide`)), + m.slideEl || + (t.params.virtual && t.params.virtual.enabled && t.virtual + ? (m.slideEl = f(t.slidesEl, `.${t.params.slideActiveClass}`)[0]) + : (m.slideEl = t.slides[t.activeIndex])); + let s = m.slideEl.querySelector(`.${a.containerClass}`); + s && (s = s.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]), + (m.imageEl = s), + (m.imageWrapEl = s ? E(m.imageEl, `.${a.containerClass}`)[0] : void 0); + } + if (!m.imageEl || !m.imageWrapEl) return; + let i, r, l, o, d, p, u, g, v, b, y, x, S, T, M, C, P, L; + t.params.cssMode && + ((t.wrapperEl.style.overflow = 'hidden'), (t.wrapperEl.style.touchAction = 'none')), + m.slideEl.classList.add(`${a.zoomedSlideClass}`), + void 0 === h.touchesStart.x && e + ? ((i = e.pageX), (r = e.pageY)) + : ((i = h.touchesStart.x), (r = h.touchesStart.y)); + const A = 'number' == typeof e ? e : null; + 1 === c && A && ((i = void 0), (r = void 0)), + (s.scale = A || m.imageWrapEl.getAttribute('data-swiper-zoom') || a.maxRatio), + (c = A || m.imageWrapEl.getAttribute('data-swiper-zoom') || a.maxRatio), + !e || (1 === c && A) + ? ((u = 0), (g = 0)) + : ((P = m.slideEl.offsetWidth), + (L = m.slideEl.offsetHeight), + (l = w(m.slideEl).left + n.scrollX), + (o = w(m.slideEl).top + n.scrollY), + (d = l + P / 2 - i), + (p = o + L / 2 - r), + (v = m.imageEl.offsetWidth), + (b = m.imageEl.offsetHeight), + (y = v * s.scale), + (x = b * s.scale), + (S = Math.min(P / 2 - y / 2, 0)), + (T = Math.min(L / 2 - x / 2, 0)), + (M = -S), + (C = -T), + (u = d * s.scale), + (g = p * s.scale), + u < S && (u = S), + u > M && (u = M), + g < T && (g = T), + g > C && (g = C)), + A && 1 === s.scale && ((m.originX = 0), (m.originY = 0)), + (m.imageWrapEl.style.transitionDuration = '300ms'), + (m.imageWrapEl.style.transform = `translate3d(${u}px, ${g}px,0)`), + (m.imageEl.style.transitionDuration = '300ms'), + (m.imageEl.style.transform = `translate3d(0,0,0) scale(${s.scale})`); + } + function L() { + const e = t.zoom, + s = t.params.zoom; + if (!m.slideEl) { + t.params.virtual && t.params.virtual.enabled && t.virtual + ? (m.slideEl = f(t.slidesEl, `.${t.params.slideActiveClass}`)[0]) + : (m.slideEl = t.slides[t.activeIndex]); + let e = m.slideEl.querySelector(`.${s.containerClass}`); + e && (e = e.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]), + (m.imageEl = e), + (m.imageWrapEl = e ? E(m.imageEl, `.${s.containerClass}`)[0] : void 0); + } + m.imageEl && + m.imageWrapEl && + (t.params.cssMode && + ((t.wrapperEl.style.overflow = ''), (t.wrapperEl.style.touchAction = '')), + (e.scale = 1), + (c = 1), + (m.imageWrapEl.style.transitionDuration = '300ms'), + (m.imageWrapEl.style.transform = 'translate3d(0,0,0)'), + (m.imageEl.style.transitionDuration = '300ms'), + (m.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'), + m.slideEl.classList.remove(`${s.zoomedSlideClass}`), + (m.slideEl = void 0), + (m.originX = 0), + (m.originY = 0)); + } + function A(e) { + const s = t.zoom; + s.scale && 1 !== s.scale ? L() : P(e); + } + function I() { + return { + passiveListener: !!t.params.passiveListeners && { passive: !0, capture: !1 }, + activeListenerWithCapture: !t.params.passiveListeners || { passive: !1, capture: !0 }, + }; + } + function z() { + const e = t.zoom; + if (e.enabled) return; + e.enabled = !0; + const { passiveListener: s, activeListenerWithCapture: a } = I(); + t.wrapperEl.addEventListener('pointerdown', x, s), + t.wrapperEl.addEventListener('pointermove', S, a), + ['pointerup', 'pointercancel', 'pointerout'].forEach((e) => { + t.wrapperEl.addEventListener(e, T, s); + }), + t.wrapperEl.addEventListener('pointermove', M, a); + } + function $() { + const e = t.zoom; + if (!e.enabled) return; + e.enabled = !1; + const { passiveListener: s, activeListenerWithCapture: a } = I(); + t.wrapperEl.removeEventListener('pointerdown', x, s), + t.wrapperEl.removeEventListener('pointermove', S, a), + ['pointerup', 'pointercancel', 'pointerout'].forEach((e) => { + t.wrapperEl.removeEventListener(e, T, s); + }), + t.wrapperEl.removeEventListener('pointermove', M, a); + } + Object.defineProperty(t.zoom, 'scale', { + get: () => v, + set(e) { + if (v !== e) { + const t = m.imageEl, + s = m.slideEl; + i('zoomChange', e, t, s); + } + v = e; + }, + }), + a('init', () => { + t.params.zoom.enabled && z(); + }), + a('destroy', () => { + $(); + }), + a('touchStart', (e, s) => { + t.zoom.enabled && + (function (e) { + const s = t.device; + if (!m.imageEl) return; + if (h.isTouched) return; + s.android && e.cancelable && e.preventDefault(), (h.isTouched = !0); + const a = u.length > 0 ? u[0] : e; + (h.touchesStart.x = a.pageX), (h.touchesStart.y = a.pageY); + })(s); + }), + a('touchEnd', (e, s) => { + t.zoom.enabled && + (function () { + const e = t.zoom; + if (!m.imageEl) return; + if (!h.isTouched || !h.isMoved) return (h.isTouched = !1), void (h.isMoved = !1); + (h.isTouched = !1), (h.isMoved = !1); + let s = 300, + a = 300; + const i = g.x * s, + r = h.currentX + i, + n = g.y * a, + l = h.currentY + n; + 0 !== g.x && (s = Math.abs((r - h.currentX) / g.x)), + 0 !== g.y && (a = Math.abs((l - h.currentY) / g.y)); + const o = Math.max(s, a); + (h.currentX = r), (h.currentY = l); + const d = h.width * e.scale, + c = h.height * e.scale; + (h.minX = Math.min(m.slideWidth / 2 - d / 2, 0)), + (h.maxX = -h.minX), + (h.minY = Math.min(m.slideHeight / 2 - c / 2, 0)), + (h.maxY = -h.minY), + (h.currentX = Math.max(Math.min(h.currentX, h.maxX), h.minX)), + (h.currentY = Math.max(Math.min(h.currentY, h.maxY), h.minY)), + (m.imageWrapEl.style.transitionDuration = `${o}ms`), + (m.imageWrapEl.style.transform = `translate3d(${h.currentX}px, ${h.currentY}px,0)`); + })(); + }), + a('doubleTap', (e, s) => { + !t.animating && t.params.zoom.enabled && t.zoom.enabled && t.params.zoom.toggle && A(s); + }), + a('transitionEnd', () => { + t.zoom.enabled && t.params.zoom.enabled && C(); + }), + a('slideChange', () => { + t.zoom.enabled && t.params.zoom.enabled && t.params.cssMode && C(); + }), + Object.assign(t.zoom, { enable: z, disable: $, in: P, out: L, toggle: A }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a } = e; + function i(e, t) { + const s = (function () { + let e, t, s; + return (a, i) => { + for (t = -1, e = a.length; e - t > 1; ) + (s = (e + t) >> 1), a[s] <= i ? (t = s) : (e = s); + return e; + }; + })(); + let a, i; + return ( + (this.x = e), + (this.y = t), + (this.lastIndex = e.length - 1), + (this.interpolate = function (e) { + return e + ? ((i = s(this.x, e)), + (a = i - 1), + ((e - this.x[a]) * (this.y[i] - this.y[a])) / (this.x[i] - this.x[a]) + this.y[a]) + : 0; + }), + this + ); + } + function r() { + t.controller.control && + t.controller.spline && + ((t.controller.spline = void 0), delete t.controller.spline); + } + s({ controller: { control: void 0, inverse: !1, by: 'slide' } }), + (t.controller = { control: void 0 }), + a('beforeInit', () => { + if ( + 'undefined' != typeof window && + ('string' == typeof t.params.controller.control || + t.params.controller.control instanceof HTMLElement) + ) { + const e = document.querySelector(t.params.controller.control); + if (e && e.swiper) t.controller.control = e.swiper; + else if (e) { + const s = (a) => { + (t.controller.control = a.detail[0]), t.update(), e.removeEventListener('init', s); + }; + e.addEventListener('init', s); + } + } else t.controller.control = t.params.controller.control; + }), + a('update', () => { + r(); + }), + a('resize', () => { + r(); + }), + a('observerUpdate', () => { + r(); + }), + a('setTranslate', (e, s, a) => { + t.controller.control && + !t.controller.control.destroyed && + t.controller.setTranslate(s, a); + }), + a('setTransition', (e, s, a) => { + t.controller.control && + !t.controller.control.destroyed && + t.controller.setTransition(s, a); + }), + Object.assign(t.controller, { + setTranslate: function (e, s) { + const a = t.controller.control; + let r, n; + const l = t.constructor; + function o(e) { + if (e.destroyed) return; + const s = t.rtlTranslate ? -t.translate : t.translate; + 'slide' === t.params.controller.by && + (!(function (e) { + t.controller.spline = t.params.loop + ? new i(t.slidesGrid, e.slidesGrid) + : new i(t.snapGrid, e.snapGrid); + })(e), + (n = -t.controller.spline.interpolate(-s))), + (n && 'container' !== t.params.controller.by) || + ((r = + (e.maxTranslate() - e.minTranslate()) / (t.maxTranslate() - t.minTranslate())), + (!Number.isNaN(r) && Number.isFinite(r)) || (r = 1), + (n = (s - t.minTranslate()) * r + e.minTranslate())), + t.params.controller.inverse && (n = e.maxTranslate() - n), + e.updateProgress(n), + e.setTranslate(n, t), + e.updateActiveIndex(), + e.updateSlidesClasses(); + } + if (Array.isArray(a)) + for (let e = 0; e < a.length; e += 1) a[e] !== s && a[e] instanceof l && o(a[e]); + else a instanceof l && s !== a && o(a); + }, + setTransition: function (e, s) { + const a = t.constructor, + i = t.controller.control; + let r; + function n(s) { + s.destroyed || + (s.setTransition(e, t), + 0 !== e && + (s.transitionStart(), + s.params.autoHeight && + l(() => { + s.updateAutoHeight(); + }), + x(s.wrapperEl, () => { + i && s.transitionEnd(); + }))); + } + if (Array.isArray(i)) + for (r = 0; r < i.length; r += 1) i[r] !== s && i[r] instanceof a && n(i[r]); + else i instanceof a && s !== i && n(i); + }, + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a } = e; + s({ + a11y: { + enabled: !0, + notificationClass: 'swiper-notification', + prevSlideMessage: 'Previous slide', + nextSlideMessage: 'Next slide', + firstSlideMessage: 'This is the first slide', + lastSlideMessage: 'This is the last slide', + paginationBulletMessage: 'Go to slide {{index}}', + slideLabelMessage: '{{index}} / {{slidesLength}}', + containerMessage: null, + containerRoleDescriptionMessage: null, + itemRoleDescriptionMessage: null, + slideRole: 'group', + id: null, + }, + }), + (t.a11y = { clicked: !1 }); + let i = null; + function r(e) { + const t = i; + 0 !== t.length && ((t.innerHTML = ''), (t.innerHTML = e)); + } + const n = (e) => (Array.isArray(e) ? e : [e]).filter((e) => !!e); + function l(e) { + (e = n(e)).forEach((e) => { + e.setAttribute('tabIndex', '0'); + }); + } + function o(e) { + (e = n(e)).forEach((e) => { + e.setAttribute('tabIndex', '-1'); + }); + } + function d(e, t) { + (e = n(e)).forEach((e) => { + e.setAttribute('role', t); + }); + } + function c(e, t) { + (e = n(e)).forEach((e) => { + e.setAttribute('aria-roledescription', t); + }); + } + function p(e, t) { + (e = n(e)).forEach((e) => { + e.setAttribute('aria-label', t); + }); + } + function u(e) { + (e = n(e)).forEach((e) => { + e.setAttribute('aria-disabled', !0); + }); + } + function m(e) { + (e = n(e)).forEach((e) => { + e.setAttribute('aria-disabled', !1); + }); + } + function h(e) { + if (13 !== e.keyCode && 32 !== e.keyCode) return; + const s = t.params.a11y, + a = e.target; + (t.pagination && + t.pagination.el && + (a === t.pagination.el || t.pagination.el.contains(e.target)) && + !e.target.matches(se(t.params.pagination.bulletClass))) || + (t.navigation && + t.navigation.nextEl && + a === t.navigation.nextEl && + ((t.isEnd && !t.params.loop) || t.slideNext(), + t.isEnd ? r(s.lastSlideMessage) : r(s.nextSlideMessage)), + t.navigation && + t.navigation.prevEl && + a === t.navigation.prevEl && + ((t.isBeginning && !t.params.loop) || t.slidePrev(), + t.isBeginning ? r(s.firstSlideMessage) : r(s.prevSlideMessage)), + t.pagination && a.matches(se(t.params.pagination.bulletClass)) && a.click()); + } + function f() { + return t.pagination && t.pagination.bullets && t.pagination.bullets.length; + } + function g() { + return f() && t.params.pagination.clickable; + } + const w = (e, t, s) => { + l(e), + 'BUTTON' !== e.tagName && (d(e, 'button'), e.addEventListener('keydown', h)), + p(e, s), + (function (e, t) { + (e = n(e)).forEach((e) => { + e.setAttribute('aria-controls', t); + }); + })(e, t); + }, + b = () => { + t.a11y.clicked = !0; + }, + E = () => { + requestAnimationFrame(() => { + requestAnimationFrame(() => { + t.destroyed || (t.a11y.clicked = !1); + }); + }); + }, + x = (e) => { + if (t.a11y.clicked) return; + const s = e.target.closest(`.${t.params.slideClass}, swiper-slide`); + if (!s || !t.slides.includes(s)) return; + const a = t.slides.indexOf(s) === t.activeIndex, + i = t.params.watchSlidesProgress && t.visibleSlides && t.visibleSlides.includes(s); + a || + i || + (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) || + (t.isHorizontal() ? (t.el.scrollLeft = 0) : (t.el.scrollTop = 0), + t.slideTo(t.slides.indexOf(s), 0)); + }, + S = () => { + const e = t.params.a11y; + e.itemRoleDescriptionMessage && c(t.slides, e.itemRoleDescriptionMessage), + e.slideRole && d(t.slides, e.slideRole); + const s = t.slides.length; + e.slideLabelMessage && + t.slides.forEach((a, i) => { + const r = t.params.loop ? parseInt(a.getAttribute('data-swiper-slide-index'), 10) : i; + p( + a, + e.slideLabelMessage + .replace(/\{\{index\}\}/, r + 1) + .replace(/\{\{slidesLength\}\}/, s) + ); + }); + }, + T = () => { + const e = t.params.a11y; + t.el.append(i); + const s = t.el; + e.containerRoleDescriptionMessage && c(s, e.containerRoleDescriptionMessage), + e.containerMessage && p(s, e.containerMessage); + const a = t.wrapperEl, + r = + e.id || + a.getAttribute('id') || + `swiper-wrapper-${ + ((l = 16), + void 0 === l && (l = 16), + 'x'.repeat(l).replace(/x/g, () => Math.round(16 * Math.random()).toString(16))) + }`; + var l; + const o = t.params.autoplay && t.params.autoplay.enabled ? 'off' : 'polite'; + var d; + (d = r), + n(a).forEach((e) => { + e.setAttribute('id', d); + }), + (function (e, t) { + (e = n(e)).forEach((e) => { + e.setAttribute('aria-live', t); + }); + })(a, o), + S(); + let { nextEl: u, prevEl: m } = t.navigation ? t.navigation : {}; + if ( + ((u = n(u)), + (m = n(m)), + u && u.forEach((t) => w(t, r, e.nextSlideMessage)), + m && m.forEach((t) => w(t, r, e.prevSlideMessage)), + g()) + ) { + (Array.isArray(t.pagination.el) ? t.pagination.el : [t.pagination.el]).forEach((e) => { + e.addEventListener('keydown', h); + }); + } + t.el.addEventListener('focus', x, !0), + t.el.addEventListener('pointerdown', b, !0), + t.el.addEventListener('pointerup', E, !0); + }; + a('beforeInit', () => { + (i = v('span', t.params.a11y.notificationClass)), + i.setAttribute('aria-live', 'assertive'), + i.setAttribute('aria-atomic', 'true'); + }), + a('afterInit', () => { + t.params.a11y.enabled && T(); + }), + a('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => { + t.params.a11y.enabled && S(); + }), + a('fromEdge toEdge afterInit lock unlock', () => { + t.params.a11y.enabled && + (function () { + if (t.params.loop || t.params.rewind || !t.navigation) return; + const { nextEl: e, prevEl: s } = t.navigation; + s && (t.isBeginning ? (u(s), o(s)) : (m(s), l(s))), + e && (t.isEnd ? (u(e), o(e)) : (m(e), l(e))); + })(); + }), + a('paginationUpdate', () => { + t.params.a11y.enabled && + (function () { + const e = t.params.a11y; + f() && + t.pagination.bullets.forEach((s) => { + t.params.pagination.clickable && + (l(s), + t.params.pagination.renderBullet || + (d(s, 'button'), + p(s, e.paginationBulletMessage.replace(/\{\{index\}\}/, y(s) + 1)))), + s.matches(se(t.params.pagination.bulletActiveClass)) + ? s.setAttribute('aria-current', 'true') + : s.removeAttribute('aria-current'); + }); + })(); + }), + a('destroy', () => { + t.params.a11y.enabled && + (function () { + i && i.remove(); + let { nextEl: e, prevEl: s } = t.navigation ? t.navigation : {}; + (e = n(e)), + (s = n(s)), + e && e.forEach((e) => e.removeEventListener('keydown', h)), + s && s.forEach((e) => e.removeEventListener('keydown', h)), + g() && + (Array.isArray(t.pagination.el) ? t.pagination.el : [t.pagination.el]).forEach( + (e) => { + e.removeEventListener('keydown', h); + } + ); + t.el.removeEventListener('focus', x, !0), + t.el.removeEventListener('pointerdown', b, !0), + t.el.removeEventListener('pointerup', E, !0); + })(); + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a } = e; + s({ history: { enabled: !1, root: '', replaceState: !1, key: 'slides', keepQuery: !1 } }); + let i = !1, + n = {}; + const l = (e) => + e + .toString() + .replace(/\s+/g, '-') + .replace(/[^\w-]+/g, '') + .replace(/--+/g, '-') + .replace(/^-+/, '') + .replace(/-+$/, ''), + o = (e) => { + const t = r(); + let s; + s = e ? new URL(e) : t.location; + const a = s.pathname + .slice(1) + .split('/') + .filter((e) => '' !== e), + i = a.length; + return { key: a[i - 2], value: a[i - 1] }; + }, + d = (e, s) => { + const a = r(); + if (!i || !t.params.history.enabled) return; + let n; + n = t.params.url ? new URL(t.params.url) : a.location; + const o = t.slides[s]; + let d = l(o.getAttribute('data-history')); + if (t.params.history.root.length > 0) { + let s = t.params.history.root; + '/' === s[s.length - 1] && (s = s.slice(0, s.length - 1)), + (d = `${s}/${e ? `${e}/` : ''}${d}`); + } else n.pathname.includes(e) || (d = `${e ? `${e}/` : ''}${d}`); + t.params.history.keepQuery && (d += n.search); + const c = a.history.state; + (c && c.value === d) || + (t.params.history.replaceState + ? a.history.replaceState({ value: d }, null, d) + : a.history.pushState({ value: d }, null, d)); + }, + c = (e, s, a) => { + if (s) + for (let i = 0, r = t.slides.length; i < r; i += 1) { + const r = t.slides[i]; + if (l(r.getAttribute('data-history')) === s) { + const s = t.getSlideIndex(r); + t.slideTo(s, e, a); + } + } + else t.slideTo(0, e, a); + }, + p = () => { + (n = o(t.params.url)), c(t.params.speed, n.value, !1); + }; + a('init', () => { + t.params.history.enabled && + (() => { + const e = r(); + if (t.params.history) { + if (!e.history || !e.history.pushState) + return (t.params.history.enabled = !1), void (t.params.hashNavigation.enabled = !0); + (i = !0), + (n = o(t.params.url)), + n.key || n.value + ? (c(0, n.value, t.params.runCallbacksOnInit), + t.params.history.replaceState || e.addEventListener('popstate', p)) + : t.params.history.replaceState || e.addEventListener('popstate', p); + } + })(); + }), + a('destroy', () => { + t.params.history.enabled && + (() => { + const e = r(); + t.params.history.replaceState || e.removeEventListener('popstate', p); + })(); + }), + a('transitionEnd _freeModeNoMomentumRelease', () => { + i && d(t.params.history.key, t.activeIndex); + }), + a('slideChange', () => { + i && t.params.cssMode && d(t.params.history.key, t.activeIndex); + }); + }, + function (e) { + let { swiper: t, extendParams: s, emit: i, on: n } = e, + l = !1; + const o = a(), + d = r(); + s({ + hashNavigation: { + enabled: !1, + replaceState: !1, + watchState: !1, + getSlideIndex(e, s) { + if (t.virtual && t.params.virtual.enabled) { + const e = t.slides.filter((e) => e.getAttribute('data-hash') === s)[0]; + if (!e) return 0; + return parseInt(e.getAttribute('data-swiper-slide-index'), 10); + } + return t.getSlideIndex( + f( + t.slidesEl, + `.${t.params.slideClass}[data-hash="${s}"], swiper-slide[data-hash="${s}"]` + )[0] + ); + }, + }, + }); + const c = () => { + i('hashChange'); + const e = o.location.hash.replace('#', ''), + s = + t.virtual && t.params.virtual.enabled + ? t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`) + : t.slides[t.activeIndex]; + if (e !== (s ? s.getAttribute('data-hash') : '')) { + const s = t.params.hashNavigation.getSlideIndex(t, e); + if (void 0 === s || Number.isNaN(s)) return; + t.slideTo(s); + } + }, + p = () => { + if (!l || !t.params.hashNavigation.enabled) return; + const e = + t.virtual && t.params.virtual.enabled + ? t.slidesEl.querySelector(`[data-swiper-slide-index="${t.activeIndex}"]`) + : t.slides[t.activeIndex], + s = e ? e.getAttribute('data-hash') || e.getAttribute('data-history') : ''; + t.params.hashNavigation.replaceState && d.history && d.history.replaceState + ? (d.history.replaceState(null, null, `#${s}` || ''), i('hashSet')) + : ((o.location.hash = s || ''), i('hashSet')); + }; + n('init', () => { + t.params.hashNavigation.enabled && + (() => { + if (!t.params.hashNavigation.enabled || (t.params.history && t.params.history.enabled)) + return; + l = !0; + const e = o.location.hash.replace('#', ''); + if (e) { + const s = 0, + a = t.params.hashNavigation.getSlideIndex(t, e); + t.slideTo(a || 0, s, t.params.runCallbacksOnInit, !0); + } + t.params.hashNavigation.watchState && d.addEventListener('hashchange', c); + })(); + }), + n('destroy', () => { + t.params.hashNavigation.enabled && + t.params.hashNavigation.watchState && + d.removeEventListener('hashchange', c); + }), + n('transitionEnd _freeModeNoMomentumRelease', () => { + l && p(); + }), + n('slideChange', () => { + l && t.params.cssMode && p(); + }); + }, + function (e) { + let t, + s, + { swiper: i, extendParams: r, on: n, emit: l, params: o } = e; + (i.autoplay = { running: !1, paused: !1, timeLeft: 0 }), + r({ + autoplay: { + enabled: !1, + delay: 3e3, + waitForTransition: !0, + disableOnInteraction: !1, + stopOnLastSlide: !1, + reverseDirection: !1, + pauseOnMouseEnter: !1, + }, + }); + let d, + c, + p, + u, + m, + h, + f, + g, + v = o && o.autoplay ? o.autoplay.delay : 3e3, + w = o && o.autoplay ? o.autoplay.delay : 3e3, + b = new Date().getTime(); + function y(e) { + i && + !i.destroyed && + i.wrapperEl && + e.target === i.wrapperEl && + (i.wrapperEl.removeEventListener('transitionend', y), g || C()); + } + const E = () => { + if (i.destroyed || !i.autoplay.running) return; + i.autoplay.paused ? (c = !0) : c && ((w = d), (c = !1)); + const e = i.autoplay.paused ? d : b + w - new Date().getTime(); + (i.autoplay.timeLeft = e), + l('autoplayTimeLeft', e, e / v), + (s = requestAnimationFrame(() => { + E(); + })); + }, + x = (e) => { + if (i.destroyed || !i.autoplay.running) return; + cancelAnimationFrame(s), E(); + let a = void 0 === e ? i.params.autoplay.delay : e; + (v = i.params.autoplay.delay), (w = i.params.autoplay.delay); + const r = (() => { + let e; + if ( + ((e = + i.virtual && i.params.virtual.enabled + ? i.slides.filter((e) => e.classList.contains('swiper-slide-active'))[0] + : i.slides[i.activeIndex]), + !e) + ) + return; + return parseInt(e.getAttribute('data-swiper-autoplay'), 10); + })(); + !Number.isNaN(r) && r > 0 && void 0 === e && ((a = r), (v = r), (w = r)), (d = a); + const n = i.params.speed, + o = () => { + i && + !i.destroyed && + (i.params.autoplay.reverseDirection + ? !i.isBeginning || i.params.loop || i.params.rewind + ? (i.slidePrev(n, !0, !0), l('autoplay')) + : i.params.autoplay.stopOnLastSlide || + (i.slideTo(i.slides.length - 1, n, !0, !0), l('autoplay')) + : !i.isEnd || i.params.loop || i.params.rewind + ? (i.slideNext(n, !0, !0), l('autoplay')) + : i.params.autoplay.stopOnLastSlide || (i.slideTo(0, n, !0, !0), l('autoplay')), + i.params.cssMode && + ((b = new Date().getTime()), + requestAnimationFrame(() => { + x(); + }))); + }; + return ( + a > 0 + ? (clearTimeout(t), + (t = setTimeout(() => { + o(); + }, a))) + : requestAnimationFrame(() => { + o(); + }), + a + ); + }, + S = () => { + (b = new Date().getTime()), (i.autoplay.running = !0), x(), l('autoplayStart'); + }, + T = () => { + (i.autoplay.running = !1), clearTimeout(t), cancelAnimationFrame(s), l('autoplayStop'); + }, + M = (e, s) => { + if (i.destroyed || !i.autoplay.running) return; + clearTimeout(t), e || (f = !0); + const a = () => { + l('autoplayPause'), + i.params.autoplay.waitForTransition + ? i.wrapperEl.addEventListener('transitionend', y) + : C(); + }; + if (((i.autoplay.paused = !0), s)) + return h && (d = i.params.autoplay.delay), (h = !1), void a(); + const r = d || i.params.autoplay.delay; + (d = r - (new Date().getTime() - b)), + (i.isEnd && d < 0 && !i.params.loop) || (d < 0 && (d = 0), a()); + }, + C = () => { + (i.isEnd && d < 0 && !i.params.loop) || + i.destroyed || + !i.autoplay.running || + ((b = new Date().getTime()), + f ? ((f = !1), x(d)) : x(), + (i.autoplay.paused = !1), + l('autoplayResume')); + }, + P = () => { + if (i.destroyed || !i.autoplay.running) return; + const e = a(); + 'hidden' === e.visibilityState && ((f = !0), M(!0)), + 'visible' === e.visibilityState && C(); + }, + L = (e) => { + 'mouse' === e.pointerType && + ((f = !0), (g = !0), i.animating || i.autoplay.paused || M(!0)); + }, + A = (e) => { + 'mouse' === e.pointerType && ((g = !1), i.autoplay.paused && C()); + }; + n('init', () => { + i.params.autoplay.enabled && + (i.params.autoplay.pauseOnMouseEnter && + (i.el.addEventListener('pointerenter', L), i.el.addEventListener('pointerleave', A)), + a().addEventListener('visibilitychange', P), + S()); + }), + n('destroy', () => { + i.el.removeEventListener('pointerenter', L), + i.el.removeEventListener('pointerleave', A), + a().removeEventListener('visibilitychange', P), + i.autoplay.running && T(); + }), + n('_freeModeStaticRelease', () => { + (u || f) && C(); + }), + n('_freeModeNoMomentumRelease', () => { + i.params.autoplay.disableOnInteraction ? T() : M(!0, !0); + }), + n('beforeTransitionStart', (e, t, s) => { + !i.destroyed && + i.autoplay.running && + (s || !i.params.autoplay.disableOnInteraction ? M(!0, !0) : T()); + }), + n('sliderFirstMove', () => { + !i.destroyed && + i.autoplay.running && + (i.params.autoplay.disableOnInteraction + ? T() + : ((p = !0), + (u = !1), + (f = !1), + (m = setTimeout(() => { + (f = !0), (u = !0), M(!0); + }, 200)))); + }), + n('touchEnd', () => { + if (!i.destroyed && i.autoplay.running && p) { + if ((clearTimeout(m), clearTimeout(t), i.params.autoplay.disableOnInteraction)) + return (u = !1), void (p = !1); + u && i.params.cssMode && C(), (u = !1), (p = !1); + } + }), + n('slideChange', () => { + !i.destroyed && i.autoplay.running && (h = !0); + }), + Object.assign(i.autoplay, { start: S, stop: T, pause: M, resume: C }); + }, + function (e) { + let { swiper: t, extendParams: s, on: i } = e; + s({ + thumbs: { + swiper: null, + multipleActiveThumbs: !0, + autoScrollOffset: 0, + slideThumbActiveClass: 'swiper-slide-thumb-active', + thumbsContainerClass: 'swiper-thumbs', + }, + }); + let r = !1, + n = !1; + function l() { + const e = t.thumbs.swiper; + if (!e || e.destroyed) return; + const s = e.clickedIndex, + a = e.clickedSlide; + if (a && a.classList.contains(t.params.thumbs.slideThumbActiveClass)) return; + if (null == s) return; + let i; + (i = e.params.loop + ? parseInt(e.clickedSlide.getAttribute('data-swiper-slide-index'), 10) + : s), + t.params.loop ? t.slideToLoop(i) : t.slideTo(i); + } + function o() { + const { thumbs: e } = t.params; + if (r) return !1; + r = !0; + const s = t.constructor; + if (e.swiper instanceof s) + (t.thumbs.swiper = e.swiper), + Object.assign(t.thumbs.swiper.originalParams, { + watchSlidesProgress: !0, + slideToClickedSlide: !1, + }), + Object.assign(t.thumbs.swiper.params, { + watchSlidesProgress: !0, + slideToClickedSlide: !1, + }), + t.thumbs.swiper.update(); + else if (c(e.swiper)) { + const a = Object.assign({}, e.swiper); + Object.assign(a, { watchSlidesProgress: !0, slideToClickedSlide: !1 }), + (t.thumbs.swiper = new s(a)), + (n = !0); + } + return ( + t.thumbs.swiper.el.classList.add(t.params.thumbs.thumbsContainerClass), + t.thumbs.swiper.on('tap', l), + !0 + ); + } + function d(e) { + const s = t.thumbs.swiper; + if (!s || s.destroyed) return; + const a = + 'auto' === s.params.slidesPerView ? s.slidesPerViewDynamic() : s.params.slidesPerView; + let i = 1; + const r = t.params.thumbs.slideThumbActiveClass; + if ( + (t.params.slidesPerView > 1 && !t.params.centeredSlides && (i = t.params.slidesPerView), + t.params.thumbs.multipleActiveThumbs || (i = 1), + (i = Math.floor(i)), + s.slides.forEach((e) => e.classList.remove(r)), + s.params.loop || (s.params.virtual && s.params.virtual.enabled)) + ) + for (let e = 0; e < i; e += 1) + f(s.slidesEl, `[data-swiper-slide-index="${t.realIndex + e}"]`).forEach((e) => { + e.classList.add(r); + }); + else + for (let e = 0; e < i; e += 1) + s.slides[t.realIndex + e] && s.slides[t.realIndex + e].classList.add(r); + const n = t.params.thumbs.autoScrollOffset, + l = n && !s.params.loop; + if (t.realIndex !== s.realIndex || l) { + const i = s.activeIndex; + let r, o; + if (s.params.loop) { + const e = s.slides.filter( + (e) => e.getAttribute('data-swiper-slide-index') === `${t.realIndex}` + )[0]; + (r = s.slides.indexOf(e)), (o = t.activeIndex > t.previousIndex ? 'next' : 'prev'); + } else (r = t.realIndex), (o = r > t.previousIndex ? 'next' : 'prev'); + l && (r += 'next' === o ? n : -1 * n), + s.visibleSlidesIndexes && + s.visibleSlidesIndexes.indexOf(r) < 0 && + (s.params.centeredSlides + ? (r = r > i ? r - Math.floor(a / 2) + 1 : r + Math.floor(a / 2) - 1) + : r > i && s.params.slidesPerGroup, + s.slideTo(r, e ? 0 : void 0)); + } + } + (t.thumbs = { swiper: null }), + i('beforeInit', () => { + const { thumbs: e } = t.params; + if (e && e.swiper) + if ('string' == typeof e.swiper || e.swiper instanceof HTMLElement) { + const s = a(), + i = () => { + const a = 'string' == typeof e.swiper ? s.querySelector(e.swiper) : e.swiper; + if (a && a.swiper) (e.swiper = a.swiper), o(), d(!0); + else if (a) { + const s = (i) => { + (e.swiper = i.detail[0]), + a.removeEventListener('init', s), + o(), + d(!0), + e.swiper.update(), + t.update(); + }; + a.addEventListener('init', s); + } + return a; + }, + r = () => { + if (t.destroyed) return; + i() || requestAnimationFrame(r); + }; + requestAnimationFrame(r); + } else o(), d(!0); + }), + i('slideChange update resize observerUpdate', () => { + d(); + }), + i('setTransition', (e, s) => { + const a = t.thumbs.swiper; + a && !a.destroyed && a.setTransition(s); + }), + i('beforeDestroy', () => { + const e = t.thumbs.swiper; + e && !e.destroyed && n && e.destroy(); + }), + Object.assign(t.thumbs, { init: o, update: d }); + }, + function (e) { + let { swiper: t, extendParams: s, emit: a, once: i } = e; + s({ + freeMode: { + enabled: !1, + momentum: !0, + momentumRatio: 1, + momentumBounce: !0, + momentumBounceRatio: 1, + momentumVelocityRatio: 1, + sticky: !1, + minimumVelocity: 0.02, + }, + }), + Object.assign(t, { + freeMode: { + onTouchStart: function () { + if (t.params.cssMode) return; + const e = t.getTranslate(); + t.setTranslate(e), + t.setTransition(0), + (t.touchEventsData.velocities.length = 0), + t.freeMode.onTouchEnd({ currentPos: t.rtl ? t.translate : -t.translate }); + }, + onTouchMove: function () { + if (t.params.cssMode) return; + const { touchEventsData: e, touches: s } = t; + 0 === e.velocities.length && + e.velocities.push({ + position: s[t.isHorizontal() ? 'startX' : 'startY'], + time: e.touchStartTime, + }), + e.velocities.push({ + position: s[t.isHorizontal() ? 'currentX' : 'currentY'], + time: o(), + }); + }, + onTouchEnd: function (e) { + let { currentPos: s } = e; + if (t.params.cssMode) return; + const { + params: r, + wrapperEl: n, + rtlTranslate: l, + snapGrid: d, + touchEventsData: c, + } = t, + p = o() - c.touchStartTime; + if (s < -t.minTranslate()) t.slideTo(t.activeIndex); + else if (s > -t.maxTranslate()) + t.slides.length < d.length + ? t.slideTo(d.length - 1) + : t.slideTo(t.slides.length - 1); + else { + if (r.freeMode.momentum) { + if (c.velocities.length > 1) { + const e = c.velocities.pop(), + s = c.velocities.pop(), + a = e.position - s.position, + i = e.time - s.time; + (t.velocity = a / i), + (t.velocity /= 2), + Math.abs(t.velocity) < r.freeMode.minimumVelocity && (t.velocity = 0), + (i > 150 || o() - e.time > 300) && (t.velocity = 0); + } else t.velocity = 0; + (t.velocity *= r.freeMode.momentumVelocityRatio), (c.velocities.length = 0); + let e = 1e3 * r.freeMode.momentumRatio; + const s = t.velocity * e; + let p = t.translate + s; + l && (p = -p); + let u, + m = !1; + const h = 20 * Math.abs(t.velocity) * r.freeMode.momentumBounceRatio; + let f; + if (p < t.maxTranslate()) + r.freeMode.momentumBounce + ? (p + t.maxTranslate() < -h && (p = t.maxTranslate() - h), + (u = t.maxTranslate()), + (m = !0), + (c.allowMomentumBounce = !0)) + : (p = t.maxTranslate()), + r.loop && r.centeredSlides && (f = !0); + else if (p > t.minTranslate()) + r.freeMode.momentumBounce + ? (p - t.minTranslate() > h && (p = t.minTranslate() + h), + (u = t.minTranslate()), + (m = !0), + (c.allowMomentumBounce = !0)) + : (p = t.minTranslate()), + r.loop && r.centeredSlides && (f = !0); + else if (r.freeMode.sticky) { + let e; + for (let t = 0; t < d.length; t += 1) + if (d[t] > -p) { + e = t; + break; + } + (p = + Math.abs(d[e] - p) < Math.abs(d[e - 1] - p) || 'next' === t.swipeDirection + ? d[e] + : d[e - 1]), + (p = -p); + } + if ( + (f && + i('transitionEnd', () => { + t.loopFix(); + }), + 0 !== t.velocity) + ) { + if ( + ((e = l + ? Math.abs((-p - t.translate) / t.velocity) + : Math.abs((p - t.translate) / t.velocity)), + r.freeMode.sticky) + ) { + const s = Math.abs((l ? -p : p) - t.translate), + a = t.slidesSizesGrid[t.activeIndex]; + e = s < a ? r.speed : s < 2 * a ? 1.5 * r.speed : 2.5 * r.speed; + } + } else if (r.freeMode.sticky) return void t.slideToClosest(); + r.freeMode.momentumBounce && m + ? (t.updateProgress(u), + t.setTransition(e), + t.setTranslate(p), + t.transitionStart(!0, t.swipeDirection), + (t.animating = !0), + x(n, () => { + t && + !t.destroyed && + c.allowMomentumBounce && + (a('momentumBounce'), + t.setTransition(r.speed), + setTimeout(() => { + t.setTranslate(u), + x(n, () => { + t && !t.destroyed && t.transitionEnd(); + }); + }, 0)); + })) + : t.velocity + ? (a('_freeModeNoMomentumRelease'), + t.updateProgress(p), + t.setTransition(e), + t.setTranslate(p), + t.transitionStart(!0, t.swipeDirection), + t.animating || + ((t.animating = !0), + x(n, () => { + t && !t.destroyed && t.transitionEnd(); + }))) + : t.updateProgress(p), + t.updateActiveIndex(), + t.updateSlidesClasses(); + } else { + if (r.freeMode.sticky) return void t.slideToClosest(); + r.freeMode && a('_freeModeNoMomentumRelease'); + } + (!r.freeMode.momentum || p >= r.longSwipesMs) && + (a('_freeModeStaticRelease'), + t.updateProgress(), + t.updateActiveIndex(), + t.updateSlidesClasses()); + } + }, + }, + }); + }, + function (e) { + let t, + s, + a, + i, + { swiper: r, extendParams: n, on: l } = e; + n({ grid: { rows: 1, fill: 'column' } }); + const o = () => { + let e = r.params.spaceBetween; + return ( + 'string' == typeof e && e.indexOf('%') >= 0 + ? (e = (parseFloat(e.replace('%', '')) / 100) * r.size) + : 'string' == typeof e && (e = parseFloat(e)), + e + ); + }; + l('init', () => { + i = r.params.grid && r.params.grid.rows > 1; + }), + l('update', () => { + const { params: e, el: t } = r, + s = e.grid && e.grid.rows > 1; + i && !s + ? (t.classList.remove( + `${e.containerModifierClass}grid`, + `${e.containerModifierClass}grid-column` + ), + (a = 1), + r.emitContainerClasses()) + : !i && + s && + (t.classList.add(`${e.containerModifierClass}grid`), + 'column' === e.grid.fill && t.classList.add(`${e.containerModifierClass}grid-column`), + r.emitContainerClasses()), + (i = s); + }), + (r.grid = { + initSlides: (e) => { + const { slidesPerView: i } = r.params, + { rows: n, fill: l } = r.params.grid, + o = r.virtual && r.params.virtual.enabled ? r.virtual.slides.length : e.length; + (a = Math.floor(o / n)), + (t = Math.floor(o / n) === o / n ? o : Math.ceil(o / n) * n), + 'auto' !== i && 'row' === l && (t = Math.max(t, i * n)), + (s = t / n); + }, + unsetSlides: () => { + r.slides && + r.slides.forEach((e) => { + e.swiperSlideGridSet && + ((e.style.height = ''), (e.style[r.getDirectionLabel('margin-top')] = '')); + }); + }, + updateSlide: (e, i, n) => { + const { slidesPerGroup: l } = r.params, + d = o(), + { rows: c, fill: p } = r.params.grid, + u = r.virtual && r.params.virtual.enabled ? r.virtual.slides.length : n.length; + let m, h, f; + if ('row' === p && l > 1) { + const s = Math.floor(e / (l * c)), + a = e - c * l * s, + r = 0 === s ? l : Math.min(Math.ceil((u - s * c * l) / c), l); + (f = Math.floor(a / r)), + (h = a - f * r + s * l), + (m = h + (f * t) / c), + (i.style.order = m); + } else + 'column' === p + ? ((h = Math.floor(e / c)), + (f = e - h * c), + (h > a || (h === a && f === c - 1)) && ((f += 1), f >= c && ((f = 0), (h += 1)))) + : ((f = Math.floor(e / s)), (h = e - f * s)); + (i.row = f), + (i.column = h), + (i.style.height = `calc((100% - ${(c - 1) * d}px) / ${c})`), + (i.style[r.getDirectionLabel('margin-top')] = 0 !== f ? d && `${d}px` : ''), + (i.swiperSlideGridSet = !0); + }, + updateWrapperSize: (e, s) => { + const { centeredSlides: a, roundLengths: i } = r.params, + n = o(), + { rows: l } = r.params.grid; + if ( + ((r.virtualSize = (e + n) * t), + (r.virtualSize = Math.ceil(r.virtualSize / l) - n), + r.params.cssMode || + (r.wrapperEl.style[r.getDirectionLabel('width')] = `${r.virtualSize + n}px`), + a) + ) { + const e = []; + for (let t = 0; t < s.length; t += 1) { + let a = s[t]; + i && (a = Math.floor(a)), s[t] < r.virtualSize + s[0] && e.push(a); + } + s.splice(0, s.length), s.push(...e); + } + }, + }); + }, + function (e) { + let { swiper: t } = e; + Object.assign(t, { + appendSlide: ae.bind(t), + prependSlide: ie.bind(t), + addSlide: re.bind(t), + removeSlide: ne.bind(t), + removeAllSlides: le.bind(t), + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a } = e; + s({ fadeEffect: { crossFade: !1 } }), + oe({ + effect: 'fade', + swiper: t, + on: a, + setTranslate: () => { + const { slides: e } = t; + t.params.fadeEffect; + for (let s = 0; s < e.length; s += 1) { + const e = t.slides[s]; + let a = -e.swiperSlideOffset; + t.params.virtualTranslate || (a -= t.translate); + let i = 0; + t.isHorizontal() || ((i = a), (a = 0)); + const r = t.params.fadeEffect.crossFade + ? Math.max(1 - Math.abs(e.progress), 0) + : 1 + Math.min(Math.max(e.progress, -1), 0), + n = de(0, e); + (n.style.opacity = r), (n.style.transform = `translate3d(${a}px, ${i}px, 0px)`); + } + }, + setTransition: (e) => { + const s = t.slides.map((e) => h(e)); + s.forEach((t) => { + t.style.transitionDuration = `${e}ms`; + }), + ce({ swiper: t, duration: e, transformElements: s, allSlides: !0 }); + }, + overwriteParams: () => ({ + slidesPerView: 1, + slidesPerGroup: 1, + watchSlidesProgress: !0, + spaceBetween: 0, + virtualTranslate: !t.params.cssMode, + }), + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a } = e; + s({ cubeEffect: { slideShadows: !0, shadow: !0, shadowOffset: 20, shadowScale: 0.94 } }); + const i = (e, t, s) => { + let a = s + ? e.querySelector('.swiper-slide-shadow-left') + : e.querySelector('.swiper-slide-shadow-top'), + i = s + ? e.querySelector('.swiper-slide-shadow-right') + : e.querySelector('.swiper-slide-shadow-bottom'); + a || + ((a = v( + 'div', + ('swiper-slide-shadow-cube swiper-slide-shadow-' + (s ? 'left' : 'top')).split(' ') + )), + e.append(a)), + i || + ((i = v( + 'div', + ('swiper-slide-shadow-cube swiper-slide-shadow-' + (s ? 'right' : 'bottom')).split( + ' ' + ) + )), + e.append(i)), + a && (a.style.opacity = Math.max(-t, 0)), + i && (i.style.opacity = Math.max(t, 0)); + }; + oe({ + effect: 'cube', + swiper: t, + on: a, + setTranslate: () => { + const { + el: e, + wrapperEl: s, + slides: a, + width: r, + height: n, + rtlTranslate: l, + size: o, + browser: d, + } = t, + c = t.params.cubeEffect, + p = t.isHorizontal(), + u = t.virtual && t.params.virtual.enabled; + let m, + h = 0; + c.shadow && + (p + ? ((m = t.wrapperEl.querySelector('.swiper-cube-shadow')), + m || ((m = v('div', 'swiper-cube-shadow')), t.wrapperEl.append(m)), + (m.style.height = `${r}px`)) + : ((m = e.querySelector('.swiper-cube-shadow')), + m || ((m = v('div', 'swiper-cube-shadow')), e.append(m)))); + for (let e = 0; e < a.length; e += 1) { + const s = a[e]; + let r = e; + u && (r = parseInt(s.getAttribute('data-swiper-slide-index'), 10)); + let n = 90 * r, + d = Math.floor(n / 360); + l && ((n = -n), (d = Math.floor(-n / 360))); + const m = Math.max(Math.min(s.progress, 1), -1); + let f = 0, + g = 0, + v = 0; + r % 4 == 0 + ? ((f = 4 * -d * o), (v = 0)) + : (r - 1) % 4 == 0 + ? ((f = 0), (v = 4 * -d * o)) + : (r - 2) % 4 == 0 + ? ((f = o + 4 * d * o), (v = o)) + : (r - 3) % 4 == 0 && ((f = -o), (v = 3 * o + 4 * o * d)), + l && (f = -f), + p || ((g = f), (f = 0)); + const w = `rotateX(${p ? 0 : -n}deg) rotateY(${ + p ? n : 0 + }deg) translate3d(${f}px, ${g}px, ${v}px)`; + m <= 1 && + m > -1 && + ((h = 90 * r + 90 * m), + l && (h = 90 * -r - 90 * m), + t.browser && t.browser.isSafari && (Math.abs(h) / 90) % 2 == 1 && (h += 0.001)), + (s.style.transform = w), + c.slideShadows && i(s, m, p); + } + if ( + ((s.style.transformOrigin = `50% 50% -${o / 2}px`), + (s.style['-webkit-transform-origin'] = `50% 50% -${o / 2}px`), + c.shadow) + ) + if (p) + m.style.transform = `translate3d(0px, ${r / 2 + c.shadowOffset}px, ${ + -r / 2 + }px) rotateX(89.99deg) rotateZ(0deg) scale(${c.shadowScale})`; + else { + const e = Math.abs(h) - 90 * Math.floor(Math.abs(h) / 90), + t = + 1.5 - + (Math.sin((2 * e * Math.PI) / 360) / 2 + Math.cos((2 * e * Math.PI) / 360) / 2), + s = c.shadowScale, + a = c.shadowScale / t, + i = c.shadowOffset; + m.style.transform = `scale3d(${s}, 1, ${a}) translate3d(0px, ${n / 2 + i}px, ${ + -n / 2 / a + }px) rotateX(-89.99deg)`; + } + const f = (d.isSafari || d.isWebView) && d.needPerspectiveFix ? -o / 2 : 0; + (s.style.transform = `translate3d(0px,0,${f}px) rotateX(${ + t.isHorizontal() ? 0 : h + }deg) rotateY(${t.isHorizontal() ? -h : 0}deg)`), + s.style.setProperty('--swiper-cube-translate-z', `${f}px`); + }, + setTransition: (e) => { + const { el: s, slides: a } = t; + if ( + (a.forEach((t) => { + (t.style.transitionDuration = `${e}ms`), + t + .querySelectorAll( + '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left' + ) + .forEach((t) => { + t.style.transitionDuration = `${e}ms`; + }); + }), + t.params.cubeEffect.shadow && !t.isHorizontal()) + ) { + const t = s.querySelector('.swiper-cube-shadow'); + t && (t.style.transitionDuration = `${e}ms`); + } + }, + recreateShadows: () => { + const e = t.isHorizontal(); + t.slides.forEach((t) => { + const s = Math.max(Math.min(t.progress, 1), -1); + i(t, s, e); + }); + }, + getEffectParams: () => t.params.cubeEffect, + perspective: () => !0, + overwriteParams: () => ({ + slidesPerView: 1, + slidesPerGroup: 1, + watchSlidesProgress: !0, + resistanceRatio: 0, + spaceBetween: 0, + centeredSlides: !1, + virtualTranslate: !0, + }), + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a } = e; + s({ flipEffect: { slideShadows: !0, limitRotation: !0 } }); + const i = (e, s) => { + let a = t.isHorizontal() + ? e.querySelector('.swiper-slide-shadow-left') + : e.querySelector('.swiper-slide-shadow-top'), + i = t.isHorizontal() + ? e.querySelector('.swiper-slide-shadow-right') + : e.querySelector('.swiper-slide-shadow-bottom'); + a || (a = pe('flip', e, t.isHorizontal() ? 'left' : 'top')), + i || (i = pe('flip', e, t.isHorizontal() ? 'right' : 'bottom')), + a && (a.style.opacity = Math.max(-s, 0)), + i && (i.style.opacity = Math.max(s, 0)); + }; + oe({ + effect: 'flip', + swiper: t, + on: a, + setTranslate: () => { + const { slides: e, rtlTranslate: s } = t, + a = t.params.flipEffect; + for (let r = 0; r < e.length; r += 1) { + const n = e[r]; + let l = n.progress; + t.params.flipEffect.limitRotation && (l = Math.max(Math.min(n.progress, 1), -1)); + const o = n.swiperSlideOffset; + let d = -180 * l, + c = 0, + p = t.params.cssMode ? -o - t.translate : -o, + u = 0; + t.isHorizontal() ? s && (d = -d) : ((u = p), (p = 0), (c = -d), (d = 0)), + t.browser && + t.browser.isSafari && + ((Math.abs(d) / 90) % 2 == 1 && (d += 0.001), + (Math.abs(c) / 90) % 2 == 1 && (c += 0.001)), + (n.style.zIndex = -Math.abs(Math.round(l)) + e.length), + a.slideShadows && i(n, l); + const m = `translate3d(${p}px, ${u}px, 0px) rotateX(${c}deg) rotateY(${d}deg)`; + de(0, n).style.transform = m; + } + }, + setTransition: (e) => { + const s = t.slides.map((e) => h(e)); + s.forEach((t) => { + (t.style.transitionDuration = `${e}ms`), + t + .querySelectorAll( + '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left' + ) + .forEach((t) => { + t.style.transitionDuration = `${e}ms`; + }); + }), + ce({ swiper: t, duration: e, transformElements: s }); + }, + recreateShadows: () => { + t.params.flipEffect, + t.slides.forEach((e) => { + let s = e.progress; + t.params.flipEffect.limitRotation && (s = Math.max(Math.min(e.progress, 1), -1)), + i(e, s); + }); + }, + getEffectParams: () => t.params.flipEffect, + perspective: () => !0, + overwriteParams: () => ({ + slidesPerView: 1, + slidesPerGroup: 1, + watchSlidesProgress: !0, + spaceBetween: 0, + virtualTranslate: !t.params.cssMode, + }), + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a } = e; + s({ + coverflowEffect: { + rotate: 50, + stretch: 0, + depth: 100, + scale: 1, + modifier: 1, + slideShadows: !0, + }, + }), + oe({ + effect: 'coverflow', + swiper: t, + on: a, + setTranslate: () => { + const { width: e, height: s, slides: a, slidesSizesGrid: i } = t, + r = t.params.coverflowEffect, + n = t.isHorizontal(), + l = t.translate, + o = n ? e / 2 - l : s / 2 - l, + d = n ? r.rotate : -r.rotate, + c = r.depth; + for (let e = 0, s = a.length; e < s; e += 1) { + const s = a[e], + l = i[e], + p = (o - s.swiperSlideOffset - l / 2) / l, + u = 'function' == typeof r.modifier ? r.modifier(p) : p * r.modifier; + let m = n ? d * u : 0, + h = n ? 0 : d * u, + f = -c * Math.abs(u), + g = r.stretch; + 'string' == typeof g && + -1 !== g.indexOf('%') && + (g = (parseFloat(r.stretch) / 100) * l); + let v = n ? 0 : g * u, + w = n ? g * u : 0, + b = 1 - (1 - r.scale) * Math.abs(u); + Math.abs(w) < 0.001 && (w = 0), + Math.abs(v) < 0.001 && (v = 0), + Math.abs(f) < 0.001 && (f = 0), + Math.abs(m) < 0.001 && (m = 0), + Math.abs(h) < 0.001 && (h = 0), + Math.abs(b) < 0.001 && (b = 0), + t.browser && + t.browser.isSafari && + ((Math.abs(m) / 90) % 2 == 1 && (m += 0.001), + (Math.abs(h) / 90) % 2 == 1 && (h += 0.001)); + const y = `translate3d(${w}px,${v}px,${f}px) rotateX(${h}deg) rotateY(${m}deg) scale(${b})`; + if ( + ((de(0, s).style.transform = y), + (s.style.zIndex = 1 - Math.abs(Math.round(u))), + r.slideShadows) + ) { + let e = n + ? s.querySelector('.swiper-slide-shadow-left') + : s.querySelector('.swiper-slide-shadow-top'), + t = n + ? s.querySelector('.swiper-slide-shadow-right') + : s.querySelector('.swiper-slide-shadow-bottom'); + e || (e = pe('coverflow', s, n ? 'left' : 'top')), + t || (t = pe('coverflow', s, n ? 'right' : 'bottom')), + e && (e.style.opacity = u > 0 ? u : 0), + t && (t.style.opacity = -u > 0 ? -u : 0); + } + } + }, + setTransition: (e) => { + t.slides + .map((e) => h(e)) + .forEach((t) => { + (t.style.transitionDuration = `${e}ms`), + t + .querySelectorAll( + '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left' + ) + .forEach((t) => { + t.style.transitionDuration = `${e}ms`; + }); + }); + }, + perspective: () => !0, + overwriteParams: () => ({ watchSlidesProgress: !0 }), + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a } = e; + s({ + creativeEffect: { + limitProgress: 1, + shadowPerProgress: !1, + progressMultiplier: 1, + perspective: !0, + prev: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 }, + next: { translate: [0, 0, 0], rotate: [0, 0, 0], opacity: 1, scale: 1 }, + }, + }); + const i = (e) => ('string' == typeof e ? e : `${e}px`); + oe({ + effect: 'creative', + swiper: t, + on: a, + setTranslate: () => { + const { slides: e, wrapperEl: s, slidesSizesGrid: a } = t, + r = t.params.creativeEffect, + { progressMultiplier: n } = r, + l = t.params.centeredSlides; + if (l) { + const e = a[0] / 2 - t.params.slidesOffsetBefore || 0; + s.style.transform = `translateX(calc(50% - ${e}px))`; + } + for (let s = 0; s < e.length; s += 1) { + const a = e[s], + o = a.progress, + d = Math.min(Math.max(a.progress, -r.limitProgress), r.limitProgress); + let c = d; + l || (c = Math.min(Math.max(a.originalProgress, -r.limitProgress), r.limitProgress)); + const p = a.swiperSlideOffset, + u = [t.params.cssMode ? -p - t.translate : -p, 0, 0], + m = [0, 0, 0]; + let h = !1; + t.isHorizontal() || ((u[1] = u[0]), (u[0] = 0)); + let f = { translate: [0, 0, 0], rotate: [0, 0, 0], scale: 1, opacity: 1 }; + d < 0 ? ((f = r.next), (h = !0)) : d > 0 && ((f = r.prev), (h = !0)), + u.forEach((e, t) => { + u[t] = `calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d * n)}))`; + }), + m.forEach((e, s) => { + let a = f.rotate[s] * Math.abs(d * n); + t.browser && t.browser.isSafari && (Math.abs(a) / 90) % 2 == 1 && (a += 0.001), + (m[s] = a); + }), + (a.style.zIndex = -Math.abs(Math.round(o)) + e.length); + const g = u.join(', '), + v = `rotateX(${m[0]}deg) rotateY(${m[1]}deg) rotateZ(${m[2]}deg)`, + w = + c < 0 + ? `scale(${1 + (1 - f.scale) * c * n})` + : `scale(${1 - (1 - f.scale) * c * n})`, + b = c < 0 ? 1 + (1 - f.opacity) * c * n : 1 - (1 - f.opacity) * c * n, + y = `translate3d(${g}) ${v} ${w}`; + if ((h && f.shadow) || !h) { + let e = a.querySelector('.swiper-slide-shadow'); + if ((!e && f.shadow && (e = pe('creative', a)), e)) { + const t = r.shadowPerProgress ? d * (1 / r.limitProgress) : d; + e.style.opacity = Math.min(Math.max(Math.abs(t), 0), 1); + } + } + const E = de(0, a); + (E.style.transform = y), + (E.style.opacity = b), + f.origin && (E.style.transformOrigin = f.origin); + } + }, + setTransition: (e) => { + const s = t.slides.map((e) => h(e)); + s.forEach((t) => { + (t.style.transitionDuration = `${e}ms`), + t.querySelectorAll('.swiper-slide-shadow').forEach((t) => { + t.style.transitionDuration = `${e}ms`; + }); + }), + ce({ swiper: t, duration: e, transformElements: s, allSlides: !0 }); + }, + perspective: () => t.params.creativeEffect.perspective, + overwriteParams: () => ({ watchSlidesProgress: !0, virtualTranslate: !t.params.cssMode }), + }); + }, + function (e) { + let { swiper: t, extendParams: s, on: a } = e; + s({ cardsEffect: { slideShadows: !0, rotate: !0, perSlideRotate: 2, perSlideOffset: 8 } }), + oe({ + effect: 'cards', + swiper: t, + on: a, + setTranslate: () => { + const { slides: e, activeIndex: s, rtlTranslate: a } = t, + i = t.params.cardsEffect, + { startTranslate: r, isTouched: n } = t.touchEventsData, + l = a ? -t.translate : t.translate; + for (let o = 0; o < e.length; o += 1) { + const d = e[o], + c = d.progress, + p = Math.min(Math.max(c, -4), 4); + let u = d.swiperSlideOffset; + t.params.centeredSlides && + !t.params.cssMode && + (t.wrapperEl.style.transform = `translateX(${t.minTranslate()}px)`), + t.params.centeredSlides && t.params.cssMode && (u -= e[0].swiperSlideOffset); + let m = t.params.cssMode ? -u - t.translate : -u, + h = 0; + const f = -100 * Math.abs(p); + let g = 1, + v = -i.perSlideRotate * p, + w = i.perSlideOffset - 0.75 * Math.abs(p); + const b = t.virtual && t.params.virtual.enabled ? t.virtual.from + o : o, + y = (b === s || b === s - 1) && p > 0 && p < 1 && (n || t.params.cssMode) && l < r, + E = (b === s || b === s + 1) && p < 0 && p > -1 && (n || t.params.cssMode) && l > r; + if (y || E) { + const e = (1 - Math.abs((Math.abs(p) - 0.5) / 0.5)) ** 0.5; + (v += -28 * p * e), + (g += -0.5 * e), + (w += 96 * e), + (h = -25 * e * Math.abs(p) + '%'); + } + if ( + ((m = + p < 0 + ? `calc(${m}px ${a ? '-' : '+'} (${w * Math.abs(p)}%))` + : p > 0 + ? `calc(${m}px ${a ? '-' : '+'} (-${w * Math.abs(p)}%))` + : `${m}px`), + !t.isHorizontal()) + ) { + const e = h; + (h = m), (m = e); + } + const x = p < 0 ? '' + (1 + (1 - g) * p) : '' + (1 - (1 - g) * p), + S = `\n translate3d(${m}, ${h}, ${f}px)\n rotateZ(${ + i.rotate ? (a ? -v : v) : 0 + }deg)\n scale(${x})\n `; + if (i.slideShadows) { + let e = d.querySelector('.swiper-slide-shadow'); + e || (e = pe('cards', d)), + e && (e.style.opacity = Math.min(Math.max((Math.abs(p) - 0.5) / 0.5, 0), 1)); + } + d.style.zIndex = -Math.abs(Math.round(c)) + e.length; + de(0, d).style.transform = S; + } + }, + setTransition: (e) => { + const s = t.slides.map((e) => h(e)); + s.forEach((t) => { + (t.style.transitionDuration = `${e}ms`), + t.querySelectorAll('.swiper-slide-shadow').forEach((t) => { + t.style.transitionDuration = `${e}ms`; + }); + }), + ce({ swiper: t, duration: e, transformElements: s }); + }, + perspective: () => !0, + overwriteParams: () => ({ watchSlidesProgress: !0, virtualTranslate: !t.params.cssMode }), + }); + }, + ]; + return ee.use(ue), ee; +})(); +//# sourceMappingURL=swiper-bundle.min.js.map