{"version":3,"sources":["../node_modules/ssr-window/ssr-window.esm.js","../node_modules/swiper/esm/react/utils.js","../node_modules/dom7/dom7.esm.js","../node_modules/swiper/esm/utils/dom.js","../node_modules/swiper/esm/utils/get-support.js","../node_modules/swiper/esm/utils/get-device.js","../node_modules/swiper/esm/utils/get-browser.js","../node_modules/swiper/swiper.esm.js","../node_modules/swiper/esm/utils/utils.js","../node_modules/swiper/esm/react/swiper-slide.js","../node_modules/swiper/esm/react/params-list.js","../node_modules/swiper/esm/react/loop.js","../node_modules/swiper/esm/react/use-isomorphic-layout-effect.js","../node_modules/swiper/esm/react/swiper.js","../node_modules/swiper/esm/react/get-params.js","../node_modules/swiper/esm/react/get-children.js","../node_modules/swiper/esm/react/get-changed-params.js","../node_modules/swiper/esm/react/update-swiper.js","../node_modules/swiper/esm/react/virtual.js","../node_modules/swiper/esm/react/init-swiper.js"],"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","o","needsNavigation","params","navigation","nextEl","prevEl","needsPagination","pagination","el","needsScrollbar","scrollbar","uniqueClasses","classNames","classes","split","map","c","trim","filter","unique","indexOf","push","join","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","prototype","toString","call","e","_construct","Parent","args","Class","a","apply","instance","Function","bind","arguments","_wrapNativeSuper","_cache","Map","undefined","fn","TypeError","has","get","set","Wrapper","create","value","enumerable","writable","configurable","Dom7","_Array","subClass","superClass","items","_this","proto","defineProperty","makeReactive","self","ReferenceError","_assertThisInitialized","concat","Array","arrayFlat","arr","res","isArray","arrayFilter","$","selector","context","html","toCreate","tempParent","innerHTML","i","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","shortcut","name","_len","_key","trigger","on","Methods","addClass","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","className","contains","toggleClass","_len3","_key3","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","j","events","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","splice","dom7proxy","_len9","_key9","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","parseFloat","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","_prop","each","index","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","find","foundElements","found","removeChild","methodName","support","device","browser","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","_temp","platform","ua","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","toLowerCase","isWebView","test","calcBrowser","_defineProperties","descriptor","_extends","assign","source","hasOwnProperty","onTouchStart","touchEventsData","touches","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","type","which","button","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","now","updateSize","swipeDirection","threshold","allowThresholdMove","preventDefault","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","emit","onTouchMove","rtl","rtlTranslate","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","loop","isVertical","translate","maxTranslate","minTranslate","diffX","diffY","Math","sqrt","pow","touchAngle","isHorizontal","atan2","abs","PI","cssMode","touchMoveStopPropagation","nested","stopPropagation","loopFix","startTranslate","getTranslate","setTransition","$wrapperEl","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","position","time","updateProgress","setTranslate","onTouchEnd","swiper","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","nextTick","destroyed","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","run","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","progress","dummyEventAttached","dummyEventListener","defaults","init","direction","initialSlide","updateOnWindowResize","url","autoHeight","setWrapperSize","virtualTranslate","effect","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","modular","useParams","instanceParams","modules","moduleName","module","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","method","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","slice","eventsArray","update","$el","clientWidth","clientHeight","parseInt","Number","isNaN","size","swiperSize","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","slidesForMargin","slideEl","slideIndex","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","replace","virtualSize","marginLeft","marginTop","marginRight","marginBottom","floor","ceil","max","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","_boxSizing","swiperSlideSize","_i","slidesGridItem","_i2","_slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","initialized","slideFound","clickedSlide","clickedIndex","axis","byController","x","y","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","t","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","start","move","end","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","sort","b","_points$i","innerWidth","wasLocked","lastSlidePosition","addClasses","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","prototypeGroup","protoMethod","moduleParamName","swiperParams","passedParams","eventName","swipers","containerEl","newParams","shadowRoot","options","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","protoProps","staticProps","_proto","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","destroy","deleteInstance","cleanStyles","deleteProps","extendDefaults","newDefaults","installModule","use","m","Observer","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","observe","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","components","resize","resizeHandler","orientationChangeHandler","bindModuleMethods","object","delay","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","subKey","SwiperSlide","forwardRef","externalRef","_ref","_ref$tag","tag","Tag","_ref$className","zoom","rest","excluded","sourceKeys","_objectWithoutPropertiesLoose","slideElRef","useRef","_useState","useState","slideClasses","setSlideClasses","updateClasses","current","useEffect","React","ref","displayName","paramsList","calcLoopedSlides","useIsomorphicLayoutEffect","deps","useLayoutEffect","externalElRef","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","containerClasses","setContainerClasses","_useState2","virtualData","setVirtualData","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","allowedParams","getParams","restProps","_getChildren","slots","processChildren","Children","toArray","Fragment","slot","getChildren","changedParams","oldParams","oldChildren","oldChildrenKeys","childrenKeys","getChangedParams","_containerClasses","_swiper","cache","renderExternal","renderExternalUpdate","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","updateParams","currentParams","thumbs","includes","controller","control","render","updateSwiper","lazy","load","paginationEl","scrollbarEl","initSwiper","from","cloneElement","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop"],"mappings":"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","file":"static/js/0.c81628a4.chunk.js","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","function isObject(o) {\n  return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend(target, src) {\n  Object.keys(src).forEach(function (key) {\n    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n      extend(target[key], src[key]);\n    } else {\n      target[key] = src[key];\n    }\n  });\n}\n\nfunction needsNavigation(params) {\n  if (params === void 0) {\n    params = {};\n  }\n\n  return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params) {\n  if (params === void 0) {\n    params = {};\n  }\n\n  return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params) {\n  if (params === void 0) {\n    params = {};\n  }\n\n  return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n  if (classNames === void 0) {\n    classNames = '';\n  }\n\n  var classes = classNames.split(' ').map(function (c) {\n    return c.trim();\n  }).filter(function (c) {\n    return !!c;\n  });\n  var unique = [];\n  classes.forEach(function (c) {\n    if (unique.indexOf(c) < 0) unique.push(c);\n  });\n  return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/**\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  $.fn[methodName] = Methods[methodName];\n});\nexport default $;","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'];\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 * Swiper 6.0.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2020 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: July 9, 2020\n */\n\nimport $ from './esm/utils/dom';\nimport { extend, getTranslate, nextTick, now, deleteProps, bindModuleMethods } from './esm/utils/utils';\nimport { getSupport } from './esm/utils/get-support';\nimport { getDevice } from './esm/utils/get-device';\nimport { getBrowser } from './esm/utils/get-browser';\nimport { getWindow, getDocument } from 'ssr-window';\nexport { default as Virtual } from './esm/components/virtual/virtual';\nexport { default as Keyboard } from './esm/components/keyboard/keyboard';\nexport { default as Mousewheel } from './esm/components/mousewheel/mousewheel';\nexport { default as Navigation } from './esm/components/navigation/navigation';\nexport { default as Pagination } from './esm/components/pagination/pagination';\nexport { default as Scrollbar } from './esm/components/scrollbar/scrollbar';\nexport { default as Parallax } from './esm/components/parallax/parallax';\nexport { default as Zoom } from './esm/components/zoom/zoom';\nexport { default as Lazy } from './esm/components/lazy/lazy';\nexport { default as Controller } from './esm/components/controller/controller';\nexport { default as A11y } from './esm/components/a11y/a11y';\nexport { default as History } from './esm/components/history/history';\nexport { default as HashNavigation } from './esm/components/hash-navigation/hash-navigation';\nexport { default as Autoplay } from './esm/components/autoplay/autoplay';\nexport { default as EffectFade } from './esm/components/effect-fade/effect-fade';\nexport { default as EffectCube } from './esm/components/effect-cube/effect-cube';\nexport { default as EffectFlip } from './esm/components/effect-flip/effect-flip';\nexport { default as EffectCoverflow } from './esm/components/effect-coverflow/effect-coverflow';\nexport { default as Thumbs } from './esm/components/thumbs/thumbs';\n\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nvar modular = {\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};\n\n/* eslint-disable no-underscore-dangle */\nvar eventsEmitter = {\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.eventsListeners && self.eventsListeners[event]) {\n        var handlers = [];\n        self.eventsListeners[event].forEach(function (eventHandler) {\n          handlers.push(eventHandler);\n        });\n        handlers.forEach(function (eventHandler) {\n          eventHandler.apply(context, data);\n        });\n      }\n    });\n    return self;\n  }\n};\n\nfunction 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.width !== 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}\n\nfunction updateSlides() {\n  var swiper = this;\n  var window = getWindow();\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\n  function slidesForMargin(slideEl, slideIndex) {\n    if (!params.cssMode) return true;\n\n    if (slideIndex === slides.length - 1) {\n      return false;\n    }\n\n    return true;\n  }\n\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.snapGrid.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    marginTop: ''\n  });else slides.css({\n    marginRight: '',\n    marginBottom: ''\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(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), 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 = window.getComputedStyle(slide[0], null);\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        if (swiper.isHorizontal()) {\n          var width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n          var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n          var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n          var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n          var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\n          var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n          if (boxSizing && boxSizing === 'border-box') {\n            slideSize = width + marginLeft + marginRight;\n          } else {\n            slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n          }\n        } else {\n          var height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n          var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n          var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n          var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n          var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n\n          var _boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n          if (_boxSizing && _boxSizing === 'border-box') {\n            slideSize = height + marginTop + marginBottom;\n          } else {\n            slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n          }\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        if (swiper.isHorizontal()) {\n          slides[i].style.width = slideSize + \"px\";\n        } else {\n          slides[i].style.height = slideSize + \"px\";\n        }\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    if (swiper.isHorizontal()) $wrapperEl.css({\n      width: swiper.virtualSize + params.spaceBetween + \"px\"\n    });else $wrapperEl.css({\n      height: swiper.virtualSize + params.spaceBetween + \"px\"\n    });\n  }\n\n  if (params.slidesPerColumn > 1) {\n    swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n    swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n    if (swiper.isHorizontal()) $wrapperEl.css({\n      width: swiper.virtualSize + params.spaceBetween + \"px\"\n    });else $wrapperEl.css({\n      height: swiper.virtualSize + params.spaceBetween + \"px\"\n    });\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    if (swiper.isHorizontal()) {\n      if (rtl) slides.filter(slidesForMargin).css({\n        marginLeft: spaceBetween + \"px\"\n      });else slides.filter(slidesForMargin).css({\n        marginRight: spaceBetween + \"px\"\n      });\n    } else slides.filter(slidesForMargin).css({\n      marginBottom: spaceBetween + \"px\"\n    });\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}\n\nfunction updateAutoHeight(speed) {\n  var swiper = this;\n  var activeSlides = [];\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  } // 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) break;\n        activeSlides.push(swiper.slides.eq(index)[0]);\n      }\n    }\n  } else {\n    activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\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}\n\nfunction 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}\n\nfunction 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}\n\nfunction 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}\n\nfunction 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}\n\nfunction 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}\n\nfunction 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\n  if (slide) {\n    for (var i = 0; i < swiper.slides.length; i += 1) {\n      if (swiper.slides[i] === slide) slideFound = true;\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 = $(slide).index();\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}\n\nvar update = {\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};\n\nfunction 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}\n\nfunction 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}\n\nfunction minTranslate() {\n  return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n  return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction 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}\n\nvar translate = {\n  getTranslate: getSwiperTranslate,\n  setTranslate: setTranslate,\n  minTranslate: minTranslate,\n  maxTranslate: maxTranslate,\n  translateTo: translateTo\n};\n\nfunction 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}\n\nfunction 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}\n\nfunction 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}\n\nvar transition = {\n  setTransition: setTransition,\n  transitionStart: transitionStart,\n  transitionEnd: transitionEnd\n};\n\nfunction slideTo(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 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\n  if (swiper.animating && params.preventInteractionOnTransition) {\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      if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\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}\n\nfunction 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}\n\n/* eslint no-unused-vars: \"off\" */\nfunction 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  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}\n\n/* eslint no-unused-vars: \"off\" */\nfunction 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\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 currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\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}\n\n/* eslint no-unused-vars: \"off\" */\nfunction 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}\n\n/* eslint no-unused-vars: \"off\" */\nfunction 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}\n\nfunction 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}\n\nvar slide = {\n  slideTo: slideTo,\n  slideToLoop: slideToLoop,\n  slideNext: slideNext,\n  slidePrev: slidePrev,\n  slideReset: slideReset,\n  slideToClosest: slideToClosest,\n  slideToClickedSlide: slideToClickedSlide\n};\n\nfunction 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}\n\nfunction 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}\n\nfunction 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}\n\nvar loop = {\n  loopCreate: loopCreate,\n  loopFix: loopFix,\n  loopDestroy: loopDestroy\n};\n\nfunction 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}\n\nfunction 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}\n\nvar grabCursor = {\n  setGrabCursor: setGrabCursor,\n  unsetGrabCursor: unsetGrabCursor\n};\n\nfunction 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}\n\nfunction 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}\n\nfunction 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}\n\nfunction 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}\n\nfunction 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}\n\nvar manipulation = {\n  appendSlide: appendSlide,\n  prependSlide: prependSlide,\n  addSlide: addSlide,\n  removeSlide: removeSlide,\n  removeAllSlides: removeAllSlides\n};\n\nfunction 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\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;\n\n  if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[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.screen.width - edgeSwipeThreshold)) {\n    return;\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.formElements)) preventDefault = false;\n\n    if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n      document.activeElement.blur();\n    }\n\n    var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n    if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n      e.preventDefault();\n    }\n  }\n\n  swiper.emit('touchStart', e);\n}\n\nfunction 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  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.formElements)) {\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  } // 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}\n\nfunction 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  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.updateProgress(newPosition);\n      }\n\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    } else if (params.freeModeSticky) {\n      swiper.slideToClosest();\n      return;\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}\n\nfunction 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}\n\nfunction onClick(e) {\n  var swiper = this;\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}\n\nfunction onScroll() {\n  var swiper = this;\n  var wrapperEl = swiper.wrapperEl,\n      rtlTranslate = swiper.rtlTranslate;\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}\n\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\nvar events = {\n  attachEvents: attachEvents,\n  detachEvents: detachEvents\n};\n\nfunction 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);\n\n  if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\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\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 === '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    extend(swiper, {\n      allowTouchMove: swiper.params.allowTouchMove,\n      allowSlideNext: swiper.params.allowSlideNext,\n      allowSlidePrev: swiper.params.allowSlidePrev\n    });\n    swiper.currentBreakpoint = breakpoint;\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  }\n}\n\nfunction getBreakpoints(breakpoints) {\n  var window = getWindow(); // Get breakpoint for window width\n\n  if (!breakpoints) return undefined;\n  var breakpoint = false;\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 = window.innerHeight * 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 (value <= window.innerWidth) {\n      breakpoint = point;\n    }\n  }\n\n  return breakpoint || 'max';\n}\n\nvar breakpoints = {\n  setBreakpoint: setBreakpoint,\n  getBreakpoint: getBreakpoints\n};\n\nfunction 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  var suffixes = [];\n  suffixes.push('initialized');\n  suffixes.push(params.direction);\n\n  if (params.freeMode) {\n    suffixes.push('free-mode');\n  }\n\n  if (params.autoHeight) {\n    suffixes.push('autoheight');\n  }\n\n  if (rtl) {\n    suffixes.push('rtl');\n  }\n\n  if (params.slidesPerColumn > 1) {\n    suffixes.push('multirow');\n\n    if (params.slidesPerColumnFill === 'column') {\n      suffixes.push('multirow-column');\n    }\n  }\n\n  if (device.android) {\n    suffixes.push('android');\n  }\n\n  if (device.ios) {\n    suffixes.push('ios');\n  }\n\n  if (params.cssMode) {\n    suffixes.push('css-mode');\n  }\n\n  suffixes.forEach(function (suffix) {\n    classNames.push(params.containerModifierClass + suffix);\n  });\n  $el.addClass(classNames.join(' '));\n  swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n  var swiper = this;\n  var $el = swiper.$el,\n      classNames = swiper.classNames;\n  $el.removeClass(classNames.join(' '));\n  swiper.emitContainerClasses();\n}\n\nvar classes = {\n  addClasses: addClasses,\n  removeClasses: removeClasses\n};\n\nfunction 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}\n\nfunction 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}\n\nvar images = {\n  loadImage: loadImage,\n  preloadImages: preloadImages\n};\n\nfunction 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\nvar checkOverflow$1 = {\n  checkOverflow: checkOverflow\n};\n\nvar defaults = {\n  init: true,\n  direction: 'horizontal',\n  touchEventsTarget: 'container',\n  initialSlide: 0,\n  speed: 300,\n  cssMode: false,\n  updateOnWindowResize: true,\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  // 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};\n\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$1,\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 && args[0].constructor === 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; // Swiper Instance\n\n    var swiper = this;\n    swiper.support = getSupport();\n    swiper.device = getDevice({\n      userAgent: params.userAgent\n    });\n    swiper.browser = getBrowser();\n    swiper.eventsListeners = {};\n    swiper.eventsAnyListeners = [];\n    Object.keys(prototypes).forEach(function (prototypeGroup) {\n      Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n        if (!Swiper.prototype[protoMethod]) {\n          Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n        }\n      });\n    });\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        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    } // Save Dom lib\n\n\n    swiper.$ = $; // Find el\n\n    var $el = $(swiper.params.el);\n    el = $el[0];\n\n    if (!el) {\n      return undefined;\n    }\n\n    if ($el.length > 1) {\n      var swipers = [];\n      $el.each(function (containerEl) {\n        var newParams = extend({}, params, {\n          el: containerEl\n        });\n        swipers.push(new Swiper(newParams));\n      });\n      return swipers;\n    }\n\n    el.swiper = swiper; // Find Wrapper\n\n    var $wrapperEl;\n\n    if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n      $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n      $wrapperEl.children = function (options) {\n        return $el.children(options);\n      };\n    } else {\n      $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n    } // Extend Swiper\n\n\n    extend(swiper, {\n      $el: $el,\n      el: el,\n      $wrapperEl: $wrapperEl,\n      wrapperEl: $wrapperEl[0],\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      // 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      // 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        formElements: 'input, select, option, textarea, button, video, label',\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.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.emitSlidesClasses = function emitSlidesClasses() {\n    var swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    swiper.slides.each(function (slideEl) {\n      var classes = slideEl.className.split(' ').filter(function (className) {\n        return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n      });\n      swiper.emit('_slideClass', slideEl, classes.join(' '));\n    });\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.init = function init() {\n    var swiper = this;\n    if (swiper.initialized) return;\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) {\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);\n    } else {\n      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n    } // Attach events\n\n\n    swiper.attachEvents(); // Init Flag\n\n    swiper.initialized = true; // Emit\n\n    swiper.emit('init');\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\nvar Resize = {\n  name: 'resize',\n  create: function create() {\n    var swiper = this;\n    extend(swiper, {\n      resize: {\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(); // Emit resize\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      window.removeEventListener('resize', swiper.resize.resizeHandler);\n      window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n    }\n  }\n};\n\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};\nvar Observer$1 = {\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(_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};\n\n// Swiper Class\nvar components = [Resize, Observer$1];\nSwiper.use(components);\n\nexport default Swiper;\nexport { Swiper };\n","import { 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 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 = window.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 && o.constructor === Object;\n}\n\nfunction extend() {\n  var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\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) {\n      var keysArray = Object.keys(Object(nextSource));\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            extend(to[nextKey], nextSource[nextKey]);\n          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n            to[nextKey] = {};\n            extend(to[nextKey], nextSource[nextKey]);\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\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods };","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\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useRef, useEffect, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils';\nvar SwiperSlide = forwardRef(function (_temp, externalRef) {\n  var _ref = _temp === void 0 ? {} : _temp,\n      _ref$tag = _ref.tag,\n      Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n      children = _ref.children,\n      _ref$className = _ref.className,\n      className = _ref$className === void 0 ? '' : _ref$className,\n      swiper = _ref.swiper,\n      zoom = _ref.zoom,\n      rest = _objectWithoutPropertiesLoose(_ref, [\"tag\", \"children\", \"className\", \"swiper\", \"zoom\"]);\n\n  var slideElRef = useRef(null);\n\n  var _useState = useState('swiper-slide'),\n      slideClasses = _useState[0],\n      setSlideClasses = _useState[1];\n\n  function updateClasses(swiper, el, classNames) {\n    if (el === slideElRef.current) {\n      setSlideClasses(classNames);\n    }\n  }\n\n  useEffect(function () {\n    if (externalRef) {\n      externalRef.current = slideElRef.current;\n    }\n\n    if (!slideElRef.current || !swiper) return;\n\n    if (swiper.destroyed) {\n      if (slideClasses !== 'swiper-slide') {\n        setSlideClasses('swiper-slide');\n      }\n\n      return;\n    }\n\n    swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n    return function () {\n      if (!swiper) return;\n      swiper.off('_slideClass', updateClasses);\n    };\n  });\n  return /*#__PURE__*/React.createElement(Tag, _extends({\n    ref: slideElRef,\n    className: uniqueClasses(\"\" + slideClasses + (className ? \" \" + className : ''))\n  }, rest), zoom ? /*#__PURE__*/React.createElement(\"div\", {\n    className: \"swiper-zoom-container\",\n    \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n  }, children) : children);\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","/* underscore in name -> watch for changes */\nvar paramsList = ['init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_freeModeMomentum', '_freeModeMomentumRatio', '_freeModeMomentumBounce', '_freeModeMomentumBounceRatio', '_freeModeMomentumVelocityRatio', '_freeModeSticky', '_freeModeMinimumVelocity', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_slidesPerColumn', '_slidesPerColumnFill', '_slidesPerGroup', '_slidesPerGroupSkip', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_watchSlidesVisibility', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n  var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || swiperParams.slidesPerView, 10));\n  loopedSlides += swiperParams.loopAdditionalSlides;\n\n  if (loopedSlides > slides.length) {\n    loopedSlides = slides.length;\n  }\n\n  return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n  var modifiedSlides = slides.map(function (child, index) {\n    return React.cloneElement(child, {\n      swiper: swiper,\n      'data-swiper-slide-index': index\n    });\n  });\n\n  function duplicateSlide(child, index, position) {\n    return React.cloneElement(child, {\n      key: child.key + \"-duplicate-\" + index + \"-\" + position,\n      className: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass\n    });\n  }\n\n  if (swiperParams.loopFillGroupWithBlank) {\n    var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n    if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n      for (var i = 0; i < blankSlidesNum; i += 1) {\n        var blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n          className: swiperParams.slideClass + \" \" + swiperParams.slideBlankClass\n        });\n        modifiedSlides.push(blankSlide);\n      }\n    }\n  }\n\n  if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n    swiperParams.loopedSlides = modifiedSlides.length;\n  }\n\n  var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n  var prependSlides = [];\n  var appendSlides = [];\n  modifiedSlides.forEach(function (child, index) {\n    if (index < loopedSlides) {\n      appendSlides.push(duplicateSlide(child, index, 'prepend'));\n    }\n\n    if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n      prependSlides.push(duplicateSlide(child, index, 'append'));\n    }\n  });\n\n  if (swiper) {\n    swiper.loopedSlides = loopedSlides;\n  }\n\n  return [].concat(prependSlides, modifiedSlides, appendSlides);\n}\n\nexport { calcLoopedSlides, renderLoop };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n  // eslint-disable-next-line\n  if (typeof window === 'undefined') return useEffect(callback, deps);\n  return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","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\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params';\nimport { initSwiper } from './init-swiper';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses } from './utils';\nimport { renderLoop, calcLoopedSlides } from './loop';\nimport { getChangedParams } from './get-changed-params';\nimport { getChildren } from './get-children';\nimport { updateSwiper } from './update-swiper';\nimport { renderVirtual, updateOnVirtualData } from './virtual';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar Swiper = forwardRef(function (_temp, externalElRef) {\n  var _ref = _temp === void 0 ? {} : _temp,\n      className = _ref.className,\n      _ref$tag = _ref.tag,\n      Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n      _ref$wrapperTag = _ref.wrapperTag,\n      WrapperTag = _ref$wrapperTag === void 0 ? 'div' : _ref$wrapperTag,\n      children = _ref.children,\n      onSwiper = _ref.onSwiper,\n      rest = _objectWithoutPropertiesLoose(_ref, [\"className\", \"tag\", \"wrapperTag\", \"children\", \"onSwiper\"]);\n\n  var _useState = useState('swiper-container'),\n      containerClasses = _useState[0],\n      setContainerClasses = _useState[1];\n\n  var _useState2 = useState(null),\n      virtualData = _useState2[0],\n      setVirtualData = _useState2[1];\n\n  var initializedRef = useRef(false);\n  var swiperElRef = useRef(null);\n  var swiperRef = useRef(null);\n  var oldPassedParamsRef = useRef(null);\n  var oldSlides = useRef(null);\n  var nextElRef = useRef(null);\n  var prevElRef = useRef(null);\n  var paginationElRef = useRef(null);\n  var scrollbarElRef = useRef(null);\n\n  var _getParams = getParams(rest),\n      swiperParams = _getParams.params,\n      passedParams = _getParams.passedParams,\n      restProps = _getParams.rest;\n\n  var _getChildren = getChildren(children),\n      slides = _getChildren.slides,\n      slots = _getChildren.slots;\n\n  var changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n  oldPassedParamsRef.current = passedParams;\n  oldSlides.current = slides;\n  Object.assign(swiperParams.on, {\n    _containerClasses: function _containerClasses(swiper, classes) {\n      setContainerClasses(classes);\n    },\n    _swiper: function _swiper(swiper) {\n      swiper.loopCreate = function () {};\n\n      swiper.loopDestroy = function () {};\n\n      if (swiperParams.loop) {\n        swiper.loopedSlides = calcLoopedSlides(slides, swiperParams);\n      }\n\n      swiperRef.current = swiper;\n\n      if (swiper.virtual && swiper.params.virtual.enabled) {\n        swiper.virtual.slides = slides;\n        swiper.params.virtual.cache = false;\n        swiper.params.virtual.renderExternal = setVirtualData;\n        swiper.params.virtual.renderExternalUpdate = false;\n      }\n    }\n  }); // set initialized flag\n\n  useEffect(function () {\n    if (!initializedRef.current && swiperRef.current) {\n      swiperRef.current.emitSlidesClasses();\n      initializedRef.current = true;\n    }\n  }); // watch for params change\n\n  useIsomorphicLayoutEffect(function () {\n    if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n      updateSwiper(swiperRef.current, slides, passedParams, changedParams);\n    }\n  }); // update on virtual update\n\n  useIsomorphicLayoutEffect(function () {\n    updateOnVirtualData(swiperRef.current);\n  }, [virtualData]); // init swiper\n\n  useIsomorphicLayoutEffect(function () {\n    if (externalElRef) {\n      externalElRef.current = swiperElRef.current;\n    }\n\n    if (!swiperElRef.current) return;\n    initSwiper({\n      el: swiperElRef.current,\n      nextEl: nextElRef.current,\n      prevEl: prevElRef.current,\n      paginationEl: paginationElRef.current,\n      scrollbarEl: scrollbarElRef.current\n    }, swiperParams);\n    if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n    return function () {\n      if (swiperRef.current && !swiperRef.current.destroyed) {\n        swiperRef.current.destroy();\n      }\n    };\n  }, []); // bypass swiper instance to slides\n\n  function renderSlides() {\n    if (swiperParams.virtual) {\n      return renderVirtual(swiperRef.current, slides, virtualData);\n    }\n\n    if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n      return slides.map(function (child) {\n        return React.cloneElement(child, {\n          swiper: swiperRef.current\n        });\n      });\n    }\n\n    return renderLoop(swiperRef.current, slides, swiperParams);\n  }\n\n  return /*#__PURE__*/React.createElement(Tag, _extends({\n    ref: swiperElRef,\n    className: uniqueClasses(\"\" + containerClasses + (className ? \" \" + className : ''))\n  }, restProps), slots['container-start'], needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n    ref: prevElRef,\n    className: \"swiper-button-prev\"\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    ref: nextElRef,\n    className: \"swiper-button-next\"\n  })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n    ref: scrollbarElRef,\n    className: \"swiper-scrollbar\"\n  }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n    ref: paginationElRef,\n    className: \"swiper-pagination\"\n  }), /*#__PURE__*/React.createElement(WrapperTag, {\n    className: \"swiper-wrapper\"\n  }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { isObject, extend } from './utils';\nimport { paramsList } from './params-list';\n\nfunction getParams(obj) {\n  if (obj === void 0) {\n    obj = {};\n  }\n\n  var params = {\n    _emitClasses: true,\n    on: {}\n  };\n  var passedParams = {};\n  extend(params, Swiper.defaults);\n  extend(params, Swiper.extendedDefaults);\n  var rest = {};\n  var allowedParams = paramsList.map(function (key) {\n    return key.replace(/_/, '');\n  });\n  Object.keys(obj).forEach(function (key) {\n    if (allowedParams.indexOf(key) >= 0) {\n      if (isObject(obj[key])) {\n        params[key] = {};\n        passedParams[key] = {};\n        extend(params[key], obj[key]);\n        extend(passedParams[key], obj[key]);\n      } else {\n        params[key] = obj[key];\n        passedParams[key] = obj[key];\n      }\n    } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n      params.on[\"\" + key[2].toLowerCase() + key.substr(3)] = obj[key];\n    } else {\n      rest[key] = obj[key];\n    }\n  });\n  return {\n    params: params,\n    passedParams: passedParams,\n    rest: rest\n  };\n}\n\nexport { getParams };","import React from 'react';\n\nfunction getChildren(children) {\n  var slides = [];\n  var slots = {\n    'container-start': [],\n    'container-end': [],\n    'wrapper-start': [],\n    'wrapper-end': []\n  };\n\n  function processChildren(c) {\n    React.Children.toArray(c).forEach(function (child) {\n      if (child.type === React.Fragment && child.props.children) {\n        processChildren(child.props.children);\n        return;\n      }\n\n      if (child.type && child.type.displayName === 'SwiperSlide') {\n        slides.push(child);\n      } else if (child.props && child.props.slot && slots[child.props.slot]) {\n        slots[child.props.slot].push(child);\n      } else {\n        slots['container-end'].push(child);\n      }\n    });\n  }\n\n  processChildren(children);\n  return {\n    slides: slides,\n    slots: slots\n  };\n}\n\nexport { getChildren };","import { paramsList } from './params-list';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n  var keys = [];\n  if (!oldParams) return keys;\n  var oldChildrenKeys = oldChildren.map(function (child) {\n    return child.key;\n  });\n  var childrenKeys = children.map(function (child) {\n    return child.key;\n  });\n  if (oldChildrenKeys.join('') !== childrenKeys.join('')) keys.push('children');\n  if (oldChildren.length !== children.length) keys.push('children');\n  var watchParams = paramsList.filter(function (key) {\n    return key[0] === '_';\n  }).map(function (key) {\n    return key.replace(/_/, '');\n  });\n  watchParams.forEach(function (key) {\n    if (key in swiperParams && key in oldParams && swiperParams[key] !== oldParams[key]) {\n      keys.push(key);\n    }\n  });\n  return keys;\n}\n\nexport { getChangedParams };","import { isObject, extend } from './utils';\n\nfunction updateSwiper(swiper, slides, passedParams, changedParams) {\n  var updateParams = changedParams.filter(function (key) {\n    return key !== 'children' && key !== 'direction';\n  });\n  var currentParams = swiper.params,\n      pagination = swiper.pagination,\n      navigation = swiper.navigation,\n      scrollbar = swiper.scrollbar,\n      virtual = swiper.virtual,\n      thumbs = swiper.thumbs;\n  var needThumbsInit;\n  var needControllerInit;\n  var needPaginationInit;\n  var needScrollbarInit;\n  var needNavigationInit;\n\n  if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n    needThumbsInit = true;\n  }\n\n  if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n    needControllerInit = true;\n  }\n\n  if (changedParams.includes('pagination') && passedParams.pagination && passedParams.pagination.el && currentParams.pagination && pagination && !pagination.el) {\n    needPaginationInit = true;\n  }\n\n  if (changedParams.includes('scrollbar') && passedParams.scrollbar && passedParams.scrollbar.el && currentParams.scrollbar && scrollbar && !scrollbar.el) {\n    needScrollbarInit = true;\n  }\n\n  if (changedParams.includes('navigation') && passedParams.navigation && passedParams.navigation.prevEl && passedParams.navigation.nextEl && currentParams.navigation && navigation && !navigation.prevEl && !navigation.nextEl) {\n    needNavigationInit = true;\n  }\n\n  updateParams.forEach(function (key) {\n    if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n      extend(currentParams[key], passedParams[key]);\n    } else {\n      currentParams[key] = passedParams[key];\n    }\n  });\n\n  if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n    virtual.slides = slides;\n    virtual.update(true);\n  }\n\n  if (needThumbsInit) {\n    var initialized = thumbs.init();\n    if (initialized) thumbs.update(true);\n  }\n\n  if (needControllerInit) {\n    swiper.controller.control = currentParams.controller.control;\n  }\n\n  if (needPaginationInit) {\n    pagination.init();\n    pagination.render();\n    pagination.update();\n  }\n\n  if (needScrollbarInit) {\n    scrollbar.init();\n    scrollbar.updateSize();\n    scrollbar.setTranslate();\n  }\n\n  if (needNavigationInit) {\n    navigation.init();\n    navigation.update();\n  }\n\n  if (changedParams.includes('allowSlideNext')) {\n    swiper.allowSlideNext = passedParams.allowSlideNext;\n  }\n\n  if (changedParams.includes('allowSlidePrev')) {\n    swiper.allowSlidePrev = passedParams.allowSlidePrev;\n  }\n\n  if (changedParams.includes('direction')) {\n    swiper.changeDirection(passedParams.direction, false);\n  }\n\n  swiper.update();\n}\n\nexport { updateSwiper };","import React from 'react';\n\nfunction updateOnVirtualData(swiper) {\n  if (!swiper || swiper.destroyed) return;\n  swiper.updateSlides();\n  swiper.updateProgress();\n  swiper.updateSlidesClasses();\n\n  if (swiper.lazy && swiper.params.lazy.enabled) {\n    swiper.lazy.load();\n  }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n  if (!virtualData) return null;\n  var style = swiper.isHorizontal() ? {\n    left: virtualData.offset + \"px\"\n  } : {\n    top: virtualData.offset + \"px\"\n  };\n  return slides.filter(function (child, index) {\n    return index >= virtualData.from && index <= virtualData.to;\n  }).map(function (child) {\n    return React.cloneElement(child, {\n      swiper: swiper,\n      style: style\n    });\n  });\n}\n\nexport { renderVirtual, updateOnVirtualData };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils';\n\nfunction initSwiper(_ref, swiperParams) {\n  var el = _ref.el,\n      nextEl = _ref.nextEl,\n      prevEl = _ref.prevEl,\n      paginationEl = _ref.paginationEl,\n      scrollbarEl = _ref.scrollbarEl;\n\n  if (needsNavigation(swiperParams) && nextEl && prevEl) {\n    if (swiperParams.navigation === true) {\n      swiperParams.navigation = {};\n    }\n\n    swiperParams.navigation.nextEl = nextEl;\n    swiperParams.navigation.prevEl = prevEl;\n  }\n\n  if (needsPagination(swiperParams) && paginationEl) {\n    if (swiperParams.pagination === true) {\n      swiperParams.pagination = {};\n    }\n\n    swiperParams.pagination.el = paginationEl;\n  }\n\n  if (needsScrollbar(swiperParams) && scrollbarEl) {\n    if (swiperParams.scrollbar === true) {\n      swiperParams.scrollbar = {};\n    }\n\n    swiperParams.scrollbar.el = scrollbarEl;\n  }\n\n  return new Swiper(el, swiperParams);\n}\n\nexport { initSwiper };"],"sourceRoot":""}