{"version":3,"sources":["webpack:///./node_modules/@ionic/core/dist/esm-es5/swiper.bundle-8bab85e6.js"],"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","doc","document","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","win","window","Dom7","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","arr","i","$","selector","context","els","tempParent","html_1","trim","indexOf","toCreate","innerHTML","push","match","split","nodeType","unique","uniqueArray","fn","prototype","Class","testDiv","doc$1","win$1","Methods","addClass","className","classes","j","classList","add","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","attrs","value","arguments","getAttribute","attrName","removeAttr","removeAttribute","data","el","dom7ElementDataStorage","transform","elStyle","webkitTransform","transition","duration","webkitTransitionDuration","transitionDuration","on","args","_i","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","apply","parents_1","parents","k","handleEvent","undefined","events","event","dom7LiveListeners","proxyListener","dom7Listeners","off","handlers","handler","dom7proxy","splice","trigger","evt","detail","bubbles","cancelable","filter","dataIndex","dispatchEvent","transitionEnd","callback","dom","fireCallBack","call","outerWidth","includeMargins","styles_1","styles","offsetWidth","parseFloat","outerHeight","styles_2","offsetHeight","offset","box","clientTop","clientLeft","scrollTop","scrollLeft","getBoundingClientRect","scrollY","scrollX","top","left","css","props","prop","each","html","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","index","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","next_1","prev","previousElementSibling","prevAll","prevEls","prev_1","parent","parentNode","parent_1","closest","find","foundElements","found","removeChild","toAdd","Utils","methodName","deleteProps","object","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","parseUrlQuery","url","params","param","query","urlToParse","paramsPart","decodeURIComponent","o","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","Support","touch","Modernizr","maxTouchPoints","DocumentTouch","pointerEvents","pointerEnabled","PointerEvent","prefixedPointerEvents","msPointerEnabled","transforms3d","csstransforms3d","flexbox","observer","passiveListener","supportsPassive","opts","defineProperty","get","gestures","Browser","isIE","isEdge","isSafari","ua","toLowerCase","isUiWebView","test","SwiperClass","priority","method","self","eventsListeners","once","onceHandler","f7proxy","eventHandler","emit","Array","isArray","slice","handlers_1","useModulesParams","instanceParams","instance","modules","moduleName","module","useModules","modulesParams","moduleParams","modulePropName","moduleProp","bind","moduleEventName","create","set","components","use","configurable","installModule","name","proto","static","install","m","eventName","update","updateSize","swiper","$el","width","clientWidth","height","clientHeight","isHorizontal","isVertical","parseInt","size","updateSlides","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetAfter","offsetBefore","slidesOffsetBefore","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","slidesNumberEvenToRows","Math","floor","ceil","slidesPerView","slidesPerColumnFill","max","allSlidesSize_1","allSlidesOffset_1","slidesPerRow","numFullColumns","slideSize","slideStyles","currentTransform","currentWebKitTransform","paddingTop","paddingBottom","boxSizing","slide_1","row","column","newSlideOrderIndex","slidesPerGroup","groupIndex","order","roundLengths","paddingLeft","paddingRight","swiperSlideSize","centeredSlides","abs","effect","setWrapperSize","newSlidesGrid","slidesGridItem","centerInsufficientSlides","slideSizeValue","snap","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","index_1","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","visibleSlides","slideBefore","slideAfter","slide_2","slideProgress","minTranslate","progress","updateProgress","translatesDiff","maxTranslate","isBeginning","wasBeginning","wasEnd","isEnd","updateSlidesClasses","realIndex","nextSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","activeSlide","loop","slideDuplicateClass","prevSlide","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","slide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","x","y","previousTranslate","newProgress","transition$1","transitionStart","runCallbacks","direction","autoHeight","dir","animating","slideTo","internal","slideIndex","preventInteractionOnTransition","initialSlide","allowSlideNext","allowSlidePrev","onSlideToWrapperTransitionEnd","destroyed","slideToLoop","newIndex","loopedSlides","slideNext","loopFix","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","translate_1","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","diff","loopDestroy","grabCursor","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","Device","device","ios","android","androidChrome","desktop","windows","iphone","ipod","ipad","cordova","phonegap","os","osVersion","webView","osVersionArr","metaViewport","minimalUi","pixelRatio","devicePixelRatio","onResize","newTranslate","breakpoints","setBreakpoint","freeMode","min","autoplay","running","paused","run","_super","defaults","init","touchEventsTarget","edgeSwipeDetection","edgeSwipeThreshold","freeModeMomentum","freeModeMomentumRatio","freeModeMomentumBounce","freeModeMomentumBounceRatio","freeModeMomentumVelocityRatio","freeModeSticky","freeModeMinimumVelocity","breakpointsInverse","touchRatio","touchAngle","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","allowTouchMove","threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","resistance","resistanceRatio","preventClicks","preventClicksPropagation","preloadImages","updateOnImagesReady","swipeHandler","noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","wrapperClass","prototypes","attachEvents","touchEvents","wrapperEl","onTouchStart","startX","startY","preventDefault","shouldPreventDefault","touchEventsData","touches","originalEvent","isTouchEvent","type","which","button","isTouched","isMoved","allowClick","currentX","targetTouches","pageX","currentY","pageY","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","formElements","onTouchMove","preventedByNestedSwiper","diffX","diffY","sqrt","pow","atan2","PI","nested","stopPropagation","startTranslate","allowMomentumBounce","disableParentSwiper","velocities","position","time","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","clickTimeout","lastMoveEvent","pop","velocityEvent","distance","velocity","afterBouncePosition_1","momentumDuration","momentumDistance","newPosition","doBounce","bounceAmount","needsLoopFix","stopIndex","groupSize","ratio","onClick","stopImmediatePropagation","start","passive","move","end","detachEvents","breakpoint","breakpointOnlyParams_1","directionChanged","_a","getBreakpoint","currentBreakpoint","paramValue","breakpointParams","originalParams","needsReLoop","changeDirection","points","point","sort","b","innerWidth","wasLocked","navigation","addClasses","classNames","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","complete","image","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","slideEl","destroy","deleteInstance","cleanStyles","extendDefaults","newDefaults","swipers_1","_this","prototypeGroup","protoMethod","swiperParams","moduleParamName","passedParams","containerEl","newParams","touchEventsTouch","touchEventsDesktop","Device$1","Support$1","support","Browser$1","browser","Resize","resize","resizeHandler","orientationChangeHandler","Observer","func","MutationObserver","WebkitMutationObserver","attach","options","mutations","observerUpdate","requestAnimationFrame","observe","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","Observer$1","isSupported","Mousewheel","lastScrollTime","element","implementation","hasFeature","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","handle","mousewheel","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","sensitivity","timeout","autoplayDisableOnInteraction","stop","getTime","returnValue","enable","eventsTarged","disable","Pagination","pagination","current","total","paginationType","bullets","firstIndex_1","lastIndex_1","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleY","scaleX","progressbarFillClass","renderCustom","lockClass","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","hiddenClass","hideOnClick","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","click","Scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","scrollbar","hide","opacity","divider","moveDivider","display","getPointerPosition","clientX","clientY","setDragPosition","dragStartPos","positionRatio","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$slideEl","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","currentScale","minRatio","onGestureEnd","changedTouches","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","newPositionX","newPositionY","momentumDistanceX","momentumDurationX","momentumDurationY","onTransitionEnd","out","in","translateY","zoomedSlideClass","touchY","touchX","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateX","translateMaxY","touchStart","touchEnd","doubleTap","Autoplay","$activeSlideEl","reverseDirection","stopOnLastSlide","pause","waitForTransition","disableOnInteraction","beforeTransitionStart","sliderFirstMove"],"mappings":"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","file":"js/chunk-2d217c19.2806ea81.js","sourcesContent":["import { __extends, __spreadArrays } from \"tslib\";\n/**\n * SSR Window 2.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: May 12, 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) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\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}\nvar doc = typeof document !== 'undefined' ? document : {};\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};\nextend(doc, ssrDocument);\nvar win = typeof window !== 'undefined' ? window : {};\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};\nextend(win, ssrWindow);\n/**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\nvar Dom7 = /** @class */ (function () {\n function Dom7(arr) {\n var self = this;\n // Create array-like object\n for (var i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n return Dom7;\n}());\nfunction $(selector, context) {\n var arr = [];\n var i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n var els = void 0;\n var tempParent = void 0;\n var html_1 = selector.trim();\n if (html_1.indexOf('<') >= 0 && html_1.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html_1.indexOf(':~]/)) {\n // Pure ID selector\n els = [doc.getElementById(selector.trim().split('#')[1])];\n }\n else {\n // Other selectors\n els = (context || doc).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i])\n arr.push(els[i]);\n }\n }\n }\n else if (selector.nodeType || selector === win || selector === doc) {\n // Node/element\n arr.push(selector);\n }\n else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\nfunction unique(arr) {\n var uniqueArray = [];\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1)\n uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined')\n this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined')\n this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0])\n return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n var classes = className.split(' ');\n for (var i = 0; i < classes.length; i += 1) {\n for (var j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined')\n this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0])\n return this[0].getAttribute(attrs);\n return undefined;\n }\n // Set attrs\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n }\n else {\n // Object\n // eslint-disable-next-line\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\nfunction data(key, value) {\n var el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n var dataKey = el.getAttribute(\"data-\" + key);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n // Set value\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage)\n el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n var elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = duration + \"ms\"; // eslint-disable-line\n }\n for (var i = 0; i < this.length; i += 1) {\n var elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var eventType = args[0], targetSelector = args[1], listener = args[2], capture = args[3];\n if (typeof args[1] === 'function') {\n eventType = args[0], listener = args[1], capture = args[2];\n targetSelector = undefined;\n }\n if (!capture)\n capture = false;\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target)\n return;\n var eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector))\n listener.apply(target, eventData);\n else {\n var parents_1 = $(target).parents(); // eslint-disable-line\n for (var k = 0; k < parents_1.length; k += 1) {\n if ($(parents_1[k]).is(targetSelector))\n listener.apply(parents_1[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n var events = eventType.split(' ');\n var j;\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners)\n el.dom7Listeners = {};\n if (!el.dom7Listeners[event])\n el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(event, handleEvent, capture);\n }\n }\n else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7LiveListeners)\n el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event])\n el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener: listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var eventType = args[0], targetSelector = args[1], listener = args[2], capture = args[3];\n if (typeof args[1] === 'function') {\n eventType = args[0], listener = args[1], capture = args[2];\n targetSelector = undefined;\n }\n if (!capture)\n capture = false;\n var events = eventType.split(' ');\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n }\n else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\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 }\n else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction trigger() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var events = args[0].split(' ');\n var eventData = args[1];\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var evt = void 0;\n try {\n evt = new win.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n }\n catch (e) {\n evt = doc.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter(function (data, dataIndex) { return dataIndex > 0; });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n var events = ['webkitTransitionEnd', 'transitionend'];\n var dom = this;\n var i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this)\n return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n var styles_1 = this.styles();\n return this[0].offsetWidth + parseFloat(styles_1.getPropertyValue('margin-right')) + parseFloat(styles_1.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n var styles_2 = this.styles();\n return this[0].offsetHeight + parseFloat(styles_2.getPropertyValue('margin-top')) + parseFloat(styles_2.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = doc.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === win ? win.scrollY : el.scrollTop;\n var scrollLeft = el === win ? win.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n return null;\n}\nfunction styles() {\n if (this[0])\n return win.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n var i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0])\n return win.getComputedStyle(this[0], null).getPropertyValue(props);\n }\n else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (var prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback)\n return this;\n // Iterate over the current collection\n for (var i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined')\n return false;\n if (typeof selector === 'string') {\n if (el.matches)\n return el.matches(selector);\n else if (el.webkitMatchesSelector)\n return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector)\n return el.msMatchesSelector(selector);\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el)\n return true;\n }\n return false;\n }\n else if (selector === doc)\n return el === doc;\n else if (selector === win)\n return el === win;\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el)\n return true;\n }\n return false;\n }\n return false;\n}\nfunction index() {\n var child = this[0];\n var i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1)\n i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined')\n return this;\n var length = this.length;\n var returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0)\n return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var newChild;\n for (var k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = doc.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\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 }\n else {\n this[i].appendChild(newChild);\n }\n }\n }\n return this;\n}\nfunction prepend(newChild) {\n var i;\n var j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = doc.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\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 }\n else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n if (this[0].nextElementSibling)\n return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el)\n return new Dom7([]);\n while (el.nextElementSibling) {\n var next_1 = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next_1).is(selector))\n nextEls.push(next_1);\n }\n else\n nextEls.push(next_1);\n el = next_1;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n if (el.previousElementSibling)\n return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el)\n return new Dom7([]);\n while (el.previousElementSibling) {\n var prev_1 = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev_1).is(selector))\n prevEls.push(prev_1);\n }\n else\n prevEls.push(prev_1);\n el = prev_1;\n }\n return new Dom7(prevEls);\n}\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\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))\n parents.push(this[i].parentNode);\n }\n else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n}\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n var parent_1 = this[i].parentNode; // eslint-disable-line\n while (parent_1) {\n if (selector) {\n if ($(parent_1).is(selector))\n parents.push(parent_1);\n }\n else {\n parents.push(parent_1);\n }\n parent_1 = parent_1.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n var foundElements = [];\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n var children = []; // eslint-disable-line\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].childNodes;\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1)\n children.push(childNodes[j]);\n }\n else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode)\n this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction add() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var dom = this;\n var i;\n var j;\n for (i = 0; i < args.length; i += 1) {\n var toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\n/**\n * SSR Window 1.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2018, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: July 18, 2018\n */\nvar doc$1 = (typeof document === 'undefined') ? {\n body: {},\n addEventListener: function addEventListener() { },\n removeEventListener: function removeEventListener() { },\n activeElement: {\n blur: function blur() { },\n nodeName: '',\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() { },\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() { },\n getElementsByTagName: function getElementsByTagName() {\n return [];\n },\n };\n },\n location: { hash: '' },\n} : document; // eslint-disable-line\nvar win$1 = (typeof window === 'undefined') ? {\n document: doc$1,\n navigator: {\n userAgent: '',\n },\n location: {},\n history: {},\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() { },\n removeEventListener: function removeEventListener() { },\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n },\n };\n },\n Image: function Image() { },\n Date: function Date() { },\n screen: {},\n setTimeout: function setTimeout() { },\n clearTimeout: function clearTimeout() { },\n} : window; // eslint-disable-line\n/**\n * Swiper 4.5.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * http://www.idangero.us/swiper/\n *\n * Copyright 2014-2019 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: September 13, 2019\n */\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n data: data,\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 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 remove: remove,\n add: add,\n styles: styles,\n};\nObject.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = $.fn[methodName] || Methods[methodName];\n});\nvar Utils = {\n deleteProps: function (obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n }\n catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n }\n catch (e) {\n // something got wrong\n }\n });\n },\n nextTick: function (callback, delay) {\n if (delay === void 0) { delay = 0; }\n return setTimeout(callback, delay);\n },\n now: function () {\n return Date.now();\n },\n getTranslate: function (el, axis) {\n if (axis === void 0) { axis = 'x'; }\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = win$1.getComputedStyle(el, null);\n if (win$1.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) { return a.replace(',', '.'); }).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new win$1.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n }\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 if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (win$1.WebKitCSSMatrix)\n curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16)\n curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else\n curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (win$1.WebKitCSSMatrix)\n curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16)\n curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else\n curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery: function (url) {\n var query = {};\n var urlToParse = url || win$1.location.href;\n var i;\n var params;\n var param;\n var length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter(function (paramsPart) { return paramsPart !== ''; });\n length = params.length;\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject: function (o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var to = Object(args[0]);\n for (var i = 1; i < args.length; i += 1) {\n var nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\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 if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n }\n else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n }\n else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\nvar Support = (function Support() {\n var testDiv = doc$1.createElement('div');\n return {\n touch: (win$1.Modernizr && win$1.Modernizr.touch === true) || (function checkTouch() {\n return !!((win$1.navigator.maxTouchPoints > 0) || ('ontouchstart' in win$1) || (win$1.DocumentTouch && doc$1 instanceof win$1.DocumentTouch));\n }()),\n pointerEvents: !!(win$1.navigator.pointerEnabled || win$1.PointerEvent || ('maxTouchPoints' in win$1.navigator && win$1.navigator.maxTouchPoints > 0)),\n prefixedPointerEvents: !!win$1.navigator.msPointerEnabled,\n transition: (function checkTransition() {\n var style = testDiv.style;\n return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style);\n }()),\n transforms3d: (win$1.Modernizr && win$1.Modernizr.csstransforms3d === true) || (function checkTransforms3d() {\n var style = testDiv.style;\n return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style);\n }()),\n flexbox: (function checkFlexbox() {\n var style = testDiv.style;\n var styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');\n for (var i = 0; i < styles.length; i += 1) {\n if (styles[i] in style)\n return true;\n }\n return false;\n }()),\n observer: (function checkObserver() {\n return ('MutationObserver' in win$1 || 'WebkitMutationObserver' in win$1);\n }()),\n passiveListener: (function checkPassiveListener() {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function () {\n supportsPassive = true;\n },\n });\n win$1.addEventListener('testPassiveListener', null, opts);\n }\n catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n gestures: (function checkGestures() {\n return 'ongesturestart' in win$1;\n }()),\n };\n}());\nvar Browser = (function Browser() {\n function isSafari() {\n var ua = win$1.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isIE: !!win$1.navigator.userAgent.match(/Trident/g) || !!win$1.navigator.userAgent.match(/MSIE/g),\n isEdge: !!win$1.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win$1.navigator.userAgent),\n };\n}());\nvar SwiperClass = /** @class */ (function () {\n function SwiperClass(params) {\n if (params === void 0) { params = {}; }\n var self = this;\n self.params = params;\n // Events\n self.eventsListeners = {};\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach(function (eventName) {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n SwiperClass.prototype.on = function (events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function')\n return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event])\n self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n };\n SwiperClass.prototype.once = function (events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function')\n return self;\n function onceHandler() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n handler.apply(self, args);\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n };\n SwiperClass.prototype.off = function (events, handler) {\n var self = this;\n if (!self.eventsListeners)\n return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n }\n else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n };\n SwiperClass.prototype.emit = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var self = this;\n if (!self.eventsListeners)\n return self;\n var events;\n var data;\n var context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n }\n else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers_1 = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers_1.push(eventHandler);\n });\n handlers_1.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n };\n SwiperClass.prototype.useModulesParams = function (instanceParams) {\n var instance = this;\n if (!instance.modules)\n return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n };\n SwiperClass.prototype.useModules = function (modulesParams) {\n if (modulesParams === void 0) { modulesParams = {}; }\n var instance = this;\n if (!instance.modules)\n return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach(function (modulePropName) {\n var moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n }\n else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n };\n Object.defineProperty(SwiperClass, \"components\", {\n set: function (components) {\n var Class = this;\n if (!Class.use)\n return;\n Class.use(components);\n },\n enumerable: true,\n configurable: true\n });\n SwiperClass.installModule = function (module) {\n var params = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n params[_i - 1] = arguments[_i];\n }\n var Class = this;\n if (!Class.prototype.modules)\n Class.prototype.modules = {};\n var name = module.name || (Object.keys(Class.prototype.modules).length + \"_\" + Utils.now());\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach(function (key) {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach(function (key) {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n };\n SwiperClass.use = function (module) {\n var params = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n params[_i - 1] = arguments[_i];\n }\n var Class = this;\n if (Array.isArray(module)) {\n module.forEach(function (m) { return Class.installModule(m); });\n return Class;\n }\n return Class.installModule.apply(Class, __spreadArrays([module], params));\n };\n return SwiperClass;\n}());\nfunction updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n }\n else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n }\n else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n Utils.extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\nfunction updateSlides() {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl, swiperSize = swiper.size, rtl = swiper.rtlTranslate, wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n var offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\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 if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n swiper.virtualSize = -spaceBetween;\n // reset margins\n if (rtl)\n slides.css({ marginLeft: '', marginTop: '' });\n else\n slides.css({ marginRight: '', marginBottom: '' });\n var slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n }\n else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n // Calc slides\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide_1 = slides.eq(i);\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 if ((params.slidesPerColumnFill === 'column')\n || (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1)) {\n if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n }\n else {\n var groupIndex = Math.floor(i / params.slidesPerGroup);\n row = Math.floor(i / params.slidesPerView) - groupIndex * params.slidesPerColumn;\n column = i - row * params.slidesPerView - groupIndex * params.slidesPerView;\n }\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide_1\n .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 }\n else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide_1\n .css(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), (row !== 0 && params.spaceBetween) && (params.spaceBetween + \"px\"))\n .attr('data-swiper-column', column)\n .attr('data-swiper-row', row);\n }\n if (slide_1.css('display') === 'none')\n continue; // eslint-disable-line\n if (params.slidesPerView === 'auto') {\n var slideStyles = win$1.getComputedStyle(slide_1[0], null);\n var currentTransform = slide_1[0].style.transform;\n var currentWebKitTransform = slide_1[0].style.webkitTransform;\n if (currentTransform) {\n slide_1[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide_1[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide_1.outerWidth(true)\n : slide_1.outerHeight(true);\n }\n else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width'));\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box' && !Browser.isIE) {\n slideSize = width + marginLeft + marginRight;\n }\n else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n }\n else {\n var height = parseFloat(slideStyles.getPropertyValue('height'));\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box' && !Browser.isIE) {\n slideSize = height + marginTop + marginBottom;\n }\n else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide_1[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide_1[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths)\n slideSize = Math.floor(slideSize);\n }\n else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths)\n slideSize = Math.floor(slideSize);\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n }\n else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0)\n slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (i === 0)\n slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000)\n slidePosition = 0;\n if (params.roundLengths)\n slidePosition = Math.floor(slidePosition);\n if ((index) % params.slidesPerGroup === 0)\n snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n }\n else {\n if (params.roundLengths)\n slidePosition = Math.floor(slidePosition);\n if ((index) % params.slidesPerGroup === 0)\n snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: swiper.virtualSize + params.spaceBetween + \"px\" });\n }\n if (!Support.flexbox || params.setWrapperSize) {\n if (swiper.isHorizontal())\n $wrapperEl.css({ width: swiper.virtualSize + params.spaceBetween + \"px\" });\n else\n $wrapperEl.css({ height: swiper.virtualSize + params.spaceBetween + \"px\" });\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())\n $wrapperEl.css({ width: swiper.virtualSize + params.spaceBetween + \"px\" });\n else\n $wrapperEl.css({ height: swiper.virtualSize + params.spaceBetween + \"px\" });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (var i = 0; i < snapGrid.length; i += 1) {\n var slidesGridItem = snapGrid[i];\n if (params.roundLengths)\n slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0])\n newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (var i = 0; i < snapGrid.length; i += 1) {\n var slidesGridItem = snapGrid[i];\n if (params.roundLengths)\n slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0)\n snapGrid = [0];\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl)\n slides.css({ marginLeft: spaceBetween + \"px\" });\n else\n slides.css({ marginRight: spaceBetween + \"px\" });\n }\n else\n slides.css({ marginBottom: spaceBetween + \"px\" });\n }\n if (params.centerInsufficientSlides) {\n var allSlidesSize_1 = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize_1 += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize_1 -= params.spaceBetween;\n if (allSlidesSize_1 < swiperSize) {\n var allSlidesOffset_1 = (swiperSize - allSlidesSize_1) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset_1;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset_1;\n });\n }\n }\n Utils.extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid,\n });\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow)\n swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\nfunction updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n }\n else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index_1 = swiper.activeIndex + i;\n if (index_1 > swiper.slides.length)\n break;\n activeSlides.push(swiper.slides.eq(index_1)[0]);\n }\n }\n else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n // Update Height\n if (newHeight)\n swiper.$wrapperEl.css('height', newHeight + \"px\");\n}\nfunction updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) { translate = (this && this.translate) || 0; }\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides, rtl = swiper.rtlTranslate;\n if (slides.length === 0)\n return;\n if (typeof slides[0].swiperSlideOffset === 'undefined')\n swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl)\n offsetCenter = translate;\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n for (var i = 0; i < slides.length; i += 1) {\n var slide_2 = slides[i];\n var slideProgress = ((offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide_2.swiperSlideOffset) / (slide_2.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility) {\n var slideBefore = -(offsetCenter - slide_2.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\n || (slideAfter > 1 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide_2);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide_2.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\nfunction updateProgress(translate) {\n if (translate === void 0) { translate = (this && this.translate) || 0; }\n var swiper = this;\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress, isBeginning = swiper.isBeginning, isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n }\n else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd,\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility)\n swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\nfunction updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides, params = swiper.params, $wrapperEl = swiper.$wrapperEl, activeIndex = swiper.activeIndex, 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 if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n }\n else {\n activeSlide = slides.eq(activeIndex);\n }\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\")\n .addClass(params.slideDuplicateActiveClass);\n }\n else {\n $wrapperEl\n .children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\")\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\")\n .addClass(params.slideDuplicateNextClass);\n }\n else {\n $wrapperEl\n .children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\")\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\")\n .addClass(params.slideDuplicatePrevClass);\n }\n else {\n $wrapperEl\n .children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\")\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n}\nfunction updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid, snapGrid = swiper.snapGrid, params = swiper.params, previousIndex = swiper.activeIndex, previousRealIndex = swiper.realIndex, previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\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 }\n else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n }\n else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined')\n activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n }\n else {\n snapIndex = Math.floor(activeIndex / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length)\n snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n // Get real index\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Utils.extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.runCallbacksOnInit) {\n swiper.emit('slideChange');\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 if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide)\n slideFound = true;\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n }\n else {\n swiper.clickedIndex = $(slide).index();\n }\n }\n else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\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};\nfunction getTranslate(axis) {\n if (axis === void 0) { axis = this.isHorizontal() ? 'x' : 'y'; }\n var swiper = this;\n var params = swiper.params, rtl = swiper.rtlTranslate, translate = swiper.translate, $wrapperEl = swiper.$wrapperEl;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n var currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl)\n currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\nfunction setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate, params = swiper.params, $wrapperEl = swiper.$wrapperEl, progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n }\n else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n if (!params.virtualTranslate) {\n if (Support.transforms3d)\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n else\n $wrapperEl.transform(\"translate(\" + x + \"px, \" + y + \"px)\");\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n // Check if we need to update progress\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n }\n else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\nfunction minTranslate() {\n return (-this.snapGrid[0]);\n}\nfunction maxTranslate() {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n}\nvar translate = {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n};\nfunction setTransition(duration, byController) {\n var swiper = this;\n swiper.$wrapperEl.transition(duration);\n swiper.emit('setTransition', duration, byController);\n}\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) { runCallbacks = true; }\n var swiper = this;\n var activeIndex = swiper.activeIndex, params = swiper.params, previousIndex = swiper.previousIndex;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex)\n dir = 'next';\n else if (activeIndex < previousIndex)\n dir = 'prev';\n else\n dir = 'reset';\n }\n swiper.emit('transitionStart');\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n }\n else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\nfunction transitionEnd$1(runCallbacks, direction) {\n if (runCallbacks === void 0) { runCallbacks = true; }\n var swiper = this;\n var activeIndex = swiper.activeIndex, previousIndex = swiper.previousIndex;\n swiper.animating = false;\n swiper.setTransition(0);\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex)\n dir = 'next';\n else if (activeIndex < previousIndex)\n dir = 'prev';\n else\n dir = 'reset';\n }\n swiper.emit('transitionEnd');\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n }\n else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\nvar transition$1 = {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd$1,\n};\nfunction slideTo(index, speed, runCallbacks, internal) {\n if (index === void 0) { index = 0; }\n if (speed === void 0) { speed = this.params.speed; }\n if (runCallbacks === void 0) { runCallbacks = true; }\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0)\n slideIndex = 0;\n var params = swiper.params, snapGrid = swiper.snapGrid, slidesGrid = swiper.slidesGrid, previousIndex = swiper.previousIndex, activeIndex = swiper.activeIndex, rtl = swiper.rtlTranslate;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n var snapIndex = Math.floor(slideIndex / params.slidesPerGroup);\n if (snapIndex >= snapGrid.length)\n snapIndex = snapGrid.length - 1;\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n var translate = -snapGrid[snapIndex];\n // Update progress\n swiper.updateProgress(translate);\n // Normalize slideIndex\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 }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex)\n return false;\n }\n }\n var direction;\n if (slideIndex > activeIndex)\n direction = 'next';\n else if (slideIndex < activeIndex)\n direction = 'prev';\n else\n direction = 'reset';\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (speed === 0 || !Support.transition) {\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 }\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 if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed)\n return;\n if (e.target !== this)\n 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 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n return true;\n}\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) { index = 0; }\n if (speed === void 0) { speed = this.params.speed; }\n if (runCallbacks === void 0) { runCallbacks = true; }\n var swiper = this;\n var newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) { speed = this.params.speed; }\n if (runCallbacks === void 0) { runCallbacks = true; }\n var swiper = this;\n var params = swiper.params, animating = swiper.animating;\n if (params.loop) {\n if (animating)\n return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) { speed = this.params.speed; }\n if (runCallbacks === void 0) { runCallbacks = true; }\n var swiper = this;\n var params = swiper.params, animating = swiper.animating, snapGrid = swiper.snapGrid, slidesGrid = swiper.slidesGrid, rtlTranslate = swiper.rtlTranslate;\n if (params.loop) {\n if (animating)\n return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0)\n return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) { return normalize(val); });\n var normalizedSlidesGrid = slidesGrid.map(function (val) { return normalize(val); });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n var prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0)\n prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) { speed = this.params.speed; }\n if (runCallbacks === void 0) { runCallbacks = true; }\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal) {\n if (speed === void 0) { speed = this.params.speed; }\n if (runCallbacks === void 0) { runCallbacks = true; }\n var swiper = this;\n var index = swiper.activeIndex;\n var snapIndex = Math.floor(index / swiper.params.slidesPerGroup);\n if (snapIndex < swiper.snapGrid.length - 1) {\n var translate_1 = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n if ((translate_1 - currentSnap) > (nextSnap - currentSnap) / 2) {\n index = swiper.params.slidesPerGroup;\n }\n }\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\nfunction slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params, $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n if (params.loop) {\n if (swiper.animating)\n return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if ((slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\")\n .eq(0)\n .index();\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n }\n else {\n swiper.slideTo(slideToIndex);\n }\n }\n else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\")\n .eq(0)\n .index();\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n }\n else {\n swiper.slideTo(slideToIndex);\n }\n }\n else {\n swiper.slideTo(slideToIndex);\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};\nfunction loopCreate() {\n var swiper = this;\n var params = swiper.params, $wrapperEl = swiper.$wrapperEl;\n // Remove duplicated slides\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(doc$1.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n if (params.slidesPerView === 'auto' && !params.loopedSlides)\n params.loopedSlides = slides.length;\n swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (index, el) {\n var slide = $(el);\n if (index < swiper.loopedSlides)\n appendSlides.push(el);\n if (index < slides.length && index >= slides.length - swiper.loopedSlides)\n prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (var i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (var i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\nfunction loopFix() {\n var swiper = this;\n var params = swiper.params, activeIndex = swiper.activeIndex, slides = swiper.slides, loopedSlides = swiper.loopedSlides, allowSlidePrev = swiper.allowSlidePrev, allowSlideNext = swiper.allowSlideNext, snapGrid = swiper.snapGrid, 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();\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex >= slides.length - loopedSlides)) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n}\nfunction loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl, params = swiper.params, slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\nvar loop = {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy,\n};\nfunction setGrabCursor(moving) {\n var swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked))\n 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}\nfunction unsetGrabCursor() {\n var swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked))\n return;\n swiper.el.style.cursor = '';\n}\nvar grabCursor = {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor,\n};\nfunction appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl, params = swiper.params;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i])\n $wrapperEl.append(slides[i]);\n }\n }\n else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\nfunction prependSlide(slides) {\n var swiper = this;\n var params = swiper.params, $wrapperEl = swiper.$wrapperEl, activeIndex = swiper.activeIndex;\n if (params.loop) {\n swiper.loopDestroy();\n }\n var newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i])\n $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n }\n else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\nfunction addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl, params = swiper.params, activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n var baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\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 if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i])\n $wrapperEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n }\n else {\n $wrapperEl.append(slides);\n }\n for (var i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n }\n else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\nfunction removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params, $wrapperEl = swiper.$wrapperEl, activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\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])\n swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex)\n newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove])\n swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex)\n newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n }\n else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\nfunction removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\nvar manipulation = {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides,\n};\nvar Device = (function Device() {\n var ua = win$1.navigator.userAgent;\n var device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n windows: false,\n iphone: false,\n ipod: false,\n ipad: false,\n cordova: win$1.cordova || win$1.phonegap,\n phonegap: win$1.cordova || win$1.phonegap,\n };\n var windows = ua.match(/(Windows Phone);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\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 // Windows\n if (windows) {\n device.os = 'windows';\n device.osVersion = windows[2];\n device.windows = true;\n }\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.iphone = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n // Desktop\n device.desktop = !(device.os || device.android || device.webView);\n // Webview\n device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);\n // Minimal UI\n if (device.os && device.os === 'ios') {\n var osVersionArr = device.osVersion.split('.');\n var metaViewport = doc$1.querySelector('meta[name=\"viewport\"]');\n device.minimalUi = !device.webView\n && (ipod || iphone)\n && (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7)\n && metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0;\n }\n // Pixel Ratio\n device.pixelRatio = win$1.devicePixelRatio || 1;\n // Export object\n return device;\n}());\nfunction onTouchStart(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params, touches = swiper.touches;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n var e = event;\n if (e.originalEvent)\n e = e.originalEvent;\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3)\n return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0)\n return;\n if (data.isTouched && data.isMoved)\n return;\n if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$(e).closest(params.swipeHandler)[0])\n return;\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;\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= win$1.screen.width - edgeSwipeThreshold))) {\n return;\n }\n Utils.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 = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0)\n data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($(e.target).is(data.formElements))\n preventDefault = false;\n if (doc$1.activeElement\n && $(doc$1.activeElement).is(data.formElements)\n && doc$1.activeElement !== e.target) {\n doc$1.activeElement.blur();\n }\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\nfunction onTouchMove(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params, touches = swiper.touches, rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent)\n e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type === 'mousemove')\n return;\n var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if ((pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n }\n else if ((pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())) {\n return;\n }\n }\n if (data.isTouchEvent && doc$1.activeElement) {\n if (e.target === doc$1.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1)\n 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)\n return;\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle = void 0;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n }\n else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n e.preventDefault();\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n 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)\n 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 if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance)\n data.currentTranslate = (swiper.minTranslate() - 1) + (Math.pow((-swiper.minTranslate() + data.startTranslate + diff), resistanceRatio));\n }\n else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance)\n data.currentTranslate = (swiper.maxTranslate() + 1) - (Math.pow((swiper.maxTranslate() - data.startTranslate - diff), resistanceRatio));\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n }\n else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger)\n return;\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\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 data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\nfunction onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params, touches = swiper.touches, rtl = swiper.rtlTranslate, $wrapperEl = swiper.$wrapperEl, slidesGrid = swiper.slidesGrid, snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent)\n e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n // Time diff\n var touchEndTime = Utils.now();\n var timeDiff = touchEndTime - data.touchStartTime;\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) > 300) {\n if (data.clickTimeout)\n clearTimeout(data.clickTimeout);\n data.clickTimeout = Utils.nextTick(function () {\n if (!swiper || swiper.destroyed)\n return;\n swiper.emit('click', e);\n }, 300);\n }\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n if (data.clickTimeout)\n clearTimeout(data.clickTimeout);\n swiper.emit('doubleTap', e);\n }\n }\n data.lastClickTime = Utils.now();\n Utils.nextTick(function () {\n if (!swiper.destroyed)\n swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n }\n else {\n currentPos = -data.currentTranslate;\n }\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n }\n else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\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 if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\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 if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n }\n else {\n swiper.velocity = 0;\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)\n newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition_1;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix = void 0;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition_1 = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n }\n else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides)\n needsLoopFix = true;\n }\n else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition_1 = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n }\n else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides)\n needsLoopFix = true;\n }\n else if (params.freeModeSticky) {\n var nextSlide = void 0;\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n }\n else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n }\n else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n }\n else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition_1);\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)\n return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n swiper.setTranslate(afterBouncePosition_1);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed)\n return;\n swiper.transitionEnd();\n });\n });\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 if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed)\n return;\n swiper.transitionEnd();\n });\n }\n }\n else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n // Find current slide\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n for (var i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {\n if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) {\n stopIndex = i;\n groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i];\n }\n }\n else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n // Find current slide size\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio)\n swiper.slideTo(stopIndex + params.slidesPerGroup);\n else\n swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio))\n swiper.slideTo(stopIndex + params.slidesPerGroup);\n else\n swiper.slideTo(stopIndex);\n }\n }\n else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + params.slidesPerGroup);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n }\n}\nfunction onResize() {\n var swiper = this;\n var params = swiper.params, el = swiper.el;\n if (el && el.offsetWidth === 0)\n return;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n // Save locks\n var allowSlideNext = swiper.allowSlideNext, allowSlidePrev = swiper.allowSlidePrev, snapGrid = swiper.snapGrid;\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n if (params.freeMode) {\n var newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n }\n else {\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n }\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 }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\nfunction onClick(e) {\n var swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks)\n e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\nfunction attachEvents() {\n var swiper = this;\n var params = swiper.params, touchEvents = swiper.touchEvents, el = swiper.el, wrapperEl = swiper.wrapperEl;\n {\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n var target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n var capture = !!params.nested;\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n doc$1.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n doc$1.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n }\n else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture: capture } : capture);\n target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.addEventListener('mousedown', swiper.onTouchStart, false);\n doc$1.addEventListener('mousemove', swiper.onTouchMove, capture);\n doc$1.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.addEventListener('click', swiper.onClick, true);\n }\n }\n // Resize handler\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n}\nfunction detachEvents() {\n var swiper = this;\n var params = swiper.params, touchEvents = swiper.touchEvents, el = swiper.el, wrapperEl = swiper.wrapperEl;\n var target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n var capture = !!params.nested;\n // Touch Events\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n doc$1.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n doc$1.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n }\n else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n target.removeEventListener('mousedown', swiper.onTouchStart, false);\n doc$1.removeEventListener('mousemove', swiper.onTouchMove, capture);\n doc$1.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n target.removeEventListener('click', swiper.onClick, true);\n }\n }\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n}\nvar events = {\n attachEvents: attachEvents,\n detachEvents: detachEvents,\n};\nfunction setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex, initialized = swiper.initialized, _a = swiper.loopedSlides, loopedSlides = _a === void 0 ? 0 : _a, params = swiper.params;\n var breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0))\n return;\n // Set breakpoint for window width and update parameters\n var breakpoint = swiper.getBreakpoint(breakpoints);\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams_1 = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams_1) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup'].forEach(function (param) {\n var paramValue = breakpointOnlyParams_1[param];\n if (typeof paramValue === 'undefined')\n return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams_1[param] = 'auto';\n }\n else if (param === 'slidesPerView') {\n breakpointOnlyParams_1[param] = parseFloat(paramValue);\n }\n else {\n breakpointOnlyParams_1[param] = parseInt(paramValue, 10);\n }\n });\n }\n var breakpointParams = breakpointOnlyParams_1 || swiper.originalParams;\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n Utils.extend(swiper.params, breakpointParams);\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n swiper.currentBreakpoint = breakpoint;\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n swiper.emit('breakpoint', breakpointParams);\n }\n}\nfunction getBreakpoint(breakpoints) {\n var swiper = this;\n // Get breakpoint for window width\n if (!breakpoints)\n return undefined;\n var breakpoint = false;\n var points = [];\n Object.keys(breakpoints).forEach(function (point) {\n points.push(point);\n });\n points.sort(function (a, b) { return parseInt(a, 10) - parseInt(b, 10); });\n for (var i = 0; i < points.length; i += 1) {\n var point = points[i];\n if (swiper.params.breakpointsInverse) {\n if (point <= win$1.innerWidth) {\n breakpoint = point;\n }\n }\n else if (point >= win$1.innerWidth && !breakpoint) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\nvar breakpoints = { setBreakpoint: setBreakpoint, getBreakpoint: getBreakpoint };\nfunction addClasses() {\n var swiper = this;\n var classNames = swiper.classNames, params = swiper.params, rtl = swiper.rtl, $el = swiper.$el;\n var suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (!Support.flexbox) {\n suffixes.push('no-flexbox');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n // WP8 Touch Events Fix\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n suffixes.push(\"wp8-\" + params.direction);\n }\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(classNames.join(' '));\n}\nfunction removeClasses() {\n var swiper = this;\n var $el = swiper.$el, classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n}\nvar classes = { addClasses: addClasses, removeClasses: removeClasses };\nfunction loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var image;\n function onReady() {\n if (callback)\n callback();\n }\n if (!imageEl.complete || !checkForComplete) {\n if (src) {\n image = new win$1.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n }\n else {\n onReady();\n }\n }\n else {\n // image already loaded...\n onReady();\n }\n}\nfunction preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed)\n return;\n if (swiper.imagesLoaded !== undefined)\n swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady)\n swiper.update();\n swiper.emit('imagesReady');\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}\nvar images = {\n loadImage: loadImage,\n preloadImages: preloadImages,\n};\nfunction checkOverflow() {\n var swiper = this;\n var wasLocked = swiper.isLocked;\n swiper.isLocked = swiper.snapGrid.length === 1;\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n // events\n if (wasLocked !== swiper.isLocked)\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n swiper.navigation.update();\n }\n}\nvar checkOverflow$1 = { checkOverflow: checkOverflow };\nvar defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n //\n preventInteractionOnTransition: false,\n // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\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 // Breakpoints\n breakpoints: undefined,\n breakpointsInverse: false,\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n centeredSlides: false,\n slidesOffsetBefore: 0,\n slidesOffsetAfter: 0,\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: true,\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 // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\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};\n/* eslint no-param-reassign: \"off\" */\nvar prototypes = {\n update: update,\n translate: translate,\n transition: transition$1,\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 = {};\nvar Swiper = /** @class */ (function (_super) {\n __extends(Swiper, _super);\n function Swiper() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = this;\n var el;\n var params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n }\n else {\n el = args[0], params = args[1];\n }\n if (!params)\n params = {};\n params = Utils.extend({}, params);\n if (el && !params.el)\n params.el = el;\n _this = _super.call(this, params) || this;\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 // Swiper Instance\n var swiper = _this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\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)\n return;\n if (!(moduleParamName in params && 'enabled' in moduleParams))\n return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName])\n params[moduleParamName] = { enabled: false };\n }\n });\n // Extend defaults with modules params\n var swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n // Save Dom lib\n swiper.$ = $;\n // Find el\n var $el = $(swiper.params.el);\n el = $el[0];\n if (!el) {\n return undefined;\n }\n if ($el.length > 1) {\n var swipers_1 = [];\n $el.each(function (index, containerEl) {\n var newParams = Utils.extend({}, params, { el: containerEl });\n swipers_1.push(new Swiper(newParams));\n });\n return swipers_1;\n }\n el.swiper = swiper;\n $el.data('swiper', swiper);\n // Find Wrapper\n var $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n // Extend Swiper\n Utils.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 () {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function () {\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'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n else if (Support.prefixedPointerEvents) {\n desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return 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',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n });\n // Install Modules\n swiper.useModules();\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n // Return app instance\n return swiper;\n }\n Swiper.prototype.slidesPerViewDynamic = function () {\n var swiper = this;\n var params = swiper.params, slides = swiper.slides, slidesGrid = swiper.slidesGrid, swiperSize = swiper.size, activeIndex = swiper.activeIndex;\n var spv = 1;\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop = void 0;\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)\n breakLoop = true;\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)\n breakLoop = true;\n }\n }\n }\n else {\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n };\n Swiper.prototype.update = function () {\n var swiper = this;\n if (!swiper || swiper.destroyed)\n return;\n var snapGrid = swiper.snapGrid, params = swiper.params;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\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 var translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\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 }\n else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n };\n Swiper.prototype.changeDirection = function (newDirection, needUpdate) {\n if (needUpdate === void 0) { needUpdate = true; }\n var swiper = this;\n var currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n swiper.$el\n .removeClass(\"\" + swiper.params.containerModifierClass + currentDirection + \" wp8-\" + currentDirection)\n .addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n swiper.$el.addClass(swiper.params.containerModifierClass + \"wp8-\" + newDirection);\n }\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideIndex, slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n }\n else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate)\n swiper.update();\n return swiper;\n };\n Swiper.prototype.init = function () {\n var swiper = this;\n if (swiper.initialized)\n return;\n swiper.emit('beforeInit');\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n // Add Classes\n swiper.addClasses();\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n // Update size\n swiper.updateSize();\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n }\n else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n // Attach events\n swiper.attachEvents();\n // Init Flag\n swiper.initialized = true;\n // Emit\n swiper.emit('init');\n };\n Swiper.prototype.destroy = function (deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) { deleteInstance = true; }\n if (cleanStyles === void 0) { cleanStyles = true; }\n var swiper = this;\n var params = swiper.params, $el = swiper.$el, $wrapperEl = swiper.$wrapperEl, slides = swiper.slides;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n // Init Flag\n swiper.initialized = false;\n // Detach events\n swiper.detachEvents();\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index')\n .removeAttr('data-swiper-column')\n .removeAttr('data-swiper-row');\n }\n }\n swiper.emit('destroy');\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n };\n Swiper.extendDefaults = function (newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n };\n Object.defineProperty(Swiper, \"extendedDefaults\", {\n get: function () {\n return extendedDefaults;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Swiper, \"defaults\", {\n get: function () {\n return defaults;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Swiper, \"Class\", {\n get: function () {\n return SwiperClass;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Swiper, \"$\", {\n get: function () {\n return $;\n },\n enumerable: true,\n configurable: true\n });\n return Swiper;\n}(SwiperClass));\nvar Device$1 = {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\nvar Support$1 = {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\nvar Browser$1 = {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\nvar Resize = {\n name: 'resize',\n create: function () {\n var swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler: function () {\n if (!swiper || swiper.destroyed || !swiper.initialized)\n return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function () {\n if (!swiper || swiper.destroyed || !swiper.initialized)\n return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init: function () {\n var swiper = this;\n // Emit resize\n win$1.addEventListener('resize', swiper.resize.resizeHandler);\n // Emit orientationchange\n win$1.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function () {\n var swiper = this;\n win$1.removeEventListener('resize', swiper.resize.resizeHandler);\n win$1.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\nvar Observer = {\n func: win$1.MutationObserver || win$1.WebkitMutationObserver,\n attach: function (target, options) {\n if (options === void 0) { options = {}; }\n var swiper = this;\n var ObserverFunc = Observer.func;\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 var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n if (win$1.requestAnimationFrame) {\n win$1.requestAnimationFrame(observerUpdate);\n }\n else {\n win$1.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 () {\n var swiper = this;\n if (!Support.observer || !swiper.params.observer)\n return;\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy: function () {\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 () {\n var swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init: function () {\n var swiper = this;\n swiper.observer.init();\n },\n destroy: function () {\n var swiper = this;\n swiper.observer.destroy();\n },\n },\n};\nfunction isEventSupported() {\n var eventName = 'onwheel';\n var isSupported = eventName in doc$1;\n if (!isSupported) {\n var element = doc$1.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n if (!isSupported\n && doc$1.implementation\n && doc$1.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && doc$1.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = doc$1.implementation.hasFeature('Events.wheel', '3.0');\n }\n return isSupported;\n}\nvar Mousewheel = {\n lastScrollTime: Utils.now(),\n event: (function getEvent() {\n if (win$1.navigator.userAgent.indexOf('firefox') > -1)\n return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n }()),\n normalize: function (e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n }\n else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter: function () {\n var swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function () {\n var swiper = this;\n swiper.mouseEntered = false;\n },\n handle: function (event) {\n var e = event;\n var swiper = this;\n var params = swiper.params.mousewheel;\n if (!swiper.mouseEntered && !params.releaseOnEdges)\n return true;\n if (e.originalEvent)\n e = e.originalEvent; // jquery fix\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY))\n delta = data.pixelX * rtlFactor;\n else\n return true;\n }\n else if (Math.abs(data.pixelY) > Math.abs(data.pixelX))\n delta = data.pixelY;\n else\n return true;\n }\n else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0)\n return true;\n if (params.invert)\n delta = -delta;\n if (!swiper.params.freeMode) {\n if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) {\n if (delta < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', e);\n }\n else if (params.releaseOnEdges)\n return true;\n }\n else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', e);\n }\n else if (params.releaseOnEdges)\n return true;\n }\n swiper.mousewheel.lastScrollTime = (new win$1.Date()).getTime();\n }\n else {\n // Freemode or scrollContainer:\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n var position = swiper.getTranslate() + (delta * params.sensitivity);\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate())\n position = swiper.minTranslate();\n if (position <= swiper.maxTranslate())\n position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.freeModeSticky) {\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = Utils.nextTick(function () {\n swiper.slideToClosest();\n }, 300);\n }\n // Emit event\n swiper.emit('scroll', e);\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction)\n swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate())\n return true;\n }\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n return false;\n },\n enable: function () {\n var swiper = this;\n if (!Mousewheel.event)\n return false;\n if (swiper.mousewheel.enabled)\n return false;\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function () {\n var swiper = this;\n if (!Mousewheel.event)\n return false;\n if (!swiper.mousewheel.enabled)\n return false;\n var target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\nvar Pagination = {\n update: function () {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0)\n return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n // Current/Total\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1)\n current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets')\n current = total + current;\n }\n else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n }\n else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex_1;\n var lastIndex_1;\n var midIndex = void 0;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n }\n else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex_1 = current - swiper.pagination.dynamicBulletIndex;\n lastIndex_1 = firstIndex_1 + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex_1 + firstIndex_1) / 2;\n }\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n if ($el.length > 1) {\n bullets.each(function (index, bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex_1 && bulletIndex <= lastIndex_1) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n if (bulletIndex === firstIndex_1) {\n $bullet\n .prev()\n .addClass(params.bulletActiveClass + \"-prev\")\n .prev()\n .addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n if (bulletIndex === lastIndex_1) {\n $bullet\n .next()\n .addClass(params.bulletActiveClass + \"-next\")\n .next()\n .addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n }\n else {\n var $bullet = bullets.eq(current);\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex_1);\n var $lastDisplayedBullet = bullets.eq(lastIndex_1);\n for (var i = firstIndex_1; i <= lastIndex_1; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n $firstDisplayedBullet\n .prev()\n .addClass(params.bulletActiveClass + \"-prev\")\n .prev()\n .addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet\n .next()\n .addClass(params.bulletActiveClass + \"-next\")\n .next()\n .addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n if (params.type === 'fraction') {\n $el.find(\".\" + params.currentClass).text(params.formatFractionCurrent(current + 1));\n $el.find(\".\" + params.totalClass).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n var progressbarDirection = void 0;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n }\n else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n }\n else {\n scaleY = scale;\n }\n $el.find(\".\" + params.progressbarFillClass).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n }\n else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render: function () {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0)\n return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n }\n else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(\".\" + params.bulletClass);\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n }\n else {\n paginationHTML = \"\"\n + ' / '\n + (\"\");\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n }\n else {\n paginationHTML = \"\";\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function () {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el)\n return;\n var $el = $(params.el);\n if ($el.length === 0)\n return;\n if (swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n && swiper.$el.find(params.el).length === 1) {\n $el = swiper.$el.find(params.el);\n }\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n $el.addClass(params.modifierClass + params.type);\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n $el.on('click', \".\" + params.bulletClass, function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop)\n index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n Utils.extend(swiper.pagination, {\n $el: $el,\n el: $el[0],\n });\n },\n destroy: function () {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0)\n return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets)\n swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', \".\" + params.bulletClass);\n }\n },\n};\nvar pagination = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function (number) { return number; },\n formatFractionTotal: function (number) { return number; },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n lockClass: 'swiper-pagination-lock',\n },\n },\n create: function () {\n var swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init: function () {\n var swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function () {\n var swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n }\n else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function () {\n var swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function () {\n var swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function () {\n var swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function () {\n var swiper = this;\n swiper.pagination.destroy();\n },\n click: function (e) {\n var swiper = this;\n if (swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)) {\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n }\n else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\nvar Scrollbar = {\n setTranslate: function () {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el)\n return;\n var scrollbar = swiper.scrollbar, rtl = swiper.rtlTranslate, progress = swiper.progress;\n var dragSize = scrollbar.dragSize, trackSize = scrollbar.trackSize, $dragEl = scrollbar.$dragEl, $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n }\n else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n }\n else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n }\n else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n if (Support.transforms3d) {\n $dragEl.transform(\"translate3d(\" + newPos + \"px, 0, 0)\");\n }\n else {\n $dragEl.transform(\"translateX(\" + newPos + \"px)\");\n }\n $dragEl[0].style.width = newSize + \"px\";\n }\n else {\n if (Support.transforms3d) {\n $dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\n }\n else {\n $dragEl.transform(\"translateY(\" + newPos + \"px)\");\n }\n $dragEl[0].style.height = newSize + \"px\";\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function (duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el)\n return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function () {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el)\n return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl, $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n }\n else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n }\n else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n if (divider >= 1) {\n $el[0].style.display = 'none';\n }\n else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition: function (e) {\n var swiper = this;\n if (swiper.isHorizontal()) {\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX);\n }\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY);\n },\n setDragPosition: function (e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar, rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el, dragSize = scrollbar.dragSize, trackSize = scrollbar.trackSize, dragStartPos = scrollbar.dragStartPos;\n var positionRatio;\n positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top']\n - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n var position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function (e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar, $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el, $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)\n ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n clearTimeout(swiper.scrollbar.dragTimeout);\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function (e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar, $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el, $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched)\n return;\n if (e.preventDefault)\n e.preventDefault();\n else\n e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function (e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar;\n var $el = scrollbar.$el;\n if (!swiper.scrollbar.isTouched)\n return;\n swiper.scrollbar.isTouched = false;\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function () {\n var swiper = this;\n if (!swiper.params.scrollbar.el)\n return;\n var scrollbar = swiper.scrollbar, touchEventsTouch = swiper.touchEventsTouch, touchEventsDesktop = swiper.touchEventsDesktop, params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n doc$1.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n doc$1.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function () {\n var swiper = this;\n if (!swiper.params.scrollbar.el)\n return;\n var scrollbar = swiper.scrollbar, touchEventsTouch = swiper.touchEventsTouch, touchEventsDesktop = swiper.touchEventsDesktop, params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n doc$1.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n doc$1.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function () {\n var swiper = this;\n if (!swiper.params.scrollbar.el)\n return;\n var scrollbar = swiper.scrollbar, $swiperEl = swiper.$el;\n var params = swiper.params.scrollbar;\n var $el = $(params.el);\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n var $dragEl = $el.find(\".\" + swiper.params.scrollbar.dragClass);\n if ($dragEl.length === 0) {\n $dragEl = $(\"
\");\n $el.append($dragEl);\n }\n Utils.extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0],\n });\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy: function () {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\nvar scrollbar = {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create: function () {\n var swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init: function () {\n var swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function () {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize: function () {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function () {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate: function () {\n var swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition: function (duration) {\n var swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy: function () {\n var swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n};\nvar Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function (e) {\n if (e.targetTouches.length < 2)\n return 1;\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt((Math.pow((x2 - x1), 2)) + (Math.pow((y2 - y1), 2)));\n return distance;\n },\n // Events\n onGestureStart: function (e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest('.swiper-slide');\n if (gesture.$slideEl.length === 0)\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n gesture.$imageEl.transition(0);\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function (e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0)\n return;\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n }\n else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (Math.pow(((zoom.scale - gesture.maxRatio) + 1), 0.5));\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (Math.pow(((params.minRatio - zoom.scale) + 1), 0.5));\n }\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n onGestureEnd: function (e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0)\n return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1)\n gesture.$slideEl = undefined;\n },\n onTouchStart: function (e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture, image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0)\n return;\n if (image.isTouched)\n return;\n if (Device.android)\n e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function (e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture, image = zoom.image, velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0)\n return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl)\n return;\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight)\n return;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n if (!image.isMoved && !zoom.isScaling) {\n if (swiper.isHorizontal()\n && ((Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x))) {\n image.isTouched = false;\n return;\n }\n if (!swiper.isHorizontal()\n && ((Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y))) {\n image.isTouched = false;\n return;\n }\n }\n e.preventDefault();\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\n if (image.currentX < image.minX) {\n image.currentX = (image.minX + 1) - (Math.pow(((image.minX - image.currentX) + 1), 0.8));\n }\n if (image.currentX > image.maxX) {\n image.currentX = (image.maxX - 1) + (Math.pow(((image.currentX - image.maxX) + 1), 0.8));\n }\n if (image.currentY < image.minY) {\n image.currentY = (image.minY + 1) - (Math.pow(((image.minY - image.currentY) + 1), 0.8));\n }\n if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (Math.pow(((image.currentY - image.maxY) + 1), 0.8));\n }\n // Velocity\n if (!velocity.prevPositionX)\n velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY)\n velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime)\n velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2)\n velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2)\n velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTouchEnd: function () {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture, image = zoom.image, velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0)\n return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY;\n // Fix duration\n if (velocity.x !== 0)\n momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0)\n momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\n image.maxX = -image.minX;\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTransitionEnd: function () {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle: function (e) {\n var swiper = this;\n var zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n }\n else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function (e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture, image = zoom.image;\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0)\n return;\n gesture.$slideEl.addClass(\"\" + params.zoomedSlideClass);\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n }\n else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n }\n else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\");\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n out: function () {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n if (!gesture.$slideEl) {\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0)\n return;\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(\"\" + params.zoomedSlideClass);\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable: function () {\n var swiper = this;\n var zoom = swiper.zoom;\n if (zoom.enabled)\n return;\n zoom.enabled = true;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove);\n },\n disable: function () {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled)\n return;\n swiper.zoom.enabled = false;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\n }\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove);\n },\n};\nvar zoom = {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create: function () {\n var swiper = this;\n var zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach(function (methodName) {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom: zoom,\n });\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function () {\n return scale;\n },\n set: function (value) {\n if (scale !== value) {\n var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init: function () {\n var swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function () {\n var swiper = this;\n swiper.zoom.disable();\n },\n touchStart: function (e) {\n var swiper = this;\n if (!swiper.zoom.enabled)\n return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function (e) {\n var swiper = this;\n if (!swiper.zoom.enabled)\n return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function (e) {\n var swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function () {\n var swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n/* eslint no-underscore-dangle: \"off\" */\nvar Autoplay = {\n run: function () {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = Utils.nextTick(function () {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n }\n else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n }\n else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n }\n else {\n swiper.autoplay.stop();\n }\n }\n else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n }\n else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n }\n else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n }\n else {\n swiper.autoplay.stop();\n }\n }, delay);\n },\n start: function () {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined')\n return false;\n if (swiper.autoplay.running)\n return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function () {\n var swiper = this;\n if (!swiper.autoplay.running)\n return false;\n if (typeof swiper.autoplay.timeout === 'undefined')\n return false;\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function (speed) {\n var swiper = this;\n if (!swiper.autoplay.running)\n return;\n if (swiper.autoplay.paused)\n return;\n if (swiper.autoplay.timeout)\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n }\n else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n};\nvar autoplay = {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create: function () {\n var swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onTransitionEnd: function (e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl)\n return;\n if (e.target !== this)\n return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init: function () {\n var swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n }\n },\n beforeTransitionStart: function (speed, internal) {\n var swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n }\n else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function () {\n var swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n }\n else {\n swiper.autoplay.pause();\n }\n }\n },\n destroy: function () {\n var swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n },\n },\n};\n// Swiper Class\nvar components = [\n Device$1,\n Support$1,\n Browser$1,\n Resize,\n Observer$1,\n];\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\nSwiper.use(components);\nSwiper.use([pagination, scrollbar, autoplay, zoom]);\nexport { Swiper };\n"],"sourceRoot":""}