{"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":""}