{"version":3,"file":"1305.js","mappings":"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","sources":["webpack://suicidegirls/./node_modules/swiper/components-shared/params-list.js","webpack://suicidegirls/./node_modules/swiper/components-shared/update-swiper.js","webpack://suicidegirls/./node_modules/swiper/components-shared/utils.js","webpack://suicidegirls/./node_modules/swiper/core/events-emitter.js","webpack://suicidegirls/./node_modules/swiper/core/update/index.js","webpack://suicidegirls/./node_modules/swiper/core/update/updateSize.js","webpack://suicidegirls/./node_modules/swiper/core/update/updateSlides.js","webpack://suicidegirls/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://suicidegirls/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://suicidegirls/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://suicidegirls/./node_modules/swiper/core/update/updateProgress.js","webpack://suicidegirls/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://suicidegirls/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://suicidegirls/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://suicidegirls/./node_modules/swiper/core/translate/index.js","webpack://suicidegirls/./node_modules/swiper/core/translate/getTranslate.js","webpack://suicidegirls/./node_modules/swiper/core/translate/setTranslate.js","webpack://suicidegirls/./node_modules/swiper/core/translate/minTranslate.js","webpack://suicidegirls/./node_modules/swiper/core/translate/maxTranslate.js","webpack://suicidegirls/./node_modules/swiper/core/translate/translateTo.js","webpack://suicidegirls/./node_modules/swiper/core/transition/transitionEmit.js","webpack://suicidegirls/./node_modules/swiper/core/transition/index.js","webpack://suicidegirls/./node_modules/swiper/core/transition/setTransition.js","webpack://suicidegirls/./node_modules/swiper/core/transition/transitionStart.js","webpack://suicidegirls/./node_modules/swiper/core/transition/transitionEnd.js","webpack://suicidegirls/./node_modules/swiper/core/slide/index.js","webpack://suicidegirls/./node_modules/swiper/core/slide/slideTo.js","webpack://suicidegirls/./node_modules/swiper/core/slide/slideToLoop.js","webpack://suicidegirls/./node_modules/swiper/core/slide/slideNext.js","webpack://suicidegirls/./node_modules/swiper/core/slide/slidePrev.js","webpack://suicidegirls/./node_modules/swiper/core/slide/slideReset.js","webpack://suicidegirls/./node_modules/swiper/core/slide/slideToClosest.js","webpack://suicidegirls/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://suicidegirls/./node_modules/swiper/core/loop/index.js","webpack://suicidegirls/./node_modules/swiper/core/loop/loopCreate.js","webpack://suicidegirls/./node_modules/swiper/core/loop/loopFix.js","webpack://suicidegirls/./node_modules/swiper/core/loop/loopDestroy.js","webpack://suicidegirls/./node_modules/swiper/core/grab-cursor/index.js","webpack://suicidegirls/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://suicidegirls/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://suicidegirls/./node_modules/swiper/core/events/onTouchStart.js","webpack://suicidegirls/./node_modules/swiper/core/events/onTouchMove.js","webpack://suicidegirls/./node_modules/swiper/core/events/onTouchEnd.js","webpack://suicidegirls/./node_modules/swiper/core/events/onResize.js","webpack://suicidegirls/./node_modules/swiper/core/events/onClick.js","webpack://suicidegirls/./node_modules/swiper/core/events/onScroll.js","webpack://suicidegirls/./node_modules/swiper/core/events/onLoad.js","webpack://suicidegirls/./node_modules/swiper/core/events/index.js","webpack://suicidegirls/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://suicidegirls/./node_modules/swiper/core/breakpoints/index.js","webpack://suicidegirls/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://suicidegirls/./node_modules/swiper/core/classes/index.js","webpack://suicidegirls/./node_modules/swiper/core/classes/addClasses.js","webpack://suicidegirls/./node_modules/swiper/core/classes/removeClasses.js","webpack://suicidegirls/./node_modules/swiper/core/check-overflow/index.js","webpack://suicidegirls/./node_modules/swiper/core/moduleExtendParams.js","webpack://suicidegirls/./node_modules/swiper/core/core.js","webpack://suicidegirls/./node_modules/swiper/core/modules/resize/resize.js","webpack://suicidegirls/./node_modules/swiper/core/modules/observer/observer.js","webpack://suicidegirls/./node_modules/swiper/core/defaults.js"],"sourcesContent":["/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopedSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideNextClass', 'slidePrevClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\nexport { paramsList };","import { isObject, extend } from './utils.js';\nfunction updateSwiper({\n  swiper,\n  slides,\n  passedParams,\n  changedParams,\n  nextEl,\n  prevEl,\n  scrollbarEl,\n  paginationEl\n}) {\n  const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n  const {\n    params: currentParams,\n    pagination,\n    navigation,\n    scrollbar,\n    virtual,\n    thumbs\n  } = swiper;\n  let needThumbsInit;\n  let needControllerInit;\n  let needPaginationInit;\n  let needScrollbarInit;\n  let needNavigationInit;\n  let loopNeedDestroy;\n  let loopNeedEnable;\n  let loopNeedReloop;\n  if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n    needThumbsInit = true;\n  }\n  if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n    needControllerInit = true;\n  }\n  if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n    needPaginationInit = true;\n  }\n  if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n    needScrollbarInit = true;\n  }\n  if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n    needNavigationInit = true;\n  }\n  const destroyModule = mod => {\n    if (!swiper[mod]) return;\n    swiper[mod].destroy();\n    if (mod === 'navigation') {\n      if (swiper.isElement) {\n        swiper[mod].prevEl.remove();\n        swiper[mod].nextEl.remove();\n      }\n      currentParams[mod].prevEl = undefined;\n      currentParams[mod].nextEl = undefined;\n      swiper[mod].prevEl = undefined;\n      swiper[mod].nextEl = undefined;\n    } else {\n      if (swiper.isElement) {\n        swiper[mod].el.remove();\n      }\n      currentParams[mod].el = undefined;\n      swiper[mod].el = undefined;\n    }\n  };\n  if (changedParams.includes('loop') && swiper.isElement) {\n    if (currentParams.loop && !passedParams.loop) {\n      loopNeedDestroy = true;\n    } else if (!currentParams.loop && passedParams.loop) {\n      loopNeedEnable = true;\n    } else {\n      loopNeedReloop = true;\n    }\n  }\n  updateParams.forEach(key => {\n    if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n      extend(currentParams[key], passedParams[key]);\n      if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n        destroyModule(key);\n      }\n    } else {\n      const newValue = passedParams[key];\n      if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n        if (newValue === false) {\n          destroyModule(key);\n        }\n      } else {\n        currentParams[key] = passedParams[key];\n      }\n    }\n  });\n  if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n    swiper.controller.control = currentParams.controller.control;\n  }\n  if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n    virtual.slides = slides;\n    virtual.update(true);\n  }\n  if (changedParams.includes('children') && slides && currentParams.loop) {\n    loopNeedReloop = true;\n  }\n  if (needThumbsInit) {\n    const initialized = thumbs.init();\n    if (initialized) thumbs.update(true);\n  }\n  if (needControllerInit) {\n    swiper.controller.control = currentParams.controller.control;\n  }\n  if (needPaginationInit) {\n    if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n      paginationEl = document.createElement('div');\n      paginationEl.classList.add('swiper-pagination');\n      swiper.el.shadowEl.appendChild(paginationEl);\n    }\n    if (paginationEl) currentParams.pagination.el = paginationEl;\n    pagination.init();\n    pagination.render();\n    pagination.update();\n  }\n  if (needScrollbarInit) {\n    if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n      scrollbarEl = document.createElement('div');\n      scrollbarEl.classList.add('swiper-scrollbar');\n      swiper.el.shadowEl.appendChild(scrollbarEl);\n    }\n    if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n    scrollbar.init();\n    scrollbar.updateSize();\n    scrollbar.setTranslate();\n  }\n  if (needNavigationInit) {\n    if (swiper.isElement) {\n      if (!nextEl || typeof nextEl === 'string') {\n        nextEl = document.createElement('div');\n        nextEl.classList.add('swiper-button-next');\n        swiper.el.shadowEl.appendChild(nextEl);\n      }\n      if (!prevEl || typeof prevEl === 'string') {\n        prevEl = document.createElement('div');\n        prevEl.classList.add('swiper-button-prev');\n        swiper.el.shadowEl.appendChild(prevEl);\n      }\n    }\n    if (nextEl) currentParams.navigation.nextEl = nextEl;\n    if (prevEl) currentParams.navigation.prevEl = prevEl;\n    navigation.init();\n    navigation.update();\n  }\n  if (changedParams.includes('allowSlideNext')) {\n    swiper.allowSlideNext = passedParams.allowSlideNext;\n  }\n  if (changedParams.includes('allowSlidePrev')) {\n    swiper.allowSlidePrev = passedParams.allowSlidePrev;\n  }\n  if (changedParams.includes('direction')) {\n    swiper.changeDirection(passedParams.direction, false);\n  }\n  if (loopNeedDestroy || loopNeedReloop) {\n    swiper.loopDestroy();\n  }\n  if (loopNeedEnable || loopNeedReloop) {\n    swiper.loopCreate();\n  }\n  swiper.update();\n}\nexport { updateSwiper };","function isObject(o) {\n  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction extend(target, src) {\n  const noExtend = ['__proto__', 'constructor', 'prototype'];\n  Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n      if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n    } else {\n      target[key] = src[key];\n    }\n  });\n}\nfunction needsNavigation(params = {}) {\n  return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params = {}) {\n  return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params = {}) {\n  return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames = '') {\n  const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n  const unique = [];\n  classes.forEach(c => {\n    if (unique.indexOf(c) < 0) unique.push(c);\n  });\n  return unique.join(' ');\n}\nfunction attrToProp(attrName = '') {\n  return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className = '') {\n  if (!className) return 'swiper-wrapper';\n  if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n  return className;\n}\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses, attrToProp, wrapperClass };","/* eslint-disable no-underscore-dangle */\n\nexport default {\n  on(events, handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    const method = priority ? 'unshift' : 'push';\n    events.split(' ').forEach(event => {\n      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n      self.eventsListeners[event][method](handler);\n    });\n    return self;\n  },\n  once(events, handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    function onceHandler(...args) {\n      self.off(events, onceHandler);\n      if (onceHandler.__emitterProxy) {\n        delete onceHandler.__emitterProxy;\n      }\n      handler.apply(self, args);\n    }\n    onceHandler.__emitterProxy = handler;\n    return self.on(events, onceHandler, priority);\n  },\n  onAny(handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    const method = priority ? 'unshift' : 'push';\n    if (self.eventsAnyListeners.indexOf(handler) < 0) {\n      self.eventsAnyListeners[method](handler);\n    }\n    return self;\n  },\n  offAny(handler) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsAnyListeners) return self;\n    const index = self.eventsAnyListeners.indexOf(handler);\n    if (index >= 0) {\n      self.eventsAnyListeners.splice(index, 1);\n    }\n    return self;\n  },\n  off(events, handler) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsListeners) return self;\n    events.split(' ').forEach(event => {\n      if (typeof handler === 'undefined') {\n        self.eventsListeners[event] = [];\n      } else if (self.eventsListeners[event]) {\n        self.eventsListeners[event].forEach((eventHandler, index) => {\n          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n            self.eventsListeners[event].splice(index, 1);\n          }\n        });\n      }\n    });\n    return self;\n  },\n  emit(...args) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsListeners) return self;\n    let events;\n    let data;\n    let context;\n    if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n      events = args[0];\n      data = args.slice(1, args.length);\n      context = self;\n    } else {\n      events = args[0].events;\n      data = args[0].data;\n      context = args[0].context || self;\n    }\n    data.unshift(context);\n    const eventsArray = Array.isArray(events) ? events : events.split(' ');\n    eventsArray.forEach(event => {\n      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n        self.eventsAnyListeners.forEach(eventHandler => {\n          eventHandler.apply(context, [event, ...data]);\n        });\n      }\n      if (self.eventsListeners && self.eventsListeners[event]) {\n        self.eventsListeners[event].forEach(eventHandler => {\n          eventHandler.apply(context, data);\n        });\n      }\n    });\n    return self;\n  }\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n  updateSize,\n  updateSlides,\n  updateAutoHeight,\n  updateSlidesOffset,\n  updateSlidesProgress,\n  updateProgress,\n  updateSlidesClasses,\n  updateActiveIndex,\n  updateClickedSlide\n};","import { elementStyle } from '../../shared/utils.js';\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 = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n  height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n  if (Number.isNaN(width)) width = 0;\n  if (Number.isNaN(height)) height = 0;\n  Object.assign(swiper, {\n    width,\n    height,\n    size: swiper.isHorizontal() ? width : height\n  });\n}","import { elementChildren, elementOuterSize, elementStyle, setCSSProperty } from '../../shared/utils.js';\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  const params = swiper.params;\n  const {\n    wrapperEl,\n    slidesEl,\n    size: swiperSize,\n    rtlTranslate: rtl,\n    wrongRTL\n  } = 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  let offsetBefore = params.slidesOffsetBefore;\n  if (typeof offsetBefore === 'function') {\n    offsetBefore = params.slidesOffsetBefore.call(swiper);\n  }\n  let offsetAfter = params.slidesOffsetAfter;\n  if (typeof offsetAfter === 'function') {\n    offsetAfter = params.slidesOffsetAfter.call(swiper);\n  }\n  const previousSnapGridLength = swiper.snapGrid.length;\n  const previousSlidesGridLength = swiper.slidesGrid.length;\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  } else if (typeof spaceBetween === 'string') {\n    spaceBetween = parseFloat(spaceBetween);\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  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  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n    return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n  }).length > 0;\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() ? elementOuterSize(slide, 'width', true) : 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 {\n            clientWidth,\n            offsetWidth\n          } = slide;\n          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (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      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    if (params.centeredSlides) {\n      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n      if (prevSlideSize === 0 && i !== 0) 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 ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n      slidesGrid.push(slidePosition);\n      slidePosition = slidePosition + slideSize + spaceBetween;\n    }\n    swiper.virtualSize += slideSize + spaceBetween;\n    prevSlideSize = slideSize;\n    index += 1;\n  }\n  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n    wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n  }\n  if (params.setWrapperSize) {\n    wrapperEl.style[getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\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    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\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((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\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  if (spaceBetween !== 0) {\n    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n    slides.filter((_, slideIndex) => {\n      if (!params.cssMode || params.loop) return true;\n      if (slideIndex === slides.length - 1) {\n        return false;\n      }\n      return true;\n    }).forEach(slideEl => {\n      slideEl.style[key] = `${spaceBetween}px`;\n    });\n  }\n  if (params.centeredSlides && params.centeredSlidesBounds) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach(slideSizeValue => {\n      allSlidesSize += slideSizeValue + (spaceBetween || 0);\n    });\n    allSlidesSize -= 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  if (params.centerInsufficientSlides) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach(slideSizeValue => {\n      allSlidesSize += slideSizeValue + (spaceBetween || 0);\n    });\n    allSlidesSize -= 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  Object.assign(swiper, {\n    slides,\n    snapGrid,\n    slidesGrid,\n    slidesSizesGrid\n  });\n  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\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  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  if (params.watchSlidesProgress) {\n    swiper.updateSlidesOffset();\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}","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  const getSlideByIndex = index => {\n    if (isVirtual) {\n      return swiper.slides[swiper.getSlideIndexByData(index)];\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}","export default function updateSlidesOffset() {\n  const swiper = this;\n  const slides = swiper.slides;\n  // eslint-disable-next-line\n  const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n  for (let i = 0; i < slides.length; i += 1) {\n    slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n  }\n}","export default function updateSlidesProgress(translate = this && this.translate || 0) {\n  const swiper = this;\n  const params = swiper.params;\n  const {\n    slides,\n    rtlTranslate: rtl,\n    snapGrid\n  } = swiper;\n  if (slides.length === 0) return;\n  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\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  swiper.visibleSlidesIndexes = [];\n  swiper.visibleSlides = [];\n  let spaceBetween = params.spaceBetween;\n  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n  } else if (typeof spaceBetween === 'string') {\n    spaceBetween = parseFloat(spaceBetween);\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    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n    const slideBefore = -(offsetCenter - slideOffset);\n    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n    const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || 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}","export 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 {\n    progress,\n    isBeginning,\n    isEnd,\n    progressLoop\n  } = 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    const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n    const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n    isBeginning = isBeginningRounded || progress <= 0;\n    isEnd = isEndRounded || progress >= 1;\n    if (isBeginningRounded) progress = 0;\n    if (isEndRounded) progress = 1;\n  }\n  if (params.loop) {\n    const firstSlideIndex = swiper.getSlideIndexByData(0);\n    const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\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  Object.assign(swiper, {\n    progress,\n    progressLoop,\n    isBeginning,\n    isEnd\n  });\n  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\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  swiper.emit('progress', progress);\n}","import { elementChildren, elementNextAll, elementPrevAll } from '../../shared/utils.js';\nexport default function updateSlidesClasses() {\n  const swiper = this;\n  const {\n    slides,\n    params,\n    slidesEl,\n    activeIndex\n  } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  const getFilteredSlide = selector => {\n    return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n  };\n  slides.forEach(slideEl => {\n    slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\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  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  swiper.emitSlidesClasses();\n}","import { preload } from '../../shared/process-lazy-preloader.js';\nexport function getActiveIndexByTranslate(swiper) {\n  const {\n    slidesGrid,\n    params\n  } = 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 (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\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  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(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\n  } else {\n    realIndex = activeIndex;\n  }\n  Object.assign(swiper, {\n    previousSnapIndex,\n    snapIndex,\n    previousRealIndex,\n    realIndex,\n    previousIndex,\n    activeIndex\n  });\n  if (swiper.initialized) {\n    preload(swiper);\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}","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  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  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 (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n    swiper.slideToClickedSlide();\n  }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n  getTranslate,\n  setTranslate,\n  minTranslate,\n  maxTranslate,\n  translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n  const swiper = this;\n  const {\n    params,\n    rtlTranslate: rtl,\n    translate,\n    wrapperEl\n  } = swiper;\n  if (params.virtualTranslate) {\n    return rtl ? -translate : translate;\n  }\n  if (params.cssMode) {\n    return translate;\n  }\n  let currentTranslate = getTranslate(wrapperEl, axis);\n  currentTranslate += swiper.cssOverflowAdjustment();\n  if (rtl) currentTranslate = -currentTranslate;\n  return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n  const swiper = this;\n  const {\n    rtlTranslate: rtl,\n    params,\n    wrapperEl,\n    progress\n  } = swiper;\n  let x = 0;\n  let y = 0;\n  const z = 0;\n  if (swiper.isHorizontal()) {\n    x = rtl ? -translate : translate;\n  } else {\n    y = translate;\n  }\n  if (params.roundLengths) {\n    x = Math.floor(x);\n    y = Math.floor(y);\n  }\n  swiper.previousTranslate = swiper.translate;\n  swiper.translate = swiper.isHorizontal() ? x : y;\n  if (params.cssMode) {\n    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n  } else if (!params.virtualTranslate) {\n    if (swiper.isHorizontal()) {\n      x -= swiper.cssOverflowAdjustment();\n    } else {\n      y -= swiper.cssOverflowAdjustment();\n    }\n    wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n  }\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  swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n  return -this.snapGrid[0];\n}","export default function maxTranslate() {\n  return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n  const swiper = this;\n  const {\n    params,\n    wrapperEl\n  } = swiper;\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return false;\n  }\n  const minTranslate = swiper.minTranslate();\n  const maxTranslate = swiper.maxTranslate();\n  let newTranslate;\n  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n  // Update progress\n  swiper.updateProgress(newTranslate);\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({\n          swiper,\n          targetPosition: -newTranslate,\n          side: isH ? 'left' : 'top'\n        });\n        return true;\n      }\n      wrapperEl.scrollTo({\n        [isH ? 'left' : 'top']: -newTranslate,\n        behavior: 'smooth'\n      });\n    }\n    return true;\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('transitionend', swiper.onTranslateToWrapperTransitionEnd);\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  return true;\n}","export default function transitionEmit({\n  swiper,\n  runCallbacks,\n  direction,\n  step\n}) {\n  const {\n    activeIndex,\n    previousIndex\n  } = swiper;\n  let dir = direction;\n  if (!dir) {\n    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n  }\n  swiper.emit(`transition${step}`);\n  if (runCallbacks && activeIndex !== previousIndex) {\n    if (dir === 'reset') {\n      swiper.emit(`slideResetTransition${step}`);\n      return;\n    }\n    swiper.emit(`slideChangeTransition${step}`);\n    if (dir === 'next') {\n      swiper.emit(`slideNextTransition${step}`);\n    } else {\n      swiper.emit(`slidePrevTransition${step}`);\n    }\n  }\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n  setTransition,\n  transitionStart,\n  transitionEnd\n};","export default function setTransition(duration, byController) {\n  const swiper = this;\n  if (!swiper.params.cssMode) {\n    swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n  }\n  swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  if (params.cssMode) return;\n  if (params.autoHeight) {\n    swiper.updateAutoHeight();\n  }\n  transitionEmit({\n    swiper,\n    runCallbacks,\n    direction,\n    step: 'Start'\n  });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  swiper.animating = false;\n  if (params.cssMode) return;\n  swiper.setTransition(0);\n  transitionEmit({\n    swiper,\n    runCallbacks,\n    direction,\n    step: 'End'\n  });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n  slideTo,\n  slideToLoop,\n  slideNext,\n  slidePrev,\n  slideReset,\n  slideToClosest,\n  slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n  if (typeof index === 'string') {\n    index = parseInt(index, 10);\n  }\n  const swiper = this;\n  let slideIndex = index;\n  if (slideIndex < 0) slideIndex = 0;\n  const {\n    params,\n    snapGrid,\n    slidesGrid,\n    previousIndex,\n    activeIndex,\n    rtlTranslate: rtl,\n    wrapperEl,\n    enabled\n  } = swiper;\n  if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n    return false;\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  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 (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n          slideIndex = i;\n        } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\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 (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n      return false;\n    }\n    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n      if ((activeIndex || 0) !== slideIndex) {\n        return false;\n      }\n    }\n  }\n  if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n    swiper.emit('beforeSlideChangeStart');\n  }\n\n  // Update progress\n  swiper.updateProgress(translate);\n  let direction;\n  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';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      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({\n          swiper,\n          targetPosition: t,\n          side: isH ? 'left' : 'top'\n        });\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  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  return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n  if (typeof index === 'string') {\n    const indexAsNumber = parseInt(index, 10);\n    index = indexAsNumber;\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 = swiper.getSlideIndexByData(newIndex);\n    }\n  }\n  return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n  const swiper = this;\n  const {\n    enabled,\n    params,\n    animating\n  } = 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  const isVirtual = swiper.virtual && params.virtual.enabled;\n  if (params.loop) {\n    if (animating && !isVirtual && params.loopPreventsSliding) return false;\n    swiper.loopFix({\n      direction: 'next'\n    });\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}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n  const swiper = this;\n  const {\n    params,\n    snapGrid,\n    slidesGrid,\n    rtlTranslate,\n    enabled,\n    animating\n  } = swiper;\n  if (!enabled) return swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  if (params.loop) {\n    if (animating && !isVirtual && params.loopPreventsSliding) return false;\n    swiper.loopFix({\n      direction: 'prev'\n    });\n    // eslint-disable-next-line\n    swiper._clientLeft = swiper.wrapperEl.clientLeft;\n  }\n  const translate = rtlTranslate ? swiper.translate : -swiper.translate;\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  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 (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\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 = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n  }\n  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n  const swiper = this;\n  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n  const swiper = this;\n  let index = swiper.activeIndex;\n  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  if (translate >= swiper.snapGrid[snapIndex]) {\n    // The current translate is on or after the current snap index, so the choice\n    // is between the current index and the one after it.\n    const currentSnap = swiper.snapGrid[snapIndex];\n    const nextSnap = swiper.snapGrid[snapIndex + 1];\n    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n      index += swiper.params.slidesPerGroup;\n    }\n  } else {\n    // The current translate is before the current snap index, so the choice\n    // is between the current index and the one before it.\n    const prevSnap = swiper.snapGrid[snapIndex - 1];\n    const currentSnap = swiper.snapGrid[snapIndex];\n    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n      index -= swiper.params.slidesPerGroup;\n    }\n  }\n  index = Math.max(index, 0);\n  index = Math.min(index, swiper.slidesGrid.length - 1);\n  return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import { elementChildren, nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n  const swiper = this;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  const slidesPerView = 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 (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n        swiper.loopFix();\n        slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\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 = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n      nextTick(() => {\n        swiper.slideTo(slideToIndex);\n      });\n    } else {\n      swiper.slideTo(slideToIndex);\n    }\n  } else {\n    swiper.slideTo(slideToIndex);\n  }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n  loopCreate,\n  loopFix,\n  loopDestroy\n};","import { elementChildren } from '../../shared/utils.js';\nexport default function loopCreate(slideRealIndex) {\n  const swiper = this;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n  const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n  slides.forEach((el, index) => {\n    el.setAttribute('data-swiper-slide-index', index);\n  });\n  swiper.loopFix({\n    slideRealIndex,\n    direction: params.centeredSlides ? undefined : 'next'\n  });\n}","export default function loopFix({\n  slideRealIndex,\n  slideTo = true,\n  direction,\n  setTranslate,\n  activeSlideIndex,\n  byController,\n  byMousewheel\n} = {}) {\n  const swiper = this;\n  if (!swiper.params.loop) return;\n  swiper.emit('beforeLoopFix');\n  const {\n    slides,\n    allowSlidePrev,\n    allowSlideNext,\n    slidesEl,\n    params\n  } = swiper;\n  swiper.allowSlidePrev = true;\n  swiper.allowSlideNext = true;\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  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n  let loopedSlides = params.loopedSlides || slidesPerView;\n  if (loopedSlides % params.slidesPerGroup !== 0) {\n    loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n  }\n  swiper.loopedSlides = loopedSlides;\n  const prependSlidesIndexes = [];\n  const appendSlidesIndexes = [];\n  let activeIndex = swiper.activeIndex;\n  if (typeof activeSlideIndex === 'undefined') {\n    activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n  } else {\n    activeIndex = activeSlideIndex;\n  }\n  const isNext = direction === 'next' || !direction;\n  const isPrev = direction === 'prev' || !direction;\n  let slidesPrepended = 0;\n  let slidesAppended = 0;\n  // prepend last slides before start\n  if (activeSlideIndex < loopedSlides) {\n    slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\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 = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\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  if (isPrev) {\n    prependSlidesIndexes.forEach(index => {\n      swiper.slides[index].swiperLoopMoveDOM = true;\n      slidesEl.prepend(swiper.slides[index]);\n      swiper.slides[index].swiperLoopMoveDOM = false;\n    });\n  }\n  if (isNext) {\n    appendSlidesIndexes.forEach(index => {\n      swiper.slides[index].swiperLoopMoveDOM = true;\n      slidesEl.append(swiper.slides[index]);\n      swiper.slides[index].swiperLoopMoveDOM = false;\n    });\n  }\n  swiper.recalcSlides();\n  if (params.slidesPerView === 'auto') {\n    swiper.updateSlides();\n  }\n  if (params.watchSlidesProgress) {\n    swiper.updateSlidesOffset();\n  }\n  if (slideTo) {\n    if (prependSlidesIndexes.length > 0 && isPrev) {\n      if (typeof slideRealIndex === 'undefined') {\n        const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n        const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n        const diff = newSlideTranslate - currentSlideTranslate;\n        if (byMousewheel) {\n          swiper.setTranslate(swiper.translate - diff);\n        } else {\n          swiper.slideTo(activeIndex + slidesPrepended, 0, false, true);\n          if (setTranslate) {\n            swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n          }\n        }\n      } else {\n        if (setTranslate) {\n          swiper.slideToLoop(slideRealIndex, 0, false, true);\n        }\n      }\n    } else if (appendSlidesIndexes.length > 0 && isNext) {\n      if (typeof slideRealIndex === 'undefined') {\n        const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n        const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n        const diff = newSlideTranslate - currentSlideTranslate;\n        if (byMousewheel) {\n          swiper.setTranslate(swiper.translate - diff);\n        } else {\n          swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n          if (setTranslate) {\n            swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n          }\n        }\n      } else {\n        swiper.slideToLoop(slideRealIndex, 0, false, true);\n      }\n    }\n  }\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n  if (swiper.controller && swiper.controller.control && !byController) {\n    const loopParams = {\n      slideRealIndex,\n      slideTo: false,\n      direction,\n      setTranslate,\n      activeSlideIndex,\n      byController: true\n    };\n    if (Array.isArray(swiper.controller.control)) {\n      swiper.controller.control.forEach(c => {\n        if (!c.destroyed && c.params.loop) c.loopFix(loopParams);\n      });\n    } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n      swiper.controller.control.loopFix(loopParams);\n    }\n  }\n  swiper.emit('loopFix');\n}","export default function loopDestroy() {\n  const swiper = this;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n  swiper.recalcSlides();\n  const newSlidesOrder = [];\n  swiper.slides.forEach(slideEl => {\n    const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n    newSlidesOrder[index] = slideEl;\n  });\n  swiper.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}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n  setGrabCursor,\n  unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n  const swiper = this;\n  if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n  if (swiper.isElement) {\n    swiper.__preventObserver__ = true;\n  }\n  el.style.cursor = 'move';\n  el.style.cursor = moving ? 'grabbing' : 'grab';\n  if (swiper.isElement) {\n    requestAnimationFrame(() => {\n      swiper.__preventObserver__ = false;\n    });\n  }\n}","export default function unsetGrabCursor() {\n  const swiper = this;\n  if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n    return;\n  }\n  if (swiper.isElement) {\n    swiper.__preventObserver__ = true;\n  }\n  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n  if (swiper.isElement) {\n    requestAnimationFrame(() => {\n      swiper.__preventObserver__ = false;\n    });\n  }\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}\nexport default function onTouchStart(event) {\n  const swiper = this;\n  const document = getDocument();\n  const window = getWindow();\n  const data = swiper.touchEventsData;\n  data.evCache.push(event);\n  const {\n    params,\n    touches,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && event.pointerType === 'mouse') return;\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  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  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${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 (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n    swiper.allowClick = true;\n    return;\n  }\n  if (params.swipeHandler) {\n    if (!targetEl.closest(params.swipeHandler)) return;\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 (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n    if (edgeSwipeDetection === 'prevent') {\n      event.preventDefault();\n    } else {\n      return;\n    }\n  }\n  Object.assign(data, {\n    isTouched: true,\n    isMoved: false,\n    allowTouchCallbacks: true,\n    isScrolling: undefined,\n    startMoving: undefined\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 (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {\n    document.activeElement.blur();\n  }\n  const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n  if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n    e.preventDefault();\n  }\n  if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n    swiper.freeMode.onTouchStart();\n  }\n  swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n  const document = getDocument();\n  const swiper = this;\n  const data = swiper.touchEventsData;\n  const {\n    params,\n    touches,\n    rtlTranslate: rtl,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && event.pointerType === 'mouse') return;\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  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  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        prevX: swiper.touches.currentX,\n        prevY: swiper.touches.currentY,\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 (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n        data.isTouched = false;\n        data.isMoved = false;\n        return;\n      }\n    } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\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  touches.currentX = pageX;\n  touches.currentY = pageY;\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) return;\n  if (typeof data.isScrolling === 'undefined') {\n    let touchAngle;\n    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\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() ? touchAngle > params.touchAngle : 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 (data.isScrolling || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\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  let diff = swiper.isHorizontal() ? diffX : diffY;\n  let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n  if (params.oneWayMovement) {\n    diff = Math.abs(diff) * (rtl ? 1 : -1);\n    touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n  }\n  touches.diff = diff;\n  diff *= params.touchRatio;\n  if (rtl) {\n    diff = -diff;\n    touchesDiff = -touchesDiff;\n  }\n  const prevTouchesDirection = swiper.touchesDirection;\n  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n  swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n  const isLoop = swiper.params.loop && !params.cssMode;\n  if (!data.isMoved) {\n    if (isLoop) {\n      swiper.loopFix({\n        direction: swiper.swipeDirection\n      });\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  let loopFixed;\n  if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && Math.abs(diff) >= 1) {\n    // need another loop fix\n    swiper.loopFix({\n      direction: swiper.swipeDirection,\n      setTranslate: true\n    });\n    loopFixed = true;\n  }\n  swiper.emit('sliderMove', e);\n  data.isMoved = true;\n  data.currentTranslate = diff + data.startTranslate;\n  let disableParentSwiper = true;\n  let resistanceRatio = params.resistanceRatio;\n  if (params.touchReleaseOnEdges) {\n    resistanceRatio = 0;\n  }\n  if (diff > 0) {\n    if (isLoop && !loopFixed && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : swiper.minTranslate())) {\n      swiper.loopFix({\n        direction: 'prev',\n        setTranslate: true,\n        activeSlideIndex: 0\n      });\n    }\n    if (data.currentTranslate > swiper.minTranslate()) {\n      disableParentSwiper = false;\n      if (params.resistance) {\n        data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n      }\n    }\n  } else if (diff < 0) {\n    if (isLoop && !loopFixed && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : swiper.maxTranslate())) {\n      swiper.loopFix({\n        direction: 'next',\n        setTranslate: true,\n        activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n      });\n    }\n    if (data.currentTranslate < swiper.maxTranslate()) {\n      disableParentSwiper = false;\n      if (params.resistance) {\n        data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n      }\n    }\n  }\n  if (disableParentSwiper) {\n    e.preventedByNestedSwiper = true;\n  }\n\n  // Directions locks\n  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n    data.currentTranslate = data.startTranslate;\n  }\n  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\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() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n        return;\n      }\n    } else {\n      data.currentTranslate = data.startTranslate;\n      return;\n    }\n  }\n  if (!params.followFinger || params.cssMode) return;\n\n  // Update active index in free mode\n  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\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}","import { now, nextTick } from '../../shared/utils.js';\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)) {\n    const proceed = event.type === 'pointercancel' && (swiper.browser.isSafari || swiper.browser.isWebView);\n    if (!proceed) {\n      return;\n    }\n  }\n  const {\n    params,\n    touches,\n    rtlTranslate: rtl,\n    slidesGrid,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && event.pointerType === 'mouse') return;\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 (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\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  data.lastClickTime = now();\n  nextTick(() => {\n    if (!swiper.destroyed) swiper.allowClick = true;\n  });\n  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\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  let currentPos;\n  if (params.followFinger) {\n    currentPos = rtl ? swiper.translate : -swiper.translate;\n  } else {\n    currentPos = -data.currentTranslate;\n  }\n  if (params.cssMode) {\n    return;\n  }\n  if (swiper.params.freeMode && params.freeMode.enabled) {\n    swiper.freeMode.onTouchEnd({\n      currentPos\n    });\n    return;\n  }\n\n  // Find current slide\n  let stopIndex = 0;\n  let groupSize = swiper.slidesSizesGrid[0];\n  for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\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  let rewindFirstIndex = null;\n  let rewindLastIndex = null;\n  if (params.rewind) {\n    if (swiper.isBeginning) {\n      rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : 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) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n    }\n    if (swiper.swipeDirection === 'prev') {\n      if (ratio > 1 - params.longSwipesRatio) {\n        swiper.slideTo(stopIndex + increment);\n      } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\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 = swiper.navigation && (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}","export default function onResize() {\n  const swiper = this;\n  const {\n    params,\n    el\n  } = swiper;\n  if (el && el.offsetWidth === 0) return;\n\n  // Breakpoints\n  if (params.breakpoints) {\n    swiper.setBreakpoint();\n  }\n\n  // Save locks\n  const {\n    allowSlideNext,\n    allowSlidePrev,\n    snapGrid\n  } = swiper;\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n  // Disable locks on resize\n  swiper.allowSlideNext = true;\n  swiper.allowSlidePrev = true;\n  swiper.updateSize();\n  swiper.updateSlides();\n  swiper.updateSlidesClasses();\n  const isVirtualLoop = isVirtual && params.loop;\n  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\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  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n    clearTimeout(swiper.autoplay.resizeTimeout);\n    swiper.autoplay.resizeTimeout = setTimeout(() => {\n      if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n        swiper.autoplay.resume();\n      }\n    }, 500);\n  }\n  // Return locks after resize\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n    swiper.checkOverflow();\n  }\n}","export default function onClick(e) {\n  const swiper = this;\n  if (!swiper.enabled) return;\n  if (!swiper.allowClick) {\n    if (swiper.params.preventClicks) e.preventDefault();\n    if (swiper.params.preventClicksPropagation && swiper.animating) {\n      e.stopPropagation();\n      e.stopImmediatePropagation();\n    }\n  }\n}","export default function onScroll() {\n  const swiper = this;\n  const {\n    wrapperEl,\n    rtlTranslate,\n    enabled\n  } = 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  swiper.updateActiveIndex();\n  swiper.updateSlidesClasses();\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  swiper.emit('setTranslate', swiper.translate, false);\n}","import { processLazyPreloader } from '../../shared/process-lazy-preloader.js';\nexport default function onLoad(e) {\n  const swiper = this;\n  processLazyPreloader(swiper, e.target);\n  if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n    return;\n  }\n  swiper.update();\n}","import { getDocument } from 'ssr-window';\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';\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nconst events = (swiper, method) => {\n  const document = getDocument();\n  const {\n    params,\n    el,\n    wrapperEl,\n    device\n  } = 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, {\n    passive: false\n  });\n  document[domMethod]('pointermove', swiper.onTouchMove, {\n    passive: false,\n    capture\n  });\n  document[domMethod]('pointerup', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointercancel', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointerout', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointerleave', swiper.onTouchEnd, {\n    passive: true\n  });\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](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n  } else {\n    swiper[swiperMethod]('observerUpdate', onResize, true);\n  }\n\n  // Images loader\n  el[domMethod]('load', swiper.onLoad, {\n    capture: true\n  });\n};\nfunction attachEvents() {\n  const swiper = this;\n  const document = getDocument();\n  const {\n    params\n  } = swiper;\n  swiper.onTouchStart = onTouchStart.bind(swiper);\n  swiper.onTouchMove = onTouchMove.bind(swiper);\n  swiper.onTouchEnd = onTouchEnd.bind(swiper);\n  if (params.cssMode) {\n    swiper.onScroll = onScroll.bind(swiper);\n  }\n  swiper.onClick = onClick.bind(swiper);\n  swiper.onLoad = onLoad.bind(swiper);\n  if (!dummyEventAttached) {\n    document.addEventListener('touchstart', dummyEventListener);\n    dummyEventAttached = true;\n  }\n  events(swiper, 'on');\n}\nfunction detachEvents() {\n  const swiper = this;\n  events(swiper, 'off');\n}\nexport default {\n  attachEvents,\n  detachEvents\n};","import { extend } from '../../shared/utils.js';\nconst isGridEnabled = (swiper, params) => {\n  return swiper.grid && params.grid && params.grid.rows > 1;\n};\nexport default function setBreakpoint() {\n  const swiper = this;\n  const {\n    realIndex,\n    initialized,\n    params,\n    el\n  } = 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  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\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  const wasEnabled = params.enabled;\n  if (wasMultiRow && !isMultiRow) {\n    el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n    swiper.emitContainerClasses();\n  } else if (!wasMultiRow && isMultiRow) {\n    el.classList.add(`${params.containerModifierClass}grid`);\n    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\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  const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n  const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n  if (directionChanged && initialized) {\n    swiper.changeDirection();\n  }\n  extend(swiper.params, breakpointParams);\n  const isEnabled = swiper.params.enabled;\n  Object.assign(swiper, {\n    allowTouchMove: swiper.params.allowTouchMove,\n    allowSlideNext: swiper.params.allowSlideNext,\n    allowSlidePrev: swiper.params.allowSlidePrev\n  });\n  if (wasEnabled && !isEnabled) {\n    swiper.disable();\n  } else if (!wasEnabled && isEnabled) {\n    swiper.enable();\n  }\n  swiper.currentBreakpoint = breakpoint;\n  swiper.emit('_beforeBreakpoint', breakpointParams);\n  if (needsReLoop && initialized) {\n    swiper.loopDestroy();\n    swiper.loopCreate(realIndex);\n    swiper.updateSlides();\n  }\n  swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n  setBreakpoint,\n  getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n  if (!breakpoints || base === 'container' && !containerEl) return undefined;\n  let breakpoint = false;\n  const window = getWindow();\n  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n  const points = Object.keys(breakpoints).map(point => {\n    if (typeof point === 'string' && point.indexOf('@') === 0) {\n      const minRatio = parseFloat(point.substr(1));\n      const value = currentHeight * minRatio;\n      return {\n        value,\n        point\n      };\n    }\n    return {\n      value: point,\n      point\n    };\n  });\n  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n  for (let i = 0; i < points.length; i += 1) {\n    const {\n      point,\n      value\n    } = points[i];\n    if (base === 'window') {\n      if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n        breakpoint = point;\n      }\n    } else if (value <= containerEl.clientWidth) {\n      breakpoint = point;\n    }\n  }\n  return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n  addClasses,\n  removeClasses\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}\nexport default function addClasses() {\n  const swiper = this;\n  const {\n    classNames,\n    params,\n    rtl,\n    el,\n    device\n  } = swiper;\n  // prettier-ignore\n  const suffixes = prepareClasses(['initialized', params.direction, {\n    'free-mode': swiper.params.freeMode && params.freeMode.enabled\n  }, {\n    'autoheight': params.autoHeight\n  }, {\n    'rtl': rtl\n  }, {\n    'grid': params.grid && params.grid.rows > 1\n  }, {\n    'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n  }, {\n    'android': device.android\n  }, {\n    'ios': device.ios\n  }, {\n    'css-mode': params.cssMode\n  }, {\n    'centered': params.cssMode && params.centeredSlides\n  }, {\n    'watch-progress': params.watchSlidesProgress\n  }], params.containerModifierClass);\n  classNames.push(...suffixes);\n  el.classList.add(...classNames);\n  swiper.emitContainerClasses();\n}","export default function removeClasses() {\n  const swiper = this;\n  const {\n    el,\n    classNames\n  } = swiper;\n  el.classList.remove(...classNames);\n  swiper.emitContainerClasses();\n}","function checkOverflow() {\n  const swiper = this;\n  const {\n    isLocked: wasLocked,\n    params\n  } = swiper;\n  const {\n    slidesOffsetBefore\n  } = params;\n  if (slidesOffsetBefore) {\n    const lastSlideIndex = swiper.slides.length - 1;\n    const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n    swiper.isLocked = swiper.size > lastSlideRightEdge;\n  } else {\n    swiper.isLocked = swiper.snapGrid.length === 1;\n  }\n  if (params.allowSlideNext === true) {\n    swiper.allowSlideNext = !swiper.isLocked;\n  }\n  if (params.allowSlidePrev === true) {\n    swiper.allowSlidePrev = !swiper.isLocked;\n  }\n  if (wasLocked && wasLocked !== swiper.isLocked) {\n    swiper.isEnd = false;\n  }\n  if (wasLocked !== swiper.isLocked) {\n    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n  }\n}\nexport default {\n  checkOverflow\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n  return function extendParams(obj = {}) {\n    const moduleParamName = Object.keys(obj)[0];\n    const moduleParams = obj[moduleParamName];\n    if (typeof moduleParams !== 'object' || moduleParams === null) {\n      extend(allModulesParams, obj);\n      return;\n    }\n    if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n      params[moduleParamName] = {\n        auto: true\n      };\n    }\n    if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n      extend(allModulesParams, obj);\n      return;\n    }\n    if (params[moduleParamName] === true) {\n      params[moduleParamName] = {\n        enabled: true\n      };\n    }\n    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n      params[moduleParamName].enabled = true;\n    }\n    if (!params[moduleParamName]) params[moduleParamName] = {\n      enabled: false\n    };\n    extend(allModulesParams, obj);\n  };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { extend, deleteProps, createElement, elementChildren, elementStyle, elementIndex } 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';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\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';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nimport { processLazyPreloader, preload } from '../shared/process-lazy-preloader.js';\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};\nconst extendedDefaults = {};\nclass Swiper {\n  constructor(...args) {\n    let el;\n    let params;\n    if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n      params = args[0];\n    } else {\n      [el, params] = args;\n    }\n    if (!params) params = {};\n    params = extend({}, params);\n    if (el && !params.el) params.el = el;\n    const document = getDocument();\n    if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n      const swipers = [];\n      document.querySelectorAll(params.el).forEach(containerEl => {\n        const newParams = extend({}, params, {\n          el: containerEl\n        });\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({\n      userAgent: params.userAgent\n    });\n    swiper.browser = getBrowser();\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    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      // Classes\n      classNames: [],\n      // Slides\n      slides: [],\n      slidesGrid: [],\n      snapGrid: [],\n      slidesSizesGrid: [],\n      // isDirection\n      isHorizontal() {\n        return swiper.params.direction === 'horizontal';\n      },\n      isVertical() {\n        return swiper.params.direction === 'vertical';\n      },\n      // Indexes\n      activeIndex: 0,\n      realIndex: 0,\n      //\n      isBeginning: true,\n      isEnd: false,\n      // Props\n      translate: 0,\n      previousTranslate: 0,\n      progress: 0,\n      velocity: 0,\n      animating: false,\n      cssOverflowAdjustment() {\n        // Returns 0 unless `translate` is > 2**23\n        // Should be subtracted from css values to prevent overflow\n        return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n      },\n      // Locks\n      allowSlideNext: swiper.params.allowSlideNext,\n      allowSlidePrev: swiper.params.allowSlidePrev,\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: 0,\n        clickTimeout: undefined,\n        // Velocities\n        velocities: [],\n        allowMomentumBounce: undefined,\n        startMoving: undefined,\n        evCache: []\n      },\n      // Clicks\n      allowClick: true,\n      // Touches\n      allowTouchMove: swiper.params.allowTouchMove,\n      touches: {\n        startX: 0,\n        startY: 0,\n        currentX: 0,\n        currentY: 0,\n        diff: 0\n      },\n      // Images\n      imagesToLoad: [],\n      imagesLoaded: 0\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  getSlideIndex(slideEl) {\n    const {\n      slidesEl,\n      params\n    } = this;\n    const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n    const firstSlideIndex = elementIndex(slides[0]);\n    return elementIndex(slideEl) - firstSlideIndex;\n  }\n  getSlideIndexByData(index) {\n    return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n  }\n  recalcSlides() {\n    const swiper = this;\n    const {\n      slidesEl,\n      params\n    } = swiper;\n    swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\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  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  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  emitContainerClasses() {\n    const swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    const cls = swiper.el.className.split(' ').filter(className => {\n      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n    });\n    swiper.emit('_containerClasses', cls.join(' '));\n  }\n  getSlideClasses(slideEl) {\n    const swiper = this;\n    if (swiper.destroyed) return '';\n    return slideEl.className.split(' ').filter(className => {\n      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n    }).join(' ');\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({\n        slideEl,\n        classNames\n      });\n      swiper.emit('_slideClass', slideEl, classNames);\n    });\n    swiper.emit('_slideClasses', updates);\n  }\n  slidesPerViewDynamic(view = 'current', exact = false) {\n    const swiper = this;\n    const {\n      params,\n      slides,\n      slidesGrid,\n      slidesSizesGrid,\n      size: swiperSize,\n      activeIndex\n    } = 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 ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : 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  update() {\n    const swiper = this;\n    if (!swiper || swiper.destroyed) return;\n    const {\n      snapGrid,\n      params\n    } = swiper;\n    // Breakpoints\n    if (params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n    [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n      if (imageEl.complete) {\n        processLazyPreloader(swiper, imageEl);\n      }\n    });\n    swiper.updateSize();\n    swiper.updateSlides();\n    swiper.updateProgress();\n    swiper.updateSlidesClasses();\n    function setTranslate() {\n      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\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 ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n        const slides = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n        translated = swiper.slideTo(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  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 (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n      return swiper;\n    }\n    swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n    swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n    swiper.emitContainerClasses();\n    swiper.params.direction = newDirection;\n    swiper.slides.forEach(slideEl => {\n      if (newDirection === 'vertical') {\n        slideEl.style.width = '';\n      } else {\n        slideEl.style.height = '';\n      }\n    });\n    swiper.emit('changeDirection');\n    if (needUpdate) swiper.update();\n    return swiper;\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  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    el.swiper = swiper;\n    if (el.shadowEl) {\n      swiper.isElement = true;\n    }\n    const getWrapperSelector = () => {\n      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\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    Object.assign(swiper, {\n      el,\n      wrapperEl,\n      slidesEl: swiper.isElement ? el : wrapperEl,\n      mounted: true,\n      // RTL\n      rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n      wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n    });\n    return true;\n  }\n  init(el) {\n    const swiper = this;\n    if (swiper.initialized) return swiper;\n    const mounted = swiper.mount(el);\n    if (mounted === false) return swiper;\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    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(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\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    [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n      if (imageEl.complete) {\n        processLazyPreloader(swiper, imageEl);\n      } else {\n        imageEl.addEventListener('load', e => {\n          processLazyPreloader(swiper, e.target);\n        });\n      }\n    });\n    preload(swiper);\n\n    // Init Flag\n    swiper.initialized = true;\n    preload(swiper);\n\n    // Emit\n    swiper.emit('init');\n    swiper.emit('afterInit');\n    return swiper;\n  }\n  destroy(deleteInstance = true, cleanStyles = true) {\n    const swiper = this;\n    const {\n      params,\n      el,\n      wrapperEl,\n      slides\n    } = swiper;\n    if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n      return null;\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(params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n          slideEl.removeAttribute('style');\n          slideEl.removeAttribute('data-swiper-slide-index');\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    if (deleteInstance !== false) {\n      swiper.el.swiper = null;\n      deleteProps(swiper);\n    }\n    swiper.destroyed = true;\n    return null;\n  }\n  static extendDefaults(newDefaults) {\n    extend(extendedDefaults, newDefaults);\n  }\n  static get extendedDefaults() {\n    return extendedDefaults;\n  }\n  static get defaults() {\n    return defaults;\n  }\n  static installModule(mod) {\n    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n    const modules = Swiper.prototype.__modules__;\n    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n      modules.push(mod);\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}\nObject.keys(prototypes).forEach(prototypeGroup => {\n  Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n  });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { getWindow } from 'ssr-window';\nexport default function Resize({\n  swiper,\n  on,\n  emit\n}) {\n  const window = getWindow();\n  let observer = null;\n  let animationFrame = null;\n  const resizeHandler = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    emit('beforeResize');\n    emit('resize');\n  };\n  const createObserver = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    observer = new ResizeObserver(entries => {\n      animationFrame = window.requestAnimationFrame(() => {\n        const {\n          width,\n          height\n        } = swiper;\n        let newWidth = width;\n        let newHeight = height;\n        entries.forEach(({\n          contentBoxSize,\n          contentRect,\n          target\n        }) => {\n          if (target && target !== swiper.el) return;\n          newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n          newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n        });\n        if (newWidth !== width || newHeight !== height) {\n          resizeHandler();\n        }\n      });\n    });\n    observer.observe(swiper.el);\n  };\n  const removeObserver = () => {\n    if (animationFrame) {\n      window.cancelAnimationFrame(animationFrame);\n    }\n    if (observer && observer.unobserve && swiper.el) {\n      observer.unobserve(swiper.el);\n      observer = null;\n    }\n  };\n  const orientationChangeHandler = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    emit('orientationchange');\n  };\n  on('init', () => {\n    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n      createObserver();\n      return;\n    }\n    window.addEventListener('resize', resizeHandler);\n    window.addEventListener('orientationchange', orientationChangeHandler);\n  });\n  on('destroy', () => {\n    removeObserver();\n    window.removeEventListener('resize', resizeHandler);\n    window.removeEventListener('orientationchange', orientationChangeHandler);\n  });\n}","import { getWindow } from 'ssr-window';\nimport { elementParents } from '../../../shared/utils.js';\nexport default function Observer({\n  swiper,\n  extendParams,\n  on,\n  emit\n}) {\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 (swiper.__preventObserver__) return;\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      if (window.requestAnimationFrame) {\n        window.requestAnimationFrame(observerUpdate);\n      } else {\n        window.setTimeout(observerUpdate, 0);\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    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, {\n      attributes: false\n    });\n  };\n  const destroy = () => {\n    observers.forEach(observer => {\n      observer.disconnect();\n    });\n    observers.splice(0, observers.length);\n  };\n  extendParams({\n    observer: false,\n    observeParents: false,\n    observeSlideChildren: false\n  });\n  on('init', init);\n  on('destroy', destroy);\n}","export default {\n  init: true,\n  direction: 'horizontal',\n  oneWayMovement: false,\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  // Overrides\n  width: null,\n  height: null,\n  //\n  preventInteractionOnTransition: false,\n  // ssr\n  userAgent: null,\n  url: null,\n  // To support iOS's swipe-to-go-back gesture (when being used in-app).\n  edgeSwipeDetection: false,\n  edgeSwipeThreshold: 20,\n  // Autoheight\n  autoHeight: false,\n  // Set wrapper width\n  setWrapperSize: false,\n  // Virtual Translate\n  virtualTranslate: false,\n  // Effects\n  effect: 'slide',\n  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n  // Breakpoints\n  breakpoints: undefined,\n  breakpointsBase: 'window',\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,\n  // in px\n  slidesOffsetAfter: 0,\n  // in px\n  normalizeSlideIndex: true,\n  centerInsufficientSlides: false,\n  // Disable swiper and hide navigation when container not overflow\n  watchOverflow: true,\n  // Round length\n  roundLengths: false,\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  // Unique Navigation Elements\n  uniqueNavElements: true,\n  // Resistance\n  resistance: true,\n  resistanceRatio: 0.85,\n  // Progress\n  watchSlidesProgress: false,\n  // Cursor\n  grabCursor: false,\n  // Clicks\n  preventClicks: true,\n  preventClicksPropagation: true,\n  slideToClickedSlide: false,\n  // loop\n  loop: false,\n  loopedSlides: null,\n  loopPreventsSliding: true,\n  // rewind\n  rewind: false,\n  // Swiping/no swiping\n  allowSlidePrev: true,\n  allowSlideNext: true,\n  swipeHandler: null,\n  // '.swipe-handler',\n  noSwiping: true,\n  noSwipingClass: 'swiper-no-swiping',\n  noSwipingSelector: null,\n  // Passive Listeners\n  passiveListeners: true,\n  maxBackfaceHiddenSlides: 10,\n  // NS\n  containerModifierClass: 'swiper-',\n  // 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  lazyPreloadPrevNext: 0,\n  // Callbacks\n  runCallbacksOnInit: true,\n  // Internals\n  _emitClasses: false\n};"],"names":["paramsList","updateSwiper","swiper","slides","passedParams","changedParams","nextEl","prevEl","scrollbarEl","paginationEl","updateParams","filter","key","params","currentParams","pagination","navigation","scrollbar","virtual","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","includes","controller","control","el","destroyModule","mod","destroy","isElement","remove","undefined","loop","forEach","enabled","newValue","update","init","document","createElement","classList","add","shadowEl","appendChild","render","updateSize","setTranslate","allowSlideNext","allowSlidePrev","changeDirection","direction","loopDestroy","loopCreate","isObject","o","constructor","Object","prototype","toString","call","slice","extend","target","src","noExtend","keys","indexOf","length","__swiper__","needsNavigation","needsPagination","needsScrollbar","attrToProp","attrName","replace","l","toUpperCase","on","events","handler","priority","self","this","eventsListeners","destroyed","method","split","event","once","onceHandler","args","off","__emitterProxy","apply","onAny","eventsAnyListeners","offAny","index","splice","eventHandler","emit","data","context","Array","isArray","unshift","width","height","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","assign","size","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","node","label","parseFloat","getPropertyValue","wrapperEl","slidesEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","previousSlidesLength","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","slideEl","style","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","i","slide","updateSlide","slideStyles","getComputedStyle","currentTransform","transform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","offsetWidth","Math","floor","swiperSlideSize","push","abs","slidesPerGroup","min","slidesPerGroupSkip","max","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","ceil","slidesBefore","slidesAfter","groupSize","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","map","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","contains","maxBackfaceHiddenSlides","updateAutoHeight","speed","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","visibleSlides","activeIndex","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","progress","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","selector","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","realIndex","previousRealIndex","previousSnapIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","getAttribute","initialized","runCallbacksOnInit","updateClickedSlide","e","closest","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getTranslate","axis","virtualTranslate","currentTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","support","smoothScroll","targetPosition","side","scrollTo","behavior","onTranslateToWrapperTransitionEnd","removeEventListener","addEventListener","transitionEmit","step","dir","duration","transitionDuration","transitionStart","transitionEnd","slideTo","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","t","scrollSnapType","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","requestAnimationFrame","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSliding","loopFix","_clientLeft","clientLeft","rewind","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","loopedSlides","getSlideIndex","slideRealIndex","setAttribute","activeSlideIndex","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","swiperLoopMoveDOM","prepend","append","recalcSlides","currentSlideTranslate","diff","touches","loopParams","c","newSlidesOrder","swiperSlideIndex","removeAttribute","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","__preventObserver__","cursor","unsetGrabCursor","onTouchStart","window","touchEventsData","evCache","pointerType","originalEvent","targetEl","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","host","closestElement","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","matches","focusableElements","nodeName","activeElement","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","pointerIndex","findIndex","cachedEv","pointerId","targetTouch","preventedByNestedSwiper","prevX","prevY","touchReleaseOnEdges","targetTouches","diffX","diffY","sqrt","touchAngle","atan2","PI","zoom","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","previousX","previousY","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","startTranslate","evt","CustomEvent","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","loopFixed","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","type","browser","isSafari","isWebView","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","isVirtualLoop","autoplay","running","paused","clearTimeout","resizeTimeout","setTimeout","resume","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","onLoad","dummyEventAttached","dummyEventListener","device","capture","domMethod","swiperMethod","passive","updateOnWindowResize","ios","android","attachEvents","bind","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","prop","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","value","sort","a","b","matchMedia","addClasses","classNames","suffixes","entries","prefix","resultClasses","item","prepareClasses","removeClasses","wasLocked","lastSlideRightEdge","moduleExtendParams","allModulesParams","obj","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","transition","classes","extendedDefaults","Swiper","querySelectorAll","swipers","newParams","userAgent","modules","__modules__","extendParams","swiperParams","defaults","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","setProgress","current","_emitClasses","cls","className","join","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","imageEl","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","element","mounted","querySelector","getWrapperSelector","wrapperClass","trim","getWrapper","createElements","toLowerCase","deleteInstance","cleanStyles","static","newDefaults","module","m","installModule","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","resizeObserver","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","cancelAnimationFrame","unobserve","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","url","uniqueNavElements","passiveListeners","lazyPreloaderClass","lazyPreloadPrevNext"],"sourceRoot":""}