{"version":3,"file":"web/static/js/handle-add-to-deadline-tracker-button-with-text-and-icon.js","sources":["webpack://website/./node_modules/ssr-window/ssr-window.esm.js","webpack://website/./node_modules/swiper/esm/utils/get-support.js","webpack://website/./node_modules/swiper/esm/utils/get-device.js","webpack://website/./node_modules/swiper/esm/utils/get-browser.js","webpack://website/./node_modules/dom7/dom7.esm.js","webpack://website/./node_modules/swiper/esm/utils/dom.js","webpack://website/./node_modules/swiper/esm/utils/utils.js","webpack://website/./node_modules/swiper/esm/modules/observer/observer.js","webpack://website/./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack://website/./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack://website/./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack://website/./node_modules/swiper/esm/components/core/events/onResize.js","webpack://website/./node_modules/swiper/esm/components/core/events/onClick.js","webpack://website/./node_modules/swiper/esm/components/core/events/onScroll.js","webpack://website/./node_modules/swiper/esm/components/core/events/index.js","webpack://website/./node_modules/swiper/esm/components/core/defaults.js","webpack://website/./node_modules/swiper/esm/components/core/core-class.js","webpack://website/./node_modules/swiper/esm/components/core/modular.js","webpack://website/./node_modules/swiper/esm/components/core/events-emitter.js","webpack://website/./node_modules/swiper/esm/components/core/update/index.js","webpack://website/./node_modules/swiper/esm/components/core/update/updateSize.js","webpack://website/./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack://website/./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack://website/./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack://website/./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack://website/./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack://website/./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack://website/./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack://website/./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack://website/./node_modules/swiper/esm/components/core/translate/index.js","webpack://website/./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack://website/./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack://website/./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack://website/./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack://website/./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack://website/./node_modules/swiper/esm/components/core/transition/index.js","webpack://website/./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack://website/./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack://website/./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack://website/./node_modules/swiper/esm/components/core/slide/index.js","webpack://website/./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack://website/./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack://website/./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack://website/./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack://website/./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack://website/./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack://website/./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack://website/./node_modules/swiper/esm/components/core/loop/index.js","webpack://website/./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack://website/./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack://website/./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack://website/./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack://website/./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack://website/./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack://website/./node_modules/swiper/esm/components/core/manipulation/index.js","webpack://website/./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack://website/./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack://website/./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack://website/./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack://website/./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack://website/./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack://website/./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack://website/./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack://website/./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack://website/./node_modules/swiper/esm/components/core/classes/index.js","webpack://website/./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack://website/./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack://website/./node_modules/swiper/esm/components/core/images/index.js","webpack://website/./node_modules/swiper/esm/components/core/images/loadImage.js","webpack://website/./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack://website/./node_modules/swiper/esm/components/a11y/a11y.js","webpack://website/./node_modules/swiper/esm/modules/resize/resize.js","webpack://website/./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack://website/./node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack://website/./node_modules/swiper/esm/components/navigation/navigation.js","webpack://website/./node_modules/swiper/esm/components/pagination/pagination.js","webpack://website/./web/assets/js/shared/swiperOptions.ts","webpack://website/./web/assets/js/modules/success_stories.ts","webpack://website/./web/assets/js/shared/utilities.ts","webpack://website/./node_modules/tippy.js/dist/tippy.esm.js","webpack://website/./frontend/utils/axios.ts","webpack://website/./web/assets/js/modules/handle-add-to-deadline-tracker-button-with-text-and-icon.ts"],"sourcesContent":["/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\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    if (target === void 0) { target = {}; }\n    if (src === void 0) { src = {}; }\n    Object.keys(src).forEach(function (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\nvar ssrDocument = {\n    body: {},\n    addEventListener: function () { },\n    removeEventListener: function () { },\n    activeElement: {\n        blur: function () { },\n        nodeName: '',\n    },\n    querySelector: function () {\n        return null;\n    },\n    querySelectorAll: function () {\n        return [];\n    },\n    getElementById: function () {\n        return null;\n    },\n    createEvent: function () {\n        return {\n            initEvent: function () { },\n        };\n    },\n    createElement: function () {\n        return {\n            children: [],\n            childNodes: [],\n            style: {},\n            setAttribute: function () { },\n            getElementsByTagName: function () {\n                return [];\n            },\n        };\n    },\n    createElementNS: function () {\n        return {};\n    },\n    importNode: function () {\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    var doc = typeof document !== 'undefined' ? document : {};\n    extend(doc, ssrDocument);\n    return doc;\n}\n\nvar 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: function () { },\n        pushState: function () { },\n        go: function () { },\n        back: function () { },\n    },\n    CustomEvent: function CustomEvent() {\n        return this;\n    },\n    addEventListener: function () { },\n    removeEventListener: function () { },\n    getComputedStyle: function () {\n        return {\n            getPropertyValue: function () {\n                return '';\n            },\n        };\n    },\n    Image: function () { },\n    Date: function () { },\n    screen: {},\n    setTimeout: function () { },\n    clearTimeout: function () { },\n    matchMedia: function () {\n        return {};\n    },\n    requestAnimationFrame: function (callback) {\n        if (typeof setTimeout === 'undefined') {\n            callback();\n            return null;\n        }\n        return setTimeout(callback, 0);\n    },\n    cancelAnimationFrame: function (id) {\n        if (typeof setTimeout === 'undefined') {\n            return;\n        }\n        clearTimeout(id);\n    },\n};\nfunction getWindow() {\n    var win = typeof window !== 'undefined' ? window : {};\n    extend(win, ssrWindow);\n    return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n  var window = getWindow();\n  var document = getDocument();\n  return {\n    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n    pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n    observer: function checkObserver() {\n      return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n    }(),\n    passiveListener: function checkPassiveListener() {\n      var supportsPassive = false;\n\n      try {\n        var opts = Object.defineProperty({}, 'passive', {\n          // eslint-disable-next-line\n          get: function get() {\n            supportsPassive = true;\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';\nvar device;\n\nfunction calcDevice(_temp) {\n  var _ref = _temp === void 0 ? {} : _temp,\n      userAgent = _ref.userAgent;\n\n  var support = getSupport();\n  var window = getWindow();\n  var platform = window.navigator.platform;\n  var ua = userAgent || window.navigator.userAgent;\n  var device = {\n    ios: false,\n    android: false\n  };\n  var screenWidth = window.screen.width;\n  var screenHeight = window.screen.height;\n  var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n  var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n  var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n  var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n  var windows = platform === 'Win32';\n  var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n  var 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 (!device) {\n    device = calcDevice(overrides);\n  }\n\n  return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n  var window = getWindow();\n\n  function isSafari() {\n    var ua = window.navigator.userAgent.toLowerCase();\n    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n  }\n\n  return {\n    isEdge: !!window.navigator.userAgent.match(/Edge/g),\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 };","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n\n  try {\n    Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nfunction _construct(Parent, args, Class) {\n  if (_isNativeReflectConstruct()) {\n    _construct = Reflect.construct;\n  } else {\n    _construct = function _construct(Parent, args, Class) {\n      var a = [null];\n      a.push.apply(a, args);\n      var Constructor = Function.bind.apply(Parent, a);\n      var instance = new Constructor();\n      if (Class) _setPrototypeOf(instance, Class.prototype);\n      return instance;\n    };\n  }\n\n  return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n  return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n  var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n  _wrapNativeSuper = function _wrapNativeSuper(Class) {\n    if (Class === null || !_isNativeFunction(Class)) return Class;\n\n    if (typeof Class !== \"function\") {\n      throw new TypeError(\"Super expression must either be null or a function\");\n    }\n\n    if (typeof _cache !== \"undefined\") {\n      if (_cache.has(Class)) return _cache.get(Class);\n\n      _cache.set(Class, Wrapper);\n    }\n\n    function Wrapper() {\n      return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n    }\n\n    Wrapper.prototype = Object.create(Class.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    return _setPrototypeOf(Wrapper, Class);\n  };\n\n  return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n\n  return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n  var proto = obj.__proto__;\n  Object.defineProperty(obj, '__proto__', {\n    get: function get() {\n      return proto;\n    },\n    set: function set(value) {\n      proto.__proto__ = value;\n    }\n  });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n  _inheritsLoose(Dom7, _Array);\n\n  function Dom7(items) {\n    var _this;\n\n    _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n    makeReactive(_assertThisInitialized(_this));\n    return _this;\n  }\n\n  return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n  if (arr === void 0) {\n    arr = [];\n  }\n\n  var res = [];\n  arr.forEach(function (el) {\n    if (Array.isArray(el)) {\n      res.push.apply(res, 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  var uniqueArray = [];\n\n  for (var 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, function (match, group) {\n    return group.toUpperCase();\n  });\n}\n\nfunction qsa(selector, context) {\n  if (typeof selector !== 'string') {\n    return [selector];\n  }\n\n  var a = [];\n  var res = context.querySelectorAll(selector);\n\n  for (var i = 0; i < res.length; i += 1) {\n    a.push(res[i]);\n  }\n\n  return a;\n}\n\nfunction $(selector, context) {\n  var window = getWindow();\n  var document = getDocument();\n  var 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    var html = selector.trim();\n\n    if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n      var 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      var tempParent = document.createElement(toCreate);\n      tempParent.innerHTML = html;\n\n      for (var 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\nfunction addClass() {\n  for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {\n    classes[_key] = arguments[_key];\n  }\n\n  var classNames = arrayFlat(classes.map(function (c) {\n    return c.split(' ');\n  }));\n  this.forEach(function (el) {\n    var _el$classList;\n\n    (_el$classList = el.classList).add.apply(_el$classList, classNames);\n  });\n  return this;\n}\n\nfunction removeClass() {\n  for (var _len2 = arguments.length, classes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    classes[_key2] = arguments[_key2];\n  }\n\n  var classNames = arrayFlat(classes.map(function (c) {\n    return c.split(' ');\n  }));\n  this.forEach(function (el) {\n    var _el$classList2;\n\n    (_el$classList2 = el.classList).remove.apply(_el$classList2, classNames);\n  });\n  return this;\n}\n\nfunction toggleClass() {\n  for (var _len3 = arguments.length, classes = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n    classes[_key3] = arguments[_key3];\n  }\n\n  var classNames = arrayFlat(classes.map(function (c) {\n    return c.split(' ');\n  }));\n  this.forEach(function (el) {\n    classNames.forEach(function (className) {\n      el.classList.toggle(className);\n    });\n  });\n}\n\nfunction hasClass() {\n  for (var _len4 = arguments.length, classes = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n    classes[_key4] = arguments[_key4];\n  }\n\n  var classNames = arrayFlat(classes.map(function (c) {\n    return c.split(' ');\n  }));\n  return arrayFilter(this, function (el) {\n    return classNames.filter(function (className) {\n      return el.classList.contains(className);\n    }).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 (var 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 (var 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 (var 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 (var 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 (var 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  var 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    var dataKey = el.getAttribute(\"data-\" + key);\n\n    if (dataKey) {\n      return dataKey;\n    }\n\n    return undefined;\n  } // Set value\n\n\n  for (var 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 (var i = 0; i < this.length; i += 1) {\n    var 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  var el = this[0];\n  if (!el) return undefined;\n  var dataset = {}; // eslint-disable-line\n\n  if (el.dataset) {\n    for (var dataKey in el.dataset) {\n      dataset[dataKey] = el.dataset[dataKey];\n    }\n  } else {\n    for (var i = 0; i < el.attributes.length; i += 1) {\n      var _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 (var 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    var el = this[0];\n    if (!el) return undefined;\n\n    if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n      var values = [];\n\n      for (var 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 (var _i = 0; _i < this.length; _i += 1) {\n    var _el = this[_i];\n\n    if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n      for (var 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 (var 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 (var 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() {\n  for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n    args[_key5] = arguments[_key5];\n  }\n\n  var eventType = args[0],\n      targetSelector = args[1],\n      listener = args[2],\n      capture = args[3];\n\n  if (typeof args[1] === 'function') {\n    eventType = args[0];\n    listener = args[1];\n    capture = args[2];\n    targetSelector = undefined;\n  }\n\n  if (!capture) capture = false;\n\n  function handleLiveEvent(e) {\n    var target = e.target;\n    if (!target) return;\n    var 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      var _parents = $(target).parents(); // eslint-disable-line\n\n\n      for (var 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    var 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  var events = eventType.split(' ');\n  var j;\n\n  for (var i = 0; i < this.length; i += 1) {\n    var el = this[i];\n\n    if (!targetSelector) {\n      for (j = 0; j < events.length; j += 1) {\n        var event = events[j];\n        if (!el.dom7Listeners) el.dom7Listeners = {};\n        if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n        el.dom7Listeners[event].push({\n          listener: 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        var _event = events[j];\n        if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n        if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n        el.dom7LiveListeners[_event].push({\n          listener: listener,\n          proxyListener: handleLiveEvent\n        });\n\n        el.addEventListener(_event, handleLiveEvent, capture);\n      }\n    }\n  }\n\n  return this;\n}\n\nfunction off() {\n  for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n    args[_key6] = arguments[_key6];\n  }\n\n  var eventType = args[0],\n      targetSelector = args[1],\n      listener = args[2],\n      capture = args[3];\n\n  if (typeof args[1] === 'function') {\n    eventType = args[0];\n    listener = args[1];\n    capture = args[2];\n    targetSelector = undefined;\n  }\n\n  if (!capture) capture = false;\n  var events = eventType.split(' ');\n\n  for (var i = 0; i < events.length; i += 1) {\n    var event = events[i];\n\n    for (var j = 0; j < this.length; j += 1) {\n      var el = this[j];\n      var handlers = void 0;\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 (var k = handlers.length - 1; k >= 0; k -= 1) {\n          var 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() {\n  var dom = this;\n\n  for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n    args[_key7] = arguments[_key7];\n  }\n\n  var eventName = args[0],\n      targetSelector = args[1],\n      listener = args[2],\n      capture = args[3];\n\n  if (typeof args[1] === 'function') {\n    eventName = args[0];\n    listener = args[1];\n    capture = args[2];\n    targetSelector = undefined;\n  }\n\n  function onceHandler() {\n    for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n      eventArgs[_key8] = arguments[_key8];\n    }\n\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() {\n  var window = getWindow();\n\n  for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n    args[_key9] = arguments[_key9];\n  }\n\n  var events = args[0].split(' ');\n  var eventData = args[1];\n\n  for (var i = 0; i < events.length; i += 1) {\n    var event = events[i];\n\n    for (var j = 0; j < this.length; j += 1) {\n      var el = this[j];\n\n      if (window.CustomEvent) {\n        var evt = new window.CustomEvent(event, {\n          detail: eventData,\n          bubbles: true,\n          cancelable: true\n        });\n        el.dom7EventData = args.filter(function (data, dataIndex) {\n          return dataIndex > 0;\n        });\n        el.dispatchEvent(evt);\n        el.dom7EventData = [];\n        delete el.dom7EventData;\n      }\n    }\n  }\n\n  return this;\n}\n\nfunction transitionEnd(callback) {\n  var 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  var 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  var 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      var _styles = this.styles();\n\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  var 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      var _styles2 = this.styles();\n\n      return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.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    var window = getWindow();\n    var document = getDocument();\n    var el = this[0];\n    var box = el.getBoundingClientRect();\n    var body = document.body;\n    var clientTop = el.clientTop || body.clientTop || 0;\n    var clientLeft = el.clientLeft || body.clientLeft || 0;\n    var scrollTop = el === window ? window.scrollY : el.scrollTop;\n    var 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 (var i = 0; i < this.length; i += 1) {\n    this[i].style.display = 'none';\n  }\n\n  return this;\n}\n\nfunction show() {\n  var window = getWindow();\n\n  for (var i = 0; i < this.length; i += 1) {\n    var 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  var window = getWindow();\n  if (this[0]) return window.getComputedStyle(this[0], null);\n  return {};\n}\n\nfunction css(props, value) {\n  var window = getWindow();\n  var 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 (var _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(function (el, index) {\n    callback.apply(el, [el, index]);\n  });\n  return this;\n}\n\nfunction filter(callback) {\n  var 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 (var 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 (var i = 0; i < this.length; i += 1) {\n    this[i].textContent = text;\n  }\n\n  return this;\n}\n\nfunction is(selector) {\n  var window = getWindow();\n  var document = getDocument();\n  var el = this[0];\n  var compareWith;\n  var 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  var child = this[0];\n  var 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  var length = this.length;\n\n  if (index > length - 1) {\n    return $([]);\n  }\n\n  if (index < 0) {\n    var returnIndex = length + index;\n    if (returnIndex < 0) return $([]);\n    return $([this[returnIndex]]);\n  }\n\n  return $([this[index]]);\n}\n\nfunction append() {\n  var newChild;\n  var document = getDocument();\n\n  for (var k = 0; k < arguments.length; k += 1) {\n    newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n    for (var i = 0; i < this.length; i += 1) {\n      if (typeof newChild === 'string') {\n        var 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 (var 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  var document = getDocument();\n  var i;\n  var j;\n\n  for (i = 0; i < this.length; i += 1) {\n    if (typeof newChild === 'string') {\n      var 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  var before = $(selector);\n\n  for (var 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 (var 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  var after = $(selector);\n\n  for (var 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 (var 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  var nextEls = [];\n  var el = this[0];\n  if (!el) return $([]);\n\n  while (el.nextElementSibling) {\n    var _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    var 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  var prevEls = [];\n  var el = this[0];\n  if (!el) return $([]);\n\n  while (el.previousElementSibling) {\n    var _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  var parents = []; // eslint-disable-line\n\n  for (var 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  var parents = []; // eslint-disable-line\n\n  for (var i = 0; i < this.length; i += 1) {\n    var _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  var 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  var foundElements = [];\n\n  for (var i = 0; i < this.length; i += 1) {\n    var found = this[i].querySelectorAll(selector);\n\n    for (var j = 0; j < found.length; j += 1) {\n      foundElements.push(found[j]);\n    }\n  }\n\n  return $(foundElements);\n}\n\nfunction children(selector) {\n  var children = []; // eslint-disable-line\n\n  for (var i = 0; i < this.length; i += 1) {\n    var childNodes = this[i].children;\n\n    for (var 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 (var 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() {\n  var dom = this;\n  var i;\n  var j;\n\n  for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n    els[_key10] = arguments[_key10];\n  }\n\n  for (i = 0; i < els.length; i += 1) {\n    var 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 (var i = 0; i < this.length; i += 1) {\n    var el = this[i];\n\n    if (el.nodeType === 1) {\n      for (var 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\nfunction scrollTo() {\n  var window = getWindow();\n\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  var left = args[0],\n      top = args[1],\n      duration = args[2],\n      easing = args[3],\n      callback = args[4];\n\n  if (args.length === 4 && typeof easing === 'function') {\n    callback = easing;\n    left = args[0];\n    top = args[1];\n    duration = args[2];\n    callback = args[3];\n    easing = args[4];\n  }\n\n  if (typeof easing === 'undefined') easing = 'swing';\n  return this.each(function animate() {\n    var el = this;\n    var currentTop;\n    var currentLeft;\n    var maxTop;\n    var maxLeft;\n    var newTop;\n    var newLeft;\n    var scrollTop; // eslint-disable-line\n\n    var scrollLeft; // eslint-disable-line\n\n    var animateTop = top > 0 || top === 0;\n    var 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    var startTime = null;\n    if (animateTop && newTop === currentTop) animateTop = false;\n    if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n    function render(time) {\n      if (time === void 0) {\n        time = new Date().getTime();\n      }\n\n      if (startTime === null) {\n        startTime = time;\n      }\n\n      var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n      var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n      var 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() {\n  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    args[_key2] = arguments[_key2];\n  }\n\n  var top = args[0],\n      duration = args[1],\n      easing = args[2],\n      callback = args[3];\n\n  if (args.length === 3 && typeof easing === 'function') {\n    top = args[0];\n    duration = args[1];\n    callback = args[2];\n    easing = args[3];\n  }\n\n  var 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() {\n  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n    args[_key3] = arguments[_key3];\n  }\n\n  var left = args[0],\n      duration = args[1],\n      easing = args[2],\n      callback = args[3];\n\n  if (args.length === 3 && typeof easing === 'function') {\n    left = args[0];\n    duration = args[1];\n    callback = args[2];\n    easing = args[3];\n  }\n\n  var 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\nfunction animate(initialProps, initialParams) {\n  var window = getWindow();\n  var els = this;\n  var 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    easingProgress: function 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    stop: function stop() {\n      if (a.frameId) {\n        window.cancelAnimationFrame(a.frameId);\n      }\n\n      a.animating = false;\n      a.elements.each(function (el) {\n        var element = el;\n        delete element.dom7AnimateInstance;\n      });\n      a.que = [];\n    },\n    done: function done(complete) {\n      a.animating = false;\n      a.elements.each(function (el) {\n        var element = el;\n        delete element.dom7AnimateInstance;\n      });\n      if (complete) complete(els);\n\n      if (a.que.length > 0) {\n        var que = a.que.shift();\n        a.animate(que[0], que[1]);\n      }\n    },\n    animate: function animate(props, params) {\n      if (a.animating) {\n        a.que.push([props, params]);\n        return a;\n      }\n\n      var elements = []; // Define & Cache Initials & Units\n\n      a.elements.each(function (el, index) {\n        var initialFullValue;\n        var initialValue;\n        var unit;\n        var finalValue;\n        var finalFullValue;\n        if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n        elements[index] = {\n          container: el\n        };\n        Object.keys(props).forEach(function (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: initialFullValue,\n            initialValue: initialValue,\n            unit: unit,\n            finalValue: finalValue,\n            finalFullValue: finalFullValue,\n            currentValue: initialValue\n          };\n        });\n      });\n      var startTime = null;\n      var time;\n      var elementsDone = 0;\n      var propsDone = 0;\n      var done;\n      var began = false;\n      a.animating = true;\n\n      function render() {\n        time = new Date().getTime();\n        var progress;\n        var 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(function (element) {\n          var el = element;\n          if (done || el.done) return;\n          Object.keys(props).forEach(function (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            var _el$prop = el[prop],\n                initialValue = _el$prop.initialValue,\n                finalValue = _el$prop.finalValue,\n                unit = _el$prop.unit;\n            el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n            var 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  if (a.elements.length === 0) {\n    return els;\n  }\n\n  var animateInstance;\n\n  for (var 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  var els = this;\n\n  for (var i = 0; i < els.length; i += 1) {\n    if (els[i].dom7AnimateInstance) {\n      els[i].dom7AnimateInstance.stop();\n    }\n  }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n  function eventHandler() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    if (typeof args[0] === 'undefined') {\n      for (var 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.apply(this, [name].concat(args));\n  }\n\n  return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar 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';\nvar Methods = {\n  addClass: addClass,\n  removeClass: removeClass,\n  hasClass: hasClass,\n  toggleClass: toggleClass,\n  attr: attr,\n  removeAttr: removeAttr,\n  transform: transform,\n  transition: transition,\n  on: on,\n  off: off,\n  trigger: trigger,\n  transitionEnd: transitionEnd,\n  outerWidth: outerWidth,\n  outerHeight: outerHeight,\n  styles: styles,\n  offset: offset,\n  css: css,\n  each: each,\n  html: html,\n  text: text,\n  is: is,\n  index: index,\n  eq: eq,\n  append: append,\n  prepend: prepend,\n  next: next,\n  nextAll: nextAll,\n  prev: prev,\n  prevAll: prevAll,\n  parent: parent,\n  parents: parents,\n  closest: closest,\n  find: find,\n  children: children,\n  filter: filter,\n  remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n  Object.defineProperty($.fn, methodName, {\n    value: Methods[methodName],\n    writable: true\n  });\n});\nexport default $;","import { getDocument, getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n  var object = obj;\n  Object.keys(object).forEach(function (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  var window = getWindow();\n  var 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  var window = getWindow();\n  var matrix;\n  var curTransform;\n  var transformMatrix;\n  var 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(function (a) {\n        return a.replace(',', '.');\n      }).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  var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n  var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n  for (var i = 1; i < arguments.length; i += 1) {\n    var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n      var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n        return noExtend.indexOf(key) < 0;\n      });\n\n      for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n        var nextKey = keysArray[nextIndex];\n        var 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 bindModuleMethods(instance, obj) {\n  Object.keys(obj).forEach(function (key) {\n    if (isObject(obj[key])) {\n      Object.keys(obj[key]).forEach(function (subKey) {\n        if (typeof obj[key][subKey] === 'function') {\n          obj[key][subKey] = obj[key][subKey].bind(instance);\n        }\n      });\n    }\n\n    instance[key] = obj[key];\n  });\n}\n\nfunction 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}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n  var document = getDocument();\n\n  if (createElements) {\n    Object.keys(checkProps).forEach(function (key) {\n      if (!params[key] && params.auto === true) {\n        var element = document.createElement('div');\n        element.className = checkProps[key];\n        $container.append(element);\n        params[key] = element;\n      }\n    });\n  }\n\n  return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n  attach: function attach(target, options) {\n    if (options === void 0) {\n      options = {};\n    }\n\n    var window = getWindow();\n    var swiper = this;\n    var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n    var observer = new ObserverFunc(function (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        swiper.emit('observerUpdate', mutations[0]);\n        return;\n      }\n\n      var observerUpdate = function observerUpdate() {\n        swiper.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    swiper.observer.observers.push(observer);\n  },\n  init: function init() {\n    var swiper = this;\n    if (!swiper.support.observer || !swiper.params.observer) return;\n\n    if (swiper.params.observeParents) {\n      var containerParents = swiper.$el.parents();\n\n      for (var i = 0; i < containerParents.length; i += 1) {\n        swiper.observer.attach(containerParents[i]);\n      }\n    } // Observe container\n\n\n    swiper.observer.attach(swiper.$el[0], {\n      childList: swiper.params.observeSlideChildren\n    }); // Observe wrapper\n\n    swiper.observer.attach(swiper.$wrapperEl[0], {\n      attributes: false\n    });\n  },\n  destroy: function destroy() {\n    var swiper = this;\n    swiper.observer.observers.forEach(function (observer) {\n      observer.disconnect();\n    });\n    swiper.observer.observers = [];\n  }\n};\nexport default {\n  name: 'observer',\n  params: {\n    observer: false,\n    observeParents: false,\n    observeSlideChildren: false\n  },\n  create: function create() {\n    var swiper = this;\n    bindModuleMethods(swiper, {\n      observer: _extends({}, Observer, {\n        observers: []\n      })\n    });\n  },\n  on: {\n    init: function init(swiper) {\n      swiper.observer.init();\n    },\n    destroy: function destroy(swiper) {\n      swiper.observer.destroy();\n    }\n  }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils'; // 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    var found = el.closest(selector);\n    return found || __closestFrom(el.getRootNode().host);\n  }\n\n  return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n  var swiper = this;\n  var document = getDocument();\n  var window = getWindow();\n  var data = swiper.touchEventsData;\n  var params = swiper.params,\n      touches = swiper.touches,\n      enabled = swiper.enabled;\n  if (!enabled) return;\n\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return;\n  }\n\n  var e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  var $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  var 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  var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass;\n  var 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, e.target) : $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  var startX = touches.currentX;\n  var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n  var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n  var 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  extend(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    var preventDefault = true;\n    if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n    if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n      document.activeElement.blur();\n    }\n\n    var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n    if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n      e.preventDefault();\n    }\n  }\n\n  swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n  var document = getDocument();\n  var swiper = this;\n  var data = swiper.touchEventsData;\n  var params = swiper.params,\n      touches = swiper.touches,\n      rtl = swiper.rtlTranslate,\n      enabled = swiper.enabled;\n  if (!enabled) return;\n  var 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  var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n  var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n  var 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    // isMoved = true;\n    swiper.allowClick = false;\n\n    if (data.isTouched) {\n      extend(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  var diffX = touches.currentX - touches.startX;\n  var diffY = touches.currentY - touches.startY;\n  if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n  if (typeof data.isScrolling === 'undefined') {\n    var 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) {\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  var 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  var disableParentSwiper = true;\n  var 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 + Math.pow(-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 - Math.pow(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.watchSlidesProgress || params.watchSlidesVisibility) {\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n\n  if (params.freeMode) {\n    // Velocity\n    if (data.velocities.length === 0) {\n      data.velocities.push({\n        position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n        time: data.touchStartTime\n      });\n    }\n\n    data.velocities.push({\n      position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n      time: now()\n    });\n  } // Update progress\n\n\n  swiper.updateProgress(data.currentTranslate); // Update translate\n\n  swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n  var swiper = this;\n  var data = swiper.touchEventsData;\n  var params = swiper.params,\n      touches = swiper.touches,\n      rtl = swiper.rtlTranslate,\n      $wrapperEl = swiper.$wrapperEl,\n      slidesGrid = swiper.slidesGrid,\n      snapGrid = swiper.snapGrid,\n      enabled = swiper.enabled;\n  if (!enabled) return;\n  var 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  var touchEndTime = now();\n  var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n  if (swiper.allowClick) {\n    swiper.updateClickedSlide(e);\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(function () {\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  var 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 (params.freeMode) {\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.freeModeMomentum) {\n      if (data.velocities.length > 1) {\n        var lastMoveEvent = data.velocities.pop();\n        var velocityEvent = data.velocities.pop();\n        var distance = lastMoveEvent.position - velocityEvent.position;\n        var time = lastMoveEvent.time - velocityEvent.time;\n        swiper.velocity = distance / time;\n        swiper.velocity /= 2;\n\n        if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\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.freeModeMomentumVelocityRatio;\n      data.velocities.length = 0;\n      var momentumDuration = 1000 * params.freeModeMomentumRatio;\n      var momentumDistance = swiper.velocity * momentumDuration;\n      var newPosition = swiper.translate + momentumDistance;\n      if (rtl) newPosition = -newPosition;\n      var doBounce = false;\n      var afterBouncePosition;\n      var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n      var needsLoopFix;\n\n      if (newPosition < swiper.maxTranslate()) {\n        if (params.freeModeMomentumBounce) {\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.freeModeMomentumBounce) {\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.freeModeSticky) {\n        var nextSlide;\n\n        for (var 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        swiper.once('transitionEnd', function () {\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.freeModeSticky) {\n          // If freeModeSticky 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          var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n          var 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.freeModeSticky) {\n        swiper.slideToClosest();\n        return;\n      }\n\n      if (params.freeModeMomentumBounce && 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(function () {\n          if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n          swiper.emit('momentumBounce');\n          swiper.setTransition(params.speed);\n          setTimeout(function () {\n            swiper.setTranslate(afterBouncePosition);\n            $wrapperEl.transitionEnd(function () {\n              if (!swiper || swiper.destroyed) return;\n              swiper.transitionEnd();\n            });\n          }, 0);\n        });\n      } else if (swiper.velocity) {\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(function () {\n            if (!swiper || swiper.destroyed) return;\n            swiper.transitionEnd();\n          });\n        }\n      } else {\n        swiper.emit('_freeModeNoMomentumRelease');\n        swiper.updateProgress(newPosition);\n      }\n\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    } else if (params.freeModeSticky) {\n      swiper.slideToClosest();\n      return;\n    } else if (params.freeMode) {\n      swiper.emit('_freeModeNoMomentumRelease');\n    }\n\n    if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n      swiper.updateProgress();\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n\n    return;\n  } // Find current slide\n\n\n  var stopIndex = 0;\n  var groupSize = swiper.slidesSizesGrid[0];\n\n  for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n    var _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  } // Find current slide size\n\n\n  var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n  var 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(stopIndex + increment);else swiper.slideTo(stopIndex);\n    }\n\n    if (swiper.swipeDirection === 'prev') {\n      if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n    }\n  } else {\n    // Short swipes\n    if (!params.shortSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n\n    var 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(stopIndex + increment);\n      }\n\n      if (swiper.swipeDirection === 'prev') {\n        swiper.slideTo(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  var swiper = this;\n  var params = swiper.params,\n      el = swiper.el;\n  if (el && el.offsetWidth === 0) return; // Breakpoints\n\n  if (params.breakpoints) {\n    swiper.setBreakpoint();\n  } // Save locks\n\n\n  var allowSlideNext = swiper.allowSlideNext,\n      allowSlidePrev = swiper.allowSlidePrev,\n      snapGrid = swiper.snapGrid; // 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  var 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  var swiper = this;\n  var wrapperEl = swiper.wrapperEl,\n      rtlTranslate = swiper.rtlTranslate,\n      enabled = swiper.enabled;\n  if (!enabled) return;\n  swiper.previousTranslate = swiper.translate;\n\n  if (swiper.isHorizontal()) {\n    if (rtlTranslate) {\n      swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n    } else {\n      swiper.translate = -wrapperEl.scrollLeft;\n    }\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  var newProgress;\n  var 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';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n  var swiper = this;\n  var document = getDocument();\n  var params = swiper.params,\n      touchEvents = swiper.touchEvents,\n      el = swiper.el,\n      wrapperEl = swiper.wrapperEl,\n      device = swiper.device,\n      support = swiper.support;\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  var capture = !!params.nested; // Touch Events\n\n  if (!support.touch && support.pointerEvents) {\n    el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n    document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n    document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n  } else {\n    if (support.touch) {\n      var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n        passive: true,\n        capture: false\n      } : false;\n      el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n      el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n        passive: false,\n        capture: capture\n      } : capture);\n      el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n      if (touchEvents.cancel) {\n        el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n      }\n\n      if (!dummyEventAttached) {\n        document.addEventListener('touchstart', dummyEventListener);\n        dummyEventAttached = true;\n      }\n    }\n\n    if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n      el.addEventListener('mousedown', swiper.onTouchStart, false);\n      document.addEventListener('mousemove', swiper.onTouchMove, capture);\n      document.addEventListener('mouseup', swiper.onTouchEnd, false);\n    }\n  } // Prevent Links Clicks\n\n\n  if (params.preventClicks || params.preventClicksPropagation) {\n    el.addEventListener('click', swiper.onClick, true);\n  }\n\n  if (params.cssMode) {\n    wrapperEl.addEventListener('scroll', swiper.onScroll);\n  } // Resize handler\n\n\n  if (params.updateOnWindowResize) {\n    swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n  } else {\n    swiper.on('observerUpdate', onResize, true);\n  }\n}\n\nfunction detachEvents() {\n  var swiper = this;\n  var document = getDocument();\n  var params = swiper.params,\n      touchEvents = swiper.touchEvents,\n      el = swiper.el,\n      wrapperEl = swiper.wrapperEl,\n      device = swiper.device,\n      support = swiper.support;\n  var capture = !!params.nested; // Touch Events\n\n  if (!support.touch && support.pointerEvents) {\n    el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n    document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n    document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n  } else {\n    if (support.touch) {\n      var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n        passive: true,\n        capture: false\n      } : false;\n      el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n      el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n      el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n      if (touchEvents.cancel) {\n        el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n      }\n    }\n\n    if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n      el.removeEventListener('mousedown', swiper.onTouchStart, false);\n      document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n      document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n    }\n  } // Prevent Links Clicks\n\n\n  if (params.preventClicks || params.preventClicksPropagation) {\n    el.removeEventListener('click', swiper.onClick, true);\n  }\n\n  if (params.cssMode) {\n    wrapperEl.removeEventListener('scroll', swiper.onScroll);\n  } // Resize handler\n\n\n  swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n  attachEvents: attachEvents,\n  detachEvents: detachEvents\n};","export default {\n  init: true,\n  direction: 'horizontal',\n  touchEventsTarget: 'container',\n  initialSlide: 0,\n  speed: 300,\n  cssMode: false,\n  updateOnWindowResize: true,\n  resizeObserver: false,\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  // Free mode\n  freeMode: false,\n  freeModeMomentum: true,\n  freeModeMomentumRatio: 1,\n  freeModeMomentumBounce: true,\n  freeModeMomentumBounceRatio: 1,\n  freeModeMomentumVelocityRatio: 1,\n  freeModeSticky: false,\n  freeModeMinimumVelocity: 0.02,\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  slidesPerColumn: 1,\n  slidesPerColumnFill: 'column',\n  slidesPerGroup: 1,\n  slidesPerGroupSkip: 0,\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: false,\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  watchSlidesVisibility: 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  // 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  // NS\n  containerModifierClass: 'swiper-container-',\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};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n  modular: modular,\n  eventsEmitter: eventsEmitter,\n  update: update,\n  translate: translate,\n  transition: transition,\n  slide: slide,\n  loop: loop,\n  grabCursor: grabCursor,\n  manipulation: manipulation,\n  events: events,\n  breakpoints: breakpoints,\n  checkOverflow: checkOverflow,\n  classes: classes,\n  images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n  function Swiper() {\n    var el;\n    var 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 = args[0];\n      params = args[1];\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      var swipers = [];\n      $(params.el).each(function (containerEl) {\n        var newParams = extend({}, params, {\n          el: containerEl\n        });\n        swipers.push(new Swiper(newParams));\n      });\n      return swipers;\n    } // Swiper Instance\n\n\n    var 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\n    if (typeof swiper.modules === 'undefined') {\n      swiper.modules = {};\n    }\n\n    Object.keys(swiper.modules).forEach(function (moduleName) {\n      var module = swiper.modules[moduleName];\n\n      if (module.params) {\n        var moduleParamName = Object.keys(module.params)[0];\n        var moduleParams = module.params[moduleParamName];\n        if (typeof moduleParams !== 'object' || moduleParams === null) return;\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)) return;\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      }\n    }); // Extend defaults with modules params\n\n    var swiperParams = extend({}, defaults);\n    swiper.useParams(swiperParams); // 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(function (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    extend(swiper, {\n      enabled: swiper.params.enabled,\n      el: el,\n      // Classes\n      classNames: [],\n      // Slides\n      slides: $(),\n      slidesGrid: [],\n      snapGrid: [],\n      slidesSizesGrid: [],\n      // isDirection\n      isHorizontal: function isHorizontal() {\n        return swiper.params.direction === 'horizontal';\n      },\n      isVertical: function isVertical() {\n        return swiper.params.direction === 'vertical';\n      },\n      // Indexes\n      activeIndex: 0,\n      realIndex: 0,\n      //\n      isBeginning: true,\n      isEnd: false,\n      // Props\n      translate: 0,\n      previousTranslate: 0,\n      progress: 0,\n      velocity: 0,\n      animating: false,\n      // Locks\n      allowSlideNext: swiper.params.allowSlideNext,\n      allowSlidePrev: swiper.params.allowSlidePrev,\n      // Touch Events\n      touchEvents: function touchEvents() {\n        var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n        var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n        if (swiper.support.pointerEvents) {\n          desktop = ['pointerdown', 'pointermove', 'pointerup'];\n        }\n\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    }); // Install Modules\n\n    swiper.useModules();\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  var _proto = Swiper.prototype;\n\n  _proto.enable = function enable() {\n    var 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  _proto.disable = function disable() {\n    var 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  _proto.setProgress = function setProgress(progress, speed) {\n    var swiper = this;\n    progress = Math.min(Math.max(progress, 0), 1);\n    var min = swiper.minTranslate();\n    var max = swiper.maxTranslate();\n    var current = (max - min) * progress + min;\n    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  };\n\n  _proto.emitContainerClasses = function emitContainerClasses() {\n    var swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    var classes = swiper.el.className.split(' ').filter(function (className) {\n      return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n    });\n    swiper.emit('_containerClasses', classes.join(' '));\n  };\n\n  _proto.getSlideClasses = function getSlideClasses(slideEl) {\n    var swiper = this;\n    return slideEl.className.split(' ').filter(function (className) {\n      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n    }).join(' ');\n  };\n\n  _proto.emitSlidesClasses = function emitSlidesClasses() {\n    var swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    var updates = [];\n    swiper.slides.each(function (slideEl) {\n      var classNames = swiper.getSlideClasses(slideEl);\n      updates.push({\n        slideEl: slideEl,\n        classNames: classNames\n      });\n      swiper.emit('_slideClass', slideEl, classNames);\n    });\n    swiper.emit('_slideClasses', updates);\n  };\n\n  _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n    var swiper = this;\n    var params = swiper.params,\n        slides = swiper.slides,\n        slidesGrid = swiper.slidesGrid,\n        swiperSize = swiper.size,\n        activeIndex = swiper.activeIndex;\n    var spv = 1;\n\n    if (params.centeredSlides) {\n      var slideSize = slides[activeIndex].swiperSlideSize;\n      var breakLoop;\n\n      for (var 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 (var _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      for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n        if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n          spv += 1;\n        }\n      }\n    }\n\n    return spv;\n  };\n\n  _proto.update = function update() {\n    var swiper = this;\n    if (!swiper || swiper.destroyed) return;\n    var snapGrid = swiper.snapGrid,\n        params = swiper.params; // 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      var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n      var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n      swiper.setTranslate(newTranslate);\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n\n    var translated;\n\n    if (swiper.params.freeMode) {\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  _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n    if (needUpdate === void 0) {\n      needUpdate = true;\n    }\n\n    var swiper = this;\n    var 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(function (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  _proto.mount = function mount(el) {\n    var swiper = this;\n    if (swiper.mounted) return true; // Find el\n\n    var $el = $(el || swiper.params.el);\n    el = $el[0];\n\n    if (!el) {\n      return false;\n    }\n\n    el.swiper = swiper;\n\n    var getWrapperSelector = function getWrapperSelector() {\n      return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n    };\n\n    var getWrapper = function getWrapper() {\n      if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n        var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n        res.children = function (options) {\n          return $el.children(options);\n        };\n\n        return res;\n      }\n\n      return $el.children(getWrapperSelector());\n    }; // Find Wrapper\n\n\n    var $wrapperEl = getWrapper();\n\n    if ($wrapperEl.length === 0 && swiper.params.createElements) {\n      var document = getDocument();\n      var wrapper = document.createElement('div');\n      $wrapperEl = $(wrapper);\n      wrapper.className = swiper.params.wrapperClass;\n      $el.append(wrapper);\n      $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n        $wrapperEl.append(slideEl);\n      });\n    }\n\n    extend(swiper, {\n      $el: $el,\n      el: el,\n      $wrapperEl: $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  _proto.init = function init(el) {\n    var swiper = this;\n    if (swiper.initialized) return swiper;\n    var 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  _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n    if (deleteInstance === void 0) {\n      deleteInstance = true;\n    }\n\n    if (cleanStyles === void 0) {\n      cleanStyles = true;\n    }\n\n    var swiper = this;\n    var params = swiper.params,\n        $el = swiper.$el,\n        $wrapperEl = swiper.$wrapperEl,\n        slides = swiper.slides;\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(function (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  Swiper.extendDefaults = function extendDefaults(newDefaults) {\n    extend(extendedDefaults, newDefaults);\n  };\n\n  Swiper.installModule = function installModule(module) {\n    if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n    var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n    Swiper.prototype.modules[name] = module;\n  };\n\n  Swiper.use = function use(module) {\n    if (Array.isArray(module)) {\n      module.forEach(function (m) {\n        return Swiper.installModule(m);\n      });\n      return Swiper;\n    }\n\n    Swiper.installModule(module);\n    return Swiper;\n  };\n\n  _createClass(Swiper, null, [{\n    key: \"extendedDefaults\",\n    get: function get() {\n      return extendedDefaults;\n    }\n  }, {\n    key: \"defaults\",\n    get: function get() {\n      return defaults;\n    }\n  }]);\n\n  return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n  Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n  });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n  useParams: function useParams(instanceParams) {\n    var instance = this;\n    if (!instance.modules) return;\n    Object.keys(instance.modules).forEach(function (moduleName) {\n      var module = instance.modules[moduleName]; // Extend params\n\n      if (module.params) {\n        extend(instanceParams, module.params);\n      }\n    });\n  },\n  useModules: function useModules(modulesParams) {\n    if (modulesParams === void 0) {\n      modulesParams = {};\n    }\n\n    var instance = this;\n    if (!instance.modules) return;\n    Object.keys(instance.modules).forEach(function (moduleName) {\n      var module = instance.modules[moduleName];\n      var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n      if (module.on && instance.on) {\n        Object.keys(module.on).forEach(function (moduleEventName) {\n          instance.on(moduleEventName, module.on[moduleEventName]);\n        });\n      } // Module create callback\n\n\n      if (module.create) {\n        module.create.bind(instance)(moduleParams);\n      }\n    });\n  }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n  on: function on(events, handler, priority) {\n    var self = this;\n    if (typeof handler !== 'function') return self;\n    var method = priority ? 'unshift' : 'push';\n    events.split(' ').forEach(function (event) {\n      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n      self.eventsListeners[event][method](handler);\n    });\n    return self;\n  },\n  once: function once(events, handler, priority) {\n    var self = this;\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  onAny: function onAny(handler, priority) {\n    var self = this;\n    if (typeof handler !== 'function') return self;\n    var method = priority ? 'unshift' : 'push';\n\n    if (self.eventsAnyListeners.indexOf(handler) < 0) {\n      self.eventsAnyListeners[method](handler);\n    }\n\n    return self;\n  },\n  offAny: function offAny(handler) {\n    var self = this;\n    if (!self.eventsAnyListeners) return self;\n    var index = self.eventsAnyListeners.indexOf(handler);\n\n    if (index >= 0) {\n      self.eventsAnyListeners.splice(index, 1);\n    }\n\n    return self;\n  },\n  off: function off(events, handler) {\n    var self = this;\n    if (!self.eventsListeners) return self;\n    events.split(' ').forEach(function (event) {\n      if (typeof handler === 'undefined') {\n        self.eventsListeners[event] = [];\n      } else if (self.eventsListeners[event]) {\n        self.eventsListeners[event].forEach(function (eventHandler, index) {\n          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n            self.eventsListeners[event].splice(index, 1);\n          }\n        });\n      }\n    });\n    return self;\n  },\n  emit: function emit() {\n    var self = this;\n    if (!self.eventsListeners) return self;\n    var events;\n    var data;\n    var 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    var eventsArray = Array.isArray(events) ? events : events.split(' ');\n    eventsArray.forEach(function (event) {\n      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n        self.eventsAnyListeners.forEach(function (eventHandler) {\n          eventHandler.apply(context, [event].concat(data));\n        });\n      }\n\n      if (self.eventsListeners && self.eventsListeners[event]) {\n        self.eventsListeners[event].forEach(function (eventHandler) {\n          eventHandler.apply(context, data);\n        });\n      }\n    });\n    return self;\n  }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n  updateSize: updateSize,\n  updateSlides: updateSlides,\n  updateAutoHeight: updateAutoHeight,\n  updateSlidesOffset: updateSlidesOffset,\n  updateSlidesProgress: updateSlidesProgress,\n  updateProgress: updateProgress,\n  updateSlidesClasses: updateSlidesClasses,\n  updateActiveIndex: updateActiveIndex,\n  updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n  var swiper = this;\n  var width;\n  var height;\n  var $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  extend(swiper, {\n    width: width,\n    height: height,\n    size: swiper.isHorizontal() ? width : height\n  });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n  var 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  var params = swiper.params;\n  var $wrapperEl = swiper.$wrapperEl,\n      swiperSize = swiper.size,\n      rtl = swiper.rtlTranslate,\n      wrongRTL = swiper.wrongRTL;\n  var isVirtual = swiper.virtual && params.virtual.enabled;\n  var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n  var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n  var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n  var snapGrid = [];\n  var slidesGrid = [];\n  var slidesSizesGrid = [];\n  var offsetBefore = params.slidesOffsetBefore;\n\n  if (typeof offsetBefore === 'function') {\n    offsetBefore = params.slidesOffsetBefore.call(swiper);\n  }\n\n  var offsetAfter = params.slidesOffsetAfter;\n\n  if (typeof offsetAfter === 'function') {\n    offsetAfter = params.slidesOffsetAfter.call(swiper);\n  }\n\n  var previousSnapGridLength = swiper.snapGrid.length;\n  var previousSlidesGridLength = swiper.slidesGrid.length;\n  var spaceBetween = params.spaceBetween;\n  var slidePosition = -offsetBefore;\n  var prevSlideSize = 0;\n  var 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  });\n  var slidesNumberEvenToRows;\n\n  if (params.slidesPerColumn > 1) {\n    if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n      slidesNumberEvenToRows = slidesLength;\n    } else {\n      slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n    }\n\n    if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n      slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n    }\n  } // Calc slides\n\n\n  var slideSize;\n  var slidesPerColumn = params.slidesPerColumn;\n  var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n  var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n  for (var i = 0; i < slidesLength; i += 1) {\n    slideSize = 0;\n    var slide = slides.eq(i);\n\n    if (params.slidesPerColumn > 1) {\n      // Set slides order\n      var newSlideOrderIndex = void 0;\n      var column = void 0;\n      var row = void 0;\n\n      if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n        var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n        var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n        var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n        row = Math.floor(slideIndexInGroup / columnsInGroup);\n        column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n        newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n        slide.css({\n          '-webkit-box-ordinal-group': newSlideOrderIndex,\n          '-moz-box-ordinal-group': newSlideOrderIndex,\n          '-ms-flex-order': newSlideOrderIndex,\n          '-webkit-order': newSlideOrderIndex,\n          order: newSlideOrderIndex\n        });\n      } else if (params.slidesPerColumnFill === 'column') {\n        column = Math.floor(i / slidesPerColumn);\n        row = i - column * slidesPerColumn;\n\n        if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n          row += 1;\n\n          if (row >= slidesPerColumn) {\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 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n    }\n\n    if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n    if (params.slidesPerView === 'auto') {\n      var slideStyles = getComputedStyle(slide[0]);\n      var currentTransform = slide[0].style.transform;\n      var 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        var width = getDirectionPropertyValue(slideStyles, 'width');\n        var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n        var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n        var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n        var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n        var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n        if (boxSizing && boxSizing === 'border-box') {\n          slideSize = width + marginLeft + marginRight;\n        } else {\n          var _slide$ = slide[0],\n              clientWidth = _slide$.clientWidth,\n              offsetWidth = _slide$.offsetWidth;\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  var newSlidesGrid;\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    var _$wrapperEl$css;\n\n    $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n  }\n\n  if (params.slidesPerColumn > 1) {\n    var _$wrapperEl$css2;\n\n    swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n    swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n    $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n    if (params.centeredSlides) {\n      newSlidesGrid = [];\n\n      for (var _i = 0; _i < snapGrid.length; _i += 1) {\n        var slidesGridItem = snapGrid[_i];\n        if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n        if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n      }\n\n      snapGrid = newSlidesGrid;\n    }\n  } // Remove last grid elements depending on width\n\n\n  if (!params.centeredSlides) {\n    newSlidesGrid = [];\n\n    for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n      var _slidesGridItem = snapGrid[_i2];\n      if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n      if (snapGrid[_i2] <= 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    var _slides$filter$css;\n\n    var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n    slides.filter(function (_, slideIndex) {\n      if (!params.cssMode) return true;\n\n      if (slideIndex === slides.length - 1) {\n        return false;\n      }\n\n      return true;\n    }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n  }\n\n  if (params.centeredSlides && params.centeredSlidesBounds) {\n    var allSlidesSize = 0;\n    slidesSizesGrid.forEach(function (slideSizeValue) {\n      allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n    });\n    allSlidesSize -= params.spaceBetween;\n    var maxSnap = allSlidesSize - swiperSize;\n    snapGrid = snapGrid.map(function (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    var _allSlidesSize = 0;\n    slidesSizesGrid.forEach(function (slideSizeValue) {\n      _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n    });\n    _allSlidesSize -= params.spaceBetween;\n\n    if (_allSlidesSize < swiperSize) {\n      var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n      snapGrid.forEach(function (snap, snapIndex) {\n        snapGrid[snapIndex] = snap - allSlidesOffset;\n      });\n      slidesGrid.forEach(function (snap, snapIndex) {\n        slidesGrid[snapIndex] = snap + allSlidesOffset;\n      });\n    }\n  }\n\n  extend(swiper, {\n    slides: slides,\n    snapGrid: snapGrid,\n    slidesGrid: slidesGrid,\n    slidesSizesGrid: slidesSizesGrid\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 || params.watchSlidesVisibility) {\n    swiper.updateSlidesOffset();\n  }\n}","export default function updateAutoHeight(speed) {\n  var swiper = this;\n  var activeSlides = [];\n  var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n  var newHeight = 0;\n  var 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  var getSlideByIndex = function getSlideByIndex(index) {\n    if (isVirtual) {\n      return swiper.slides.filter(function (el) {\n        return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n      })[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(function (slide) {\n        activeSlides.push(slide);\n      });\n    } else {\n      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n        var 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      var height = activeSlides[i].offsetHeight;\n      newHeight = height > newHeight ? height : newHeight;\n    }\n  } // Update Height\n\n\n  if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n  var swiper = this;\n  var slides = swiper.slides;\n\n  for (var i = 0; i < slides.length; i += 1) {\n    slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n  }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n  if (translate === void 0) {\n    translate = this && this.translate || 0;\n  }\n\n  var swiper = this;\n  var params = swiper.params;\n  var slides = swiper.slides,\n      rtl = swiper.rtlTranslate;\n  if (slides.length === 0) return;\n  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n  var offsetCenter = -translate;\n  if (rtl) offsetCenter = translate; // Visible Slides\n\n  slides.removeClass(params.slideVisibleClass);\n  swiper.visibleSlidesIndexes = [];\n  swiper.visibleSlides = [];\n\n  for (var i = 0; i < slides.length; i += 1) {\n    var slide = slides[i];\n    var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n    if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n      var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n      var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n      var 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\n    slide.progress = rtl ? -slideProgress : slideProgress;\n  }\n\n  swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n  var swiper = this;\n\n  if (typeof translate === 'undefined') {\n    var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n  }\n\n  var params = swiper.params;\n  var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  var progress = swiper.progress,\n      isBeginning = swiper.isBeginning,\n      isEnd = swiper.isEnd;\n  var wasBeginning = isBeginning;\n  var 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  extend(swiper, {\n    progress: progress,\n    isBeginning: isBeginning,\n    isEnd: isEnd\n  });\n  if (params.watchSlidesProgress || params.watchSlidesVisibility || 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  var swiper = this;\n  var slides = swiper.slides,\n      params = swiper.params,\n      $wrapperEl = swiper.$wrapperEl,\n      activeIndex = swiper.activeIndex,\n      realIndex = swiper.realIndex;\n  var isVirtual = swiper.virtual && params.virtual.enabled;\n  slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n  var 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  var 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  var 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}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n  var swiper = this;\n  var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  var slidesGrid = swiper.slidesGrid,\n      snapGrid = swiper.snapGrid,\n      params = swiper.params,\n      previousIndex = swiper.activeIndex,\n      previousRealIndex = swiper.realIndex,\n      previousSnapIndex = swiper.snapIndex;\n  var activeIndex = newActiveIndex;\n  var snapIndex;\n\n  if (typeof activeIndex === 'undefined') {\n    for (var 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    var 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  var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n  extend(swiper, {\n    snapIndex: snapIndex,\n    realIndex: realIndex,\n    previousIndex: previousIndex,\n    activeIndex: 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 '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n  var swiper = this;\n  var params = swiper.params;\n  var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n  var slideFound = false;\n  var slideIndex;\n\n  if (slide) {\n    for (var 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 getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n  getTranslate: getTranslate,\n  setTranslate: setTranslate,\n  minTranslate: minTranslate,\n  maxTranslate: maxTranslate,\n  translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n  if (axis === void 0) {\n    axis = this.isHorizontal() ? 'x' : 'y';\n  }\n\n  var swiper = this;\n  var params = swiper.params,\n      rtl = swiper.rtlTranslate,\n      translate = swiper.translate,\n      $wrapperEl = swiper.$wrapperEl;\n\n  if (params.virtualTranslate) {\n    return rtl ? -translate : translate;\n  }\n\n  if (params.cssMode) {\n    return translate;\n  }\n\n  var currentTranslate = getTranslate($wrapperEl[0], axis);\n  if (rtl) currentTranslate = -currentTranslate;\n  return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n  var swiper = this;\n  var rtl = swiper.rtlTranslate,\n      params = swiper.params,\n      $wrapperEl = swiper.$wrapperEl,\n      wrapperEl = swiper.wrapperEl,\n      progress = swiper.progress;\n  var x = 0;\n  var y = 0;\n  var 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  var newProgress;\n  var 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}","export 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  var swiper = this;\n  var params = swiper.params,\n      wrapperEl = swiper.wrapperEl;\n\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return false;\n  }\n\n  var minTranslate = swiper.minTranslate();\n  var maxTranslate = swiper.maxTranslate();\n  var 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    var isH = swiper.isHorizontal();\n\n    if (speed === 0) {\n      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n    } else {\n      // eslint-disable-next-line\n      if (wrapperEl.scrollTo) {\n        var _wrapperEl$scrollTo;\n\n        wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n      } else {\n        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\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 setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n  setTransition: setTransition,\n  transitionStart: transitionStart,\n  transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n  var 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 transitionStart(runCallbacks, direction) {\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n\n  var swiper = this;\n  var activeIndex = swiper.activeIndex,\n      params = swiper.params,\n      previousIndex = swiper.previousIndex;\n  if (params.cssMode) return;\n\n  if (params.autoHeight) {\n    swiper.updateAutoHeight();\n  }\n\n  var 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('transitionStart');\n\n  if (runCallbacks && activeIndex !== previousIndex) {\n    if (dir === 'reset') {\n      swiper.emit('slideResetTransitionStart');\n      return;\n    }\n\n    swiper.emit('slideChangeTransitionStart');\n\n    if (dir === 'next') {\n      swiper.emit('slideNextTransitionStart');\n    } else {\n      swiper.emit('slidePrevTransitionStart');\n    }\n  }\n}","export default function transitionEnd(runCallbacks, direction) {\n  if (runCallbacks === void 0) {\n    runCallbacks = true;\n  }\n\n  var swiper = this;\n  var activeIndex = swiper.activeIndex,\n      previousIndex = swiper.previousIndex,\n      params = swiper.params;\n  swiper.animating = false;\n  if (params.cssMode) return;\n  swiper.setTransition(0);\n  var 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('transitionEnd');\n\n  if (runCallbacks && activeIndex !== previousIndex) {\n    if (dir === 'reset') {\n      swiper.emit('slideResetTransitionEnd');\n      return;\n    }\n\n    swiper.emit('slideChangeTransitionEnd');\n\n    if (dir === 'next') {\n      swiper.emit('slideNextTransitionEnd');\n    } else {\n      swiper.emit('slidePrevTransitionEnd');\n    }\n  }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n  slideTo: slideTo,\n  slideToLoop: slideToLoop,\n  slideNext: slideNext,\n  slidePrev: slidePrev,\n  slideReset: slideReset,\n  slideToClosest: slideToClosest,\n  slideToClickedSlide: slideToClickedSlide\n};","export 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    var 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    var 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  var swiper = this;\n  var slideIndex = index;\n  if (slideIndex < 0) slideIndex = 0;\n  var params = swiper.params,\n      snapGrid = swiper.snapGrid,\n      slidesGrid = swiper.slidesGrid,\n      previousIndex = swiper.previousIndex,\n      activeIndex = swiper.activeIndex,\n      rtl = swiper.rtlTranslate,\n      wrapperEl = swiper.wrapperEl,\n      enabled = swiper.enabled;\n\n  if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n    return false;\n  }\n\n  var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n  var 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  var translate = -snapGrid[snapIndex]; // Update progress\n\n  swiper.updateProgress(translate); // Normalize slideIndex\n\n  if (params.normalizeSlideIndex) {\n    for (var i = 0; i < slidesGrid.length; i += 1) {\n      var normalizedTranslate = -Math.floor(translate * 100);\n      var normalizedGird = Math.floor(slidesGrid[i] * 100);\n      var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n      if (typeof slidesGrid[i + 1] !== 'undefined') {\n        if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n          slideIndex = i;\n        } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n          slideIndex = i + 1;\n        }\n      } else if (normalizedTranslate >= normalizedGird) {\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  var 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    var isH = swiper.isHorizontal();\n    var t = -translate;\n\n    if (rtl) {\n      t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n    }\n\n    if (speed === 0) {\n      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n    } else {\n      // eslint-disable-next-line\n      if (wrapperEl.scrollTo) {\n        var _wrapperEl$scrollTo;\n\n        wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n      } else {\n        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n      }\n    }\n\n    return true;\n  }\n\n  if (speed === 0) {\n    swiper.setTransition(0);\n    swiper.setTranslate(translate);\n    swiper.updateActiveIndex(slideIndex);\n    swiper.updateSlidesClasses();\n    swiper.emit('beforeTransitionStart', speed, internal);\n    swiper.transitionStart(runCallbacks, direction);\n    swiper.transitionEnd(runCallbacks, direction);\n  } else {\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 (!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\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  var swiper = this;\n  var 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  var swiper = this;\n  var params = swiper.params,\n      animating = swiper.animating,\n      enabled = swiper.enabled;\n  if (!enabled) return swiper;\n  var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\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  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  var swiper = this;\n  var params = swiper.params,\n      animating = swiper.animating,\n      snapGrid = swiper.snapGrid,\n      slidesGrid = swiper.slidesGrid,\n      rtlTranslate = swiper.rtlTranslate,\n      enabled = swiper.enabled;\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  var 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  var normalizedTranslate = normalize(translate);\n  var normalizedSnapGrid = snapGrid.map(function (val) {\n    return normalize(val);\n  });\n  var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n  if (typeof prevSnap === 'undefined' && params.cssMode) {\n    snapGrid.forEach(function (snap) {\n      if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n    });\n  }\n\n  var prevIndex;\n\n  if (typeof prevSnap !== 'undefined') {\n    prevIndex = slidesGrid.indexOf(prevSnap);\n    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\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  var 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  var swiper = this;\n  var index = swiper.activeIndex;\n  var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n  var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n  var 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    var currentSnap = swiper.snapGrid[snapIndex];\n    var 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    var prevSnap = swiper.snapGrid[snapIndex - 1];\n    var _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 '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n  var swiper = this;\n  var params = swiper.params,\n      $wrapperEl = swiper.$wrapperEl;\n  var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n  var slideToIndex = swiper.clickedIndex;\n  var 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(function () {\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(function () {\n        swiper.slideTo(slideToIndex);\n      });\n    } else {\n      swiper.slideTo(slideToIndex);\n    }\n  } else {\n    swiper.slideTo(slideToIndex);\n  }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n  loopCreate: loopCreate,\n  loopFix: loopFix,\n  loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n  var swiper = this;\n  var document = getDocument();\n  var params = swiper.params,\n      $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n  $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n  var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n  if (params.loopFillGroupWithBlank) {\n    var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n    if (blankSlidesNum !== params.slidesPerGroup) {\n      for (var i = 0; i < blankSlidesNum; i += 1) {\n        var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n        $wrapperEl.append(blankNode);\n      }\n\n      slides = $wrapperEl.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  var prependSlides = [];\n  var appendSlides = [];\n  slides.each(function (el, index) {\n    var 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 (var _i = 0; _i < appendSlides.length; _i += 1) {\n    $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n  }\n\n  for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n    $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n  }\n}","export default function loopFix() {\n  var swiper = this;\n  swiper.emit('beforeLoopFix');\n  var activeIndex = swiper.activeIndex,\n      slides = swiper.slides,\n      loopedSlides = swiper.loopedSlides,\n      allowSlidePrev = swiper.allowSlidePrev,\n      allowSlideNext = swiper.allowSlideNext,\n      snapGrid = swiper.snapGrid,\n      rtl = swiper.rtlTranslate;\n  var newIndex;\n  swiper.allowSlidePrev = true;\n  swiper.allowSlideNext = true;\n  var snapTranslate = -snapGrid[activeIndex];\n  var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n  if (activeIndex < loopedSlides) {\n    newIndex = slides.length - loopedSlides * 3 + activeIndex;\n    newIndex += loopedSlides;\n    var 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\n    var _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  var swiper = this;\n  var $wrapperEl = swiper.$wrapperEl,\n      params = swiper.params,\n      slides = swiper.slides;\n  $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n  slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n  setGrabCursor: setGrabCursor,\n  unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n  var swiper = this;\n  if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n  var el = swiper.el;\n  el.style.cursor = 'move';\n  el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n  el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n  el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n  var swiper = this;\n\n  if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n    return;\n  }\n\n  swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n  appendSlide: appendSlide,\n  prependSlide: prependSlide,\n  addSlide: addSlide,\n  removeSlide: removeSlide,\n  removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n  var swiper = this;\n  var $wrapperEl = swiper.$wrapperEl,\n      params = swiper.params;\n\n  if (params.loop) {\n    swiper.loopDestroy();\n  }\n\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (var 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 && swiper.support.observer)) {\n    swiper.update();\n  }\n}","export default function prependSlide(slides) {\n  var swiper = this;\n  var params = swiper.params,\n      $wrapperEl = swiper.$wrapperEl,\n      activeIndex = swiper.activeIndex;\n\n  if (params.loop) {\n    swiper.loopDestroy();\n  }\n\n  var newActiveIndex = activeIndex + 1;\n\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (var 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 && swiper.support.observer)) {\n    swiper.update();\n  }\n\n  swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n  var swiper = this;\n  var $wrapperEl = swiper.$wrapperEl,\n      params = swiper.params,\n      activeIndex = swiper.activeIndex;\n  var activeIndexBuffer = activeIndex;\n\n  if (params.loop) {\n    activeIndexBuffer -= swiper.loopedSlides;\n    swiper.loopDestroy();\n    swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n  }\n\n  var 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  var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n  var slidesBuffer = [];\n\n  for (var i = baseLength - 1; i >= index; i -= 1) {\n    var currentSlide = swiper.slides.eq(i);\n    currentSlide.remove();\n    slidesBuffer.unshift(currentSlide);\n  }\n\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (var _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 (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n    $wrapperEl.append(slidesBuffer[_i2]);\n  }\n\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n\n  if (!(params.observer && swiper.support.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  var swiper = this;\n  var params = swiper.params,\n      $wrapperEl = swiper.$wrapperEl,\n      activeIndex = swiper.activeIndex;\n  var activeIndexBuffer = activeIndex;\n\n  if (params.loop) {\n    activeIndexBuffer -= swiper.loopedSlides;\n    swiper.loopDestroy();\n    swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n  }\n\n  var newActiveIndex = activeIndexBuffer;\n  var indexToRemove;\n\n  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n    for (var 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 && swiper.support.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  var swiper = this;\n  var slidesIndexes = [];\n\n  for (var i = 0; i < swiper.slides.length; i += 1) {\n    slidesIndexes.push(i);\n  }\n\n  swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n  setBreakpoint: setBreakpoint,\n  getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n  var swiper = this;\n  var activeIndex = swiper.activeIndex,\n      initialized = swiper.initialized,\n      _swiper$loopedSlides = swiper.loopedSlides,\n      loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n      params = swiper.params,\n      $el = swiper.$el;\n  var breakpoints = params.breakpoints;\n  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n  var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n  var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n  if (breakpointOnlyParams) {\n    ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n      var paramValue = breakpointOnlyParams[param];\n      if (typeof paramValue === 'undefined') return;\n\n      if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n        breakpointOnlyParams[param] = 'auto';\n      } else if (param === 'slidesPerView') {\n        breakpointOnlyParams[param] = parseFloat(paramValue);\n      } else {\n        breakpointOnlyParams[param] = parseInt(paramValue, 10);\n      }\n    });\n  }\n\n  var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n  var wasMultiRow = params.slidesPerColumn > 1;\n  var isMultiRow = breakpointParams.slidesPerColumn > 1;\n  var wasEnabled = params.enabled;\n\n  if (wasMultiRow && !isMultiRow) {\n    $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n    swiper.emitContainerClasses();\n  } else if (!wasMultiRow && isMultiRow) {\n    $el.addClass(params.containerModifierClass + \"multirow\");\n\n    if (breakpointParams.slidesPerColumnFill && breakpointParams.slidesPerColumnFill === 'column' || !breakpointParams.slidesPerColumnFill && params.slidesPerColumnFill === 'column') {\n      $el.addClass(params.containerModifierClass + \"multirow-column\");\n    }\n\n    swiper.emitContainerClasses();\n  }\n\n  var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n  var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n  if (directionChanged && initialized) {\n    swiper.changeDirection();\n  }\n\n  extend(swiper.params, breakpointParams);\n  var isEnabled = swiper.params.enabled;\n  extend(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  var breakpoint = false;\n  var window = getWindow();\n  var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n  var points = Object.keys(breakpoints).map(function (point) {\n    if (typeof point === 'string' && point.indexOf('@') === 0) {\n      var minRatio = parseFloat(point.substr(1));\n      var value = currentHeight * minRatio;\n      return {\n        value: value,\n        point: point\n      };\n    }\n\n    return {\n      value: point,\n      point: point\n    };\n  });\n  points.sort(function (a, b) {\n    return parseInt(a.value, 10) - parseInt(b.value, 10);\n  });\n\n  for (var i = 0; i < points.length; i += 1) {\n    var _points$i = points[i],\n        point = _points$i.point,\n        value = _points$i.value;\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}","function checkOverflow() {\n  var swiper = this;\n  var params = swiper.params;\n  var wasLocked = swiper.isLocked;\n  var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n  if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n    swiper.isLocked = lastSlidePosition <= swiper.size;\n  } else {\n    swiper.isLocked = swiper.snapGrid.length === 1;\n  }\n\n  swiper.allowSlideNext = !swiper.isLocked;\n  swiper.allowSlidePrev = !swiper.isLocked; // events\n\n  if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n  if (wasLocked && wasLocked !== swiper.isLocked) {\n    swiper.isEnd = false;\n    if (swiper.navigation) swiper.navigation.update();\n  }\n}\n\nexport default {\n  checkOverflow: checkOverflow\n};","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n  addClasses: addClasses,\n  removeClasses: removeClasses\n};","function prepareClasses(entries, prefix) {\n  var resultClasses = [];\n  entries.forEach(function (item) {\n    if (typeof item === 'object') {\n      Object.keys(item).forEach(function (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  var swiper = this;\n  var classNames = swiper.classNames,\n      params = swiper.params,\n      rtl = swiper.rtl,\n      $el = swiper.$el,\n      device = swiper.device,\n      support = swiper.support; // prettier-ignore\n\n  var suffixes = prepareClasses(['initialized', params.direction, {\n    'pointer-events': support.pointerEvents && !support.touch\n  }, {\n    'free-mode': params.freeMode\n  }, {\n    'autoheight': params.autoHeight\n  }, {\n    'rtl': rtl\n  }, {\n    'multirow': params.slidesPerColumn > 1\n  }, {\n    'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n  }, {\n    'android': device.android\n  }, {\n    'ios': device.ios\n  }, {\n    'css-mode': params.cssMode\n  }], params.containerModifierClass);\n  classNames.push.apply(classNames, suffixes);\n  $el.addClass([].concat(classNames).join(' '));\n  swiper.emitContainerClasses();\n}","export default function removeClasses() {\n  var swiper = this;\n  var $el = swiper.$el,\n      classNames = swiper.classNames;\n  $el.removeClass(classNames.join(' '));\n  swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n  loadImage: loadImage,\n  preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n  var window = getWindow();\n  var image;\n\n  function onReady() {\n    if (callback) callback();\n  }\n\n  var 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  var 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 (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n    var 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}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, classesToSelector } from '../../utils/utils';\nvar A11y = {\n  getRandomNumber: function getRandomNumber(size) {\n    if (size === void 0) {\n      size = 16;\n    }\n\n    var randomChar = function randomChar() {\n      return Math.round(16 * Math.random()).toString(16);\n    };\n\n    return 'x'.repeat(size).replace(/x/g, randomChar);\n  },\n  makeElFocusable: function makeElFocusable($el) {\n    $el.attr('tabIndex', '0');\n    return $el;\n  },\n  makeElNotFocusable: function makeElNotFocusable($el) {\n    $el.attr('tabIndex', '-1');\n    return $el;\n  },\n  addElRole: function addElRole($el, role) {\n    $el.attr('role', role);\n    return $el;\n  },\n  addElRoleDescription: function addElRoleDescription($el, description) {\n    $el.attr('aria-roledescription', description);\n    return $el;\n  },\n  addElControls: function addElControls($el, controls) {\n    $el.attr('aria-controls', controls);\n    return $el;\n  },\n  addElLabel: function addElLabel($el, label) {\n    $el.attr('aria-label', label);\n    return $el;\n  },\n  addElId: function addElId($el, id) {\n    $el.attr('id', id);\n    return $el;\n  },\n  addElLive: function addElLive($el, live) {\n    $el.attr('aria-live', live);\n    return $el;\n  },\n  disableEl: function disableEl($el) {\n    $el.attr('aria-disabled', true);\n    return $el;\n  },\n  enableEl: function enableEl($el) {\n    $el.attr('aria-disabled', false);\n    return $el;\n  },\n  onEnterOrSpaceKey: function onEnterOrSpaceKey(e) {\n    if (e.keyCode !== 13 && e.keyCode !== 32) return;\n    var swiper = this;\n    var params = swiper.params.a11y;\n    var $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        swiper.a11y.notify(params.lastSlideMessage);\n      } else {\n        swiper.a11y.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        swiper.a11y.notify(params.firstSlideMessage);\n      } else {\n        swiper.a11y.notify(params.prevSlideMessage);\n      }\n    }\n\n    if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n      $targetEl[0].click();\n    }\n  },\n  notify: function notify(message) {\n    var swiper = this;\n    var notification = swiper.a11y.liveRegion;\n    if (notification.length === 0) return;\n    notification.html('');\n    notification.html(message);\n  },\n  updateNavigation: function updateNavigation() {\n    var swiper = this;\n    if (swiper.params.loop || !swiper.navigation) return;\n    var _swiper$navigation = swiper.navigation,\n        $nextEl = _swiper$navigation.$nextEl,\n        $prevEl = _swiper$navigation.$prevEl;\n\n    if ($prevEl && $prevEl.length > 0) {\n      if (swiper.isBeginning) {\n        swiper.a11y.disableEl($prevEl);\n        swiper.a11y.makeElNotFocusable($prevEl);\n      } else {\n        swiper.a11y.enableEl($prevEl);\n        swiper.a11y.makeElFocusable($prevEl);\n      }\n    }\n\n    if ($nextEl && $nextEl.length > 0) {\n      if (swiper.isEnd) {\n        swiper.a11y.disableEl($nextEl);\n        swiper.a11y.makeElNotFocusable($nextEl);\n      } else {\n        swiper.a11y.enableEl($nextEl);\n        swiper.a11y.makeElFocusable($nextEl);\n      }\n    }\n  },\n  updatePagination: function updatePagination() {\n    var swiper = this;\n    var params = swiper.params.a11y;\n\n    if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n      swiper.pagination.bullets.each(function (bulletEl) {\n        var $bulletEl = $(bulletEl);\n        swiper.a11y.makeElFocusable($bulletEl);\n\n        if (!swiper.params.pagination.renderBullet) {\n          swiper.a11y.addElRole($bulletEl, 'button');\n          swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n        }\n      });\n    }\n  },\n  init: function init() {\n    var swiper = this;\n    var params = swiper.params.a11y;\n    swiper.$el.append(swiper.a11y.liveRegion); // Container\n\n    var $containerEl = swiper.$el;\n\n    if (params.containerRoleDescriptionMessage) {\n      swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n    }\n\n    if (params.containerMessage) {\n      swiper.a11y.addElLabel($containerEl, params.containerMessage);\n    } // Wrapper\n\n\n    var $wrapperEl = swiper.$wrapperEl;\n    var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\n    var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n    swiper.a11y.addElId($wrapperEl, wrapperId);\n    swiper.a11y.addElLive($wrapperEl, live); // Slide\n\n    if (params.itemRoleDescriptionMessage) {\n      swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n    }\n\n    swiper.a11y.addElRole($(swiper.slides), params.slideRole);\n    var slidesLength = swiper.params.loop ? swiper.slides.filter(function (el) {\n      return !el.classList.contains(swiper.params.slideDuplicateClass);\n    }).length : swiper.slides.length;\n    swiper.slides.each(function (slideEl, index) {\n      var $slideEl = $(slideEl);\n      var slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n      var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n      swiper.a11y.addElLabel($slideEl, ariaLabelMessage);\n    }); // Navigation\n\n    var $nextEl;\n    var $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      swiper.a11y.makeElFocusable($nextEl);\n\n      if ($nextEl[0].tagName !== 'BUTTON') {\n        swiper.a11y.addElRole($nextEl, 'button');\n        $nextEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n      }\n\n      swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n      swiper.a11y.addElControls($nextEl, wrapperId);\n    }\n\n    if ($prevEl && $prevEl.length) {\n      swiper.a11y.makeElFocusable($prevEl);\n\n      if ($prevEl[0].tagName !== 'BUTTON') {\n        swiper.a11y.addElRole($prevEl, 'button');\n        $prevEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n      }\n\n      swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n      swiper.a11y.addElControls($prevEl, wrapperId);\n    } // Pagination\n\n\n    if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n      swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n    }\n  },\n  destroy: function destroy() {\n    var swiper = this;\n    if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n    var $nextEl;\n    var $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', swiper.a11y.onEnterOrSpaceKey);\n    }\n\n    if ($prevEl) {\n      $prevEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n    } // Pagination\n\n\n    if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n      swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n    }\n  }\n};\nexport default {\n  name: 'a11y',\n  params: {\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    }\n  },\n  create: function create() {\n    var swiper = this;\n    bindModuleMethods(swiper, {\n      a11y: _extends({}, A11y, {\n        liveRegion: $(\"<span class=\\\"\" + swiper.params.a11y.notificationClass + \"\\\" aria-live=\\\"assertive\\\" aria-atomic=\\\"true\\\"></span>\")\n      })\n    });\n  },\n  on: {\n    afterInit: function afterInit(swiper) {\n      if (!swiper.params.a11y.enabled) return;\n      swiper.a11y.init();\n      swiper.a11y.updateNavigation();\n    },\n    toEdge: function toEdge(swiper) {\n      if (!swiper.params.a11y.enabled) return;\n      swiper.a11y.updateNavigation();\n    },\n    fromEdge: function fromEdge(swiper) {\n      if (!swiper.params.a11y.enabled) return;\n      swiper.a11y.updateNavigation();\n    },\n    paginationUpdate: function paginationUpdate(swiper) {\n      if (!swiper.params.a11y.enabled) return;\n      swiper.a11y.updatePagination();\n    },\n    destroy: function destroy(swiper) {\n      if (!swiper.params.a11y.enabled) return;\n      swiper.a11y.destroy();\n    }\n  }\n};","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n  var window = getWindow();\n  return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n  name: 'resize',\n  create: function create() {\n    var swiper = this;\n    extend(swiper, {\n      resize: {\n        observer: null,\n        createObserver: function createObserver() {\n          if (!swiper || swiper.destroyed || !swiper.initialized) return;\n          swiper.resize.observer = new ResizeObserver(function (entries) {\n            var width = swiper.width,\n                height = swiper.height;\n            var newWidth = width;\n            var newHeight = height;\n            entries.forEach(function (_ref) {\n              var contentBoxSize = _ref.contentBoxSize,\n                  contentRect = _ref.contentRect,\n                  target = _ref.target;\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              swiper.resize.resizeHandler();\n            }\n          });\n          swiper.resize.observer.observe(swiper.el);\n        },\n        removeObserver: function removeObserver() {\n          if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n            swiper.resize.observer.unobserve(swiper.el);\n            swiper.resize.observer = null;\n          }\n        },\n        resizeHandler: function resizeHandler() {\n          if (!swiper || swiper.destroyed || !swiper.initialized) return;\n          swiper.emit('beforeResize');\n          swiper.emit('resize');\n        },\n        orientationChangeHandler: function orientationChangeHandler() {\n          if (!swiper || swiper.destroyed || !swiper.initialized) return;\n          swiper.emit('orientationchange');\n        }\n      }\n    });\n  },\n  on: {\n    init: function init(swiper) {\n      var window = getWindow();\n\n      if (swiper.params.resizeObserver && supportsResizeObserver()) {\n        swiper.resize.createObserver();\n        return;\n      } // Emit resize\n\n\n      window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n      window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n    },\n    destroy: function destroy(swiper) {\n      var window = getWindow();\n      swiper.resize.removeObserver();\n      window.removeEventListener('resize', swiper.resize.resizeHandler);\n      window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n    }\n  }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n  run: function run() {\n    var swiper = this;\n    var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n    var 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(swiper.autoplay.timeout);\n    swiper.autoplay.timeout = nextTick(function () {\n      var 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          swiper.emit('autoplay');\n        } else if (!swiper.isBeginning) {\n          autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n          swiper.emit('autoplay');\n        } else if (!swiper.params.autoplay.stopOnLastSlide) {\n          autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n          swiper.emit('autoplay');\n        } else {\n          swiper.autoplay.stop();\n        }\n      } else if (swiper.params.loop) {\n        swiper.loopFix();\n        autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n        swiper.emit('autoplay');\n      } else if (!swiper.isEnd) {\n        autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n        swiper.emit('autoplay');\n      } else if (!swiper.params.autoplay.stopOnLastSlide) {\n        autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n        swiper.emit('autoplay');\n      } else {\n        swiper.autoplay.stop();\n      }\n\n      if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n        swiper.autoplay.run();\n      }\n    }, delay);\n  },\n  start: function start() {\n    var swiper = this;\n    if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n    if (swiper.autoplay.running) return false;\n    swiper.autoplay.running = true;\n    swiper.emit('autoplayStart');\n    swiper.autoplay.run();\n    return true;\n  },\n  stop: function stop() {\n    var swiper = this;\n    if (!swiper.autoplay.running) return false;\n    if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n    if (swiper.autoplay.timeout) {\n      clearTimeout(swiper.autoplay.timeout);\n      swiper.autoplay.timeout = undefined;\n    }\n\n    swiper.autoplay.running = false;\n    swiper.emit('autoplayStop');\n    return true;\n  },\n  pause: function pause(speed) {\n    var swiper = this;\n    if (!swiper.autoplay.running) return;\n    if (swiper.autoplay.paused) return;\n    if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n    swiper.autoplay.paused = true;\n\n    if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n      swiper.autoplay.paused = false;\n      swiper.autoplay.run();\n    } else {\n      ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n        swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n      });\n    }\n  },\n  onVisibilityChange: function onVisibilityChange() {\n    var swiper = this;\n    var document = getDocument();\n\n    if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n      swiper.autoplay.pause();\n    }\n\n    if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n      swiper.autoplay.run();\n      swiper.autoplay.paused = false;\n    }\n  },\n  onTransitionEnd: function onTransitionEnd(e) {\n    var swiper = this;\n    if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n    if (e.target !== swiper.$wrapperEl[0]) return;\n    ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n      swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n    });\n    swiper.autoplay.paused = false;\n\n    if (!swiper.autoplay.running) {\n      swiper.autoplay.stop();\n    } else {\n      swiper.autoplay.run();\n    }\n  },\n  onMouseEnter: function onMouseEnter() {\n    var swiper = this;\n\n    if (swiper.params.autoplay.disableOnInteraction) {\n      swiper.autoplay.stop();\n    } else {\n      swiper.autoplay.pause();\n    }\n\n    ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n      swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n    });\n  },\n  onMouseLeave: function onMouseLeave() {\n    var swiper = this;\n\n    if (swiper.params.autoplay.disableOnInteraction) {\n      return;\n    }\n\n    swiper.autoplay.paused = false;\n    swiper.autoplay.run();\n  },\n  attachMouseEvents: function attachMouseEvents() {\n    var swiper = this;\n\n    if (swiper.params.autoplay.pauseOnMouseEnter) {\n      swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n      swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n    }\n  },\n  detachMouseEvents: function detachMouseEvents() {\n    var swiper = this;\n    swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n    swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n  }\n};\nexport default {\n  name: 'autoplay',\n  params: {\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  create: function create() {\n    var swiper = this;\n    bindModuleMethods(swiper, {\n      autoplay: _extends({}, Autoplay, {\n        running: false,\n        paused: false\n      })\n    });\n  },\n  on: {\n    init: function init(swiper) {\n      if (swiper.params.autoplay.enabled) {\n        swiper.autoplay.start();\n        var document = getDocument();\n        document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n        swiper.autoplay.attachMouseEvents();\n      }\n    },\n    beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n      if (swiper.autoplay.running) {\n        if (internal || !swiper.params.autoplay.disableOnInteraction) {\n          swiper.autoplay.pause(speed);\n        } else {\n          swiper.autoplay.stop();\n        }\n      }\n    },\n    sliderFirstMove: function sliderFirstMove(swiper) {\n      if (swiper.autoplay.running) {\n        if (swiper.params.autoplay.disableOnInteraction) {\n          swiper.autoplay.stop();\n        } else {\n          swiper.autoplay.pause();\n        }\n      }\n    },\n    touchEnd: function touchEnd(swiper) {\n      if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n        swiper.autoplay.run();\n      }\n    },\n    destroy: function destroy(swiper) {\n      swiper.autoplay.detachMouseEvents();\n\n      if (swiper.autoplay.running) {\n        swiper.autoplay.stop();\n      }\n\n      var document = getDocument();\n      document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n    }\n  }\n};","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n  var document = getDocument();\n  var eventName = 'onwheel';\n  var isSupported = (eventName in document);\n\n  if (!isSupported) {\n    var element = document.createElement('div');\n    element.setAttribute(eventName, 'return;');\n    isSupported = typeof element[eventName] === 'function';\n  }\n\n  if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n  // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n  document.implementation.hasFeature('', '') !== true) {\n    // This is the only way to test support for the `wheel` event in IE9+.\n    isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n  }\n\n  return isSupported;\n}\n\nvar Mousewheel = {\n  lastScrollTime: now(),\n  lastEventBeforeSnap: undefined,\n  recentWheelEvents: [],\n  event: function event() {\n    var window = getWindow();\n    if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n    return isEventSupported() ? 'wheel' : 'mousewheel';\n  },\n  normalize: function normalize(e) {\n    // Reasonable defaults\n    var PIXEL_STEP = 10;\n    var LINE_HEIGHT = 40;\n    var PAGE_HEIGHT = 800;\n    var sX = 0;\n    var sY = 0; // spinX, spinY\n\n    var pX = 0;\n    var 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  handleMouseEnter: function handleMouseEnter() {\n    var swiper = this;\n    if (!swiper.enabled) return;\n    swiper.mouseEntered = true;\n  },\n  handleMouseLeave: function handleMouseLeave() {\n    var swiper = this;\n    if (!swiper.enabled) return;\n    swiper.mouseEntered = false;\n  },\n  handle: function handle(event) {\n    var e = event;\n    var disableParentSwiper = true;\n    var swiper = this;\n    if (!swiper.enabled) return;\n    var params = swiper.params.mousewheel;\n\n    if (swiper.params.cssMode) {\n      e.preventDefault();\n    }\n\n    var 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    var delta = 0;\n    var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n    var data = Mousewheel.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    var 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) {\n      // Register the new event in a variable which stores the relevant data\n      var 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      var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n      if (recentWheelEvents.length >= 2) {\n        recentWheelEvents.shift(); // only store the last N events\n      }\n\n      var 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          swiper.mousewheel.animateSlider(newEvent);\n        }\n      } else {\n        swiper.mousewheel.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 (swiper.mousewheel.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      var _newEvent = {\n        time: now(),\n        delta: Math.abs(delta),\n        direction: Math.sign(delta)\n      };\n      var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n      var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n      if (!ignoreWheelEvents) {\n        swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n        if (swiper.params.loop) {\n          swiper.loopFix();\n        }\n\n        var position = swiper.getTranslate() + delta * params.sensitivity;\n        var wasBeginning = swiper.isBeginning;\n        var 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.freeModeSticky) {\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(swiper.mousewheel.timeout);\n          swiper.mousewheel.timeout = undefined;\n          var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n          if (_recentWheelEvents.length >= 15) {\n            _recentWheelEvents.shift(); // only store the last N events\n\n          }\n\n          var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n\n          var firstEvent = _recentWheelEvents[0];\n\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            var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n            swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n            _recentWheelEvents.splice(0);\n\n            swiper.mousewheel.timeout = nextTick(function () {\n              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n            }, 0); // no delay; move on next tick\n          }\n\n          if (!swiper.mousewheel.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            swiper.mousewheel.timeout = nextTick(function () {\n              var snapToThreshold = 0.5;\n              swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n              _recentWheelEvents.splice(0);\n\n              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n            }, 500);\n          }\n        } // Emit event\n\n\n        if (!ignoreWheelEvents) swiper.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  animateSlider: function animateSlider(newEvent) {\n    var swiper = this;\n    var window = getWindow();\n\n    if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n      // Prevent if delta of wheel scroll delta is below configured threshold\n      return false;\n    }\n\n    if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.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() - swiper.mousewheel.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        swiper.emit('scroll', newEvent.raw);\n      }\n    } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n      swiper.slidePrev();\n      swiper.emit('scroll', newEvent.raw);\n    } // If you got here is because an animation has been triggered so store the current time\n\n\n    swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n    return false;\n  },\n  releaseScroll: function releaseScroll(newEvent) {\n    var swiper = this;\n    var 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  enable: function enable() {\n    var swiper = this;\n    var event = Mousewheel.event();\n\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n      return true;\n    }\n\n    if (!event) return false;\n    if (swiper.mousewheel.enabled) return false;\n    var target = swiper.$el;\n\n    if (swiper.params.mousewheel.eventsTarget !== 'container') {\n      target = $(swiper.params.mousewheel.eventsTarget);\n    }\n\n    target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n    target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n    target.on(event, swiper.mousewheel.handle);\n    swiper.mousewheel.enabled = true;\n    return true;\n  },\n  disable: function disable() {\n    var swiper = this;\n    var event = Mousewheel.event();\n\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n      return true;\n    }\n\n    if (!event) return false;\n    if (!swiper.mousewheel.enabled) return false;\n    var target = swiper.$el;\n\n    if (swiper.params.mousewheel.eventsTarget !== 'container') {\n      target = $(swiper.params.mousewheel.eventsTarget);\n    }\n\n    target.off(event, swiper.mousewheel.handle);\n    swiper.mousewheel.enabled = false;\n    return true;\n  }\n};\nexport default {\n  name: 'mousewheel',\n  params: {\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  create: function create() {\n    var swiper = this;\n    bindModuleMethods(swiper, {\n      mousewheel: {\n        enabled: false,\n        lastScrollTime: now(),\n        lastEventBeforeSnap: undefined,\n        recentWheelEvents: [],\n        enable: Mousewheel.enable,\n        disable: Mousewheel.disable,\n        handle: Mousewheel.handle,\n        handleMouseEnter: Mousewheel.handleMouseEnter,\n        handleMouseLeave: Mousewheel.handleMouseLeave,\n        animateSlider: Mousewheel.animateSlider,\n        releaseScroll: Mousewheel.releaseScroll\n      }\n    });\n  },\n  on: {\n    init: function init(swiper) {\n      if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n        swiper.mousewheel.disable();\n      }\n\n      if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n    },\n    destroy: function destroy(swiper) {\n      if (swiper.params.cssMode) {\n        swiper.mousewheel.enable();\n      }\n\n      if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n    }\n  }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n  toggleEl: function toggleEl($el, disabled) {\n    $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n    if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n  },\n  update: function update() {\n    // Update Navigation Buttons\n    var swiper = this;\n    var params = swiper.params.navigation;\n    var toggleEl = swiper.navigation.toggleEl;\n    if (swiper.params.loop) return;\n    var _swiper$navigation = swiper.navigation,\n        $nextEl = _swiper$navigation.$nextEl,\n        $prevEl = _swiper$navigation.$prevEl;\n\n    if ($prevEl && $prevEl.length > 0) {\n      if (swiper.isBeginning) {\n        toggleEl($prevEl, true);\n      } else {\n        toggleEl($prevEl, false);\n      }\n\n      if (swiper.params.watchOverflow && swiper.enabled) {\n        $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n      }\n    }\n\n    if ($nextEl && $nextEl.length > 0) {\n      if (swiper.isEnd) {\n        toggleEl($nextEl, true);\n      } else {\n        toggleEl($nextEl, false);\n      }\n\n      if (swiper.params.watchOverflow && swiper.enabled) {\n        $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n      }\n    }\n  },\n  onPrevClick: function onPrevClick(e) {\n    var swiper = this;\n    e.preventDefault();\n    if (swiper.isBeginning && !swiper.params.loop) return;\n    swiper.slidePrev();\n  },\n  onNextClick: function onNextClick(e) {\n    var swiper = this;\n    e.preventDefault();\n    if (swiper.isEnd && !swiper.params.loop) return;\n    swiper.slideNext();\n  },\n  init: function init() {\n    var swiper = this;\n    var params = swiper.params.navigation;\n    swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n      nextEl: 'swiper-button-next',\n      prevEl: 'swiper-button-prev'\n    });\n    if (!(params.nextEl || params.prevEl)) return;\n    var $nextEl;\n    var $prevEl;\n\n    if (params.nextEl) {\n      $nextEl = $(params.nextEl);\n\n      if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n        $nextEl = swiper.$el.find(params.nextEl);\n      }\n    }\n\n    if (params.prevEl) {\n      $prevEl = $(params.prevEl);\n\n      if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n        $prevEl = swiper.$el.find(params.prevEl);\n      }\n    }\n\n    if ($nextEl && $nextEl.length > 0) {\n      $nextEl.on('click', swiper.navigation.onNextClick);\n    }\n\n    if ($prevEl && $prevEl.length > 0) {\n      $prevEl.on('click', swiper.navigation.onPrevClick);\n    }\n\n    extend(swiper.navigation, {\n      $nextEl: $nextEl,\n      nextEl: $nextEl && $nextEl[0],\n      $prevEl: $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  destroy: function destroy() {\n    var swiper = this;\n    var _swiper$navigation2 = swiper.navigation,\n        $nextEl = _swiper$navigation2.$nextEl,\n        $prevEl = _swiper$navigation2.$prevEl;\n\n    if ($nextEl && $nextEl.length) {\n      $nextEl.off('click', swiper.navigation.onNextClick);\n      $nextEl.removeClass(swiper.params.navigation.disabledClass);\n    }\n\n    if ($prevEl && $prevEl.length) {\n      $prevEl.off('click', swiper.navigation.onPrevClick);\n      $prevEl.removeClass(swiper.params.navigation.disabledClass);\n    }\n  }\n};\nexport default {\n  name: 'navigation',\n  params: {\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    }\n  },\n  create: function create() {\n    var swiper = this;\n    bindModuleMethods(swiper, {\n      navigation: _extends({}, Navigation)\n    });\n  },\n  on: {\n    init: function init(swiper) {\n      swiper.navigation.init();\n      swiper.navigation.update();\n    },\n    toEdge: function toEdge(swiper) {\n      swiper.navigation.update();\n    },\n    fromEdge: function fromEdge(swiper) {\n      swiper.navigation.update();\n    },\n    destroy: function destroy(swiper) {\n      swiper.navigation.destroy();\n    },\n    'enable disable': function enableDisable(swiper) {\n      var _swiper$navigation3 = swiper.navigation,\n          $nextEl = _swiper$navigation3.$nextEl,\n          $prevEl = _swiper$navigation3.$prevEl;\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    click: function click(swiper, e) {\n      var _swiper$navigation4 = swiper.navigation,\n          $nextEl = _swiper$navigation4.$nextEl,\n          $prevEl = _swiper$navigation4.$prevEl;\n      var 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        var 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          swiper.emit('navigationShow');\n        } else {\n          swiper.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};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n  update: function update() {\n    // Render || Update Pagination bullets/items\n    var swiper = this;\n    var rtl = swiper.rtl;\n    var params = swiper.params.pagination;\n    if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n    var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n    var $el = swiper.pagination.$el; // Current/Total\n\n    var current;\n    var 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      var bullets = swiper.pagination.bullets;\n      var firstIndex;\n      var lastIndex;\n      var midIndex;\n\n      if (params.dynamicBullets) {\n        swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n        $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n        if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n          swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n          if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n            swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n          } else if (swiper.pagination.dynamicBulletIndex < 0) {\n            swiper.pagination.dynamicBulletIndex = 0;\n          }\n        }\n\n        firstIndex = current - swiper.pagination.dynamicBulletIndex;\n        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n        midIndex = (lastIndex + firstIndex) / 2;\n      }\n\n      bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n      if ($el.length > 1) {\n        bullets.each(function (bullet) {\n          var $bullet = $(bullet);\n          var 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              $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n            }\n\n            if (bulletIndex === lastIndex) {\n              $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n            }\n          }\n        });\n      } else {\n        var $bullet = bullets.eq(current);\n        var bulletIndex = $bullet.index();\n        $bullet.addClass(params.bulletActiveClass);\n\n        if (params.dynamicBullets) {\n          var $firstDisplayedBullet = bullets.eq(firstIndex);\n          var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n          for (var 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 - params.dynamicMainBullets) {\n              for (var _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              $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n              $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n            }\n          } else {\n            $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n            $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n          }\n        }\n      }\n\n      if (params.dynamicBullets) {\n        var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n        var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n        var 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      var progressbarDirection;\n\n      if (params.progressbarOpposite) {\n        progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n      } else {\n        progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n      }\n\n      var scale = (current + 1) / total;\n      var scaleX = 1;\n      var 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      swiper.emit('paginationRender', $el[0]);\n    } else {\n      swiper.emit('paginationUpdate', $el[0]);\n    }\n\n    if (swiper.params.watchOverflow && swiper.enabled) {\n      $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n    }\n  },\n  render: function render() {\n    // Render Container\n    var swiper = this;\n    var params = swiper.params.pagination;\n    if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n    var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n    var $el = swiper.pagination.$el;\n    var paginationHTML = '';\n\n    if (params.type === 'bullets') {\n      var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n      if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n        numberOfBullets = slidesLength;\n      }\n\n      for (var 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      swiper.emit('paginationRender', swiper.pagination.$el[0]);\n    }\n  },\n  init: function init() {\n    var swiper = this;\n    swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n      el: 'swiper-pagination'\n    });\n    var params = swiper.params.pagination;\n    if (!params.el) return;\n    var $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);\n    }\n\n    if (params.type === 'bullets' && params.clickable) {\n      $el.addClass(params.clickableClass);\n    }\n\n    $el.addClass(params.modifierClass + params.type);\n\n    if (params.type === 'bullets' && params.dynamicBullets) {\n      $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n      swiper.pagination.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        var index = $(this).index() * swiper.params.slidesPerGroup;\n        if (swiper.params.loop) index += swiper.loopedSlides;\n        swiper.slideTo(index);\n      });\n    }\n\n    extend(swiper.pagination, {\n      $el: $el,\n      el: $el[0]\n    });\n\n    if (!swiper.enabled) {\n      $el.addClass(params.lockClass);\n    }\n  },\n  destroy: function destroy() {\n    var swiper = this;\n    var params = swiper.params.pagination;\n    if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n    var $el = swiper.pagination.$el;\n    $el.removeClass(params.hiddenClass);\n    $el.removeClass(params.modifierClass + params.type);\n    if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n    if (params.clickable) {\n      $el.off('click', classesToSelector(params.bulletClass));\n    }\n  }\n};\nexport default {\n  name: 'pagination',\n  params: {\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: function formatFractionCurrent(number) {\n        return number;\n      },\n      formatFractionTotal: function formatFractionTotal(number) {\n        return number;\n      },\n      bulletClass: 'swiper-pagination-bullet',\n      bulletActiveClass: 'swiper-pagination-bullet-active',\n      modifierClass: 'swiper-pagination-',\n      // NEW\n      currentClass: 'swiper-pagination-current',\n      totalClass: 'swiper-pagination-total',\n      hiddenClass: 'swiper-pagination-hidden',\n      progressbarFillClass: 'swiper-pagination-progressbar-fill',\n      progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n      clickableClass: 'swiper-pagination-clickable',\n      // NEW\n      lockClass: 'swiper-pagination-lock'\n    }\n  },\n  create: function create() {\n    var swiper = this;\n    bindModuleMethods(swiper, {\n      pagination: _extends({\n        dynamicBulletIndex: 0\n      }, Pagination)\n    });\n  },\n  on: {\n    init: function init(swiper) {\n      swiper.pagination.init();\n      swiper.pagination.render();\n      swiper.pagination.update();\n    },\n    activeIndexChange: function activeIndexChange(swiper) {\n      if (swiper.params.loop) {\n        swiper.pagination.update();\n      } else if (typeof swiper.snapIndex === 'undefined') {\n        swiper.pagination.update();\n      }\n    },\n    snapIndexChange: function snapIndexChange(swiper) {\n      if (!swiper.params.loop) {\n        swiper.pagination.update();\n      }\n    },\n    slidesLengthChange: function slidesLengthChange(swiper) {\n      if (swiper.params.loop) {\n        swiper.pagination.render();\n        swiper.pagination.update();\n      }\n    },\n    snapGridLengthChange: function snapGridLengthChange(swiper) {\n      if (!swiper.params.loop) {\n        swiper.pagination.render();\n        swiper.pagination.update();\n      }\n    },\n    destroy: function destroy(swiper) {\n      swiper.pagination.destroy();\n    },\n    'enable disable': function enableDisable(swiper) {\n      var $el = swiper.pagination.$el;\n\n      if ($el) {\n        $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n      }\n    },\n    click: function click(swiper, e) {\n      var targetEl = e.target;\n\n      if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$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        var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n        if (isHidden === true) {\n          swiper.emit('paginationShow');\n        } else {\n          swiper.emit('paginationHide');\n        }\n\n        swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n      }\n    }\n  }\n};","import { SwiperOptions } from \"swiper\";\n\nconst swiperBaseOptions: SwiperOptions = {\n  mousewheel: {\n    forceToAxis: true,\n  },\n  touchEventsTarget: \"wrapper\", // fixes issue: https://github.com/nolimits4web/swiper/issues/2428#issuecomment-404455734\n};\n\nexport default swiperBaseOptions;\n","import Swiper, {\n  A11y,\n  Autoplay,\n  Mousewheel,\n  Navigation,\n  Pagination,\n} from \"swiper\";\n\nimport swiperBaseOptions from \"../shared/swiperOptions\";\nimport { waitForElement } from \"../shared/utilities\";\n\nclass SuccessStories {\n  element: HTMLElement;\n\n  swiper: Swiper;\n\n  init = (svg: HTMLElement) => {\n    this.element = svg;\n    this.swiper = new Swiper(\"#success-stories__swiper__container\", {\n      ...swiperBaseOptions,\n      direction: \"horizontal\",\n      speed: 1000,\n      spaceBetween: 30,\n      slidesPerView: \"auto\",\n    });\n\n    this.element.classList.add(\"bn-fade-block\");\n  };\n}\nSwiper.use([A11y, Autoplay, Mousewheel, Navigation, Pagination]);\nwaitForElement<HTMLElement>(\".success-stories\").then((el: HTMLElement) => {\n  new SuccessStories().init(el);\n});\n","import { timer } from \"./lib\";\n\nexport const withTimeout = <T>(\n  promise: Promise<T>,\n  timeout: number,\n  // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n): Promise<T | void> => {\n  return Promise.race([promise, timer(timeout)]);\n};\n\nconst elementIterator = (\n  toSet: Element | Element[],\n  setCallback: (el: Element) => void,\n) => {\n  if (toSet) {\n    if (toSet instanceof Element) {\n      setCallback(toSet);\n    } else {\n      toSet.forEach((el) => setCallback(el));\n    }\n  }\n};\n\nexport const hide = (toHide: Element | Element[]): void => {\n  elementIterator(toHide, (el: Element) => {\n    el.classList.add(\"bn-hide\");\n  });\n};\n\nexport const show = (toShow: Element | Element[]): void => {\n  elementIterator(toShow, (el: Element) => {\n    el.classList.remove(\"bn-hide\");\n  });\n};\n\nexport const toggle = (\n  toToggle: Element | Element[],\n  className: string,\n): void => {\n  elementIterator(toToggle, (el: Element) => {\n    el.classList.toggle(className);\n  });\n};\n\nexport function waitForElement<T extends Element = HTMLElement>(\n  selector: string,\n  parentElement: Element | null = null,\n): Promise<T> {\n  return new Promise<T>((resolve) => {\n    if (parentElement && parentElement.querySelector(selector)) {\n      resolve(parentElement.querySelector(selector) as T);\n    } else if (document.querySelector(selector)) {\n      resolve(document.querySelector(selector) as T);\n    }\n\n    const observer = new MutationObserver(() => {\n      if (parentElement && parentElement.querySelector(selector)) {\n        resolve(parentElement.querySelector(selector) as T);\n      } else if (document.querySelector(selector)) {\n        resolve(document.querySelector(selector) as T);\n        observer.disconnect();\n      }\n    });\n\n    observer.observe(document.body, {\n      childList: true,\n      subtree: true,\n    });\n  });\n}\n\nexport function getElement<T extends Element = HTMLElement>(\n  selector: string,\n  parentElement: Element | null = null,\n): T {\n  if (parentElement && parentElement.querySelector(selector)) {\n    return parentElement.querySelector(selector) as T;\n  }\n  if (document.querySelector(selector)) {\n    return document.querySelector(selector) as T;\n  }\n  throw new Error(`No element found for selector ${selector}`);\n}\n\nexport function getElementWithId<T extends HTMLElement = HTMLElement>(\n  selector: string,\n): T {\n  if (document.getElementById(selector) !== null) {\n    return document.getElementById(selector) as T;\n  }\n  throw new Error(`No element found for selector ${selector}`);\n}\n\nexport function getAllElements<T extends Element = HTMLElement>(\n  selector: string,\n  parentElement: Element | null = null,\n): T[] {\n  if (parentElement && parentElement.querySelectorAll(selector)) {\n    return [...parentElement.querySelectorAll<T>(selector)];\n  }\n  if (document.querySelectorAll(selector)) {\n    return [...document.querySelectorAll<T>(selector)];\n  }\n  throw new Error(`No elements found for selector ${selector}`);\n}\n\nexport const isMobileScreenSize = (): boolean =>\n  window.matchMedia(\"screen and (max-width: 992px)\").matches;\n\nexport const getURLParams = (url: string): string | null => {\n  const urlParams = new URLSearchParams(window.location.search);\n  return urlParams.get(url);\n};\n\nexport function setupModal(dialogBox: HTMLDialogElement) {\n  const clickAwayToClose = (e: MouseEvent) => {\n    // The dialog must have a value of zero padding for this\n    // to work. Basically if we have a div on the inside of\n    // the dialog box which fills it complete, all clicks inside\n    // the box will be registered to the div or its children.\n    // Otherwise the click will be on the dialog box's backdrop\n    // (the faded background the users sees when the dialog is open)\n    // which the browser considers to be the dialog box itself. So\n    // any time we get a click on the dialog box itself, we know\n    // it's a click outside the dialog box and we can close it.\n    const isInside = e.target !== dialogBox;\n\n    if (dialogBox.open && !isInside) {\n      dialogBox.close();\n    }\n  };\n\n  const observeCB = () => {\n    if (dialogBox.open) {\n      document.body.addEventListener(\"mousedown\", clickAwayToClose);\n    } else {\n      document.body.removeEventListener(\"mousedown\", clickAwayToClose);\n    }\n  };\n\n  const observer = new MutationObserver(observeCB);\n  observer.observe(dialogBox, { attributeFilter: [\"open\"] });\n  const closeBtn = dialogBox.querySelector(\".btn-close\") as HTMLButtonElement;\n  closeBtn?.addEventListener(\"click\", () => {\n    dialogBox.close();\n  });\n\n  closeBtn?.addEventListener(\"keydown\", (e) => {\n    if (e.key === \"Enter\") {\n      dialogBox.close();\n    }\n  });\n\n  dialogBox.addEventListener(\"keydown\", (e) => {\n    if (e.key === \"Escape\") {\n      e.preventDefault();\n      e.stopPropagation();\n      dialogBox.close();\n    }\n  });\n\n  return dialogBox;\n}\n","/**!\n* tippy.js v6.3.7\n* (c) 2017-2021 atomiks\n* MIT License\n*/\nimport { createPopper, applyStyles } from '@popperjs/core';\n\nvar ROUND_ARROW = '<svg width=\"16\" height=\"6\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0 6s1.796-.013 4.67-3.615C5.851.9 6.93.006 8 0c1.07-.006 2.148.887 3.343 2.385C14.233 6.005 16 6 16 6H0z\"></svg>';\nvar BOX_CLASS = \"tippy-box\";\nvar CONTENT_CLASS = \"tippy-content\";\nvar BACKDROP_CLASS = \"tippy-backdrop\";\nvar ARROW_CLASS = \"tippy-arrow\";\nvar SVG_ARROW_CLASS = \"tippy-svg-arrow\";\nvar TOUCH_OPTIONS = {\n  passive: true,\n  capture: true\n};\nvar TIPPY_DEFAULT_APPEND_TO = function TIPPY_DEFAULT_APPEND_TO() {\n  return document.body;\n};\n\nfunction hasOwnProperty(obj, key) {\n  return {}.hasOwnProperty.call(obj, key);\n}\nfunction getValueAtIndexOrReturn(value, index, defaultValue) {\n  if (Array.isArray(value)) {\n    var v = value[index];\n    return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;\n  }\n\n  return value;\n}\nfunction isType(value, type) {\n  var str = {}.toString.call(value);\n  return str.indexOf('[object') === 0 && str.indexOf(type + \"]\") > -1;\n}\nfunction invokeWithArgsOrReturn(value, args) {\n  return typeof value === 'function' ? value.apply(void 0, args) : value;\n}\nfunction debounce(fn, ms) {\n  // Avoid wrapping in `setTimeout` if ms is 0 anyway\n  if (ms === 0) {\n    return fn;\n  }\n\n  var timeout;\n  return function (arg) {\n    clearTimeout(timeout);\n    timeout = setTimeout(function () {\n      fn(arg);\n    }, ms);\n  };\n}\nfunction removeProperties(obj, keys) {\n  var clone = Object.assign({}, obj);\n  keys.forEach(function (key) {\n    delete clone[key];\n  });\n  return clone;\n}\nfunction splitBySpaces(value) {\n  return value.split(/\\s+/).filter(Boolean);\n}\nfunction normalizeToArray(value) {\n  return [].concat(value);\n}\nfunction pushIfUnique(arr, value) {\n  if (arr.indexOf(value) === -1) {\n    arr.push(value);\n  }\n}\nfunction unique(arr) {\n  return arr.filter(function (item, index) {\n    return arr.indexOf(item) === index;\n  });\n}\nfunction getBasePlacement(placement) {\n  return placement.split('-')[0];\n}\nfunction arrayFrom(value) {\n  return [].slice.call(value);\n}\nfunction removeUndefinedProps(obj) {\n  return Object.keys(obj).reduce(function (acc, key) {\n    if (obj[key] !== undefined) {\n      acc[key] = obj[key];\n    }\n\n    return acc;\n  }, {});\n}\n\nfunction div() {\n  return document.createElement('div');\n}\nfunction isElement(value) {\n  return ['Element', 'Fragment'].some(function (type) {\n    return isType(value, type);\n  });\n}\nfunction isNodeList(value) {\n  return isType(value, 'NodeList');\n}\nfunction isMouseEvent(value) {\n  return isType(value, 'MouseEvent');\n}\nfunction isReferenceElement(value) {\n  return !!(value && value._tippy && value._tippy.reference === value);\n}\nfunction getArrayOfElements(value) {\n  if (isElement(value)) {\n    return [value];\n  }\n\n  if (isNodeList(value)) {\n    return arrayFrom(value);\n  }\n\n  if (Array.isArray(value)) {\n    return value;\n  }\n\n  return arrayFrom(document.querySelectorAll(value));\n}\nfunction setTransitionDuration(els, value) {\n  els.forEach(function (el) {\n    if (el) {\n      el.style.transitionDuration = value + \"ms\";\n    }\n  });\n}\nfunction setVisibilityState(els, state) {\n  els.forEach(function (el) {\n    if (el) {\n      el.setAttribute('data-state', state);\n    }\n  });\n}\nfunction getOwnerDocument(elementOrElements) {\n  var _element$ownerDocumen;\n\n  var _normalizeToArray = normalizeToArray(elementOrElements),\n      element = _normalizeToArray[0]; // Elements created via a <template> have an ownerDocument with no reference to the body\n\n\n  return element != null && (_element$ownerDocumen = element.ownerDocument) != null && _element$ownerDocumen.body ? element.ownerDocument : document;\n}\nfunction isCursorOutsideInteractiveBorder(popperTreeData, event) {\n  var clientX = event.clientX,\n      clientY = event.clientY;\n  return popperTreeData.every(function (_ref) {\n    var popperRect = _ref.popperRect,\n        popperState = _ref.popperState,\n        props = _ref.props;\n    var interactiveBorder = props.interactiveBorder;\n    var basePlacement = getBasePlacement(popperState.placement);\n    var offsetData = popperState.modifiersData.offset;\n\n    if (!offsetData) {\n      return true;\n    }\n\n    var topDistance = basePlacement === 'bottom' ? offsetData.top.y : 0;\n    var bottomDistance = basePlacement === 'top' ? offsetData.bottom.y : 0;\n    var leftDistance = basePlacement === 'right' ? offsetData.left.x : 0;\n    var rightDistance = basePlacement === 'left' ? offsetData.right.x : 0;\n    var exceedsTop = popperRect.top - clientY + topDistance > interactiveBorder;\n    var exceedsBottom = clientY - popperRect.bottom - bottomDistance > interactiveBorder;\n    var exceedsLeft = popperRect.left - clientX + leftDistance > interactiveBorder;\n    var exceedsRight = clientX - popperRect.right - rightDistance > interactiveBorder;\n    return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;\n  });\n}\nfunction updateTransitionEndListener(box, action, listener) {\n  var method = action + \"EventListener\"; // some browsers apparently support `transition` (unprefixed) but only fire\n  // `webkitTransitionEnd`...\n\n  ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n    box[method](event, listener);\n  });\n}\n/**\n * Compared to xxx.contains, this function works for dom structures with shadow\n * dom\n */\n\nfunction actualContains(parent, child) {\n  var target = child;\n\n  while (target) {\n    var _target$getRootNode;\n\n    if (parent.contains(target)) {\n      return true;\n    }\n\n    target = target.getRootNode == null ? void 0 : (_target$getRootNode = target.getRootNode()) == null ? void 0 : _target$getRootNode.host;\n  }\n\n  return false;\n}\n\nvar currentInput = {\n  isTouch: false\n};\nvar lastMouseMoveTime = 0;\n/**\n * When a `touchstart` event is fired, it's assumed the user is using touch\n * input. We'll bind a `mousemove` event listener to listen for mouse input in\n * the future. This way, the `isTouch` property is fully dynamic and will handle\n * hybrid devices that use a mix of touch + mouse input.\n */\n\nfunction onDocumentTouchStart() {\n  if (currentInput.isTouch) {\n    return;\n  }\n\n  currentInput.isTouch = true;\n\n  if (window.performance) {\n    document.addEventListener('mousemove', onDocumentMouseMove);\n  }\n}\n/**\n * When two `mousemove` event are fired consecutively within 20ms, it's assumed\n * the user is using mouse input again. `mousemove` can fire on touch devices as\n * well, but very rarely that quickly.\n */\n\nfunction onDocumentMouseMove() {\n  var now = performance.now();\n\n  if (now - lastMouseMoveTime < 20) {\n    currentInput.isTouch = false;\n    document.removeEventListener('mousemove', onDocumentMouseMove);\n  }\n\n  lastMouseMoveTime = now;\n}\n/**\n * When an element is in focus and has a tippy, leaving the tab/window and\n * returning causes it to show again. For mouse users this is unexpected, but\n * for keyboard use it makes sense.\n * TODO: find a better technique to solve this problem\n */\n\nfunction onWindowBlur() {\n  var activeElement = document.activeElement;\n\n  if (isReferenceElement(activeElement)) {\n    var instance = activeElement._tippy;\n\n    if (activeElement.blur && !instance.state.isVisible) {\n      activeElement.blur();\n    }\n  }\n}\nfunction bindGlobalEventListeners() {\n  document.addEventListener('touchstart', onDocumentTouchStart, TOUCH_OPTIONS);\n  window.addEventListener('blur', onWindowBlur);\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar isIE11 = isBrowser ? // @ts-ignore\n!!window.msCrypto : false;\n\nfunction createMemoryLeakWarning(method) {\n  var txt = method === 'destroy' ? 'n already-' : ' ';\n  return [method + \"() was called on a\" + txt + \"destroyed instance. This is a no-op but\", 'indicates a potential memory leak.'].join(' ');\n}\nfunction clean(value) {\n  var spacesAndTabs = /[ \\t]{2,}/g;\n  var lineStartWithSpaces = /^[ \\t]*/gm;\n  return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();\n}\n\nfunction getDevMessage(message) {\n  return clean(\"\\n  %ctippy.js\\n\\n  %c\" + clean(message) + \"\\n\\n  %c\\uD83D\\uDC77\\u200D This is a development-only message. It will be removed in production.\\n  \");\n}\n\nfunction getFormattedMessage(message) {\n  return [getDevMessage(message), // title\n  'color: #00C584; font-size: 1.3em; font-weight: bold;', // message\n  'line-height: 1.5', // footer\n  'color: #a6a095;'];\n} // Assume warnings and errors never have the same message\n\nvar visitedMessages;\n\nif (process.env.NODE_ENV !== \"production\") {\n  resetVisitedMessages();\n}\n\nfunction resetVisitedMessages() {\n  visitedMessages = new Set();\n}\nfunction warnWhen(condition, message) {\n  if (condition && !visitedMessages.has(message)) {\n    var _console;\n\n    visitedMessages.add(message);\n\n    (_console = console).warn.apply(_console, getFormattedMessage(message));\n  }\n}\nfunction errorWhen(condition, message) {\n  if (condition && !visitedMessages.has(message)) {\n    var _console2;\n\n    visitedMessages.add(message);\n\n    (_console2 = console).error.apply(_console2, getFormattedMessage(message));\n  }\n}\nfunction validateTargets(targets) {\n  var didPassFalsyValue = !targets;\n  var didPassPlainObject = Object.prototype.toString.call(targets) === '[object Object]' && !targets.addEventListener;\n  errorWhen(didPassFalsyValue, ['tippy() was passed', '`' + String(targets) + '`', 'as its targets (first) argument. Valid types are: String, Element,', 'Element[], or NodeList.'].join(' '));\n  errorWhen(didPassPlainObject, ['tippy() was passed a plain object which is not supported as an argument', 'for virtual positioning. Use props.getReferenceClientRect instead.'].join(' '));\n}\n\nvar pluginProps = {\n  animateFill: false,\n  followCursor: false,\n  inlinePositioning: false,\n  sticky: false\n};\nvar renderProps = {\n  allowHTML: false,\n  animation: 'fade',\n  arrow: true,\n  content: '',\n  inertia: false,\n  maxWidth: 350,\n  role: 'tooltip',\n  theme: '',\n  zIndex: 9999\n};\nvar defaultProps = Object.assign({\n  appendTo: TIPPY_DEFAULT_APPEND_TO,\n  aria: {\n    content: 'auto',\n    expanded: 'auto'\n  },\n  delay: 0,\n  duration: [300, 250],\n  getReferenceClientRect: null,\n  hideOnClick: true,\n  ignoreAttributes: false,\n  interactive: false,\n  interactiveBorder: 2,\n  interactiveDebounce: 0,\n  moveTransition: '',\n  offset: [0, 10],\n  onAfterUpdate: function onAfterUpdate() {},\n  onBeforeUpdate: function onBeforeUpdate() {},\n  onCreate: function onCreate() {},\n  onDestroy: function onDestroy() {},\n  onHidden: function onHidden() {},\n  onHide: function onHide() {},\n  onMount: function onMount() {},\n  onShow: function onShow() {},\n  onShown: function onShown() {},\n  onTrigger: function onTrigger() {},\n  onUntrigger: function onUntrigger() {},\n  onClickOutside: function onClickOutside() {},\n  placement: 'top',\n  plugins: [],\n  popperOptions: {},\n  render: null,\n  showOnCreate: false,\n  touch: true,\n  trigger: 'mouseenter focus',\n  triggerTarget: null\n}, pluginProps, renderProps);\nvar defaultKeys = Object.keys(defaultProps);\nvar setDefaultProps = function setDefaultProps(partialProps) {\n  /* istanbul ignore else */\n  if (process.env.NODE_ENV !== \"production\") {\n    validateProps(partialProps, []);\n  }\n\n  var keys = Object.keys(partialProps);\n  keys.forEach(function (key) {\n    defaultProps[key] = partialProps[key];\n  });\n};\nfunction getExtendedPassedProps(passedProps) {\n  var plugins = passedProps.plugins || [];\n  var pluginProps = plugins.reduce(function (acc, plugin) {\n    var name = plugin.name,\n        defaultValue = plugin.defaultValue;\n\n    if (name) {\n      var _name;\n\n      acc[name] = passedProps[name] !== undefined ? passedProps[name] : (_name = defaultProps[name]) != null ? _name : defaultValue;\n    }\n\n    return acc;\n  }, {});\n  return Object.assign({}, passedProps, pluginProps);\n}\nfunction getDataAttributeProps(reference, plugins) {\n  var propKeys = plugins ? Object.keys(getExtendedPassedProps(Object.assign({}, defaultProps, {\n    plugins: plugins\n  }))) : defaultKeys;\n  var props = propKeys.reduce(function (acc, key) {\n    var valueAsString = (reference.getAttribute(\"data-tippy-\" + key) || '').trim();\n\n    if (!valueAsString) {\n      return acc;\n    }\n\n    if (key === 'content') {\n      acc[key] = valueAsString;\n    } else {\n      try {\n        acc[key] = JSON.parse(valueAsString);\n      } catch (e) {\n        acc[key] = valueAsString;\n      }\n    }\n\n    return acc;\n  }, {});\n  return props;\n}\nfunction evaluateProps(reference, props) {\n  var out = Object.assign({}, props, {\n    content: invokeWithArgsOrReturn(props.content, [reference])\n  }, props.ignoreAttributes ? {} : getDataAttributeProps(reference, props.plugins));\n  out.aria = Object.assign({}, defaultProps.aria, out.aria);\n  out.aria = {\n    expanded: out.aria.expanded === 'auto' ? props.interactive : out.aria.expanded,\n    content: out.aria.content === 'auto' ? props.interactive ? null : 'describedby' : out.aria.content\n  };\n  return out;\n}\nfunction validateProps(partialProps, plugins) {\n  if (partialProps === void 0) {\n    partialProps = {};\n  }\n\n  if (plugins === void 0) {\n    plugins = [];\n  }\n\n  var keys = Object.keys(partialProps);\n  keys.forEach(function (prop) {\n    var nonPluginProps = removeProperties(defaultProps, Object.keys(pluginProps));\n    var didPassUnknownProp = !hasOwnProperty(nonPluginProps, prop); // Check if the prop exists in `plugins`\n\n    if (didPassUnknownProp) {\n      didPassUnknownProp = plugins.filter(function (plugin) {\n        return plugin.name === prop;\n      }).length === 0;\n    }\n\n    warnWhen(didPassUnknownProp, [\"`\" + prop + \"`\", \"is not a valid prop. You may have spelled it incorrectly, or if it's\", 'a plugin, forgot to pass it in an array as props.plugins.', '\\n\\n', 'All props: https://atomiks.github.io/tippyjs/v6/all-props/\\n', 'Plugins: https://atomiks.github.io/tippyjs/v6/plugins/'].join(' '));\n  });\n}\n\nvar innerHTML = function innerHTML() {\n  return 'innerHTML';\n};\n\nfunction dangerouslySetInnerHTML(element, html) {\n  element[innerHTML()] = html;\n}\n\nfunction createArrowElement(value) {\n  var arrow = div();\n\n  if (value === true) {\n    arrow.className = ARROW_CLASS;\n  } else {\n    arrow.className = SVG_ARROW_CLASS;\n\n    if (isElement(value)) {\n      arrow.appendChild(value);\n    } else {\n      dangerouslySetInnerHTML(arrow, value);\n    }\n  }\n\n  return arrow;\n}\n\nfunction setContent(content, props) {\n  if (isElement(props.content)) {\n    dangerouslySetInnerHTML(content, '');\n    content.appendChild(props.content);\n  } else if (typeof props.content !== 'function') {\n    if (props.allowHTML) {\n      dangerouslySetInnerHTML(content, props.content);\n    } else {\n      content.textContent = props.content;\n    }\n  }\n}\nfunction getChildren(popper) {\n  var box = popper.firstElementChild;\n  var boxChildren = arrayFrom(box.children);\n  return {\n    box: box,\n    content: boxChildren.find(function (node) {\n      return node.classList.contains(CONTENT_CLASS);\n    }),\n    arrow: boxChildren.find(function (node) {\n      return node.classList.contains(ARROW_CLASS) || node.classList.contains(SVG_ARROW_CLASS);\n    }),\n    backdrop: boxChildren.find(function (node) {\n      return node.classList.contains(BACKDROP_CLASS);\n    })\n  };\n}\nfunction render(instance) {\n  var popper = div();\n  var box = div();\n  box.className = BOX_CLASS;\n  box.setAttribute('data-state', 'hidden');\n  box.setAttribute('tabindex', '-1');\n  var content = div();\n  content.className = CONTENT_CLASS;\n  content.setAttribute('data-state', 'hidden');\n  setContent(content, instance.props);\n  popper.appendChild(box);\n  box.appendChild(content);\n  onUpdate(instance.props, instance.props);\n\n  function onUpdate(prevProps, nextProps) {\n    var _getChildren = getChildren(popper),\n        box = _getChildren.box,\n        content = _getChildren.content,\n        arrow = _getChildren.arrow;\n\n    if (nextProps.theme) {\n      box.setAttribute('data-theme', nextProps.theme);\n    } else {\n      box.removeAttribute('data-theme');\n    }\n\n    if (typeof nextProps.animation === 'string') {\n      box.setAttribute('data-animation', nextProps.animation);\n    } else {\n      box.removeAttribute('data-animation');\n    }\n\n    if (nextProps.inertia) {\n      box.setAttribute('data-inertia', '');\n    } else {\n      box.removeAttribute('data-inertia');\n    }\n\n    box.style.maxWidth = typeof nextProps.maxWidth === 'number' ? nextProps.maxWidth + \"px\" : nextProps.maxWidth;\n\n    if (nextProps.role) {\n      box.setAttribute('role', nextProps.role);\n    } else {\n      box.removeAttribute('role');\n    }\n\n    if (prevProps.content !== nextProps.content || prevProps.allowHTML !== nextProps.allowHTML) {\n      setContent(content, instance.props);\n    }\n\n    if (nextProps.arrow) {\n      if (!arrow) {\n        box.appendChild(createArrowElement(nextProps.arrow));\n      } else if (prevProps.arrow !== nextProps.arrow) {\n        box.removeChild(arrow);\n        box.appendChild(createArrowElement(nextProps.arrow));\n      }\n    } else if (arrow) {\n      box.removeChild(arrow);\n    }\n  }\n\n  return {\n    popper: popper,\n    onUpdate: onUpdate\n  };\n} // Runtime check to identify if the render function is the default one; this\n// way we can apply default CSS transitions logic and it can be tree-shaken away\n\nrender.$$tippy = true;\n\nvar idCounter = 1;\nvar mouseMoveListeners = []; // Used by `hideAll()`\n\nvar mountedInstances = [];\nfunction createTippy(reference, passedProps) {\n  var props = evaluateProps(reference, Object.assign({}, defaultProps, getExtendedPassedProps(removeUndefinedProps(passedProps)))); // ===========================================================================\n  // 🔒 Private members\n  // ===========================================================================\n\n  var showTimeout;\n  var hideTimeout;\n  var scheduleHideAnimationFrame;\n  var isVisibleFromClick = false;\n  var didHideDueToDocumentMouseDown = false;\n  var didTouchMove = false;\n  var ignoreOnFirstUpdate = false;\n  var lastTriggerEvent;\n  var currentTransitionEndListener;\n  var onFirstUpdate;\n  var listeners = [];\n  var debouncedOnMouseMove = debounce(onMouseMove, props.interactiveDebounce);\n  var currentTarget; // ===========================================================================\n  // 🔑 Public members\n  // ===========================================================================\n\n  var id = idCounter++;\n  var popperInstance = null;\n  var plugins = unique(props.plugins);\n  var state = {\n    // Is the instance currently enabled?\n    isEnabled: true,\n    // Is the tippy currently showing and not transitioning out?\n    isVisible: false,\n    // Has the instance been destroyed?\n    isDestroyed: false,\n    // Is the tippy currently mounted to the DOM?\n    isMounted: false,\n    // Has the tippy finished transitioning in?\n    isShown: false\n  };\n  var instance = {\n    // properties\n    id: id,\n    reference: reference,\n    popper: div(),\n    popperInstance: popperInstance,\n    props: props,\n    state: state,\n    plugins: plugins,\n    // methods\n    clearDelayTimeouts: clearDelayTimeouts,\n    setProps: setProps,\n    setContent: setContent,\n    show: show,\n    hide: hide,\n    hideWithInteractivity: hideWithInteractivity,\n    enable: enable,\n    disable: disable,\n    unmount: unmount,\n    destroy: destroy\n  }; // TODO: Investigate why this early return causes a TDZ error in the tests —\n  // it doesn't seem to happen in the browser\n\n  /* istanbul ignore if */\n\n  if (!props.render) {\n    if (process.env.NODE_ENV !== \"production\") {\n      errorWhen(true, 'render() function has not been supplied.');\n    }\n\n    return instance;\n  } // ===========================================================================\n  // Initial mutations\n  // ===========================================================================\n\n\n  var _props$render = props.render(instance),\n      popper = _props$render.popper,\n      onUpdate = _props$render.onUpdate;\n\n  popper.setAttribute('data-tippy-root', '');\n  popper.id = \"tippy-\" + instance.id;\n  instance.popper = popper;\n  reference._tippy = instance;\n  popper._tippy = instance;\n  var pluginsHooks = plugins.map(function (plugin) {\n    return plugin.fn(instance);\n  });\n  var hasAriaExpanded = reference.hasAttribute('aria-expanded');\n  addListeners();\n  handleAriaExpandedAttribute();\n  handleStyles();\n  invokeHook('onCreate', [instance]);\n\n  if (props.showOnCreate) {\n    scheduleShow();\n  } // Prevent a tippy with a delay from hiding if the cursor left then returned\n  // before it started hiding\n\n\n  popper.addEventListener('mouseenter', function () {\n    if (instance.props.interactive && instance.state.isVisible) {\n      instance.clearDelayTimeouts();\n    }\n  });\n  popper.addEventListener('mouseleave', function () {\n    if (instance.props.interactive && instance.props.trigger.indexOf('mouseenter') >= 0) {\n      getDocument().addEventListener('mousemove', debouncedOnMouseMove);\n    }\n  });\n  return instance; // ===========================================================================\n  // 🔒 Private methods\n  // ===========================================================================\n\n  function getNormalizedTouchSettings() {\n    var touch = instance.props.touch;\n    return Array.isArray(touch) ? touch : [touch, 0];\n  }\n\n  function getIsCustomTouchBehavior() {\n    return getNormalizedTouchSettings()[0] === 'hold';\n  }\n\n  function getIsDefaultRenderFn() {\n    var _instance$props$rende;\n\n    // @ts-ignore\n    return !!((_instance$props$rende = instance.props.render) != null && _instance$props$rende.$$tippy);\n  }\n\n  function getCurrentTarget() {\n    return currentTarget || reference;\n  }\n\n  function getDocument() {\n    var parent = getCurrentTarget().parentNode;\n    return parent ? getOwnerDocument(parent) : document;\n  }\n\n  function getDefaultTemplateChildren() {\n    return getChildren(popper);\n  }\n\n  function getDelay(isShow) {\n    // For touch or keyboard input, force `0` delay for UX reasons\n    // Also if the instance is mounted but not visible (transitioning out),\n    // ignore delay\n    if (instance.state.isMounted && !instance.state.isVisible || currentInput.isTouch || lastTriggerEvent && lastTriggerEvent.type === 'focus') {\n      return 0;\n    }\n\n    return getValueAtIndexOrReturn(instance.props.delay, isShow ? 0 : 1, defaultProps.delay);\n  }\n\n  function handleStyles(fromHide) {\n    if (fromHide === void 0) {\n      fromHide = false;\n    }\n\n    popper.style.pointerEvents = instance.props.interactive && !fromHide ? '' : 'none';\n    popper.style.zIndex = \"\" + instance.props.zIndex;\n  }\n\n  function invokeHook(hook, args, shouldInvokePropsHook) {\n    if (shouldInvokePropsHook === void 0) {\n      shouldInvokePropsHook = true;\n    }\n\n    pluginsHooks.forEach(function (pluginHooks) {\n      if (pluginHooks[hook]) {\n        pluginHooks[hook].apply(pluginHooks, args);\n      }\n    });\n\n    if (shouldInvokePropsHook) {\n      var _instance$props;\n\n      (_instance$props = instance.props)[hook].apply(_instance$props, args);\n    }\n  }\n\n  function handleAriaContentAttribute() {\n    var aria = instance.props.aria;\n\n    if (!aria.content) {\n      return;\n    }\n\n    var attr = \"aria-\" + aria.content;\n    var id = popper.id;\n    var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n    nodes.forEach(function (node) {\n      var currentValue = node.getAttribute(attr);\n\n      if (instance.state.isVisible) {\n        node.setAttribute(attr, currentValue ? currentValue + \" \" + id : id);\n      } else {\n        var nextValue = currentValue && currentValue.replace(id, '').trim();\n\n        if (nextValue) {\n          node.setAttribute(attr, nextValue);\n        } else {\n          node.removeAttribute(attr);\n        }\n      }\n    });\n  }\n\n  function handleAriaExpandedAttribute() {\n    if (hasAriaExpanded || !instance.props.aria.expanded) {\n      return;\n    }\n\n    var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n    nodes.forEach(function (node) {\n      if (instance.props.interactive) {\n        node.setAttribute('aria-expanded', instance.state.isVisible && node === getCurrentTarget() ? 'true' : 'false');\n      } else {\n        node.removeAttribute('aria-expanded');\n      }\n    });\n  }\n\n  function cleanupInteractiveMouseListeners() {\n    getDocument().removeEventListener('mousemove', debouncedOnMouseMove);\n    mouseMoveListeners = mouseMoveListeners.filter(function (listener) {\n      return listener !== debouncedOnMouseMove;\n    });\n  }\n\n  function onDocumentPress(event) {\n    // Moved finger to scroll instead of an intentional tap outside\n    if (currentInput.isTouch) {\n      if (didTouchMove || event.type === 'mousedown') {\n        return;\n      }\n    }\n\n    var actualTarget = event.composedPath && event.composedPath()[0] || event.target; // Clicked on interactive popper\n\n    if (instance.props.interactive && actualContains(popper, actualTarget)) {\n      return;\n    } // Clicked on the event listeners target\n\n\n    if (normalizeToArray(instance.props.triggerTarget || reference).some(function (el) {\n      return actualContains(el, actualTarget);\n    })) {\n      if (currentInput.isTouch) {\n        return;\n      }\n\n      if (instance.state.isVisible && instance.props.trigger.indexOf('click') >= 0) {\n        return;\n      }\n    } else {\n      invokeHook('onClickOutside', [instance, event]);\n    }\n\n    if (instance.props.hideOnClick === true) {\n      instance.clearDelayTimeouts();\n      instance.hide(); // `mousedown` event is fired right before `focus` if pressing the\n      // currentTarget. This lets a tippy with `focus` trigger know that it\n      // should not show\n\n      didHideDueToDocumentMouseDown = true;\n      setTimeout(function () {\n        didHideDueToDocumentMouseDown = false;\n      }); // The listener gets added in `scheduleShow()`, but this may be hiding it\n      // before it shows, and hide()'s early bail-out behavior can prevent it\n      // from being cleaned up\n\n      if (!instance.state.isMounted) {\n        removeDocumentPress();\n      }\n    }\n  }\n\n  function onTouchMove() {\n    didTouchMove = true;\n  }\n\n  function onTouchStart() {\n    didTouchMove = false;\n  }\n\n  function addDocumentPress() {\n    var doc = getDocument();\n    doc.addEventListener('mousedown', onDocumentPress, true);\n    doc.addEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);\n    doc.addEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);\n    doc.addEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);\n  }\n\n  function removeDocumentPress() {\n    var doc = getDocument();\n    doc.removeEventListener('mousedown', onDocumentPress, true);\n    doc.removeEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);\n    doc.removeEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);\n    doc.removeEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);\n  }\n\n  function onTransitionedOut(duration, callback) {\n    onTransitionEnd(duration, function () {\n      if (!instance.state.isVisible && popper.parentNode && popper.parentNode.contains(popper)) {\n        callback();\n      }\n    });\n  }\n\n  function onTransitionedIn(duration, callback) {\n    onTransitionEnd(duration, callback);\n  }\n\n  function onTransitionEnd(duration, callback) {\n    var box = getDefaultTemplateChildren().box;\n\n    function listener(event) {\n      if (event.target === box) {\n        updateTransitionEndListener(box, 'remove', listener);\n        callback();\n      }\n    } // Make callback synchronous if duration is 0\n    // `transitionend` won't fire otherwise\n\n\n    if (duration === 0) {\n      return callback();\n    }\n\n    updateTransitionEndListener(box, 'remove', currentTransitionEndListener);\n    updateTransitionEndListener(box, 'add', listener);\n    currentTransitionEndListener = listener;\n  }\n\n  function on(eventType, handler, options) {\n    if (options === void 0) {\n      options = false;\n    }\n\n    var nodes = normalizeToArray(instance.props.triggerTarget || reference);\n    nodes.forEach(function (node) {\n      node.addEventListener(eventType, handler, options);\n      listeners.push({\n        node: node,\n        eventType: eventType,\n        handler: handler,\n        options: options\n      });\n    });\n  }\n\n  function addListeners() {\n    if (getIsCustomTouchBehavior()) {\n      on('touchstart', onTrigger, {\n        passive: true\n      });\n      on('touchend', onMouseLeave, {\n        passive: true\n      });\n    }\n\n    splitBySpaces(instance.props.trigger).forEach(function (eventType) {\n      if (eventType === 'manual') {\n        return;\n      }\n\n      on(eventType, onTrigger);\n\n      switch (eventType) {\n        case 'mouseenter':\n          on('mouseleave', onMouseLeave);\n          break;\n\n        case 'focus':\n          on(isIE11 ? 'focusout' : 'blur', onBlurOrFocusOut);\n          break;\n\n        case 'focusin':\n          on('focusout', onBlurOrFocusOut);\n          break;\n      }\n    });\n  }\n\n  function removeListeners() {\n    listeners.forEach(function (_ref) {\n      var node = _ref.node,\n          eventType = _ref.eventType,\n          handler = _ref.handler,\n          options = _ref.options;\n      node.removeEventListener(eventType, handler, options);\n    });\n    listeners = [];\n  }\n\n  function onTrigger(event) {\n    var _lastTriggerEvent;\n\n    var shouldScheduleClickHide = false;\n\n    if (!instance.state.isEnabled || isEventListenerStopped(event) || didHideDueToDocumentMouseDown) {\n      return;\n    }\n\n    var wasFocused = ((_lastTriggerEvent = lastTriggerEvent) == null ? void 0 : _lastTriggerEvent.type) === 'focus';\n    lastTriggerEvent = event;\n    currentTarget = event.currentTarget;\n    handleAriaExpandedAttribute();\n\n    if (!instance.state.isVisible && isMouseEvent(event)) {\n      // If scrolling, `mouseenter` events can be fired if the cursor lands\n      // over a new target, but `mousemove` events don't get fired. This\n      // causes interactive tooltips to get stuck open until the cursor is\n      // moved\n      mouseMoveListeners.forEach(function (listener) {\n        return listener(event);\n      });\n    } // Toggle show/hide when clicking click-triggered tooltips\n\n\n    if (event.type === 'click' && (instance.props.trigger.indexOf('mouseenter') < 0 || isVisibleFromClick) && instance.props.hideOnClick !== false && instance.state.isVisible) {\n      shouldScheduleClickHide = true;\n    } else {\n      scheduleShow(event);\n    }\n\n    if (event.type === 'click') {\n      isVisibleFromClick = !shouldScheduleClickHide;\n    }\n\n    if (shouldScheduleClickHide && !wasFocused) {\n      scheduleHide(event);\n    }\n  }\n\n  function onMouseMove(event) {\n    var target = event.target;\n    var isCursorOverReferenceOrPopper = getCurrentTarget().contains(target) || popper.contains(target);\n\n    if (event.type === 'mousemove' && isCursorOverReferenceOrPopper) {\n      return;\n    }\n\n    var popperTreeData = getNestedPopperTree().concat(popper).map(function (popper) {\n      var _instance$popperInsta;\n\n      var instance = popper._tippy;\n      var state = (_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.state;\n\n      if (state) {\n        return {\n          popperRect: popper.getBoundingClientRect(),\n          popperState: state,\n          props: props\n        };\n      }\n\n      return null;\n    }).filter(Boolean);\n\n    if (isCursorOutsideInteractiveBorder(popperTreeData, event)) {\n      cleanupInteractiveMouseListeners();\n      scheduleHide(event);\n    }\n  }\n\n  function onMouseLeave(event) {\n    var shouldBail = isEventListenerStopped(event) || instance.props.trigger.indexOf('click') >= 0 && isVisibleFromClick;\n\n    if (shouldBail) {\n      return;\n    }\n\n    if (instance.props.interactive) {\n      instance.hideWithInteractivity(event);\n      return;\n    }\n\n    scheduleHide(event);\n  }\n\n  function onBlurOrFocusOut(event) {\n    if (instance.props.trigger.indexOf('focusin') < 0 && event.target !== getCurrentTarget()) {\n      return;\n    } // If focus was moved to within the popper\n\n\n    if (instance.props.interactive && event.relatedTarget && popper.contains(event.relatedTarget)) {\n      return;\n    }\n\n    scheduleHide(event);\n  }\n\n  function isEventListenerStopped(event) {\n    return currentInput.isTouch ? getIsCustomTouchBehavior() !== event.type.indexOf('touch') >= 0 : false;\n  }\n\n  function createPopperInstance() {\n    destroyPopperInstance();\n    var _instance$props2 = instance.props,\n        popperOptions = _instance$props2.popperOptions,\n        placement = _instance$props2.placement,\n        offset = _instance$props2.offset,\n        getReferenceClientRect = _instance$props2.getReferenceClientRect,\n        moveTransition = _instance$props2.moveTransition;\n    var arrow = getIsDefaultRenderFn() ? getChildren(popper).arrow : null;\n    var computedReference = getReferenceClientRect ? {\n      getBoundingClientRect: getReferenceClientRect,\n      contextElement: getReferenceClientRect.contextElement || getCurrentTarget()\n    } : reference;\n    var tippyModifier = {\n      name: '$$tippy',\n      enabled: true,\n      phase: 'beforeWrite',\n      requires: ['computeStyles'],\n      fn: function fn(_ref2) {\n        var state = _ref2.state;\n\n        if (getIsDefaultRenderFn()) {\n          var _getDefaultTemplateCh = getDefaultTemplateChildren(),\n              box = _getDefaultTemplateCh.box;\n\n          ['placement', 'reference-hidden', 'escaped'].forEach(function (attr) {\n            if (attr === 'placement') {\n              box.setAttribute('data-placement', state.placement);\n            } else {\n              if (state.attributes.popper[\"data-popper-\" + attr]) {\n                box.setAttribute(\"data-\" + attr, '');\n              } else {\n                box.removeAttribute(\"data-\" + attr);\n              }\n            }\n          });\n          state.attributes.popper = {};\n        }\n      }\n    };\n    var modifiers = [{\n      name: 'offset',\n      options: {\n        offset: offset\n      }\n    }, {\n      name: 'preventOverflow',\n      options: {\n        padding: {\n          top: 2,\n          bottom: 2,\n          left: 5,\n          right: 5\n        }\n      }\n    }, {\n      name: 'flip',\n      options: {\n        padding: 5\n      }\n    }, {\n      name: 'computeStyles',\n      options: {\n        adaptive: !moveTransition\n      }\n    }, tippyModifier];\n\n    if (getIsDefaultRenderFn() && arrow) {\n      modifiers.push({\n        name: 'arrow',\n        options: {\n          element: arrow,\n          padding: 3\n        }\n      });\n    }\n\n    modifiers.push.apply(modifiers, (popperOptions == null ? void 0 : popperOptions.modifiers) || []);\n    instance.popperInstance = createPopper(computedReference, popper, Object.assign({}, popperOptions, {\n      placement: placement,\n      onFirstUpdate: onFirstUpdate,\n      modifiers: modifiers\n    }));\n  }\n\n  function destroyPopperInstance() {\n    if (instance.popperInstance) {\n      instance.popperInstance.destroy();\n      instance.popperInstance = null;\n    }\n  }\n\n  function mount() {\n    var appendTo = instance.props.appendTo;\n    var parentNode; // By default, we'll append the popper to the triggerTargets's parentNode so\n    // it's directly after the reference element so the elements inside the\n    // tippy can be tabbed to\n    // If there are clipping issues, the user can specify a different appendTo\n    // and ensure focus management is handled correctly manually\n\n    var node = getCurrentTarget();\n\n    if (instance.props.interactive && appendTo === TIPPY_DEFAULT_APPEND_TO || appendTo === 'parent') {\n      parentNode = node.parentNode;\n    } else {\n      parentNode = invokeWithArgsOrReturn(appendTo, [node]);\n    } // The popper element needs to exist on the DOM before its position can be\n    // updated as Popper needs to read its dimensions\n\n\n    if (!parentNode.contains(popper)) {\n      parentNode.appendChild(popper);\n    }\n\n    instance.state.isMounted = true;\n    createPopperInstance();\n    /* istanbul ignore else */\n\n    if (process.env.NODE_ENV !== \"production\") {\n      // Accessibility check\n      warnWhen(instance.props.interactive && appendTo === defaultProps.appendTo && node.nextElementSibling !== popper, ['Interactive tippy element may not be accessible via keyboard', 'navigation because it is not directly after the reference element', 'in the DOM source order.', '\\n\\n', 'Using a wrapper <div> or <span> tag around the reference element', 'solves this by creating a new parentNode context.', '\\n\\n', 'Specifying `appendTo: document.body` silences this warning, but it', 'assumes you are using a focus management solution to handle', 'keyboard navigation.', '\\n\\n', 'See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity'].join(' '));\n    }\n  }\n\n  function getNestedPopperTree() {\n    return arrayFrom(popper.querySelectorAll('[data-tippy-root]'));\n  }\n\n  function scheduleShow(event) {\n    instance.clearDelayTimeouts();\n\n    if (event) {\n      invokeHook('onTrigger', [instance, event]);\n    }\n\n    addDocumentPress();\n    var delay = getDelay(true);\n\n    var _getNormalizedTouchSe = getNormalizedTouchSettings(),\n        touchValue = _getNormalizedTouchSe[0],\n        touchDelay = _getNormalizedTouchSe[1];\n\n    if (currentInput.isTouch && touchValue === 'hold' && touchDelay) {\n      delay = touchDelay;\n    }\n\n    if (delay) {\n      showTimeout = setTimeout(function () {\n        instance.show();\n      }, delay);\n    } else {\n      instance.show();\n    }\n  }\n\n  function scheduleHide(event) {\n    instance.clearDelayTimeouts();\n    invokeHook('onUntrigger', [instance, event]);\n\n    if (!instance.state.isVisible) {\n      removeDocumentPress();\n      return;\n    } // For interactive tippies, scheduleHide is added to a document.body handler\n    // from onMouseLeave so must intercept scheduled hides from mousemove/leave\n    // events when trigger contains mouseenter and click, and the tip is\n    // currently shown as a result of a click.\n\n\n    if (instance.props.trigger.indexOf('mouseenter') >= 0 && instance.props.trigger.indexOf('click') >= 0 && ['mouseleave', 'mousemove'].indexOf(event.type) >= 0 && isVisibleFromClick) {\n      return;\n    }\n\n    var delay = getDelay(false);\n\n    if (delay) {\n      hideTimeout = setTimeout(function () {\n        if (instance.state.isVisible) {\n          instance.hide();\n        }\n      }, delay);\n    } else {\n      // Fixes a `transitionend` problem when it fires 1 frame too\n      // late sometimes, we don't want hide() to be called.\n      scheduleHideAnimationFrame = requestAnimationFrame(function () {\n        instance.hide();\n      });\n    }\n  } // ===========================================================================\n  // 🔑 Public methods\n  // ===========================================================================\n\n\n  function enable() {\n    instance.state.isEnabled = true;\n  }\n\n  function disable() {\n    // Disabling the instance should also hide it\n    // https://github.com/atomiks/tippy.js-react/issues/106\n    instance.hide();\n    instance.state.isEnabled = false;\n  }\n\n  function clearDelayTimeouts() {\n    clearTimeout(showTimeout);\n    clearTimeout(hideTimeout);\n    cancelAnimationFrame(scheduleHideAnimationFrame);\n  }\n\n  function setProps(partialProps) {\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== \"production\") {\n      warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('setProps'));\n    }\n\n    if (instance.state.isDestroyed) {\n      return;\n    }\n\n    invokeHook('onBeforeUpdate', [instance, partialProps]);\n    removeListeners();\n    var prevProps = instance.props;\n    var nextProps = evaluateProps(reference, Object.assign({}, prevProps, removeUndefinedProps(partialProps), {\n      ignoreAttributes: true\n    }));\n    instance.props = nextProps;\n    addListeners();\n\n    if (prevProps.interactiveDebounce !== nextProps.interactiveDebounce) {\n      cleanupInteractiveMouseListeners();\n      debouncedOnMouseMove = debounce(onMouseMove, nextProps.interactiveDebounce);\n    } // Ensure stale aria-expanded attributes are removed\n\n\n    if (prevProps.triggerTarget && !nextProps.triggerTarget) {\n      normalizeToArray(prevProps.triggerTarget).forEach(function (node) {\n        node.removeAttribute('aria-expanded');\n      });\n    } else if (nextProps.triggerTarget) {\n      reference.removeAttribute('aria-expanded');\n    }\n\n    handleAriaExpandedAttribute();\n    handleStyles();\n\n    if (onUpdate) {\n      onUpdate(prevProps, nextProps);\n    }\n\n    if (instance.popperInstance) {\n      createPopperInstance(); // Fixes an issue with nested tippies if they are all getting re-rendered,\n      // and the nested ones get re-rendered first.\n      // https://github.com/atomiks/tippyjs-react/issues/177\n      // TODO: find a cleaner / more efficient solution(!)\n\n      getNestedPopperTree().forEach(function (nestedPopper) {\n        // React (and other UI libs likely) requires a rAF wrapper as it flushes\n        // its work in one\n        requestAnimationFrame(nestedPopper._tippy.popperInstance.forceUpdate);\n      });\n    }\n\n    invokeHook('onAfterUpdate', [instance, partialProps]);\n  }\n\n  function setContent(content) {\n    instance.setProps({\n      content: content\n    });\n  }\n\n  function show() {\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== \"production\") {\n      warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('show'));\n    } // Early bail-out\n\n\n    var isAlreadyVisible = instance.state.isVisible;\n    var isDestroyed = instance.state.isDestroyed;\n    var isDisabled = !instance.state.isEnabled;\n    var isTouchAndTouchDisabled = currentInput.isTouch && !instance.props.touch;\n    var duration = getValueAtIndexOrReturn(instance.props.duration, 0, defaultProps.duration);\n\n    if (isAlreadyVisible || isDestroyed || isDisabled || isTouchAndTouchDisabled) {\n      return;\n    } // Normalize `disabled` behavior across browsers.\n    // Firefox allows events on disabled elements, but Chrome doesn't.\n    // Using a wrapper element (i.e. <span>) is recommended.\n\n\n    if (getCurrentTarget().hasAttribute('disabled')) {\n      return;\n    }\n\n    invokeHook('onShow', [instance], false);\n\n    if (instance.props.onShow(instance) === false) {\n      return;\n    }\n\n    instance.state.isVisible = true;\n\n    if (getIsDefaultRenderFn()) {\n      popper.style.visibility = 'visible';\n    }\n\n    handleStyles();\n    addDocumentPress();\n\n    if (!instance.state.isMounted) {\n      popper.style.transition = 'none';\n    } // If flipping to the opposite side after hiding at least once, the\n    // animation will use the wrong placement without resetting the duration\n\n\n    if (getIsDefaultRenderFn()) {\n      var _getDefaultTemplateCh2 = getDefaultTemplateChildren(),\n          box = _getDefaultTemplateCh2.box,\n          content = _getDefaultTemplateCh2.content;\n\n      setTransitionDuration([box, content], 0);\n    }\n\n    onFirstUpdate = function onFirstUpdate() {\n      var _instance$popperInsta2;\n\n      if (!instance.state.isVisible || ignoreOnFirstUpdate) {\n        return;\n      }\n\n      ignoreOnFirstUpdate = true; // reflow\n\n      void popper.offsetHeight;\n      popper.style.transition = instance.props.moveTransition;\n\n      if (getIsDefaultRenderFn() && instance.props.animation) {\n        var _getDefaultTemplateCh3 = getDefaultTemplateChildren(),\n            _box = _getDefaultTemplateCh3.box,\n            _content = _getDefaultTemplateCh3.content;\n\n        setTransitionDuration([_box, _content], duration);\n        setVisibilityState([_box, _content], 'visible');\n      }\n\n      handleAriaContentAttribute();\n      handleAriaExpandedAttribute();\n      pushIfUnique(mountedInstances, instance); // certain modifiers (e.g. `maxSize`) require a second update after the\n      // popper has been positioned for the first time\n\n      (_instance$popperInsta2 = instance.popperInstance) == null ? void 0 : _instance$popperInsta2.forceUpdate();\n      invokeHook('onMount', [instance]);\n\n      if (instance.props.animation && getIsDefaultRenderFn()) {\n        onTransitionedIn(duration, function () {\n          instance.state.isShown = true;\n          invokeHook('onShown', [instance]);\n        });\n      }\n    };\n\n    mount();\n  }\n\n  function hide() {\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== \"production\") {\n      warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('hide'));\n    } // Early bail-out\n\n\n    var isAlreadyHidden = !instance.state.isVisible;\n    var isDestroyed = instance.state.isDestroyed;\n    var isDisabled = !instance.state.isEnabled;\n    var duration = getValueAtIndexOrReturn(instance.props.duration, 1, defaultProps.duration);\n\n    if (isAlreadyHidden || isDestroyed || isDisabled) {\n      return;\n    }\n\n    invokeHook('onHide', [instance], false);\n\n    if (instance.props.onHide(instance) === false) {\n      return;\n    }\n\n    instance.state.isVisible = false;\n    instance.state.isShown = false;\n    ignoreOnFirstUpdate = false;\n    isVisibleFromClick = false;\n\n    if (getIsDefaultRenderFn()) {\n      popper.style.visibility = 'hidden';\n    }\n\n    cleanupInteractiveMouseListeners();\n    removeDocumentPress();\n    handleStyles(true);\n\n    if (getIsDefaultRenderFn()) {\n      var _getDefaultTemplateCh4 = getDefaultTemplateChildren(),\n          box = _getDefaultTemplateCh4.box,\n          content = _getDefaultTemplateCh4.content;\n\n      if (instance.props.animation) {\n        setTransitionDuration([box, content], duration);\n        setVisibilityState([box, content], 'hidden');\n      }\n    }\n\n    handleAriaContentAttribute();\n    handleAriaExpandedAttribute();\n\n    if (instance.props.animation) {\n      if (getIsDefaultRenderFn()) {\n        onTransitionedOut(duration, instance.unmount);\n      }\n    } else {\n      instance.unmount();\n    }\n  }\n\n  function hideWithInteractivity(event) {\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== \"production\") {\n      warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('hideWithInteractivity'));\n    }\n\n    getDocument().addEventListener('mousemove', debouncedOnMouseMove);\n    pushIfUnique(mouseMoveListeners, debouncedOnMouseMove);\n    debouncedOnMouseMove(event);\n  }\n\n  function unmount() {\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== \"production\") {\n      warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('unmount'));\n    }\n\n    if (instance.state.isVisible) {\n      instance.hide();\n    }\n\n    if (!instance.state.isMounted) {\n      return;\n    }\n\n    destroyPopperInstance(); // If a popper is not interactive, it will be appended outside the popper\n    // tree by default. This seems mainly for interactive tippies, but we should\n    // find a workaround if possible\n\n    getNestedPopperTree().forEach(function (nestedPopper) {\n      nestedPopper._tippy.unmount();\n    });\n\n    if (popper.parentNode) {\n      popper.parentNode.removeChild(popper);\n    }\n\n    mountedInstances = mountedInstances.filter(function (i) {\n      return i !== instance;\n    });\n    instance.state.isMounted = false;\n    invokeHook('onHidden', [instance]);\n  }\n\n  function destroy() {\n    /* istanbul ignore else */\n    if (process.env.NODE_ENV !== \"production\") {\n      warnWhen(instance.state.isDestroyed, createMemoryLeakWarning('destroy'));\n    }\n\n    if (instance.state.isDestroyed) {\n      return;\n    }\n\n    instance.clearDelayTimeouts();\n    instance.unmount();\n    removeListeners();\n    delete reference._tippy;\n    instance.state.isDestroyed = true;\n    invokeHook('onDestroy', [instance]);\n  }\n}\n\nfunction tippy(targets, optionalProps) {\n  if (optionalProps === void 0) {\n    optionalProps = {};\n  }\n\n  var plugins = defaultProps.plugins.concat(optionalProps.plugins || []);\n  /* istanbul ignore else */\n\n  if (process.env.NODE_ENV !== \"production\") {\n    validateTargets(targets);\n    validateProps(optionalProps, plugins);\n  }\n\n  bindGlobalEventListeners();\n  var passedProps = Object.assign({}, optionalProps, {\n    plugins: plugins\n  });\n  var elements = getArrayOfElements(targets);\n  /* istanbul ignore else */\n\n  if (process.env.NODE_ENV !== \"production\") {\n    var isSingleContentElement = isElement(passedProps.content);\n    var isMoreThanOneReferenceElement = elements.length > 1;\n    warnWhen(isSingleContentElement && isMoreThanOneReferenceElement, ['tippy() was passed an Element as the `content` prop, but more than', 'one tippy instance was created by this invocation. This means the', 'content element will only be appended to the last tippy instance.', '\\n\\n', 'Instead, pass the .innerHTML of the element, or use a function that', 'returns a cloned version of the element instead.', '\\n\\n', '1) content: element.innerHTML\\n', '2) content: () => element.cloneNode(true)'].join(' '));\n  }\n\n  var instances = elements.reduce(function (acc, reference) {\n    var instance = reference && createTippy(reference, passedProps);\n\n    if (instance) {\n      acc.push(instance);\n    }\n\n    return acc;\n  }, []);\n  return isElement(targets) ? instances[0] : instances;\n}\n\ntippy.defaultProps = defaultProps;\ntippy.setDefaultProps = setDefaultProps;\ntippy.currentInput = currentInput;\nvar hideAll = function hideAll(_temp) {\n  var _ref = _temp === void 0 ? {} : _temp,\n      excludedReferenceOrInstance = _ref.exclude,\n      duration = _ref.duration;\n\n  mountedInstances.forEach(function (instance) {\n    var isExcluded = false;\n\n    if (excludedReferenceOrInstance) {\n      isExcluded = isReferenceElement(excludedReferenceOrInstance) ? instance.reference === excludedReferenceOrInstance : instance.popper === excludedReferenceOrInstance.popper;\n    }\n\n    if (!isExcluded) {\n      var originalDuration = instance.props.duration;\n      instance.setProps({\n        duration: duration\n      });\n      instance.hide();\n\n      if (!instance.state.isDestroyed) {\n        instance.setProps({\n          duration: originalDuration\n        });\n      }\n    }\n  });\n};\n\n// every time the popper is destroyed (i.e. a new target), removing the styles\n// and causing transitions to break for singletons when the console is open, but\n// most notably for non-transform styles being used, `gpuAcceleration: false`.\n\nvar applyStylesModifier = Object.assign({}, applyStyles, {\n  effect: function effect(_ref) {\n    var state = _ref.state;\n    var initialStyles = {\n      popper: {\n        position: state.options.strategy,\n        left: '0',\n        top: '0',\n        margin: '0'\n      },\n      arrow: {\n        position: 'absolute'\n      },\n      reference: {}\n    };\n    Object.assign(state.elements.popper.style, initialStyles.popper);\n    state.styles = initialStyles;\n\n    if (state.elements.arrow) {\n      Object.assign(state.elements.arrow.style, initialStyles.arrow);\n    } // intentionally return no cleanup function\n    // return () => { ... }\n\n  }\n});\n\nvar createSingleton = function createSingleton(tippyInstances, optionalProps) {\n  var _optionalProps$popper;\n\n  if (optionalProps === void 0) {\n    optionalProps = {};\n  }\n\n  /* istanbul ignore else */\n  if (process.env.NODE_ENV !== \"production\") {\n    errorWhen(!Array.isArray(tippyInstances), ['The first argument passed to createSingleton() must be an array of', 'tippy instances. The passed value was', String(tippyInstances)].join(' '));\n  }\n\n  var individualInstances = tippyInstances;\n  var references = [];\n  var triggerTargets = [];\n  var currentTarget;\n  var overrides = optionalProps.overrides;\n  var interceptSetPropsCleanups = [];\n  var shownOnCreate = false;\n\n  function setTriggerTargets() {\n    triggerTargets = individualInstances.map(function (instance) {\n      return normalizeToArray(instance.props.triggerTarget || instance.reference);\n    }).reduce(function (acc, item) {\n      return acc.concat(item);\n    }, []);\n  }\n\n  function setReferences() {\n    references = individualInstances.map(function (instance) {\n      return instance.reference;\n    });\n  }\n\n  function enableInstances(isEnabled) {\n    individualInstances.forEach(function (instance) {\n      if (isEnabled) {\n        instance.enable();\n      } else {\n        instance.disable();\n      }\n    });\n  }\n\n  function interceptSetProps(singleton) {\n    return individualInstances.map(function (instance) {\n      var originalSetProps = instance.setProps;\n\n      instance.setProps = function (props) {\n        originalSetProps(props);\n\n        if (instance.reference === currentTarget) {\n          singleton.setProps(props);\n        }\n      };\n\n      return function () {\n        instance.setProps = originalSetProps;\n      };\n    });\n  } // have to pass singleton, as it maybe undefined on first call\n\n\n  function prepareInstance(singleton, target) {\n    var index = triggerTargets.indexOf(target); // bail-out\n\n    if (target === currentTarget) {\n      return;\n    }\n\n    currentTarget = target;\n    var overrideProps = (overrides || []).concat('content').reduce(function (acc, prop) {\n      acc[prop] = individualInstances[index].props[prop];\n      return acc;\n    }, {});\n    singleton.setProps(Object.assign({}, overrideProps, {\n      getReferenceClientRect: typeof overrideProps.getReferenceClientRect === 'function' ? overrideProps.getReferenceClientRect : function () {\n        var _references$index;\n\n        return (_references$index = references[index]) == null ? void 0 : _references$index.getBoundingClientRect();\n      }\n    }));\n  }\n\n  enableInstances(false);\n  setReferences();\n  setTriggerTargets();\n  var plugin = {\n    fn: function fn() {\n      return {\n        onDestroy: function onDestroy() {\n          enableInstances(true);\n        },\n        onHidden: function onHidden() {\n          currentTarget = null;\n        },\n        onClickOutside: function onClickOutside(instance) {\n          if (instance.props.showOnCreate && !shownOnCreate) {\n            shownOnCreate = true;\n            currentTarget = null;\n          }\n        },\n        onShow: function onShow(instance) {\n          if (instance.props.showOnCreate && !shownOnCreate) {\n            shownOnCreate = true;\n            prepareInstance(instance, references[0]);\n          }\n        },\n        onTrigger: function onTrigger(instance, event) {\n          prepareInstance(instance, event.currentTarget);\n        }\n      };\n    }\n  };\n  var singleton = tippy(div(), Object.assign({}, removeProperties(optionalProps, ['overrides']), {\n    plugins: [plugin].concat(optionalProps.plugins || []),\n    triggerTarget: triggerTargets,\n    popperOptions: Object.assign({}, optionalProps.popperOptions, {\n      modifiers: [].concat(((_optionalProps$popper = optionalProps.popperOptions) == null ? void 0 : _optionalProps$popper.modifiers) || [], [applyStylesModifier])\n    })\n  }));\n  var originalShow = singleton.show;\n\n  singleton.show = function (target) {\n    originalShow(); // first time, showOnCreate or programmatic call with no params\n    // default to showing first instance\n\n    if (!currentTarget && target == null) {\n      return prepareInstance(singleton, references[0]);\n    } // triggered from event (do nothing as prepareInstance already called by onTrigger)\n    // programmatic call with no params when already visible (do nothing again)\n\n\n    if (currentTarget && target == null) {\n      return;\n    } // target is index of instance\n\n\n    if (typeof target === 'number') {\n      return references[target] && prepareInstance(singleton, references[target]);\n    } // target is a child tippy instance\n\n\n    if (individualInstances.indexOf(target) >= 0) {\n      var ref = target.reference;\n      return prepareInstance(singleton, ref);\n    } // target is a ReferenceElement\n\n\n    if (references.indexOf(target) >= 0) {\n      return prepareInstance(singleton, target);\n    }\n  };\n\n  singleton.showNext = function () {\n    var first = references[0];\n\n    if (!currentTarget) {\n      return singleton.show(0);\n    }\n\n    var index = references.indexOf(currentTarget);\n    singleton.show(references[index + 1] || first);\n  };\n\n  singleton.showPrevious = function () {\n    var last = references[references.length - 1];\n\n    if (!currentTarget) {\n      return singleton.show(last);\n    }\n\n    var index = references.indexOf(currentTarget);\n    var target = references[index - 1] || last;\n    singleton.show(target);\n  };\n\n  var originalSetProps = singleton.setProps;\n\n  singleton.setProps = function (props) {\n    overrides = props.overrides || overrides;\n    originalSetProps(props);\n  };\n\n  singleton.setInstances = function (nextInstances) {\n    enableInstances(true);\n    interceptSetPropsCleanups.forEach(function (fn) {\n      return fn();\n    });\n    individualInstances = nextInstances;\n    enableInstances(false);\n    setReferences();\n    setTriggerTargets();\n    interceptSetPropsCleanups = interceptSetProps(singleton);\n    singleton.setProps({\n      triggerTarget: triggerTargets\n    });\n  };\n\n  interceptSetPropsCleanups = interceptSetProps(singleton);\n  return singleton;\n};\n\nvar BUBBLING_EVENTS_MAP = {\n  mouseover: 'mouseenter',\n  focusin: 'focus',\n  click: 'click'\n};\n/**\n * Creates a delegate instance that controls the creation of tippy instances\n * for child elements (`target` CSS selector).\n */\n\nfunction delegate(targets, props) {\n  /* istanbul ignore else */\n  if (process.env.NODE_ENV !== \"production\") {\n    errorWhen(!(props && props.target), ['You must specity a `target` prop indicating a CSS selector string matching', 'the target elements that should receive a tippy.'].join(' '));\n  }\n\n  var listeners = [];\n  var childTippyInstances = [];\n  var disabled = false;\n  var target = props.target;\n  var nativeProps = removeProperties(props, ['target']);\n  var parentProps = Object.assign({}, nativeProps, {\n    trigger: 'manual',\n    touch: false\n  });\n  var childProps = Object.assign({\n    touch: defaultProps.touch\n  }, nativeProps, {\n    showOnCreate: true\n  });\n  var returnValue = tippy(targets, parentProps);\n  var normalizedReturnValue = normalizeToArray(returnValue);\n\n  function onTrigger(event) {\n    if (!event.target || disabled) {\n      return;\n    }\n\n    var targetNode = event.target.closest(target);\n\n    if (!targetNode) {\n      return;\n    } // Get relevant trigger with fallbacks:\n    // 1. Check `data-tippy-trigger` attribute on target node\n    // 2. Fallback to `trigger` passed to `delegate()`\n    // 3. Fallback to `defaultProps.trigger`\n\n\n    var trigger = targetNode.getAttribute('data-tippy-trigger') || props.trigger || defaultProps.trigger; // @ts-ignore\n\n    if (targetNode._tippy) {\n      return;\n    }\n\n    if (event.type === 'touchstart' && typeof childProps.touch === 'boolean') {\n      return;\n    }\n\n    if (event.type !== 'touchstart' && trigger.indexOf(BUBBLING_EVENTS_MAP[event.type]) < 0) {\n      return;\n    }\n\n    var instance = tippy(targetNode, childProps);\n\n    if (instance) {\n      childTippyInstances = childTippyInstances.concat(instance);\n    }\n  }\n\n  function on(node, eventType, handler, options) {\n    if (options === void 0) {\n      options = false;\n    }\n\n    node.addEventListener(eventType, handler, options);\n    listeners.push({\n      node: node,\n      eventType: eventType,\n      handler: handler,\n      options: options\n    });\n  }\n\n  function addEventListeners(instance) {\n    var reference = instance.reference;\n    on(reference, 'touchstart', onTrigger, TOUCH_OPTIONS);\n    on(reference, 'mouseover', onTrigger);\n    on(reference, 'focusin', onTrigger);\n    on(reference, 'click', onTrigger);\n  }\n\n  function removeEventListeners() {\n    listeners.forEach(function (_ref) {\n      var node = _ref.node,\n          eventType = _ref.eventType,\n          handler = _ref.handler,\n          options = _ref.options;\n      node.removeEventListener(eventType, handler, options);\n    });\n    listeners = [];\n  }\n\n  function applyMutations(instance) {\n    var originalDestroy = instance.destroy;\n    var originalEnable = instance.enable;\n    var originalDisable = instance.disable;\n\n    instance.destroy = function (shouldDestroyChildInstances) {\n      if (shouldDestroyChildInstances === void 0) {\n        shouldDestroyChildInstances = true;\n      }\n\n      if (shouldDestroyChildInstances) {\n        childTippyInstances.forEach(function (instance) {\n          instance.destroy();\n        });\n      }\n\n      childTippyInstances = [];\n      removeEventListeners();\n      originalDestroy();\n    };\n\n    instance.enable = function () {\n      originalEnable();\n      childTippyInstances.forEach(function (instance) {\n        return instance.enable();\n      });\n      disabled = false;\n    };\n\n    instance.disable = function () {\n      originalDisable();\n      childTippyInstances.forEach(function (instance) {\n        return instance.disable();\n      });\n      disabled = true;\n    };\n\n    addEventListeners(instance);\n  }\n\n  normalizedReturnValue.forEach(applyMutations);\n  return returnValue;\n}\n\nvar animateFill = {\n  name: 'animateFill',\n  defaultValue: false,\n  fn: function fn(instance) {\n    var _instance$props$rende;\n\n    // @ts-ignore\n    if (!((_instance$props$rende = instance.props.render) != null && _instance$props$rende.$$tippy)) {\n      if (process.env.NODE_ENV !== \"production\") {\n        errorWhen(instance.props.animateFill, 'The `animateFill` plugin requires the default render function.');\n      }\n\n      return {};\n    }\n\n    var _getChildren = getChildren(instance.popper),\n        box = _getChildren.box,\n        content = _getChildren.content;\n\n    var backdrop = instance.props.animateFill ? createBackdropElement() : null;\n    return {\n      onCreate: function onCreate() {\n        if (backdrop) {\n          box.insertBefore(backdrop, box.firstElementChild);\n          box.setAttribute('data-animatefill', '');\n          box.style.overflow = 'hidden';\n          instance.setProps({\n            arrow: false,\n            animation: 'shift-away'\n          });\n        }\n      },\n      onMount: function onMount() {\n        if (backdrop) {\n          var transitionDuration = box.style.transitionDuration;\n          var duration = Number(transitionDuration.replace('ms', '')); // The content should fade in after the backdrop has mostly filled the\n          // tooltip element. `clip-path` is the other alternative but is not\n          // well-supported and is buggy on some devices.\n\n          content.style.transitionDelay = Math.round(duration / 10) + \"ms\";\n          backdrop.style.transitionDuration = transitionDuration;\n          setVisibilityState([backdrop], 'visible');\n        }\n      },\n      onShow: function onShow() {\n        if (backdrop) {\n          backdrop.style.transitionDuration = '0ms';\n        }\n      },\n      onHide: function onHide() {\n        if (backdrop) {\n          setVisibilityState([backdrop], 'hidden');\n        }\n      }\n    };\n  }\n};\n\nfunction createBackdropElement() {\n  var backdrop = div();\n  backdrop.className = BACKDROP_CLASS;\n  setVisibilityState([backdrop], 'hidden');\n  return backdrop;\n}\n\nvar mouseCoords = {\n  clientX: 0,\n  clientY: 0\n};\nvar activeInstances = [];\n\nfunction storeMouseCoords(_ref) {\n  var clientX = _ref.clientX,\n      clientY = _ref.clientY;\n  mouseCoords = {\n    clientX: clientX,\n    clientY: clientY\n  };\n}\n\nfunction addMouseCoordsListener(doc) {\n  doc.addEventListener('mousemove', storeMouseCoords);\n}\n\nfunction removeMouseCoordsListener(doc) {\n  doc.removeEventListener('mousemove', storeMouseCoords);\n}\n\nvar followCursor = {\n  name: 'followCursor',\n  defaultValue: false,\n  fn: function fn(instance) {\n    var reference = instance.reference;\n    var doc = getOwnerDocument(instance.props.triggerTarget || reference);\n    var isInternalUpdate = false;\n    var wasFocusEvent = false;\n    var isUnmounted = true;\n    var prevProps = instance.props;\n\n    function getIsInitialBehavior() {\n      return instance.props.followCursor === 'initial' && instance.state.isVisible;\n    }\n\n    function addListener() {\n      doc.addEventListener('mousemove', onMouseMove);\n    }\n\n    function removeListener() {\n      doc.removeEventListener('mousemove', onMouseMove);\n    }\n\n    function unsetGetReferenceClientRect() {\n      isInternalUpdate = true;\n      instance.setProps({\n        getReferenceClientRect: null\n      });\n      isInternalUpdate = false;\n    }\n\n    function onMouseMove(event) {\n      // If the instance is interactive, avoid updating the position unless it's\n      // over the reference element\n      var isCursorOverReference = event.target ? reference.contains(event.target) : true;\n      var followCursor = instance.props.followCursor;\n      var clientX = event.clientX,\n          clientY = event.clientY;\n      var rect = reference.getBoundingClientRect();\n      var relativeX = clientX - rect.left;\n      var relativeY = clientY - rect.top;\n\n      if (isCursorOverReference || !instance.props.interactive) {\n        instance.setProps({\n          // @ts-ignore - unneeded DOMRect properties\n          getReferenceClientRect: function getReferenceClientRect() {\n            var rect = reference.getBoundingClientRect();\n            var x = clientX;\n            var y = clientY;\n\n            if (followCursor === 'initial') {\n              x = rect.left + relativeX;\n              y = rect.top + relativeY;\n            }\n\n            var top = followCursor === 'horizontal' ? rect.top : y;\n            var right = followCursor === 'vertical' ? rect.right : x;\n            var bottom = followCursor === 'horizontal' ? rect.bottom : y;\n            var left = followCursor === 'vertical' ? rect.left : x;\n            return {\n              width: right - left,\n              height: bottom - top,\n              top: top,\n              right: right,\n              bottom: bottom,\n              left: left\n            };\n          }\n        });\n      }\n    }\n\n    function create() {\n      if (instance.props.followCursor) {\n        activeInstances.push({\n          instance: instance,\n          doc: doc\n        });\n        addMouseCoordsListener(doc);\n      }\n    }\n\n    function destroy() {\n      activeInstances = activeInstances.filter(function (data) {\n        return data.instance !== instance;\n      });\n\n      if (activeInstances.filter(function (data) {\n        return data.doc === doc;\n      }).length === 0) {\n        removeMouseCoordsListener(doc);\n      }\n    }\n\n    return {\n      onCreate: create,\n      onDestroy: destroy,\n      onBeforeUpdate: function onBeforeUpdate() {\n        prevProps = instance.props;\n      },\n      onAfterUpdate: function onAfterUpdate(_, _ref2) {\n        var followCursor = _ref2.followCursor;\n\n        if (isInternalUpdate) {\n          return;\n        }\n\n        if (followCursor !== undefined && prevProps.followCursor !== followCursor) {\n          destroy();\n\n          if (followCursor) {\n            create();\n\n            if (instance.state.isMounted && !wasFocusEvent && !getIsInitialBehavior()) {\n              addListener();\n            }\n          } else {\n            removeListener();\n            unsetGetReferenceClientRect();\n          }\n        }\n      },\n      onMount: function onMount() {\n        if (instance.props.followCursor && !wasFocusEvent) {\n          if (isUnmounted) {\n            onMouseMove(mouseCoords);\n            isUnmounted = false;\n          }\n\n          if (!getIsInitialBehavior()) {\n            addListener();\n          }\n        }\n      },\n      onTrigger: function onTrigger(_, event) {\n        if (isMouseEvent(event)) {\n          mouseCoords = {\n            clientX: event.clientX,\n            clientY: event.clientY\n          };\n        }\n\n        wasFocusEvent = event.type === 'focus';\n      },\n      onHidden: function onHidden() {\n        if (instance.props.followCursor) {\n          unsetGetReferenceClientRect();\n          removeListener();\n          isUnmounted = true;\n        }\n      }\n    };\n  }\n};\n\nfunction getProps(props, modifier) {\n  var _props$popperOptions;\n\n  return {\n    popperOptions: Object.assign({}, props.popperOptions, {\n      modifiers: [].concat((((_props$popperOptions = props.popperOptions) == null ? void 0 : _props$popperOptions.modifiers) || []).filter(function (_ref) {\n        var name = _ref.name;\n        return name !== modifier.name;\n      }), [modifier])\n    })\n  };\n}\n\nvar inlinePositioning = {\n  name: 'inlinePositioning',\n  defaultValue: false,\n  fn: function fn(instance) {\n    var reference = instance.reference;\n\n    function isEnabled() {\n      return !!instance.props.inlinePositioning;\n    }\n\n    var placement;\n    var cursorRectIndex = -1;\n    var isInternalUpdate = false;\n    var triedPlacements = [];\n    var modifier = {\n      name: 'tippyInlinePositioning',\n      enabled: true,\n      phase: 'afterWrite',\n      fn: function fn(_ref2) {\n        var state = _ref2.state;\n\n        if (isEnabled()) {\n          if (triedPlacements.indexOf(state.placement) !== -1) {\n            triedPlacements = [];\n          }\n\n          if (placement !== state.placement && triedPlacements.indexOf(state.placement) === -1) {\n            triedPlacements.push(state.placement);\n            instance.setProps({\n              // @ts-ignore - unneeded DOMRect properties\n              getReferenceClientRect: function getReferenceClientRect() {\n                return _getReferenceClientRect(state.placement);\n              }\n            });\n          }\n\n          placement = state.placement;\n        }\n      }\n    };\n\n    function _getReferenceClientRect(placement) {\n      return getInlineBoundingClientRect(getBasePlacement(placement), reference.getBoundingClientRect(), arrayFrom(reference.getClientRects()), cursorRectIndex);\n    }\n\n    function setInternalProps(partialProps) {\n      isInternalUpdate = true;\n      instance.setProps(partialProps);\n      isInternalUpdate = false;\n    }\n\n    function addModifier() {\n      if (!isInternalUpdate) {\n        setInternalProps(getProps(instance.props, modifier));\n      }\n    }\n\n    return {\n      onCreate: addModifier,\n      onAfterUpdate: addModifier,\n      onTrigger: function onTrigger(_, event) {\n        if (isMouseEvent(event)) {\n          var rects = arrayFrom(instance.reference.getClientRects());\n          var cursorRect = rects.find(function (rect) {\n            return rect.left - 2 <= event.clientX && rect.right + 2 >= event.clientX && rect.top - 2 <= event.clientY && rect.bottom + 2 >= event.clientY;\n          });\n          var index = rects.indexOf(cursorRect);\n          cursorRectIndex = index > -1 ? index : cursorRectIndex;\n        }\n      },\n      onHidden: function onHidden() {\n        cursorRectIndex = -1;\n      }\n    };\n  }\n};\nfunction getInlineBoundingClientRect(currentBasePlacement, boundingRect, clientRects, cursorRectIndex) {\n  // Not an inline element, or placement is not yet known\n  if (clientRects.length < 2 || currentBasePlacement === null) {\n    return boundingRect;\n  } // There are two rects and they are disjoined\n\n\n  if (clientRects.length === 2 && cursorRectIndex >= 0 && clientRects[0].left > clientRects[1].right) {\n    return clientRects[cursorRectIndex] || boundingRect;\n  }\n\n  switch (currentBasePlacement) {\n    case 'top':\n    case 'bottom':\n      {\n        var firstRect = clientRects[0];\n        var lastRect = clientRects[clientRects.length - 1];\n        var isTop = currentBasePlacement === 'top';\n        var top = firstRect.top;\n        var bottom = lastRect.bottom;\n        var left = isTop ? firstRect.left : lastRect.left;\n        var right = isTop ? firstRect.right : lastRect.right;\n        var width = right - left;\n        var height = bottom - top;\n        return {\n          top: top,\n          bottom: bottom,\n          left: left,\n          right: right,\n          width: width,\n          height: height\n        };\n      }\n\n    case 'left':\n    case 'right':\n      {\n        var minLeft = Math.min.apply(Math, clientRects.map(function (rects) {\n          return rects.left;\n        }));\n        var maxRight = Math.max.apply(Math, clientRects.map(function (rects) {\n          return rects.right;\n        }));\n        var measureRects = clientRects.filter(function (rect) {\n          return currentBasePlacement === 'left' ? rect.left === minLeft : rect.right === maxRight;\n        });\n        var _top = measureRects[0].top;\n        var _bottom = measureRects[measureRects.length - 1].bottom;\n        var _left = minLeft;\n        var _right = maxRight;\n\n        var _width = _right - _left;\n\n        var _height = _bottom - _top;\n\n        return {\n          top: _top,\n          bottom: _bottom,\n          left: _left,\n          right: _right,\n          width: _width,\n          height: _height\n        };\n      }\n\n    default:\n      {\n        return boundingRect;\n      }\n  }\n}\n\nvar sticky = {\n  name: 'sticky',\n  defaultValue: false,\n  fn: function fn(instance) {\n    var reference = instance.reference,\n        popper = instance.popper;\n\n    function getReference() {\n      return instance.popperInstance ? instance.popperInstance.state.elements.reference : reference;\n    }\n\n    function shouldCheck(value) {\n      return instance.props.sticky === true || instance.props.sticky === value;\n    }\n\n    var prevRefRect = null;\n    var prevPopRect = null;\n\n    function updatePosition() {\n      var currentRefRect = shouldCheck('reference') ? getReference().getBoundingClientRect() : null;\n      var currentPopRect = shouldCheck('popper') ? popper.getBoundingClientRect() : null;\n\n      if (currentRefRect && areRectsDifferent(prevRefRect, currentRefRect) || currentPopRect && areRectsDifferent(prevPopRect, currentPopRect)) {\n        if (instance.popperInstance) {\n          instance.popperInstance.update();\n        }\n      }\n\n      prevRefRect = currentRefRect;\n      prevPopRect = currentPopRect;\n\n      if (instance.state.isMounted) {\n        requestAnimationFrame(updatePosition);\n      }\n    }\n\n    return {\n      onMount: function onMount() {\n        if (instance.props.sticky) {\n          updatePosition();\n        }\n      }\n    };\n  }\n};\n\nfunction areRectsDifferent(rectA, rectB) {\n  if (rectA && rectB) {\n    return rectA.top !== rectB.top || rectA.right !== rectB.right || rectA.bottom !== rectB.bottom || rectA.left !== rectB.left;\n  }\n\n  return true;\n}\n\ntippy.setDefaultProps({\n  render: render\n});\n\nexport default tippy;\nexport { animateFill, createSingleton, delegate, followCursor, hideAll, inlinePositioning, ROUND_ARROW as roundArrow, sticky };\n//# sourceMappingURL=tippy.esm.js.map\n","import axios from \"axios\";\n\nconst api = axios.create({\n  xsrfCookieName: \"csrftoken\",\n  xsrfHeaderName: \"X-CSRFToken\",\n});\n\napi.interceptors.request.use(async (config) => {\n  if (window.AwsWafIntegration) {\n    try {\n      const token = await window.AwsWafIntegration.getToken();\n      if (token) {\n        config.headers.set(\"x-aws-waf-token\", token);\n      }\n    } catch (error) {\n      console.error(\"Error getting token:\", error);\n    }\n  }\n  return config;\n});\n\nexport default api;\n","import \"./success_stories\";\n\nimport tippy from \"tippy.js\";\n\nimport axios from \"@utils/axios\";\n\ninterface NodeWrapper {\n  content: string;\n  contentType: string;\n  html: string;\n  id: string;\n  name: string;\n  placement: string;\n  toggle: string;\n  url: string;\n  savedToTracker: string;\n  alertId: string;\n}\n\ninterface APIID {\n  key: string;\n  id: number;\n}\n\nconst addedMsg = (nodeTitle: string) =>\n  window.interpolate(\n    window.gettext(\n      '%s has just been added to your <a href=\"/deadline-tracker/\" class=\"alert-link\">Deadline Tracker</a>.',\n    ),\n    [nodeTitle],\n    false,\n  );\n\nconst removedMsg = (nodeTitle: string) =>\n  window.interpolate(\n    window.gettext(\n      '%s has been removed from your <a href=\"/deadline-tracker/\" class=\"alert-link\">Deadline Tracker</a>.',\n    ),\n    [nodeTitle],\n    false,\n  );\n\nconst errorMsg = (statusText: string) =>\n  window.interpolate(\n    window.gettext(\n      \"An error occurred while adding to your Deadline Tracker.<br><strong>Status: </strong>%s\",\n    ),\n    [statusText],\n    false,\n  );\n\n// hide alerts before page load\ndocument.querySelectorAll<HTMLElement>(\".alert.javascript\").forEach((el) => {\n  // work around for no-param-reassign rule in eslint\n  const alertElement = el;\n  alertElement.classList.add(\"not-show\");\n  alertElement.style.display = \"block\";\n});\n\n// ///////////\n// Helpers.\n// ///////////\n\nfunction markAsInProgress(buttons: NodeListOf<Element>) {\n  buttons.forEach((button) => {\n    const trackerBtn = button as HTMLElement;\n    trackerBtn.classList.add(\"spinner-container--active\");\n    trackerBtn.innerHTML = `<span class=\"spinner-container__spinner spinner-container--active !tw-mr-2 !tw-border-blue !tw-border-b-white\"></span>${window.gettext(\n      \"Save\",\n    )}`;\n  });\n}\n\nfunction markAsIdle(buttons: NodeListOf<Element>) {\n  buttons.forEach((button) => {\n    const trackerBtn = button as HTMLElement;\n    trackerBtn.classList.remove(\"spinner-container--active\");\n    trackerBtn.innerHTML = `<img class=\"tw-btn-icon\" src=\"/static/img/icons/bookmark-add.svg\" />${window.gettext(\n      \"Save\",\n    )}`;\n  });\n}\n\nfunction markAsSuccess(buttons: NodeListOf<Element>) {\n  buttons.forEach((button) => {\n    const trackerBtn = button as HTMLElement;\n    const pageInnerWidth = window.innerWidth;\n    const tailwindMidBreakpoint = 720;\n    if (pageInnerWidth >= tailwindMidBreakpoint) {\n      trackerBtn.innerHTML = `<img class=\"tw-btn-icon group-hover:tw-hidden\" src=\"/static/img/icons/bookmark-added.svg\" /><img class=\"tw-btn-icon tw-hidden group-hover:tw-block\" src=\"/static/img/icons/bookmark-remove.svg\" />${window.gettext(\n        \"Saved\",\n      )}`;\n    } else {\n      trackerBtn.innerHTML = `<img class=\"tw-btn-icon\" src=\"/static/img/icons/bookmark-added.svg\" />${window.gettext(\n        \"Saved\",\n      )}`;\n    }\n  });\n}\n\nfunction addDataAlertId(buttons: NodeListOf<Element>, alertId: number) {\n  buttons.forEach((button) => {\n    const trackerBtn = button as HTMLElement;\n    trackerBtn.setAttribute(\"data-alert-id\", `${alertId}`);\n    trackerBtn.setAttribute(\"data-saved-to-tracker\", \"true\");\n  });\n}\n\nfunction removeDataAlertId(buttons: NodeListOf<Element>) {\n  buttons.forEach((button) => {\n    const trackerBtn = button as HTMLElement;\n    trackerBtn.removeAttribute(\"data-alert-id\");\n    trackerBtn.setAttribute(\"data-saved-to-tracker\", \"false\");\n  });\n}\n\nfunction showAlert(alertEl: HTMLElement) {\n  // Scroll to top and show the alert.\n  window.scrollTo(0, 0);\n  setTimeout(() => {\n    alertEl.classList.add(\"show\");\n    alertEl.classList.remove(\"not-show\");\n  }, 40);\n}\n\nfunction successAlert(content: string) {\n  // Populate alert content.\n  const alertEl = document.querySelector(\n    \".page-alert-container .alert.alert-success.javascript\",\n  ) as HTMLElement;\n  alertEl.innerHTML = content;\n  alertEl.classList.add(\"!tw-mb-0\", \"!tw-rounded-none\");\n  alertEl.parentElement?.classList.remove(\"bn-header-container\");\n  showAlert(alertEl);\n}\n\nfunction dangerAlert(content: string) {\n  // Populate alert content.\n  const alertEl = document.querySelector(\n    \".page-alert-container .alert.alert-danger.javascript\",\n  ) as HTMLElement;\n  alertEl.innerHTML = content;\n  alertEl.classList.add(\"!tw-mb-0\", \"!tw-rounded-none\");\n  alertEl.parentElement?.classList.remove(\"bn-header-container\");\n  showAlert(alertEl);\n}\n\nfunction addToTrackerSuccess(title: string, url: string) {\n  let nodeTitle = `<strong>${title}</strong>`;\n  if (url) {\n    nodeTitle = `<a href=\"${url}\" class=\"alert-link\">${title}</a>`;\n  }\n\n  successAlert(addedMsg(nodeTitle));\n}\n\nfunction removedFromTrackerSuccess(title: string, url: string) {\n  let nodeTitle = `<strong>${title}</strong>`;\n  if (url) {\n    nodeTitle = `<a href=\"${url}\" class=\"alert-link\">${title}</a>`;\n  }\n\n  successAlert(removedMsg(nodeTitle));\n}\n\nfunction addToTrackerError(statusText: string) {\n  dangerAlert(errorMsg(statusText));\n}\n\n// ////////////\n// Ajax.\n// ////////////\n\nfunction postToTracker(requestUrl: string, apiId: APIID, node: NodeWrapper) {\n  const trackerBtns = document.querySelectorAll(`[data-id=\"${node.id}\"]`);\n\n  markAsInProgress(trackerBtns);\n\n  axios\n    .post(requestUrl, { [apiId.key]: apiId.id })\n    .then((response) => {\n      markAsSuccess(trackerBtns);\n      addToTrackerSuccess(node.name, node.url);\n      addDataAlertId(trackerBtns, response.data.id);\n    })\n    .catch(({ response }) => {\n      addToTrackerError(response ? response.statusText : \"No response data\");\n      markAsIdle(trackerBtns);\n    });\n}\n\nfunction patchToTracker(requestUrl: string, node: NodeWrapper) {\n  const trackerBtns = document.querySelectorAll<HTMLElement>(\n    `[data-id=\"${node.id}\"]`,\n  );\n\n  markAsInProgress(trackerBtns);\n\n  axios\n    .patch(requestUrl, { deleted: true })\n    .then(() => {\n      markAsIdle(trackerBtns);\n      removedFromTrackerSuccess(node.name, node.url);\n      removeDataAlertId(trackerBtns);\n    })\n    .catch(({ response }) => {\n      addToTrackerError(response ? response.statusText : \"No response data\");\n    });\n}\n\nfunction addToTracker(nodeData: NodeWrapper) {\n  postToTracker(\n    nodeData.contentType === \"job\"\n      ? BrightNetwork.jobAlertUrl\n      : BrightNetwork.eventAlertUrl,\n    { key: nodeData.contentType, id: parseInt(nodeData.id, 10) },\n    nodeData,\n  );\n}\n\nfunction removeFromTracker(nodeData: NodeWrapper) {\n  patchToTracker(\n    nodeData.contentType === \"job\"\n      ? `${BrightNetwork.jobAlertUrl}${nodeData.alertId}/`\n      : `${BrightNetwork.eventAlertUrl}${nodeData.alertId}/`,\n    nodeData,\n  );\n}\n\nfunction handleTrackerBtnClick(node: DOMStringMap) {\n  const dataset: NodeWrapper = JSON.parse(JSON.stringify(node));\n\n  if (\n    dataset.contentType &&\n    (dataset.contentType === \"job\" || dataset.contentType === \"event\")\n  ) {\n    if (node.savedToTracker?.toLowerCase() === \"true\") {\n      removeFromTracker(dataset);\n    } else {\n      addToTracker(dataset);\n    }\n  }\n}\n\n// /////////////////\n// Event Listener.\n// /////////////////\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  document\n    .querySelectorAll<HTMLElement>(\".save-to-tracker-btn\")\n    .forEach((el) => {\n      const addButton = el;\n\n      if (BrightNetwork.userIsAuthenticated) {\n        addButton.onclick = (e) => {\n          if (!(e.target instanceof HTMLElement)) {\n            return;\n          }\n\n          // if the icon is clicked on, get its parent element\n          // (which has the data attributes we need)\n          let anchorElement: HTMLElement;\n          if (\n            e.target.classList.contains(\"tw-btn-icon\") &&\n            e.target.parentElement\n          ) {\n            anchorElement = e.target.parentElement;\n          } else {\n            anchorElement = e.target;\n          }\n\n          e.preventDefault();\n          handleTrackerBtnClick(anchorElement.dataset);\n          e.stopPropagation();\n        };\n      } else {\n        addButton.onclick = (e) => {\n          if (!(e.target instanceof HTMLElement)) {\n            return;\n          }\n\n          e.preventDefault();\n          // This allows the user to interact with the search results \"add to calendar\" button without triggering the redirect to the search result.\n          e.stopPropagation();\n        };\n\n        tippy(addButton, {\n          theme: \"bn-custom\",\n          trigger: \"click\",\n          allowHTML: true,\n          placement: \"top\",\n          interactive: true,\n        });\n      }\n    });\n});\n"],"names":["Object","document","setTimeout","clearTimeout","window","Reflect","Proxy","Date","e","Function","arguments","Map","TypeError","ReferenceError","Array","i","t","parseFloat","HTMLElement","s","r","p","Math","c","a","parseInt","Number","getComputedStyle","Error","isFinite","n","d","ResizeObserver","SuccessStories","svg","swiperBaseOptions","Swiper","waitForElement","selector","parentElement","Promise","resolve","observer","MutationObserver","el","performance","JSON","cancelAnimationFrame","requestAnimationFrame","Boolean","o","api","axios","config","token","error","console","addedMsg","nodeTitle","removedMsg","errorMsg","statusText","markAsInProgress","buttons","button","trackerBtn","markAsIdle","showAlert","alertEl","successAlert","content","addToTrackerError","alertElement","BrightNetwork","addButton","anchorElement","handleTrackerBtnClick","node","dataset","removeFromTracker","requestUrl","nodeData","trackerBtns","title","url","response","postToTracker","apiId","alertId","pageInnerWidth","tippy"],"mappings":"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"}