{"version":3,"file":"dep-a43e79c0.mjs","sources":["../../node_modules/ssr-window/ssr-window.esm.js","../../node_modules/dom7/dom7.esm.js","../../node_modules/swiper/shared/dom.js","../../node_modules/swiper/shared/utils.js","../../node_modules/swiper/shared/get-support.js","../../node_modules/swiper/shared/get-device.js","../../node_modules/swiper/shared/get-browser.js","../../node_modules/swiper/core/modules/resize/resize.js","../../node_modules/swiper/core/modules/observer/observer.js","../../node_modules/swiper/core/events-emitter.js","../../node_modules/swiper/core/update/updateSize.js","../../node_modules/swiper/core/update/updateSlides.js","../../node_modules/swiper/core/update/updateAutoHeight.js","../../node_modules/swiper/core/update/updateSlidesOffset.js","../../node_modules/swiper/core/update/updateSlidesProgress.js","../../node_modules/swiper/core/update/updateProgress.js","../../node_modules/swiper/core/update/updateSlidesClasses.js","../../node_modules/swiper/core/update/updateActiveIndex.js","../../node_modules/swiper/core/update/updateClickedSlide.js","../../node_modules/swiper/core/update/index.js","../../node_modules/swiper/core/translate/getTranslate.js","../../node_modules/swiper/core/translate/setTranslate.js","../../node_modules/swiper/core/translate/minTranslate.js","../../node_modules/swiper/core/translate/maxTranslate.js","../../node_modules/swiper/core/translate/translateTo.js","../../node_modules/swiper/core/translate/index.js","../../node_modules/swiper/core/transition/setTransition.js","../../node_modules/swiper/core/transition/transitionEmit.js","../../node_modules/swiper/core/transition/transitionStart.js","../../node_modules/swiper/core/transition/transitionEnd.js","../../node_modules/swiper/core/transition/index.js","../../node_modules/swiper/core/slide/slideTo.js","../../node_modules/swiper/core/slide/slideToLoop.js","../../node_modules/swiper/core/slide/slideNext.js","../../node_modules/swiper/core/slide/slidePrev.js","../../node_modules/swiper/core/slide/slideReset.js","../../node_modules/swiper/core/slide/slideToClosest.js","../../node_modules/swiper/core/slide/slideToClickedSlide.js","../../node_modules/swiper/core/slide/index.js","../../node_modules/swiper/core/loop/loopCreate.js","../../node_modules/swiper/core/loop/loopFix.js","../../node_modules/swiper/core/loop/loopDestroy.js","../../node_modules/swiper/core/loop/index.js","../../node_modules/swiper/core/grab-cursor/setGrabCursor.js","../../node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","../../node_modules/swiper/core/grab-cursor/index.js","../../node_modules/swiper/core/events/onTouchStart.js","../../node_modules/swiper/core/events/onTouchMove.js","../../node_modules/swiper/core/events/onTouchEnd.js","../../node_modules/swiper/core/events/onResize.js","../../node_modules/swiper/core/events/onClick.js","../../node_modules/swiper/core/events/onScroll.js","../../node_modules/swiper/core/events/index.js","../../node_modules/swiper/core/breakpoints/setBreakpoint.js","../../node_modules/swiper/core/breakpoints/getBreakpoint.js","../../node_modules/swiper/core/breakpoints/index.js","../../node_modules/swiper/core/classes/addClasses.js","../../node_modules/swiper/core/classes/removeClasses.js","../../node_modules/swiper/core/classes/index.js","../../node_modules/swiper/core/images/loadImage.js","../../node_modules/swiper/core/images/preloadImages.js","../../node_modules/swiper/core/images/index.js","../../node_modules/swiper/core/check-overflow/index.js","../../node_modules/swiper/core/defaults.js","../../node_modules/swiper/core/moduleExtendParams.js","../../node_modules/swiper/core/core.js","../../node_modules/swiper/modules/virtual/virtual.js","../../node_modules/swiper/modules/keyboard/keyboard.js","../../node_modules/swiper/modules/mousewheel/mousewheel.js","../../node_modules/swiper/shared/create-element-if-not-defined.js","../../node_modules/swiper/modules/navigation/navigation.js","../../node_modules/swiper/shared/classes-to-selector.js","../../node_modules/swiper/modules/pagination/pagination.js","../../node_modules/swiper/modules/scrollbar/scrollbar.js","../../node_modules/swiper/modules/parallax/parallax.js","../../node_modules/swiper/modules/zoom/zoom.js","../../node_modules/swiper/modules/lazy/lazy.js","../../node_modules/swiper/modules/controller/controller.js","../../node_modules/swiper/modules/a11y/a11y.js","../../node_modules/swiper/modules/history/history.js","../../node_modules/swiper/modules/hash-navigation/hash-navigation.js","../../node_modules/swiper/modules/autoplay/autoplay.js","../../node_modules/swiper/modules/thumbs/thumbs.js","../../node_modules/swiper/modules/free-mode/free-mode.js","../../node_modules/swiper/modules/grid/grid.js","../../node_modules/swiper/modules/manipulation/methods/appendSlide.js","../../node_modules/swiper/modules/manipulation/methods/prependSlide.js","../../node_modules/swiper/modules/manipulation/methods/addSlide.js","../../node_modules/swiper/modules/manipulation/methods/removeSlide.js","../../node_modules/swiper/modules/manipulation/methods/removeAllSlides.js","../../node_modules/swiper/modules/manipulation/manipulation.js","../../node_modules/swiper/shared/effect-init.js","../../node_modules/swiper/shared/effect-target.js","../../node_modules/swiper/shared/effect-virtual-transition-end.js","../../node_modules/swiper/modules/effect-fade/effect-fade.js","../../node_modules/swiper/modules/effect-cube/effect-cube.js","../../node_modules/swiper/shared/create-shadow.js","../../node_modules/swiper/modules/effect-flip/effect-flip.js","../../node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","../../node_modules/swiper/modules/effect-creative/effect-creative.js","../../node_modules/swiper/modules/effect-cards/effect-cards.js","../../node_modules/swiper/swiper.esm.js","../../node_modules/swiper/vue/utils.js","../../node_modules/swiper/vue/params-list.js","../../node_modules/swiper/vue/get-params.js","../../node_modules/swiper/vue/init-swiper.js","../../node_modules/swiper/vue/loop.js","../../node_modules/swiper/vue/get-changed-params.js","../../node_modules/swiper/vue/get-children.js","../../node_modules/swiper/vue/update-swiper.js","../../node_modules/swiper/vue/virtual.js","../../node_modules/swiper/vue/swiper.js","../../node_modules/swiper/vue/swiper-slide.js","../../node_modules/swiper/vue/context.js","../../node_modules/swiper/vue/swiper-vue.js","../../src/swiper/swiper.vue"],"sourcesContent":["/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n    return (obj !== null &&\n        typeof obj === 'object' &&\n        'constructor' in obj &&\n        obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n    Object.keys(src).forEach((key) => {\n        if (typeof target[key] === 'undefined')\n            target[key] = src[key];\n        else if (isObject(src[key]) &&\n            isObject(target[key]) &&\n            Object.keys(src[key]).length > 0) {\n            extend(target[key], src[key]);\n        }\n    });\n}\n\nconst ssrDocument = {\n    body: {},\n    addEventListener() { },\n    removeEventListener() { },\n    activeElement: {\n        blur() { },\n        nodeName: '',\n    },\n    querySelector() {\n        return null;\n    },\n    querySelectorAll() {\n        return [];\n    },\n    getElementById() {\n        return null;\n    },\n    createEvent() {\n        return {\n            initEvent() { },\n        };\n    },\n    createElement() {\n        return {\n            children: [],\n            childNodes: [],\n            style: {},\n            setAttribute() { },\n            getElementsByTagName() {\n                return [];\n            },\n        };\n    },\n    createElementNS() {\n        return {};\n    },\n    importNode() {\n        return null;\n    },\n    location: {\n        hash: '',\n        host: '',\n        hostname: '',\n        href: '',\n        origin: '',\n        pathname: '',\n        protocol: '',\n        search: '',\n    },\n};\nfunction getDocument() {\n    const doc = typeof document !== 'undefined' ? document : {};\n    extend(doc, ssrDocument);\n    return doc;\n}\n\nconst ssrWindow = {\n    document: ssrDocument,\n    navigator: {\n        userAgent: '',\n    },\n    location: {\n        hash: '',\n        host: '',\n        hostname: '',\n        href: '',\n        origin: '',\n        pathname: '',\n        protocol: '',\n        search: '',\n    },\n    history: {\n        replaceState() { },\n        pushState() { },\n        go() { },\n        back() { },\n    },\n    CustomEvent: function CustomEvent() {\n        return this;\n    },\n    addEventListener() { },\n    removeEventListener() { },\n    getComputedStyle() {\n        return {\n            getPropertyValue() {\n                return '';\n            },\n        };\n    },\n    Image() { },\n    Date() { },\n    screen: {},\n    setTimeout() { },\n    clearTimeout() { },\n    matchMedia() {\n        return {};\n    },\n    requestAnimationFrame(callback) {\n        if (typeof setTimeout === 'undefined') {\n            callback();\n            return null;\n        }\n        return setTimeout(callback, 0);\n    },\n    cancelAnimationFrame(id) {\n        if (typeof setTimeout === 'undefined') {\n            return;\n        }\n        clearTimeout(id);\n    },\n};\nfunction getWindow() {\n    const win = typeof window !== 'undefined' ? window : {};\n    extend(win, ssrWindow);\n    return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n  const proto = obj.__proto__;\n  Object.defineProperty(obj, '__proto__', {\n    get() {\n      return proto;\n    },\n\n    set(value) {\n      proto.__proto__ = value;\n    }\n\n  });\n}\n\nclass Dom7 extends Array {\n  constructor(items) {\n    if (typeof items === 'number') {\n      super(items);\n    } else {\n      super(...(items || []));\n      makeReactive(this);\n    }\n  }\n\n}\n\nfunction arrayFlat(arr = []) {\n  const res = [];\n  arr.forEach(el => {\n    if (Array.isArray(el)) {\n      res.push(...arrayFlat(el));\n    } else {\n      res.push(el);\n    }\n  });\n  return res;\n}\nfunction arrayFilter(arr, callback) {\n  return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n  const uniqueArray = [];\n\n  for (let i = 0; i < arr.length; i += 1) {\n    if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n  }\n\n  return uniqueArray;\n}\nfunction toCamelCase(string) {\n  return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n  if (typeof selector !== 'string') {\n    return [selector];\n  }\n\n  const a = [];\n  const res = context.querySelectorAll(selector);\n\n  for (let i = 0; i < res.length; i += 1) {\n    a.push(res[i]);\n  }\n\n  return a;\n}\n\nfunction $(selector, context) {\n  const window = getWindow();\n  const document = getDocument();\n  let arr = [];\n\n  if (!context && selector instanceof Dom7) {\n    return selector;\n  }\n\n  if (!selector) {\n    return new Dom7(arr);\n  }\n\n  if (typeof selector === 'string') {\n    const html = selector.trim();\n\n    if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n      let toCreate = 'div';\n      if (html.indexOf('<li') === 0) toCreate = 'ul';\n      if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n      if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n      if (html.indexOf('<tbody') === 0) toCreate = 'table';\n      if (html.indexOf('<option') === 0) toCreate = 'select';\n      const tempParent = document.createElement(toCreate);\n      tempParent.innerHTML = html;\n\n      for (let i = 0; i < tempParent.childNodes.length; i += 1) {\n        arr.push(tempParent.childNodes[i]);\n      }\n    } else {\n      arr = qsa(selector.trim(), context || document);\n    } // arr = qsa(selector, document);\n\n  } else if (selector.nodeType || selector === window || selector === document) {\n    arr.push(selector);\n  } else if (Array.isArray(selector)) {\n    if (selector instanceof Dom7) return selector;\n    arr = selector;\n  }\n\n  return new Dom7(arrayUnique(arr));\n}\n\n$.fn = Dom7.prototype;\n\n// eslint-disable-next-line\n\nfunction addClass(...classes) {\n  const classNames = arrayFlat(classes.map(c => c.split(' ')));\n  this.forEach(el => {\n    el.classList.add(...classNames);\n  });\n  return this;\n}\n\nfunction removeClass(...classes) {\n  const classNames = arrayFlat(classes.map(c => c.split(' ')));\n  this.forEach(el => {\n    el.classList.remove(...classNames);\n  });\n  return this;\n}\n\nfunction toggleClass(...classes) {\n  const classNames = arrayFlat(classes.map(c => c.split(' ')));\n  this.forEach(el => {\n    classNames.forEach(className => {\n      el.classList.toggle(className);\n    });\n  });\n}\n\nfunction hasClass(...classes) {\n  const classNames = arrayFlat(classes.map(c => c.split(' ')));\n  return arrayFilter(this, el => {\n    return classNames.filter(className => el.classList.contains(className)).length > 0;\n  }).length > 0;\n}\n\nfunction attr(attrs, value) {\n  if (arguments.length === 1 && typeof attrs === 'string') {\n    // Get attr\n    if (this[0]) return this[0].getAttribute(attrs);\n    return undefined;\n  } // Set attrs\n\n\n  for (let i = 0; i < this.length; i += 1) {\n    if (arguments.length === 2) {\n      // String\n      this[i].setAttribute(attrs, value);\n    } else {\n      // Object\n      for (const attrName in attrs) {\n        this[i][attrName] = attrs[attrName];\n        this[i].setAttribute(attrName, attrs[attrName]);\n      }\n    }\n  }\n\n  return this;\n}\n\nfunction removeAttr(attr) {\n  for (let i = 0; i < this.length; i += 1) {\n    this[i].removeAttribute(attr);\n  }\n\n  return this;\n}\n\nfunction prop(props, value) {\n  if (arguments.length === 1 && typeof props === 'string') {\n    // Get prop\n    if (this[0]) return this[0][props];\n  } else {\n    // Set props\n    for (let i = 0; i < this.length; i += 1) {\n      if (arguments.length === 2) {\n        // String\n        this[i][props] = value;\n      } else {\n        // Object\n        for (const propName in props) {\n          this[i][propName] = props[propName];\n        }\n      }\n    }\n\n    return this;\n  }\n\n  return this;\n}\n\nfunction data(key, value) {\n  let el;\n\n  if (typeof value === 'undefined') {\n    el = this[0];\n    if (!el) return undefined; // Get value\n\n    if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n      return el.dom7ElementDataStorage[key];\n    }\n\n    const dataKey = el.getAttribute(`data-${key}`);\n\n    if (dataKey) {\n      return dataKey;\n    }\n\n    return undefined;\n  } // Set value\n\n\n  for (let i = 0; i < this.length; i += 1) {\n    el = this[i];\n    if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n    el.dom7ElementDataStorage[key] = value;\n  }\n\n  return this;\n}\n\nfunction removeData(key) {\n  for (let i = 0; i < this.length; i += 1) {\n    const el = this[i];\n\n    if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n      el.dom7ElementDataStorage[key] = null;\n      delete el.dom7ElementDataStorage[key];\n    }\n  }\n}\n\nfunction dataset() {\n  const el = this[0];\n  if (!el) return undefined;\n  const dataset = {}; // eslint-disable-line\n\n  if (el.dataset) {\n    for (const dataKey in el.dataset) {\n      dataset[dataKey] = el.dataset[dataKey];\n    }\n  } else {\n    for (let i = 0; i < el.attributes.length; i += 1) {\n      const attr = el.attributes[i];\n\n      if (attr.name.indexOf('data-') >= 0) {\n        dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n      }\n    }\n  }\n\n  for (const key in dataset) {\n    if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n  }\n\n  return dataset;\n}\n\nfunction val(value) {\n  if (typeof value === 'undefined') {\n    // get value\n    const el = this[0];\n    if (!el) return undefined;\n\n    if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n      const values = [];\n\n      for (let i = 0; i < el.selectedOptions.length; i += 1) {\n        values.push(el.selectedOptions[i].value);\n      }\n\n      return values;\n    }\n\n    return el.value;\n  } // set value\n\n\n  for (let i = 0; i < this.length; i += 1) {\n    const el = this[i];\n\n    if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n      for (let j = 0; j < el.options.length; j += 1) {\n        el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n      }\n    } else {\n      el.value = value;\n    }\n  }\n\n  return this;\n}\n\nfunction value(value) {\n  return this.val(value);\n}\n\nfunction transform(transform) {\n  for (let i = 0; i < this.length; i += 1) {\n    this[i].style.transform = transform;\n  }\n\n  return this;\n}\n\nfunction transition(duration) {\n  for (let i = 0; i < this.length; i += 1) {\n    this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n  }\n\n  return this;\n}\n\nfunction on(...args) {\n  let [eventType, targetSelector, listener, capture] = args;\n\n  if (typeof args[1] === 'function') {\n    [eventType, listener, capture] = args;\n    targetSelector = undefined;\n  }\n\n  if (!capture) capture = false;\n\n  function handleLiveEvent(e) {\n    const target = e.target;\n    if (!target) return;\n    const eventData = e.target.dom7EventData || [];\n\n    if (eventData.indexOf(e) < 0) {\n      eventData.unshift(e);\n    }\n\n    if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n      const parents = $(target).parents(); // eslint-disable-line\n\n      for (let k = 0; k < parents.length; k += 1) {\n        if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n      }\n    }\n  }\n\n  function handleEvent(e) {\n    const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n    if (eventData.indexOf(e) < 0) {\n      eventData.unshift(e);\n    }\n\n    listener.apply(this, eventData);\n  }\n\n  const events = eventType.split(' ');\n  let j;\n\n  for (let i = 0; i < this.length; i += 1) {\n    const el = this[i];\n\n    if (!targetSelector) {\n      for (j = 0; j < events.length; j += 1) {\n        const event = events[j];\n        if (!el.dom7Listeners) el.dom7Listeners = {};\n        if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n        el.dom7Listeners[event].push({\n          listener,\n          proxyListener: handleEvent\n        });\n        el.addEventListener(event, handleEvent, capture);\n      }\n    } else {\n      // Live events\n      for (j = 0; j < events.length; j += 1) {\n        const event = events[j];\n        if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n        if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n        el.dom7LiveListeners[event].push({\n          listener,\n          proxyListener: handleLiveEvent\n        });\n        el.addEventListener(event, handleLiveEvent, capture);\n      }\n    }\n  }\n\n  return this;\n}\n\nfunction off(...args) {\n  let [eventType, targetSelector, listener, capture] = args;\n\n  if (typeof args[1] === 'function') {\n    [eventType, listener, capture] = args;\n    targetSelector = undefined;\n  }\n\n  if (!capture) capture = false;\n  const events = eventType.split(' ');\n\n  for (let i = 0; i < events.length; i += 1) {\n    const event = events[i];\n\n    for (let j = 0; j < this.length; j += 1) {\n      const el = this[j];\n      let handlers;\n\n      if (!targetSelector && el.dom7Listeners) {\n        handlers = el.dom7Listeners[event];\n      } else if (targetSelector && el.dom7LiveListeners) {\n        handlers = el.dom7LiveListeners[event];\n      }\n\n      if (handlers && handlers.length) {\n        for (let k = handlers.length - 1; k >= 0; k -= 1) {\n          const handler = handlers[k];\n\n          if (listener && handler.listener === listener) {\n            el.removeEventListener(event, handler.proxyListener, capture);\n            handlers.splice(k, 1);\n          } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n            el.removeEventListener(event, handler.proxyListener, capture);\n            handlers.splice(k, 1);\n          } else if (!listener) {\n            el.removeEventListener(event, handler.proxyListener, capture);\n            handlers.splice(k, 1);\n          }\n        }\n      }\n    }\n  }\n\n  return this;\n}\n\nfunction once(...args) {\n  const dom = this;\n  let [eventName, targetSelector, listener, capture] = args;\n\n  if (typeof args[1] === 'function') {\n    [eventName, listener, capture] = args;\n    targetSelector = undefined;\n  }\n\n  function onceHandler(...eventArgs) {\n    listener.apply(this, eventArgs);\n    dom.off(eventName, targetSelector, onceHandler, capture);\n\n    if (onceHandler.dom7proxy) {\n      delete onceHandler.dom7proxy;\n    }\n  }\n\n  onceHandler.dom7proxy = listener;\n  return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n  const window = getWindow();\n  const events = args[0].split(' ');\n  const eventData = args[1];\n\n  for (let i = 0; i < events.length; i += 1) {\n    const event = events[i];\n\n    for (let j = 0; j < this.length; j += 1) {\n      const el = this[j];\n\n      if (window.CustomEvent) {\n        const evt = new window.CustomEvent(event, {\n          detail: eventData,\n          bubbles: true,\n          cancelable: true\n        });\n        el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n        el.dispatchEvent(evt);\n        el.dom7EventData = [];\n        delete el.dom7EventData;\n      }\n    }\n  }\n\n  return this;\n}\n\nfunction transitionEnd(callback) {\n  const dom = this;\n\n  function fireCallBack(e) {\n    if (e.target !== this) return;\n    callback.call(this, e);\n    dom.off('transitionend', fireCallBack);\n  }\n\n  if (callback) {\n    dom.on('transitionend', fireCallBack);\n  }\n\n  return this;\n}\n\nfunction animationEnd(callback) {\n  const dom = this;\n\n  function fireCallBack(e) {\n    if (e.target !== this) return;\n    callback.call(this, e);\n    dom.off('animationend', fireCallBack);\n  }\n\n  if (callback) {\n    dom.on('animationend', fireCallBack);\n  }\n\n  return this;\n}\n\nfunction width() {\n  const window = getWindow();\n\n  if (this[0] === window) {\n    return window.innerWidth;\n  }\n\n  if (this.length > 0) {\n    return parseFloat(this.css('width'));\n  }\n\n  return null;\n}\n\nfunction outerWidth(includeMargins) {\n  if (this.length > 0) {\n    if (includeMargins) {\n      const styles = this.styles();\n      return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n    }\n\n    return this[0].offsetWidth;\n  }\n\n  return null;\n}\n\nfunction height() {\n  const window = getWindow();\n\n  if (this[0] === window) {\n    return window.innerHeight;\n  }\n\n  if (this.length > 0) {\n    return parseFloat(this.css('height'));\n  }\n\n  return null;\n}\n\nfunction outerHeight(includeMargins) {\n  if (this.length > 0) {\n    if (includeMargins) {\n      const styles = this.styles();\n      return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n    }\n\n    return this[0].offsetHeight;\n  }\n\n  return null;\n}\n\nfunction offset() {\n  if (this.length > 0) {\n    const window = getWindow();\n    const document = getDocument();\n    const el = this[0];\n    const box = el.getBoundingClientRect();\n    const body = document.body;\n    const clientTop = el.clientTop || body.clientTop || 0;\n    const clientLeft = el.clientLeft || body.clientLeft || 0;\n    const scrollTop = el === window ? window.scrollY : el.scrollTop;\n    const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n    return {\n      top: box.top + scrollTop - clientTop,\n      left: box.left + scrollLeft - clientLeft\n    };\n  }\n\n  return null;\n}\n\nfunction hide() {\n  for (let i = 0; i < this.length; i += 1) {\n    this[i].style.display = 'none';\n  }\n\n  return this;\n}\n\nfunction show() {\n  const window = getWindow();\n\n  for (let i = 0; i < this.length; i += 1) {\n    const el = this[i];\n\n    if (el.style.display === 'none') {\n      el.style.display = '';\n    }\n\n    if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n      // Still not visible\n      el.style.display = 'block';\n    }\n  }\n\n  return this;\n}\n\nfunction styles() {\n  const window = getWindow();\n  if (this[0]) return window.getComputedStyle(this[0], null);\n  return {};\n}\n\nfunction css(props, value) {\n  const window = getWindow();\n  let i;\n\n  if (arguments.length === 1) {\n    if (typeof props === 'string') {\n      // .css('width')\n      if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n    } else {\n      // .css({ width: '100px' })\n      for (i = 0; i < this.length; i += 1) {\n        for (const prop in props) {\n          this[i].style[prop] = props[prop];\n        }\n      }\n\n      return this;\n    }\n  }\n\n  if (arguments.length === 2 && typeof props === 'string') {\n    // .css('width', '100px')\n    for (i = 0; i < this.length; i += 1) {\n      this[i].style[props] = value;\n    }\n\n    return this;\n  }\n\n  return this;\n}\n\nfunction each(callback) {\n  if (!callback) return this;\n  this.forEach((el, index) => {\n    callback.apply(el, [el, index]);\n  });\n  return this;\n}\n\nfunction filter(callback) {\n  const result = arrayFilter(this, callback);\n  return $(result);\n}\n\nfunction html(html) {\n  if (typeof html === 'undefined') {\n    return this[0] ? this[0].innerHTML : null;\n  }\n\n  for (let i = 0; i < this.length; i += 1) {\n    this[i].innerHTML = html;\n  }\n\n  return this;\n}\n\nfunction text(text) {\n  if (typeof text === 'undefined') {\n    return this[0] ? this[0].textContent.trim() : null;\n  }\n\n  for (let i = 0; i < this.length; i += 1) {\n    this[i].textContent = text;\n  }\n\n  return this;\n}\n\nfunction is(selector) {\n  const window = getWindow();\n  const document = getDocument();\n  const el = this[0];\n  let compareWith;\n  let i;\n  if (!el || typeof selector === 'undefined') return false;\n\n  if (typeof selector === 'string') {\n    if (el.matches) return el.matches(selector);\n    if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n    if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n    compareWith = $(selector);\n\n    for (i = 0; i < compareWith.length; i += 1) {\n      if (compareWith[i] === el) return true;\n    }\n\n    return false;\n  }\n\n  if (selector === document) {\n    return el === document;\n  }\n\n  if (selector === window) {\n    return el === window;\n  }\n\n  if (selector.nodeType || selector instanceof Dom7) {\n    compareWith = selector.nodeType ? [selector] : selector;\n\n    for (i = 0; i < compareWith.length; i += 1) {\n      if (compareWith[i] === el) return true;\n    }\n\n    return false;\n  }\n\n  return false;\n}\n\nfunction index() {\n  let child = this[0];\n  let i;\n\n  if (child) {\n    i = 0; // eslint-disable-next-line\n\n    while ((child = child.previousSibling) !== null) {\n      if (child.nodeType === 1) i += 1;\n    }\n\n    return i;\n  }\n\n  return undefined;\n}\n\nfunction eq(index) {\n  if (typeof index === 'undefined') return this;\n  const length = this.length;\n\n  if (index > length - 1) {\n    return $([]);\n  }\n\n  if (index < 0) {\n    const returnIndex = length + index;\n    if (returnIndex < 0) return $([]);\n    return $([this[returnIndex]]);\n  }\n\n  return $([this[index]]);\n}\n\nfunction append(...els) {\n  let newChild;\n  const document = getDocument();\n\n  for (let k = 0; k < els.length; k += 1) {\n    newChild = els[k];\n\n    for (let i = 0; i < this.length; i += 1) {\n      if (typeof newChild === 'string') {\n        const tempDiv = document.createElement('div');\n        tempDiv.innerHTML = newChild;\n\n        while (tempDiv.firstChild) {\n          this[i].appendChild(tempDiv.firstChild);\n        }\n      } else if (newChild instanceof Dom7) {\n        for (let j = 0; j < newChild.length; j += 1) {\n          this[i].appendChild(newChild[j]);\n        }\n      } else {\n        this[i].appendChild(newChild);\n      }\n    }\n  }\n\n  return this;\n}\n\nfunction appendTo(parent) {\n  $(parent).append(this);\n  return this;\n}\n\nfunction prepend(newChild) {\n  const document = getDocument();\n  let i;\n  let j;\n\n  for (i = 0; i < this.length; i += 1) {\n    if (typeof newChild === 'string') {\n      const tempDiv = document.createElement('div');\n      tempDiv.innerHTML = newChild;\n\n      for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n        this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n      }\n    } else if (newChild instanceof Dom7) {\n      for (j = 0; j < newChild.length; j += 1) {\n        this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n      }\n    } else {\n      this[i].insertBefore(newChild, this[i].childNodes[0]);\n    }\n  }\n\n  return this;\n}\n\nfunction prependTo(parent) {\n  $(parent).prepend(this);\n  return this;\n}\n\nfunction insertBefore(selector) {\n  const before = $(selector);\n\n  for (let i = 0; i < this.length; i += 1) {\n    if (before.length === 1) {\n      before[0].parentNode.insertBefore(this[i], before[0]);\n    } else if (before.length > 1) {\n      for (let j = 0; j < before.length; j += 1) {\n        before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n      }\n    }\n  }\n}\n\nfunction insertAfter(selector) {\n  const after = $(selector);\n\n  for (let i = 0; i < this.length; i += 1) {\n    if (after.length === 1) {\n      after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n    } else if (after.length > 1) {\n      for (let j = 0; j < after.length; j += 1) {\n        after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n      }\n    }\n  }\n}\n\nfunction next(selector) {\n  if (this.length > 0) {\n    if (selector) {\n      if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n        return $([this[0].nextElementSibling]);\n      }\n\n      return $([]);\n    }\n\n    if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n    return $([]);\n  }\n\n  return $([]);\n}\n\nfunction nextAll(selector) {\n  const nextEls = [];\n  let el = this[0];\n  if (!el) return $([]);\n\n  while (el.nextElementSibling) {\n    const next = el.nextElementSibling; // eslint-disable-line\n\n    if (selector) {\n      if ($(next).is(selector)) nextEls.push(next);\n    } else nextEls.push(next);\n\n    el = next;\n  }\n\n  return $(nextEls);\n}\n\nfunction prev(selector) {\n  if (this.length > 0) {\n    const el = this[0];\n\n    if (selector) {\n      if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n        return $([el.previousElementSibling]);\n      }\n\n      return $([]);\n    }\n\n    if (el.previousElementSibling) return $([el.previousElementSibling]);\n    return $([]);\n  }\n\n  return $([]);\n}\n\nfunction prevAll(selector) {\n  const prevEls = [];\n  let el = this[0];\n  if (!el) return $([]);\n\n  while (el.previousElementSibling) {\n    const prev = el.previousElementSibling; // eslint-disable-line\n\n    if (selector) {\n      if ($(prev).is(selector)) prevEls.push(prev);\n    } else prevEls.push(prev);\n\n    el = prev;\n  }\n\n  return $(prevEls);\n}\n\nfunction siblings(selector) {\n  return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n  const parents = []; // eslint-disable-line\n\n  for (let i = 0; i < this.length; i += 1) {\n    if (this[i].parentNode !== null) {\n      if (selector) {\n        if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n      } else {\n        parents.push(this[i].parentNode);\n      }\n    }\n  }\n\n  return $(parents);\n}\n\nfunction parents(selector) {\n  const parents = []; // eslint-disable-line\n\n  for (let i = 0; i < this.length; i += 1) {\n    let parent = this[i].parentNode; // eslint-disable-line\n\n    while (parent) {\n      if (selector) {\n        if ($(parent).is(selector)) parents.push(parent);\n      } else {\n        parents.push(parent);\n      }\n\n      parent = parent.parentNode;\n    }\n  }\n\n  return $(parents);\n}\n\nfunction closest(selector) {\n  let closest = this; // eslint-disable-line\n\n  if (typeof selector === 'undefined') {\n    return $([]);\n  }\n\n  if (!closest.is(selector)) {\n    closest = closest.parents(selector).eq(0);\n  }\n\n  return closest;\n}\n\nfunction find(selector) {\n  const foundElements = [];\n\n  for (let i = 0; i < this.length; i += 1) {\n    const found = this[i].querySelectorAll(selector);\n\n    for (let j = 0; j < found.length; j += 1) {\n      foundElements.push(found[j]);\n    }\n  }\n\n  return $(foundElements);\n}\n\nfunction children(selector) {\n  const children = []; // eslint-disable-line\n\n  for (let i = 0; i < this.length; i += 1) {\n    const childNodes = this[i].children;\n\n    for (let j = 0; j < childNodes.length; j += 1) {\n      if (!selector || $(childNodes[j]).is(selector)) {\n        children.push(childNodes[j]);\n      }\n    }\n  }\n\n  return $(children);\n}\n\nfunction remove() {\n  for (let i = 0; i < this.length; i += 1) {\n    if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n  }\n\n  return this;\n}\n\nfunction detach() {\n  return this.remove();\n}\n\nfunction add(...els) {\n  const dom = this;\n  let i;\n  let j;\n\n  for (i = 0; i < els.length; i += 1) {\n    const toAdd = $(els[i]);\n\n    for (j = 0; j < toAdd.length; j += 1) {\n      dom.push(toAdd[j]);\n    }\n  }\n\n  return dom;\n}\n\nfunction empty() {\n  for (let i = 0; i < this.length; i += 1) {\n    const el = this[i];\n\n    if (el.nodeType === 1) {\n      for (let j = 0; j < el.childNodes.length; j += 1) {\n        if (el.childNodes[j].parentNode) {\n          el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n        }\n      }\n\n      el.textContent = '';\n    }\n  }\n\n  return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n  const window = getWindow();\n  let [left, top, duration, easing, callback] = args;\n\n  if (args.length === 4 && typeof easing === 'function') {\n    callback = easing;\n    [left, top, duration, callback, easing] = args;\n  }\n\n  if (typeof easing === 'undefined') easing = 'swing';\n  return this.each(function animate() {\n    const el = this;\n    let currentTop;\n    let currentLeft;\n    let maxTop;\n    let maxLeft;\n    let newTop;\n    let newLeft;\n    let scrollTop; // eslint-disable-line\n\n    let scrollLeft; // eslint-disable-line\n\n    let animateTop = top > 0 || top === 0;\n    let animateLeft = left > 0 || left === 0;\n\n    if (typeof easing === 'undefined') {\n      easing = 'swing';\n    }\n\n    if (animateTop) {\n      currentTop = el.scrollTop;\n\n      if (!duration) {\n        el.scrollTop = top;\n      }\n    }\n\n    if (animateLeft) {\n      currentLeft = el.scrollLeft;\n\n      if (!duration) {\n        el.scrollLeft = left;\n      }\n    }\n\n    if (!duration) return;\n\n    if (animateTop) {\n      maxTop = el.scrollHeight - el.offsetHeight;\n      newTop = Math.max(Math.min(top, maxTop), 0);\n    }\n\n    if (animateLeft) {\n      maxLeft = el.scrollWidth - el.offsetWidth;\n      newLeft = Math.max(Math.min(left, maxLeft), 0);\n    }\n\n    let startTime = null;\n    if (animateTop && newTop === currentTop) animateTop = false;\n    if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n    function render(time = new Date().getTime()) {\n      if (startTime === null) {\n        startTime = time;\n      }\n\n      const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n      const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n      let done;\n      if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n      if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n      if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n        el.scrollTop = newTop;\n        done = true;\n      }\n\n      if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n        el.scrollTop = newTop;\n        done = true;\n      }\n\n      if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n        el.scrollLeft = newLeft;\n        done = true;\n      }\n\n      if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n        el.scrollLeft = newLeft;\n        done = true;\n      }\n\n      if (done) {\n        if (callback) callback();\n        return;\n      }\n\n      if (animateTop) el.scrollTop = scrollTop;\n      if (animateLeft) el.scrollLeft = scrollLeft;\n      window.requestAnimationFrame(render);\n    }\n\n    window.requestAnimationFrame(render);\n  });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n  let [top, duration, easing, callback] = args;\n\n  if (args.length === 3 && typeof easing === 'function') {\n    [top, duration, callback, easing] = args;\n  }\n\n  const dom = this;\n\n  if (typeof top === 'undefined') {\n    if (dom.length > 0) return dom[0].scrollTop;\n    return null;\n  }\n\n  return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n  let [left, duration, easing, callback] = args;\n\n  if (args.length === 3 && typeof easing === 'function') {\n    [left, duration, callback, easing] = args;\n  }\n\n  const dom = this;\n\n  if (typeof left === 'undefined') {\n    if (dom.length > 0) return dom[0].scrollLeft;\n    return null;\n  }\n\n  return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n  const window = getWindow();\n  const els = this;\n  const a = {\n    props: Object.assign({}, initialProps),\n    params: Object.assign({\n      duration: 300,\n      easing: 'swing' // or 'linear'\n\n      /* Callbacks\n      begin(elements)\n      complete(elements)\n      progress(elements, complete, remaining, start, tweenValue)\n      */\n\n    }, initialParams),\n    elements: els,\n    animating: false,\n    que: [],\n\n    easingProgress(easing, progress) {\n      if (easing === 'swing') {\n        return 0.5 - Math.cos(progress * Math.PI) / 2;\n      }\n\n      if (typeof easing === 'function') {\n        return easing(progress);\n      }\n\n      return progress;\n    },\n\n    stop() {\n      if (a.frameId) {\n        window.cancelAnimationFrame(a.frameId);\n      }\n\n      a.animating = false;\n      a.elements.each(el => {\n        const element = el;\n        delete element.dom7AnimateInstance;\n      });\n      a.que = [];\n    },\n\n    done(complete) {\n      a.animating = false;\n      a.elements.each(el => {\n        const element = el;\n        delete element.dom7AnimateInstance;\n      });\n      if (complete) complete(els);\n\n      if (a.que.length > 0) {\n        const que = a.que.shift();\n        a.animate(que[0], que[1]);\n      }\n    },\n\n    animate(props, params) {\n      if (a.animating) {\n        a.que.push([props, params]);\n        return a;\n      }\n\n      const elements = []; // Define & Cache Initials & Units\n\n      a.elements.each((el, index) => {\n        let initialFullValue;\n        let initialValue;\n        let unit;\n        let finalValue;\n        let finalFullValue;\n        if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n        elements[index] = {\n          container: el\n        };\n        Object.keys(props).forEach(prop => {\n          initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n          initialValue = parseFloat(initialFullValue);\n          unit = initialFullValue.replace(initialValue, '');\n          finalValue = parseFloat(props[prop]);\n          finalFullValue = props[prop] + unit;\n          elements[index][prop] = {\n            initialFullValue,\n            initialValue,\n            unit,\n            finalValue,\n            finalFullValue,\n            currentValue: initialValue\n          };\n        });\n      });\n      let startTime = null;\n      let time;\n      let elementsDone = 0;\n      let propsDone = 0;\n      let done;\n      let began = false;\n      a.animating = true;\n\n      function render() {\n        time = new Date().getTime();\n        let progress;\n        let easeProgress; // let el;\n\n        if (!began) {\n          began = true;\n          if (params.begin) params.begin(els);\n        }\n\n        if (startTime === null) {\n          startTime = time;\n        }\n\n        if (params.progress) {\n          // eslint-disable-next-line\n          params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n        }\n\n        elements.forEach(element => {\n          const el = element;\n          if (done || el.done) return;\n          Object.keys(props).forEach(prop => {\n            if (done || el.done) return;\n            progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n            easeProgress = a.easingProgress(params.easing, progress);\n            const {\n              initialValue,\n              finalValue,\n              unit\n            } = el[prop];\n            el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n            const currentValue = el[prop].currentValue;\n\n            if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n              el.container.style[prop] = finalValue + unit;\n              propsDone += 1;\n\n              if (propsDone === Object.keys(props).length) {\n                el.done = true;\n                elementsDone += 1;\n              }\n\n              if (elementsDone === elements.length) {\n                done = true;\n              }\n            }\n\n            if (done) {\n              a.done(params.complete);\n              return;\n            }\n\n            el.container.style[prop] = currentValue + unit;\n          });\n        });\n        if (done) return; // Then call\n\n        a.frameId = window.requestAnimationFrame(render);\n      }\n\n      a.frameId = window.requestAnimationFrame(render);\n      return a;\n    }\n\n  };\n\n  if (a.elements.length === 0) {\n    return els;\n  }\n\n  let animateInstance;\n\n  for (let i = 0; i < a.elements.length; i += 1) {\n    if (a.elements[i].dom7AnimateInstance) {\n      animateInstance = a.elements[i].dom7AnimateInstance;\n    } else a.elements[i].dom7AnimateInstance = a;\n  }\n\n  if (!animateInstance) {\n    animateInstance = a;\n  }\n\n  if (initialProps === 'stop') {\n    animateInstance.stop();\n  } else {\n    animateInstance.animate(a.props, a.params);\n  }\n\n  return els;\n}\n\nfunction stop() {\n  const els = this;\n\n  for (let i = 0; i < els.length; i += 1) {\n    if (els[i].dom7AnimateInstance) {\n      els[i].dom7AnimateInstance.stop();\n    }\n  }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n  function eventHandler(...args) {\n    if (typeof args[0] === 'undefined') {\n      for (let i = 0; i < this.length; i += 1) {\n        if (noTrigger.indexOf(name) < 0) {\n          if (name in this[i]) this[i][name]();else {\n            $(this[i]).trigger(name);\n          }\n        }\n      }\n\n      return this;\n    }\n\n    return this.on(name, ...args);\n  }\n\n  return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n  addClass,\n  removeClass,\n  hasClass,\n  toggleClass,\n  attr,\n  removeAttr,\n  transform,\n  transition,\n  on,\n  off,\n  trigger,\n  transitionEnd,\n  outerWidth,\n  outerHeight,\n  styles,\n  offset,\n  css,\n  each,\n  html,\n  text,\n  is,\n  index,\n  eq,\n  append,\n  prepend,\n  next,\n  nextAll,\n  prev,\n  prevAll,\n  parent,\n  parents,\n  closest,\n  find,\n  children,\n  filter,\n  remove\n};\nObject.keys(Methods).forEach(methodName => {\n  Object.defineProperty($.fn, methodName, {\n    value: Methods[methodName],\n    writable: true\n  });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n  const object = obj;\n  Object.keys(object).forEach(key => {\n    try {\n      object[key] = null;\n    } catch (e) {// no getter for object\n    }\n\n    try {\n      delete object[key];\n    } catch (e) {// something got wrong\n    }\n  });\n}\n\nfunction nextTick(callback, delay) {\n  if (delay === void 0) {\n    delay = 0;\n  }\n\n  return setTimeout(callback, delay);\n}\n\nfunction now() {\n  return Date.now();\n}\n\nfunction getComputedStyle(el) {\n  const window = getWindow();\n  let style;\n\n  if (window.getComputedStyle) {\n    style = window.getComputedStyle(el, null);\n  }\n\n  if (!style && el.currentStyle) {\n    style = el.currentStyle;\n  }\n\n  if (!style) {\n    style = el.style;\n  }\n\n  return style;\n}\n\nfunction getTranslate(el, axis) {\n  if (axis === void 0) {\n    axis = 'x';\n  }\n\n  const window = getWindow();\n  let matrix;\n  let curTransform;\n  let transformMatrix;\n  const curStyle = getComputedStyle(el, null);\n\n  if (window.WebKitCSSMatrix) {\n    curTransform = curStyle.transform || curStyle.webkitTransform;\n\n    if (curTransform.split(',').length > 6) {\n      curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n    } // Some old versions of Webkit choke when 'none' is passed; pass\n    // empty string instead in this case\n\n\n    transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n  } else {\n    transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n    matrix = transformMatrix.toString().split(',');\n  }\n\n  if (axis === 'x') {\n    // Latest Chrome and webkits Fix\n    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n    else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n    else curTransform = parseFloat(matrix[4]);\n  }\n\n  if (axis === 'y') {\n    // Latest Chrome and webkits Fix\n    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n    else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n    else curTransform = parseFloat(matrix[5]);\n  }\n\n  return curTransform || 0;\n}\n\nfunction isObject(o) {\n  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n  // eslint-disable-next-line\n  if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n    return node instanceof HTMLElement;\n  }\n\n  return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n  const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n  const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n  for (let i = 1; i < arguments.length; i += 1) {\n    const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n      const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n      for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n        const nextKey = keysArray[nextIndex];\n        const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n        if (desc !== undefined && desc.enumerable) {\n          if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n            if (nextSource[nextKey].__swiper__) {\n              to[nextKey] = nextSource[nextKey];\n            } else {\n              extend(to[nextKey], nextSource[nextKey]);\n            }\n          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n            to[nextKey] = {};\n\n            if (nextSource[nextKey].__swiper__) {\n              to[nextKey] = nextSource[nextKey];\n            } else {\n              extend(to[nextKey], nextSource[nextKey]);\n            }\n          } else {\n            to[nextKey] = nextSource[nextKey];\n          }\n        }\n      }\n    }\n  }\n\n  return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n  el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll(_ref) {\n  let {\n    swiper,\n    targetPosition,\n    side\n  } = _ref;\n  const window = getWindow();\n  const startPosition = -swiper.translate;\n  let startTime = null;\n  let time;\n  const duration = swiper.params.speed;\n  swiper.wrapperEl.style.scrollSnapType = 'none';\n  window.cancelAnimationFrame(swiper.cssModeFrameID);\n  const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n  const isOutOfBound = (current, target) => {\n    return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n  };\n\n  const animate = () => {\n    time = new Date().getTime();\n\n    if (startTime === null) {\n      startTime = time;\n    }\n\n    const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n    const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n    let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n    if (isOutOfBound(currentPosition, targetPosition)) {\n      currentPosition = targetPosition;\n    }\n\n    swiper.wrapperEl.scrollTo({\n      [side]: currentPosition\n    });\n\n    if (isOutOfBound(currentPosition, targetPosition)) {\n      swiper.wrapperEl.style.overflow = 'hidden';\n      swiper.wrapperEl.style.scrollSnapType = '';\n      setTimeout(() => {\n        swiper.wrapperEl.style.overflow = '';\n        swiper.wrapperEl.scrollTo({\n          [side]: currentPosition\n        });\n      });\n      window.cancelAnimationFrame(swiper.cssModeFrameID);\n      return;\n    }\n\n    swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n  };\n\n  animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n  const window = getWindow();\n  const document = getDocument();\n  return {\n    smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n    passiveListener: function checkPassiveListener() {\n      let supportsPassive = false;\n\n      try {\n        const opts = Object.defineProperty({}, 'passive', {\n          // eslint-disable-next-line\n          get() {\n            supportsPassive = true;\n          }\n\n        });\n        window.addEventListener('testPassiveListener', null, opts);\n      } catch (e) {// No support\n      }\n\n      return supportsPassive;\n    }(),\n    gestures: function checkGestures() {\n      return 'ongesturestart' in window;\n    }()\n  };\n}\n\nfunction getSupport() {\n  if (!support) {\n    support = calcSupport();\n  }\n\n  return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice(_temp) {\n  let {\n    userAgent\n  } = _temp === void 0 ? {} : _temp;\n  const support = getSupport();\n  const window = getWindow();\n  const platform = window.navigator.platform;\n  const ua = userAgent || window.navigator.userAgent;\n  const device = {\n    ios: false,\n    android: false\n  };\n  const screenWidth = window.screen.width;\n  const screenHeight = window.screen.height;\n  const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n  let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n  const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n  const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n  const windows = platform === 'Win32';\n  let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n  const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n  if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n    ipad = ua.match(/(Version)\\/([\\d.]+)/);\n    if (!ipad) ipad = [0, 1, '13_0_0'];\n    macos = false;\n  } // Android\n\n\n  if (android && !windows) {\n    device.os = 'android';\n    device.android = true;\n  }\n\n  if (ipad || iphone || ipod) {\n    device.os = 'ios';\n    device.ios = true;\n  } // Export object\n\n\n  return device;\n}\n\nfunction getDevice(overrides) {\n  if (overrides === void 0) {\n    overrides = {};\n  }\n\n  if (!deviceCached) {\n    deviceCached = calcDevice(overrides);\n  }\n\n  return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n  const window = getWindow();\n\n  function isSafari() {\n    const ua = window.navigator.userAgent.toLowerCase();\n    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n  }\n\n  return {\n    isSafari: isSafari(),\n    isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n  };\n}\n\nfunction getBrowser() {\n  if (!browser) {\n    browser = calcBrowser();\n  }\n\n  return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nexport default function Resize(_ref) {\n  let {\n    swiper,\n    on,\n    emit\n  } = _ref;\n  const window = getWindow();\n  let observer = null;\n  let animationFrame = null;\n\n  const resizeHandler = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    emit('beforeResize');\n    emit('resize');\n  };\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(_ref2 => {\n          let {\n            contentBoxSize,\n            contentRect,\n            target\n          } = _ref2;\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\n        if (newWidth !== width || newHeight !== height) {\n          resizeHandler();\n        }\n      });\n    });\n    observer.observe(swiper.el);\n  };\n\n  const removeObserver = () => {\n    if (animationFrame) {\n      window.cancelAnimationFrame(animationFrame);\n    }\n\n    if (observer && observer.unobserve && swiper.el) {\n      observer.unobserve(swiper.el);\n      observer = null;\n    }\n  };\n\n  const orientationChangeHandler = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    emit('orientationchange');\n  };\n\n  on('init', () => {\n    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n      createObserver();\n      return;\n    }\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';\nexport default function Observer(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on,\n    emit\n  } = _ref;\n  const observers = [];\n  const window = getWindow();\n\n  const attach = function (target, options) {\n    if (options === void 0) {\n      options = {};\n    }\n\n    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n    const observer = new ObserverFunc(mutations => {\n      // The observerUpdate event should only be triggered\n      // once despite the number of mutations.  Additional\n      // triggers are redundant and are very costly\n      if (mutations.length === 1) {\n        emit('observerUpdate', mutations[0]);\n        return;\n      }\n\n      const observerUpdate = function observerUpdate() {\n        emit('observerUpdate', mutations[0]);\n      };\n\n      if (window.requestAnimationFrame) {\n        window.requestAnimationFrame(observerUpdate);\n      } else {\n        window.setTimeout(observerUpdate, 0);\n      }\n    });\n    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\n  const init = () => {\n    if (!swiper.params.observer) return;\n\n    if (swiper.params.observeParents) {\n      const containerParents = swiper.$el.parents();\n\n      for (let i = 0; i < containerParents.length; i += 1) {\n        attach(containerParents[i]);\n      }\n    } // Observe container\n\n\n    attach(swiper.$el[0], {\n      childList: swiper.params.observeSlideChildren\n    }); // Observe wrapper\n\n    attach(swiper.$wrapperEl[0], {\n      attributes: false\n    });\n  };\n\n  const destroy = () => {\n    observers.forEach(observer => {\n      observer.disconnect();\n    });\n    observers.splice(0, observers.length);\n  };\n\n  extendParams({\n    observer: false,\n    observeParents: false,\n    observeSlideChildren: false\n  });\n  on('init', init);\n  on('destroy', destroy);\n}","/* eslint-disable no-underscore-dangle */\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\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\n    function onceHandler() {\n      self.off(events, onceHandler);\n\n      if (onceHandler.__emitterProxy) {\n        delete onceHandler.__emitterProxy;\n      }\n\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n\n      handler.apply(self, args);\n    }\n\n    onceHandler.__emitterProxy = handler;\n    return self.on(events, onceHandler, priority);\n  },\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\n    if (self.eventsAnyListeners.indexOf(handler) < 0) {\n      self.eventsAnyListeners[method](handler);\n    }\n\n    return self;\n  },\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\n    if (index >= 0) {\n      self.eventsAnyListeners.splice(index, 1);\n    }\n\n    return self;\n  },\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\n  emit() {\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\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n\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\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\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\n};","export default function updateSize() {\n  const swiper = this;\n  let width;\n  let height;\n  const $el = swiper.$el;\n\n  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n    width = swiper.params.width;\n  } else {\n    width = $el[0].clientWidth;\n  }\n\n  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n    height = swiper.params.height;\n  } else {\n    height = $el[0].clientHeight;\n  }\n\n  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n    return;\n  } // Subtract paddings\n\n\n  width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n  height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('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 { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n  const swiper = this;\n\n  function getDirectionLabel(property) {\n    if (swiper.isHorizontal()) {\n      return property;\n    } // prettier-ignore\n\n\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\n  function getDirectionPropertyValue(node, label) {\n    return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n  }\n\n  const params = swiper.params;\n  const {\n    $wrapperEl,\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 = $wrapperEl.children(`.${swiper.params.slideClass}`);\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\n  if (typeof offsetBefore === 'function') {\n    offsetBefore = params.slidesOffsetBefore.call(swiper);\n  }\n\n  let offsetAfter = params.slidesOffsetAfter;\n\n  if (typeof offsetAfter === 'function') {\n    offsetAfter = params.slidesOffsetAfter.call(swiper);\n  }\n\n  const previousSnapGridLength = swiper.snapGrid.length;\n  const previousSlidesGridLength = swiper.slidesGrid.length;\n  let spaceBetween = params.spaceBetween;\n  let slidePosition = -offsetBefore;\n  let prevSlideSize = 0;\n  let index = 0;\n\n  if (typeof swiperSize === 'undefined') {\n    return;\n  }\n\n  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n  }\n\n  swiper.virtualSize = -spaceBetween; // reset margins\n\n  if (rtl) slides.css({\n    marginLeft: '',\n    marginBottom: '',\n    marginTop: ''\n  });else slides.css({\n    marginRight: '',\n    marginBottom: '',\n    marginTop: ''\n  }); // reset cssMode offsets\n\n  if (params.centeredSlides && params.cssMode) {\n    setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n    setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n  }\n\n  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n  if (gridEnabled) {\n    swiper.grid.initSlides(slidesLength);\n  } // Calc slides\n\n\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\n  for (let i = 0; i < slidesLength; i += 1) {\n    slideSize = 0;\n    const slide = slides.eq(i);\n\n    if (gridEnabled) {\n      swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n    }\n\n    if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n    if (params.slidesPerView === 'auto') {\n      if (shouldResetSlideSize) {\n        slides[i].style[getDirectionLabel('width')] = ``;\n      }\n\n      const slideStyles = getComputedStyle(slide[0]);\n      const currentTransform = slide[0].style.transform;\n      const currentWebKitTransform = slide[0].style.webkitTransform;\n\n      if (currentTransform) {\n        slide[0].style.transform = 'none';\n      }\n\n      if (currentWebKitTransform) {\n        slide[0].style.webkitTransform = 'none';\n      }\n\n      if (params.roundLengths) {\n        slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(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\n        if (boxSizing && boxSizing === 'border-box') {\n          slideSize = width + marginLeft + marginRight;\n        } else {\n          const {\n            clientWidth,\n            offsetWidth\n          } = slide[0];\n          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n        }\n      }\n\n      if (currentTransform) {\n        slide[0].style.transform = currentTransform;\n      }\n\n      if (currentWebKitTransform) {\n        slide[0].style.webkitTransform = currentWebKitTransform;\n      }\n\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n    } else {\n      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n      if (slides[i]) {\n        slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n      }\n    }\n\n    if (slides[i]) {\n      slides[i].swiperSlideSize = slideSize;\n    }\n\n    slidesSizesGrid.push(slideSize);\n\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\n    swiper.virtualSize += slideSize + spaceBetween;\n    prevSlideSize = slideSize;\n    index += 1;\n  }\n\n  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n    $wrapperEl.css({\n      width: `${swiper.virtualSize + params.spaceBetween}px`\n    });\n  }\n\n  if (params.setWrapperSize) {\n    $wrapperEl.css({\n      [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n    });\n  }\n\n  if (gridEnabled) {\n    swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n  } // Remove last grid elements depending on width\n\n\n  if (!params.centeredSlides) {\n    const newSlidesGrid = [];\n\n    for (let i = 0; i < snapGrid.length; i += 1) {\n      let slidesGridItem = snapGrid[i];\n      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n      if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n        newSlidesGrid.push(slidesGridItem);\n      }\n    }\n\n    snapGrid = newSlidesGrid;\n\n    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n      snapGrid.push(swiper.virtualSize - swiperSize);\n    }\n  }\n\n  if (snapGrid.length === 0) snapGrid = [0];\n\n  if (params.spaceBetween !== 0) {\n    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n    slides.filter((_, slideIndex) => {\n      if (!params.cssMode) return true;\n\n      if (slideIndex === slides.length - 1) {\n        return false;\n      }\n\n      return true;\n    }).css({\n      [key]: `${spaceBetween}px`\n    });\n  }\n\n  if (params.centeredSlides && params.centeredSlidesBounds) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach(slideSizeValue => {\n      allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n    });\n    allSlidesSize -= params.spaceBetween;\n    const maxSnap = allSlidesSize - swiperSize;\n    snapGrid = snapGrid.map(snap => {\n      if (snap < 0) return -offsetBefore;\n      if (snap > maxSnap) return maxSnap + offsetAfter;\n      return snap;\n    });\n  }\n\n  if (params.centerInsufficientSlides) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach(slideSizeValue => {\n      allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n    });\n    allSlidesSize -= params.spaceBetween;\n\n    if (allSlidesSize < swiperSize) {\n      const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n      snapGrid.forEach((snap, snapIndex) => {\n        snapGrid[snapIndex] = snap - allSlidesOffset;\n      });\n      slidesGrid.forEach((snap, snapIndex) => {\n        slidesGrid[snapIndex] = snap + allSlidesOffset;\n      });\n    }\n  }\n\n  Object.assign(swiper, {\n    slides,\n    snapGrid,\n    slidesGrid,\n    slidesSizesGrid\n  });\n\n  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n    setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n    setCSSProperty(swiper.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\n  if (slidesLength !== previousSlidesLength) {\n    swiper.emit('slidesLengthChange');\n  }\n\n  if (snapGrid.length !== previousSnapGridLength) {\n    if (swiper.params.watchOverflow) swiper.checkOverflow();\n    swiper.emit('snapGridLengthChange');\n  }\n\n  if (slidesGrid.length !== previousSlidesGridLength) {\n    swiper.emit('slidesGridLengthChange');\n  }\n\n  if (params.watchSlidesProgress) {\n    swiper.updateSlidesOffset();\n  }\n\n  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n    const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n    if (slidesLength <= params.maxBackfaceHiddenSlides) {\n      if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n    } else if (hasClassBackfaceClassAdded) {\n      swiper.$el.removeClass(backFaceHiddenClass);\n    }\n  }\n}","import $ from '../../shared/dom.js';\nexport 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\n  if (typeof speed === 'number') {\n    swiper.setTransition(speed);\n  } else if (speed === true) {\n    swiper.setTransition(swiper.params.speed);\n  }\n\n  const getSlideByIndex = index => {\n    if (isVirtual) {\n      return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n    }\n\n    return swiper.slides.eq(index)[0];\n  }; // Find slides currently in view\n\n\n  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n    if (swiper.params.centeredSlides) {\n      (swiper.visibleSlides || $([])).each(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  } // Find new height from highest slide in view\n\n\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  } // Update Height\n\n\n  if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n  const swiper = this;\n  const slides = swiper.slides;\n\n  for (let i = 0; i < slides.length; i += 1) {\n    slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n  }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate) {\n  if (translate === void 0) {\n    translate = this && this.translate || 0;\n  }\n\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; // Visible Slides\n\n  slides.removeClass(params.slideVisibleClass);\n  swiper.visibleSlidesIndexes = [];\n  swiper.visibleSlides = [];\n\n  for (let i = 0; i < slides.length; i += 1) {\n    const slide = slides[i];\n    let slideOffset = slide.swiperSlideOffset;\n\n    if (params.cssMode && params.centeredSlides) {\n      slideOffset -= slides[0].swiperSlideOffset;\n    }\n\n    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.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\n    if (isVisible) {\n      swiper.visibleSlides.push(slide);\n      swiper.visibleSlidesIndexes.push(i);\n      slides.eq(i).addClass(params.slideVisibleClass);\n    }\n\n    slide.progress = rtl ? -slideProgress : slideProgress;\n    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n  }\n\n  swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n  const swiper = this;\n\n  if (typeof translate === 'undefined') {\n    const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n  }\n\n  const params = swiper.params;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  let {\n    progress,\n    isBeginning,\n    isEnd\n  } = swiper;\n  const wasBeginning = isBeginning;\n  const wasEnd = isEnd;\n\n  if (translatesDiff === 0) {\n    progress = 0;\n    isBeginning = true;\n    isEnd = true;\n  } else {\n    progress = (translate - swiper.minTranslate()) / translatesDiff;\n    isBeginning = progress <= 0;\n    isEnd = progress >= 1;\n  }\n\n  Object.assign(swiper, {\n    progress,\n    isBeginning,\n    isEnd\n  });\n  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n  if (isBeginning && !wasBeginning) {\n    swiper.emit('reachBeginning toEdge');\n  }\n\n  if (isEnd && !wasEnd) {\n    swiper.emit('reachEnd toEdge');\n  }\n\n  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n    swiper.emit('fromEdge');\n  }\n\n  swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n  const swiper = this;\n  const {\n    slides,\n    params,\n    $wrapperEl,\n    activeIndex,\n    realIndex\n  } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n  let activeSlide;\n\n  if (isVirtual) {\n    activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n  } else {\n    activeSlide = slides.eq(activeIndex);\n  } // Active classes\n\n\n  activeSlide.addClass(params.slideActiveClass);\n\n  if (params.loop) {\n    // Duplicate to all looped slides\n    if (activeSlide.hasClass(params.slideDuplicateClass)) {\n      $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n    } else {\n      $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n    }\n  } // Next Slide\n\n\n  let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n  if (params.loop && nextSlide.length === 0) {\n    nextSlide = slides.eq(0);\n    nextSlide.addClass(params.slideNextClass);\n  } // Prev Slide\n\n\n  let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n  if (params.loop && prevSlide.length === 0) {\n    prevSlide = slides.eq(-1);\n    prevSlide.addClass(params.slidePrevClass);\n  }\n\n  if (params.loop) {\n    // Duplicate to all looped slides\n    if (nextSlide.hasClass(params.slideDuplicateClass)) {\n      $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n    } else {\n      $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n    }\n\n    if (prevSlide.hasClass(params.slideDuplicateClass)) {\n      $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n    } else {\n      $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n    }\n  }\n\n  swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n  const swiper = this;\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  const {\n    slidesGrid,\n    snapGrid,\n    params,\n    activeIndex: previousIndex,\n    realIndex: previousRealIndex,\n    snapIndex: previousSnapIndex\n  } = swiper;\n  let activeIndex = newActiveIndex;\n  let snapIndex;\n\n  if (typeof activeIndex === 'undefined') {\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    } // Normalize slideIndex\n\n\n    if (params.normalizeSlideIndex) {\n      if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n    }\n  }\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\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n  if (activeIndex === previousIndex) {\n    if (snapIndex !== previousSnapIndex) {\n      swiper.snapIndex = snapIndex;\n      swiper.emit('snapIndexChange');\n    }\n\n    return;\n  } // Get real index\n\n\n  const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n  Object.assign(swiper, {\n    snapIndex,\n    realIndex,\n    previousIndex,\n    activeIndex\n  });\n  swiper.emit('activeIndexChange');\n  swiper.emit('snapIndexChange');\n\n  if (previousRealIndex !== realIndex) {\n    swiper.emit('realIndexChange');\n  }\n\n  if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n    swiper.emit('slideChange');\n  }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n  const swiper = this;\n  const params = swiper.params;\n  const slide = $(e).closest(`.${params.slideClass}`)[0];\n  let slideFound = false;\n  let slideIndex;\n\n  if (slide) {\n    for (let i = 0; i < swiper.slides.length; i += 1) {\n      if (swiper.slides[i] === slide) {\n        slideFound = true;\n        slideIndex = i;\n        break;\n      }\n    }\n  }\n\n  if (slide && slideFound) {\n    swiper.clickedSlide = slide;\n\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      swiper.clickedIndex = parseInt($(slide).attr('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\n  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n    swiper.slideToClickedSlide();\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 { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis) {\n  if (axis === void 0) {\n    axis = this.isHorizontal() ? 'x' : 'y';\n  }\n\n  const swiper = this;\n  const {\n    params,\n    rtlTranslate: rtl,\n    translate,\n    $wrapperEl\n  } = swiper;\n\n  if (params.virtualTranslate) {\n    return rtl ? -translate : translate;\n  }\n\n  if (params.cssMode) {\n    return translate;\n  }\n\n  let currentTranslate = getTranslate($wrapperEl[0], axis);\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    wrapperEl,\n    progress\n  } = swiper;\n  let x = 0;\n  let y = 0;\n  const z = 0;\n\n  if (swiper.isHorizontal()) {\n    x = rtl ? -translate : translate;\n  } else {\n    y = translate;\n  }\n\n  if (params.roundLengths) {\n    x = Math.floor(x);\n    y = Math.floor(y);\n  }\n\n  if (params.cssMode) {\n    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n  } else if (!params.virtualTranslate) {\n    $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n  }\n\n  swiper.previousTranslate = swiper.translate;\n  swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n  let newProgress;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n  if (translatesDiff === 0) {\n    newProgress = 0;\n  } else {\n    newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n  }\n\n  if (newProgress !== progress) {\n    swiper.updateProgress(translate);\n  }\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, speed, runCallbacks, translateBounds, internal) {\n  if (translate === void 0) {\n    translate = 0;\n  }\n\n  if (speed === void 0) {\n    speed = this.params.speed;\n  }\n\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n\n  if (translateBounds === void 0) {\n    translateBounds = true;\n  }\n\n  const swiper = this;\n  const {\n    params,\n    wrapperEl\n  } = swiper;\n\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return false;\n  }\n\n  const minTranslate = swiper.minTranslate();\n  const maxTranslate = swiper.maxTranslate();\n  let newTranslate;\n  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n  swiper.updateProgress(newTranslate);\n\n  if (params.cssMode) {\n    const isH = swiper.isHorizontal();\n\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\n      wrapperEl.scrollTo({\n        [isH ? 'left' : 'top']: -newTranslate,\n        behavior: 'smooth'\n      });\n    }\n\n    return true;\n  }\n\n  if (speed === 0) {\n    swiper.setTransition(0);\n    swiper.setTranslate(newTranslate);\n\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\n    if (runCallbacks) {\n      swiper.emit('beforeTransitionStart', speed, internal);\n      swiper.emit('transitionStart');\n    }\n\n    if (!swiper.animating) {\n      swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n          swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n          swiper.onTranslateToWrapperTransitionEnd = null;\n          delete swiper.onTranslateToWrapperTransitionEnd;\n\n          if (runCallbacks) {\n            swiper.emit('transitionEnd');\n          }\n        };\n      }\n\n      swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n      swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n    }\n  }\n\n  return true;\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};","export default function setTransition(duration, byController) {\n  const swiper = this;\n\n  if (!swiper.params.cssMode) {\n    swiper.$wrapperEl.transition(duration);\n  }\n\n  swiper.emit('setTransition', duration, byController);\n}","export default function transitionEmit(_ref) {\n  let {\n    swiper,\n    runCallbacks,\n    direction,\n    step\n  } = _ref;\n  const {\n    activeIndex,\n    previousIndex\n  } = swiper;\n  let dir = direction;\n\n  if (!dir) {\n    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n  }\n\n  swiper.emit(`transition${step}`);\n\n  if (runCallbacks && activeIndex !== previousIndex) {\n    if (dir === 'reset') {\n      swiper.emit(`slideResetTransition${step}`);\n      return;\n    }\n\n    swiper.emit(`slideChangeTransition${step}`);\n\n    if (dir === 'next') {\n      swiper.emit(`slideNextTransition${step}`);\n    } else {\n      swiper.emit(`slidePrevTransition${step}`);\n    }\n  }\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks, direction) {\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  if (params.cssMode) return;\n\n  if (params.autoHeight) {\n    swiper.updateAutoHeight();\n  }\n\n  transitionEmit({\n    swiper,\n    runCallbacks,\n    direction,\n    step: 'Start'\n  });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks, direction) {\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n\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 setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n  setTransition,\n  transitionStart,\n  transitionEnd\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index, speed, runCallbacks, internal, initial) {\n  if (index === void 0) {\n    index = 0;\n  }\n\n  if (speed === void 0) {\n    speed = this.params.speed;\n  }\n\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n\n  if (typeof index !== 'number' && typeof index !== 'string') {\n    throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n  }\n\n  if (typeof index === 'string') {\n    /**\n     * The `index` argument converted from `string` to `number`.\n     * @type {number}\n     */\n    const indexAsNumber = parseInt(index, 10);\n    /**\n     * Determines whether the `index` argument is a valid `number`\n     * after being converted from the `string` type.\n     * @type {boolean}\n     */\n\n    const isValidNumber = isFinite(indexAsNumber);\n\n    if (!isValidNumber) {\n      throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n    } // Knowing that the converted `index` is a valid number,\n    // we can update the original argument's value.\n\n\n    index = indexAsNumber;\n  }\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\n  if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n    return false;\n  }\n\n  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n  if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n    swiper.emit('beforeSlideChangeStart');\n  }\n\n  const translate = -snapGrid[snapIndex]; // Update progress\n\n  swiper.updateProgress(translate); // Normalize slideIndex\n\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\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  } // Directions locks\n\n\n  if (swiper.initialized && slideIndex !== activeIndex) {\n    if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n      return false;\n    }\n\n    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n      if ((activeIndex || 0) !== slideIndex) return false;\n    }\n  }\n\n  let direction;\n  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n  if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n    swiper.updateActiveIndex(slideIndex); // Update Height\n\n    if (params.autoHeight) {\n      swiper.updateAutoHeight();\n    }\n\n    swiper.updateSlidesClasses();\n\n    if (params.effect !== 'slide') {\n      swiper.setTranslate(translate);\n    }\n\n    if (direction !== 'reset') {\n      swiper.transitionStart(runCallbacks, direction);\n      swiper.transitionEnd(runCallbacks, direction);\n    }\n\n    return false;\n  }\n\n  if (params.cssMode) {\n    const isH = swiper.isHorizontal();\n    const t = rtl ? translate : -translate;\n\n    if (speed === 0) {\n      const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n      if (isVirtual) {\n        swiper.wrapperEl.style.scrollSnapType = 'none';\n        swiper._immediateVirtual = true;\n      }\n\n      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n      if (isVirtual) {\n        requestAnimationFrame(() => {\n          swiper.wrapperEl.style.scrollSnapType = '';\n          swiper._swiperImmediateVirtual = false;\n        });\n      }\n    } else {\n      if (!swiper.support.smoothScroll) {\n        animateCSSModeScroll({\n          swiper,\n          targetPosition: t,\n          side: isH ? 'left' : 'top'\n        });\n        return true;\n      }\n\n      wrapperEl.scrollTo({\n        [isH ? 'left' : 'top']: t,\n        behavior: 'smooth'\n      });\n    }\n\n    return true;\n  }\n\n  swiper.setTransition(speed);\n  swiper.setTranslate(translate);\n  swiper.updateActiveIndex(slideIndex);\n  swiper.updateSlidesClasses();\n  swiper.emit('beforeTransitionStart', speed, internal);\n  swiper.transitionStart(runCallbacks, direction);\n\n  if (speed === 0) {\n    swiper.transitionEnd(runCallbacks, direction);\n  } else if (!swiper.animating) {\n    swiper.animating = true;\n\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[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n        swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n        swiper.onSlideToWrapperTransitionEnd = null;\n        delete swiper.onSlideToWrapperTransitionEnd;\n        swiper.transitionEnd(runCallbacks, direction);\n      };\n    }\n\n    swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n    swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n  }\n\n  return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n  if (index === void 0) {\n    index = 0;\n  }\n\n  if (speed === void 0) {\n    speed = this.params.speed;\n  }\n\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n\n  if (typeof index === 'string') {\n    /**\n     * The `index` argument converted from `string` to `number`.\n     * @type {number}\n     */\n    const indexAsNumber = parseInt(index, 10);\n    /**\n     * Determines whether the `index` argument is a valid `number`\n     * after being converted from the `string` type.\n     * @type {boolean}\n     */\n\n    const isValidNumber = isFinite(indexAsNumber);\n\n    if (!isValidNumber) {\n      throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n    } // Knowing that the converted `index` is a valid number,\n    // we can update the original argument's value.\n\n\n    index = indexAsNumber;\n  }\n\n  const swiper = this;\n  let newIndex = index;\n\n  if (swiper.params.loop) {\n    newIndex += swiper.loopedSlides;\n  }\n\n  return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n  if (speed === void 0) {\n    speed = this.params.speed;\n  }\n\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n\n  const swiper = this;\n  const {\n    animating,\n    enabled,\n    params\n  } = swiper;\n  if (!enabled) return swiper;\n  let perGroup = params.slidesPerGroup;\n\n  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n  }\n\n  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n  if (params.loop) {\n    if (animating && params.loopPreventsSlide) return false;\n    swiper.loopFix(); // eslint-disable-next-line\n\n    swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n  }\n\n  if (params.rewind && swiper.isEnd) {\n    return swiper.slideTo(0, speed, runCallbacks, internal);\n  }\n\n  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n  if (speed === void 0) {\n    speed = this.params.speed;\n  }\n\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n\n  const swiper = this;\n  const {\n    params,\n    animating,\n    snapGrid,\n    slidesGrid,\n    rtlTranslate,\n    enabled\n  } = swiper;\n  if (!enabled) return swiper;\n\n  if (params.loop) {\n    if (animating && params.loopPreventsSlide) return false;\n    swiper.loopFix(); // eslint-disable-next-line\n\n    swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n  }\n\n  const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n  function normalize(val) {\n    if (val < 0) return -Math.floor(Math.abs(val));\n    return Math.floor(val);\n  }\n\n  const normalizedTranslate = normalize(translate);\n  const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\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\n    if (typeof prevSnapIndex !== 'undefined') {\n      prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n    }\n  }\n\n  let prevIndex = 0;\n\n  if (typeof prevSnap !== 'undefined') {\n    prevIndex = slidesGrid.indexOf(prevSnap);\n    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\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\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\n  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n  if (speed === void 0) {\n    speed = this.params.speed;\n  }\n\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n\n  const swiper = this;\n  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n  if (speed === void 0) {\n    speed = this.params.speed;\n  }\n\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n\n  if (threshold === void 0) {\n    threshold = 0.5;\n  }\n\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\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\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\n    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n      index -= swiper.params.slidesPerGroup;\n    }\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 $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n  const swiper = this;\n  const {\n    params,\n    $wrapperEl\n  } = swiper;\n  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n  let slideToIndex = swiper.clickedIndex;\n  let realIndex;\n\n  if (params.loop) {\n    if (swiper.animating) return;\n    realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n    if (params.centeredSlides) {\n      if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n        swiper.loopFix();\n        slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\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 = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n      nextTick(() => {\n        swiper.slideTo(slideToIndex);\n      });\n    } else {\n      swiper.slideTo(slideToIndex);\n    }\n  } else {\n    swiper.slideTo(slideToIndex);\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 { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n  const swiper = this;\n  const document = getDocument();\n  const {\n    params,\n    $wrapperEl\n  } = swiper; // Remove duplicated slides\n\n  const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n  $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n  let slides = $selector.children(`.${params.slideClass}`);\n\n  if (params.loopFillGroupWithBlank) {\n    const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n    if (blankSlidesNum !== params.slidesPerGroup) {\n      for (let i = 0; i < blankSlidesNum; i += 1) {\n        const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n        $selector.append(blankNode);\n      }\n\n      slides = $selector.children(`.${params.slideClass}`);\n    }\n  }\n\n  if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n  swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n  swiper.loopedSlides += params.loopAdditionalSlides;\n\n  if (swiper.loopedSlides > slides.length) {\n    swiper.loopedSlides = slides.length;\n  }\n\n  const prependSlides = [];\n  const appendSlides = [];\n  slides.each((el, index) => {\n    const slide = $(el);\n\n    if (index < swiper.loopedSlides) {\n      appendSlides.push(el);\n    }\n\n    if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n      prependSlides.push(el);\n    }\n\n    slide.attr('data-swiper-slide-index', index);\n  });\n\n  for (let i = 0; i < appendSlides.length; i += 1) {\n    $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n  }\n\n  for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n    $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n  }\n}","export default function loopFix() {\n  const swiper = this;\n  swiper.emit('beforeLoopFix');\n  const {\n    activeIndex,\n    slides,\n    loopedSlides,\n    allowSlidePrev,\n    allowSlideNext,\n    snapGrid,\n    rtlTranslate: rtl\n  } = swiper;\n  let newIndex;\n  swiper.allowSlidePrev = true;\n  swiper.allowSlideNext = true;\n  const snapTranslate = -snapGrid[activeIndex];\n  const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n  if (activeIndex < loopedSlides) {\n    newIndex = slides.length - loopedSlides * 3 + activeIndex;\n    newIndex += loopedSlides;\n    const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n    if (slideChanged && diff !== 0) {\n      swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n    }\n  } else if (activeIndex >= slides.length - loopedSlides) {\n    // Fix For Positive Oversliding\n    newIndex = -slides.length + activeIndex + loopedSlides;\n    newIndex += loopedSlides;\n    const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n    if (slideChanged && diff !== 0) {\n      swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n    }\n  }\n\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n  swiper.emit('loopFix');\n}","export default function loopDestroy() {\n  const swiper = this;\n  const {\n    $wrapperEl,\n    params,\n    slides\n  } = swiper;\n  $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n  slides.removeAttr('data-swiper-slide-index');\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};","export default function setGrabCursor(moving) {\n  const swiper = this;\n  if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n  el.style.cursor = 'move';\n  el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n  const swiper = this;\n\n  if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n    return;\n  }\n\n  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n  setGrabCursor,\n  unsetGrabCursor\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n  if (base === void 0) {\n    base = this;\n  }\n\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\n    if (!found && !el.getRootNode) {\n      return null;\n    }\n\n    return found || __closestFrom(el.getRootNode().host);\n  }\n\n  return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n  const swiper = this;\n  const document = getDocument();\n  const window = getWindow();\n  const data = swiper.touchEventsData;\n  const {\n    params,\n    touches,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return;\n  }\n\n  if (!swiper.animating && params.cssMode && params.loop) {\n    swiper.loopFix();\n  }\n\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  let $targetEl = $(e.target);\n\n  if (params.touchEventsTarget === 'wrapper') {\n    if (!$targetEl.closest(swiper.wrapperEl).length) return;\n  }\n\n  data.isTouchEvent = e.type === 'touchstart';\n  if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n  if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n  if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n  if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n    $targetEl = $(event.path[0]);\n  }\n\n  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n  const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n  if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n    swiper.allowClick = true;\n    return;\n  }\n\n  if (params.swipeHandler) {\n    if (!$targetEl.closest(params.swipeHandler)[0]) return;\n  }\n\n  touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n  touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n  const startX = touches.currentX;\n  const startY = touches.currentY; // 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\n  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n    if (edgeSwipeDetection === 'prevent') {\n      event.preventDefault();\n    } else {\n      return;\n    }\n  }\n\n  Object.assign(data, {\n    isTouched: true,\n    isMoved: false,\n    allowTouchCallbacks: true,\n    isScrolling: undefined,\n    startMoving: undefined\n  });\n  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\n  if (e.type !== 'touchstart') {\n    let preventDefault = true;\n\n    if ($targetEl.is(data.focusableElements)) {\n      preventDefault = false;\n\n      if ($targetEl[0].nodeName === 'SELECT') {\n        data.isTouched = false;\n      }\n    }\n\n    if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n      document.activeElement.blur();\n    }\n\n    const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n    if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n      e.preventDefault();\n    }\n  }\n\n  if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n    swiper.freeMode.onTouchStart();\n  }\n\n  swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\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  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n\n  if (!data.isTouched) {\n    if (data.startMoving && data.isScrolling) {\n      swiper.emit('touchMoveOpposite', e);\n    }\n\n    return;\n  }\n\n  if (data.isTouchEvent && e.type !== 'touchmove') return;\n  const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n  const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n  const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n  if (e.preventedByNestedSwiper) {\n    touches.startX = pageX;\n    touches.startY = pageY;\n    return;\n  }\n\n  if (!swiper.allowTouchMove) {\n    if (!$(e.target).is(data.focusableElements)) {\n      swiper.allowClick = false;\n    }\n\n    if (data.isTouched) {\n      Object.assign(touches, {\n        startX: pageX,\n        startY: pageY,\n        currentX: pageX,\n        currentY: pageY\n      });\n      data.touchStartTime = now();\n    }\n\n    return;\n  }\n\n  if (data.isTouchEvent && 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\n  if (data.isTouchEvent && document.activeElement) {\n    if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n      data.isMoved = true;\n      swiper.allowClick = false;\n      return;\n    }\n  }\n\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchMove', e);\n  }\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\n  if (typeof data.isScrolling === 'undefined') {\n    let touchAngle;\n\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\n  if (data.isScrolling) {\n    swiper.emit('touchMoveOpposite', e);\n  }\n\n  if (typeof data.startMoving === 'undefined') {\n    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n      data.startMoving = true;\n    }\n  }\n\n  if (data.isScrolling) {\n    data.isTouched = false;\n    return;\n  }\n\n  if (!data.startMoving) {\n    return;\n  }\n\n  swiper.allowClick = false;\n\n  if (!params.cssMode && e.cancelable) {\n    e.preventDefault();\n  }\n\n  if (params.touchMoveStopPropagation && !params.nested) {\n    e.stopPropagation();\n  }\n\n  if (!data.isMoved) {\n    if (params.loop && !params.cssMode) {\n      swiper.loopFix();\n    }\n\n    data.startTranslate = swiper.getTranslate();\n    swiper.setTransition(0);\n\n    if (swiper.animating) {\n      swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n    }\n\n    data.allowMomentumBounce = false; // Grab Cursor\n\n    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n      swiper.setGrabCursor(true);\n    }\n\n    swiper.emit('sliderFirstMove', e);\n  }\n\n  swiper.emit('sliderMove', e);\n  data.isMoved = true;\n  let diff = swiper.isHorizontal() ? diffX : diffY;\n  touches.diff = diff;\n  diff *= params.touchRatio;\n  if (rtl) diff = -diff;\n  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n  data.currentTranslate = diff + data.startTranslate;\n  let disableParentSwiper = true;\n  let resistanceRatio = params.resistanceRatio;\n\n  if (params.touchReleaseOnEdges) {\n    resistanceRatio = 0;\n  }\n\n  if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n    disableParentSwiper = false;\n    if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n  } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n    disableParentSwiper = false;\n    if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n  }\n\n  if (disableParentSwiper) {\n    e.preventedByNestedSwiper = true;\n  } // Directions locks\n\n\n  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n    data.currentTranslate = data.startTranslate;\n  }\n\n  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n    data.currentTranslate = data.startTranslate;\n  }\n\n  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n    data.currentTranslate = data.startTranslate;\n  } // Threshold\n\n\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\n  if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n\n  if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n    swiper.freeMode.onTouchMove();\n  } // Update progress\n\n\n  swiper.updateProgress(data.currentTranslate); // Update translate\n\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 {\n    params,\n    touches,\n    rtlTranslate: rtl,\n    slidesGrid,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchEnd', e);\n  }\n\n  data.allowTouchCallbacks = false;\n\n  if (!data.isTouched) {\n    if (data.isMoved && params.grabCursor) {\n      swiper.setGrabCursor(false);\n    }\n\n    data.isMoved = false;\n    data.startMoving = false;\n    return;\n  } // Return Grab Cursor\n\n\n  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n    swiper.setGrabCursor(false);\n  } // Time diff\n\n\n  const touchEndTime = now();\n  const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\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\n    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n      swiper.emit('doubleTap doubleClick', e);\n    }\n  }\n\n  data.lastClickTime = now();\n  nextTick(() => {\n    if (!swiper.destroyed) swiper.allowClick = true;\n  });\n\n  if (!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\n  data.isTouched = false;\n  data.isMoved = false;\n  data.startMoving = false;\n  let currentPos;\n\n  if (params.followFinger) {\n    currentPos = rtl ? swiper.translate : -swiper.translate;\n  } else {\n    currentPos = -data.currentTranslate;\n  }\n\n  if (params.cssMode) {\n    return;\n  }\n\n  if (swiper.params.freeMode && params.freeMode.enabled) {\n    swiper.freeMode.onTouchEnd({\n      currentPos\n    });\n    return;\n  } // Find current slide\n\n\n  let stopIndex = 0;\n  let groupSize = swiper.slidesSizesGrid[0];\n\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\n    if (typeof slidesGrid[i + increment] !== 'undefined') {\n      if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n        stopIndex = i;\n        groupSize = slidesGrid[i + increment] - slidesGrid[i];\n      }\n    } else if (currentPos >= slidesGrid[i]) {\n      stopIndex = i;\n      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n    }\n  }\n\n  let rewindFirstIndex = null;\n  let rewindLastIndex = null;\n\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  } // Find current slide size\n\n\n  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n  if (timeDiff > params.longSwipesMs) {\n    // Long touches\n    if (!params.longSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\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\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\n    const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n    if (!isNavButtonTarget) {\n      if (swiper.swipeDirection === 'next') {\n        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n      }\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; // Breakpoints\n\n  if (params.breakpoints) {\n    swiper.setBreakpoint();\n  } // Save locks\n\n\n  const {\n    allowSlideNext,\n    allowSlidePrev,\n    snapGrid\n  } = swiper; // Disable locks on resize\n\n  swiper.allowSlideNext = true;\n  swiper.allowSlidePrev = true;\n  swiper.updateSize();\n  swiper.updateSlides();\n  swiper.updateSlidesClasses();\n\n  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n    swiper.slideTo(swiper.slides.length - 1, 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    swiper.autoplay.run();\n  } // Return locks after resize\n\n\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n\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\n  if (!swiper.allowClick) {\n    if (swiper.params.preventClicks) e.preventDefault();\n\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\n  if (swiper.isHorizontal()) {\n    swiper.translate = -wrapperEl.scrollLeft;\n  } else {\n    swiper.translate = -wrapperEl.scrollTop;\n  } // eslint-disable-next-line\n\n\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\n  if (translatesDiff === 0) {\n    newProgress = 0;\n  } else {\n    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n  }\n\n  if (newProgress !== swiper.progress) {\n    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n  }\n\n  swiper.emit('setTranslate', swiper.translate, false);\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';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n  const document = getDocument();\n  const {\n    params,\n    touchEvents,\n    el,\n    wrapperEl,\n    device,\n    support\n  } = swiper;\n  const capture = !!params.nested;\n  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n  const swiperMethod = method; // Touch Events\n\n  if (!support.touch) {\n    el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n    document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n    document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n  } else {\n    const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n      passive: true,\n      capture: false\n    } : false;\n    el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n    el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n      passive: false,\n      capture\n    } : capture);\n    el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n    if (touchEvents.cancel) {\n      el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n    }\n  } // Prevent Links Clicks\n\n\n  if (params.preventClicks || params.preventClicksPropagation) {\n    el[domMethod]('click', swiper.onClick, true);\n  }\n\n  if (params.cssMode) {\n    wrapperEl[domMethod]('scroll', swiper.onScroll);\n  } // Resize handler\n\n\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\nfunction attachEvents() {\n  const swiper = this;\n  const document = getDocument();\n  const {\n    params,\n    support\n  } = swiper;\n  swiper.onTouchStart = onTouchStart.bind(swiper);\n  swiper.onTouchMove = onTouchMove.bind(swiper);\n  swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n  if (params.cssMode) {\n    swiper.onScroll = onScroll.bind(swiper);\n  }\n\n  swiper.onClick = onClick.bind(swiper);\n\n  if (support.touch && !dummyEventAttached) {\n    document.addEventListener('touchstart', dummyEventListener);\n    dummyEventAttached = true;\n  }\n\n  events(swiper, 'on');\n}\n\nfunction detachEvents() {\n  const swiper = this;\n  events(swiper, 'off');\n}\n\nexport default {\n  attachEvents,\n  detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n  return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n  const swiper = this;\n  const {\n    activeIndex,\n    initialized,\n    loopedSlides = 0,\n    params,\n    $el\n  } = swiper;\n  const breakpoints = params.breakpoints;\n  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\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\n  if (wasMultiRow && !isMultiRow) {\n    $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n    swiper.emitContainerClasses();\n  } else if (!wasMultiRow && isMultiRow) {\n    $el.addClass(`${params.containerModifierClass}grid`);\n\n    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n      $el.addClass(`${params.containerModifierClass}grid-column`);\n    }\n\n    swiper.emitContainerClasses();\n  } // Toggle navigation, pagination, scrollbar\n\n\n  ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n    const wasModuleEnabled = params[prop] && params[prop].enabled;\n    const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n    if (wasModuleEnabled && !isModuleEnabled) {\n      swiper[prop].disable();\n    }\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\n  if (directionChanged && initialized) {\n    swiper.changeDirection();\n  }\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\n  if (wasEnabled && !isEnabled) {\n    swiper.disable();\n  } else if (!wasEnabled && isEnabled) {\n    swiper.enable();\n  }\n\n  swiper.currentBreakpoint = breakpoint;\n  swiper.emit('_beforeBreakpoint', breakpointParams);\n\n  if (needsReLoop && initialized) {\n    swiper.loopDestroy();\n    swiper.loopCreate();\n    swiper.updateSlides();\n    swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n  }\n\n  swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n  if (base === void 0) {\n    base = 'window';\n  }\n\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\n    return {\n      value: point,\n      point\n    };\n  });\n  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n  for (let i = 0; i < points.length; i += 1) {\n    const {\n      point,\n      value\n    } = points[i];\n\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\n  return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n  setBreakpoint,\n  getBreakpoint\n};","function prepareClasses(entries, prefix) {\n  const resultClasses = [];\n  entries.forEach(item => {\n    if (typeof item === 'object') {\n      Object.keys(item).forEach(classNames => {\n        if (item[classNames]) {\n          resultClasses.push(prefix + classNames);\n        }\n      });\n    } else if (typeof item === 'string') {\n      resultClasses.push(prefix + item);\n    }\n  });\n  return resultClasses;\n}\n\nexport default function addClasses() {\n  const swiper = this;\n  const {\n    classNames,\n    params,\n    rtl,\n    $el,\n    device,\n    support\n  } = swiper; // prettier-ignore\n\n  const suffixes = prepareClasses(['initialized', params.direction, {\n    'pointer-events': !support.touch\n  }, {\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.addClass([...classNames].join(' '));\n  swiper.emitContainerClasses();\n}","export default function removeClasses() {\n  const swiper = this;\n  const {\n    $el,\n    classNames\n  } = swiper;\n  $el.removeClass(classNames.join(' '));\n  swiper.emitContainerClasses();\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n  addClasses,\n  removeClasses\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n  const window = getWindow();\n  let image;\n\n  function onReady() {\n    if (callback) callback();\n  }\n\n  const isPicture = $(imageEl).parent('picture')[0];\n\n  if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n    if (src) {\n      image = new window.Image();\n      image.onload = onReady;\n      image.onerror = onReady;\n\n      if (sizes) {\n        image.sizes = sizes;\n      }\n\n      if (srcset) {\n        image.srcset = srcset;\n      }\n\n      if (src) {\n        image.src = src;\n      }\n    } else {\n      onReady();\n    }\n  } else {\n    // image already loaded...\n    onReady();\n  }\n}","export default function preloadImages() {\n  const swiper = this;\n  swiper.imagesToLoad = swiper.$el.find('img');\n\n  function onReady() {\n    if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n    if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n    if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n      if (swiper.params.updateOnImagesReady) swiper.update();\n      swiper.emit('imagesReady');\n    }\n  }\n\n  for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n    const imageEl = swiper.imagesToLoad[i];\n    swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n  }\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n  loadImage,\n  preloadImages\n};","function checkOverflow() {\n  const swiper = this;\n  const {\n    isLocked: wasLocked,\n    params\n  } = swiper;\n  const {\n    slidesOffsetBefore\n  } = params;\n\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\n  if (params.allowSlideNext === true) {\n    swiper.allowSlideNext = !swiper.isLocked;\n  }\n\n  if (params.allowSlidePrev === true) {\n    swiper.allowSlidePrev = !swiper.isLocked;\n  }\n\n  if (wasLocked && wasLocked !== swiper.isLocked) {\n    swiper.isEnd = false;\n  }\n\n  if (wasLocked !== swiper.isLocked) {\n    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n  }\n}\n\nexport default {\n  checkOverflow\n};","export default {\n  init: true,\n  direction: 'horizontal',\n  touchEventsTarget: 'wrapper',\n  initialSlide: 0,\n  speed: 300,\n  cssMode: false,\n  updateOnWindowResize: true,\n  resizeObserver: true,\n  nested: false,\n  createElements: false,\n  enabled: true,\n  focusableElements: 'input, select, option, textarea, button, video, label',\n  // 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  // 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: 0,\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  // Images\n  preloadImages: true,\n  updateOnImagesReady: true,\n  // loop\n  loop: false,\n  loopAdditionalSlides: 0,\n  loopedSlides: null,\n  loopFillGroupWithBlank: false,\n  loopPreventsSlide: 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  slideBlankClass: 'swiper-slide-invisible-blank',\n  slideActiveClass: 'swiper-slide-active',\n  slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n  slideVisibleClass: 'swiper-slide-visible',\n  slideDuplicateClass: 'swiper-slide-duplicate',\n  slideNextClass: 'swiper-slide-next',\n  slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n  slidePrevClass: 'swiper-slide-prev',\n  slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n  wrapperClass: 'swiper-wrapper',\n  // Callbacks\n  runCallbacksOnInit: true,\n  // Internals\n  _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n  return function extendParams(obj) {\n    if (obj === void 0) {\n      obj = {};\n    }\n\n    const moduleParamName = Object.keys(obj)[0];\n    const moduleParams = obj[moduleParamName];\n\n    if (typeof moduleParams !== 'object' || moduleParams === null) {\n      extend(allModulesParams, obj);\n      return;\n    }\n\n    if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n      params[moduleParamName] = {\n        auto: true\n      };\n    }\n\n    if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n      extend(allModulesParams, obj);\n      return;\n    }\n\n    if (params[moduleParamName] === true) {\n      params[moduleParamName] = {\n        enabled: true\n      };\n    }\n\n    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n      params[moduleParamName].enabled = true;\n    }\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 $ from '../shared/dom.js';\nimport { extend, now, deleteProps } 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 images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.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  images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n  constructor() {\n    let el;\n    let params;\n\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\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\n    if (!params) params = {};\n    params = extend({}, params);\n    if (el && !params.el) params.el = el;\n\n    if (params.el && $(params.el).length > 1) {\n      const swipers = [];\n      $(params.el).each(containerEl => {\n        const newParams = extend({}, params, {\n          el: containerEl\n        });\n        swipers.push(new Swiper(newParams));\n      });\n      return swipers;\n    } // Swiper Instance\n\n\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\n    if (params.modules && Array.isArray(params.modules)) {\n      swiper.modules.push(...params.modules);\n    }\n\n    const allModulesParams = {};\n    swiper.modules.forEach(mod => {\n      mod({\n        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    }); // Extend defaults with modules params\n\n    const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n    swiper.params = extend({}, swiperParams, extendedDefaults, params);\n    swiper.originalParams = extend({}, swiper.params);\n    swiper.passedParams = extend({}, params); // add event listeners\n\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\n    if (swiper.params && swiper.params.onAny) {\n      swiper.onAny(swiper.params.onAny);\n    } // Save Dom lib\n\n\n    swiper.$ = $; // Extend Swiper\n\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\n      // isDirection\n      isHorizontal() {\n        return swiper.params.direction === 'horizontal';\n      },\n\n      isVertical() {\n        return swiper.params.direction === 'vertical';\n      },\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      // Locks\n      allowSlideNext: swiper.params.allowSlideNext,\n      allowSlidePrev: swiper.params.allowSlidePrev,\n      // Touch Events\n      touchEvents: function touchEvents() {\n        const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n        const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n        swiper.touchEventsTouch = {\n          start: touch[0],\n          move: touch[1],\n          end: touch[2],\n          cancel: touch[3]\n        };\n        swiper.touchEventsDesktop = {\n          start: desktop[0],\n          move: desktop[1],\n          end: desktop[2]\n        };\n        return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n      }(),\n      touchEventsData: {\n        isTouched: undefined,\n        isMoved: undefined,\n        allowTouchCallbacks: undefined,\n        touchStartTime: undefined,\n        isScrolling: undefined,\n        currentTranslate: undefined,\n        startTranslate: undefined,\n        allowThresholdMove: undefined,\n        // Form elements to match\n        focusableElements: swiper.params.focusableElements,\n        // Last click time\n        lastClickTime: now(),\n        clickTimeout: undefined,\n        // Velocities\n        velocities: [],\n        allowMomentumBounce: undefined,\n        isTouchEvent: undefined,\n        startMoving: undefined\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'); // Init\n\n    if (swiper.params.init) {\n      swiper.init();\n    } // Return app instance\n\n\n    return swiper;\n  }\n\n  enable() {\n    const swiper = this;\n    if (swiper.enabled) return;\n    swiper.enabled = true;\n\n    if (swiper.params.grabCursor) {\n      swiper.setGrabCursor();\n    }\n\n    swiper.emit('enable');\n  }\n\n  disable() {\n    const swiper = this;\n    if (!swiper.enabled) return;\n    swiper.enabled = false;\n\n    if (swiper.params.grabCursor) {\n      swiper.unsetGrabCursor();\n    }\n\n    swiper.emit('disable');\n  }\n\n  setProgress(progress, speed) {\n    const swiper = this;\n    progress = Math.min(Math.max(progress, 0), 1);\n    const min = swiper.minTranslate();\n    const max = swiper.maxTranslate();\n    const current = (max - min) * progress + min;\n    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n\n  emitContainerClasses() {\n    const swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    const cls = swiper.el.className.split(' ').filter(className => {\n      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n    });\n    swiper.emit('_containerClasses', cls.join(' '));\n  }\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\n  emitSlidesClasses() {\n    const swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    const updates = [];\n    swiper.slides.each(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\n  slidesPerViewDynamic(view, exact) {\n    if (view === void 0) {\n      view = 'current';\n    }\n\n    if (exact === void 0) {\n      exact = false;\n    }\n\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\n    if (params.centeredSlides) {\n      let slideSize = slides[activeIndex].swiperSlideSize;\n      let breakLoop;\n\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\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\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\n          if (slideInView) {\n            spv += 1;\n          }\n        }\n      }\n    }\n\n    return spv;\n  }\n\n  update() {\n    const swiper = this;\n    if (!swiper || swiper.destroyed) return;\n    const {\n      snapGrid,\n      params\n    } = swiper; // Breakpoints\n\n    if (params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n\n    swiper.updateSize();\n    swiper.updateSlides();\n    swiper.updateProgress();\n    swiper.updateSlidesClasses();\n\n    function setTranslate() {\n      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n      swiper.setTranslate(newTranslate);\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n\n    let translated;\n\n    if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n      setTranslate();\n\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        translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n      } else {\n        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n      }\n\n      if (!translated) {\n        setTranslate();\n      }\n    }\n\n    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n      swiper.checkOverflow();\n    }\n\n    swiper.emit('update');\n  }\n\n  changeDirection(newDirection, needUpdate) {\n    if (needUpdate === void 0) {\n      needUpdate = true;\n    }\n\n    const swiper = this;\n    const currentDirection = swiper.params.direction;\n\n    if (!newDirection) {\n      // eslint-disable-next-line\n      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n    }\n\n    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n      return swiper;\n    }\n\n    swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n    swiper.emitContainerClasses();\n    swiper.params.direction = newDirection;\n    swiper.slides.each(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\n  mount(el) {\n    const swiper = this;\n    if (swiper.mounted) return true; // Find el\n\n    const $el = $(el || swiper.params.el);\n    el = $el[0];\n\n    if (!el) {\n      return false;\n    }\n\n    el.swiper = swiper;\n\n    const getWrapperSelector = () => {\n      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n    };\n\n    const getWrapper = () => {\n      if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n        const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n        res.children = options => $el.children(options);\n\n        return res;\n      }\n\n      if (!$el.children) {\n        return $($el).children(getWrapperSelector());\n      }\n\n      return $el.children(getWrapperSelector());\n    }; // Find Wrapper\n\n\n    let $wrapperEl = getWrapper();\n\n    if ($wrapperEl.length === 0 && swiper.params.createElements) {\n      const document = getDocument();\n      const wrapper = document.createElement('div');\n      $wrapperEl = $(wrapper);\n      wrapper.className = swiper.params.wrapperClass;\n      $el.append(wrapper);\n      $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n        $wrapperEl.append(slideEl);\n      });\n    }\n\n    Object.assign(swiper, {\n      $el,\n      el,\n      $wrapperEl,\n      wrapperEl: $wrapperEl[0],\n      mounted: true,\n      // RTL\n      rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n      wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n    });\n    return true;\n  }\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'); // Set breakpoint\n\n    if (swiper.params.breakpoints) {\n      swiper.setBreakpoint();\n    } // Add Classes\n\n\n    swiper.addClasses(); // Create loop\n\n    if (swiper.params.loop) {\n      swiper.loopCreate();\n    } // Update size\n\n\n    swiper.updateSize(); // Update slides\n\n    swiper.updateSlides();\n\n    if (swiper.params.watchOverflow) {\n      swiper.checkOverflow();\n    } // Set Grab Cursor\n\n\n    if (swiper.params.grabCursor && swiper.enabled) {\n      swiper.setGrabCursor();\n    }\n\n    if (swiper.params.preloadImages) {\n      swiper.preloadImages();\n    } // Slide To Initial Slide\n\n\n    if (swiper.params.loop) {\n      swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n    } else {\n      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n    } // Attach events\n\n\n    swiper.attachEvents(); // Init Flag\n\n    swiper.initialized = true; // Emit\n\n    swiper.emit('init');\n    swiper.emit('afterInit');\n    return swiper;\n  }\n\n  destroy(deleteInstance, cleanStyles) {\n    if (deleteInstance === void 0) {\n      deleteInstance = true;\n    }\n\n    if (cleanStyles === void 0) {\n      cleanStyles = true;\n    }\n\n    const swiper = this;\n    const {\n      params,\n      $el,\n      $wrapperEl,\n      slides\n    } = swiper;\n\n    if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n      return null;\n    }\n\n    swiper.emit('beforeDestroy'); // Init Flag\n\n    swiper.initialized = false; // Detach events\n\n    swiper.detachEvents(); // Destroy loop\n\n    if (params.loop) {\n      swiper.loopDestroy();\n    } // Cleanup styles\n\n\n    if (cleanStyles) {\n      swiper.removeClasses();\n      $el.removeAttr('style');\n      $wrapperEl.removeAttr('style');\n\n      if (slides && slides.length) {\n        slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n      }\n    }\n\n    swiper.emit('destroy'); // Detach emitter events\n\n    Object.keys(swiper.eventsListeners).forEach(eventName => {\n      swiper.off(eventName);\n    });\n\n    if (deleteInstance !== false) {\n      swiper.$el[0].swiper = null;\n      deleteProps(swiper);\n    }\n\n    swiper.destroyed = true;\n    return null;\n  }\n\n  static extendDefaults(newDefaults) {\n    extend(extendedDefaults, newDefaults);\n  }\n\n  static get extendedDefaults() {\n    return extendedDefaults;\n  }\n\n  static get defaults() {\n    return defaults;\n  }\n\n  static installModule(mod) {\n    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n    const modules = Swiper.prototype.__modules__;\n\n    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n      modules.push(mod);\n    }\n  }\n\n  static use(module) {\n    if (Array.isArray(module)) {\n      module.forEach(m => Swiper.installModule(m));\n      return Swiper;\n    }\n\n    Swiper.installModule(module);\n    return Swiper;\n  }\n\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 $ from '../../shared/dom.js';\nimport { setCSSProperty } from '../../shared/utils.js';\nexport default function Virtual(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on,\n    emit\n  } = _ref;\n  extendParams({\n    virtual: {\n      enabled: false,\n      slides: [],\n      cache: true,\n      renderSlide: null,\n      renderExternal: null,\n      renderExternalUpdate: true,\n      addSlidesBefore: 0,\n      addSlidesAfter: 0\n    }\n  });\n  let cssModeTimeout;\n  swiper.virtual = {\n    cache: {},\n    from: undefined,\n    to: undefined,\n    slides: [],\n    offset: 0,\n    slidesGrid: []\n  };\n\n  function renderSlide(slide, index) {\n    const params = swiper.params.virtual;\n\n    if (params.cache && swiper.virtual.cache[index]) {\n      return swiper.virtual.cache[index];\n    }\n\n    const $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(`<div class=\"${swiper.params.slideClass}\" data-swiper-slide-index=\"${index}\">${slide}</div>`);\n    if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n    if (params.cache) swiper.virtual.cache[index] = $slideEl;\n    return $slideEl;\n  }\n\n  function update(force) {\n    const {\n      slidesPerView,\n      slidesPerGroup,\n      centeredSlides\n    } = swiper.params;\n    const {\n      addSlidesBefore,\n      addSlidesAfter\n    } = swiper.params.virtual;\n    const {\n      from: previousFrom,\n      to: previousTo,\n      slides,\n      slidesGrid: previousSlidesGrid,\n      offset: previousOffset\n    } = swiper.virtual;\n\n    if (!swiper.params.cssMode) {\n      swiper.updateActiveIndex();\n    }\n\n    const activeIndex = swiper.activeIndex || 0;\n    let offsetProp;\n    if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n    let slidesAfter;\n    let slidesBefore;\n\n    if (centeredSlides) {\n      slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n      slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n    } else {\n      slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n      slidesBefore = slidesPerGroup + addSlidesBefore;\n    }\n\n    const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n    const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n    const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n    Object.assign(swiper.virtual, {\n      from,\n      to,\n      offset,\n      slidesGrid: swiper.slidesGrid\n    });\n\n    function onRendered() {\n      swiper.updateSlides();\n      swiper.updateProgress();\n      swiper.updateSlidesClasses();\n\n      if (swiper.lazy && swiper.params.lazy.enabled) {\n        swiper.lazy.load();\n      }\n\n      emit('virtualUpdate');\n    }\n\n    if (previousFrom === from && previousTo === to && !force) {\n      if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n        swiper.slides.css(offsetProp, `${offset}px`);\n      }\n\n      swiper.updateProgress();\n      emit('virtualUpdate');\n      return;\n    }\n\n    if (swiper.params.virtual.renderExternal) {\n      swiper.params.virtual.renderExternal.call(swiper, {\n        offset,\n        from,\n        to,\n        slides: function getSlides() {\n          const slidesToRender = [];\n\n          for (let i = from; i <= to; i += 1) {\n            slidesToRender.push(slides[i]);\n          }\n\n          return slidesToRender;\n        }()\n      });\n\n      if (swiper.params.virtual.renderExternalUpdate) {\n        onRendered();\n      } else {\n        emit('virtualUpdate');\n      }\n\n      return;\n    }\n\n    const prependIndexes = [];\n    const appendIndexes = [];\n\n    if (force) {\n      swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n    } else {\n      for (let i = previousFrom; i <= previousTo; i += 1) {\n        if (i < from || i > to) {\n          swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n        }\n      }\n    }\n\n    for (let i = 0; i < slides.length; i += 1) {\n      if (i >= from && i <= to) {\n        if (typeof previousTo === 'undefined' || force) {\n          appendIndexes.push(i);\n        } else {\n          if (i > previousTo) appendIndexes.push(i);\n          if (i < previousFrom) prependIndexes.push(i);\n        }\n      }\n    }\n\n    appendIndexes.forEach(index => {\n      swiper.$wrapperEl.append(renderSlide(slides[index], index));\n    });\n    prependIndexes.sort((a, b) => b - a).forEach(index => {\n      swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n    });\n    swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n    onRendered();\n  }\n\n  function appendSlide(slides) {\n    if (typeof slides === 'object' && 'length' in slides) {\n      for (let i = 0; i < slides.length; i += 1) {\n        if (slides[i]) swiper.virtual.slides.push(slides[i]);\n      }\n    } else {\n      swiper.virtual.slides.push(slides);\n    }\n\n    update(true);\n  }\n\n  function prependSlide(slides) {\n    const activeIndex = swiper.activeIndex;\n    let newActiveIndex = activeIndex + 1;\n    let numberOfNewSlides = 1;\n\n    if (Array.isArray(slides)) {\n      for (let i = 0; i < slides.length; i += 1) {\n        if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n      }\n\n      newActiveIndex = activeIndex + slides.length;\n      numberOfNewSlides = slides.length;\n    } else {\n      swiper.virtual.slides.unshift(slides);\n    }\n\n    if (swiper.params.virtual.cache) {\n      const cache = swiper.virtual.cache;\n      const newCache = {};\n      Object.keys(cache).forEach(cachedIndex => {\n        const $cachedEl = cache[cachedIndex];\n        const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n        if (cachedElIndex) {\n          $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n        }\n\n        newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n      });\n      swiper.virtual.cache = newCache;\n    }\n\n    update(true);\n    swiper.slideTo(newActiveIndex, 0);\n  }\n\n  function removeSlide(slidesIndexes) {\n    if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n    let activeIndex = swiper.activeIndex;\n\n    if (Array.isArray(slidesIndexes)) {\n      for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n        swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n        if (swiper.params.virtual.cache) {\n          delete swiper.virtual.cache[slidesIndexes[i]];\n        }\n\n        if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n        activeIndex = Math.max(activeIndex, 0);\n      }\n    } else {\n      swiper.virtual.slides.splice(slidesIndexes, 1);\n\n      if (swiper.params.virtual.cache) {\n        delete swiper.virtual.cache[slidesIndexes];\n      }\n\n      if (slidesIndexes < activeIndex) activeIndex -= 1;\n      activeIndex = Math.max(activeIndex, 0);\n    }\n\n    update(true);\n    swiper.slideTo(activeIndex, 0);\n  }\n\n  function removeAllSlides() {\n    swiper.virtual.slides = [];\n\n    if (swiper.params.virtual.cache) {\n      swiper.virtual.cache = {};\n    }\n\n    update(true);\n    swiper.slideTo(0, 0);\n  }\n\n  on('beforeInit', () => {\n    if (!swiper.params.virtual.enabled) return;\n    swiper.virtual.slides = swiper.params.virtual.slides;\n    swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n    swiper.params.watchSlidesProgress = true;\n    swiper.originalParams.watchSlidesProgress = true;\n\n    if (!swiper.params.initialSlide) {\n      update();\n    }\n  });\n  on('setTranslate', () => {\n    if (!swiper.params.virtual.enabled) return;\n\n    if (swiper.params.cssMode && !swiper._immediateVirtual) {\n      clearTimeout(cssModeTimeout);\n      cssModeTimeout = setTimeout(() => {\n        update();\n      }, 100);\n    } else {\n      update();\n    }\n  });\n  on('init update resize', () => {\n    if (!swiper.params.virtual.enabled) return;\n\n    if (swiper.params.cssMode) {\n      setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n    }\n  });\n  Object.assign(swiper.virtual, {\n    appendSlide,\n    prependSlide,\n    removeSlide,\n    removeAllSlides,\n    update\n  });\n}","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Keyboard(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on,\n    emit\n  } = _ref;\n  const document = getDocument();\n  const window = getWindow();\n  swiper.keyboard = {\n    enabled: false\n  };\n  extendParams({\n    keyboard: {\n      enabled: false,\n      onlyInViewport: true,\n      pageUpDown: true\n    }\n  });\n\n  function handle(event) {\n    if (!swiper.enabled) return;\n    const {\n      rtlTranslate: rtl\n    } = swiper;\n    let e = event;\n    if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n    const kc = e.keyCode || e.charCode;\n    const pageUpDown = swiper.params.keyboard.pageUpDown;\n    const isPageUp = pageUpDown && kc === 33;\n    const isPageDown = pageUpDown && kc === 34;\n    const isArrowLeft = kc === 37;\n    const isArrowRight = kc === 39;\n    const isArrowUp = kc === 38;\n    const isArrowDown = kc === 40; // Directions locks\n\n    if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n      return false;\n    }\n\n    if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n      return false;\n    }\n\n    if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n      return undefined;\n    }\n\n    if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n      return undefined;\n    }\n\n    if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n      let inView = false; // Check that swiper should be inside of visible area of window\n\n      if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n        return undefined;\n      }\n\n      const $el = swiper.$el;\n      const swiperWidth = $el[0].clientWidth;\n      const swiperHeight = $el[0].clientHeight;\n      const windowWidth = window.innerWidth;\n      const windowHeight = window.innerHeight;\n      const swiperOffset = swiper.$el.offset();\n      if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n      const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n      for (let i = 0; i < swiperCoord.length; i += 1) {\n        const point = swiperCoord[i];\n\n        if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n          if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n          inView = true;\n        }\n      }\n\n      if (!inView) return undefined;\n    }\n\n    if (swiper.isHorizontal()) {\n      if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n        if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n      }\n\n      if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n      if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n    } else {\n      if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n        if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n      }\n\n      if (isPageDown || isArrowDown) swiper.slideNext();\n      if (isPageUp || isArrowUp) swiper.slidePrev();\n    }\n\n    emit('keyPress', kc);\n    return undefined;\n  }\n\n  function enable() {\n    if (swiper.keyboard.enabled) return;\n    $(document).on('keydown', handle);\n    swiper.keyboard.enabled = true;\n  }\n\n  function disable() {\n    if (!swiper.keyboard.enabled) return;\n    $(document).off('keydown', handle);\n    swiper.keyboard.enabled = false;\n  }\n\n  on('init', () => {\n    if (swiper.params.keyboard.enabled) {\n      enable();\n    }\n  });\n  on('destroy', () => {\n    if (swiper.keyboard.enabled) {\n      disable();\n    }\n  });\n  Object.assign(swiper.keyboard, {\n    enable,\n    disable\n  });\n}","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on,\n    emit\n  } = _ref;\n  const window = getWindow();\n  extendParams({\n    mousewheel: {\n      enabled: false,\n      releaseOnEdges: false,\n      invert: false,\n      forceToAxis: false,\n      sensitivity: 1,\n      eventsTarget: 'container',\n      thresholdDelta: null,\n      thresholdTime: null\n    }\n  });\n  swiper.mousewheel = {\n    enabled: false\n  };\n  let timeout;\n  let lastScrollTime = now();\n  let lastEventBeforeSnap;\n  const recentWheelEvents = [];\n\n  function normalize(e) {\n    // Reasonable defaults\n    const PIXEL_STEP = 10;\n    const LINE_HEIGHT = 40;\n    const PAGE_HEIGHT = 800;\n    let sX = 0;\n    let sY = 0; // spinX, spinY\n\n    let pX = 0;\n    let pY = 0; // pixelX, pixelY\n    // Legacy\n\n    if ('detail' in e) {\n      sY = e.detail;\n    }\n\n    if ('wheelDelta' in e) {\n      sY = -e.wheelDelta / 120;\n    }\n\n    if ('wheelDeltaY' in e) {\n      sY = -e.wheelDeltaY / 120;\n    }\n\n    if ('wheelDeltaX' in e) {\n      sX = -e.wheelDeltaX / 120;\n    } // side scrolling on FF with DOMMouseScroll\n\n\n    if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n      sX = sY;\n      sY = 0;\n    }\n\n    pX = sX * PIXEL_STEP;\n    pY = sY * PIXEL_STEP;\n\n    if ('deltaY' in e) {\n      pY = e.deltaY;\n    }\n\n    if ('deltaX' in e) {\n      pX = e.deltaX;\n    }\n\n    if (e.shiftKey && !pX) {\n      // if user scrolls with shift he wants horizontal scroll\n      pX = pY;\n      pY = 0;\n    }\n\n    if ((pX || pY) && e.deltaMode) {\n      if (e.deltaMode === 1) {\n        // delta in LINE units\n        pX *= LINE_HEIGHT;\n        pY *= LINE_HEIGHT;\n      } else {\n        // delta in PAGE units\n        pX *= PAGE_HEIGHT;\n        pY *= PAGE_HEIGHT;\n      }\n    } // Fall-back if spin cannot be determined\n\n\n    if (pX && !sX) {\n      sX = pX < 1 ? -1 : 1;\n    }\n\n    if (pY && !sY) {\n      sY = pY < 1 ? -1 : 1;\n    }\n\n    return {\n      spinX: sX,\n      spinY: sY,\n      pixelX: pX,\n      pixelY: pY\n    };\n  }\n\n  function handleMouseEnter() {\n    if (!swiper.enabled) return;\n    swiper.mouseEntered = true;\n  }\n\n  function handleMouseLeave() {\n    if (!swiper.enabled) return;\n    swiper.mouseEntered = false;\n  }\n\n  function animateSlider(newEvent) {\n    if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n      // Prevent if delta of wheel scroll delta is below configured threshold\n      return false;\n    }\n\n    if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n      // Prevent if time between scrolls is below configured threshold\n      return false;\n    } // If the movement is NOT big enough and\n    // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n    //   Don't go any further (avoid insignificant scroll movement).\n\n\n    if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n      // Return false as a default\n      return true;\n    } // If user is scrolling towards the end:\n    //   If the slider hasn't hit the latest slide or\n    //   if the slider is a loop and\n    //   if the slider isn't moving right now:\n    //     Go to next slide and\n    //     emit a scroll event.\n    // Else (the user is scrolling towards the beginning) and\n    // if the slider hasn't hit the first slide or\n    // if the slider is a loop and\n    // if the slider isn't moving right now:\n    //   Go to prev slide and\n    //   emit a scroll event.\n\n\n    if (newEvent.direction < 0) {\n      if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n        swiper.slideNext();\n        emit('scroll', newEvent.raw);\n      }\n    } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n      swiper.slidePrev();\n      emit('scroll', newEvent.raw);\n    } // If you got here is because an animation has been triggered so store the current time\n\n\n    lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n    return false;\n  }\n\n  function releaseScroll(newEvent) {\n    const params = swiper.params.mousewheel;\n\n    if (newEvent.direction < 0) {\n      if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n        // Return true to animate scroll on edges\n        return true;\n      }\n    } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n      // Return true to animate scroll on edges\n      return true;\n    }\n\n    return false;\n  }\n\n  function handle(event) {\n    let e = event;\n    let disableParentSwiper = true;\n    if (!swiper.enabled) return;\n    const params = swiper.params.mousewheel;\n\n    if (swiper.params.cssMode) {\n      e.preventDefault();\n    }\n\n    let target = swiper.$el;\n\n    if (swiper.params.mousewheel.eventsTarget !== 'container') {\n      target = $(swiper.params.mousewheel.eventsTarget);\n    }\n\n    if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n    if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n    let delta = 0;\n    const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n    const data = normalize(e);\n\n    if (params.forceToAxis) {\n      if (swiper.isHorizontal()) {\n        if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n      } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n    } else {\n      delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n    }\n\n    if (delta === 0) return true;\n    if (params.invert) delta = -delta; // Get the scroll positions\n\n    let positions = swiper.getTranslate() + delta * params.sensitivity;\n    if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n    if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n    //     the disableParentSwiper will be true.\n    // When loop is false:\n    //     if the scroll positions is not on edge,\n    //     then the disableParentSwiper will be true.\n    //     if the scroll on edge positions,\n    //     then the disableParentSwiper will be false.\n\n    disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n    if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n    if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n      // Register the new event in a variable which stores the relevant data\n      const newEvent = {\n        time: now(),\n        delta: Math.abs(delta),\n        direction: Math.sign(delta),\n        raw: event\n      }; // Keep the most recent events\n\n      if (recentWheelEvents.length >= 2) {\n        recentWheelEvents.shift(); // only store the last N events\n      }\n\n      const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n      recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n      //   If direction has changed or\n      //   if the scroll is quicker than the previous one:\n      //     Animate the slider.\n      // Else (this is the first time the wheel is moved):\n      //     Animate the slider.\n\n      if (prevEvent) {\n        if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n          animateSlider(newEvent);\n        }\n      } else {\n        animateSlider(newEvent);\n      } // If it's time to release the scroll:\n      //   Return now so you don't hit the preventDefault.\n\n\n      if (releaseScroll(newEvent)) {\n        return true;\n      }\n    } else {\n      // Freemode or scrollContainer:\n      // If we recently snapped after a momentum scroll, then ignore wheel events\n      // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n      // or if it's a new scroll (larger delta or inverse sign as last event before\n      // an end-of-momentum snap).\n      const newEvent = {\n        time: now(),\n        delta: Math.abs(delta),\n        direction: Math.sign(delta)\n      };\n      const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n\n      if (!ignoreWheelEvents) {\n        lastEventBeforeSnap = undefined;\n\n        if (swiper.params.loop) {\n          swiper.loopFix();\n        }\n\n        let position = swiper.getTranslate() + delta * params.sensitivity;\n        const wasBeginning = swiper.isBeginning;\n        const wasEnd = swiper.isEnd;\n        if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n        if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n        swiper.setTransition(0);\n        swiper.setTranslate(position);\n        swiper.updateProgress();\n        swiper.updateActiveIndex();\n        swiper.updateSlidesClasses();\n\n        if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n          swiper.updateSlidesClasses();\n        }\n\n        if (swiper.params.freeMode.sticky) {\n          // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n          // the end of a momentum scroll by storing recent (N=15?) wheel events.\n          // 1. do all N events have decreasing or same (absolute value) delta?\n          // 2. did all N events arrive in the last M (M=500?) msecs?\n          // 3. does the earliest event have an (absolute value) delta that's\n          //    at least P (P=1?) larger than the most recent event's delta?\n          // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n          // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n          // Snap immediately and ignore remaining wheel events in this scroll.\n          // See comment above for \"remaining wheel events in this scroll\" determination.\n          // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n          clearTimeout(timeout);\n          timeout = undefined;\n\n          if (recentWheelEvents.length >= 15) {\n            recentWheelEvents.shift(); // only store the last N events\n          }\n\n          const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n          const firstEvent = recentWheelEvents[0];\n          recentWheelEvents.push(newEvent);\n\n          if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n            // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n            recentWheelEvents.splice(0);\n          } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n            // We're at the end of the deceleration of a momentum scroll, so there's no need\n            // to wait for more events. Snap ASAP on the next tick.\n            // Also, because there's some remaining momentum we'll bias the snap in the\n            // direction of the ongoing scroll because it's better UX for the scroll to snap\n            // in the same direction as the scroll instead of reversing to snap.  Therefore,\n            // if it's already scrolled more than 20% in the current direction, keep going.\n            const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n            lastEventBeforeSnap = newEvent;\n            recentWheelEvents.splice(0);\n            timeout = nextTick(() => {\n              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n            }, 0); // no delay; move on next tick\n          }\n\n          if (!timeout) {\n            // if we get here, then we haven't detected the end of a momentum scroll, so\n            // we'll consider a scroll \"complete\" when there haven't been any wheel events\n            // for 500ms.\n            timeout = nextTick(() => {\n              const snapToThreshold = 0.5;\n              lastEventBeforeSnap = newEvent;\n              recentWheelEvents.splice(0);\n              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n            }, 500);\n          }\n        } // Emit event\n\n\n        if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay\n\n        if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n        if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n      }\n    }\n\n    if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n    return false;\n  }\n\n  function events(method) {\n    let target = swiper.$el;\n\n    if (swiper.params.mousewheel.eventsTarget !== 'container') {\n      target = $(swiper.params.mousewheel.eventsTarget);\n    }\n\n    target[method]('mouseenter', handleMouseEnter);\n    target[method]('mouseleave', handleMouseLeave);\n    target[method]('wheel', handle);\n  }\n\n  function enable() {\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.removeEventListener('wheel', handle);\n      return true;\n    }\n\n    if (swiper.mousewheel.enabled) return false;\n    events('on');\n    swiper.mousewheel.enabled = true;\n    return true;\n  }\n\n  function disable() {\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.addEventListener(event, handle);\n      return true;\n    }\n\n    if (!swiper.mousewheel.enabled) return false;\n    events('off');\n    swiper.mousewheel.enabled = false;\n    return true;\n  }\n\n  on('init', () => {\n    if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n      disable();\n    }\n\n    if (swiper.params.mousewheel.enabled) enable();\n  });\n  on('destroy', () => {\n    if (swiper.params.cssMode) {\n      enable();\n    }\n\n    if (swiper.mousewheel.enabled) disable();\n  });\n  Object.assign(swiper.mousewheel, {\n    enable,\n    disable\n  });\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n  const document = getDocument();\n\n  if (swiper.params.createElements) {\n    Object.keys(checkProps).forEach(key => {\n      if (!params[key] && params.auto === true) {\n        let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n        if (!element) {\n          element = document.createElement('div');\n          element.className = checkProps[key];\n          swiper.$el.append(element);\n        }\n\n        params[key] = element;\n        originalParams[key] = element;\n      }\n    });\n  }\n\n  return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on,\n    emit\n  } = _ref;\n  extendParams({\n    navigation: {\n      nextEl: null,\n      prevEl: null,\n      hideOnClick: false,\n      disabledClass: 'swiper-button-disabled',\n      hiddenClass: 'swiper-button-hidden',\n      lockClass: 'swiper-button-lock',\n      navigationDisabledClass: 'swiper-navigation-disabled'\n    }\n  });\n  swiper.navigation = {\n    nextEl: null,\n    $nextEl: null,\n    prevEl: null,\n    $prevEl: null\n  };\n\n  function getEl(el) {\n    let $el;\n\n    if (el) {\n      $el = $(el);\n\n      if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n        $el = swiper.$el.find(el);\n      }\n    }\n\n    return $el;\n  }\n\n  function toggleEl($el, disabled) {\n    const params = swiper.params.navigation;\n\n    if ($el && $el.length > 0) {\n      $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n      if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n      if (swiper.params.watchOverflow && swiper.enabled) {\n        $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n      }\n    }\n  }\n\n  function update() {\n    // Update Navigation Buttons\n    if (swiper.params.loop) return;\n    const {\n      $nextEl,\n      $prevEl\n    } = swiper.navigation;\n    toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n    toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n  }\n\n  function onPrevClick(e) {\n    e.preventDefault();\n    if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n    swiper.slidePrev();\n  }\n\n  function onNextClick(e) {\n    e.preventDefault();\n    if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n    swiper.slideNext();\n  }\n\n  function init() {\n    const params = swiper.params.navigation;\n    swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n      nextEl: 'swiper-button-next',\n      prevEl: 'swiper-button-prev'\n    });\n    if (!(params.nextEl || params.prevEl)) return;\n    const $nextEl = getEl(params.nextEl);\n    const $prevEl = getEl(params.prevEl);\n\n    if ($nextEl && $nextEl.length > 0) {\n      $nextEl.on('click', onNextClick);\n    }\n\n    if ($prevEl && $prevEl.length > 0) {\n      $prevEl.on('click', onPrevClick);\n    }\n\n    Object.assign(swiper.navigation, {\n      $nextEl,\n      nextEl: $nextEl && $nextEl[0],\n      $prevEl,\n      prevEl: $prevEl && $prevEl[0]\n    });\n\n    if (!swiper.enabled) {\n      if ($nextEl) $nextEl.addClass(params.lockClass);\n      if ($prevEl) $prevEl.addClass(params.lockClass);\n    }\n  }\n\n  function destroy() {\n    const {\n      $nextEl,\n      $prevEl\n    } = swiper.navigation;\n\n    if ($nextEl && $nextEl.length) {\n      $nextEl.off('click', onNextClick);\n      $nextEl.removeClass(swiper.params.navigation.disabledClass);\n    }\n\n    if ($prevEl && $prevEl.length) {\n      $prevEl.off('click', onPrevClick);\n      $prevEl.removeClass(swiper.params.navigation.disabledClass);\n    }\n  }\n\n  on('init', () => {\n    if (swiper.params.navigation.enabled === false) {\n      // eslint-disable-next-line\n      disable();\n    } else {\n      init();\n      update();\n    }\n  });\n  on('toEdge fromEdge lock unlock', () => {\n    update();\n  });\n  on('destroy', () => {\n    destroy();\n  });\n  on('enable disable', () => {\n    const {\n      $nextEl,\n      $prevEl\n    } = swiper.navigation;\n\n    if ($nextEl) {\n      $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n    }\n\n    if ($prevEl) {\n      $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n    }\n  });\n  on('click', (_s, e) => {\n    const {\n      $nextEl,\n      $prevEl\n    } = swiper.navigation;\n    const targetEl = e.target;\n\n    if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n      if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n      let isHidden;\n\n      if ($nextEl) {\n        isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n      } else if ($prevEl) {\n        isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n      }\n\n      if (isHidden === true) {\n        emit('navigationShow');\n      } else {\n        emit('navigationHide');\n      }\n\n      if ($nextEl) {\n        $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n      }\n\n      if ($prevEl) {\n        $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n      }\n    }\n  });\n\n  const enable = () => {\n    swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n    init();\n    update();\n  };\n\n  const disable = () => {\n    swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n    destroy();\n  };\n\n  Object.assign(swiper.navigation, {\n    enable,\n    disable,\n    update,\n    init,\n    destroy\n  });\n}","export default function classesToSelector(classes) {\n  if (classes === void 0) {\n    classes = '';\n  }\n\n  return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n  .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on,\n    emit\n  } = _ref;\n  const pfx = 'swiper-pagination';\n  extendParams({\n    pagination: {\n      el: null,\n      bulletElement: 'span',\n      clickable: false,\n      hideOnClick: false,\n      renderBullet: null,\n      renderProgressbar: null,\n      renderFraction: null,\n      renderCustom: null,\n      progressbarOpposite: false,\n      type: 'bullets',\n      // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n      dynamicBullets: false,\n      dynamicMainBullets: 1,\n      formatFractionCurrent: number => number,\n      formatFractionTotal: number => number,\n      bulletClass: `${pfx}-bullet`,\n      bulletActiveClass: `${pfx}-bullet-active`,\n      modifierClass: `${pfx}-`,\n      currentClass: `${pfx}-current`,\n      totalClass: `${pfx}-total`,\n      hiddenClass: `${pfx}-hidden`,\n      progressbarFillClass: `${pfx}-progressbar-fill`,\n      progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n      clickableClass: `${pfx}-clickable`,\n      lockClass: `${pfx}-lock`,\n      horizontalClass: `${pfx}-horizontal`,\n      verticalClass: `${pfx}-vertical`,\n      paginationDisabledClass: `${pfx}-disabled`\n    }\n  });\n  swiper.pagination = {\n    el: null,\n    $el: null,\n    bullets: []\n  };\n  let bulletSize;\n  let dynamicBulletIndex = 0;\n\n  function isPaginationDisabled() {\n    return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n  }\n\n  function setSideBullets($bulletEl, position) {\n    const {\n      bulletActiveClass\n    } = swiper.params.pagination;\n    $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n  }\n\n  function update() {\n    // Render || Update Pagination bullets/items\n    const rtl = swiper.rtl;\n    const params = swiper.params.pagination;\n    if (isPaginationDisabled()) return;\n    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n    const $el = swiper.pagination.$el; // Current/Total\n\n    let current;\n    const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n    if (swiper.params.loop) {\n      current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n      if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n        current -= slidesLength - swiper.loopedSlides * 2;\n      }\n\n      if (current > total - 1) current -= total;\n      if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n    } else if (typeof swiper.snapIndex !== 'undefined') {\n      current = swiper.snapIndex;\n    } else {\n      current = swiper.activeIndex || 0;\n    } // Types\n\n\n    if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n      const bullets = swiper.pagination.bullets;\n      let firstIndex;\n      let lastIndex;\n      let midIndex;\n\n      if (params.dynamicBullets) {\n        bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n        $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n        if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n          dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n          if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n            dynamicBulletIndex = params.dynamicMainBullets - 1;\n          } else if (dynamicBulletIndex < 0) {\n            dynamicBulletIndex = 0;\n          }\n        }\n\n        firstIndex = Math.max(current - dynamicBulletIndex, 0);\n        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n        midIndex = (lastIndex + firstIndex) / 2;\n      }\n\n      bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n      if ($el.length > 1) {\n        bullets.each(bullet => {\n          const $bullet = $(bullet);\n          const bulletIndex = $bullet.index();\n\n          if (bulletIndex === current) {\n            $bullet.addClass(params.bulletActiveClass);\n          }\n\n          if (params.dynamicBullets) {\n            if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n              $bullet.addClass(`${params.bulletActiveClass}-main`);\n            }\n\n            if (bulletIndex === firstIndex) {\n              setSideBullets($bullet, 'prev');\n            }\n\n            if (bulletIndex === lastIndex) {\n              setSideBullets($bullet, 'next');\n            }\n          }\n        });\n      } else {\n        const $bullet = bullets.eq(current);\n        const bulletIndex = $bullet.index();\n        $bullet.addClass(params.bulletActiveClass);\n\n        if (params.dynamicBullets) {\n          const $firstDisplayedBullet = bullets.eq(firstIndex);\n          const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n          for (let i = firstIndex; i <= lastIndex; i += 1) {\n            bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n          }\n\n          if (swiper.params.loop) {\n            if (bulletIndex >= bullets.length) {\n              for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n                bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n              }\n\n              bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n            } else {\n              setSideBullets($firstDisplayedBullet, 'prev');\n              setSideBullets($lastDisplayedBullet, 'next');\n            }\n          } else {\n            setSideBullets($firstDisplayedBullet, 'prev');\n            setSideBullets($lastDisplayedBullet, 'next');\n          }\n        }\n      }\n\n      if (params.dynamicBullets) {\n        const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n        const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n        const offsetProp = rtl ? 'right' : 'left';\n        bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n      }\n    }\n\n    if (params.type === 'fraction') {\n      $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n      $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n    }\n\n    if (params.type === 'progressbar') {\n      let progressbarDirection;\n\n      if (params.progressbarOpposite) {\n        progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n      } else {\n        progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n      }\n\n      const scale = (current + 1) / total;\n      let scaleX = 1;\n      let scaleY = 1;\n\n      if (progressbarDirection === 'horizontal') {\n        scaleX = scale;\n      } else {\n        scaleY = scale;\n      }\n\n      $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n    }\n\n    if (params.type === 'custom' && params.renderCustom) {\n      $el.html(params.renderCustom(swiper, current + 1, total));\n      emit('paginationRender', $el[0]);\n    } else {\n      emit('paginationUpdate', $el[0]);\n    }\n\n    if (swiper.params.watchOverflow && swiper.enabled) {\n      $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n    }\n  }\n\n  function render() {\n    // Render Container\n    const params = swiper.params.pagination;\n    if (isPaginationDisabled()) return;\n    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n    const $el = swiper.pagination.$el;\n    let paginationHTML = '';\n\n    if (params.type === 'bullets') {\n      let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n      if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n        numberOfBullets = slidesLength;\n      }\n\n      for (let i = 0; i < numberOfBullets; i += 1) {\n        if (params.renderBullet) {\n          paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n        } else {\n          paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n        }\n      }\n\n      $el.html(paginationHTML);\n      swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n    }\n\n    if (params.type === 'fraction') {\n      if (params.renderFraction) {\n        paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n      } else {\n        paginationHTML = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n      }\n\n      $el.html(paginationHTML);\n    }\n\n    if (params.type === 'progressbar') {\n      if (params.renderProgressbar) {\n        paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n      } else {\n        paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n      }\n\n      $el.html(paginationHTML);\n    }\n\n    if (params.type !== 'custom') {\n      emit('paginationRender', swiper.pagination.$el[0]);\n    }\n  }\n\n  function init() {\n    swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n      el: 'swiper-pagination'\n    });\n    const params = swiper.params.pagination;\n    if (!params.el) return;\n    let $el = $(params.el);\n    if ($el.length === 0) return;\n\n    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n      $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n      if ($el.length > 1) {\n        $el = $el.filter(el => {\n          if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n          return true;\n        });\n      }\n    }\n\n    if (params.type === 'bullets' && params.clickable) {\n      $el.addClass(params.clickableClass);\n    }\n\n    $el.addClass(params.modifierClass + params.type);\n    $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n    if (params.type === 'bullets' && params.dynamicBullets) {\n      $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n      dynamicBulletIndex = 0;\n\n      if (params.dynamicMainBullets < 1) {\n        params.dynamicMainBullets = 1;\n      }\n    }\n\n    if (params.type === 'progressbar' && params.progressbarOpposite) {\n      $el.addClass(params.progressbarOppositeClass);\n    }\n\n    if (params.clickable) {\n      $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n        e.preventDefault();\n        let index = $(this).index() * swiper.params.slidesPerGroup;\n        if (swiper.params.loop) index += swiper.loopedSlides;\n        swiper.slideTo(index);\n      });\n    }\n\n    Object.assign(swiper.pagination, {\n      $el,\n      el: $el[0]\n    });\n\n    if (!swiper.enabled) {\n      $el.addClass(params.lockClass);\n    }\n  }\n\n  function destroy() {\n    const params = swiper.params.pagination;\n    if (isPaginationDisabled()) return;\n    const $el = swiper.pagination.$el;\n    $el.removeClass(params.hiddenClass);\n    $el.removeClass(params.modifierClass + params.type);\n    $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n    if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n    if (params.clickable) {\n      $el.off('click', classesToSelector(params.bulletClass));\n    }\n  }\n\n  on('init', () => {\n    if (swiper.params.pagination.enabled === false) {\n      // eslint-disable-next-line\n      disable();\n    } else {\n      init();\n      render();\n      update();\n    }\n  });\n  on('activeIndexChange', () => {\n    if (swiper.params.loop) {\n      update();\n    } else if (typeof swiper.snapIndex === 'undefined') {\n      update();\n    }\n  });\n  on('snapIndexChange', () => {\n    if (!swiper.params.loop) {\n      update();\n    }\n  });\n  on('slidesLengthChange', () => {\n    if (swiper.params.loop) {\n      render();\n      update();\n    }\n  });\n  on('snapGridLengthChange', () => {\n    if (!swiper.params.loop) {\n      render();\n      update();\n    }\n  });\n  on('destroy', () => {\n    destroy();\n  });\n  on('enable disable', () => {\n    const {\n      $el\n    } = swiper.pagination;\n\n    if ($el) {\n      $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n    }\n  });\n  on('lock unlock', () => {\n    update();\n  });\n  on('click', (_s, e) => {\n    const targetEl = e.target;\n    const {\n      $el\n    } = swiper.pagination;\n\n    if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n      if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n      const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n      if (isHidden === true) {\n        emit('paginationShow');\n      } else {\n        emit('paginationHide');\n      }\n\n      $el.toggleClass(swiper.params.pagination.hiddenClass);\n    }\n  });\n\n  const enable = () => {\n    swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n    if (swiper.pagination.$el) {\n      swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n    }\n\n    init();\n    render();\n    update();\n  };\n\n  const disable = () => {\n    swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n    if (swiper.pagination.$el) {\n      swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n    }\n\n    destroy();\n  };\n\n  Object.assign(swiper.pagination, {\n    enable,\n    disable,\n    render,\n    update,\n    init,\n    destroy\n  });\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on,\n    emit\n  } = _ref;\n  const document = getDocument();\n  let isTouched = false;\n  let timeout = null;\n  let dragTimeout = null;\n  let dragStartPos;\n  let dragSize;\n  let trackSize;\n  let divider;\n  extendParams({\n    scrollbar: {\n      el: null,\n      dragSize: 'auto',\n      hide: false,\n      draggable: false,\n      snapOnRelease: true,\n      lockClass: 'swiper-scrollbar-lock',\n      dragClass: 'swiper-scrollbar-drag',\n      scrollbarDisabledClass: 'swiper-scrollbar-disabled'\n    }\n  });\n  swiper.scrollbar = {\n    el: null,\n    dragEl: null,\n    $el: null,\n    $dragEl: null\n  };\n\n  function setTranslate() {\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    const {\n      scrollbar,\n      rtlTranslate: rtl,\n      progress\n    } = swiper;\n    const {\n      $dragEl,\n      $el\n    } = scrollbar;\n    const params = swiper.params.scrollbar;\n    let newSize = dragSize;\n    let newPos = (trackSize - dragSize) * progress;\n\n    if (rtl) {\n      newPos = -newPos;\n\n      if (newPos > 0) {\n        newSize = dragSize - newPos;\n        newPos = 0;\n      } else if (-newPos + dragSize > trackSize) {\n        newSize = trackSize + newPos;\n      }\n    } else if (newPos < 0) {\n      newSize = dragSize + newPos;\n      newPos = 0;\n    } else if (newPos + dragSize > trackSize) {\n      newSize = trackSize - newPos;\n    }\n\n    if (swiper.isHorizontal()) {\n      $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n      $dragEl[0].style.width = `${newSize}px`;\n    } else {\n      $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n      $dragEl[0].style.height = `${newSize}px`;\n    }\n\n    if (params.hide) {\n      clearTimeout(timeout);\n      $el[0].style.opacity = 1;\n      timeout = setTimeout(() => {\n        $el[0].style.opacity = 0;\n        $el.transition(400);\n      }, 1000);\n    }\n  }\n\n  function setTransition(duration) {\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    swiper.scrollbar.$dragEl.transition(duration);\n  }\n\n  function updateSize() {\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    const {\n      scrollbar\n    } = swiper;\n    const {\n      $dragEl,\n      $el\n    } = scrollbar;\n    $dragEl[0].style.width = '';\n    $dragEl[0].style.height = '';\n    trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n    divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n    if (swiper.params.scrollbar.dragSize === 'auto') {\n      dragSize = trackSize * divider;\n    } else {\n      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n    }\n\n    if (swiper.isHorizontal()) {\n      $dragEl[0].style.width = `${dragSize}px`;\n    } else {\n      $dragEl[0].style.height = `${dragSize}px`;\n    }\n\n    if (divider >= 1) {\n      $el[0].style.display = 'none';\n    } else {\n      $el[0].style.display = '';\n    }\n\n    if (swiper.params.scrollbar.hide) {\n      $el[0].style.opacity = 0;\n    }\n\n    if (swiper.params.watchOverflow && swiper.enabled) {\n      scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n    }\n  }\n\n  function getPointerPosition(e) {\n    if (swiper.isHorizontal()) {\n      return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n    }\n\n    return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n  }\n\n  function setDragPosition(e) {\n    const {\n      scrollbar,\n      rtlTranslate: rtl\n    } = swiper;\n    const {\n      $el\n    } = scrollbar;\n    let positionRatio;\n    positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n    positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n    if (rtl) {\n      positionRatio = 1 - positionRatio;\n    }\n\n    const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n    swiper.updateProgress(position);\n    swiper.setTranslate(position);\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n\n  function onDragStart(e) {\n    const params = swiper.params.scrollbar;\n    const {\n      scrollbar,\n      $wrapperEl\n    } = swiper;\n    const {\n      $el,\n      $dragEl\n    } = scrollbar;\n    isTouched = true;\n    dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n    e.preventDefault();\n    e.stopPropagation();\n    $wrapperEl.transition(100);\n    $dragEl.transition(100);\n    setDragPosition(e);\n    clearTimeout(dragTimeout);\n    $el.transition(0);\n\n    if (params.hide) {\n      $el.css('opacity', 1);\n    }\n\n    if (swiper.params.cssMode) {\n      swiper.$wrapperEl.css('scroll-snap-type', 'none');\n    }\n\n    emit('scrollbarDragStart', e);\n  }\n\n  function onDragMove(e) {\n    const {\n      scrollbar,\n      $wrapperEl\n    } = swiper;\n    const {\n      $el,\n      $dragEl\n    } = scrollbar;\n    if (!isTouched) return;\n    if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n    setDragPosition(e);\n    $wrapperEl.transition(0);\n    $el.transition(0);\n    $dragEl.transition(0);\n    emit('scrollbarDragMove', e);\n  }\n\n  function onDragEnd(e) {\n    const params = swiper.params.scrollbar;\n    const {\n      scrollbar,\n      $wrapperEl\n    } = swiper;\n    const {\n      $el\n    } = scrollbar;\n    if (!isTouched) return;\n    isTouched = false;\n\n    if (swiper.params.cssMode) {\n      swiper.$wrapperEl.css('scroll-snap-type', '');\n      $wrapperEl.transition('');\n    }\n\n    if (params.hide) {\n      clearTimeout(dragTimeout);\n      dragTimeout = nextTick(() => {\n        $el.css('opacity', 0);\n        $el.transition(400);\n      }, 1000);\n    }\n\n    emit('scrollbarDragEnd', e);\n\n    if (params.snapOnRelease) {\n      swiper.slideToClosest();\n    }\n  }\n\n  function events(method) {\n    const {\n      scrollbar,\n      touchEventsTouch,\n      touchEventsDesktop,\n      params,\n      support\n    } = swiper;\n    const $el = scrollbar.$el;\n    if (!$el) return;\n    const target = $el[0];\n    const activeListener = support.passiveListener && params.passiveListeners ? {\n      passive: false,\n      capture: false\n    } : false;\n    const passiveListener = support.passiveListener && params.passiveListeners ? {\n      passive: true,\n      capture: false\n    } : false;\n    if (!target) return;\n    const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n    if (!support.touch) {\n      target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n      document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n      document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n    } else {\n      target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n      target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n      target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n    }\n  }\n\n  function enableDraggable() {\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    events('on');\n  }\n\n  function disableDraggable() {\n    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n    events('off');\n  }\n\n  function init() {\n    const {\n      scrollbar,\n      $el: $swiperEl\n    } = swiper;\n    swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n      el: 'swiper-scrollbar'\n    });\n    const params = swiper.params.scrollbar;\n    if (!params.el) return;\n    let $el = $(params.el);\n\n    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n      $el = $swiperEl.find(params.el);\n    }\n\n    let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n\n    if ($dragEl.length === 0) {\n      $dragEl = $(`<div class=\"${swiper.params.scrollbar.dragClass}\"></div>`);\n      $el.append($dragEl);\n    }\n\n    Object.assign(scrollbar, {\n      $el,\n      el: $el[0],\n      $dragEl,\n      dragEl: $dragEl[0]\n    });\n\n    if (params.draggable) {\n      enableDraggable();\n    }\n\n    if ($el) {\n      $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n    }\n  }\n\n  function destroy() {\n    disableDraggable();\n  }\n\n  on('init', () => {\n    if (swiper.params.scrollbar.enabled === false) {\n      // eslint-disable-next-line\n      disable();\n    } else {\n      init();\n      updateSize();\n      setTranslate();\n    }\n  });\n  on('update resize observerUpdate lock unlock', () => {\n    updateSize();\n  });\n  on('setTranslate', () => {\n    setTranslate();\n  });\n  on('setTransition', (_s, duration) => {\n    setTransition(duration);\n  });\n  on('enable disable', () => {\n    const {\n      $el\n    } = swiper.scrollbar;\n\n    if ($el) {\n      $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n    }\n  });\n  on('destroy', () => {\n    destroy();\n  });\n\n  const enable = () => {\n    swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n    if (swiper.scrollbar.$el) {\n      swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n    }\n\n    init();\n    updateSize();\n    setTranslate();\n  };\n\n  const disable = () => {\n    swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n    if (swiper.scrollbar.$el) {\n      swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n    }\n\n    destroy();\n  };\n\n  Object.assign(swiper.scrollbar, {\n    enable,\n    disable,\n    updateSize,\n    setTranslate,\n    init,\n    destroy\n  });\n}","import $ from '../../shared/dom.js';\nexport default function Parallax(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on\n  } = _ref;\n  extendParams({\n    parallax: {\n      enabled: false\n    }\n  });\n\n  const setTransform = (el, progress) => {\n    const {\n      rtl\n    } = swiper;\n    const $el = $(el);\n    const rtlFactor = rtl ? -1 : 1;\n    const p = $el.attr('data-swiper-parallax') || '0';\n    let x = $el.attr('data-swiper-parallax-x');\n    let y = $el.attr('data-swiper-parallax-y');\n    const scale = $el.attr('data-swiper-parallax-scale');\n    const opacity = $el.attr('data-swiper-parallax-opacity');\n\n    if (x || y) {\n      x = x || '0';\n      y = y || '0';\n    } else if (swiper.isHorizontal()) {\n      x = p;\n      y = '0';\n    } else {\n      y = p;\n      x = '0';\n    }\n\n    if (x.indexOf('%') >= 0) {\n      x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n    } else {\n      x = `${x * progress * rtlFactor}px`;\n    }\n\n    if (y.indexOf('%') >= 0) {\n      y = `${parseInt(y, 10) * progress}%`;\n    } else {\n      y = `${y * progress}px`;\n    }\n\n    if (typeof opacity !== 'undefined' && opacity !== null) {\n      const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n      $el[0].style.opacity = currentOpacity;\n    }\n\n    if (typeof scale === 'undefined' || scale === null) {\n      $el.transform(`translate3d(${x}, ${y}, 0px)`);\n    } else {\n      const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n      $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n    }\n  };\n\n  const setTranslate = () => {\n    const {\n      $el,\n      slides,\n      progress,\n      snapGrid\n    } = swiper;\n    $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n      setTransform(el, progress);\n    });\n    slides.each((slideEl, slideIndex) => {\n      let slideProgress = slideEl.progress;\n\n      if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n        slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n      }\n\n      slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n      $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n        setTransform(el, slideProgress);\n      });\n    });\n  };\n\n  const setTransition = function (duration) {\n    if (duration === void 0) {\n      duration = swiper.params.speed;\n    }\n\n    const {\n      $el\n    } = swiper;\n    $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(parallaxEl => {\n      const $parallaxEl = $(parallaxEl);\n      let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n      if (duration === 0) parallaxDuration = 0;\n      $parallaxEl.transition(parallaxDuration);\n    });\n  };\n\n  on('beforeInit', () => {\n    if (!swiper.params.parallax.enabled) return;\n    swiper.params.watchSlidesProgress = true;\n    swiper.originalParams.watchSlidesProgress = true;\n  });\n  on('init', () => {\n    if (!swiper.params.parallax.enabled) return;\n    setTranslate();\n  });\n  on('setTranslate', () => {\n    if (!swiper.params.parallax.enabled) return;\n    setTranslate();\n  });\n  on('setTransition', (_swiper, duration) => {\n    if (!swiper.params.parallax.enabled) return;\n    setTransition(duration);\n  });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { getTranslate } from '../../shared/utils.js';\nexport default function Zoom(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on,\n    emit\n  } = _ref;\n  const window = getWindow();\n  extendParams({\n    zoom: {\n      enabled: false,\n      maxRatio: 3,\n      minRatio: 1,\n      toggle: true,\n      containerClass: 'swiper-zoom-container',\n      zoomedSlideClass: 'swiper-slide-zoomed'\n    }\n  });\n  swiper.zoom = {\n    enabled: false\n  };\n  let currentScale = 1;\n  let isScaling = false;\n  let gesturesEnabled;\n  let fakeGestureTouched;\n  let fakeGestureMoved;\n  const gesture = {\n    $slideEl: undefined,\n    slideWidth: undefined,\n    slideHeight: undefined,\n    $imageEl: undefined,\n    $imageWrapEl: undefined,\n    maxRatio: 3\n  };\n  const image = {\n    isTouched: undefined,\n    isMoved: undefined,\n    currentX: undefined,\n    currentY: undefined,\n    minX: undefined,\n    minY: undefined,\n    maxX: undefined,\n    maxY: undefined,\n    width: undefined,\n    height: undefined,\n    startX: undefined,\n    startY: undefined,\n    touchesStart: {},\n    touchesCurrent: {}\n  };\n  const velocity = {\n    x: undefined,\n    y: undefined,\n    prevPositionX: undefined,\n    prevPositionY: undefined,\n    prevTime: undefined\n  };\n  let scale = 1;\n  Object.defineProperty(swiper.zoom, 'scale', {\n    get() {\n      return scale;\n    },\n\n    set(value) {\n      if (scale !== value) {\n        const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\n        const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\n        emit('zoomChange', value, imageEl, slideEl);\n      }\n\n      scale = value;\n    }\n\n  });\n\n  function getDistanceBetweenTouches(e) {\n    if (e.targetTouches.length < 2) return 1;\n    const x1 = e.targetTouches[0].pageX;\n    const y1 = e.targetTouches[0].pageY;\n    const x2 = e.targetTouches[1].pageX;\n    const y2 = e.targetTouches[1].pageY;\n    const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n    return distance;\n  } // Events\n\n\n  function onGestureStart(e) {\n    const support = swiper.support;\n    const params = swiper.params.zoom;\n    fakeGestureTouched = false;\n    fakeGestureMoved = false;\n\n    if (!support.gestures) {\n      if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n        return;\n      }\n\n      fakeGestureTouched = true;\n      gesture.scaleStart = getDistanceBetweenTouches(e);\n    }\n\n    if (!gesture.$slideEl || !gesture.$slideEl.length) {\n      gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n      if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n      gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n      gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n      gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n      if (gesture.$imageWrapEl.length === 0) {\n        gesture.$imageEl = undefined;\n        return;\n      }\n    }\n\n    if (gesture.$imageEl) {\n      gesture.$imageEl.transition(0);\n    }\n\n    isScaling = true;\n  }\n\n  function onGestureChange(e) {\n    const support = swiper.support;\n    const params = swiper.params.zoom;\n    const zoom = swiper.zoom;\n\n    if (!support.gestures) {\n      if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n        return;\n      }\n\n      fakeGestureMoved = true;\n      gesture.scaleMove = getDistanceBetweenTouches(e);\n    }\n\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n      if (e.type === 'gesturechange') onGestureStart(e);\n      return;\n    }\n\n    if (support.gestures) {\n      zoom.scale = e.scale * currentScale;\n    } else {\n      zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n    }\n\n    if (zoom.scale > gesture.maxRatio) {\n      zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n    }\n\n    if (zoom.scale < params.minRatio) {\n      zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n    }\n\n    gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n  }\n\n  function onGestureEnd(e) {\n    const device = swiper.device;\n    const support = swiper.support;\n    const params = swiper.params.zoom;\n    const zoom = swiper.zoom;\n\n    if (!support.gestures) {\n      if (!fakeGestureTouched || !fakeGestureMoved) {\n        return;\n      }\n\n      if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n        return;\n      }\n\n      fakeGestureTouched = false;\n      fakeGestureMoved = false;\n    }\n\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n    zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n    gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n    currentScale = zoom.scale;\n    isScaling = false;\n    if (zoom.scale === 1) gesture.$slideEl = undefined;\n  }\n\n  function onTouchStart(e) {\n    const device = swiper.device;\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n    if (image.isTouched) return;\n    if (device.android && e.cancelable) e.preventDefault();\n    image.isTouched = true;\n    image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n    image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n  }\n\n  function onTouchMove(e) {\n    const zoom = swiper.zoom;\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n    swiper.allowClick = false;\n    if (!image.isTouched || !gesture.$slideEl) return;\n\n    if (!image.isMoved) {\n      image.width = gesture.$imageEl[0].offsetWidth;\n      image.height = gesture.$imageEl[0].offsetHeight;\n      image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n      image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n      gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n      gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n      gesture.$imageWrapEl.transition(0);\n    } // Define if we need image drag\n\n\n    const scaledWidth = image.width * zoom.scale;\n    const scaledHeight = image.height * zoom.scale;\n    if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n    image.maxX = -image.minX;\n    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n    image.maxY = -image.minY;\n    image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n    image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n    if (!image.isMoved && !isScaling) {\n      if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n        image.isTouched = false;\n        return;\n      }\n\n      if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n        image.isTouched = false;\n        return;\n      }\n    }\n\n    if (e.cancelable) {\n      e.preventDefault();\n    }\n\n    e.stopPropagation();\n    image.isMoved = true;\n    image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n    image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n    if (image.currentX < image.minX) {\n      image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n    }\n\n    if (image.currentX > image.maxX) {\n      image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n    }\n\n    if (image.currentY < image.minY) {\n      image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n    }\n\n    if (image.currentY > image.maxY) {\n      image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n    } // Velocity\n\n\n    if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n    if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n    if (!velocity.prevTime) velocity.prevTime = Date.now();\n    velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n    velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n    if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n    if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n    velocity.prevPositionX = image.touchesCurrent.x;\n    velocity.prevPositionY = image.touchesCurrent.y;\n    velocity.prevTime = Date.now();\n    gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n  }\n\n  function onTouchEnd() {\n    const zoom = swiper.zoom;\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n    if (!image.isTouched || !image.isMoved) {\n      image.isTouched = false;\n      image.isMoved = false;\n      return;\n    }\n\n    image.isTouched = false;\n    image.isMoved = false;\n    let momentumDurationX = 300;\n    let momentumDurationY = 300;\n    const momentumDistanceX = velocity.x * momentumDurationX;\n    const newPositionX = image.currentX + momentumDistanceX;\n    const momentumDistanceY = velocity.y * momentumDurationY;\n    const newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n    if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n    if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n    const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n    image.currentX = newPositionX;\n    image.currentY = newPositionY; // Define if we need image drag\n\n    const scaledWidth = image.width * zoom.scale;\n    const scaledHeight = image.height * zoom.scale;\n    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n    image.maxX = -image.minX;\n    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n    image.maxY = -image.minY;\n    image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n    image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n    gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n  }\n\n  function onTransitionEnd() {\n    const zoom = swiper.zoom;\n\n    if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n      if (gesture.$imageEl) {\n        gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n      }\n\n      if (gesture.$imageWrapEl) {\n        gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n      }\n\n      zoom.scale = 1;\n      currentScale = 1;\n      gesture.$slideEl = undefined;\n      gesture.$imageEl = undefined;\n      gesture.$imageWrapEl = undefined;\n    }\n  }\n\n  function zoomIn(e) {\n    const zoom = swiper.zoom;\n    const params = swiper.params.zoom;\n\n    if (!gesture.$slideEl) {\n      if (e && e.target) {\n        gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n      }\n\n      if (!gesture.$slideEl) {\n        if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n          gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n        } else {\n          gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n        }\n      }\n\n      gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n      gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n    }\n\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.style.overflow = 'hidden';\n      swiper.wrapperEl.style.touchAction = 'none';\n    }\n\n    gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n    let touchX;\n    let touchY;\n    let offsetX;\n    let offsetY;\n    let diffX;\n    let diffY;\n    let translateX;\n    let translateY;\n    let imageWidth;\n    let imageHeight;\n    let scaledWidth;\n    let scaledHeight;\n    let translateMinX;\n    let translateMinY;\n    let translateMaxX;\n    let translateMaxY;\n    let slideWidth;\n    let slideHeight;\n\n    if (typeof image.touchesStart.x === 'undefined' && e) {\n      touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n      touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n    } else {\n      touchX = image.touchesStart.x;\n      touchY = image.touchesStart.y;\n    }\n\n    zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n    currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n    if (e) {\n      slideWidth = gesture.$slideEl[0].offsetWidth;\n      slideHeight = gesture.$slideEl[0].offsetHeight;\n      offsetX = gesture.$slideEl.offset().left + window.scrollX;\n      offsetY = gesture.$slideEl.offset().top + window.scrollY;\n      diffX = offsetX + slideWidth / 2 - touchX;\n      diffY = offsetY + slideHeight / 2 - touchY;\n      imageWidth = gesture.$imageEl[0].offsetWidth;\n      imageHeight = gesture.$imageEl[0].offsetHeight;\n      scaledWidth = imageWidth * zoom.scale;\n      scaledHeight = imageHeight * zoom.scale;\n      translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n      translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n      translateMaxX = -translateMinX;\n      translateMaxY = -translateMinY;\n      translateX = diffX * zoom.scale;\n      translateY = diffY * zoom.scale;\n\n      if (translateX < translateMinX) {\n        translateX = translateMinX;\n      }\n\n      if (translateX > translateMaxX) {\n        translateX = translateMaxX;\n      }\n\n      if (translateY < translateMinY) {\n        translateY = translateMinY;\n      }\n\n      if (translateY > translateMaxY) {\n        translateY = translateMaxY;\n      }\n    } else {\n      translateX = 0;\n      translateY = 0;\n    }\n\n    gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n    gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n  }\n\n  function zoomOut() {\n    const zoom = swiper.zoom;\n    const params = swiper.params.zoom;\n\n    if (!gesture.$slideEl) {\n      if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n        gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n      } else {\n        gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n      }\n\n      gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n      gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n    }\n\n    if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.style.overflow = '';\n      swiper.wrapperEl.style.touchAction = '';\n    }\n\n    zoom.scale = 1;\n    currentScale = 1;\n    gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n    gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n    gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n    gesture.$slideEl = undefined;\n  } // Toggle Zoom\n\n\n  function zoomToggle(e) {\n    const zoom = swiper.zoom;\n\n    if (zoom.scale && zoom.scale !== 1) {\n      // Zoom Out\n      zoomOut();\n    } else {\n      // Zoom In\n      zoomIn(e);\n    }\n  }\n\n  function getListeners() {\n    const support = swiper.support;\n    const passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n      passive: true,\n      capture: false\n    } : false;\n    const activeListenerWithCapture = support.passiveListener ? {\n      passive: false,\n      capture: true\n    } : true;\n    return {\n      passiveListener,\n      activeListenerWithCapture\n    };\n  }\n\n  function getSlideSelector() {\n    return `.${swiper.params.slideClass}`;\n  }\n\n  function toggleGestures(method) {\n    const {\n      passiveListener\n    } = getListeners();\n    const slideSelector = getSlideSelector();\n    swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\n    swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\n    swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\n  }\n\n  function enableGestures() {\n    if (gesturesEnabled) return;\n    gesturesEnabled = true;\n    toggleGestures('on');\n  }\n\n  function disableGestures() {\n    if (!gesturesEnabled) return;\n    gesturesEnabled = false;\n    toggleGestures('off');\n  } // Attach/Detach Events\n\n\n  function enable() {\n    const zoom = swiper.zoom;\n    if (zoom.enabled) return;\n    zoom.enabled = true;\n    const support = swiper.support;\n    const {\n      passiveListener,\n      activeListenerWithCapture\n    } = getListeners();\n    const slideSelector = getSlideSelector(); // Scale image\n\n    if (support.gestures) {\n      swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n      swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n    } else if (swiper.touchEvents.start === 'touchstart') {\n      swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n      swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n      swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n      if (swiper.touchEvents.cancel) {\n        swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n      }\n    } // Move image\n\n\n    swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n  }\n\n  function disable() {\n    const zoom = swiper.zoom;\n    if (!zoom.enabled) return;\n    const support = swiper.support;\n    zoom.enabled = false;\n    const {\n      passiveListener,\n      activeListenerWithCapture\n    } = getListeners();\n    const slideSelector = getSlideSelector(); // Scale image\n\n    if (support.gestures) {\n      swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n      swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n    } else if (swiper.touchEvents.start === 'touchstart') {\n      swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n      swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n      swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n      if (swiper.touchEvents.cancel) {\n        swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n      }\n    } // Move image\n\n\n    swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n  }\n\n  on('init', () => {\n    if (swiper.params.zoom.enabled) {\n      enable();\n    }\n  });\n  on('destroy', () => {\n    disable();\n  });\n  on('touchStart', (_s, e) => {\n    if (!swiper.zoom.enabled) return;\n    onTouchStart(e);\n  });\n  on('touchEnd', (_s, e) => {\n    if (!swiper.zoom.enabled) return;\n    onTouchEnd(e);\n  });\n  on('doubleTap', (_s, e) => {\n    if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n      zoomToggle(e);\n    }\n  });\n  on('transitionEnd', () => {\n    if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n      onTransitionEnd();\n    }\n  });\n  on('slideChange', () => {\n    if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n      onTransitionEnd();\n    }\n  });\n  Object.assign(swiper.zoom, {\n    enable,\n    disable,\n    in: zoomIn,\n    out: zoomOut,\n    toggle: zoomToggle\n  });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Lazy(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on,\n    emit\n  } = _ref;\n  extendParams({\n    lazy: {\n      checkInView: false,\n      enabled: false,\n      loadPrevNext: false,\n      loadPrevNextAmount: 1,\n      loadOnTransitionStart: false,\n      scrollingElement: '',\n      elementClass: 'swiper-lazy',\n      loadingClass: 'swiper-lazy-loading',\n      loadedClass: 'swiper-lazy-loaded',\n      preloaderClass: 'swiper-lazy-preloader'\n    }\n  });\n  swiper.lazy = {};\n  let scrollHandlerAttached = false;\n  let initialImageLoaded = false;\n\n  function loadInSlide(index, loadInDuplicate) {\n    if (loadInDuplicate === void 0) {\n      loadInDuplicate = true;\n    }\n\n    const params = swiper.params.lazy;\n    if (typeof index === 'undefined') return;\n    if (swiper.slides.length === 0) return;\n    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n    const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n    const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n\n    if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n      $images.push($slideEl[0]);\n    }\n\n    if ($images.length === 0) return;\n    $images.each(imageEl => {\n      const $imageEl = $(imageEl);\n      $imageEl.addClass(params.loadingClass);\n      const background = $imageEl.attr('data-background');\n      const src = $imageEl.attr('data-src');\n      const srcset = $imageEl.attr('data-srcset');\n      const sizes = $imageEl.attr('data-sizes');\n      const $pictureEl = $imageEl.parent('picture');\n      swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n        if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n        if (background) {\n          $imageEl.css('background-image', `url(\"${background}\")`);\n          $imageEl.removeAttr('data-background');\n        } else {\n          if (srcset) {\n            $imageEl.attr('srcset', srcset);\n            $imageEl.removeAttr('data-srcset');\n          }\n\n          if (sizes) {\n            $imageEl.attr('sizes', sizes);\n            $imageEl.removeAttr('data-sizes');\n          }\n\n          if ($pictureEl.length) {\n            $pictureEl.children('source').each(sourceEl => {\n              const $source = $(sourceEl);\n\n              if ($source.attr('data-srcset')) {\n                $source.attr('srcset', $source.attr('data-srcset'));\n                $source.removeAttr('data-srcset');\n              }\n            });\n          }\n\n          if (src) {\n            $imageEl.attr('src', src);\n            $imageEl.removeAttr('data-src');\n          }\n        }\n\n        $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n        $slideEl.find(`.${params.preloaderClass}`).remove();\n\n        if (swiper.params.loop && loadInDuplicate) {\n          const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n          if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n            const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n            loadInSlide(originalSlide.index(), false);\n          } else {\n            const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n            loadInSlide(duplicatedSlide.index(), false);\n          }\n        }\n\n        emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n        if (swiper.params.autoHeight) {\n          swiper.updateAutoHeight();\n        }\n      });\n      emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n    });\n  }\n\n  function load() {\n    const {\n      $wrapperEl,\n      params: swiperParams,\n      slides,\n      activeIndex\n    } = swiper;\n    const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n    const params = swiperParams.lazy;\n    let slidesPerView = swiperParams.slidesPerView;\n\n    if (slidesPerView === 'auto') {\n      slidesPerView = 0;\n    }\n\n    function slideExist(index) {\n      if (isVirtual) {\n        if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n          return true;\n        }\n      } else if (slides[index]) return true;\n\n      return false;\n    }\n\n    function slideIndex(slideEl) {\n      if (isVirtual) {\n        return $(slideEl).attr('data-swiper-slide-index');\n      }\n\n      return $(slideEl).index();\n    }\n\n    if (!initialImageLoaded) initialImageLoaded = true;\n\n    if (swiper.params.watchSlidesProgress) {\n      $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {\n        const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n        loadInSlide(index);\n      });\n    } else if (slidesPerView > 1) {\n      for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n        if (slideExist(i)) loadInSlide(i);\n      }\n    } else {\n      loadInSlide(activeIndex);\n    }\n\n    if (params.loadPrevNext) {\n      if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n        const amount = params.loadPrevNextAmount;\n        const spv = Math.ceil(slidesPerView);\n        const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n        const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n        for (let i = activeIndex + spv; i < maxIndex; i += 1) {\n          if (slideExist(i)) loadInSlide(i);\n        } // Prev Slides\n\n\n        for (let i = minIndex; i < activeIndex; i += 1) {\n          if (slideExist(i)) loadInSlide(i);\n        }\n      } else {\n        const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n        if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n        const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n        if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n      }\n    }\n  }\n\n  function checkInViewOnLoad() {\n    const window = getWindow();\n    if (!swiper || swiper.destroyed) return;\n    const $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n    const isWindow = $scrollElement[0] === window;\n    const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n    const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n    const swiperOffset = swiper.$el.offset();\n    const {\n      rtlTranslate: rtl\n    } = swiper;\n    let inView = false;\n    if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n    const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n    for (let i = 0; i < swiperCoord.length; i += 1) {\n      const point = swiperCoord[i];\n\n      if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n        if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n        inView = true;\n      }\n    }\n\n    const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n      passive: true,\n      capture: false\n    } : false;\n\n    if (inView) {\n      load();\n      $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n    } else if (!scrollHandlerAttached) {\n      scrollHandlerAttached = true;\n      $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n    }\n  }\n\n  on('beforeInit', () => {\n    if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n      swiper.params.preloadImages = false;\n    }\n  });\n  on('init', () => {\n    if (swiper.params.lazy.enabled) {\n      if (swiper.params.lazy.checkInView) {\n        checkInViewOnLoad();\n      } else {\n        load();\n      }\n    }\n  });\n  on('scroll', () => {\n    if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n      load();\n    }\n  });\n  on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\n    if (swiper.params.lazy.enabled) {\n      if (swiper.params.lazy.checkInView) {\n        checkInViewOnLoad();\n      } else {\n        load();\n      }\n    }\n  });\n  on('transitionStart', () => {\n    if (swiper.params.lazy.enabled) {\n      if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n        if (swiper.params.lazy.checkInView) {\n          checkInViewOnLoad();\n        } else {\n          load();\n        }\n      }\n    }\n  });\n  on('transitionEnd', () => {\n    if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n      if (swiper.params.lazy.checkInView) {\n        checkInViewOnLoad();\n      } else {\n        load();\n      }\n    }\n  });\n  on('slideChange', () => {\n    const {\n      lazy,\n      cssMode,\n      watchSlidesProgress,\n      touchReleaseOnEdges,\n      resistanceRatio\n    } = swiper.params;\n\n    if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n      load();\n    }\n  });\n  on('destroy', () => {\n    if (!swiper.$el) return;\n    swiper.$el.find(`.${swiper.params.lazy.loadingClass}`).removeClass(swiper.params.lazy.loadingClass);\n  });\n  Object.assign(swiper.lazy, {\n    load,\n    loadInSlide\n  });\n}","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick } from '../../shared/utils.js';\nexport default function Controller(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on\n  } = _ref;\n  extendParams({\n    controller: {\n      control: undefined,\n      inverse: false,\n      by: 'slide' // or 'container'\n\n    }\n  });\n  swiper.controller = {\n    control: undefined\n  };\n\n  function LinearSpline(x, y) {\n    const binarySearch = function search() {\n      let maxIndex;\n      let minIndex;\n      let guess;\n      return (array, val) => {\n        minIndex = -1;\n        maxIndex = array.length;\n\n        while (maxIndex - minIndex > 1) {\n          guess = maxIndex + minIndex >> 1;\n\n          if (array[guess] <= val) {\n            minIndex = guess;\n          } else {\n            maxIndex = guess;\n          }\n        }\n\n        return maxIndex;\n      };\n    }();\n\n    this.x = x;\n    this.y = y;\n    this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n    // (x1,y1) is the known point before given value,\n    // (x3,y3) is the known point after given value.\n\n    let i1;\n    let i3;\n\n    this.interpolate = function interpolate(x2) {\n      if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n      i3 = binarySearch(this.x, x2);\n      i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n      // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n      return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n    };\n\n    return this;\n  } // xxx: for now i will just save one spline function to to\n\n\n  function getInterpolateFunction(c) {\n    if (!swiper.controller.spline) {\n      swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n    }\n  }\n\n  function setTranslate(_t, byController) {\n    const controlled = swiper.controller.control;\n    let multiplier;\n    let controlledTranslate;\n    const Swiper = swiper.constructor;\n\n    function setControlledTranslate(c) {\n      // this will create an Interpolate function based on the snapGrids\n      // x is the Grid of the scrolled scroller and y will be the controlled scroller\n      // it makes sense to create this only once and recall it for the interpolation\n      // the function does a lot of value caching for performance\n      const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n      if (swiper.params.controller.by === 'slide') {\n        getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n        // but it did not work out\n\n        controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n      }\n\n      if (!controlledTranslate || swiper.params.controller.by === 'container') {\n        multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n        controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n      }\n\n      if (swiper.params.controller.inverse) {\n        controlledTranslate = c.maxTranslate() - controlledTranslate;\n      }\n\n      c.updateProgress(controlledTranslate);\n      c.setTranslate(controlledTranslate, swiper);\n      c.updateActiveIndex();\n      c.updateSlidesClasses();\n    }\n\n    if (Array.isArray(controlled)) {\n      for (let i = 0; i < controlled.length; i += 1) {\n        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n          setControlledTranslate(controlled[i]);\n        }\n      }\n    } else if (controlled instanceof Swiper && byController !== controlled) {\n      setControlledTranslate(controlled);\n    }\n  }\n\n  function setTransition(duration, byController) {\n    const Swiper = swiper.constructor;\n    const controlled = swiper.controller.control;\n    let i;\n\n    function setControlledTransition(c) {\n      c.setTransition(duration, swiper);\n\n      if (duration !== 0) {\n        c.transitionStart();\n\n        if (c.params.autoHeight) {\n          nextTick(() => {\n            c.updateAutoHeight();\n          });\n        }\n\n        c.$wrapperEl.transitionEnd(() => {\n          if (!controlled) return;\n\n          if (c.params.loop && swiper.params.controller.by === 'slide') {\n            c.loopFix();\n          }\n\n          c.transitionEnd();\n        });\n      }\n    }\n\n    if (Array.isArray(controlled)) {\n      for (i = 0; i < controlled.length; i += 1) {\n        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n          setControlledTransition(controlled[i]);\n        }\n      }\n    } else if (controlled instanceof Swiper && byController !== controlled) {\n      setControlledTransition(controlled);\n    }\n  }\n\n  function removeSpline() {\n    if (!swiper.controller.control) return;\n\n    if (swiper.controller.spline) {\n      swiper.controller.spline = undefined;\n      delete swiper.controller.spline;\n    }\n  }\n\n  on('beforeInit', () => {\n    swiper.controller.control = swiper.params.controller.control;\n  });\n  on('update', () => {\n    removeSpline();\n  });\n  on('resize', () => {\n    removeSpline();\n  });\n  on('observerUpdate', () => {\n    removeSpline();\n  });\n  on('setTranslate', (_s, translate, byController) => {\n    if (!swiper.controller.control) return;\n    swiper.controller.setTranslate(translate, byController);\n  });\n  on('setTransition', (_s, duration, byController) => {\n    if (!swiper.controller.control) return;\n    swiper.controller.setTransition(duration, byController);\n  });\n  Object.assign(swiper.controller, {\n    setTranslate,\n    setTransition\n  });\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport $ from '../../shared/dom.js';\nexport default function A11y(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on\n  } = _ref;\n  extendParams({\n    a11y: {\n      enabled: true,\n      notificationClass: 'swiper-notification',\n      prevSlideMessage: 'Previous slide',\n      nextSlideMessage: 'Next slide',\n      firstSlideMessage: 'This is the first slide',\n      lastSlideMessage: 'This is the last slide',\n      paginationBulletMessage: 'Go to slide {{index}}',\n      slideLabelMessage: '{{index}} / {{slidesLength}}',\n      containerMessage: null,\n      containerRoleDescriptionMessage: null,\n      itemRoleDescriptionMessage: null,\n      slideRole: 'group',\n      id: null\n    }\n  });\n  let liveRegion = null;\n\n  function notify(message) {\n    const notification = liveRegion;\n    if (notification.length === 0) return;\n    notification.html('');\n    notification.html(message);\n  }\n\n  function getRandomNumber(size) {\n    if (size === void 0) {\n      size = 16;\n    }\n\n    const randomChar = () => Math.round(16 * Math.random()).toString(16);\n\n    return 'x'.repeat(size).replace(/x/g, randomChar);\n  }\n\n  function makeElFocusable($el) {\n    $el.attr('tabIndex', '0');\n  }\n\n  function makeElNotFocusable($el) {\n    $el.attr('tabIndex', '-1');\n  }\n\n  function addElRole($el, role) {\n    $el.attr('role', role);\n  }\n\n  function addElRoleDescription($el, description) {\n    $el.attr('aria-roledescription', description);\n  }\n\n  function addElControls($el, controls) {\n    $el.attr('aria-controls', controls);\n  }\n\n  function addElLabel($el, label) {\n    $el.attr('aria-label', label);\n  }\n\n  function addElId($el, id) {\n    $el.attr('id', id);\n  }\n\n  function addElLive($el, live) {\n    $el.attr('aria-live', live);\n  }\n\n  function disableEl($el) {\n    $el.attr('aria-disabled', true);\n  }\n\n  function enableEl($el) {\n    $el.attr('aria-disabled', false);\n  }\n\n  function onEnterOrSpaceKey(e) {\n    if (e.keyCode !== 13 && e.keyCode !== 32) return;\n    const params = swiper.params.a11y;\n    const $targetEl = $(e.target);\n\n    if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n      if (!(swiper.isEnd && !swiper.params.loop)) {\n        swiper.slideNext();\n      }\n\n      if (swiper.isEnd) {\n        notify(params.lastSlideMessage);\n      } else {\n        notify(params.nextSlideMessage);\n      }\n    }\n\n    if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n      if (!(swiper.isBeginning && !swiper.params.loop)) {\n        swiper.slidePrev();\n      }\n\n      if (swiper.isBeginning) {\n        notify(params.firstSlideMessage);\n      } else {\n        notify(params.prevSlideMessage);\n      }\n    }\n\n    if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n      $targetEl[0].click();\n    }\n  }\n\n  function updateNavigation() {\n    if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n    const {\n      $nextEl,\n      $prevEl\n    } = swiper.navigation;\n\n    if ($prevEl && $prevEl.length > 0) {\n      if (swiper.isBeginning) {\n        disableEl($prevEl);\n        makeElNotFocusable($prevEl);\n      } else {\n        enableEl($prevEl);\n        makeElFocusable($prevEl);\n      }\n    }\n\n    if ($nextEl && $nextEl.length > 0) {\n      if (swiper.isEnd) {\n        disableEl($nextEl);\n        makeElNotFocusable($nextEl);\n      } else {\n        enableEl($nextEl);\n        makeElFocusable($nextEl);\n      }\n    }\n  }\n\n  function hasPagination() {\n    return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n  }\n\n  function hasClickablePagination() {\n    return hasPagination() && swiper.params.pagination.clickable;\n  }\n\n  function updatePagination() {\n    const params = swiper.params.a11y;\n    if (!hasPagination()) return;\n    swiper.pagination.bullets.each(bulletEl => {\n      const $bulletEl = $(bulletEl);\n\n      if (swiper.params.pagination.clickable) {\n        makeElFocusable($bulletEl);\n\n        if (!swiper.params.pagination.renderBullet) {\n          addElRole($bulletEl, 'button');\n          addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n        }\n      }\n\n      if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {\n        $bulletEl.attr('aria-current', 'true');\n      } else {\n        $bulletEl.removeAttr('aria-current');\n      }\n    });\n  }\n\n  const initNavEl = ($el, wrapperId, message) => {\n    makeElFocusable($el);\n\n    if ($el[0].tagName !== 'BUTTON') {\n      addElRole($el, 'button');\n      $el.on('keydown', onEnterOrSpaceKey);\n    }\n\n    addElLabel($el, message);\n    addElControls($el, wrapperId);\n  };\n\n  const handleFocus = e => {\n    const slideEl = e.target.closest(`.${swiper.params.slideClass}`);\n    if (!slideEl || !swiper.slides.includes(slideEl)) return;\n    const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n    const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n    if (isActive || isVisible) return;\n    swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n  };\n\n  const initSlides = () => {\n    const params = swiper.params.a11y;\n\n    if (params.itemRoleDescriptionMessage) {\n      addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n    }\n\n    addElRole($(swiper.slides), params.slideRole);\n    const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n    swiper.slides.each((slideEl, index) => {\n      const $slideEl = $(slideEl);\n      const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n      const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n      addElLabel($slideEl, ariaLabelMessage);\n    });\n  };\n\n  const init = () => {\n    const params = swiper.params.a11y;\n    swiper.$el.append(liveRegion); // Container\n\n    const $containerEl = swiper.$el;\n\n    if (params.containerRoleDescriptionMessage) {\n      addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n    }\n\n    if (params.containerMessage) {\n      addElLabel($containerEl, params.containerMessage);\n    } // Wrapper\n\n\n    const $wrapperEl = swiper.$wrapperEl;\n    const wrapperId = params.id || $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n    const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n    addElId($wrapperEl, wrapperId);\n    addElLive($wrapperEl, live); // Slide\n\n    initSlides(); // Navigation\n\n    let $nextEl;\n    let $prevEl;\n\n    if (swiper.navigation && swiper.navigation.$nextEl) {\n      $nextEl = swiper.navigation.$nextEl;\n    }\n\n    if (swiper.navigation && swiper.navigation.$prevEl) {\n      $prevEl = swiper.navigation.$prevEl;\n    }\n\n    if ($nextEl && $nextEl.length) {\n      initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n    }\n\n    if ($prevEl && $prevEl.length) {\n      initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n    } // Pagination\n\n\n    if (hasClickablePagination()) {\n      swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n    } // Tab focus\n\n\n    swiper.$el.on('focus', handleFocus, true);\n  };\n\n  function destroy() {\n    if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n    let $nextEl;\n    let $prevEl;\n\n    if (swiper.navigation && swiper.navigation.$nextEl) {\n      $nextEl = swiper.navigation.$nextEl;\n    }\n\n    if (swiper.navigation && swiper.navigation.$prevEl) {\n      $prevEl = swiper.navigation.$prevEl;\n    }\n\n    if ($nextEl) {\n      $nextEl.off('keydown', onEnterOrSpaceKey);\n    }\n\n    if ($prevEl) {\n      $prevEl.off('keydown', onEnterOrSpaceKey);\n    } // Pagination\n\n\n    if (hasClickablePagination()) {\n      swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n    } // Tab focus\n\n\n    swiper.$el.off('focus', handleFocus, true);\n  }\n\n  on('beforeInit', () => {\n    liveRegion = $(`<span class=\"${swiper.params.a11y.notificationClass}\" aria-live=\"assertive\" aria-atomic=\"true\"></span>`);\n  });\n  on('afterInit', () => {\n    if (!swiper.params.a11y.enabled) return;\n    init();\n  });\n  on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n    if (!swiper.params.a11y.enabled) return;\n    initSlides();\n  });\n  on('fromEdge toEdge afterInit lock unlock', () => {\n    if (!swiper.params.a11y.enabled) return;\n    updateNavigation();\n  });\n  on('paginationUpdate', () => {\n    if (!swiper.params.a11y.enabled) return;\n    updatePagination();\n  });\n  on('destroy', () => {\n    if (!swiper.params.a11y.enabled) return;\n    destroy();\n  });\n}","import { getWindow } from 'ssr-window';\nexport default function History(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on\n  } = _ref;\n  extendParams({\n    history: {\n      enabled: false,\n      root: '',\n      replaceState: false,\n      key: 'slides',\n      keepQuery: false\n    }\n  });\n  let initialized = false;\n  let paths = {};\n\n  const slugify = text => {\n    return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n  };\n\n  const getPathValues = urlOverride => {\n    const window = getWindow();\n    let location;\n\n    if (urlOverride) {\n      location = new URL(urlOverride);\n    } else {\n      location = window.location;\n    }\n\n    const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n    const total = pathArray.length;\n    const key = pathArray[total - 2];\n    const value = pathArray[total - 1];\n    return {\n      key,\n      value\n    };\n  };\n\n  const setHistory = (key, index) => {\n    const window = getWindow();\n    if (!initialized || !swiper.params.history.enabled) return;\n    let location;\n\n    if (swiper.params.url) {\n      location = new URL(swiper.params.url);\n    } else {\n      location = window.location;\n    }\n\n    const slide = swiper.slides.eq(index);\n    let value = slugify(slide.attr('data-history'));\n\n    if (swiper.params.history.root.length > 0) {\n      let root = swiper.params.history.root;\n      if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n      value = `${root}/${key}/${value}`;\n    } else if (!location.pathname.includes(key)) {\n      value = `${key}/${value}`;\n    }\n\n    if (swiper.params.history.keepQuery) {\n      value += location.search;\n    }\n\n    const currentState = window.history.state;\n\n    if (currentState && currentState.value === value) {\n      return;\n    }\n\n    if (swiper.params.history.replaceState) {\n      window.history.replaceState({\n        value\n      }, null, value);\n    } else {\n      window.history.pushState({\n        value\n      }, null, value);\n    }\n  };\n\n  const scrollToSlide = (speed, value, runCallbacks) => {\n    if (value) {\n      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n        const slide = swiper.slides.eq(i);\n        const slideHistory = slugify(slide.attr('data-history'));\n\n        if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n          const index = slide.index();\n          swiper.slideTo(index, speed, runCallbacks);\n        }\n      }\n    } else {\n      swiper.slideTo(0, speed, runCallbacks);\n    }\n  };\n\n  const setHistoryPopState = () => {\n    paths = getPathValues(swiper.params.url);\n    scrollToSlide(swiper.params.speed, paths.value, false);\n  };\n\n  const init = () => {\n    const window = getWindow();\n    if (!swiper.params.history) return;\n\n    if (!window.history || !window.history.pushState) {\n      swiper.params.history.enabled = false;\n      swiper.params.hashNavigation.enabled = true;\n      return;\n    }\n\n    initialized = true;\n    paths = getPathValues(swiper.params.url);\n    if (!paths.key && !paths.value) return;\n    scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n\n    if (!swiper.params.history.replaceState) {\n      window.addEventListener('popstate', setHistoryPopState);\n    }\n  };\n\n  const destroy = () => {\n    const window = getWindow();\n\n    if (!swiper.params.history.replaceState) {\n      window.removeEventListener('popstate', setHistoryPopState);\n    }\n  };\n\n  on('init', () => {\n    if (swiper.params.history.enabled) {\n      init();\n    }\n  });\n  on('destroy', () => {\n    if (swiper.params.history.enabled) {\n      destroy();\n    }\n  });\n  on('transitionEnd _freeModeNoMomentumRelease', () => {\n    if (initialized) {\n      setHistory(swiper.params.history.key, swiper.activeIndex);\n    }\n  });\n  on('slideChange', () => {\n    if (initialized && swiper.params.cssMode) {\n      setHistory(swiper.params.history.key, swiper.activeIndex);\n    }\n  });\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function HashNavigation(_ref) {\n  let {\n    swiper,\n    extendParams,\n    emit,\n    on\n  } = _ref;\n  let initialized = false;\n  const document = getDocument();\n  const window = getWindow();\n  extendParams({\n    hashNavigation: {\n      enabled: false,\n      replaceState: false,\n      watchState: false\n    }\n  });\n\n  const onHashChange = () => {\n    emit('hashChange');\n    const newHash = document.location.hash.replace('#', '');\n    const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n    if (newHash !== activeSlideHash) {\n      const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n      if (typeof newIndex === 'undefined') return;\n      swiper.slideTo(newIndex);\n    }\n  };\n\n  const setHash = () => {\n    if (!initialized || !swiper.params.hashNavigation.enabled) return;\n\n    if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n      window.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '');\n      emit('hashSet');\n    } else {\n      const slide = swiper.slides.eq(swiper.activeIndex);\n      const hash = slide.attr('data-hash') || slide.attr('data-history');\n      document.location.hash = hash || '';\n      emit('hashSet');\n    }\n  };\n\n  const init = () => {\n    if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n    initialized = true;\n    const hash = document.location.hash.replace('#', '');\n\n    if (hash) {\n      const speed = 0;\n\n      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n        const slide = swiper.slides.eq(i);\n        const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n        if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n          const index = slide.index();\n          swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n        }\n      }\n    }\n\n    if (swiper.params.hashNavigation.watchState) {\n      $(window).on('hashchange', onHashChange);\n    }\n  };\n\n  const destroy = () => {\n    if (swiper.params.hashNavigation.watchState) {\n      $(window).off('hashchange', onHashChange);\n    }\n  };\n\n  on('init', () => {\n    if (swiper.params.hashNavigation.enabled) {\n      init();\n    }\n  });\n  on('destroy', () => {\n    if (swiper.params.hashNavigation.enabled) {\n      destroy();\n    }\n  });\n  on('transitionEnd _freeModeNoMomentumRelease', () => {\n    if (initialized) {\n      setHash();\n    }\n  });\n  on('slideChange', () => {\n    if (initialized && swiper.params.cssMode) {\n      setHash();\n    }\n  });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on,\n    emit\n  } = _ref;\n  let timeout;\n  swiper.autoplay = {\n    running: false,\n    paused: false\n  };\n  extendParams({\n    autoplay: {\n      enabled: false,\n      delay: 3000,\n      waitForTransition: true,\n      disableOnInteraction: true,\n      stopOnLastSlide: false,\n      reverseDirection: false,\n      pauseOnMouseEnter: false\n    }\n  });\n\n  function run() {\n    const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n    let delay = swiper.params.autoplay.delay;\n\n    if ($activeSlideEl.attr('data-swiper-autoplay')) {\n      delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n    }\n\n    clearTimeout(timeout);\n    timeout = nextTick(() => {\n      let autoplayResult;\n\n      if (swiper.params.autoplay.reverseDirection) {\n        if (swiper.params.loop) {\n          swiper.loopFix();\n          autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n          emit('autoplay');\n        } else if (!swiper.isBeginning) {\n          autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n          emit('autoplay');\n        } else if (!swiper.params.autoplay.stopOnLastSlide) {\n          autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n          emit('autoplay');\n        } else {\n          stop();\n        }\n      } else if (swiper.params.loop) {\n        swiper.loopFix();\n        autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n        emit('autoplay');\n      } else if (!swiper.isEnd) {\n        autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n        emit('autoplay');\n      } else if (!swiper.params.autoplay.stopOnLastSlide) {\n        autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n        emit('autoplay');\n      } else {\n        stop();\n      }\n\n      if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n        run();\n      }\n    }, delay);\n  }\n\n  function start() {\n    if (typeof timeout !== 'undefined') return false;\n    if (swiper.autoplay.running) return false;\n    swiper.autoplay.running = true;\n    emit('autoplayStart');\n    run();\n    return true;\n  }\n\n  function stop() {\n    if (!swiper.autoplay.running) return false;\n    if (typeof timeout === 'undefined') return false;\n\n    if (timeout) {\n      clearTimeout(timeout);\n      timeout = undefined;\n    }\n\n    swiper.autoplay.running = false;\n    emit('autoplayStop');\n    return true;\n  }\n\n  function pause(speed) {\n    if (!swiper.autoplay.running) return;\n    if (swiper.autoplay.paused) return;\n    if (timeout) clearTimeout(timeout);\n    swiper.autoplay.paused = true;\n\n    if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n      swiper.autoplay.paused = false;\n      run();\n    } else {\n      ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n        swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n      });\n    }\n  }\n\n  function onVisibilityChange() {\n    const document = getDocument();\n\n    if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n      pause();\n    }\n\n    if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n      run();\n      swiper.autoplay.paused = false;\n    }\n  }\n\n  function onTransitionEnd(e) {\n    if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n    if (e.target !== swiper.$wrapperEl[0]) return;\n    ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n      swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n    });\n    swiper.autoplay.paused = false;\n\n    if (!swiper.autoplay.running) {\n      stop();\n    } else {\n      run();\n    }\n  }\n\n  function onMouseEnter() {\n    if (swiper.params.autoplay.disableOnInteraction) {\n      stop();\n    } else {\n      emit('autoplayPause');\n      pause();\n    }\n\n    ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n      swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n    });\n  }\n\n  function onMouseLeave() {\n    if (swiper.params.autoplay.disableOnInteraction) {\n      return;\n    }\n\n    swiper.autoplay.paused = false;\n    emit('autoplayResume');\n    run();\n  }\n\n  function attachMouseEvents() {\n    if (swiper.params.autoplay.pauseOnMouseEnter) {\n      swiper.$el.on('mouseenter', onMouseEnter);\n      swiper.$el.on('mouseleave', onMouseLeave);\n    }\n  }\n\n  function detachMouseEvents() {\n    swiper.$el.off('mouseenter', onMouseEnter);\n    swiper.$el.off('mouseleave', onMouseLeave);\n  }\n\n  on('init', () => {\n    if (swiper.params.autoplay.enabled) {\n      start();\n      const document = getDocument();\n      document.addEventListener('visibilitychange', onVisibilityChange);\n      attachMouseEvents();\n    }\n  });\n  on('beforeTransitionStart', (_s, speed, internal) => {\n    if (swiper.autoplay.running) {\n      if (internal || !swiper.params.autoplay.disableOnInteraction) {\n        swiper.autoplay.pause(speed);\n      } else {\n        stop();\n      }\n    }\n  });\n  on('sliderFirstMove', () => {\n    if (swiper.autoplay.running) {\n      if (swiper.params.autoplay.disableOnInteraction) {\n        stop();\n      } else {\n        pause();\n      }\n    }\n  });\n  on('touchEnd', () => {\n    if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n      run();\n    }\n  });\n  on('destroy', () => {\n    detachMouseEvents();\n\n    if (swiper.autoplay.running) {\n      stop();\n    }\n\n    const document = getDocument();\n    document.removeEventListener('visibilitychange', onVisibilityChange);\n  });\n  Object.assign(swiper.autoplay, {\n    pause,\n    run,\n    start,\n    stop\n  });\n}","import { isObject } from '../../shared/utils.js';\nimport $ from '../../shared/dom.js';\nexport default function Thumb(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on\n  } = _ref;\n  extendParams({\n    thumbs: {\n      swiper: null,\n      multipleActiveThumbs: true,\n      autoScrollOffset: 0,\n      slideThumbActiveClass: 'swiper-slide-thumb-active',\n      thumbsContainerClass: 'swiper-thumbs'\n    }\n  });\n  let initialized = false;\n  let swiperCreated = false;\n  swiper.thumbs = {\n    swiper: null\n  };\n\n  function onThumbClick() {\n    const thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n    const clickedIndex = thumbsSwiper.clickedIndex;\n    const clickedSlide = thumbsSwiper.clickedSlide;\n    if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n    if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n    let slideToIndex;\n\n    if (thumbsSwiper.params.loop) {\n      slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n    } else {\n      slideToIndex = clickedIndex;\n    }\n\n    if (swiper.params.loop) {\n      let currentIndex = swiper.activeIndex;\n\n      if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n        swiper.loopFix(); // eslint-disable-next-line\n\n        swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n        currentIndex = swiper.activeIndex;\n      }\n\n      const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n      const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n      if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n    }\n\n    swiper.slideTo(slideToIndex);\n  }\n\n  function init() {\n    const {\n      thumbs: thumbsParams\n    } = swiper.params;\n    if (initialized) return false;\n    initialized = true;\n    const SwiperClass = swiper.constructor;\n\n    if (thumbsParams.swiper instanceof SwiperClass) {\n      swiper.thumbs.swiper = thumbsParams.swiper;\n      Object.assign(swiper.thumbs.swiper.originalParams, {\n        watchSlidesProgress: true,\n        slideToClickedSlide: false\n      });\n      Object.assign(swiper.thumbs.swiper.params, {\n        watchSlidesProgress: true,\n        slideToClickedSlide: false\n      });\n    } else if (isObject(thumbsParams.swiper)) {\n      const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n      Object.assign(thumbsSwiperParams, {\n        watchSlidesProgress: true,\n        slideToClickedSlide: false\n      });\n      swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n      swiperCreated = true;\n    }\n\n    swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n    swiper.thumbs.swiper.on('tap', onThumbClick);\n    return true;\n  }\n\n  function update(initial) {\n    const thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n    const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n    const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n    const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n    if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n      let currentThumbsIndex = thumbsSwiper.activeIndex;\n      let newThumbsIndex;\n      let direction;\n\n      if (thumbsSwiper.params.loop) {\n        if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n          thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n          thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n          currentThumbsIndex = thumbsSwiper.activeIndex;\n        } // Find actual thumbs index to slide to\n\n\n        const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n        const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n\n        if (typeof prevThumbsIndex === 'undefined') {\n          newThumbsIndex = nextThumbsIndex;\n        } else if (typeof nextThumbsIndex === 'undefined') {\n          newThumbsIndex = prevThumbsIndex;\n        } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n          newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n        } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n          newThumbsIndex = nextThumbsIndex;\n        } else {\n          newThumbsIndex = prevThumbsIndex;\n        }\n\n        direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n      } else {\n        newThumbsIndex = swiper.realIndex;\n        direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n      }\n\n      if (useOffset) {\n        newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n      }\n\n      if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n        if (thumbsSwiper.params.centeredSlides) {\n          if (newThumbsIndex > currentThumbsIndex) {\n            newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n          } else {\n            newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n          }\n        } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n        }\n\n        thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n      }\n    } // Activate thumbs\n\n\n    let thumbsToActivate = 1;\n    const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n    if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n      thumbsToActivate = swiper.params.slidesPerView;\n    }\n\n    if (!swiper.params.thumbs.multipleActiveThumbs) {\n      thumbsToActivate = 1;\n    }\n\n    thumbsToActivate = Math.floor(thumbsToActivate);\n    thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n    if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n      for (let i = 0; i < thumbsToActivate; i += 1) {\n        thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n      }\n    } else {\n      for (let i = 0; i < thumbsToActivate; i += 1) {\n        thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n      }\n    }\n  }\n\n  on('beforeInit', () => {\n    const {\n      thumbs\n    } = swiper.params;\n    if (!thumbs || !thumbs.swiper) return;\n    init();\n    update(true);\n  });\n  on('slideChange update resize observerUpdate', () => {\n    update();\n  });\n  on('setTransition', (_s, duration) => {\n    const thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n    thumbsSwiper.setTransition(duration);\n  });\n  on('beforeDestroy', () => {\n    const thumbsSwiper = swiper.thumbs.swiper;\n    if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n    if (swiperCreated) {\n      thumbsSwiper.destroy();\n    }\n  });\n  Object.assign(swiper.thumbs, {\n    init,\n    update\n  });\n}","import { now } from '../../shared/utils.js';\nexport default function freeMode(_ref) {\n  let {\n    swiper,\n    extendParams,\n    emit,\n    once\n  } = _ref;\n  extendParams({\n    freeMode: {\n      enabled: false,\n      momentum: true,\n      momentumRatio: 1,\n      momentumBounce: true,\n      momentumBounceRatio: 1,\n      momentumVelocityRatio: 1,\n      sticky: false,\n      minimumVelocity: 0.02\n    }\n  });\n\n  function onTouchStart() {\n    const translate = swiper.getTranslate();\n    swiper.setTranslate(translate);\n    swiper.setTransition(0);\n    swiper.touchEventsData.velocities.length = 0;\n    swiper.freeMode.onTouchEnd({\n      currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n    });\n  }\n\n  function onTouchMove() {\n    const {\n      touchEventsData: data,\n      touches\n    } = swiper; // Velocity\n\n    if (data.velocities.length === 0) {\n      data.velocities.push({\n        position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n        time: data.touchStartTime\n      });\n    }\n\n    data.velocities.push({\n      position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n      time: now()\n    });\n  }\n\n  function onTouchEnd(_ref2) {\n    let {\n      currentPos\n    } = _ref2;\n    const {\n      params,\n      $wrapperEl,\n      rtlTranslate: rtl,\n      snapGrid,\n      touchEventsData: data\n    } = swiper; // Time diff\n\n    const touchEndTime = now();\n    const timeDiff = touchEndTime - data.touchStartTime;\n\n    if (currentPos < -swiper.minTranslate()) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n\n    if (currentPos > -swiper.maxTranslate()) {\n      if (swiper.slides.length < snapGrid.length) {\n        swiper.slideTo(snapGrid.length - 1);\n      } else {\n        swiper.slideTo(swiper.slides.length - 1);\n      }\n\n      return;\n    }\n\n    if (params.freeMode.momentum) {\n      if (data.velocities.length > 1) {\n        const lastMoveEvent = data.velocities.pop();\n        const velocityEvent = data.velocities.pop();\n        const distance = lastMoveEvent.position - velocityEvent.position;\n        const time = lastMoveEvent.time - velocityEvent.time;\n        swiper.velocity = distance / time;\n        swiper.velocity /= 2;\n\n        if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n          swiper.velocity = 0;\n        } // this implies that the user stopped moving a finger then released.\n        // There would be no events with distance zero, so the last event is stale.\n\n\n        if (time > 150 || now() - lastMoveEvent.time > 300) {\n          swiper.velocity = 0;\n        }\n      } else {\n        swiper.velocity = 0;\n      }\n\n      swiper.velocity *= params.freeMode.momentumVelocityRatio;\n      data.velocities.length = 0;\n      let momentumDuration = 1000 * params.freeMode.momentumRatio;\n      const momentumDistance = swiper.velocity * momentumDuration;\n      let newPosition = swiper.translate + momentumDistance;\n      if (rtl) newPosition = -newPosition;\n      let doBounce = false;\n      let afterBouncePosition;\n      const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n      let needsLoopFix;\n\n      if (newPosition < swiper.maxTranslate()) {\n        if (params.freeMode.momentumBounce) {\n          if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n            newPosition = swiper.maxTranslate() - bounceAmount;\n          }\n\n          afterBouncePosition = swiper.maxTranslate();\n          doBounce = true;\n          data.allowMomentumBounce = true;\n        } else {\n          newPosition = swiper.maxTranslate();\n        }\n\n        if (params.loop && params.centeredSlides) needsLoopFix = true;\n      } else if (newPosition > swiper.minTranslate()) {\n        if (params.freeMode.momentumBounce) {\n          if (newPosition - swiper.minTranslate() > bounceAmount) {\n            newPosition = swiper.minTranslate() + bounceAmount;\n          }\n\n          afterBouncePosition = swiper.minTranslate();\n          doBounce = true;\n          data.allowMomentumBounce = true;\n        } else {\n          newPosition = swiper.minTranslate();\n        }\n\n        if (params.loop && params.centeredSlides) needsLoopFix = true;\n      } else if (params.freeMode.sticky) {\n        let nextSlide;\n\n        for (let j = 0; j < snapGrid.length; j += 1) {\n          if (snapGrid[j] > -newPosition) {\n            nextSlide = j;\n            break;\n          }\n        }\n\n        if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n          newPosition = snapGrid[nextSlide];\n        } else {\n          newPosition = snapGrid[nextSlide - 1];\n        }\n\n        newPosition = -newPosition;\n      }\n\n      if (needsLoopFix) {\n        once('transitionEnd', () => {\n          swiper.loopFix();\n        });\n      } // Fix duration\n\n\n      if (swiper.velocity !== 0) {\n        if (rtl) {\n          momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n        } else {\n          momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n        }\n\n        if (params.freeMode.sticky) {\n          // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n          // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n          // It's easy to see this when simulating touch with mouse events. To fix this,\n          // limit single-slide swipes to the default slide duration. This also has the\n          // nice side effect of matching slide speed if the user stopped moving before\n          // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n          // For faster swipes, also apply limits (albeit higher ones).\n          const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n          const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n          if (moveDistance < currentSlideSize) {\n            momentumDuration = params.speed;\n          } else if (moveDistance < 2 * currentSlideSize) {\n            momentumDuration = params.speed * 1.5;\n          } else {\n            momentumDuration = params.speed * 2.5;\n          }\n        }\n      } else if (params.freeMode.sticky) {\n        swiper.slideToClosest();\n        return;\n      }\n\n      if (params.freeMode.momentumBounce && doBounce) {\n        swiper.updateProgress(afterBouncePosition);\n        swiper.setTransition(momentumDuration);\n        swiper.setTranslate(newPosition);\n        swiper.transitionStart(true, swiper.swipeDirection);\n        swiper.animating = true;\n        $wrapperEl.transitionEnd(() => {\n          if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n          emit('momentumBounce');\n          swiper.setTransition(params.speed);\n          setTimeout(() => {\n            swiper.setTranslate(afterBouncePosition);\n            $wrapperEl.transitionEnd(() => {\n              if (!swiper || swiper.destroyed) return;\n              swiper.transitionEnd();\n            });\n          }, 0);\n        });\n      } else if (swiper.velocity) {\n        emit('_freeModeNoMomentumRelease');\n        swiper.updateProgress(newPosition);\n        swiper.setTransition(momentumDuration);\n        swiper.setTranslate(newPosition);\n        swiper.transitionStart(true, swiper.swipeDirection);\n\n        if (!swiper.animating) {\n          swiper.animating = true;\n          $wrapperEl.transitionEnd(() => {\n            if (!swiper || swiper.destroyed) return;\n            swiper.transitionEnd();\n          });\n        }\n      } else {\n        swiper.updateProgress(newPosition);\n      }\n\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    } else if (params.freeMode.sticky) {\n      swiper.slideToClosest();\n      return;\n    } else if (params.freeMode) {\n      emit('_freeModeNoMomentumRelease');\n    }\n\n    if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n      swiper.updateProgress();\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n  }\n\n  Object.assign(swiper, {\n    freeMode: {\n      onTouchStart,\n      onTouchMove,\n      onTouchEnd\n    }\n  });\n}","export default function Grid(_ref) {\n  let {\n    swiper,\n    extendParams\n  } = _ref;\n  extendParams({\n    grid: {\n      rows: 1,\n      fill: 'column'\n    }\n  });\n  let slidesNumberEvenToRows;\n  let slidesPerRow;\n  let numFullColumns;\n\n  const initSlides = slidesLength => {\n    const {\n      slidesPerView\n    } = swiper.params;\n    const {\n      rows,\n      fill\n    } = swiper.params.grid;\n    slidesPerRow = slidesNumberEvenToRows / rows;\n    numFullColumns = Math.floor(slidesLength / rows);\n\n    if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n      slidesNumberEvenToRows = slidesLength;\n    } else {\n      slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n    }\n\n    if (slidesPerView !== 'auto' && fill === 'row') {\n      slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n    }\n  };\n\n  const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n    const {\n      slidesPerGroup,\n      spaceBetween\n    } = swiper.params;\n    const {\n      rows,\n      fill\n    } = swiper.params.grid; // Set slides order\n\n    let newSlideOrderIndex;\n    let column;\n    let row;\n\n    if (fill === 'row' && slidesPerGroup > 1) {\n      const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n      const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n      const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n      row = Math.floor(slideIndexInGroup / columnsInGroup);\n      column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n      newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n      slide.css({\n        '-webkit-order': newSlideOrderIndex,\n        order: newSlideOrderIndex\n      });\n    } else if (fill === 'column') {\n      column = Math.floor(i / rows);\n      row = i - column * rows;\n\n      if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n        row += 1;\n\n        if (row >= rows) {\n          row = 0;\n          column += 1;\n        }\n      }\n    } else {\n      row = Math.floor(i / slidesPerRow);\n      column = i - row * slidesPerRow;\n    }\n\n    slide.css(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && `${spaceBetween}px` : '');\n  };\n\n  const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n    const {\n      spaceBetween,\n      centeredSlides,\n      roundLengths\n    } = swiper.params;\n    const {\n      rows\n    } = swiper.params.grid;\n    swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n    swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n    swiper.$wrapperEl.css({\n      [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`\n    });\n\n    if (centeredSlides) {\n      snapGrid.splice(0, snapGrid.length);\n      const newSlidesGrid = [];\n\n      for (let i = 0; i < snapGrid.length; i += 1) {\n        let slidesGridItem = snapGrid[i];\n        if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n        if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n      }\n\n      snapGrid.push(...newSlidesGrid);\n    }\n  };\n\n  swiper.grid = {\n    initSlides,\n    updateSlide,\n    updateWrapperSize\n  };\n}","export default function appendSlide(slides) {\n  const swiper = this;\n  const {\n    $wrapperEl,\n    params\n  } = swiper;\n\n  if (params.loop) {\n    swiper.loopDestroy();\n  }\n\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) $wrapperEl.append(slides[i]);\n    }\n  } else {\n    $wrapperEl.append(slides);\n  }\n\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n\n  if (!params.observer) {\n    swiper.update();\n  }\n}","export default function prependSlide(slides) {\n  const swiper = this;\n  const {\n    params,\n    $wrapperEl,\n    activeIndex\n  } = swiper;\n\n  if (params.loop) {\n    swiper.loopDestroy();\n  }\n\n  let newActiveIndex = activeIndex + 1;\n\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) $wrapperEl.prepend(slides[i]);\n    }\n\n    newActiveIndex = activeIndex + slides.length;\n  } else {\n    $wrapperEl.prepend(slides);\n  }\n\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n\n  if (!params.observer) {\n    swiper.update();\n  }\n\n  swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n  const swiper = this;\n  const {\n    $wrapperEl,\n    params,\n    activeIndex\n  } = swiper;\n  let activeIndexBuffer = activeIndex;\n\n  if (params.loop) {\n    activeIndexBuffer -= swiper.loopedSlides;\n    swiper.loopDestroy();\n    swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n  }\n\n  const baseLength = swiper.slides.length;\n\n  if (index <= 0) {\n    swiper.prependSlide(slides);\n    return;\n  }\n\n  if (index >= baseLength) {\n    swiper.appendSlide(slides);\n    return;\n  }\n\n  let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n  const slidesBuffer = [];\n\n  for (let i = baseLength - 1; i >= index; i -= 1) {\n    const currentSlide = swiper.slides.eq(i);\n    currentSlide.remove();\n    slidesBuffer.unshift(currentSlide);\n  }\n\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) $wrapperEl.append(slides[i]);\n    }\n\n    newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n  } else {\n    $wrapperEl.append(slides);\n  }\n\n  for (let i = 0; i < slidesBuffer.length; i += 1) {\n    $wrapperEl.append(slidesBuffer[i]);\n  }\n\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n\n  if (!params.observer) {\n    swiper.update();\n  }\n\n  if (params.loop) {\n    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n  } else {\n    swiper.slideTo(newActiveIndex, 0, false);\n  }\n}","export default function removeSlide(slidesIndexes) {\n  const swiper = this;\n  const {\n    params,\n    $wrapperEl,\n    activeIndex\n  } = swiper;\n  let activeIndexBuffer = activeIndex;\n\n  if (params.loop) {\n    activeIndexBuffer -= swiper.loopedSlides;\n    swiper.loopDestroy();\n    swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n  }\n\n  let newActiveIndex = activeIndexBuffer;\n  let indexToRemove;\n\n  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n    for (let i = 0; i < slidesIndexes.length; i += 1) {\n      indexToRemove = slidesIndexes[i];\n      if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n    }\n\n    newActiveIndex = Math.max(newActiveIndex, 0);\n  } else {\n    indexToRemove = slidesIndexes;\n    if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n    if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n    newActiveIndex = Math.max(newActiveIndex, 0);\n  }\n\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n\n  if (!params.observer) {\n    swiper.update();\n  }\n\n  if (params.loop) {\n    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n  } else {\n    swiper.slideTo(newActiveIndex, 0, false);\n  }\n}","export default function removeAllSlides() {\n  const swiper = this;\n  const slidesIndexes = [];\n\n  for (let i = 0; i < swiper.slides.length; i += 1) {\n    slidesIndexes.push(i);\n  }\n\n  swiper.removeSlide(slidesIndexes);\n}","import appendSlide from './methods/appendSlide.js';\nimport prependSlide from './methods/prependSlide.js';\nimport addSlide from './methods/addSlide.js';\nimport removeSlide from './methods/removeSlide.js';\nimport removeAllSlides from './methods/removeAllSlides.js';\nexport default function Manipulation(_ref) {\n  let {\n    swiper\n  } = _ref;\n  Object.assign(swiper, {\n    appendSlide: appendSlide.bind(swiper),\n    prependSlide: prependSlide.bind(swiper),\n    addSlide: addSlide.bind(swiper),\n    removeSlide: removeSlide.bind(swiper),\n    removeAllSlides: removeAllSlides.bind(swiper)\n  });\n}","export default function effectInit(params) {\n  const {\n    effect,\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    overwriteParams,\n    perspective,\n    recreateShadows,\n    getEffectParams\n  } = params;\n  on('beforeInit', () => {\n    if (swiper.params.effect !== effect) return;\n    swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n\n    if (perspective && perspective()) {\n      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n    }\n\n    const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n    Object.assign(swiper.params, overwriteParamsResult);\n    Object.assign(swiper.originalParams, overwriteParamsResult);\n  });\n  on('setTranslate', () => {\n    if (swiper.params.effect !== effect) return;\n    setTranslate();\n  });\n  on('setTransition', (_s, duration) => {\n    if (swiper.params.effect !== effect) return;\n    setTransition(duration);\n  });\n  on('transitionEnd', () => {\n    if (swiper.params.effect !== effect) return;\n\n    if (recreateShadows) {\n      if (!getEffectParams || !getEffectParams().slideShadows) return; // remove shadows\n\n      swiper.slides.each(slideEl => {\n        const $slideEl = swiper.$(slideEl);\n        $slideEl.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').remove();\n      }); // create new one\n\n      recreateShadows();\n    }\n  });\n  let requireUpdateOnVirtual;\n  on('virtualUpdate', () => {\n    if (swiper.params.effect !== effect) return;\n\n    if (!swiper.slides.length) {\n      requireUpdateOnVirtual = true;\n    }\n\n    requestAnimationFrame(() => {\n      if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n        setTranslate();\n        requireUpdateOnVirtual = false;\n      }\n    });\n  });\n}","export default function effectTarget(effectParams, $slideEl) {\n  if (effectParams.transformEl) {\n    return $slideEl.find(effectParams.transformEl).css({\n      'backface-visibility': 'hidden',\n      '-webkit-backface-visibility': 'hidden'\n    });\n  }\n\n  return $slideEl;\n}","export default function effectVirtualTransitionEnd(_ref) {\n  let {\n    swiper,\n    duration,\n    transformEl,\n    allSlides\n  } = _ref;\n  const {\n    slides,\n    activeIndex,\n    $wrapperEl\n  } = swiper;\n\n  if (swiper.params.virtualTranslate && duration !== 0) {\n    let eventTriggered = false;\n    let $transitionEndTarget;\n\n    if (allSlides) {\n      $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n    } else {\n      $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n    }\n\n    $transitionEndTarget.transitionEnd(() => {\n      if (eventTriggered) return;\n      if (!swiper || swiper.destroyed) return;\n      eventTriggered = true;\n      swiper.animating = false;\n      const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n      for (let i = 0; i < triggerEvents.length; i += 1) {\n        $wrapperEl.trigger(triggerEvents[i]);\n      }\n    });\n  }\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFade(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on\n  } = _ref;\n  extendParams({\n    fadeEffect: {\n      crossFade: false,\n      transformEl: null\n    }\n  });\n\n  const setTranslate = () => {\n    const {\n      slides\n    } = swiper;\n    const params = swiper.params.fadeEffect;\n\n    for (let i = 0; i < slides.length; i += 1) {\n      const $slideEl = swiper.slides.eq(i);\n      const offset = $slideEl[0].swiperSlideOffset;\n      let tx = -offset;\n      if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n      let ty = 0;\n\n      if (!swiper.isHorizontal()) {\n        ty = tx;\n        tx = 0;\n      }\n\n      const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n      const $targetEl = effectTarget(params, $slideEl);\n      $targetEl.css({\n        opacity: slideOpacity\n      }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n    }\n  };\n\n  const setTransition = duration => {\n    const {\n      transformEl\n    } = swiper.params.fadeEffect;\n    const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n    $transitionElements.transition(duration);\n    effectVirtualTransitionEnd({\n      swiper,\n      duration,\n      transformEl,\n      allSlides: true\n    });\n  };\n\n  effectInit({\n    effect: 'fade',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    overwriteParams: () => ({\n      slidesPerView: 1,\n      slidesPerGroup: 1,\n      watchSlidesProgress: true,\n      spaceBetween: 0,\n      virtualTranslate: !swiper.params.cssMode\n    })\n  });\n}","import $ from '../../shared/dom.js';\nimport effectInit from '../../shared/effect-init.js';\nexport default function EffectCube(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on\n  } = _ref;\n  extendParams({\n    cubeEffect: {\n      slideShadows: true,\n      shadow: true,\n      shadowOffset: 20,\n      shadowScale: 0.94\n    }\n  });\n\n  const createSlideShadows = ($slideEl, progress, isHorizontal) => {\n    let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n    let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n    if (shadowBefore.length === 0) {\n      shadowBefore = $(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}\"></div>`);\n      $slideEl.append(shadowBefore);\n    }\n\n    if (shadowAfter.length === 0) {\n      shadowAfter = $(`<div class=\"swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}\"></div>`);\n      $slideEl.append(shadowAfter);\n    }\n\n    if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n    if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n  };\n\n  const recreateShadows = () => {\n    // create new ones\n    const isHorizontal = swiper.isHorizontal();\n    swiper.slides.each(slideEl => {\n      const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n      createSlideShadows($(slideEl), progress, isHorizontal);\n    });\n  };\n\n  const setTranslate = () => {\n    const {\n      $el,\n      $wrapperEl,\n      slides,\n      width: swiperWidth,\n      height: swiperHeight,\n      rtlTranslate: rtl,\n      size: swiperSize,\n      browser\n    } = swiper;\n    const params = swiper.params.cubeEffect;\n    const isHorizontal = swiper.isHorizontal();\n    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n    let wrapperRotate = 0;\n    let $cubeShadowEl;\n\n    if (params.shadow) {\n      if (isHorizontal) {\n        $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n        if ($cubeShadowEl.length === 0) {\n          $cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\n          $wrapperEl.append($cubeShadowEl);\n        }\n\n        $cubeShadowEl.css({\n          height: `${swiperWidth}px`\n        });\n      } else {\n        $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n        if ($cubeShadowEl.length === 0) {\n          $cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\n          $el.append($cubeShadowEl);\n        }\n      }\n    }\n\n    for (let i = 0; i < slides.length; i += 1) {\n      const $slideEl = slides.eq(i);\n      let slideIndex = i;\n\n      if (isVirtual) {\n        slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n      }\n\n      let slideAngle = slideIndex * 90;\n      let round = Math.floor(slideAngle / 360);\n\n      if (rtl) {\n        slideAngle = -slideAngle;\n        round = Math.floor(-slideAngle / 360);\n      }\n\n      const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n      let tx = 0;\n      let ty = 0;\n      let tz = 0;\n\n      if (slideIndex % 4 === 0) {\n        tx = -round * 4 * swiperSize;\n        tz = 0;\n      } else if ((slideIndex - 1) % 4 === 0) {\n        tx = 0;\n        tz = -round * 4 * swiperSize;\n      } else if ((slideIndex - 2) % 4 === 0) {\n        tx = swiperSize + round * 4 * swiperSize;\n        tz = swiperSize;\n      } else if ((slideIndex - 3) % 4 === 0) {\n        tx = -swiperSize;\n        tz = 3 * swiperSize + swiperSize * 4 * round;\n      }\n\n      if (rtl) {\n        tx = -tx;\n      }\n\n      if (!isHorizontal) {\n        ty = tx;\n        tx = 0;\n      }\n\n      const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n\n      if (progress <= 1 && progress > -1) {\n        wrapperRotate = slideIndex * 90 + progress * 90;\n        if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n      }\n\n      $slideEl.transform(transform);\n\n      if (params.slideShadows) {\n        createSlideShadows($slideEl, progress, isHorizontal);\n      }\n    }\n\n    $wrapperEl.css({\n      '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n      'transform-origin': `50% 50% -${swiperSize / 2}px`\n    });\n\n    if (params.shadow) {\n      if (isHorizontal) {\n        $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n      } else {\n        const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n        const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n        const scale1 = params.shadowScale;\n        const scale2 = params.shadowScale / multiplier;\n        const offset = params.shadowOffset;\n        $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n      }\n    }\n\n    const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n    $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n    $wrapperEl[0].style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n  };\n\n  const setTransition = duration => {\n    const {\n      $el,\n      slides\n    } = swiper;\n    slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n    if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n      $el.find('.swiper-cube-shadow').transition(duration);\n    }\n  };\n\n  effectInit({\n    effect: 'cube',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    recreateShadows,\n    getEffectParams: () => swiper.params.cubeEffect,\n    perspective: () => true,\n    overwriteParams: () => ({\n      slidesPerView: 1,\n      slidesPerGroup: 1,\n      watchSlidesProgress: true,\n      resistanceRatio: 0,\n      spaceBetween: 0,\n      centeredSlides: false,\n      virtualTranslate: true\n    })\n  });\n}","import $ from './dom.js';\nexport default function createShadow(params, $slideEl, side) {\n  const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n  const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n  let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\n\n  if (!$shadowEl.length) {\n    $shadowEl = $(`<div class=\"swiper-slide-shadow${side ? `-${side}` : ''}\"></div>`);\n    $shadowContainer.append($shadowEl);\n  }\n\n  return $shadowEl;\n}","import $ from '../../shared/dom.js';\nimport createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFlip(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on\n  } = _ref;\n  extendParams({\n    flipEffect: {\n      slideShadows: true,\n      limitRotation: true,\n      transformEl: null\n    }\n  });\n\n  const createSlideShadows = ($slideEl, progress, params) => {\n    let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n    let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n    if (shadowBefore.length === 0) {\n      shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n    }\n\n    if (shadowAfter.length === 0) {\n      shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n    }\n\n    if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n    if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n  };\n\n  const recreateShadows = () => {\n    // Set shadows\n    const params = swiper.params.flipEffect;\n    swiper.slides.each(slideEl => {\n      const $slideEl = $(slideEl);\n      let progress = $slideEl[0].progress;\n\n      if (swiper.params.flipEffect.limitRotation) {\n        progress = Math.max(Math.min(slideEl.progress, 1), -1);\n      }\n\n      createSlideShadows($slideEl, progress, params);\n    });\n  };\n\n  const setTranslate = () => {\n    const {\n      slides,\n      rtlTranslate: rtl\n    } = swiper;\n    const params = swiper.params.flipEffect;\n\n    for (let i = 0; i < slides.length; i += 1) {\n      const $slideEl = slides.eq(i);\n      let progress = $slideEl[0].progress;\n\n      if (swiper.params.flipEffect.limitRotation) {\n        progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n      }\n\n      const offset = $slideEl[0].swiperSlideOffset;\n      const rotate = -180 * progress;\n      let rotateY = rotate;\n      let rotateX = 0;\n      let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n      let ty = 0;\n\n      if (!swiper.isHorizontal()) {\n        ty = tx;\n        tx = 0;\n        rotateX = -rotateY;\n        rotateY = 0;\n      } else if (rtl) {\n        rotateY = -rotateY;\n      }\n\n      $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n      if (params.slideShadows) {\n        createSlideShadows($slideEl, progress, params);\n      }\n\n      const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n      const $targetEl = effectTarget(params, $slideEl);\n      $targetEl.transform(transform);\n    }\n  };\n\n  const setTransition = duration => {\n    const {\n      transformEl\n    } = swiper.params.flipEffect;\n    const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n    $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n    effectVirtualTransitionEnd({\n      swiper,\n      duration,\n      transformEl\n    });\n  };\n\n  effectInit({\n    effect: 'flip',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    recreateShadows,\n    getEffectParams: () => swiper.params.flipEffect,\n    perspective: () => true,\n    overwriteParams: () => ({\n      slidesPerView: 1,\n      slidesPerGroup: 1,\n      watchSlidesProgress: true,\n      spaceBetween: 0,\n      virtualTranslate: !swiper.params.cssMode\n    })\n  });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nexport default function EffectCoverflow(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on\n  } = _ref;\n  extendParams({\n    coverflowEffect: {\n      rotate: 50,\n      stretch: 0,\n      depth: 100,\n      scale: 1,\n      modifier: 1,\n      slideShadows: true,\n      transformEl: null\n    }\n  });\n\n  const setTranslate = () => {\n    const {\n      width: swiperWidth,\n      height: swiperHeight,\n      slides,\n      slidesSizesGrid\n    } = swiper;\n    const params = swiper.params.coverflowEffect;\n    const isHorizontal = swiper.isHorizontal();\n    const transform = swiper.translate;\n    const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n    const rotate = isHorizontal ? params.rotate : -params.rotate;\n    const translate = params.depth; // Each slide offset from center\n\n    for (let i = 0, length = slides.length; i < length; i += 1) {\n      const $slideEl = slides.eq(i);\n      const slideSize = slidesSizesGrid[i];\n      const slideOffset = $slideEl[0].swiperSlideOffset;\n      const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n      const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n      let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n      let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n      let translateZ = -translate * Math.abs(offsetMultiplier);\n      let stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n      if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n        stretch = parseFloat(params.stretch) / 100 * slideSize;\n      }\n\n      let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n      let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n      let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n      if (Math.abs(translateX) < 0.001) translateX = 0;\n      if (Math.abs(translateY) < 0.001) translateY = 0;\n      if (Math.abs(translateZ) < 0.001) translateZ = 0;\n      if (Math.abs(rotateY) < 0.001) rotateY = 0;\n      if (Math.abs(rotateX) < 0.001) rotateX = 0;\n      if (Math.abs(scale) < 0.001) scale = 0;\n      const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n      const $targetEl = effectTarget(params, $slideEl);\n      $targetEl.transform(slideTransform);\n      $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n      if (params.slideShadows) {\n        // Set shadows\n        let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n        let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n        if ($shadowBeforeEl.length === 0) {\n          $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\n        }\n\n        if ($shadowAfterEl.length === 0) {\n          $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\n        }\n\n        if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n        if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n      }\n    }\n  };\n\n  const setTransition = duration => {\n    const {\n      transformEl\n    } = swiper.params.coverflowEffect;\n    const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n    $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n  };\n\n  effectInit({\n    effect: 'coverflow',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    perspective: () => true,\n    overwriteParams: () => ({\n      watchSlidesProgress: true\n    })\n  });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCreative(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on\n  } = _ref;\n  extendParams({\n    creativeEffect: {\n      transformEl: null,\n      limitProgress: 1,\n      shadowPerProgress: false,\n      progressMultiplier: 1,\n      perspective: true,\n      prev: {\n        translate: [0, 0, 0],\n        rotate: [0, 0, 0],\n        opacity: 1,\n        scale: 1\n      },\n      next: {\n        translate: [0, 0, 0],\n        rotate: [0, 0, 0],\n        opacity: 1,\n        scale: 1\n      }\n    }\n  });\n\n  const getTranslateValue = value => {\n    if (typeof value === 'string') return value;\n    return `${value}px`;\n  };\n\n  const setTranslate = () => {\n    const {\n      slides,\n      $wrapperEl,\n      slidesSizesGrid\n    } = swiper;\n    const params = swiper.params.creativeEffect;\n    const {\n      progressMultiplier: multiplier\n    } = params;\n    const isCenteredSlides = swiper.params.centeredSlides;\n\n    if (isCenteredSlides) {\n      const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n      $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);\n    }\n\n    for (let i = 0; i < slides.length; i += 1) {\n      const $slideEl = slides.eq(i);\n      const slideProgress = $slideEl[0].progress;\n      const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n      let originalProgress = progress;\n\n      if (!isCenteredSlides) {\n        originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);\n      }\n\n      const offset = $slideEl[0].swiperSlideOffset;\n      const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n      const r = [0, 0, 0];\n      let custom = false;\n\n      if (!swiper.isHorizontal()) {\n        t[1] = t[0];\n        t[0] = 0;\n      }\n\n      let data = {\n        translate: [0, 0, 0],\n        rotate: [0, 0, 0],\n        scale: 1,\n        opacity: 1\n      };\n\n      if (progress < 0) {\n        data = params.next;\n        custom = true;\n      } else if (progress > 0) {\n        data = params.prev;\n        custom = true;\n      } // set translate\n\n\n      t.forEach((value, index) => {\n        t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n      }); // set rotates\n\n      r.forEach((value, index) => {\n        r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n      });\n      $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n      const translateString = t.join(', ');\n      const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n      const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n      const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n      const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; // Set shadows\n\n      if (custom && data.shadow || !custom) {\n        let $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n        if ($shadowEl.length === 0 && data.shadow) {\n          $shadowEl = createShadow(params, $slideEl);\n        }\n\n        if ($shadowEl.length) {\n          const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n          $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n        }\n      }\n\n      const $targetEl = effectTarget(params, $slideEl);\n      $targetEl.transform(transform).css({\n        opacity: opacityString\n      });\n\n      if (data.origin) {\n        $targetEl.css('transform-origin', data.origin);\n      }\n    }\n  };\n\n  const setTransition = duration => {\n    const {\n      transformEl\n    } = swiper.params.creativeEffect;\n    const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n    $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n    effectVirtualTransitionEnd({\n      swiper,\n      duration,\n      transformEl,\n      allSlides: true\n    });\n  };\n\n  effectInit({\n    effect: 'creative',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    perspective: () => swiper.params.creativeEffect.perspective,\n    overwriteParams: () => ({\n      watchSlidesProgress: true,\n      virtualTranslate: !swiper.params.cssMode\n    })\n  });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCards(_ref) {\n  let {\n    swiper,\n    extendParams,\n    on\n  } = _ref;\n  extendParams({\n    cardsEffect: {\n      slideShadows: true,\n      transformEl: null,\n      rotate: true\n    }\n  });\n\n  const setTranslate = () => {\n    const {\n      slides,\n      activeIndex\n    } = swiper;\n    const params = swiper.params.cardsEffect;\n    const {\n      startTranslate,\n      isTouched\n    } = swiper.touchEventsData;\n    const currentTranslate = swiper.translate;\n\n    for (let i = 0; i < slides.length; i += 1) {\n      const $slideEl = slides.eq(i);\n      const slideProgress = $slideEl[0].progress;\n      const progress = Math.min(Math.max(slideProgress, -4), 4);\n      let offset = $slideEl[0].swiperSlideOffset;\n\n      if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n        swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);\n      }\n\n      if (swiper.params.centeredSlides && swiper.params.cssMode) {\n        offset -= slides[0].swiperSlideOffset;\n      }\n\n      let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n      let tY = 0;\n      const tZ = -100 * Math.abs(progress);\n      let scale = 1;\n      let rotate = -2 * progress;\n      let tXAdd = 8 - Math.abs(progress) * 0.75;\n      const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n      const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n      const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n\n      if (isSwipeToNext || isSwipeToPrev) {\n        const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n        rotate += -28 * progress * subProgress;\n        scale += -0.5 * subProgress;\n        tXAdd += 96 * subProgress;\n        tY = `${-25 * subProgress * Math.abs(progress)}%`;\n      }\n\n      if (progress < 0) {\n        // next\n        tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n      } else if (progress > 0) {\n        // prev\n        tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n      } else {\n        tX = `${tX}px`;\n      }\n\n      if (!swiper.isHorizontal()) {\n        const prevY = tY;\n        tY = tX;\n        tX = prevY;\n      }\n\n      const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n      const transform = `\n        translate3d(${tX}, ${tY}, ${tZ}px)\n        rotateZ(${params.rotate ? rotate : 0}deg)\n        scale(${scaleString})\n      `;\n\n      if (params.slideShadows) {\n        // Set shadows\n        let $shadowEl = $slideEl.find('.swiper-slide-shadow');\n\n        if ($shadowEl.length === 0) {\n          $shadowEl = createShadow(params, $slideEl);\n        }\n\n        if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n      }\n\n      $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n      const $targetEl = effectTarget(params, $slideEl);\n      $targetEl.transform(transform);\n    }\n  };\n\n  const setTransition = duration => {\n    const {\n      transformEl\n    } = swiper.params.cardsEffect;\n    const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n    $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n    effectVirtualTransitionEnd({\n      swiper,\n      duration,\n      transformEl\n    });\n  };\n\n  effectInit({\n    effect: 'cards',\n    swiper,\n    on,\n    setTranslate,\n    setTransition,\n    perspective: () => true,\n    overwriteParams: () => ({\n      watchSlidesProgress: true,\n      virtualTranslate: !swiper.params.cssMode\n    })\n  });\n}","/**\n * Swiper 8.2.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2022 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 1, 2022\n */\n\nexport { default as Swiper, default } from './core/core.js';\nexport { default as Virtual } from './modules/virtual/virtual.js';\nexport { default as Keyboard } from './modules/keyboard/keyboard.js';\nexport { default as Mousewheel } from './modules/mousewheel/mousewheel.js';\nexport { default as Navigation } from './modules/navigation/navigation.js';\nexport { default as Pagination } from './modules/pagination/pagination.js';\nexport { default as Scrollbar } from './modules/scrollbar/scrollbar.js';\nexport { default as Parallax } from './modules/parallax/parallax.js';\nexport { default as Zoom } from './modules/zoom/zoom.js';\nexport { default as Lazy } from './modules/lazy/lazy.js';\nexport { default as Controller } from './modules/controller/controller.js';\nexport { default as A11y } from './modules/a11y/a11y.js';\nexport { default as History } from './modules/history/history.js';\nexport { default as HashNavigation } from './modules/hash-navigation/hash-navigation.js';\nexport { default as Autoplay } from './modules/autoplay/autoplay.js';\nexport { default as Thumbs } from './modules/thumbs/thumbs.js';\nexport { default as FreeMode } from './modules/free-mode/free-mode.js';\nexport { default as Grid } from './modules/grid/grid.js';\nexport { default as Manipulation } from './modules/manipulation/manipulation.js';\nexport { default as EffectFade } from './modules/effect-fade/effect-fade.js';\nexport { default as EffectCube } from './modules/effect-cube/effect-cube.js';\nexport { default as EffectFlip } from './modules/effect-flip/effect-flip.js';\nexport { default as EffectCoverflow } from './modules/effect-coverflow/effect-coverflow.js';\nexport { default as EffectCreative } from './modules/effect-creative/effect-creative.js';\nexport { default as EffectCards } from './modules/effect-cards/effect-cards.js';","function isObject(o) {\n  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\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}\n\nfunction needsNavigation(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  return props.navigation && typeof props.navigation.nextEl === 'undefined' && typeof props.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  return props.pagination && typeof props.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  return props.scrollbar && typeof props.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n  if (classNames === void 0) {\n    classNames = '';\n  }\n\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}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', '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', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj) {\n  if (obj === void 0) {\n    obj = {};\n  }\n\n  const params = {\n    on: {}\n  };\n  const passedParams = {};\n  extend(params, Swiper.defaults);\n  extend(params, Swiper.extendedDefaults);\n  params._emitClasses = true;\n  params.init = false;\n  const rest = {};\n  const allowedParams = paramsList.map(key => key.replace(/_/, '')); // Prevent empty Object.keys(obj) array on ios.\n\n  const plainObj = Object.assign({}, obj);\n  Object.keys(plainObj).forEach(key => {\n    if (typeof obj[key] === 'undefined') return;\n\n    if (allowedParams.indexOf(key) >= 0) {\n      if (isObject(obj[key])) {\n        params[key] = {};\n        passedParams[key] = {};\n        extend(params[key], obj[key]);\n        extend(passedParams[key], obj[key]);\n      } else {\n        params[key] = obj[key];\n        passedParams[key] = obj[key];\n      }\n    } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n      params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n    } else {\n      rest[key] = obj[key];\n    }\n  });\n  ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n    if (params[key] === true) params[key] = {};\n    if (params[key] === false) delete params[key];\n  });\n  return {\n    params,\n    passedParams,\n    rest\n  };\n}\n\nexport { getParams };","import Swiper from 'swiper';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction initSwiper(swiperParams) {\n  return new Swiper(swiperParams);\n}\n\nfunction mountSwiper(_ref, swiperParams) {\n  let {\n    el,\n    nextEl,\n    prevEl,\n    paginationEl,\n    scrollbarEl,\n    swiper\n  } = _ref;\n\n  if (needsNavigation(swiperParams) && nextEl && prevEl) {\n    swiper.params.navigation.nextEl = nextEl;\n    swiper.originalParams.navigation.nextEl = nextEl;\n    swiper.params.navigation.prevEl = prevEl;\n    swiper.originalParams.navigation.prevEl = prevEl;\n  }\n\n  if (needsPagination(swiperParams) && paginationEl) {\n    swiper.params.pagination.el = paginationEl;\n    swiper.originalParams.pagination.el = paginationEl;\n  }\n\n  if (needsScrollbar(swiperParams) && scrollbarEl) {\n    swiper.params.scrollbar.el = scrollbarEl;\n    swiper.originalParams.scrollbar.el = scrollbarEl;\n  }\n\n  swiper.init(el);\n}\n\nexport { initSwiper, mountSwiper };","import { h } from 'vue';\nimport Swiper from 'swiper';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n  let slidesPerViewParams = swiperParams.slidesPerView;\n\n  if (swiperParams.breakpoints) {\n    const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n    const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n    if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n      slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n    }\n  }\n\n  let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n  loopedSlides += swiperParams.loopAdditionalSlides;\n\n  if (loopedSlides > slides.length) {\n    loopedSlides = slides.length;\n  }\n\n  return loopedSlides;\n}\n\nfunction renderLoop(swiperRef, slides, swiperParams) {\n  const modifiedSlides = slides.map((child, index) => {\n    if (!child.props) child.props = {};\n    child.props.swiperRef = swiperRef;\n    child.props['data-swiper-slide-index'] = index;\n    return child;\n  });\n\n  function duplicateSlide(child, index, position) {\n    if (!child.props) child.props = {};\n    return h(child.type, { ...child.props,\n      key: `${child.key}-duplicate-${index}-${position}`,\n      class: `${child.props.className || ''} ${swiperParams.slideDuplicateClass} ${child.props.class || ''}`\n    }, child.children);\n  }\n\n  if (swiperParams.loopFillGroupWithBlank) {\n    const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n    if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n      for (let i = 0; i < blankSlidesNum; i += 1) {\n        const blankSlide = h('div', {\n          class: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n        });\n        modifiedSlides.push(blankSlide);\n      }\n    }\n  }\n\n  if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n    swiperParams.loopedSlides = modifiedSlides.length;\n  }\n\n  const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n  const prependSlides = [];\n  const appendSlides = [];\n  modifiedSlides.forEach((child, index) => {\n    if (index < loopedSlides) {\n      appendSlides.push(duplicateSlide(child, index, 'prepend'));\n    }\n\n    if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n      prependSlides.push(duplicateSlide(child, index, 'append'));\n    }\n  });\n\n  if (swiperRef.value) {\n    swiperRef.value.loopedSlides = loopedSlides;\n  }\n\n  return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n  const keys = [];\n  if (!oldParams) return keys;\n\n  const addKey = key => {\n    if (keys.indexOf(key) < 0) keys.push(key);\n  };\n\n  const oldChildrenKeys = oldChildren.map(child => child.props && child.props.key);\n  const childrenKeys = children.map(child => child.props && child.props.key);\n  if (oldChildrenKeys.join('') !== childrenKeys.join('')) keys.push('children');\n  if (oldChildren.length !== children.length) keys.push('children');\n  const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n  watchParams.forEach(key => {\n    if (key in swiperParams && key in oldParams) {\n      if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n        const newKeys = Object.keys(swiperParams[key]);\n        const oldKeys = Object.keys(oldParams[key]);\n\n        if (newKeys.length !== oldKeys.length) {\n          addKey(key);\n        } else {\n          newKeys.forEach(newKey => {\n            if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n              addKey(key);\n            }\n          });\n          oldKeys.forEach(oldKey => {\n            if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n          });\n        }\n      } else if (swiperParams[key] !== oldParams[key]) {\n        addKey(key);\n      }\n    }\n  });\n  return keys;\n}\n\nexport { getChangedParams };","function getChildren(originalSlots, slidesRef, oldSlidesRef) {\n  if (originalSlots === void 0) {\n    originalSlots = {};\n  }\n\n  const slides = [];\n  const slots = {\n    'container-start': [],\n    'container-end': [],\n    'wrapper-start': [],\n    'wrapper-end': []\n  };\n\n  const getSlidesFromElements = (els, slotName) => {\n    if (!Array.isArray(els)) {\n      return;\n    }\n\n    els.forEach(vnode => {\n      const isFragment = typeof vnode.type === 'symbol';\n      if (slotName === 'default') slotName = 'container-end';\n\n      if (isFragment && vnode.children) {\n        getSlidesFromElements(vnode.children, 'default');\n      } else if (vnode.type && (vnode.type.name === 'SwiperSlide' || vnode.type.name === 'AsyncComponentWrapper')) {\n        slides.push(vnode);\n      } else if (slots[slotName]) {\n        slots[slotName].push(vnode);\n      }\n    });\n  };\n\n  Object.keys(originalSlots).forEach(slotName => {\n    if (typeof originalSlots[slotName] !== 'function') return;\n    const els = originalSlots[slotName]();\n    getSlidesFromElements(els, slotName);\n  });\n  oldSlidesRef.value = slidesRef.value;\n  slidesRef.value = slides;\n  return {\n    slides,\n    slots\n  };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper(_ref) {\n  let {\n    swiper,\n    slides,\n    passedParams,\n    changedParams,\n    nextEl,\n    prevEl,\n    paginationEl,\n    scrollbarEl\n  } = _ref;\n  const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\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\n  if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n    needThumbsInit = true;\n  }\n\n  if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n    needControllerInit = true;\n  }\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\n  if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n    needScrollbarInit = true;\n  }\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\n  const destroyModule = mod => {\n    if (!swiper[mod]) return;\n    swiper[mod].destroy();\n\n    if (mod === 'navigation') {\n      currentParams[mod].prevEl = undefined;\n      currentParams[mod].nextEl = undefined;\n      swiper[mod].prevEl = undefined;\n      swiper[mod].nextEl = undefined;\n    } else {\n      currentParams[mod].el = undefined;\n      swiper[mod].el = undefined;\n    }\n  };\n\n  updateParams.forEach(key => {\n    if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n      extend(currentParams[key], passedParams[key]);\n    } else {\n      const newValue = passedParams[key];\n\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\n  if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n    virtual.slides = slides;\n    virtual.update(true);\n  } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n    swiper.lazy.load();\n  }\n\n  if (needThumbsInit) {\n    const initialized = thumbs.init();\n    if (initialized) thumbs.update(true);\n  }\n\n  if (needControllerInit) {\n    swiper.controller.control = currentParams.controller.control;\n  }\n\n  if (needPaginationInit) {\n    if (paginationEl) currentParams.pagination.el = paginationEl;\n    pagination.init();\n    pagination.render();\n    pagination.update();\n  }\n\n  if (needScrollbarInit) {\n    if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n    scrollbar.init();\n    scrollbar.updateSize();\n    scrollbar.setTranslate();\n  }\n\n  if (needNavigationInit) {\n    if (nextEl) currentParams.navigation.nextEl = nextEl;\n    if (prevEl) currentParams.navigation.prevEl = prevEl;\n    navigation.init();\n    navigation.update();\n  }\n\n  if (changedParams.includes('allowSlideNext')) {\n    swiper.allowSlideNext = passedParams.allowSlideNext;\n  }\n\n  if (changedParams.includes('allowSlidePrev')) {\n    swiper.allowSlidePrev = passedParams.allowSlidePrev;\n  }\n\n  if (changedParams.includes('direction')) {\n    swiper.changeDirection(passedParams.direction, false);\n  }\n\n  swiper.update();\n}\n\nexport { updateSwiper };","import { h } from 'vue';\n\nfunction updateOnVirtualData(swiper) {\n  if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n  swiper.updateSlides();\n  swiper.updateProgress();\n  swiper.updateSlidesClasses();\n\n  if (swiper.lazy && swiper.params.lazy.enabled) {\n    swiper.lazy.load();\n  }\n\n  if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n    swiper.parallax.setTranslate();\n  }\n}\n\nfunction renderVirtual(swiperRef, slides, virtualData) {\n  if (!virtualData) return null;\n  const style = swiperRef.value.isHorizontal() ? {\n    [swiperRef.value.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n  } : {\n    top: `${virtualData.offset}px`\n  };\n  return slides.filter((slide, index) => index >= virtualData.from && index <= virtualData.to).map(slide => {\n    if (!slide.props) slide.props = {};\n    if (!slide.props.style) slide.props.style = {};\n    slide.props.swiperRef = swiperRef;\n    slide.props.style = style;\n    return h(slide.type, { ...slide.props\n    }, slide.children);\n  });\n}\n\nexport { renderVirtual, updateOnVirtualData };","import { h, ref, onMounted, onUpdated, onBeforeUnmount, watch, nextTick, provide } from 'vue';\nimport { getParams } from './get-params.js';\nimport { initSwiper, mountSwiper } from './init-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from './get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from './update-swiper.js';\nimport { renderVirtual, updateOnVirtualData } from './virtual.js';\nconst Swiper = {\n  name: 'Swiper',\n  props: {\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    wrapperTag: {\n      type: String,\n      default: 'div'\n    },\n    modules: {\n      type: Array,\n      default: undefined\n    },\n    init: {\n      type: Boolean,\n      default: undefined\n    },\n    direction: {\n      type: String,\n      default: undefined\n    },\n    touchEventsTarget: {\n      type: String,\n      default: undefined\n    },\n    initialSlide: {\n      type: Number,\n      default: undefined\n    },\n    speed: {\n      type: Number,\n      default: undefined\n    },\n    cssMode: {\n      type: Boolean,\n      default: undefined\n    },\n    updateOnWindowResize: {\n      type: Boolean,\n      default: undefined\n    },\n    resizeObserver: {\n      type: Boolean,\n      default: undefined\n    },\n    nested: {\n      type: Boolean,\n      default: undefined\n    },\n    focusableElements: {\n      type: String,\n      default: undefined\n    },\n    width: {\n      type: Number,\n      default: undefined\n    },\n    height: {\n      type: Number,\n      default: undefined\n    },\n    preventInteractionOnTransition: {\n      type: Boolean,\n      default: undefined\n    },\n    userAgent: {\n      type: String,\n      default: undefined\n    },\n    url: {\n      type: String,\n      default: undefined\n    },\n    edgeSwipeDetection: {\n      type: [Boolean, String],\n      default: undefined\n    },\n    edgeSwipeThreshold: {\n      type: Number,\n      default: undefined\n    },\n    autoHeight: {\n      type: Boolean,\n      default: undefined\n    },\n    setWrapperSize: {\n      type: Boolean,\n      default: undefined\n    },\n    virtualTranslate: {\n      type: Boolean,\n      default: undefined\n    },\n    effect: {\n      type: String,\n      default: undefined\n    },\n    breakpoints: {\n      type: Object,\n      default: undefined\n    },\n    spaceBetween: {\n      type: Number,\n      default: undefined\n    },\n    slidesPerView: {\n      type: [Number, String],\n      default: undefined\n    },\n    maxBackfaceHiddenSlides: {\n      type: Number,\n      default: undefined\n    },\n    slidesPerGroup: {\n      type: Number,\n      default: undefined\n    },\n    slidesPerGroupSkip: {\n      type: Number,\n      default: undefined\n    },\n    slidesPerGroupAuto: {\n      type: Boolean,\n      default: undefined\n    },\n    centeredSlides: {\n      type: Boolean,\n      default: undefined\n    },\n    centeredSlidesBounds: {\n      type: Boolean,\n      default: undefined\n    },\n    slidesOffsetBefore: {\n      type: Number,\n      default: undefined\n    },\n    slidesOffsetAfter: {\n      type: Number,\n      default: undefined\n    },\n    normalizeSlideIndex: {\n      type: Boolean,\n      default: undefined\n    },\n    centerInsufficientSlides: {\n      type: Boolean,\n      default: undefined\n    },\n    watchOverflow: {\n      type: Boolean,\n      default: undefined\n    },\n    roundLengths: {\n      type: Boolean,\n      default: undefined\n    },\n    touchRatio: {\n      type: Number,\n      default: undefined\n    },\n    touchAngle: {\n      type: Number,\n      default: undefined\n    },\n    simulateTouch: {\n      type: Boolean,\n      default: undefined\n    },\n    shortSwipes: {\n      type: Boolean,\n      default: undefined\n    },\n    longSwipes: {\n      type: Boolean,\n      default: undefined\n    },\n    longSwipesRatio: {\n      type: Number,\n      default: undefined\n    },\n    longSwipesMs: {\n      type: Number,\n      default: undefined\n    },\n    followFinger: {\n      type: Boolean,\n      default: undefined\n    },\n    allowTouchMove: {\n      type: Boolean,\n      default: undefined\n    },\n    threshold: {\n      type: Number,\n      default: undefined\n    },\n    touchMoveStopPropagation: {\n      type: Boolean,\n      default: undefined\n    },\n    touchStartPreventDefault: {\n      type: Boolean,\n      default: undefined\n    },\n    touchStartForcePreventDefault: {\n      type: Boolean,\n      default: undefined\n    },\n    touchReleaseOnEdges: {\n      type: Boolean,\n      default: undefined\n    },\n    uniqueNavElements: {\n      type: Boolean,\n      default: undefined\n    },\n    resistance: {\n      type: Boolean,\n      default: undefined\n    },\n    resistanceRatio: {\n      type: Number,\n      default: undefined\n    },\n    watchSlidesProgress: {\n      type: Boolean,\n      default: undefined\n    },\n    grabCursor: {\n      type: Boolean,\n      default: undefined\n    },\n    preventClicks: {\n      type: Boolean,\n      default: undefined\n    },\n    preventClicksPropagation: {\n      type: Boolean,\n      default: undefined\n    },\n    slideToClickedSlide: {\n      type: Boolean,\n      default: undefined\n    },\n    preloadImages: {\n      type: Boolean,\n      default: undefined\n    },\n    updateOnImagesReady: {\n      type: Boolean,\n      default: undefined\n    },\n    loop: {\n      type: Boolean,\n      default: undefined\n    },\n    loopAdditionalSlides: {\n      type: Number,\n      default: undefined\n    },\n    loopedSlides: {\n      type: Number,\n      default: undefined\n    },\n    loopFillGroupWithBlank: {\n      type: Boolean,\n      default: undefined\n    },\n    loopPreventsSlide: {\n      type: Boolean,\n      default: undefined\n    },\n    rewind: {\n      type: Boolean,\n      default: undefined\n    },\n    allowSlidePrev: {\n      type: Boolean,\n      default: undefined\n    },\n    allowSlideNext: {\n      type: Boolean,\n      default: undefined\n    },\n    swipeHandler: {\n      type: Boolean,\n      default: undefined\n    },\n    noSwiping: {\n      type: Boolean,\n      default: undefined\n    },\n    noSwipingClass: {\n      type: String,\n      default: undefined\n    },\n    noSwipingSelector: {\n      type: String,\n      default: undefined\n    },\n    passiveListeners: {\n      type: Boolean,\n      default: undefined\n    },\n    containerModifierClass: {\n      type: String,\n      default: undefined\n    },\n    slideClass: {\n      type: String,\n      default: undefined\n    },\n    slideBlankClass: {\n      type: String,\n      default: undefined\n    },\n    slideActiveClass: {\n      type: String,\n      default: undefined\n    },\n    slideDuplicateActiveClass: {\n      type: String,\n      default: undefined\n    },\n    slideVisibleClass: {\n      type: String,\n      default: undefined\n    },\n    slideDuplicateClass: {\n      type: String,\n      default: undefined\n    },\n    slideNextClass: {\n      type: String,\n      default: undefined\n    },\n    slideDuplicateNextClass: {\n      type: String,\n      default: undefined\n    },\n    slidePrevClass: {\n      type: String,\n      default: undefined\n    },\n    slideDuplicatePrevClass: {\n      type: String,\n      default: undefined\n    },\n    wrapperClass: {\n      type: String,\n      default: undefined\n    },\n    runCallbacksOnInit: {\n      type: Boolean,\n      default: undefined\n    },\n    observer: {\n      type: Boolean,\n      default: undefined\n    },\n    observeParents: {\n      type: Boolean,\n      default: undefined\n    },\n    observeSlideChildren: {\n      type: Boolean,\n      default: undefined\n    },\n    a11y: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    autoplay: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    controller: {\n      type: Object,\n      default: undefined\n    },\n    coverflowEffect: {\n      type: Object,\n      default: undefined\n    },\n    cubeEffect: {\n      type: Object,\n      default: undefined\n    },\n    fadeEffect: {\n      type: Object,\n      default: undefined\n    },\n    flipEffect: {\n      type: Object,\n      default: undefined\n    },\n    creativeEffect: {\n      type: Object,\n      default: undefined\n    },\n    cardsEffect: {\n      type: Object,\n      default: undefined\n    },\n    hashNavigation: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    history: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    keyboard: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    lazy: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    mousewheel: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    navigation: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    pagination: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    parallax: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    scrollbar: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    thumbs: {\n      type: Object,\n      default: undefined\n    },\n    virtual: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    zoom: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    grid: {\n      type: [Object],\n      default: undefined\n    },\n    freeMode: {\n      type: [Boolean, Object],\n      default: undefined\n    },\n    enabled: {\n      type: Boolean,\n      default: undefined\n    }\n  },\n  emits: ['_beforeBreakpoint', '_containerClasses', '_slideClass', '_slideClasses', '_swiper', '_freeModeNoMomentumRelease', 'activeIndexChange', 'afterInit', 'autoplay', 'autoplayStart', 'autoplayStop', 'autoplayPause', 'autoplayResume', 'beforeDestroy', 'beforeInit', 'beforeLoopFix', 'beforeResize', 'beforeSlideChangeStart', 'beforeTransitionStart', 'breakpoint', 'changeDirection', 'click', 'disable', 'doubleTap', 'doubleClick', 'destroy', 'enable', 'fromEdge', 'hashChange', 'hashSet', 'imagesReady', 'init', 'keyPress', 'lazyImageLoad', 'lazyImageReady', 'lock', 'loopFix', 'momentumBounce', 'navigationHide', 'navigationShow', 'observerUpdate', 'orientationchange', 'paginationHide', 'paginationRender', 'paginationShow', 'paginationUpdate', 'progress', 'reachBeginning', 'reachEnd', 'realIndexChange', 'resize', 'scroll', 'scrollbarDragEnd', 'scrollbarDragMove', 'scrollbarDragStart', 'setTransition', 'setTranslate', 'slideChange', 'slideChangeTransitionEnd', 'slideChangeTransitionStart', 'slideNextTransitionEnd', 'slideNextTransitionStart', 'slidePrevTransitionEnd', 'slidePrevTransitionStart', 'slideResetTransitionStart', 'slideResetTransitionEnd', 'sliderMove', 'sliderFirstMove', 'slidesLengthChange', 'slidesGridLengthChange', 'snapGridLengthChange', 'snapIndexChange', 'swiper', 'tap', 'toEdge', 'touchEnd', 'touchMove', 'touchMoveOpposite', 'touchStart', 'transitionEnd', 'transitionStart', 'unlock', 'update', 'zoomChange'],\n\n  setup(props, _ref) {\n    let {\n      slots: originalSlots,\n      emit\n    } = _ref;\n    const {\n      tag: Tag,\n      wrapperTag: WrapperTag\n    } = props;\n    const containerClasses = ref('swiper');\n    const virtualData = ref(null);\n    const breakpointChanged = ref(false);\n    const initializedRef = ref(false);\n    const swiperElRef = ref(null);\n    const swiperRef = ref(null);\n    const oldPassedParamsRef = ref(null);\n    const slidesRef = {\n      value: []\n    };\n    const oldSlidesRef = {\n      value: []\n    };\n    const nextElRef = ref(null);\n    const prevElRef = ref(null);\n    const paginationElRef = ref(null);\n    const scrollbarElRef = ref(null);\n    const {\n      params: swiperParams,\n      passedParams\n    } = getParams(props);\n    getChildren(originalSlots, slidesRef, oldSlidesRef);\n    oldPassedParamsRef.value = passedParams;\n    oldSlidesRef.value = slidesRef.value;\n\n    const onBeforeBreakpoint = () => {\n      getChildren(originalSlots, slidesRef, oldSlidesRef);\n      breakpointChanged.value = true;\n    };\n\n    swiperParams.onAny = function (event) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      emit(event, ...args);\n    };\n\n    Object.assign(swiperParams.on, {\n      _beforeBreakpoint: onBeforeBreakpoint,\n\n      _containerClasses(swiper, classes) {\n        containerClasses.value = classes;\n      }\n\n    }); // init Swiper\n\n    swiperRef.value = initSwiper(swiperParams);\n\n    swiperRef.value.loopCreate = () => {};\n\n    swiperRef.value.loopDestroy = () => {};\n\n    if (swiperParams.loop) {\n      swiperRef.value.loopedSlides = calcLoopedSlides(slidesRef.value, swiperParams);\n    }\n\n    if (swiperRef.value.virtual && swiperRef.value.params.virtual.enabled) {\n      swiperRef.value.virtual.slides = slidesRef.value;\n      const extendWith = {\n        cache: false,\n        slides: slidesRef.value,\n        renderExternal: data => {\n          virtualData.value = data;\n        },\n        renderExternalUpdate: false\n      };\n      extend(swiperRef.value.params.virtual, extendWith);\n      extend(swiperRef.value.originalParams.virtual, extendWith);\n    }\n\n    onUpdated(() => {\n      // set initialized flag\n      if (!initializedRef.value && swiperRef.value) {\n        swiperRef.value.emitSlidesClasses();\n        initializedRef.value = true;\n      } // watch for params change\n\n\n      const {\n        passedParams: newPassedParams\n      } = getParams(props);\n      const changedParams = getChangedParams(newPassedParams, oldPassedParamsRef.value, slidesRef.value, oldSlidesRef.value);\n      oldPassedParamsRef.value = newPassedParams;\n\n      if ((changedParams.length || breakpointChanged.value) && swiperRef.value && !swiperRef.value.destroyed) {\n        updateSwiper({\n          swiper: swiperRef.value,\n          slides: slidesRef.value,\n          passedParams: newPassedParams,\n          changedParams,\n          nextEl: nextElRef.value,\n          prevEl: prevElRef.value,\n          scrollbarEl: scrollbarElRef.value,\n          paginationEl: paginationElRef.value\n        });\n      }\n\n      breakpointChanged.value = false;\n    });\n    provide('swiper', swiperRef); // update on virtual update\n\n    watch(virtualData, () => {\n      nextTick(() => {\n        updateOnVirtualData(swiperRef.value);\n      });\n    }); // mount swiper\n\n    onMounted(() => {\n      if (!swiperElRef.value) return;\n      mountSwiper({\n        el: swiperElRef.value,\n        nextEl: nextElRef.value,\n        prevEl: prevElRef.value,\n        paginationEl: paginationElRef.value,\n        scrollbarEl: scrollbarElRef.value,\n        swiper: swiperRef.value\n      }, swiperParams);\n      emit('swiper', swiperRef.value);\n    });\n    onBeforeUnmount(() => {\n      if (swiperRef.value && !swiperRef.value.destroyed) {\n        swiperRef.value.destroy(true, false);\n      }\n    }); // bypass swiper instance to slides\n\n    function renderSlides(slides) {\n      if (swiperParams.virtual) {\n        return renderVirtual(swiperRef, slides, virtualData.value);\n      }\n\n      if (!swiperParams.loop || swiperRef.value && swiperRef.value.destroyed) {\n        slides.forEach(slide => {\n          if (!slide.props) slide.props = {};\n          slide.props.swiperRef = swiperRef;\n        });\n        return slides;\n      }\n\n      return renderLoop(swiperRef, slides, swiperParams);\n    }\n\n    return () => {\n      const {\n        slides,\n        slots\n      } = getChildren(originalSlots, slidesRef, oldSlidesRef);\n      return h(Tag, {\n        ref: swiperElRef,\n        class: uniqueClasses(containerClasses.value)\n      }, [slots['container-start'], h(WrapperTag, {\n        class: 'swiper-wrapper'\n      }, [slots['wrapper-start'], renderSlides(slides), slots['wrapper-end']]), needsNavigation(props) && [h('div', {\n        ref: prevElRef,\n        class: 'swiper-button-prev'\n      }), h('div', {\n        ref: nextElRef,\n        class: 'swiper-button-next'\n      })], needsScrollbar(props) && h('div', {\n        ref: scrollbarElRef,\n        class: 'swiper-scrollbar'\n      }), needsPagination(props) && h('div', {\n        ref: paginationElRef,\n        class: 'swiper-pagination'\n      }), slots['container-end']]);\n    };\n  }\n\n};\nexport { Swiper };","import { h, ref, onMounted, onUpdated, onBeforeUpdate, computed, onBeforeUnmount, provide } from 'vue';\nimport { uniqueClasses } from './utils.js';\nconst SwiperSlide = {\n  name: 'SwiperSlide',\n  props: {\n    tag: {\n      type: String,\n      default: 'div'\n    },\n    swiperRef: {\n      type: Object,\n      required: false\n    },\n    zoom: {\n      type: Boolean,\n      default: undefined\n    },\n    virtualIndex: {\n      type: [String, Number],\n      default: undefined\n    }\n  },\n\n  setup(props, _ref) {\n    let {\n      slots\n    } = _ref;\n    let eventAttached = false;\n    const {\n      swiperRef\n    } = props;\n    const slideElRef = ref(null);\n    const slideClasses = ref('swiper-slide');\n\n    function updateClasses(swiper, el, classNames) {\n      if (el === slideElRef.value) {\n        slideClasses.value = classNames;\n      }\n    }\n\n    onMounted(() => {\n      if (!swiperRef.value) return;\n      swiperRef.value.on('_slideClass', updateClasses);\n      eventAttached = true;\n    });\n    onBeforeUpdate(() => {\n      if (eventAttached || !swiperRef || !swiperRef.value) return;\n      swiperRef.value.on('_slideClass', updateClasses);\n      eventAttached = true;\n    });\n    onUpdated(() => {\n      if (!slideElRef.value || !swiperRef || !swiperRef.value) return;\n\n      if (swiperRef.value.destroyed) {\n        if (slideClasses.value !== 'swiper-slide') {\n          slideClasses.value = 'swiper-slide';\n        }\n      }\n    });\n    onBeforeUnmount(() => {\n      if (!swiperRef || !swiperRef.value) return;\n      swiperRef.value.off('_slideClass', updateClasses);\n    });\n    const slideData = computed(() => ({\n      isActive: slideClasses.value.indexOf('swiper-slide-active') >= 0 || slideClasses.value.indexOf('swiper-slide-duplicate-active') >= 0,\n      isVisible: slideClasses.value.indexOf('swiper-slide-visible') >= 0,\n      isDuplicate: slideClasses.value.indexOf('swiper-slide-duplicate') >= 0,\n      isPrev: slideClasses.value.indexOf('swiper-slide-prev') >= 0 || slideClasses.value.indexOf('swiper-slide-duplicate-prev') >= 0,\n      isNext: slideClasses.value.indexOf('swiper-slide-next') >= 0 || slideClasses.value.indexOf('swiper-slide-duplicate-next') >= 0\n    }));\n    provide('swiperSlide', slideData);\n    return () => {\n      return h(props.tag, {\n        class: uniqueClasses(`${slideClasses.value}`),\n        ref: slideElRef,\n        'data-swiper-slide-index': props.virtualIndex\n      }, props.zoom ? h('div', {\n        class: 'swiper-zoom-container',\n        'data-swiper-zoom': typeof props.zoom === 'number' ? props.zoom : undefined\n      }, slots.default && slots.default(slideData.value)) : slots.default && slots.default(slideData.value));\n    };\n  }\n\n};\nexport { SwiperSlide };","import { inject } from 'vue';\nexport const useSwiperSlide = () => {\n  return inject('swiperSlide');\n};\nexport const useSwiper = () => {\n  return inject('swiper');\n};","/**\n * Swiper Vue 8.2.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2022 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: June 1, 2022\n */\n\nimport { Swiper } from './swiper.js';\nimport { SwiperSlide } from './swiper-slide.js';\nexport { useSwiperSlide, useSwiper } from './context.js';\nexport { Swiper, SwiperSlide };","<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n  name: 'TlbsSwiper',\n  \n})\n</script>\n<template>\n  <swiper\n    :class=\"['tlbs-swiper', !enablePagination ? 'tlbs-swiper-pagination-hide' : '']\"\n    v-bind=\"$attrs\"\n    :modules=\"modules\"\n    :pagination=\"{ clickable: true }\"\n    @swiper=\"initSwiper\"\n  >\n    <slot />\n  </swiper>\n</template>\n\n<script lang=\"ts\" setup name=\"TlbsSwiper\">\nimport { Swiper } from 'swiper/vue';\nimport { Pagination, Autoplay } from 'swiper';\nimport SwiperClass from 'swiper/types/swiper-class';\nimport { SwiperModule } from 'swiper/types/shared';\nimport 'swiper/css';\nimport 'swiper/css/pagination';\n// import 'swiper/css/autoplay';\n\ninterface Props {\n  enablePagination?: boolean;\n  currentIndex?: number;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n  enablePagination: true,\n  currentIndex: 0,\n});\n\nconst modules: SwiperModule[] = [Pagination, Autoplay];\n\nconst swiperComp = ref<null | SwiperClass>(null);\nconst initSwiper = (swiper: SwiperClass) => {\n  swiperComp.value = swiper;\n};\n\nwatch(() => props.currentIndex, (newVal) => {\n  swiperComp.value?.slideTo(newVal);\n});\n\nonMounted(() => {\n  typeof props.currentIndex === 'number' && swiperComp.value && swiperComp.value.slideTo(props.currentIndex);\n});\n</script>\n"],"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","makeReactive","proto","__proto__","defineProperty","get","set","value","Dom7","Array","items","arrayFlat","arr","res","el","isArray","push","arrayFilter","prototype","filter","call","arrayUnique","uniqueArray","i","indexOf","toCamelCase","string","toLowerCase","replace","match","group","toUpperCase","qsa","selector","context","a","$","html","trim","toCreate","tempParent","innerHTML","nodeType","fn","addClass","classes","classNames","map","c","split","classList","add","removeClass","remove","toggleClass","className","toggle","hasClass","contains","attr","attrs","arguments","getAttribute","undefined","attrName","removeAttr","removeAttribute","prop","props","propName","data","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","name","parseFloat","val","multiple","values","selectedOptions","j","options","selected","transform","transition","duration","transitionDuration","on","args","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","events","event","dom7Listeners","proxyListener","dom7LiveListeners","off","handlers","handler","splice","dom7proxy","once","dom","eventName","onceHandler","eventArgs","trigger","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","fireCallBack","animationEnd","width","innerWidth","css","outerWidth","includeMargins","styles","offsetWidth","height","innerHeight","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","hide","display","show","each","index","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","appendTo","parent","prepend","insertBefore","prependTo","before","parentNode","cloneNode","insertAfter","after","nextSibling","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","siblings","closest","find","foundElements","found","removeChild","detach","els","toAdd","empty","scrollTo","easing","animate","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","getTime","progress","easeProgress","cos","PI","done","initialProps","initialParams","assign","params","elements","animating","que","easingProgress","stop","frameId","element","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","animateInstance","noTrigger","shortcut","eventHandler","click","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","Methods","methodName","writable","deleteProps","object","nextTick","delay","now","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","o","slice","isNode","node","HTMLElement","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","currentPosition","overflow","support","calcSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","checkPassiveListener","supportsPassive","opts","gestures","checkGestures","getSupport","deviceCached","calcDevice","_temp","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","browser","calcBrowser","isSafari","isWebView","test","getBrowser","Resize","emit","observer","animationFrame","resizeHandler","destroyed","initialized","createObserver","ResizeObserver","entries","newWidth","newHeight","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","Observer","extendParams","observers","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","init","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","destroy","disconnect","priority","self","eventsListeners","method","__emitterProxy","_len","_key","onAny","eventsAnyListeners","offAny","_len2","_key2","eventsArray","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","size","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","gridEnabled","grid","rows","initSlides","slideSize","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","visibleSlides","ceil","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","activeSlide","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","x","y","z","previousTranslate","newProgress","translateTo","runCallbacks","translateBounds","internal","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","transitionStart","slideTo","initial","Error","indexAsNumber","isValidNumber","isFinite","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","t","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","snapTranslate","diff","slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","closestElement","base","__closestFrom","assignedSlot","getRootNode","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","isTouchEvent","type","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","composedPath","lastClickTime","currentPos","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","start","move","end","passiveListeners","passive","cancel","updateOnWindowResize","attachEvents","bind","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","points","point","minRatio","substr","sort","b","prepareClasses","prefix","resultClasses","item","addClasses","suffixes","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","onload","onerror","preloadImages","imagesToLoad","imagesLoaded","updateOnImagesReady","update","currentSrc","wasLocked","lastSlideIndex","lastSlideRightEdge","createElements","url","uniqueNavElements","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","images","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","defaults","passedParams","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","slideInView","translateValue","translated","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod","Virtual","cache","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","cssModeTimeout","from","$slideEl","force","previousFrom","previousTo","previousSlidesGrid","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","getSlides","slidesToRender","prependIndexes","appendIndexes","appendSlide","prependSlide","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","removeSlide","slidesIndexes","removeAllSlides","Keyboard","keyboard","onlyInViewport","pageUpDown","handle","kc","keyCode","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Mousewheel","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","timeout","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","raw","releaseScroll","rtlFactor","positions","sign","prevEvent","ignoreWheelEvents","position","sticky","firstEvent","snapToThreshold","autoplayDisableOnInteraction","createElementIfNotDefined","checkProps","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","$nextEl","$prevEl","getEl","toggleEl","disabled","tagName","onPrevClick","onNextClick","_s","targetEl","pagination","clickable","isHidden","classesToSelector","Pagination","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","progressbarDirection","scale","scaleX","scaleY","paginationHTML","numberOfBullets","Scrollbar","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","draggable","snapOnRelease","dragClass","scrollbarDisabledClass","dragEl","$dragEl","newSize","newPos","opacity","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","activeListener","eventMethod","enableDraggable","disableDraggable","$swiperEl","Parallax","parallax","setTransform","p","currentOpacity","currentScale","parallaxEl","$parallaxEl","parallaxDuration","_swiper","Zoom","zoom","maxRatio","containerClass","zoomedSlideClass","isScaling","gesturesEnabled","fakeGestureTouched","fakeGestureMoved","gesture","slideWidth","slideHeight","$imageEl","$imageWrapEl","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","x2","y2","distance","onGestureStart","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","onTransitionEnd","zoomIn","touchAction","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","getSlideSelector","toggleGestures","slideSelector","enableGestures","disableGestures","in","out","Lazy","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$images","background","$pictureEl","sourceEl","$source","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","Controller","controller","control","inverse","by","LinearSpline","binarySearch","guess","array","i1","i3","interpolate","getInterpolateFunction","spline","_t","controlled","controlledTranslate","setControlledTranslate","setControlledTransition","removeSpline","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","liveRegion","notify","message","notification","getRandomNumber","randomChar","round","random","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","updateNavigation","hasPagination","hasClickablePagination","updatePagination","bulletEl","initNavEl","wrapperId","handleFocus","includes","isActive","ariaLabelMessage","$containerEl","History","root","keepQuery","paths","slugify","getPathValues","urlOverride","URL","pathArray","part","setHistory","currentState","state","scrollToSlide","slideHistory","setHistoryPopState","hashNavigation","HashNavigation","watchState","onHashChange","newHash","activeSlideHash","setHash","slideHash","Autoplay","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","$activeSlideEl","autoplayResult","pause","onVisibilityChange","visibilityState","onMouseEnter","onMouseLeave","attachMouseEvents","detachMouseEvents","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","useOffset","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","lastMoveEvent","pop","velocityEvent","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","indexToRemove","Manipulation","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","overwriteParamsResult","slideShadows","requireUpdateOnVirtual","effectTarget","effectParams","transformEl","effectVirtualTransitionEnd","allSlides","eventTriggered","$transitionEndTarget","triggerEvents","EffectFade","fadeEffect","crossFade","tx","ty","slideOpacity","$transitionElements","EffectCube","cubeEffect","shadow","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","wrapperRotate","$cubeShadowEl","slideAngle","tz","shadowAngle","sin","scale1","scale2","zFactor","createShadow","shadowClass","$shadowContainer","$shadowEl","EffectFlip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","EffectCoverflow","coverflowEffect","stretch","depth","modifier","center","centerOffset","offsetMultiplier","translateZ","slideTransform","$shadowBeforeEl","$shadowAfterEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","r","custom","translateString","rotateString","scaleString","opacityString","shadowOpacity","EffectCards","cardsEffect","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY","needsNavigation","needsPagination","needsScrollbar","uniqueClasses","unique","paramsList","getParams","rest","allowedParams","plainObj","initSwiper","mountSwiper","paginationEl","scrollbarEl","calcLoopedSlides","slidesPerViewParams","renderLoop","swiperRef","modifiedSlides","duplicateSlide","h","class","blankSlide","getChangedParams","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","watchParams","newKeys","oldKeys","newKey","oldKey","getChildren","originalSlots","slidesRef","oldSlidesRef","slots","getSlidesFromElements","slotName","vnode","isFragment","updateSwiper","changedParams","updateParams","currentParams","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","destroyModule","newValue","updateOnVirtualData","renderVirtual","virtualData","_objectSpread","tag","String","default","wrapperTag","Boolean","emits","setup","Tag","WrapperTag","containerClasses","ref","breakpointChanged","initializedRef","swiperElRef","oldPassedParamsRef","nextElRef","prevElRef","paginationElRef","scrollbarElRef","onBeforeBreakpoint","_beforeBreakpoint","_containerClasses","extendWith","onUpdated","newPassedParams","provide","watch","onMounted","onBeforeUnmount","renderSlides","SwiperSlide","required","virtualIndex","eventAttached","slideElRef","slideClasses","updateClasses","onBeforeUpdate","slideData","computed","isDuplicate","isPrev","isNext","useSwiperSlide","inject","useSwiper","__default__","defineComponent","_defineComponent","enablePagination","__props","swiperComp","_ctx","$attrs","onSwiper","_withCtx","_renderSlot","$slots"],"mappings":"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"}