{"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';\n\nlet support;\n\nfunction calcSupport() {\n  const window = getWindow();\n  const document = getDocument();\n\n  return {\n    smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n\n    touch: !!(\n      'ontouchstart' in window ||\n      (window.DocumentTouch && document instanceof window.DocumentTouch)\n    ),\n  };\n}\n\nfunction getSupport() {\n  if (!support) {\n    support = calcSupport();\n  }\n  return support;\n}\n\nexport { getSupport };\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.onTranslateToWrapperTransitionEnd = null;\n          delete swiper.onTranslateToWrapperTransitionEnd;\n          if (runCallbacks) {\n            swiper.emit('transitionEnd');\n          }\n        };\n      }\n      swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\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\n      if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n        swiper._cssModeVirtualInitialSet = true;\n        requestAnimationFrame(() => {\n          wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n        });\n      } else {\n        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n      }\n      if (isVirtual) {\n        requestAnimationFrame(() => {\n          swiper.wrapperEl.style.scrollSnapType = '';\n          swiper._immediateVirtual = 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.onSlideToWrapperTransitionEnd = null;\n        delete swiper.onSlideToWrapperTransitionEnd;\n        swiper.transitionEnd(runCallbacks, direction);\n      };\n    }\n    swiper.wrapperEl.addEventListener('transitionend', 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.forEach((slideEl) => {\n    slideEl.removeAttribute('data-swiper-slide-index');\n  });\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) {\n  const swiper = this;\n  if (\n    !swiper.params.simulateTouch ||\n    (swiper.params.watchOverflow && swiper.isLocked) ||\n    swiper.params.cssMode\n  )\n    return;\n  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n  el.style.cursor = 'move';\n  el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n","export default function unsetGrabCursor() {\n  const swiper = this;\n  if ((swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) {\n    return;\n  }\n  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}\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      const evt = new window.CustomEvent('transitionend', {\n        bubbles: true,\n        cancelable: true,\n      });\n      swiper.wrapperEl.dispatchEvent(evt);\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() {\n  const swiper = this;\n  const { wrapperEl, rtlTranslate, enabled } = swiper;\n  if (!enabled) return;\n  swiper.previousTranslate = swiper.translate;\n  if (swiper.isHorizontal()) {\n    swiper.translate = -wrapperEl.scrollLeft;\n  } else {\n    swiper.translate = -wrapperEl.scrollTop;\n  }\n  // eslint-disable-next-line\n  if (swiper.translate === 0) swiper.translate = 0;\n\n  swiper.updateActiveIndex();\n  swiper.updateSlidesClasses();\n\n  let newProgress;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  if (translatesDiff === 0) {\n    newProgress = 0;\n  } else {\n    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n  }\n  if (newProgress !== swiper.progress) {\n    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n  }\n\n  swiper.emit('setTranslate', swiper.translate, false);\n}\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';\n\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nimport onLoad from './onLoad.js';\n\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n  const document = getDocument();\n  const { params, el, wrapperEl, device } = swiper;\n  const capture = !!params.nested;\n  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n  const swiperMethod = method;\n\n  // Touch Events\n  el[domMethod]('pointerdown', swiper.onTouchStart, { passive: false });\n  document[domMethod]('pointermove', swiper.onTouchMove, { passive: false, capture });\n  document[domMethod]('pointerup', swiper.onTouchEnd, { passive: true });\n  document[domMethod]('pointercancel', swiper.onTouchEnd, { passive: true });\n  document[domMethod]('pointerout', swiper.onTouchEnd, { passive: true });\n  document[domMethod]('pointerleave', swiper.onTouchEnd, { passive: true });\n\n  // Prevent Links Clicks\n  if (params.preventClicks || params.preventClicksPropagation) {\n    el[domMethod]('click', swiper.onClick, true);\n  }\n  if (params.cssMode) {\n    wrapperEl[domMethod]('scroll', swiper.onScroll);\n  }\n\n  // Resize handler\n  if (params.updateOnWindowResize) {\n    swiper[swiperMethod](\n      device.ios || device.android\n        ? 'resize orientationchange observerUpdate'\n        : 'resize observerUpdate',\n      onResize,\n      true,\n    );\n  } else {\n    swiper[swiperMethod]('observerUpdate', onResize, true);\n  }\n\n  // Images loader\n  el[domMethod]('load', swiper.onLoad, { capture: true });\n};\n\nfunction attachEvents() {\n  const swiper = this;\n  const document = getDocument();\n  const { params } = swiper;\n\n  swiper.onTouchStart = onTouchStart.bind(swiper);\n  swiper.onTouchMove = onTouchMove.bind(swiper);\n  swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n  if (params.cssMode) {\n    swiper.onScroll = onScroll.bind(swiper);\n  }\n\n  swiper.onClick = onClick.bind(swiper);\n  swiper.onLoad = onLoad.bind(swiper);\n\n  if (!dummyEventAttached) {\n    document.addEventListener('touchstart', dummyEventListener);\n    dummyEventAttached = true;\n  }\n\n  events(swiper, 'on');\n}\n\nfunction detachEvents() {\n  const swiper = this;\n  events(swiper, 'off');\n}\n\nexport default {\n  attachEvents,\n  detachEvents,\n};\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        if (bullet) {\n          bullet.classList.add(params.bulletActiveClass);\n        }\n\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.transitionDuration = '400ms';\n      }, 1000);\n    }\n  }\n  function setTransition(duration) {\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    swiper.scrollbar.dragEl.style.transitionDuration = `${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.transitionDuration = '100ms';\n    dragEl.style.transitionDuration = '100ms';\n    setDragPosition(e);\n\n    clearTimeout(dragTimeout);\n\n    el.style.transitionDuration = '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.transitionDuration = '0ms';\n    el.style.transitionDuration = '0ms';\n    dragEl.style.transitionDuration = '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.transitionDuration = '';\n    }\n    if (params.hide) {\n      clearTimeout(dragTimeout);\n      dragTimeout = nextTick(() => {\n        el.style.opacity = 0;\n        el.style.transitionDuration = '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.transitionDuration = `${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 evt = new window.CustomEvent('transitionend', {\n          bubbles: true,\n          cancelable: true,\n        });\n        swiper.wrapperEl.dispatchEvent(evt);\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.transitionDuration = `${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.transitionDuration = `${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.transitionDuration = `${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.transitionDuration = `${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.transitionDuration = `${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.transitionDuration = `${duration}ms`;\n      el.querySelectorAll('.swiper-slide-shadow').forEach((shadowEl) => {\n        shadowEl.style.transitionDuration = `${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.transitionDuration = `${duration}ms`;\n      el.querySelectorAll('.swiper-slide-shadow').forEach((shadowEl) => {\n        shadowEl.style.transitionDuration = `${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","_cssModeVirtualInitialSet","initialSlide","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","removeAttribute","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","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","createElements","url","uniqueNavElements","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","transition","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","defaults","passedParams","eventName","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","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","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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"}