{"version":3,"file":"swiper-bundle.js.map","sources":["../node_modules/ssr-window/ssr-window.esm.js","../src/shared/utils.js","../src/shared/get-support.js","../src/shared/get-device.js","../src/shared/get-browser.js","../src/core/modules/resize/resize.js","../src/core/modules/observer/observer.js","../src/core/events-emitter.js","../src/core/update/updateSize.js","../src/core/update/updateSlides.js","../src/core/update/updateAutoHeight.js","../src/core/update/updateSlidesOffset.js","../src/core/update/updateSlidesProgress.js","../src/core/update/updateProgress.js","../src/core/update/updateSlidesClasses.js","../src/core/update/updateActiveIndex.js","../src/core/update/updateClickedSlide.js","../src/core/update/index.js","../src/core/translate/getTranslate.js","../src/core/translate/setTranslate.js","../src/core/translate/minTranslate.js","../src/core/translate/maxTranslate.js","../src/core/translate/translateTo.js","../src/core/translate/index.js","../src/core/transition/setTransition.js","../src/core/transition/transitionEmit.js","../src/core/transition/transitionStart.js","../src/core/transition/transitionEnd.js","../src/core/transition/index.js","../src/core/slide/slideTo.js","../src/core/slide/slideToLoop.js","../src/core/slide/slideNext.js","../src/core/slide/slidePrev.js","../src/core/slide/slideReset.js","../src/core/slide/slideToClosest.js","../src/core/slide/slideToClickedSlide.js","../src/core/slide/index.js","../src/core/loop/loopCreate.js","../src/core/loop/loopFix.js","../src/core/loop/loopDestroy.js","../src/core/loop/index.js","../src/core/grab-cursor/setGrabCursor.js","../src/core/grab-cursor/unsetGrabCursor.js","../src/core/grab-cursor/index.js","../src/core/events/onTouchStart.js","../src/core/events/onTouchMove.js","../src/core/events/onTouchEnd.js","../src/core/events/onResize.js","../src/core/events/onClick.js","../src/core/events/onScroll.js","../src/core/events/onLoad.js","../src/core/events/index.js","../src/core/breakpoints/setBreakpoint.js","../src/core/breakpoints/getBreakpoint.js","../src/core/breakpoints/index.js","../src/core/classes/addClasses.js","../src/core/classes/removeClasses.js","../src/core/classes/index.js","../src/core/check-overflow/index.js","../src/core/defaults.js","../src/core/moduleExtendParams.js","../src/core/core.js","../src/modules/virtual/virtual.js","../src/modules/keyboard/keyboard.js","../src/modules/mousewheel/mousewheel.js","../src/shared/create-element-if-not-defined.js","../src/modules/navigation/navigation.js","../src/shared/classes-to-selector.js","../src/modules/pagination/pagination.js","../src/modules/scrollbar/scrollbar.js","../src/modules/parallax/parallax.js","../src/modules/zoom/zoom.js","../src/modules/controller/controller.js","../src/modules/a11y/a11y.js","../src/modules/history/history.js","../src/modules/hash-navigation/hash-navigation.js","../src/modules/autoplay/autoplay.js","../src/modules/thumbs/thumbs.js","../src/modules/free-mode/free-mode.js","../src/modules/grid/grid.js","../src/modules/manipulation/methods/appendSlide.js","../src/modules/manipulation/methods/prependSlide.js","../src/modules/manipulation/methods/addSlide.js","../src/modules/manipulation/methods/removeSlide.js","../src/modules/manipulation/methods/removeAllSlides.js","../src/modules/manipulation/manipulation.js","../src/shared/effect-init.js","../src/shared/effect-target.js","../src/shared/effect-virtual-transition-end.js","../src/modules/effect-fade/effect-fade.js","../src/modules/effect-cube/effect-cube.js","../src/shared/create-shadow.js","../src/modules/effect-flip/effect-flip.js","../src/modules/effect-coverflow/effect-coverflow.js","../src/modules/effect-creative/effect-creative.js","../src/modules/effect-cards/effect-cards.js","../src/swiper.js"],"sourcesContent":["/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow, getDocument } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform\n .split(', ')\n .map((a) => a.replace(',', '.'))\n .join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix =\n curStyle.MozTransform ||\n curStyle.OTransform ||\n curStyle.MsTransform ||\n curStyle.msTransform ||\n curStyle.transform ||\n curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return (\n typeof o === 'object' &&\n o !== null &&\n o.constructor &&\n Object.prototype.toString.call(o).slice(8, -1) === 'Object'\n );\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter((key) => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({ swiper, targetPosition, side }) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return (dir === 'next' && current >= target) || (dir === 'prev' && current <= target);\n };\n\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition,\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition,\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\n\nfunction getSlideTransformEl(slideEl) {\n return (\n slideEl.querySelector('.swiper-slide-transform') ||\n (slideEl.shadowEl && slideEl.shadowEl.querySelector('.swiper-slide-transform')) ||\n slideEl\n );\n}\n\nfunction findElementsInElements(elements = [], selector = '') {\n const found = [];\n elements.forEach((el) => {\n found.push(...el.querySelectorAll(selector));\n });\n return found;\n}\nfunction elementChildren(element, selector = '') {\n return [...element.children].filter((el) => el.matches(selector));\n}\n\nfunction createElement(tag, classes = []) {\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : [classes]));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft,\n };\n}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\n\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\n\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return (\n el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] +\n parseFloat(\n window\n .getComputedStyle(el, null)\n .getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top'),\n ) +\n parseFloat(\n window\n .getComputedStyle(el, null)\n .getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'),\n )\n );\n }\n return el.offsetWidth;\n}\n\nexport {\n animateCSSModeScroll,\n deleteProps,\n nextTick,\n now,\n getTranslate,\n isObject,\n extend,\n getComputedStyle,\n setCSSProperty,\n getSlideTransformEl,\n // dom\n findElementsInElements,\n createElement,\n elementChildren,\n elementOffset,\n elementPrevAll,\n elementNextAll,\n elementStyle,\n elementIndex,\n elementParents,\n elementTransitionEnd,\n elementOuterSize,\n};\n","import { getWindow, getDocument } from 'ssr-window';\r\n\r\nlet support;\r\n\r\nfunction calcSupport() {\r\n const window = getWindow();\r\n const document = getDocument();\r\n\r\n return {\r\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\r\n\r\n touch: !!(\r\n 'ontouchstart' in window ||\r\n (window.DocumentTouch && document instanceof window.DocumentTouch)\r\n ),\r\n };\r\n}\r\n\r\nfunction getSupport() {\r\n if (!support) {\r\n support = calcSupport();\r\n }\r\n return support;\r\n}\r\n\r\nexport { getSupport };\r\n","import { getWindow } from 'ssr-window';\r\nimport { getSupport } from './get-support.js';\r\n\r\nlet deviceCached;\r\n\r\nfunction calcDevice({ userAgent } = {}) {\r\n const support = getSupport();\r\n const window = getWindow();\r\n const platform = window.navigator.platform;\r\n const ua = userAgent || window.navigator.userAgent;\r\n\r\n const device = {\r\n ios: false,\r\n android: false,\r\n };\r\n\r\n const screenWidth = window.screen.width;\r\n const screenHeight = window.screen.height;\r\n\r\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\r\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\r\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\r\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\r\n const windows = platform === 'Win32';\r\n let macos = platform === 'MacIntel';\r\n\r\n // iPadOs 13 fix\r\n const iPadScreens = [\r\n '1024x1366',\r\n '1366x1024',\r\n '834x1194',\r\n '1194x834',\r\n '834x1112',\r\n '1112x834',\r\n '768x1024',\r\n '1024x768',\r\n '820x1180',\r\n '1180x820',\r\n '810x1080',\r\n '1080x810',\r\n ];\r\n if (\r\n !ipad &&\r\n macos &&\r\n support.touch &&\r\n iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0\r\n ) {\r\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\r\n if (!ipad) ipad = [0, 1, '13_0_0'];\r\n macos = false;\r\n }\r\n\r\n // Android\r\n if (android && !windows) {\r\n device.os = 'android';\r\n device.android = true;\r\n }\r\n if (ipad || iphone || ipod) {\r\n device.os = 'ios';\r\n device.ios = true;\r\n }\r\n\r\n // Export object\r\n return device;\r\n}\r\n\r\nfunction getDevice(overrides = {}) {\r\n if (!deviceCached) {\r\n deviceCached = calcDevice(overrides);\r\n }\r\n return deviceCached;\r\n}\r\n\r\nexport { getDevice };\r\n","import { getWindow } from 'ssr-window';\r\n\r\nlet browser;\r\n\r\nfunction calcBrowser() {\r\n const window = getWindow();\r\n function isSafari() {\r\n const ua = window.navigator.userAgent.toLowerCase();\r\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\r\n }\r\n return {\r\n isSafari: isSafari(),\r\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\r\n };\r\n}\r\n\r\nfunction getBrowser() {\r\n if (!browser) {\r\n browser = calcBrowser();\r\n }\r\n return browser;\r\n}\r\n\r\nexport { getBrowser };\r\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function Resize({ swiper, on, emit }) {\r\n const window = getWindow();\r\n let observer = null;\r\n let animationFrame = null;\r\n\r\n const resizeHandler = () => {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n emit('beforeResize');\r\n emit('resize');\r\n };\r\n\r\n const createObserver = () => {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n observer = new ResizeObserver((entries) => {\r\n animationFrame = window.requestAnimationFrame(() => {\r\n const { width, height } = swiper;\r\n let newWidth = width;\r\n let newHeight = height;\r\n entries.forEach(({ contentBoxSize, contentRect, target }) => {\r\n if (target && target !== swiper.el) return;\r\n newWidth = contentRect\r\n ? contentRect.width\r\n : (contentBoxSize[0] || contentBoxSize).inlineSize;\r\n newHeight = contentRect\r\n ? contentRect.height\r\n : (contentBoxSize[0] || contentBoxSize).blockSize;\r\n });\r\n if (newWidth !== width || newHeight !== height) {\r\n resizeHandler();\r\n }\r\n });\r\n });\r\n observer.observe(swiper.el);\r\n };\r\n\r\n const removeObserver = () => {\r\n if (animationFrame) {\r\n window.cancelAnimationFrame(animationFrame);\r\n }\r\n if (observer && observer.unobserve && swiper.el) {\r\n observer.unobserve(swiper.el);\r\n observer = null;\r\n }\r\n };\r\n\r\n const orientationChangeHandler = () => {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n emit('orientationchange');\r\n };\r\n\r\n on('init', () => {\r\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\r\n createObserver();\r\n return;\r\n }\r\n window.addEventListener('resize', resizeHandler);\r\n window.addEventListener('orientationchange', orientationChangeHandler);\r\n });\r\n\r\n on('destroy', () => {\r\n removeObserver();\r\n window.removeEventListener('resize', resizeHandler);\r\n window.removeEventListener('orientationchange', orientationChangeHandler);\r\n });\r\n}\r\n","import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.js';\n\nexport default function Observer({ swiper, extendParams, on, emit }) {\n const observers = [];\n const window = getWindow();\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc((mutations) => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.el);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.el, {\n childList: swiper.params.observeSlideChildren,\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, { attributes: false });\n };\n const destroy = () => {\n observers.forEach((observer) => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n });\n on('init', init);\n on('destroy', destroy);\n}\n","/* eslint-disable no-underscore-dangle */\r\n\r\nexport default {\r\n on(events, handler, priority) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (typeof handler !== 'function') return self;\r\n const method = priority ? 'unshift' : 'push';\r\n events.split(' ').forEach((event) => {\r\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\r\n self.eventsListeners[event][method](handler);\r\n });\r\n return self;\r\n },\r\n\r\n once(events, handler, priority) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (typeof handler !== 'function') return self;\r\n function onceHandler(...args) {\r\n self.off(events, onceHandler);\r\n if (onceHandler.__emitterProxy) {\r\n delete onceHandler.__emitterProxy;\r\n }\r\n handler.apply(self, args);\r\n }\r\n onceHandler.__emitterProxy = handler;\r\n return self.on(events, onceHandler, priority);\r\n },\r\n\r\n onAny(handler, priority) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (typeof handler !== 'function') return self;\r\n const method = priority ? 'unshift' : 'push';\r\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\r\n self.eventsAnyListeners[method](handler);\r\n }\r\n return self;\r\n },\r\n\r\n offAny(handler) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (!self.eventsAnyListeners) return self;\r\n const index = self.eventsAnyListeners.indexOf(handler);\r\n if (index >= 0) {\r\n self.eventsAnyListeners.splice(index, 1);\r\n }\r\n return self;\r\n },\r\n\r\n off(events, handler) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (!self.eventsListeners) return self;\r\n events.split(' ').forEach((event) => {\r\n if (typeof handler === 'undefined') {\r\n self.eventsListeners[event] = [];\r\n } else if (self.eventsListeners[event]) {\r\n self.eventsListeners[event].forEach((eventHandler, index) => {\r\n if (\r\n eventHandler === handler ||\r\n (eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler)\r\n ) {\r\n self.eventsListeners[event].splice(index, 1);\r\n }\r\n });\r\n }\r\n });\r\n return self;\r\n },\r\n\r\n emit(...args) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (!self.eventsListeners) return self;\r\n let events;\r\n let data;\r\n let context;\r\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\r\n events = args[0];\r\n data = args.slice(1, args.length);\r\n context = self;\r\n } else {\r\n events = args[0].events;\r\n data = args[0].data;\r\n context = args[0].context || self;\r\n }\r\n data.unshift(context);\r\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\r\n\r\n eventsArray.forEach((event) => {\r\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\r\n self.eventsAnyListeners.forEach((eventHandler) => {\r\n eventHandler.apply(context, [event, ...data]);\r\n });\r\n }\r\n if (self.eventsListeners && self.eventsListeners[event]) {\r\n self.eventsListeners[event].forEach((eventHandler) => {\r\n eventHandler.apply(context, data);\r\n });\r\n }\r\n });\r\n return self;\r\n },\r\n};\r\n","import { elementStyle } from '../../shared/utils.js';\n\nexport default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width =\n width -\n parseInt(elementStyle(el, 'padding-left') || 0, 10) -\n parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height =\n height -\n parseInt(elementStyle(el, 'padding-top') || 0, 10) -\n parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n","import {\n elementChildren,\n elementOuterSize,\n elementStyle,\n setCSSProperty,\n} from '../../shared/utils.js';\n\nexport default function updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n }\n // prettier-ignore\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom',\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n\n const { wrapperEl, slidesEl, size: swiperSize, rtlTranslate: rtl, wrongRTL } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach((slideEl) => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n }\n\n // Calc slides\n let slideSize;\n\n const shouldResetSlideSize =\n params.slidesPerView === 'auto' &&\n params.breakpoints &&\n Object.keys(params.breakpoints).filter((key) => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? elementOuterSize(slide, 'width', true)\n : elementOuterSize(slide, 'height', true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const { clientWidth, offsetWidth } = slide;\n slideSize =\n width +\n paddingLeft +\n paddingRight +\n marginLeft +\n marginRight +\n (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0)\n slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (\n (index - Math.min(swiper.params.slidesPerGroupSkip, index)) %\n swiper.params.slidesPerGroup ===\n 0\n )\n snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + params.spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + params.spaceBetween}px`;\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n\n if (\n Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) >\n 1\n ) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil(\n (swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup,\n );\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides\n .filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n })\n .forEach((slideEl) => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map((snap) => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(\n wrapperEl,\n '--swiper-centered-offset-after',\n `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`,\n );\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map((v) => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map((v) => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = (index) => {\n if (isVirtual) {\n return swiper.slides.filter(\n (el) => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index,\n )[0];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach((slide) => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n","export default function updateSlidesOffset() {\r\n const swiper = this;\r\n const slides = swiper.slides;\r\n for (let i = 0; i < slides.length; i += 1) {\r\n slides[i].swiperSlideOffset = swiper.isHorizontal()\r\n ? slides[i].offsetLeft\r\n : slides[i].offsetTop;\r\n }\r\n}\r\n","export default function updateSlidesProgress(translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl, snapGrid } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.forEach((slideEl) => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress =\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) /\n (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress =\n (offsetCenter -\n snapGrid[0] +\n (params.centeredSlides ? swiper.minTranslate() : 0) -\n slideOffset) /\n (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible =\n (slideBefore >= 0 && slideBefore < swiper.size - 1) ||\n (slideAfter > 1 && slideAfter <= swiper.size) ||\n (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides[i].classList.add(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n","import { elementIndex } from '../../shared/utils.js';\n\nexport default function updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = (swiper && swiper.translate && swiper.translate * multiplier) || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd, progressLoop } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n if (params.loop) {\n const firstSlideIndex = elementIndex(\n swiper.slides.filter((el) => el.getAttribute('data-swiper-slide-index') === '0')[0],\n );\n const lastSlideIndex = elementIndex(\n swiper.slides.filter(\n (el) => el.getAttribute('data-swiper-slide-index') * 1 === swiper.slides.length - 1,\n )[0],\n );\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd,\n });\n\n if (params.watchSlidesProgress || (params.centeredSlides && params.autoHeight))\n swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n","import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.js';\n\nexport default function updateSlidesClasses() {\n const swiper = this;\n\n const { slides, params, slidesEl, activeIndex } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n const getFilteredSlide = (selector) => {\n return elementChildren(\n slidesEl,\n `.${params.slideClass}${selector}, swiper-slide${selector}`,\n )[0];\n };\n slides.forEach((slideEl) => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n\n let activeSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n activeSlide = slides[activeIndex];\n }\n\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n swiper.emitSlidesClasses();\n}\n","export function getActiveIndexByTranslate(swiper) {\n const { slidesGrid, params } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (\n translate >= slidesGrid[i] &&\n translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2\n ) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nexport default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n const getVirtualRealIndex = (aIndex) => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(\n swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex,\n 10,\n );\n } else {\n realIndex = activeIndex;\n }\n\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n","export default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = e.closest(`.${params.slideClass}, swiper-slide`);\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (\n params.slideToClickedSlide &&\n swiper.clickedIndex !== undefined &&\n swiper.clickedIndex !== swiper.activeIndex\n ) {\n swiper.slideToClickedSlide();\n }\n}\n","import updateSize from './updateSize.js';\r\nimport updateSlides from './updateSlides.js';\r\nimport updateAutoHeight from './updateAutoHeight.js';\r\nimport updateSlidesOffset from './updateSlidesOffset.js';\r\nimport updateSlidesProgress from './updateSlidesProgress.js';\r\nimport updateProgress from './updateProgress.js';\r\nimport updateSlidesClasses from './updateSlidesClasses.js';\r\nimport updateActiveIndex from './updateActiveIndex.js';\r\nimport updateClickedSlide from './updateClickedSlide.js';\r\n\r\nexport default {\r\n updateSize,\r\n updateSlides,\r\n updateAutoHeight,\r\n updateSlidesOffset,\r\n updateSlidesProgress,\r\n updateProgress,\r\n updateSlidesClasses,\r\n updateActiveIndex,\r\n updateClickedSlide,\r\n};\r\n","import { getTranslate } from '../../shared/utils.js';\n\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const { params, rtlTranslate: rtl, translate, wrapperEl } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate(wrapperEl, axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n","export default function setTranslate(translate, byController) {\n const swiper = this;\n const { rtlTranslate: rtl, params, wrapperEl, progress } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n","export default function minTranslate() {\r\n return -this.snapGrid[0];\r\n}\r\n","export default function maxTranslate() {\r\n return -this.snapGrid[this.snapGrid.length - 1];\r\n}\r\n","import { animateCSSModeScroll } from '../../shared/utils.js';\n\nexport default function translateTo(\n translate = 0,\n speed = this.params.speed,\n runCallbacks = true,\n translateBounds = true,\n internal,\n) {\n const swiper = this;\n\n const { params, wrapperEl } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\n else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({ swiper, targetPosition: -newTranslate, side: isH ? 'left' : 'top' });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth',\n });\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener(\n 'transitionend',\n swiper.onTranslateToWrapperTransitionEnd,\n );\n swiper.wrapperEl.removeEventListener(\n 'webkitTransitionEnd',\n swiper.onTranslateToWrapperTransitionEnd,\n );\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.wrapperEl.addEventListener(\n 'webkitTransitionEnd',\n swiper.onTranslateToWrapperTransitionEnd,\n );\n }\n }\n\n return true;\n}\n","import getTranslate from './getTranslate.js';\r\nimport setTranslate from './setTranslate.js';\r\nimport minTranslate from './minTranslate.js';\r\nimport maxTranslate from './maxTranslate.js';\r\nimport translateTo from './translateTo.js';\r\n\r\nexport default {\r\n getTranslate,\r\n setTranslate,\r\n minTranslate,\r\n maxTranslate,\r\n translateTo,\r\n};\r\n","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n }\n\n swiper.emit('setTransition', duration, byController);\n}\n","export default function transitionEmit({ swiper, runCallbacks, direction, step }) {\r\n const { activeIndex, previousIndex } = swiper;\r\n let dir = direction;\r\n if (!dir) {\r\n if (activeIndex > previousIndex) dir = 'next';\r\n else if (activeIndex < previousIndex) dir = 'prev';\r\n else dir = 'reset';\r\n }\r\n\r\n swiper.emit(`transition${step}`);\r\n\r\n if (runCallbacks && activeIndex !== previousIndex) {\r\n if (dir === 'reset') {\r\n swiper.emit(`slideResetTransition${step}`);\r\n return;\r\n }\r\n swiper.emit(`slideChangeTransition${step}`);\r\n if (dir === 'next') {\r\n swiper.emit(`slideNextTransition${step}`);\r\n } else {\r\n swiper.emit(`slidePrevTransition${step}`);\r\n }\r\n }\r\n}\r\n","import transitionEmit from './transitionEmit.js';\r\n\r\nexport default function transitionStart(runCallbacks = true, direction) {\r\n const swiper = this;\r\n const { params } = swiper;\r\n if (params.cssMode) return;\r\n if (params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n\r\n transitionEmit({ swiper, runCallbacks, direction, step: 'Start' });\r\n}\r\n","import transitionEmit from './transitionEmit.js';\r\n\r\nexport default function transitionEnd(runCallbacks = true, direction) {\r\n const swiper = this;\r\n const { params } = swiper;\r\n swiper.animating = false;\r\n if (params.cssMode) return;\r\n swiper.setTransition(0);\r\n\r\n transitionEmit({ swiper, runCallbacks, direction, step: 'End' });\r\n}\r\n","import setTransition from './setTransition.js';\r\nimport transitionStart from './transitionStart.js';\r\nimport transitionEnd from './transitionEnd.js';\r\n\r\nexport default {\r\n setTransition,\r\n transitionStart,\r\n transitionEnd,\r\n};\r\n","import { animateCSSModeScroll } from '../../shared/utils.js';\n\nexport default function slideTo(\n index = 0,\n speed = this.params.speed,\n runCallbacks = true,\n internal,\n initial,\n) {\n if (typeof index === 'string') {\n index = parseInt(index, 10);\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled,\n } = swiper;\n\n if (\n (swiper.animating && params.preventInteractionOnTransition) ||\n (!enabled && !internal && !initial)\n ) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (\n normalizedTranslate >= normalizedGrid &&\n normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2\n ) {\n slideIndex = i;\n } else if (\n normalizedTranslate >= normalizedGrid &&\n normalizedTranslate < normalizedGridNext\n ) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (\n !swiper.allowSlideNext &&\n translate < swiper.translate &&\n translate < swiper.minTranslate()\n ) {\n return false;\n }\n if (\n !swiper.allowSlidePrev &&\n translate > swiper.translate &&\n translate > swiper.maxTranslate()\n ) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({ swiper, targetPosition: t, side: isH ? 'left' : 'top' });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth',\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.wrapperEl.removeEventListener(\n 'webkitTransitionEnd',\n swiper.onSlideToWrapperTransitionEnd,\n );\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.wrapperEl.addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}\n","import { elementIndex } from '../../shared/utils.js';\n\nexport default function slideToLoop(\n index = 0,\n speed = this.params.speed,\n runCallbacks = true,\n internal,\n) {\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n newIndex = elementIndex(\n swiper.slides.filter(\n (slideEl) => slideEl.getAttribute('data-swiper-slide-index') * 1 === newIndex,\n )[0],\n );\n }\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { enabled, params } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n if (params.loop) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, snapGrid, slidesGrid, rtlTranslate, enabled } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (\n params.slidesPerView === 'auto' &&\n params.slidesPerGroup === 1 &&\n params.slidesPerGroupAuto\n ) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex =\n swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual\n ? swiper.virtual.slides.length - 1\n : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\r\n const swiper = this;\r\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\r\n}\r\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slideToClosest(\r\n speed = this.params.speed,\r\n runCallbacks = true,\r\n internal,\r\n threshold = 0.5,\r\n) {\r\n const swiper = this;\r\n let index = swiper.activeIndex;\r\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\r\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\r\n\r\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n\r\n if (translate >= swiper.snapGrid[snapIndex]) {\r\n // The current translate is on or after the current snap index, so the choice\r\n // is between the current index and the one after it.\r\n const currentSnap = swiper.snapGrid[snapIndex];\r\n const nextSnap = swiper.snapGrid[snapIndex + 1];\r\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\r\n index += swiper.params.slidesPerGroup;\r\n }\r\n } else {\r\n // The current translate is before the current snap index, so the choice\r\n // is between the current index and the one before it.\r\n const prevSnap = swiper.snapGrid[snapIndex - 1];\r\n const currentSnap = swiper.snapGrid[snapIndex];\r\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\r\n index -= swiper.params.slidesPerGroup;\r\n }\r\n }\r\n index = Math.max(index, 0);\r\n index = Math.min(index, swiper.slidesGrid.length - 1);\r\n\r\n return swiper.slideTo(index, speed, runCallbacks, internal);\r\n}\r\n","import { elementChildren, elementIndex, nextTick } from '../../shared/utils.js';\n\nexport default function slideToClickedSlide() {\n const swiper = this;\n const { params, slidesEl } = swiper;\n\n const slidesPerView =\n params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n slideToIndex < swiper.loopedSlides - slidesPerView / 2 ||\n slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2\n ) {\n swiper.loopFix();\n slideToIndex = elementIndex(\n elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0],\n );\n\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = elementIndex(\n elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0],\n );\n\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n","import slideTo from './slideTo.js';\r\nimport slideToLoop from './slideToLoop.js';\r\nimport slideNext from './slideNext.js';\r\nimport slidePrev from './slidePrev.js';\r\nimport slideReset from './slideReset.js';\r\nimport slideToClosest from './slideToClosest.js';\r\nimport slideToClickedSlide from './slideToClickedSlide.js';\r\n\r\nexport default {\r\n slideTo,\r\n slideToLoop,\r\n slideNext,\r\n slidePrev,\r\n slideReset,\r\n slideToClosest,\r\n slideToClickedSlide,\r\n};\r\n","import { elementChildren } from '../../shared/utils.js';\n\nexport default function loopCreate(slideRealIndex) {\n const swiper = this;\n const { params, slidesEl } = swiper;\n if (!params.loop || (swiper.virtual && swiper.params.virtual.enabled)) return;\n\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n\n swiper.loopFix(slideRealIndex);\n}\n","import { elementIndex } from '../../shared/utils.js';\n\nexport default function loopFix(slideRealIndex, slideTo = true) {\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n\n const { slides, allowSlidePrev, allowSlideNext, slidesEl, params } = swiper;\n\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n\n const slidesPerView =\n params.slidesPerView === 'auto'\n ? swiper.slidesPerViewDynamic()\n : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - (loopedSlides % params.slidesPerGroup);\n }\n swiper.loopedSlides = loopedSlides;\n\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n\n const activeSlideIndex = elementIndex(\n swiper.slides.filter((el) => el.classList.contains('swiper-slide-active'))[0],\n );\n\n let slidesPrepended = 0;\n let slidesAppended = 0;\n // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = loopedSlides - activeSlideIndex;\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = activeSlideIndex - (swiper.slides.length - loopedSlides * 2);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n\n prependSlidesIndexes.forEach((index) => {\n slidesEl.prepend(swiper.slides[index]);\n });\n appendSlidesIndexes.forEach((index) => {\n slidesEl.append(swiper.slides[index]);\n });\n swiper.recalcSlides();\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (slideTo) {\n if (prependSlidesIndexes.length > 0) {\n if (typeof slideRealIndex === 'undefined') {\n swiper.slideTo(swiper.activeIndex + slidesPrepended, 0, false, true);\n } else {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n } else if (appendSlidesIndexes.length > 0) {\n if (typeof slideRealIndex === 'undefined') {\n swiper.slideTo(swiper.activeIndex - slidesAppended, 0, false, true);\n } else {\n swiper.slideToLoop(slideRealIndex, 0, false, true);\n }\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n swiper.emit('loopFix');\n}\n","export default function loopDestroy() {\n const swiper = this;\n const { slides, params, slidesEl } = swiper;\n if (!params.loop || (swiper.virtual && swiper.params.virtual.enabled)) return;\n swiper.recalcSlides();\n\n const newSlidesOrder = [];\n slides.forEach((slideEl) => {\n const index =\n typeof slideEl.swiperSlideIndex === 'undefined'\n ? slideEl.getAttribute('data-swiper-slide-index') * 1\n : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n slides.removeAttr('data-swiper-slide-index');\n newSlidesOrder.forEach((slideEl) => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n","import loopCreate from './loopCreate.js';\r\nimport loopFix from './loopFix.js';\r\nimport loopDestroy from './loopDestroy.js';\r\n\r\nexport default {\r\n loopCreate,\r\n loopFix,\r\n loopDestroy,\r\n};\r\n","export default function setGrabCursor(moving) {\r\n const swiper = this;\r\n if (\r\n !swiper.params.simulateTouch ||\r\n (swiper.params.watchOverflow && swiper.isLocked) ||\r\n swiper.params.cssMode\r\n )\r\n return;\r\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\r\n el.style.cursor = 'move';\r\n el.style.cursor = moving ? 'grabbing' : 'grab';\r\n}\r\n","export default function unsetGrabCursor() {\r\n const swiper = this;\r\n if ((swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) {\r\n return;\r\n }\r\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\r\n}\r\n","import setGrabCursor from './setGrabCursor.js';\r\nimport unsetGrabCursor from './unsetGrabCursor.js';\r\n\r\nexport default {\r\n setGrabCursor,\r\n unsetGrabCursor,\r\n};\r\n","import { getWindow, getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const { params, touches, enabled } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n\n const noSwipingSelector = params.noSwipingSelector\n ? params.noSwipingSelector\n : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (\n params.noSwiping &&\n (isTargetShadow\n ? closestElement(noSwipingSelector, targetEl)\n : targetEl.closest(noSwipingSelector))\n ) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection &&\n (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)\n ) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (\n document.activeElement &&\n document.activeElement.matches(data.focusableElements) &&\n document.activeElement !== targetEl\n ) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault =\n preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (\n (params.touchStartForcePreventDefault || shouldPreventDefault) &&\n !targetEl.isContentEditable\n ) {\n e.preventDefault();\n }\n if (\n swiper.params.freeMode &&\n swiper.params.freeMode.enabled &&\n swiper.freeMode &&\n swiper.animating &&\n !params.cssMode\n ) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n","import { getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\n\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl, enabled } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n\n const pointerIndex = data.evCache.findIndex((cachedEv) => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) ||\n (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) ||\n (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold)\n return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (\n (swiper.isHorizontal() && touches.currentY === touches.startY) ||\n (swiper.isVertical() && touches.currentX === touches.startX)\n ) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal()\n ? touchAngle > params.touchAngle\n : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (\n data.isScrolling ||\n (swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1)\n ) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n ['webkitTransitionEnd', 'transitionend'].forEach((eventName) => {\n const evt = new window.CustomEvent(eventName, {\n bubbles: true,\n cancelable: true,\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance)\n data.currentTranslate =\n swiper.minTranslate() -\n 1 +\n (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance)\n data.currentTranslate =\n swiper.maxTranslate() +\n 1 -\n (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (\n !swiper.allowSlideNext &&\n swiper.swipeDirection === 'next' &&\n data.currentTranslate < data.startTranslate\n ) {\n data.currentTranslate = data.startTranslate;\n }\n if (\n !swiper.allowSlidePrev &&\n swiper.swipeDirection === 'prev' &&\n data.currentTranslate > data.startTranslate\n ) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal()\n ? touches.currentX - touches.startX\n : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (\n (params.freeMode && params.freeMode.enabled && swiper.freeMode) ||\n params.watchSlidesProgress\n ) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n","import { now, nextTick } from '../../shared/utils.js';\n\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex((cachedEv) => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave'].includes(event.type)) return;\n\n const { params, touches, rtlTranslate: rtl, slidesGrid, enabled } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.pointerType === 'mouse') return;\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (\n params.grabCursor &&\n data.isMoved &&\n data.isTouched &&\n (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)\n ) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || (e.composedPath && e.composedPath());\n swiper.updateClickedSlide((pathTree && pathTree[0]) || e.target);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (\n !data.isTouched ||\n !data.isMoved ||\n !swiper.swipeDirection ||\n touches.diff === 0 ||\n data.currentTranslate === data.startTranslate\n ) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({ currentPos });\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (\n let i = 0;\n i < slidesGrid.length;\n i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup\n ) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex =\n swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual\n ? swiper.virtual.slides.length - 1\n : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio)\n swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (\n rewindLastIndex !== null &&\n ratio < 0 &&\n Math.abs(ratio) > params.longSwipesRatio\n ) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget =\n swiper.navigation &&\n (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n","let timeout;\nexport default function onResize() {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if (\n (params.slidesPerView === 'auto' || params.slidesPerView > 1) &&\n swiper.isEnd &&\n !swiper.isBeginning &&\n !swiper.params.centeredSlides &&\n !isVirtualLoop\n ) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n swiper.autoplay.resume();\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n","export default function onClick(e) {\r\n const swiper = this;\r\n if (!swiper.enabled) return;\r\n if (!swiper.allowClick) {\r\n if (swiper.params.preventClicks) e.preventDefault();\r\n if (swiper.params.preventClicksPropagation && swiper.animating) {\r\n e.stopPropagation();\r\n e.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n","export default function onScroll() {\r\n const swiper = this;\r\n const { wrapperEl, rtlTranslate, enabled } = swiper;\r\n if (!enabled) return;\r\n swiper.previousTranslate = swiper.translate;\r\n if (swiper.isHorizontal()) {\r\n swiper.translate = -wrapperEl.scrollLeft;\r\n } else {\r\n swiper.translate = -wrapperEl.scrollTop;\r\n }\r\n // eslint-disable-next-line\r\n if (swiper.translate === 0) swiper.translate = 0;\r\n\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n\r\n let newProgress;\r\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n if (translatesDiff === 0) {\r\n newProgress = 0;\r\n } else {\r\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\r\n }\r\n if (newProgress !== swiper.progress) {\r\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\r\n }\r\n\r\n swiper.emit('setTranslate', swiper.translate, false);\r\n}\r\n","export default function onLoad(e) {\n const swiper = this;\n const slideSelector = () => (swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`);\n const slideEl = e.target.closest(slideSelector());\n if (slideEl) {\n const lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n swiper.update();\n}\n","import { getDocument } from 'ssr-window';\r\n\r\nimport onTouchStart from './onTouchStart.js';\r\nimport onTouchMove from './onTouchMove.js';\r\nimport onTouchEnd from './onTouchEnd.js';\r\nimport onResize from './onResize.js';\r\nimport onClick from './onClick.js';\r\nimport onScroll from './onScroll.js';\r\nimport onLoad from './onLoad.js';\r\n\r\nlet dummyEventAttached = false;\r\nfunction dummyEventListener() {}\r\n\r\nconst events = (swiper, method) => {\r\n const document = getDocument();\r\n const { params, el, wrapperEl, device } = swiper;\r\n const capture = !!params.nested;\r\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\r\n const swiperMethod = method;\r\n\r\n // Touch Events\r\n el[domMethod]('pointerdown', swiper.onTouchStart, { passive: false });\r\n document[domMethod]('pointermove', swiper.onTouchMove, { passive: false, capture });\r\n document[domMethod]('pointerup', swiper.onTouchEnd, { passive: true });\r\n document[domMethod]('pointercancel', swiper.onTouchEnd, { passive: true });\r\n document[domMethod]('pointerout', swiper.onTouchEnd, { passive: true });\r\n document[domMethod]('pointerleave', swiper.onTouchEnd, { passive: true });\r\n\r\n // Prevent Links Clicks\r\n if (params.preventClicks || params.preventClicksPropagation) {\r\n el[domMethod]('click', swiper.onClick, true);\r\n }\r\n if (params.cssMode) {\r\n wrapperEl[domMethod]('scroll', swiper.onScroll);\r\n }\r\n\r\n // Resize handler\r\n if (params.updateOnWindowResize) {\r\n swiper[swiperMethod](\r\n device.ios || device.android\r\n ? 'resize orientationchange observerUpdate'\r\n : 'resize observerUpdate',\r\n onResize,\r\n true,\r\n );\r\n } else {\r\n swiper[swiperMethod]('observerUpdate', onResize, true);\r\n }\r\n\r\n // Images loader\r\n el[domMethod]('load', swiper.onLoad, { capture: true });\r\n};\r\n\r\nfunction attachEvents() {\r\n const swiper = this;\r\n const document = getDocument();\r\n const { params } = swiper;\r\n\r\n swiper.onTouchStart = onTouchStart.bind(swiper);\r\n swiper.onTouchMove = onTouchMove.bind(swiper);\r\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\r\n\r\n if (params.cssMode) {\r\n swiper.onScroll = onScroll.bind(swiper);\r\n }\r\n\r\n swiper.onClick = onClick.bind(swiper);\r\n swiper.onLoad = onLoad.bind(swiper);\r\n\r\n if (!dummyEventAttached) {\r\n document.addEventListener('touchstart', dummyEventListener);\r\n dummyEventAttached = true;\r\n }\r\n\r\n events(swiper, 'on');\r\n}\r\n\r\nfunction detachEvents() {\r\n const swiper = this;\r\n events(swiper, 'off');\r\n}\r\n\r\nexport default {\r\n attachEvents,\r\n detachEvents,\r\n};\r\n","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const { realIndex, initialized, params, el } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(\n `${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`,\n );\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (\n (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column') ||\n (!breakpointParams.grid.fill && params.grid.fill === 'column')\n ) {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach((prop) => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n\n const directionChanged =\n breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop =\n params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n\n const isEnabled = swiper.params.enabled;\n\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\r\n if (!breakpoints || (base === 'container' && !containerEl)) return undefined;\r\n let breakpoint = false;\r\n\r\n const window = getWindow();\r\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\r\n\r\n const points = Object.keys(breakpoints).map((point) => {\r\n if (typeof point === 'string' && point.indexOf('@') === 0) {\r\n const minRatio = parseFloat(point.substr(1));\r\n const value = currentHeight * minRatio;\r\n return { value, point };\r\n }\r\n return { value: point, point };\r\n });\r\n\r\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\r\n for (let i = 0; i < points.length; i += 1) {\r\n const { point, value } = points[i];\r\n if (base === 'window') {\r\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\r\n breakpoint = point;\r\n }\r\n } else if (value <= containerEl.clientWidth) {\r\n breakpoint = point;\r\n }\r\n }\r\n return breakpoint || 'max';\r\n}\r\n","import setBreakpoint from './setBreakpoint.js';\r\nimport getBreakpoint from './getBreakpoint.js';\r\n\r\nexport default { setBreakpoint, getBreakpoint };\r\n","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach((item) => {\n if (typeof item === 'object') {\n Object.keys(item).forEach((classNames) => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const { classNames, params, rtl, el, device } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses([\n 'initialized',\n params.direction,\n { 'free-mode': swiper.params.freeMode && params.freeMode.enabled },\n { 'autoheight': params.autoHeight },\n { 'rtl': rtl },\n { 'grid': params.grid && params.grid.rows > 1 },\n { 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' },\n { 'android': device.android },\n { 'ios': device.ios },\n { 'css-mode': params.cssMode },\n { 'centered': params.cssMode && params.centeredSlides },\n { 'watch-progress': params.watchSlidesProgress },\n ], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n","export default function removeClasses() {\n const swiper = this;\n const { el, classNames } = swiper;\n\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n","import addClasses from './addClasses.js';\r\nimport removeClasses from './removeClasses.js';\r\n\r\nexport default { addClasses, removeClasses };\r\n","function checkOverflow() {\r\n const swiper = this;\r\n const { isLocked: wasLocked, params } = swiper;\r\n const { slidesOffsetBefore } = params;\r\n\r\n if (slidesOffsetBefore) {\r\n const lastSlideIndex = swiper.slides.length - 1;\r\n const lastSlideRightEdge =\r\n swiper.slidesGrid[lastSlideIndex] +\r\n swiper.slidesSizesGrid[lastSlideIndex] +\r\n slidesOffsetBefore * 2;\r\n swiper.isLocked = swiper.size > lastSlideRightEdge;\r\n } else {\r\n swiper.isLocked = swiper.snapGrid.length === 1;\r\n }\r\n if (params.allowSlideNext === true) {\r\n swiper.allowSlideNext = !swiper.isLocked;\r\n }\r\n if (params.allowSlidePrev === true) {\r\n swiper.allowSlidePrev = !swiper.isLocked;\r\n }\r\n\r\n if (wasLocked && wasLocked !== swiper.isLocked) {\r\n swiper.isEnd = false;\r\n }\r\n if (wasLocked !== swiper.isLocked) {\r\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\r\n }\r\n}\r\n\r\nexport default { checkOverflow };\r\n","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n\n // Overrides\n width: null,\n height: null,\n\n //\n preventInteractionOnTransition: false,\n\n // ssr\n userAgent: null,\n url: null,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 5,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // loop\n loop: false,\n\n // rewind\n rewind: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n maxBackfaceHiddenSlides: 10,\n\n // NS\n containerModifierClass: 'swiper-', // NEW\n slideClass: 'swiper-slide',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n\n // Callbacks\n runCallbacksOnInit: true,\n\n // Internals\n _emitClasses: false,\n};\n","import { extend } from '../shared/utils.js';\r\n\r\nexport default function moduleExtendParams(params, allModulesParams) {\r\n return function extendParams(obj = {}) {\r\n const moduleParamName = Object.keys(obj)[0];\r\n const moduleParams = obj[moduleParamName];\r\n if (typeof moduleParams !== 'object' || moduleParams === null) {\r\n extend(allModulesParams, obj);\r\n return;\r\n }\r\n if (\r\n ['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 &&\r\n params[moduleParamName] === true\r\n ) {\r\n params[moduleParamName] = { auto: true };\r\n }\r\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\r\n extend(allModulesParams, obj);\r\n return;\r\n }\r\n if (params[moduleParamName] === true) {\r\n params[moduleParamName] = { enabled: true };\r\n }\r\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\r\n params[moduleParamName].enabled = true;\r\n }\r\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\r\n extend(allModulesParams, obj);\r\n };\r\n}\r\n","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport {\n extend,\n now,\n deleteProps,\n createElement,\n elementChildren,\n elementStyle,\n} from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\n\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\n\nimport eventsEmitter from './events-emitter.js';\n\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport checkOverflow from './check-overflow/index.js';\n\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\n\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n if (\n args.length === 1 &&\n args[0].constructor &&\n Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object'\n ) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n const document = getDocument();\n\n if (\n params.el &&\n typeof params.el === 'string' &&\n document.querySelectorAll(params.el).length > 1\n ) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach((containerEl) => {\n const newParams = extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({ userAgent: params.userAgent });\n swiper.browser = getBrowser();\n\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach((mod) => {\n mod({\n params,\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper),\n });\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach((eventName) => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n\n // Classes\n classNames: [],\n\n // Slides\n slides: [],\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n evCache: [],\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n });\n\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n\n recalcSlides() {\n const swiper = this;\n const { slidesEl, params } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter((className) => {\n return (\n className.indexOf('swiper') === 0 ||\n className.indexOf(swiper.params.containerModifierClass) === 0\n );\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n\n return slideEl.className\n .split(' ')\n .filter((className) => {\n return (\n className.indexOf('swiper-slide') === 0 ||\n className.indexOf(swiper.params.slideClass) === 0\n );\n })\n .join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach((slideEl) => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({ slideEl, classNames });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const { params, slides, slidesGrid, slidesSizesGrid, size: swiperSize, activeIndex } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact\n ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize\n : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(\n Math.max(translateValue, swiper.maxTranslate()),\n swiper.minTranslate(),\n );\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if (\n (swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) &&\n swiper.isEnd &&\n !swiper.params.centeredSlides\n ) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (\n newDirection === currentDirection ||\n (newDirection !== 'horizontal' && newDirection !== 'vertical')\n ) {\n return swiper;\n }\n\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n\n swiper.params.direction = newDirection;\n\n swiper.slides.forEach((slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n\n return swiper;\n }\n\n changeLanguageDirection(direction) {\n const swiper = this;\n if ((swiper.rtl && direction === 'rtl') || (!swiper.rtl && direction === 'ltr')) return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n if (el.shadowEl) {\n swiper.isElement = true;\n }\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach((slideEl) => {\n wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement ? el : wrapperEl,\n mounted: true,\n\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate:\n swiper.params.direction === 'horizontal' &&\n (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box',\n });\n\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(\n swiper.params.initialSlide + swiper.virtual.slidesBefore,\n 0,\n swiper.params.runCallbacksOnInit,\n false,\n true,\n );\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const { params, el, wrapperEl, slides } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach((slideEl) => {\n slideEl.classList.remove(\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n );\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.el.swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach((m) => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\n\nObject.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\n\nSwiper.use([Resize, Observer]);\n\nexport default Swiper;\n","import { createElement, elementChildren, setCSSProperty } from '../../shared/utils.js';\n\nexport default function Virtual({ swiper, extendParams, on, emit }) {\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n });\n\n let cssModeTimeout;\n\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: [],\n };\n\n const tempDOM = document.createElement('div');\n\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n // eslint-disable-next-line\n let slideEl;\n if (params.renderSlide) {\n slideEl = params.renderSlide.call(swiper, slide, index);\n if (typeof slideEl === 'string') {\n tempDOM.innerHTML = slideEl;\n slideEl = tempDOM.children[0];\n }\n } else if (swiper.isElement) {\n slideEl = createElement('swiper-slide');\n } else {\n slideEl = createElement('div', swiper.params.slideClass);\n }\n slideEl.setAttribute('data-swiper-slide-index', index);\n if (!params.renderSlide) {\n slideEl.textContent = slide;\n }\n\n if (params.cache) swiper.virtual.cache[index] = slideEl;\n return slideEl;\n }\n\n function update(force) {\n const { slidesPerView, slidesPerGroup, centeredSlides, loop: isLoop } = swiper.params;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset,\n } = swiper.virtual;\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n }\n let from = activeIndex - slidesBefore;\n let to = activeIndex + slidesAfter;\n if (!isLoop) {\n from = Math.max(from, 0);\n to = Math.min(to, slides.length - 1);\n }\n let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n if (isLoop && activeIndex >= slidesBefore) {\n from -= slidesBefore;\n if (!centeredSlides) offset += swiper.slidesGrid[0];\n } else if (isLoop && activeIndex < slidesBefore) {\n from = -slidesBefore;\n if (centeredSlides) offset += swiper.slidesGrid[0];\n }\n\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n slidesBefore,\n slidesAfter,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n emit('virtualUpdate');\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.forEach((slideEl) => {\n slideEl.style[offsetProp] = `${offset}px`;\n });\n }\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: (function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n })(),\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n\n const getSlideIndex = (index) => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n\n if (force) {\n swiper.slidesEl\n .querySelectorAll(`.${swiper.params.slideClass}, swiper-slide`)\n .forEach((slideEl) => {\n slideEl.remove();\n });\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n const slideIndex = getSlideIndex(i);\n swiper.slidesEl\n .querySelectorAll(\n `.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`,\n )\n .forEach((slideEl) => {\n slideEl.remove();\n });\n }\n }\n }\n\n const loopFrom = isLoop ? -slides.length : 0;\n const loopTo = isLoop ? slides.length * 2 : slides.length;\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n const slideIndex = getSlideIndex(i);\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(slideIndex);\n } else {\n if (i > previousTo) appendIndexes.push(slideIndex);\n if (i < previousFrom) prependIndexes.push(slideIndex);\n }\n }\n }\n appendIndexes.forEach((index) => {\n swiper.slidesEl.append(renderSlide(slides[index], index));\n });\n if (isLoop) {\n for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n const index = prependIndexes[i];\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n }\n } else {\n prependIndexes.sort((a, b) => b - a);\n prependIndexes.forEach((index) => {\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n });\n }\n elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach((slideEl) => {\n slideEl.style[offsetProp] = `${offset}px`;\n });\n onRendered();\n }\n\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n update(true);\n }\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n const cachedEl = cache[cachedIndex];\n const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n if (cachedElIndex) {\n cachedEl.setAttribute(\n 'data-swiper-slide-index',\n parseInt(cachedElIndex, 10) + numberOfNewSlides,\n );\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n function removeAllSlides() {\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n update(true);\n swiper.slideTo(0, 0);\n }\n\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n let domSlidesAssigned;\n if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n const slides = swiper.slidesEl.querySelectorAll(`.${swiper.params.slideClass}, swiper-slide`);\n if (slides && slides.length) {\n swiper.virtual.slides = [...slides];\n domSlidesAssigned = true;\n slides.forEach((slideEl, slideIndex) => {\n slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n swiper.virtual.cache[slideIndex] = slideEl;\n slideEl.remove();\n });\n }\n }\n if (!domSlidesAssigned) {\n swiper.virtual.slides = swiper.params.virtual.slides;\n }\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update,\n });\n}\n","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport { elementOffset, elementParents } from '../../shared/utils.js';\n\nexport default function Keyboard({ swiper, extendParams, on, emit }) {\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false,\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true,\n },\n });\n\n function handle(event) {\n if (!swiper.enabled) return;\n\n const { rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (\n !swiper.allowSlideNext &&\n ((swiper.isHorizontal() && isArrowRight) ||\n (swiper.isVertical() && isArrowDown) ||\n isPageDown)\n ) {\n return false;\n }\n if (\n !swiper.allowSlidePrev &&\n ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)\n ) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (\n document.activeElement &&\n document.activeElement.nodeName &&\n (document.activeElement.nodeName.toLowerCase() === 'input' ||\n document.activeElement.nodeName.toLowerCase() === 'textarea')\n ) {\n return undefined;\n }\n if (\n swiper.params.keyboard.onlyInViewport &&\n (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)\n ) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (\n elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 &&\n elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0\n ) {\n return undefined;\n }\n\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiperWidth, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiperHeight],\n [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl))\n swiper.slideNext();\n if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl))\n swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n\n Object.assign(swiper.keyboard, {\n enable,\n disable,\n });\n}\n","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport { now, nextTick } from '../../shared/utils.js';\n\nexport default function Mousewheel({ swiper, extendParams, on, emit }) {\n const window = getWindow();\n\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n },\n });\n\n swiper.mousewheel = {\n enabled: false,\n };\n\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (\n swiper.params.mousewheel.thresholdDelta &&\n newEvent.delta < swiper.params.mousewheel.thresholdDelta\n ) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (\n swiper.params.mousewheel.thresholdTime &&\n now() - lastScrollTime < swiper.params.mousewheel.thresholdTime\n ) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const data = normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n else return true;\n } else {\n delta =\n Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop\n ? true\n : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event,\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length\n ? recentWheelEvents[recentWheelEvents.length - 1]\n : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (\n newEvent.direction !== prevEvent.direction ||\n newEvent.delta > prevEvent.delta ||\n newEvent.time > prevEvent.time + 150\n ) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n };\n const ignoreWheelEvents =\n lastEventBeforeSnap &&\n newEvent.time < lastEventBeforeSnap.time + 500 &&\n newEvent.delta <= lastEventBeforeSnap.delta &&\n newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length\n ? recentWheelEvents[recentWheelEvents.length - 1]\n : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (\n prevEvent &&\n (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)\n ) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (\n recentWheelEvents.length >= 15 &&\n newEvent.time - firstEvent.time < 500 &&\n firstEvent.delta - newEvent.delta >= 1 &&\n newEvent.delta <= 6\n ) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction)\n swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n }\n\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n\n Object.assign(swiper.mousewheel, {\n enable,\n disable,\n });\n}\n","import { createElement, elementChildren } from './utils.js';\n\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach((key) => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\n\nexport default function Navigation({ swiper, extendParams, on, emit }) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled',\n },\n });\n\n swiper.navigation = {\n nextEl: null,\n prevEl: null,\n };\n\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.shadowRoot.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (\n swiper.params.uniqueNavElements &&\n typeof el === 'string' &&\n res.length > 1 &&\n swiper.el.querySelectorAll(el).length === 1\n ) {\n res = swiper.el.querySelector(el);\n }\n }\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](params.disabledClass);\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const { nextEl, prevEl } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n\n swiper.params.navigation = createElementIfNotDefined(\n swiper,\n swiper.originalParams.navigation,\n swiper.params.navigation,\n {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev',\n },\n );\n if (!(params.nextEl || params.prevEl)) return;\n\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl,\n });\n\n if (!Array.isArray(nextEl)) nextEl = [nextEl];\n if (!Array.isArray(prevEl)) prevEl = [prevEl];\n\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(params.lockClass);\n }\n };\n\n nextEl.forEach((el) => initButton(el, 'next'));\n prevEl.forEach((el) => initButton(el, 'prev'));\n }\n function destroy() {\n let { nextEl, prevEl } = swiper.navigation;\n if (!Array.isArray(nextEl)) nextEl = [nextEl];\n if (!Array.isArray(prevEl)) prevEl = [prevEl];\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(swiper.params.navigation.disabledClass);\n };\n nextEl.forEach((el) => destroyButton(el, 'next'));\n prevEl.forEach((el) => destroyButton(el, 'prev'));\n }\n\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let { nextEl, prevEl } = swiper.navigation;\n if (!Array.isArray(nextEl)) nextEl = [nextEl];\n if (!Array.isArray(prevEl)) prevEl = [prevEl];\n [...nextEl, ...prevEl].forEach((el) =>\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.navigation.lockClass),\n );\n });\n on('click', (_s, e) => {\n let { nextEl, prevEl } = swiper.navigation;\n if (!Array.isArray(nextEl)) nextEl = [nextEl];\n if (!Array.isArray(prevEl)) prevEl = [prevEl];\n const targetEl = e.target;\n if (\n swiper.params.navigation.hideOnClick &&\n !prevEl.includes(targetEl) &&\n !nextEl.includes(targetEl)\n ) {\n if (\n swiper.pagination &&\n swiper.params.pagination &&\n swiper.params.pagination.clickable &&\n (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))\n )\n return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].forEach((el) =>\n el.classList.toggle(swiper.params.navigation.hiddenClass),\n );\n }\n });\n\n const enable = () => {\n swiper.el.classList.remove(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n const disable = () => {\n swiper.el.classList.add(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy,\n });\n}\n","export default function classesToSelector(classes = '') {\r\n return `.${classes\r\n .trim()\r\n .replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\r\n .replace(/ /g, '.')}`;\r\n}\r\n","import classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport { elementIndex, elementOuterSize, elementParents } from '../../shared/utils.js';\n\nexport default function Pagination({ swiper, extendParams, on, emit }) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`,\n },\n });\n\n swiper.pagination = {\n el: null,\n bullets: [],\n };\n\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return (\n !swiper.params.pagination.el ||\n !swiper.pagination.el ||\n (Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0)\n );\n }\n\n function setSideBullets(bulletEl, position) {\n const { bulletActiveClass } = swiper.params.pagination;\n bulletEl = bulletEl.nextElementSibling;\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl.nextElementSibling;\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n\n function onBulletClick(e) {\n const isBullet = e.target.matches(classesToSelector(swiper.params.pagination.bulletClass));\n if (!isBullet) return;\n e.preventDefault();\n const index = elementIndex(e.target) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n swiper.slideToLoop(index);\n } else {\n swiper.slideTo(index);\n }\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n\n let el = swiper.pagination.el;\n if (!Array.isArray(el)) el = [el];\n // Current/Total\n let current;\n const slidesLength =\n swiper.virtual && swiper.params.virtual.enabled\n ? swiper.virtual.slides.length\n : swiper.slides.length;\n const total = swiper.params.loop\n ? Math.ceil(slidesLength / swiper.params.slidesPerGroup)\n : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current =\n swiper.params.slidesPerGroup > 1\n ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup)\n : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (\n params.type === 'bullets' &&\n swiper.pagination.bullets &&\n swiper.pagination.bullets.length > 0\n ) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach((subEl) => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${\n bulletSize * (params.dynamicMainBullets + 4)\n }px`;\n });\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach((bulletEl) => {\n bulletEl.classList.remove(\n ...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(\n (suffix) => `${params.bulletActiveClass}${suffix}`,\n ),\n );\n });\n\n if (el.length > 1) {\n bullets.forEach((bullet) => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n bullet.classList.add(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets[i].classList.add(`${params.bulletActiveClass}-main`);\n }\n\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset =\n (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach((bullet) => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach((fractionEl) => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach((totalEl) => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl\n .querySelectorAll(classesToSelector(params.progressbarFillClass))\n .forEach((progressEl) => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength =\n swiper.virtual && swiper.params.virtual.enabled\n ? swiper.virtual.slides.length\n : swiper.slides.length;\n\n let el = swiper.pagination.el;\n if (!Array.isArray(el)) el = [el];\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop\n ? Math.ceil(slidesLength / swiper.params.slidesPerGroup)\n : swiper.snapGrid.length;\n if (\n swiper.params.freeMode &&\n swiper.params.freeMode.enabled &&\n numberOfBullets > slidesLength\n ) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">${params.bulletElement}>`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML =\n `` +\n ' / ' +\n ``;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n\n el.forEach((subEl) => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets = [\n ...subEl.querySelectorAll(classesToSelector(params.bulletClass)),\n ];\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(\n swiper,\n swiper.originalParams.pagination,\n swiper.params.pagination,\n { el: 'swiper-pagination' },\n );\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n\n if (\n swiper.params.uniqueNavElements &&\n typeof params.el === 'string' &&\n Array.isArray(el) &&\n el.length > 1\n ) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter((subEl) => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n\n Object.assign(swiper.pagination, {\n el,\n });\n\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(params.clickableClass);\n }\n\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(\n swiper.isHorizontal() ? params.horizontalClass : params.verticalClass,\n );\n if (params.clickable) {\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n\n if (swiper.pagination.bullets)\n swiper.pagination.bullets.forEach((subEl) =>\n subEl.classList.remove(params.bulletActiveClass),\n );\n }\n\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let { el } = swiper.pagination;\n if (el) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) =>\n subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass),\n );\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n let { el } = swiper.pagination;\n if (!Array.isArray(el)) el = [el];\n if (\n swiper.params.pagination.el &&\n swiper.params.pagination.hideOnClick &&\n el &&\n el.length > 0 &&\n !targetEl.classList.contains(swiper.params.pagination.bulletClass)\n ) {\n if (\n swiper.navigation &&\n ((swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) ||\n (swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl))\n )\n return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach((subEl) => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let { el } = swiper.pagination;\n if (el) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) =>\n subEl.classList.remove(swiper.params.pagination.paginationDisabledClass),\n );\n }\n init();\n render();\n update();\n };\n\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let { el } = swiper.pagination;\n if (el) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy,\n });\n}\n","import { getDocument } from 'ssr-window';\nimport { createElement, elementOffset, nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\n\nexport default function Scrollbar({ swiper, extendParams, on, emit }) {\n const document = getDocument();\n\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`,\n },\n });\n\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n };\n\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const { dragEl, el } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transition = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transition = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { dragEl, el } = scrollbar;\n\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n\n divider =\n swiper.size /\n (swiper.virtualSize +\n swiper.params.slidesOffsetBefore -\n (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const { el } = scrollbar;\n\n let positionRatio;\n positionRatio =\n (getPointerPosition(e) -\n elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] -\n (dragStartPos !== null ? dragStartPos : dragSize / 2)) /\n (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position =\n swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const { scrollbar, wrapperEl } = swiper;\n const { el, dragEl } = scrollbar;\n isTouched = true;\n dragStartPos =\n e.target === dragEl\n ? getPointerPosition(e) -\n e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top']\n : null;\n e.preventDefault();\n e.stopPropagation();\n\n wrapperEl.style.transition = '100ms';\n dragEl.style.transition = '100ms';\n setDragPosition(e);\n\n clearTimeout(dragTimeout);\n\n el.style.transition = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const { scrollbar, wrapperEl } = swiper;\n const { el, dragEl } = scrollbar;\n\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transition = '0ms';\n el.style.transition = '0ms';\n dragEl.style.transition = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const { scrollbar, wrapperEl } = swiper;\n const { el } = scrollbar;\n\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transition = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transition = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n\n function events(method) {\n const { scrollbar, params } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = params.passiveListeners ? { passive: true, capture: false } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const { scrollbar, el: swiperEl } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(\n swiper,\n swiper.originalParams.scrollbar,\n swiper.params.scrollbar,\n { el: 'swiper-scrollbar' },\n );\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el) {\n el = document.querySelectorAll(params.el);\n }\n\n if (\n swiper.params.uniqueNavElements &&\n typeof params.el === 'string' &&\n el.length > 1 &&\n swiperEl.querySelectorAll(params.el).length === 1\n ) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n let dragEl;\n if (el) {\n el.querySelector(`.${swiper.params.scrollbar.dragClass}`);\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n\n Object.assign(scrollbar, {\n el,\n dragEl,\n });\n\n if (params.draggable) {\n enableDraggable();\n }\n\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n\n disableDraggable();\n }\n\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const { el } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n\n const enable = () => {\n swiper.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n init();\n updateSize();\n setTranslate();\n };\n\n const disable = () => {\n swiper.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n destroy();\n };\n\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy,\n });\n}\n","import { elementChildren } from '../../shared/utils.js';\n\nexport default function Parallax({ swiper, extendParams, on }) {\n extendParams({\n parallax: {\n enabled: false,\n },\n });\n\n const setTransform = (el, progress) => {\n const { rtl } = swiper;\n\n const rtlFactor = rtl ? -1 : 1;\n\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n el.style.transform = `translate3d(${x}, ${y}, 0px)`;\n } else {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n el.style.transform = `translate3d(${x}, ${y}, 0px) scale(${currentScale})`;\n }\n };\n\n const setTranslate = () => {\n const { el, slides, progress, snapGrid } = swiper;\n elementChildren(\n el,\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n ).forEach((subEl) => {\n setTransform(subEl, progress);\n });\n\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl\n .querySelectorAll(\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n )\n .forEach((subEl) => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n\n const setTransition = (duration = swiper.params.speed) => {\n const { el } = swiper;\n el.querySelectorAll(\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n ).forEach((parallaxEl) => {\n let parallaxDuration =\n parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transition = `${parallaxDuration}ms`;\n });\n };\n\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n","import { getWindow } from 'ssr-window';\nimport {\n elementChildren,\n elementOffset,\n elementParents,\n getTranslate,\n} from '../../shared/utils.js';\n\nexport default function Zoom({ swiper, extendParams, on, emit }) {\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n });\n\n swiper.zoom = {\n enabled: false,\n };\n\n let currentScale = 1;\n let isScaling = false;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3,\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n };\n\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter((slideEl) => slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if (\n [...swiper.el.querySelectorAll(selector)].filter((containerEl) =>\n containerEl.contains(e.target),\n ).length > 0\n )\n return true;\n return false;\n }\n\n // Events\n function onGestureStart(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n\n gesture.maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n }\n if (gesture.imageEl) {\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex((cachedEv) => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n\n if (evCache.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n\n if (!gesture.imageEl) {\n return;\n }\n\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * currentScale;\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex((cachedEv) => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageE) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale === 1) gesture.slideEl = undefined;\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.pageX;\n image.touchesStart.y = e.pageY;\n }\n function onTouchMove(e) {\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) return;\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth;\n image.height = gesture.imageEl.offsetHeight;\n image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n\n if (!image.isMoved && !isScaling) {\n if (\n swiper.isHorizontal() &&\n ((Math.floor(image.minX) === Math.floor(image.startX) &&\n image.touchesCurrent.x < image.touchesStart.x) ||\n (Math.floor(image.maxX) === Math.floor(image.startX) &&\n image.touchesCurrent.x > image.touchesStart.x))\n ) {\n image.isTouched = false;\n return;\n }\n if (\n !swiper.isHorizontal() &&\n ((Math.floor(image.minY) === Math.floor(image.startY) &&\n image.touchesCurrent.y < image.touchesStart.y) ||\n (Math.floor(image.maxY) === Math.floor(image.startY) &&\n image.touchesCurrent.y > image.touchesStart.y))\n ) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x =\n (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y =\n (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0)\n momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0)\n momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n\n zoom.scale = 1;\n currentScale = 1;\n\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n }\n }\n\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(\n swiper.slidesEl,\n `.${swiper.params.slideActiveClass}`,\n )[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n currentScale = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n\n imageWidth = gesture.imageEl.offsetWidth;\n imageHeight = gesture.imageEl.offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n const activeListenerWithCapture = swiper.params.passiveListeners\n ? { passive: false, capture: true }\n : true;\n return { passiveListener, activeListenerWithCapture };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const { passiveListener, activeListenerWithCapture } = getListeners();\n\n // Scale image\n\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel'].forEach((eventName) => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n\n const { passiveListener, activeListenerWithCapture } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel'].forEach((eventName) => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd(e);\n });\n on('doubleTap', (_s, e) => {\n if (\n !swiper.animating &&\n swiper.params.zoom.enabled &&\n swiper.zoom.enabled &&\n swiper.params.zoom.toggle\n ) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle,\n });\n}\n","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { elementTransitionEnd, nextTick } from '../../shared/utils.js';\n\nexport default function Controller({ swiper, extendParams, on }) {\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n });\n\n swiper.controller = {\n control: undefined,\n };\n\n function LinearSpline(x, y) {\n const binarySearch = (function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = (maxIndex + minIndex) >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n })();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (\n ((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1]) + this.y[i1]\n );\n };\n return this;\n }\n // xxx: for now i will just save one spline function to to\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier =\n (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n elementTransitionEnd(c.wrapperEl, () => {\n if (!controlled) return;\n if (swiper.params.loop) swiper.loopFix(undefined, false);\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n on('beforeInit', () => {\n if (\n typeof window !== 'undefined' && // eslint-disable-line\n (typeof swiper.params.controller.control === 'string' ||\n swiper.params.controller.control instanceof HTMLElement)\n ) {\n const controlElement = document.querySelector(swiper.params.controller.control);\n if (controlElement && controlElement.swiper) {\n swiper.controller.control = controlElement.swiper;\n } else if (controlElement) {\n const onControllerSwiper = (e) => {\n swiper.controller.control = e.detail[0];\n swiper.update();\n controlElement.removeEventListener('init', onControllerSwiper);\n };\n controlElement.addEventListener('init', onControllerSwiper);\n }\n return;\n }\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition,\n });\n}\n","import classesToSelector from '../../shared/classes-to-selector.js';\nimport { createElement, elementIndex } from '../../shared/utils.js';\n\nexport default function A11y({ swiper, extendParams, on }) {\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null,\n },\n });\n\n swiper.a11y = {\n clicked: false,\n };\n\n let liveRegion = null;\n\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n\n function getRandomNumber(size = 16) {\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n if (!Array.isArray(el)) el = [el];\n el.forEach((subEl) => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (\n swiper.pagination &&\n swiper.pagination.el &&\n (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))\n ) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (\n swiper.pagination &&\n targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))\n ) {\n targetEl.click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const { nextEl, prevEl } = swiper.navigation;\n\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach((bulletEl) => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(\n bulletEl,\n params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1),\n );\n }\n }\n if (bulletEl.matches(`.${swiper.params.pagination.bulletActiveClass}`)) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = () => {\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n\n const handleFocus = (e) => {\n if (swiper.a11y.clicked) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible =\n swiper.params.watchSlidesProgress &&\n swiper.visibleSlides &&\n swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop\n ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10)\n : index;\n const ariaLabelMessage = params.slideLabelMessage\n .replace(/\\{\\{index\\}\\}/, slideIndex + 1)\n .replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n\n const init = () => {\n const params = swiper.params.a11y;\n\n swiper.el.append(liveRegion);\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId =\n params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let { nextEl, prevEl } = swiper.navigation ? swiper.navigation : {};\n if (nextEl && !Array.isArray(nextEl)) nextEl = [nextEl];\n if (prevEl && !Array.isArray(prevEl)) prevEl = [prevEl];\n\n if (nextEl) {\n nextEl.forEach((el) => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach((el) => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n swiper.pagination.el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n\n // Tab focus\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let { nextEl, prevEl } = swiper.navigation ? swiper.navigation : {};\n if (nextEl && !Array.isArray(nextEl)) nextEl = [nextEl];\n if (prevEl && !Array.isArray(prevEl)) prevEl = [prevEl];\n if (nextEl) {\n nextEl.forEach((el) => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach((el) => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n swiper.pagination.el.off('keydown', onEnterOrSpaceKey);\n }\n\n // Tab focus\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n if (swiper.isElement) {\n liveRegion.setAttribute('slot', 'container-end');\n }\n });\n\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n","import { getWindow } from 'ssr-window';\nimport { elementIndex } from '../../shared/utils.js';\n\nexport default function History({ swiper, extendParams, on }) {\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false,\n },\n });\n\n let initialized = false;\n let paths = {};\n\n const slugify = (text) => {\n return text\n .toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n };\n\n const getPathValues = (urlOverride) => {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname\n .slice(1)\n .split('/')\n .filter((part) => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return { key, value };\n };\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.slides[index];\n let value = slugify(slide.getAttribute('data-history'));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key}/${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({ value }, null, value);\n } else {\n window.history.pushState({ value }, null, value);\n }\n };\n\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides[i];\n const slideHistory = slugify(slide.getAttribute('data-history'));\n if (slideHistory === value) {\n const index = elementIndex(slide);\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) return;\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n const destroy = () => {\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}\n","import { getWindow, getDocument } from 'ssr-window';\nimport { elementChildren, elementIndex } from '../../shared/utils.js';\n\nexport default function HashNavigation({ swiper, extendParams, emit, on }) {\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n });\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides[swiper.activeIndex].getAttribute('data-hash');\n if (newHash !== activeSlideHash) {\n const newIndex = elementIndex(\n elementChildren(\n swiper.slidesEl,\n `.${swiper.params.slideClass}[data-hash=\"${newHash}\"], swiper-slide[data-hash=\"${newHash}\"]`,\n )[0],\n );\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n if (\n swiper.params.hashNavigation.replaceState &&\n window.history &&\n window.history.replaceState\n ) {\n window.history.replaceState(\n null,\n null,\n `#${swiper.slides[swiper.activeIndex].getAttribute('data-hash')}` || '',\n );\n emit('hashSet');\n } else {\n const slide = swiper.slides[swiper.activeIndex];\n const hash = slide.getAttribute('data-hash') || slide.getAttribute('data-history');\n document.location.hash = hash || '';\n emit('hashSet');\n }\n };\n const init = () => {\n if (\n !swiper.params.hashNavigation.enabled ||\n (swiper.params.history && swiper.params.history.enabled)\n )\n return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides[i];\n const slideHash = slide.getAttribute('data-hash') || slide.getAttribute('data-history');\n if (slideHash === hash) {\n const index = elementIndex(slide);\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n window.addEventListener('hashchange', onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n window.removeEventListener('hashchange', onHashChange);\n }\n };\n\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n","/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\n\nexport default function Autoplay({ swiper, extendParams, on, emit, params }) {\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0,\n };\n\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false,\n },\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime;\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n resume();\n }\n\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused\n ? autoplayTimeLeft\n : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter((slideEl) =>\n slideEl.classList.contains('swiper-slide-active'),\n )[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n\n const run = (delayForce) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (\n !Number.isNaN(currentSlideDelay) &&\n currentSlideDelay > 0 &&\n typeof delayForce === 'undefined'\n ) {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n\n const start = () => {\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n\n const resume = () => {\n if (\n (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) ||\n swiper.destroyed ||\n !swiper.autoplay.running\n )\n return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n\n const onPointerEnter = (e) => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pause(true);\n };\n\n const onPointerLeave = (e) => {\n if (e.pointerType !== 'mouse') return;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n\n const detachMouseEvents = () => {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n };\n\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n autoplayStartTime = new Date().getTime();\n start();\n }\n });\n\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume,\n });\n}\n","import { elementChildren, isObject, elementNextAll, elementPrevAll } from '../../shared/utils.js';\n\nexport default function Thumb({ swiper, extendParams, on }) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs',\n },\n });\n\n let initialized = false;\n let swiperCreated = false;\n\n swiper.thumbs = {\n swiper: null,\n };\n\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass))\n return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(\n thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'),\n 10,\n );\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n const currentIndex = swiper.activeIndex;\n\n const prevIndex = swiper.slides.indexOf(\n elementPrevAll(\n swiper.slides[currentIndex],\n `[data-swiper-slide-index=\"${slideToIndex}\"]`,\n )[0],\n );\n const nextIndex = swiper.slides.indexOf(\n elementNextAll(\n swiper.slides[currentIndex],\n `[data-swiper-slide-index=\"${slideToIndex}\"]`,\n )[0],\n );\n\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n }\n\n function init() {\n const { thumbs: thumbsParams } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n const slidesPerView =\n thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n\n thumbsSwiper.slides.forEach((slideEl) => slideEl.classList.remove(thumbActiveClass));\n if (\n thumbsSwiper.params.loop ||\n (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)\n ) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(\n thumbsSwiper.slidesEl,\n `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`,\n ).forEach((slideEl) => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides.indexOf(\n elementPrevAll(\n thumbsSwiper.slides[currentThumbsIndex],\n `[data-swiper-slide-index=\"${swiper.realIndex}\"]`,\n )[0],\n );\n const nextThumbsIndex = thumbsSwiper.slides.indexOf(\n elementNextAll(\n thumbsSwiper.slides[currentThumbsIndex],\n `[data-swiper-slide-index=\"${swiper.realIndex}\"]`,\n )[0],\n );\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex =\n thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (\n thumbsSwiper.visibleSlidesIndexes &&\n thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0\n ) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (\n newThumbsIndex > currentThumbsIndex &&\n thumbsSwiper.params.slidesPerGroup === 1\n ) {\n // newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n\n on('beforeInit', () => {\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const thumbsElement = thumbs.swiper;\n if (thumbsElement.swiper) {\n thumbs.swiper = swiper;\n } else {\n const onThumbsSwiper = (e) => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener('init', onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener('init', onThumbsSwiper);\n return;\n }\n }\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n\n Object.assign(swiper.thumbs, {\n init,\n update,\n });\n}\n","import { elementTransitionEnd, now } from '../../shared/utils.js';\n\nexport default function freeMode({ swiper, extendParams, emit, once }) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02,\n },\n });\n\n function onTouchStart() {\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({ currentPos: swiper.rtl ? swiper.translate : -swiper.translate });\n }\n\n function onTouchMove() {\n const { touchEventsData: data, touches } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now(),\n });\n }\n\n function onTouchEnd({ currentPos }) {\n const { params, wrapperEl, rtlTranslate: rtl, snapGrid, touchEventsData: data } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (\n Math.abs(snapGrid[nextSlide] - newPosition) <\n Math.abs(snapGrid[nextSlide - 1] - newPosition) ||\n swiper.swipeDirection === 'next'\n ) {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd,\n },\n });\n}\n","export default function Grid({ swiper, extendParams }) {\n extendParams({\n grid: {\n rows: 1,\n fill: 'column',\n },\n });\n\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n\n const initSlides = (slidesLength) => {\n const { slidesPerView } = swiper.params;\n const { rows, fill } = swiper.params.grid;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const { slidesPerGroup, spaceBetween } = swiper.params;\n const { rows, fill } = swiper.params.grid;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup =\n groupIndex === 0\n ? slidesPerGroup\n : Math.min(\n Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows),\n slidesPerGroup,\n );\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n\n newSlideOrderIndex = column + (row * slidesNumberEvenToRows) / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || (column === numFullColumns && row === rows - 1)) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.style[getDirectionLabel('margin-top')] =\n row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n };\n\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const { spaceBetween, centeredSlides, roundLengths } = swiper.params;\n const { rows } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize,\n };\n}\n","export default function appendSlide(slides) {\n const swiper = this;\n const { params, slidesEl } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n const appendElement = (slideEl) => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.append(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.append(slideEl);\n }\n };\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) appendElement(slides[i]);\n }\n } else {\n appendElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer) {\n swiper.update();\n }\n}\n","export default function prependSlide(slides) {\n const swiper = this;\n const { params, activeIndex, slidesEl } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n const prependElement = (slideEl) => {\n if (typeof slideEl === 'string') {\n const tempDOM = document.createElement('div');\n tempDOM.innerHTML = slideEl;\n slidesEl.prepend(tempDOM.children[0]);\n tempDOM.innerHTML = '';\n } else {\n slidesEl.prepend(slideEl);\n }\n };\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) prependElement(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n prependElement(slides);\n }\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n","export default function addSlide(index, slides) {\n const swiper = this;\n const { params, activeIndex, slidesEl } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.recalcSlides();\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides[i];\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) slidesEl.append(slides[i]);\n }\n newActiveIndex =\n activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n slidesEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n slidesEl.append(slidesBuffer[i]);\n }\n\n swiper.recalcSlides();\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!params.observer) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n","export default function removeSlide(slidesIndexes) {\n const swiper = this;\n const { params, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n swiper.recalcSlides();\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n","export default function removeAllSlides() {\r\n const swiper = this;\r\n\r\n const slidesIndexes = [];\r\n for (let i = 0; i < swiper.slides.length; i += 1) {\r\n slidesIndexes.push(i);\r\n }\r\n swiper.removeSlide(slidesIndexes);\r\n}\r\n","import appendSlide from './methods/appendSlide.js';\r\nimport prependSlide from './methods/prependSlide.js';\r\nimport addSlide from './methods/addSlide.js';\r\nimport removeSlide from './methods/removeSlide.js';\r\nimport removeAllSlides from './methods/removeAllSlides.js';\r\n\r\nexport default function Manipulation({ swiper }) {\r\n Object.assign(swiper, {\r\n appendSlide: appendSlide.bind(swiper),\r\n prependSlide: prependSlide.bind(swiper),\r\n addSlide: addSlide.bind(swiper),\r\n removeSlide: removeSlide.bind(swiper),\r\n removeAllSlides: removeAllSlides.bind(swiper),\r\n });\r\n}\r\n","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams,\n } = params;\n\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach((slideEl) => {\n slideEl\n .querySelectorAll(\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n )\n .forEach((shadowEl) => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n","import { getSlideTransformEl } from './utils.js';\n\nexport default function effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n","import { elementIndex, elementTransitionEnd } from './utils.js';\n\nexport default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides,\n}) {\n const { activeIndex } = swiper;\n const getSlide = (el) => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(\n (slideEl) => slideEl.shadowEl && slideEl.shadowEl === el.parentNode,\n )[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter((transformEl) => {\n const el = transformEl.classList.contains('swiper-slide-transform')\n ? getSlide(transformEl)\n : transformEl;\n return elementIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach((el) => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n triggerEvents.forEach((eventName) => {\n const evt = new window.CustomEvent(eventName, {\n bubbles: true,\n cancelable: true,\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n });\n }\n}\n","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\n\nexport default function EffectFade({ swiper, extendParams, on }) {\n extendParams({\n fadeEffect: {\n crossFade: false,\n },\n });\n\n const setTranslate = () => {\n const { slides } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs(slideEl.progress), 0)\n : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = (duration) => {\n const transformElements = swiper.slides.map((slideEl) => getSlideTransformEl(slideEl));\n transformElements.forEach((el) => {\n el.style.transition = `${duration}ms`;\n });\n\n effectVirtualTransitionEnd({ swiper, duration, transformElements, allSlides: true });\n };\n\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode,\n }),\n });\n}\n","import effectInit from '../../shared/effect-init.js';\nimport { createElement } from '../../shared/utils.js';\n\nexport default function EffectCube({ swiper, extendParams, on }) {\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n });\n\n const createSlideShadows = (slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal\n ? slideEl.querySelector('.swiper-slide-shadow-left')\n : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal\n ? slideEl.querySelector('.swiper-slide-shadow-right')\n : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createElement('div', `swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`);\n slideEl.append(shadowBefore);\n }\n if (!shadowAfter) {\n shadowAfter = createElement(\n 'div',\n `swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`,\n );\n slideEl.append(shadowAfter);\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.forEach((slideEl) => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress, isHorizontal);\n });\n };\n\n const setTranslate = () => {\n const {\n el,\n wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser,\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl = swiper.slidesEl.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n swiper.slidesEl.append(cubeShadowEl);\n }\n cubeShadowEl.style.height = `${swiperWidth}px`;\n } else {\n cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n el.append(cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${\n isHorizontal ? slideAngle : 0\n }deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n slideEl.style.transform = transform;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, isHorizontal);\n }\n }\n wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl.style.transform = `translate3d(0px, ${\n swiperWidth / 2 + params.shadowOffset\n }px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`;\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier =\n 1.5 -\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2 +\n Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${\n swiperHeight / 2 + offset\n }px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`;\n }\n }\n const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${\n swiper.isHorizontal() ? 0 : wrapperRotate\n }deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`;\n\n wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n const setTransition = (duration) => {\n const { el, slides } = swiper;\n slides.forEach((slideEl) => {\n slideEl.style.transitionDuration = `${duration}ms`;\n slideEl\n .querySelectorAll(\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n )\n .forEach((subEl) => {\n subEl.style.transitionDuration = `${duration}ms`;\n });\n });\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n const shadowEl = el.querySelector('.swiper-cube-shadow');\n if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n }\n };\n\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n }),\n });\n}\n","import { createElement, getSlideTransformEl } from './utils.js';\n\nexport default function createShadow(params, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n const shadowContainer = getSlideTransformEl(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass}`);\n\n if (!shadowEl) {\n shadowEl = createElement('div', `swiper-slide-shadow${side ? `-${side}` : ''}`);\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}\n","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\n\nexport default function EffectFlip({ swiper, extendParams, on }) {\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n });\n\n const createSlideShadows = (slideEl, progress, params) => {\n let shadowBefore = swiper.isHorizontal()\n ? slideEl.querySelector('.swiper-slide-shadow-left')\n : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal()\n ? slideEl.querySelector('.swiper-slide-shadow-right')\n : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createShadow(params, slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n if (!shadowAfter) {\n shadowAfter = createShadow(params, slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n\n const recreateShadows = () => {\n // Set shadows\n const params = swiper.params.flipEffect;\n swiper.slides.forEach((slideEl) => {\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n createSlideShadows(slideEl, progress, params);\n });\n };\n\n const setTranslate = () => {\n const { slides, rtlTranslate: rtl } = swiper;\n const params = swiper.params.flipEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n const offset = slideEl.swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, params);\n }\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n\n const setTransition = (duration) => {\n const transformElements = swiper.slides.map((slideEl) => getSlideTransformEl(slideEl));\n\n transformElements.forEach((el) => {\n el.style.transition = `${duration}ms`;\n el.querySelectorAll(\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n ).forEach((shadowEl) => {\n shadowEl.style.transition = `${duration}ms`;\n });\n });\n\n effectVirtualTransitionEnd({ swiper, duration, transformElements });\n };\n\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode,\n }),\n });\n}\n","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\n\nexport default function EffectCoverflow({ swiper, extendParams, on }) {\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n },\n });\n\n const setTranslate = () => {\n const { width: swiperWidth, height: swiperHeight, slides, slidesSizesGrid } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const slideEl = slides[i];\n const slideSize = slidesSizesGrid[i];\n const slideOffset = slideEl.swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier =\n typeof params.modifier === 'function'\n ? params.modifier(centerOffset)\n : centerOffset * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = (parseFloat(params.stretch) / 100) * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = slideTransform;\n\n slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n let shadowBeforeEl = isHorizontal\n ? slideEl.querySelector('.swiper-slide-shadow-left')\n : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfterEl = isHorizontal\n ? slideEl.querySelector('.swiper-slide-shadow-right')\n : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBeforeEl) {\n shadowBeforeEl = createShadow(params, slideEl, isHorizontal ? 'left' : 'top');\n }\n if (!shadowAfterEl) {\n shadowAfterEl = createShadow(params, slideEl, isHorizontal ? 'right' : 'bottom');\n }\n if (shadowBeforeEl)\n shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfterEl)\n shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition = (duration) => {\n const transformElements = swiper.slides.map((slideEl) => getSlideTransformEl(slideEl));\n\n transformElements.forEach((el) => {\n el.style.transition = `${duration}ms`;\n el.querySelectorAll(\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n ).forEach((shadowEl) => {\n shadowEl.style.transition = `${duration}ms`;\n });\n });\n };\n\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n }),\n });\n}\n","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\n\nexport default function EffectCreative({ swiper, extendParams, on }) {\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1,\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1,\n },\n },\n });\n\n const getTranslateValue = (value) => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n\n const setTranslate = () => {\n const { slides, wrapperEl, slidesSizesGrid } = swiper;\n const params = swiper.params.creativeEffect;\n const { progressMultiplier: multiplier } = params;\n\n const isCenteredSlides = swiper.params.centeredSlides;\n\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(\n Math.max(slideEl.progress, -params.limitProgress),\n params.limitProgress,\n );\n let originalProgress = progress;\n\n if (!isCenteredSlides) {\n originalProgress = Math.min(\n Math.max(slideEl.originalProgress, -params.limitProgress),\n params.limitProgress,\n );\n }\n\n const offset = slideEl.swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1,\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(\n progress * multiplier,\n )}))`;\n });\n // set rotates\n r.forEach((value, index) => {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString =\n originalProgress < 0\n ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})`\n : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString =\n originalProgress < 0\n ? 1 + (1 - data.opacity) * originalProgress * multiplier\n : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n // Set shadows\n if ((custom && data.shadow) || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) {\n shadowEl = createShadow(params, slideEl);\n }\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress\n ? progress * (1 / params.limitProgress)\n : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) {\n targetEl.style.transformOrigin = opacityString;\n }\n }\n };\n\n const setTransition = (duration) => {\n const transformElements = swiper.slides.map((slideEl) => getSlideTransformEl(slideEl));\n\n transformElements.forEach((el) => {\n el.style.transition = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach((shadowEl) => {\n shadowEl.style.transition = `${duration}ms`;\n });\n });\n\n effectVirtualTransitionEnd({ swiper, duration, transformElements, allSlides: true });\n };\n\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode,\n }),\n });\n}\n","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nimport { getSlideTransformEl } from '../../shared/utils.js';\n\nexport default function EffectCards({ swiper, extendParams, on }) {\n extendParams({\n cardsEffect: {\n slideShadows: true,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8,\n },\n });\n\n const setTranslate = () => {\n const { slides, activeIndex } = swiper;\n const params = swiper.params.cardsEffect;\n const { startTranslate, isTouched } = swiper.touchEventsData;\n const currentTranslate = swiper.translate;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = slideEl.swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n }\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n\n const slideIndex =\n swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n\n const isSwipeToNext =\n (slideIndex === activeIndex || slideIndex === activeIndex - 1) &&\n progress > 0 &&\n progress < 1 &&\n (isTouched || swiper.params.cssMode) &&\n currentTranslate < startTranslate;\n const isSwipeToPrev =\n (slideIndex === activeIndex || slideIndex === activeIndex + 1) &&\n progress < 0 &&\n progress > -1 &&\n (isTouched || swiper.params.cssMode) &&\n currentTranslate > startTranslate;\n\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n\n if (progress < 0) {\n // next\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n\n const scaleString =\n progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rotate : 0}deg)\n scale(${scaleString})\n `;\n\n if (params.slideShadows) {\n // Set shadows\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl) {\n shadowEl = createShadow(params, slideEl);\n }\n if (shadowEl)\n shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n\n const setTransition = (duration) => {\n const transformElements = swiper.slides.map((slideEl) => getSlideTransformEl(slideEl));\n transformElements.forEach((el) => {\n el.style.transition = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach((shadowEl) => {\n shadowEl.style.transition = `${duration}ms`;\n });\n });\n\n effectVirtualTransitionEnd({ swiper, duration, transformElements });\n };\n\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode,\n }),\n });\n}\n","// Swiper Class\r\nimport Swiper from './core/core.js';\r\n\r\n//IMPORT_MODULES\r\n\r\nconst modules = [\r\n //INSTALL_MODULES\r\n];\r\n\r\nSwiper.use(modules);\r\n\r\n//EXPORT\r\n"],"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","deleteProps","object","e","nextTick","delay","now","el","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","transform","webkitTransform","split","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","parseFloat","m42","o","prototype","call","slice","isNode","node","HTMLElement","nodeType","to","noExtend","i","nextSource","undefined","keysArray","filter","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","startTime","time","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","getSlideTransformEl","slideEl","shadowEl","elementChildren","element","selector","matches","tag","classes","classList","add","Array","isArray","elementOffset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","elementPrevAll","prevEls","previousElementSibling","prev","push","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","elementTransitionEnd","fireCallBack","elementOuterSize","size","includeMargins","offsetWidth","support","calcSupport","smoothScroll","documentElement","touch","DocumentTouch","getSupport","deviceCached","calcDevice","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","browser","calcBrowser","isSafari","toLowerCase","isWebView","test","getBrowser","Resize","on","emit","observer","animationFrame","resizeHandler","destroyed","initialized","createObserver","ResizeObserver","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","Observer","extendParams","observers","attach","options","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","init","observeParents","containerParents","observeSlideChildren","destroy","disconnect","splice","events","handler","priority","self","eventsListeners","method","event","once","onceHandler","off","__emitterProxy","args","apply","onAny","eventsAnyListeners","offAny","index","eventHandler","data","context","unshift","eventsArray","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","assign","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","initSlides","slideSize","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","loop","groups","ceil","slidesBefore","slidesAfter","groupSize","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","remove","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","getAttribute","visibleSlides","activeIndex","offsetHeight","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","slideActiveClass","slideNextClass","slidePrevClass","activeSlide","nextSlide","prevSlide","emitSlidesClasses","getActiveIndexByTranslate","normalizeSlideIndex","updateActiveIndex","newActiveIndex","previousIndex","realIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","skip","runCallbacksOnInit","updateClickedSlide","closest","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","x","y","z","previousTranslate","newProgress","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEnd","transitionDuration","transitionEmit","direction","step","transitionStart","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","t","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","indexAsNumber","newIndex","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopFix","_clientLeft","rewind","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slideToIndex","slideSelector","isElement","loopedSlides","loopCreate","slideRealIndex","prependSlidesIndexes","appendSlidesIndexes","activeSlideIndex","slidesPrepended","slidesAppended","prepend","append","recalcSlides","loopDestroy","newSlidesOrder","swiperSlideIndex","removeAttr","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","closestElement","base","__closestFrom","assignedSlot","found","getRootNode","onTouchStart","touchEventsData","evCache","touches","pointerType","originalEvent","targetEl","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","targetTouches","diffX","diffY","sqrt","touchAngle","atan2","zoom","cancelable","touchMoveStopPropagation","nested","stopPropagation","startTranslate","eventName","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","diff","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","includes","type","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","timeout","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","onLoad","lazyEl","lazyPreloaderClass","update","dummyEventAttached","dummyEventListener","capture","domMethod","swiperMethod","passive","updateOnWindowResize","attachEvents","bind","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","b","prepareClasses","prefix","resultClasses","item","classNames","addClasses","suffixes","removeClasses","wasLocked","lastSlideRightEdge","initialSlide","createElements","url","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","transition","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","defaults","passedParams","velocity","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","cls","className","getSlideClasses","updates","view","exact","spv","breakLoop","slideInView","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","trim","getWrapper","res","deleteInstance","cleanStyles","removeAttribute","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod","Virtual","cache","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","cssModeTimeout","from","offset","tempDOM","innerHTML","textContent","force","isLoop","previousFrom","previousTo","previousSlidesGrid","previousOffset","offsetProp","onRendered","getSlides","slidesToRender","prependIndexes","appendIndexes","getSlideIndex","loopFrom","loopTo","appendSlide","prependSlide","numberOfNewSlides","newCache","cachedIndex","cachedEl","cachedElIndex","removeSlide","slidesIndexes","removeAllSlides","domSlidesAssigned","Keyboard","keyboard","onlyInViewport","pageUpDown","handle","kc","keyCode","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Mousewheel","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","raw","releaseScroll","targetElContainsTarget","rtlFactor","positions","sign","shift","prevEvent","ignoreWheelEvents","position","sticky","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","createElementIfNotDefined","checkProps","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","getEl","toggleEl","disabled","subEl","tagName","onPrevClick","onNextClick","initButton","destroyButton","_s","pagination","clickable","isHidden","toggle","classesToSelector","Pagination","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","isBullet","total","firstIndex","midIndex","suffix","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","subElIndex","fractionEl","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","render","paginationHTML","numberOfBullets","Scrollbar","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","hide","draggable","snapOnRelease","dragClass","scrollbarDisabledClass","dragEl","newSize","newPos","opacity","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","activeListener","passiveListener","eventMethod","enableDraggable","disableDraggable","swiperEl","Parallax","parallax","setTransform","p","currentOpacity","currentScale","parallaxEl","parallaxDuration","_swiper","Zoom","maxRatio","containerClass","zoomedSlideClass","isScaling","fakeGestureTouched","fakeGestureMoved","gesture","slideWidth","slideHeight","imageEl","imageWrapEl","image","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","defineProperty","get","set","getDistanceBetweenTouches","x1","y1","x2","y2","distance","getSlideSelector","eventWithinSlide","eventWithinZoomContainer","onGestureStart","scaleStart","onGestureChange","scaleMove","onGestureEnd","imageE","scaledWidth","scaledHeight","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","onTransitionEnd","zoomIn","touchAction","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","in","out","Controller","controller","control","inverse","by","LinearSpline","binarySearch","maxIndex","minIndex","guess","array","i1","i3","interpolate","getInterpolateFunction","c","spline","_t","controlled","controlledTranslate","setControlledTranslate","setControlledTransition","removeSpline","controlElement","onControllerSwiper","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","clicked","liveRegion","notify","message","notification","getRandomNumber","randomChar","round","random","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","click","updateNavigation","hasPagination","hasClickablePagination","updatePagination","initNavEl","wrapperId","handlePointerDown","handlePointerUp","handleFocus","isActive","sourceCapabilities","firesTouchEvents","ariaLabelMessage","History","root","keepQuery","paths","slugify","text","getPathValues","urlOverride","URL","pathArray","part","setHistory","currentState","state","scrollToSlide","slideHistory","setHistoryPopState","hashNavigation","HashNavigation","watchState","onHashChange","newHash","activeSlideHash","setHash","slideHash","Autoplay","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","raf","autoplayDelayTotal","autoplayDelayCurrent","autoplayTimeLeft","autoplayStartTime","wasPaused","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","calcTimeLeft","getSlideDelay","activeSlideEl","currentSlideDelay","run","delayForce","proceed","start","pause","reset","onVisibilityChange","visibilityState","onPointerEnter","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsElement","onThumbsSwiper","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","lastMoveEvent","pop","velocityEvent","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","j","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","appendElement","prependElement","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","indexToRemove","Manipulation","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","overwriteParamsResult","slideShadows","requireUpdateOnVirtual","effectTarget","effectParams","transformEl","backfaceVisibility","effectVirtualTransitionEnd","transformElements","allSlides","getSlide","parentNode","eventTriggered","transitionEndTarget","triggerEvents","EffectFade","fadeEffect","crossFade","tx","ty","slideOpacity","EffectCube","cubeEffect","shadow","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","wrapperRotate","cubeShadowEl","slideAngle","tz","transformOrigin","shadowAngle","sin","scale1","scale2","zFactor","createShadow","shadowClass","shadowContainer","EffectFlip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","EffectCoverflow","coverflowEffect","stretch","depth","modifier","center","centerOffset","offsetMultiplier","translateZ","slideTransform","shadowBeforeEl","shadowAfterEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","r","custom","translateString","rotateString","scaleString","opacityString","shadowOpacity","EffectCards","cardsEffect","perSlideRotate","perSlideOffset","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY"],"mappings":"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"}