{"version":3,"file":"swiper-bundle.esm.browser.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 if (activeSlide) {\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 }\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 const makeElementsArray = (el) => {\n if (!Array.isArray(el)) el = [el].filter((e) => !!e);\n return el;\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 el = makeElementsArray(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 nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(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 nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(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 nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n [...nextEl, ...prevEl]\n .filter((el) => !!el)\n .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 nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(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]\n .filter((el) => !!el)\n .forEach((el) => el.classList.toggle(swiper.params.navigation.hiddenClass));\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 const makeElementsArray = (el) => {\n if (!Array.isArray(el)) el = [el].filter((e) => !!e);\n return el;\n };\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 el = makeElementsArray(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 el = makeElementsArray(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 `<span class=\"${params.currentClass}\"></span>` +\n ' / ' +\n `<span class=\"${params.totalClass}\"></span>`;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\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 el = makeElementsArray(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 el = makeElementsArray(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 el = makeElementsArray(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].filter((element) => !!element);\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 el = makeElementsArray(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 el = makeElementsArray(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 const makeElementsArray = (el) => {\n if (!Array.isArray(el)) el = [el].filter((e) => !!e);\n return el;\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 el = makeElementsArray(el);\n el.forEach((subEl) => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach((subEl) => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach((subEl) => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach((subEl) => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach((subEl) => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach((subEl) => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach((subEl) => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach((subEl) => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach((subEl) => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(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 nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(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 nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(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 { getDocument } from 'ssr-window';\nimport { 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 document = getDocument();\n const thumbsElement =\n typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = swiper;\n } else if (thumbsElement) {\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","makeElementsArray","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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"}