{"version":3,"sources":["webpack:///./node_modules/swiper/dist/js/swiper.esm.bundle.js"],"names":["_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","prototype","toString","call","e","_isNativeReflectConstruct","result","Super","NewTarget","this","constructor","arguments","apply","Methods","addClass","removeClass","hasClass","toggleClass","attr","removeAttr","data","transform","transition","on","off","trigger","transitionEnd","outerWidth","outerHeight","offset","css","each","html","text","is","index","eq","append","prepend","next","nextAll","prev","prevAll","parent","parents","closest","find","children","remove","add","styles","Object","keys","forEach","methodName","fn","style","testDiv","ua","Utils","deleteProps","obj","object","key","nextTick","callback","delay","length","undefined","setTimeout","now","getTranslate","el","matrix","curTransform","transformMatrix","axis","curStyle","getComputedStyle","WebKitCSSMatrix","webkitTransform","split","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","getPropertyValue","m41","parseFloat","m42","parseUrlQuery","url","i","params","param","query","urlToParse","location","href","indexOf","filter","paramsPart","decodeURIComponent","isObject","o","extend","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","Support","createElement","touch","Modernizr","navigator","maxTouchPoints","DocumentTouch","pointerEvents","pointerEnabled","PointerEvent","prefixedPointerEvents","msPointerEnabled","transforms3d","csstransforms3d","flexbox","observer","passiveListener","supportsPassive","opts","defineProperty","get","addEventListener","gestures","Browser","isIE","userAgent","match","isEdge","isSafari","toLowerCase","isUiWebView","test","SwiperClass","self","eventsListeners","eventName","value","events","handler","priority","method","event","onceHandler","_len","args","Array","_key","f7proxy","eventHandler","splice","context","_len2","_key2","isArray","slice","eventsArray","handlers","push","instanceParams","instance","modules","moduleName","module","modulesParams","moduleParams","modulePropName","moduleProp","bind","moduleEventName","create","set","components","use","Class","name","concat","proto","static","install","_len3","_key3","m","installModule","_len4","_key4","update","updateSize","width","height","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","size","updateSlides","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","Math","floor","ceil","slidesPerView","slidesPerColumnFill","max","newSlidesGrid","slidesPerRow","numFullColumns","_slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","_boxSizing","swiperSlideSize","centeredSlides","abs","effect","setWrapperSize","_i","slidesGridItem","_i2","_slidesGridItem","centerInsufficientSlides","allSlidesSize","slideSizeValue","allSlidesOffset","snap","snapIndex","emit","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","_index","activeIndex","offsetHeight","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","swiper","offsetCenter","slideVisibleClass","visibleSlidesIndexes","visibleSlides","_slide2","slideProgress","minTranslate","slideBefore","slideAfter","isVisible","progress","updateProgress","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","slide","target","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","x","y","previousTranslate","duration","transitionStart","runCallbacks","direction","autoHeight","dir","animating","slideTo","internal","slideIndex","preventInteractionOnTransition","initialSlide","allowSlideNext","allowSlidePrev","onSlideToWrapperTransitionEnd","destroyed","removeEventListener","slideToLoop","newIndex","loopedSlides","slideNext","loopFix","_clientLeft","clientLeft","slidePrev","normalize","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","_translate","currentSnap","nextSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","_i3","cloneNode","_i4","diff","loopDestroy","grabCursor","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","unshift","_i5","_i6","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","Device","device","ios","android","androidChrome","desktop","windows","iphone","ipod","ipad","cordova","phonegap","os","osVersion","webView","osVersionArr","metaViewport","querySelector","minimalUi","getAttribute","pixelRatio","devicePixelRatio","onTouchStart","touchEventsData","touches","originalEvent","isTouchEvent","type","which","button","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","screen","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","threshold","allowThresholdMove","preventDefault","formElements","activeElement","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","pow","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","position","time","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","clickTimeout","clearTimeout","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","j","once","longSwipesMs","stopIndex","groupSize","ratio","longSwipes","longSwipesRatio","shortSwipes","onResize","offsetWidth","breakpoints","setBreakpoint","newTranslate","min","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","defaults","init","touchEventsTarget","breakpointsInverse","uniqueNavElements","preloadImages","updateOnImagesReady","passiveListeners","containerModifierClass","wrapperClass","prototypes","attachEvents","touchEvents","wrapperEl","capture","start","passive","move","end","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","directionChanged","needsReLoop","changeDirection","points","point","sort","b","innerWidth","wasLocked","navigation","classes","addClasses","classNames","suffixes","suffix","removeClasses","images","loadImage","imageEl","src","srcset","sizes","checkForComplete","image","onReady","complete","Image","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","_SwiperClass","_super","_this","_len5","_key5","prototypeGroup","protoMethod","moduleParamName","swiperParams","useModulesParams","passedParams","$","swipers","containerEl","newParams","touchEventsTouch","touchEventsDesktop","useModules","spv","breakLoop","_i7","_i8","translateValue","newDirection","needUpdate","currentDirection","slideEl","deleteInstance","cleanStyles","newDefaults","Device$1","Support$1","support","Browser$1","browser","Resize","resize","resizeHandler","orientationChangeHandler","destroy","Observer","func","MutationObserver","WebkitMutationObserver","attach","options","ObserverFunc","mutations","observerUpdate","requestAnimationFrame","observe","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","Observer$1","Virtual","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","slidesToRender","prependIndexes","appendIndexes","_i9","cache","$slideEl","numberOfNewSlides","newCache","cachedIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","shiftKey","altKey","ctrlKey","metaKey","nodeName","keyboard","onlyInViewport","inView","windowWidth","windowHeight","innerHeight","swiperOffset","left","scrollLeft","swiperCoord","top","returnValue","enable","disable","Keyboard$1","Mousewheel","lastScrollTime","isSupported","element","setAttribute","implementation","hasFeature","isEventSupported","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","sensitivity","timeout","autoplayDisableOnInteraction","stop","getTime","eventsTarged","Navigation","_swiper$navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","nextEl","prevEl","_swiper$navigation2","Pagination","pagination","current","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","hiddenClass","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","dragStartPos","onDragStart","getBoundingClientRect","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Parallax","setTransform","p","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","minRatio","onGestureEnd","changedTouches","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","toggle","out","in","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","_i10","_i11","Controller","LinearSpline","guess","i1","i3","binarySearch","array","interpolate","getInterpolateFunction","c","controller","spline","_setTranslate","multiplier","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","a11y","makeElFocusable","addElRole","role","addElLabel","label","disableEl","enableEl","onEnterKey","$targetEl","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","click","message","notification","liveRegion","updateNavigation","_swiper$navigation4","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","History","history","pushState","hashNavigation","paths","getPathValues","scrollToSlide","replaceState","setHistoryPopState","pathArray","pathname","part","setHistory","slugify","includes","currentState","state","_slide3","_index2","HashNavigation","onHashCange","newHash","hash","setHash","_slide4","_slide5","_index3","watchState","Autoplay","$activeSlideEl","reverseDirection","stopOnLastSlide","pause","waitForTransition","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","shadow","slideAngle","round","tz","_transform","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","cos","scale1","scale2","_offset2","zFactor","Flip","flipEffect","limitRotation","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","center","rotate","depth","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","perspectiveOrigin","Thumbs","thumbsParams","thumbs","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","initial","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","_i12","hideOnClick","toEdge","fromEdge","isHidden","_swiper$navigation3","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","touchStart","touchEnd","doubleTap","loadOnTransitionStart","scroll","scrollbarDragMove","notificationClass","paginationUpdate","disableOnInteraction","beforeTransitionStart","sliderFirstMove","slideChange","beforeDestroy"],"mappings":"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","file":"5fcd5e32-bed0aa7603d00b27190c.js","sourcesContent":["import _assertThisInitialized from \"C:/Users/garre/Desktop/todo/react/gatsby-af-tour/node_modules/@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"C:/Users/garre/Desktop/todo/react/gatsby-af-tour/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"C:/Users/garre/Desktop/todo/react/gatsby-af-tour/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"C:/Users/garre/Desktop/todo/react/gatsby-af-tour/node_modules/@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _classCallCheck from \"C:/Users/garre/Desktop/todo/react/gatsby-af-tour/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"C:/Users/garre/Desktop/todo/react/gatsby-af-tour/node_modules/@babel/runtime/helpers/esm/createClass\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\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 */\nimport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, data, transform, transition as transition$1, on, off, trigger, transitionEnd as transitionEnd$1, outerWidth, outerHeight, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, remove, add, styles } from 'dom7/dist/dom7.modular';\nimport { window, document } from 'ssr-window';\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$1,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd$1,\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 deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n },\n nextTick: function nextTick(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return setTimeout(callback, delay);\n },\n now: function now() {\n return Date.now();\n },\n getTranslate: function getTranslate(el) {\n var axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n },\n parseUrlQuery: function parseUrlQuery(url) {\n var query = {};\n var urlToParse = url || window.location.href;\n var i;\n var params;\n var param;\n var length;\n\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter(function (paramsPart) {\n return paramsPart !== '';\n });\n length = params.length;\n\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\n return query;\n },\n isObject: function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend: function extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n }\n};\n\nvar Support = function Support() {\n var testDiv = document.createElement('div');\n return {\n touch: window.Modernizr && window.Modernizr.touch === true || function checkTouch() {\n return !!(window.navigator.maxTouchPoints > 0 || 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch);\n }(),\n pointerEvents: !!(window.navigator.pointerEnabled || window.PointerEvent || 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints > 0),\n prefixedPointerEvents: !!window.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: window.Modernizr && window.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\n for (var i = 0; i < styles.length; i += 1) {\n if (styles[i] in style) return true;\n }\n\n return false;\n }(),\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}();\n\nvar Browser = function Browser() {\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g),\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}();\n\nvar SwiperClass = /*#__PURE__*/function () {\n function SwiperClass() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, SwiperClass);\n\n var self = this;\n self.params = params; // Events\n\n self.eventsListeners = {};\n\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\n _createClass(SwiperClass, [{\n key: \"on\",\n value: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n }, {\n key: \"once\",\n value: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n self.off(events, onceHandler);\n\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n }\n\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n }, {\n key: \"off\",\n value: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && 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 }, {\n key: \"emit\",\n value: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n }, {\n key: \"useModulesParams\",\n value: function useModulesParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n }, {\n key: \"useModules\",\n value: function useModules() {\n var modulesParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Extend instance methods and props\n\n if (module.instance) {\n Object.keys(module.instance).forEach(function (modulePropName) {\n var moduleProp = module.instance[modulePropName];\n\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n } // Add event listeners\n\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n }], [{\n key: \"components\",\n set: function set(components) {\n var Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n }, {\n key: \"installModule\",\n value: function installModule(module) {\n var Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n var name = module.name || \"\".concat(Object.keys(Class.prototype.modules).length, \"_\").concat(Utils.now());\n Class.prototype.modules[name] = module; // Prototype\n\n if (module.proto) {\n Object.keys(module.proto).forEach(function (key) {\n Class.prototype[key] = module.proto[key];\n });\n } // Class\n\n\n if (module.static) {\n Object.keys(module.static).forEach(function (key) {\n Class[key] = module.static[key];\n });\n } // Callback\n\n\n if (module.install) {\n for (var _len3 = arguments.length, params = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n params[_key3 - 1] = arguments[_key3];\n }\n\n module.install.apply(Class, params);\n }\n\n return Class;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n var Class = this;\n\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Class.installModule(m);\n });\n return Class;\n }\n\n for (var _len4 = arguments.length, params = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n params[_key4 - 1] = arguments[_key4];\n }\n\n return Class.installModule.apply(Class, [module].concat(params));\n }\n }]);\n\n return SwiperClass;\n}();\n\nfunction updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left'), 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}\n\nfunction updateSlides() {\n var swiper = this;\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\".concat(swiper.params.slideClass));\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n\n var _slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'column' || params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n 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\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n\n _slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n _slide.css(\"margin-\".concat(swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && \"\".concat(params.spaceBetween, \"px\")).attr('data-swiper-column', column).attr('data-swiper-row', row);\n }\n\n if (_slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = window.getComputedStyle(_slide[0], null);\n var currentTransform = _slide[0].style.transform;\n var currentWebKitTransform = _slide[0].style.webkitTransform;\n\n if (currentTransform) {\n _slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n _slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? _slide.outerWidth(true) : _slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width'));\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\n if (boxSizing && boxSizing === 'border-box' && !Browser.isIE) {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\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\n var _boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (_boxSizing && _boxSizing === 'border-box' && !Browser.isIE) {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n\n if (currentTransform) {\n _slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n _slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = \"\".concat(slideSize, \"px\");\n } else {\n slides[i].style.height = \"\".concat(slideSize, \"px\");\n }\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")\n });\n }\n\n if (!Support.flexbox || params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")\n });else $wrapperEl.css({\n height: \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")\n });else $wrapperEl.css({\n height: \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")\n });\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.css({\n marginLeft: \"\".concat(spaceBetween, \"px\")\n });else slides.css({\n marginRight: \"\".concat(spaceBetween, \"px\")\n });\n } else slides.css({\n marginBottom: \"\".concat(spaceBetween, \"px\")\n });\n }\n\n if (params.centerInsufficientSlides) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Utils.extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n\nfunction updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n } // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var _index = swiper.activeIndex + i;\n\n if (_index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(_index)[0]);\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', \"\".concat(newHeight, \"px\"));\n}\n\nfunction updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n\nfunction updateSlidesProgress() {\n var translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this && this.translate || 0;\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var _slide2 = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - _slide2.swiperSlideOffset) / (_slide2.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility) {\n var slideBefore = -(offsetCenter - _slide2.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(_slide2);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n _slide2.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\n\nfunction updateProgress() {\n var translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 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,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Utils.extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n\nfunction updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(\"\".concat(params.slideActiveClass, \" \").concat(params.slideNextClass, \" \").concat(params.slidePrevClass, \" \").concat(params.slideDuplicateActiveClass, \" \").concat(params.slideDuplicateNextClass, \" \").concat(params.slideDuplicatePrevClass));\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(activeIndex, \"\\\"]\"));\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\".concat(params.slideClass)).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\".concat(params.slideClass)).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n }\n }\n}\n\nfunction updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n snapIndex = Math.floor(activeIndex / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n 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\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\".concat(params.slideClass))[0];\n var slideFound = false;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};\n\nfunction getTranslate() {\n var axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.isHorizontal() ? 'x' : 'y';\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n var currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (!params.virtualTranslate) {\n if (Support.transforms3d) $wrapperEl.transform(\"translate3d(\".concat(x, \"px, \").concat(y, \"px, \").concat(z, \"px)\"));else $wrapperEl.transform(\"translate(\".concat(x, \"px, \").concat(y, \"px)\"));\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nvar translate = {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate\n};\n\nfunction setTransition(duration, byController) {\n var swiper = this;\n swiper.$wrapperEl.transition(duration);\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionStart() {\n var runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var direction = arguments.length > 1 ? arguments[1] : undefined;\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n\nfunction transitionEnd() {\n var runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var direction = arguments.length > 1 ? arguments[1] : undefined;\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex;\n swiper.animating = false;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n\nvar transition = {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};\n\nfunction slideTo() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var internal = arguments.length > 3 ? arguments[3] : undefined;\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var snapIndex = Math.floor(slideIndex / params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (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 } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n\nfunction slideToLoop() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var internal = arguments.length > 3 ? arguments[3] : undefined;\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\n\n\nfunction slideNext() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\n\n\nfunction slidePrev() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var normalizedSlidesGrid = slidesGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\n\n\nfunction slideReset() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n/* eslint no-unused-vars: \"off\" */\n\n\nfunction slideToClosest() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\n var swiper = this;\n var index = swiper.activeIndex;\n var snapIndex = Math.floor(index / swiper.params.slidesPerGroup);\n\n if (snapIndex < swiper.snapGrid.length - 1) {\n var _translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (_translate - currentSnap > (nextSnap - currentSnap) / 2) {\n index = swiper.params.slidesPerGroup;\n }\n }\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(params.slideDuplicateClass, \")\")).eq(0).index();\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(params.slideDuplicateClass, \")\")).eq(0).index();\n Utils.nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};\n\nfunction loopCreate() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass)).remove();\n var slides = $wrapperEl.children(\".\".concat(params.slideClass));\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(\"\".concat(params.slideClass, \" \").concat(params.slideBlankClass));\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\".concat(params.slideClass));\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (index, el) {\n var slide = $(el);\n if (index < swiper.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i3 = 0; _i3 < appendSlides.length; _i3 += 1) {\n $wrapperEl.append($(appendSlides[_i3].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i4 = prependSlides.length - 1; _i4 >= 0; _i4 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i4].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n\nfunction loopFix() {\n var swiper = this;\n var params = swiper.params,\n activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (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\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n}\n\nfunction loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \",.\").concat(params.slideClass, \".\").concat(params.slideBlankClass)).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n\nvar loop = {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n var swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n\nfunction unsetGrabCursor() {\n var swiper = this;\n if (Support.touch || swiper.params.watchOverflow && swiper.isLocked) return;\n swiper.el.style.cursor = '';\n}\n\nvar grabCursor = {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};\n\nfunction appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\n\nfunction prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\".concat(params.slideClass));\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i5 = 0; _i5 < slides.length; _i5 += 1) {\n if (slides[_i5]) $wrapperEl.append(slides[_i5]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i6 = 0; _i6 < slidesBuffer.length; _i6 += 1) {\n $wrapperEl.append(slidesBuffer[_i6]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\".concat(params.slideClass));\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n\nfunction removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}\n\nvar manipulation = {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};\n\nvar Device = function Device() {\n var ua = window.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: window.cordova || window.phonegap,\n phonegap: window.cordova || window.phonegap\n };\n var windows = ua.match(/(Windows Phone);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/); // Windows\n\n if (windows) {\n device.os = 'windows';\n device.osVersion = windows[2];\n device.windows = true;\n } // Android\n\n\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\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // iOS\n\n\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.iphone = true;\n } // iOS 8+ changed UA\n\n\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 } // Desktop\n\n\n device.desktop = !(device.os || device.android || device.webView); // Webview\n\n device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i); // Minimal UI\n\n if (device.os && device.os === 'ios') {\n var osVersionArr = device.osVersion.split('.');\n var metaViewport = document.querySelector('meta[name=\"viewport\"]');\n device.minimalUi = !device.webView && (ipod || iphone) && (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7) && metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0;\n } // Pixel Ratio\n\n\n device.pixelRatio = window.devicePixelRatio || 1; // Export object\n\n return device;\n}();\n\nfunction onTouchStart(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : \".\".concat(params.noSwipingClass))[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$(e).closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.screen.width - edgeSwipeThreshold)) {\n return;\n }\n\n 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) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($(e.target).is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== e.target) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type === 'mousemove') 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\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = Utils.now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n e.preventDefault();\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = Utils.now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime > 300) {\n if (data.clickTimeout) clearTimeout(data.clickTimeout);\n data.clickTimeout = Utils.nextTick(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.emit('click', e);\n }, 300);\n }\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n if (data.clickTimeout) clearTimeout(data.clickTimeout);\n swiper.emit('doubleTap', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || Utils.now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\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\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += 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 } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + params.slidesPerGroup);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n }\n}\n\nfunction onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n\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\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n var swiper = this;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction attachEvents() {\n var swiper = this;\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n 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; // Touch Events\n\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n }\n\n if (params.simulateTouch && !Device.ios && !Device.android || params.simulateTouch && !Support.touch && Device.ios) {\n target.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n target.addEventListener('click', swiper.onClick, true);\n }\n } // Resize handler\n\n swiper.on(Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n}\n\nfunction detachEvents() {\n var swiper = this;\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl;\n var target = params.touchEventsTarget === 'container' ? el : wrapperEl;\n var capture = !!params.nested; // Touch Events\n\n {\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n 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\n if (params.simulateTouch && !Device.ios && !Device.android || params.simulateTouch && !Support.touch && Device.ios) {\n target.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n target.removeEventListener('click', swiper.onClick, true);\n }\n } // Resize handler\n\n swiper.off(Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nvar events = {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};\n\nfunction setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Set breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n 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\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}\n\nfunction getBreakpoint(breakpoints) {\n var swiper = this; // Get breakpoint for window width\n\n if (!breakpoints) 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) {\n return parseInt(a, 10) - parseInt(b, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var point = points[i];\n\n if (swiper.params.breakpointsInverse) {\n if (point <= window.innerWidth) {\n breakpoint = point;\n }\n } else if (point >= window.innerWidth && !breakpoint) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};\n\nfunction addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el;\n var suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n\n if (!Support.flexbox) {\n suffixes.push('no-flexbox');\n }\n\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n\n if (rtl) {\n suffixes.push('rtl');\n }\n\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n }\n\n if (Device.android) {\n suffixes.push('android');\n }\n\n if (Device.ios) {\n suffixes.push('ios');\n } // WP8 Touch Events Fix\n\n\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n suffixes.push(\"wp8-\".concat(params.direction));\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(classNames.join(' '));\n}\n\nfunction removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n}\n\nvar classes = {\n addClasses: addClasses,\n removeClasses: removeClasses\n};\n\nfunction loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n if (!imageEl.complete || !checkForComplete) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n\nfunction preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}\n\nvar images = {\n loadImage: loadImage,\n preloadImages: preloadImages\n};\n\nfunction checkOverflow() {\n var swiper = this;\n var wasLocked = swiper.isLocked;\n swiper.isLocked = swiper.snapGrid.length === 1;\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n swiper.navigation.update();\n }\n}\n\nvar checkOverflow$1 = {\n checkOverflow: checkOverflow\n};\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 // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\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 // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: 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 // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true\n};\n/* eslint no-param-reassign: \"off\" */\n\nvar prototypes = {\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow$1,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function (_SwiperClass) {\n _inherits(Swiper, _SwiperClass);\n\n var _super = _createSuper(Swiper);\n\n function Swiper() {\n var _this;\n\n _classCallCheck(this, Swiper);\n\n var el;\n var params;\n\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n _this = _super.call(this, params);\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 }); // Swiper Instance\n\n var swiper = _assertThisInitialized(_this);\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params); // Save Dom lib\n\n swiper.$ = $; // Find el\n\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return _possibleConstructorReturn(_this, undefined);\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (index, containerEl) {\n var newParams = Utils.extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return _possibleConstructorReturn(_this, swipers);\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper); // Find Wrapper\n\n var $wrapperEl = $el.children(\".\".concat(swiper.params.wrapperClass)); // Extend Swiper\n\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 isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n } else if (Support.prefixedPointerEvents) {\n desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp'];\n }\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 }); // Install Modules\n\n swiper.useModules(); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return _possibleConstructorReturn(_this, swiper);\n }\n\n _createClass(Swiper, [{\n key: \"slidesPerViewDynamic\",\n value: function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i7 = activeIndex - 1; _i7 >= 0; _i7 -= 1) {\n if (slides[_i7] && !breakLoop) {\n slideSize += slides[_i7].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i8 = activeIndex + 1; _i8 < slides.length; _i8 += 1) {\n if (slidesGrid[_i8] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n }\n }, {\n key: \"update\",\n value: function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n }, {\n key: \"changeDirection\",\n value: function changeDirection(newDirection) {\n var needUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\".concat(swiper.params.containerModifierClass).concat(currentDirection, \" wp8-\").concat(currentDirection)).addClass(\"\".concat(swiper.params.containerModifierClass).concat(newDirection));\n\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\n swiper.$el.addClass(\"\".concat(swiper.params.containerModifierClass, \"wp8-\").concat(newDirection));\n }\n\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideIndex, slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n }, {\n key: \"init\",\n value: function init() {\n var swiper = this;\n if (swiper.initialized) return;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var deleteInstance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var cleanStyles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index').removeAttr('data-swiper-column').removeAttr('data-swiper-row');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n }], [{\n key: \"extendDefaults\",\n value: function extendDefaults(newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n }\n }, {\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }, {\n key: \"Class\",\n get: function get() {\n return SwiperClass;\n }\n }, {\n key: \"$\",\n get: function get() {\n return $;\n }\n }]);\n\n return Swiper;\n}(SwiperClass);\n\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 create() {\n var swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init() {\n var swiper = this; // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy() {\n var swiper = this;\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};\nvar Observer = {\n func: window.MutationObserver || window.WebkitMutationObserver,\n attach: function attach(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nvar Observer$1 = {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n 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 init() {\n var swiper = this;\n swiper.observer.init();\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.destroy();\n }\n }\n};\nvar Virtual = {\n update: function update(force) {\n var swiper = this;\n var _swiper$params = swiper.params,\n slidesPerView = _swiper$params.slidesPerView,\n slidesPerGroup = _swiper$params.slidesPerGroup,\n centeredSlides = _swiper$params.centeredSlides;\n var _swiper$params$virtua = swiper.params.virtual,\n addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\n addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\n var _swiper$virtual = swiper.virtual,\n previousFrom = _swiper$virtual.from,\n previousTo = _swiper$virtual.to,\n slides = _swiper$virtual.slides,\n previousSlidesGrid = _swiper$virtual.slidesGrid,\n renderSlide = _swiper$virtual.renderSlide,\n previousOffset = _swiper$virtual.offset;\n swiper.updateActiveIndex();\n var activeIndex = swiper.activeIndex || 0;\n var offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n var slidesAfter;\n var slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\n }\n\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Utils.extend(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, \"\".concat(offset, \"px\"));\n }\n\n swiper.updateProgress();\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: function getSlides() {\n var slidesToRender = [];\n\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n onRendered();\n return;\n }\n\n var prependIndexes = [];\n var appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(\".\".concat(swiper.params.slideClass)).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(\".\".concat(swiper.params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(i, \"\\\"]\")).remove();\n }\n }\n }\n\n for (var _i9 = 0; _i9 < slides.length; _i9 += 1) {\n if (_i9 >= from && _i9 <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(_i9);\n } else {\n if (_i9 > previousTo) appendIndexes.push(_i9);\n if (_i9 < previousFrom) prependIndexes.push(_i9);\n }\n }\n }\n\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) {\n return b - a;\n }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, \"\".concat(offset, \"px\"));\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\n var params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(\"
\"));\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide: function appendSlide(slides) {\n var swiper = this;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slides) {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cache[cachedIndex];\n });\n swiper.virtual.cache = newCache;\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide: function removeSlide(slidesIndexes) {\n var swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n var activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides: function removeAllSlides() {\n var swiper = this;\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n }\n};\nvar Virtual$1 = {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {}\n }\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"virtual\"));\n var overwriteParams = {\n watchSlidesProgress: true\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n }\n }\n};\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && kc === 39 || swiper.isVertical() && kc === 40 || kc === 34)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && kc === 37 || swiper.isVertical() && kc === 38 || kc === 33)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (kc === 33 || kc === 34 || kc === 37 || kc === 39 || kc === 38 || kc === 40)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\".concat(swiper.params.slideClass)).length > 0 && swiper.$el.parents(\".\".concat(swiper.params.slideActiveClass)).length === 0) {\n return undefined;\n }\n\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (kc === 33 || kc === 34 || kc === 37 || kc === 39) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((kc === 34 || kc === 39) && !rtl || (kc === 33 || kc === 37) && rtl) swiper.slideNext();\n if ((kc === 33 || kc === 37) && !rtl || (kc === 34 || kc === 39) && rtl) swiper.slidePrev();\n } else {\n if (kc === 33 || kc === 34 || kc === 38 || kc === 40) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (kc === 34 || kc === 40) swiper.slideNext();\n if (kc === 33 || kc === 38) swiper.slidePrev();\n }\n\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nvar Keyboard$1 = {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper)\n }\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};\n\nfunction isEventSupported() {\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar Mousewheel = {\n lastScrollTime: Utils.now(),\n event: function getEvent() {\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n }(),\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var swiper = this;\n var params = swiper.params.mousewheel;\n if (!swiper.mouseEntered && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\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 } else if (params.releaseOnEdges) return true;\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', e);\n } else if (params.releaseOnEdges) return true;\n }\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime();\n } else {\n // Freemode or scrollContainer:\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = Utils.nextTick(function () {\n swiper.slideToClosest();\n }, 300);\n } // Emit event\n\n\n swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n enable: function enable() {\n var swiper = this;\n if (!Mousewheel.event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\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 disable() {\n var swiper = this;\n if (!Mousewheel.event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n\n target.off(Mousewheel.event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nvar Mousewheel$1 = {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container'\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n lastScrollTime: Utils.now()\n }\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};\nvar Navigation = {\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nvar Navigation$1 = {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper)\n }\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge() {\n var swiper = this;\n swiper.navigation.update();\n },\n fromEdge: function fromEdge() {\n var swiper = this;\n swiper.navigation.update();\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.navigation.destroy();\n },\n click: function click(e) {\n var swiper = this;\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if (swiper.params.navigation.hideOnClick && !$(e.target).is($prevEl) && !$(e.target).is($nextEl)) {\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', \"\".concat(swiper.pagination.bulletSize * (params.dynamicMainBullets + 4), \"px\"));\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(\"\".concat(params.bulletActiveClass, \" \").concat(params.bulletActiveClass, \"-next \").concat(params.bulletActiveClass, \"-next-next \").concat(params.bulletActiveClass, \"-prev \").concat(params.bulletActiveClass, \"-prev-prev \").concat(params.bulletActiveClass, \"-main\"));\n\n if ($el.length > 1) {\n bullets.each(function (index, bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(\"\".concat(params.bulletActiveClass, \"-prev\")).prev().addClass(\"\".concat(params.bulletActiveClass, \"-prev-prev\"));\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(\"\".concat(params.bulletActiveClass, \"-next\")).next().addClass(\"\".concat(params.bulletActiveClass, \"-next-next\"));\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n $firstDisplayedBullet.prev().addClass(\"\".concat(params.bulletActiveClass, \"-prev\")).prev().addClass(\"\".concat(params.bulletActiveClass, \"-prev-prev\"));\n $lastDisplayedBullet.next().addClass(\"\".concat(params.bulletActiveClass, \"-next\")).next().addClass(\"\".concat(params.bulletActiveClass, \"-next-next\"));\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', \"\".concat(bulletsOffset, \"px\"));\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(\".\".concat(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(\".\".concat(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(\".\".concat(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\".concat(scaleX, \") scaleY(\").concat(scaleY, \")\")).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\".concat(params.bulletElement, \" class=\\\"\").concat(params.bulletClass, \"\\\">\").concat(params.bulletElement, \">\");\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(\".\".concat(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\") + ' / ' + \"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && swiper.$el.find(params.el).length === 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\".concat(params.modifierClass).concat(params.type, \"-dynamic\"));\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', \".\".concat(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', \".\".concat(params.bulletClass));\n }\n }\n};\nvar Pagination$1 = {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n 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 init() {\n var swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange() {\n var swiper = this;\n\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange() {\n var swiper = this;\n\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange() {\n var swiper = this;\n\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange() {\n var swiper = this;\n\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.pagination.destroy();\n },\n click: function click(e) {\n var swiper = this;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(e.target).hasClass(swiper.params.pagination.bulletClass)) {\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};\nvar Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n var dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n if (Support.transforms3d) {\n $dragEl.transform(\"translate3d(\".concat(newPos, \"px, 0, 0)\"));\n } else {\n $dragEl.transform(\"translateX(\".concat(newPos, \"px)\"));\n }\n\n $dragEl[0].style.width = \"\".concat(newSize, \"px\");\n } else {\n if (Support.transforms3d) {\n $dragEl.transform(\"translate3d(0px, \".concat(newPos, \"px, 0)\"));\n } else {\n $dragEl.transform(\"translateY(\".concat(newPos, \"px)\"));\n }\n\n $dragEl[0].style.height = \"\".concat(newSize, \"px\");\n }\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 setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl,\n $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\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = \"\".concat(dragSize, \"px\");\n } else {\n $dragEl[0].style.height = \"\".concat(dragSize, \"px\");\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n 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 getPointerPosition(e) {\n var swiper = this;\n\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX || e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY || e.clientY;\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el,\n dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n dragStartPos = scrollbar.dragStartPos;\n var positionRatio;\n positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n 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 onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? 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\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();else 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 onDragEnd(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) return;\n swiper.scrollbar.isTouched = false;\n\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\n swiper.emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = Support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\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 disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = Support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = Support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\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 init() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n var params = swiper.params.scrollbar;\n var $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find(\".\".concat(swiper.params.scrollbar.dragClass));\n\n if ($dragEl.length === 0) {\n $dragEl = $(\"\"));\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n }\n};\nvar Scrollbar$1 = {\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 create() {\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 init() {\n var swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize: function resize() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.destroy();\n }\n }\n};\nvar Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\n var rtl = swiper.rtl;\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = \"\".concat(parseInt(x, 10) * progress * rtlFactor, \"%\");\n } else {\n x = \"\".concat(x * progress * rtlFactor, \"px\");\n }\n\n if (y.indexOf('%') >= 0) {\n y = \"\".concat(parseInt(y, 10) * progress, \"%\");\n } else {\n y = \"\".concat(y * progress, \"px\");\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(\"translate3d(\".concat(x, \", \").concat(y, \", 0px)\"));\n } else {\n var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(\"translate3d(\".concat(x, \", \").concat(y, \", 0px) scale(\").concat(currentScale, \")\"));\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides,\n progress = swiper.progress,\n snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (index, el) {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each(function (slideIndex, slideEl) {\n var slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (index, el) {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var swiper = this;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (index, parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n }\n};\nvar Parallax$1 = {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper)\n }\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n }\n }\n};\nvar Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) 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 onGestureStart(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\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest('.swiper-slide');\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\".concat(params.containerClass));\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n gesture.$imageEl.transition(0);\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);\n }\n\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android) {\n return;\n }\n\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (Device.android) 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 onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = 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\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n } // Define if we need image drag\n\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n 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\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(\"translate3d(\".concat(image.currentX, \"px, \").concat(image.currentY, \"px,0)\"));\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n 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; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\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(\".concat(image.currentX, \"px, \").concat(image.currentY, \"px,0)\"));\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\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 toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function _in(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n\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(\".\".concat(params.containerClass));\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n gesture.$slideEl.addClass(\"\".concat(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\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\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\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px,0)\"));\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n },\n out: function out() {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n\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(\".\".concat(params.containerClass));\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) 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(\"\".concat(params.zoomedSlideClass));\n gesture.$slideEl = undefined;\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false; // Scale image\n\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 } 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 } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\".concat(swiper.params.zoom.containerClass), zoom.onTouchMove);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) return;\n swiper.zoom.enabled = false;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false; // Scale image\n\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 } 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 } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\".concat(swiper.params.zoom.containerClass), zoom.onTouchMove);\n }\n};\nvar Zoom$1 = {\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 create() {\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 get() {\n return scale;\n },\n set: function set(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\n scale = value;\n }\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.zoom.disable();\n },\n touchStart: function touchStart(e) {\n var swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(e) {\n var swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(e) {\n var swiper = this;\n\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n }\n }\n};\nvar Lazy = {\n loadInSlide: function loadInSlide(index) {\n var loadInDuplicate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\".concat(swiper.params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(index, \"\\\"]\")) : swiper.slides.eq(index);\n var $images = $slideEl.find(\".\".concat(params.elementClass, \":not(.\").concat(params.loadedClass, \"):not(.\").concat(params.loadingClass, \")\"));\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(function (imageIndex, imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', \"url(\\\"\".concat(background, \"\\\")\"));\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(\".\".concat(params.preloaderClass)).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\".concat(slideOriginalIndex, \"\\\"]:not(.\").concat(swiper.params.slideDuplicateClass, \")\"));\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(slideOriginalIndex, \"\\\"]\"));\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n });\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n swiperParams = swiper.params,\n slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n var slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(\".\".concat(swiperParams.slideClass, \"[data-swiper-slide-index=\\\"\").concat(index, \"\\\"]\")).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(\".\".concat(swiperParams.slideVisibleClass)).each(function (elIndex, slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (var _i10 = activeIndex + slidesPerView; _i10 < maxIndex; _i10 += 1) {\n if (slideExist(_i10)) swiper.lazy.loadInSlide(_i10);\n } // Prev Slides\n\n\n for (var _i11 = minIndex; _i11 < activeIndex; _i11 += 1) {\n if (slideExist(_i11)) swiper.lazy.loadInSlide(_i11);\n }\n } else {\n var nextSlide = $wrapperEl.children(\".\".concat(swiperParams.slideNextClass));\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n var prevSlide = $wrapperEl.children(\".\".concat(swiperParams.slidePrevClass));\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n};\nvar Lazy$1 = {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper)\n }\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init() {\n var swiper = this;\n\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll: function scroll() {\n var swiper = this;\n\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize: function resize() {\n var swiper = this;\n\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove: function scrollbarDragMove() {\n var swiper = this;\n\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart() {\n var swiper = this;\n\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n }\n }\n};\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\nvar Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(_setTranslate, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n Utils.nextTick(function () {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n};\nvar Controller$1 = {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper)\n }\n });\n },\n on: {\n update: function update() {\n var swiper = this;\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize() {\n var swiper = this;\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(translate, byController) {\n var swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n }\n }\n};\nvar a11y = {\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey: function onEnterKey(e) {\n var swiper = this;\n var params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n var $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(\".\".concat(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n if (swiper.params.loop) return;\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletIndex, bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1));\n });\n }\n },\n init: function init() {\n var swiper = this;\n swiper.$el.append(swiper.a11y.liveRegion); // Navigation\n\n var params = swiper.params.a11y;\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', \".\".concat(swiper.params.pagination.bulletClass), swiper.a11y.onEnterKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', \".\".concat(swiper.params.pagination.bulletClass), swiper.a11y.onEnterKey);\n }\n }\n};\nvar A11y = {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}'\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $(\"\"))\n }\n });\n Object.keys(a11y).forEach(function (methodName) {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy() {\n var swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};\nvar History = {\n init: function init() {\n var swiper = this;\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues: function getPathValues() {\n var pathArray = window.location.pathname.slice(1).split('/').filter(function (part) {\n return part !== '';\n });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return {\n key: key,\n value: value\n };\n },\n setHistory: function setHistory(key, index) {\n var swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n var slide = swiper.slides.eq(index);\n var value = History.slugify(slide.attr('data-history'));\n\n if (!window.location.pathname.includes(key)) {\n value = \"\".concat(key, \"/\").concat(value);\n }\n\n var currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value: value\n }, null, value);\n } else {\n window.history.pushState({\n value: value\n }, null, value);\n }\n },\n slugify: function slugify(text) {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var _slide3 = swiper.slides.eq(i);\n\n var slideHistory = History.slugify(_slide3.attr('data-history'));\n\n if (slideHistory === value && !_slide3.hasClass(swiper.params.slideDuplicateClass)) {\n var _index2 = _slide3.index();\n\n swiper.slideTo(_index2, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n }\n};\nvar History$1 = {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides'\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper)\n }\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n }\n }\n};\nvar HashNavigation = {\n onHashCange: function onHashCange() {\n var swiper = this;\n var newHash = document.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideClass, \"[data-hash=\\\"\").concat(newHash, \"\\\"]\")).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, \"#\".concat(swiper.slides.eq(swiper.activeIndex).attr('data-hash')) || '');\n } else {\n var _slide4 = swiper.slides.eq(swiper.activeIndex);\n\n var hash = _slide4.attr('data-hash') || _slide4.attr('data-history');\n\n document.location.hash = hash || '';\n }\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n swiper.hashNavigation.initialized = true;\n var hash = document.location.hash.replace('#', '');\n\n if (hash) {\n var speed = 0;\n\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var _slide5 = swiper.slides.eq(i);\n\n var slideHash = _slide5.attr('data-hash') || _slide5.attr('data-history');\n\n if (slideHash === hash && !_slide5.hasClass(swiper.params.slideDuplicateClass)) {\n var _index3 = _slide5.index();\n\n swiper.slideTo(_index3, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n }\n};\nvar HashNavigation$1 = {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper)\n }\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd: function transitionEnd() {\n var swiper = this;\n\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n }\n }\n};\n/* eslint no-underscore-dangle: \"off\" */\n\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = 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 } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n }\n};\nvar Autoplay$1 = {\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 create() {\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 onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== this) 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\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n }\n }\n });\n },\n on: {\n init: function init() {\n var swiper = this;\n\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(speed, internal) {\n var swiper = this;\n\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove() {\n var swiper = this;\n\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n destroy: function destroy() {\n var swiper = this;\n\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n }\n }\n};\nvar Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var _offset = $slideEl[0].swiperSlideOffset;\n var tx = -_offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl.css({\n opacity: slideOpacity\n }).transform(\"translate3d(\".concat(tx, \"px, \").concat(ty, \"px, 0px)\"));\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nvar EffectFade = {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper)\n }\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"fade\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n }\n }\n};\nvar Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides,\n swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n rtl = swiper.rtlTranslate,\n swiperSize = swiper.size;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: \"\".concat(swiperWidth, \"px\")\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var _transform = \"rotateX(\".concat(isHorizontal ? 0 : -slideAngle, \"deg) rotateY(\").concat(isHorizontal ? slideAngle : 0, \"deg) translate3d(\").concat(tx, \"px, \").concat(ty, \"px, \").concat(tz, \"px)\");\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(_transform);\n\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"\"));\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"\"));\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': \"50% 50% -\".concat(swiperSize / 2, \"px\"),\n '-moz-transform-origin': \"50% 50% -\".concat(swiperSize / 2, \"px\"),\n '-ms-transform-origin': \"50% 50% -\".concat(swiperSize / 2, \"px\"),\n 'transform-origin': \"50% 50% -\".concat(swiperSize / 2, \"px\")\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\"translate3d(0px, \".concat(swiperWidth / 2 + params.shadowOffset, \"px, \").concat(-swiperWidth / 2, \"px) rotateX(90deg) rotateZ(0deg) scale(\").concat(params.shadowScale, \")\"));\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var _offset2 = params.shadowOffset;\n $cubeShadowEl.transform(\"scale3d(\".concat(scale1, \", 1, \").concat(scale2, \") translate3d(0px, \").concat(swiperHeight / 2 + _offset2, \"px, \").concat(-swiperHeight / 2 / scale2, \"px) rotateX(-90deg)\"));\n }\n }\n\n var zFactor = Browser.isSafari || Browser.isUiWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(\"translate3d(0px,0,\".concat(zFactor, \"px) rotateX(\").concat(swiper.isHorizontal() ? 0 : wrapperRotate, \"deg) rotateY(\").concat(swiper.isHorizontal() ? -wrapperRotate : 0, \"deg)\"));\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n }\n};\nvar EffectCube = {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper)\n }\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"cube\"));\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"3d\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n }\n }\n};\nvar Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n var _offset3 = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -_offset3;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"\"));\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"\"));\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n $slideEl.transform(\"translate3d(\".concat(tx, \"px, \").concat(ty, \"px, 0px) rotateX(\").concat(rotateX, \"deg) rotateY(\").concat(rotateY, \"deg)\"));\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n activeIndex = swiper.activeIndex,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false; // eslint-disable-next-line\n\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return; // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nvar EffectFlip = {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper)\n }\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"flip\"));\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"3d\"));\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n }\n }\n};\nvar Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth; // Each slide offset from center\n\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n var translateZ = -translate * Math.abs(offsetMultiplier);\n var translateY = isHorizontal ? 0 : params.stretch * offsetMultiplier;\n var translateX = isHorizontal ? params.stretch * offsetMultiplier : 0; // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n var slideTransform = \"translate3d(\".concat(translateX, \"px,\").concat(translateY, \"px,\").concat(translateZ, \"px) rotateX(\").concat(rotateX, \"deg) rotateY(\").concat(rotateY, \"deg)\");\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(\"\"));\n $slideEl.append($shadowBeforeEl);\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(\"\"));\n $slideEl.append($shadowAfterEl);\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n } // Set correct perspective for IE10\n\n\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n var ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = \"\".concat(center, \"px 50%\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n};\nvar EffectCoverflow = {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n modifier: 1,\n slideShadows: true\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper)\n }\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"coverflow\"));\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"3d\"));\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n }\n }\n};\nvar Thumbs = {\n init: function init() {\n var swiper = this;\n var thumbsParams = swiper.params.thumbs;\n var SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false\n }));\n swiper.thumbs.swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n var slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\".concat(slideToIndex, \"\\\"]\")).eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\".concat(slideToIndex, \"\\\"]\")).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n },\n update: function update(initial) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex, \"\\\"]\")).eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex, \"\\\"]\")).eq(0).index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;else newThumbsIndex = prevThumbsIndex;\n } else {\n newThumbsIndex = swiper.realIndex;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex + i, \"\\\"]\")).addClass(thumbActiveClass);\n }\n } else {\n for (var _i12 = 0; _i12 < thumbsToActivate; _i12 += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + _i12).addClass(thumbActiveClass);\n }\n }\n }\n};\nvar Thumbs$1 = {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs'\n }\n },\n create: function create() {\n var swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper)\n }\n });\n },\n on: {\n beforeInit: function beforeInit() {\n var swiper = this;\n var thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange() {\n var swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update: function update() {\n var swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize: function resize() {\n var swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate() {\n var swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n }\n }\n}; // Swiper Class\n\nvar components = [Device$1, Support$1, Browser$1, Resize, Observer$1, Virtual$1, Keyboard$1, Mousewheel$1, Navigation$1, Pagination$1, Scrollbar$1, Parallax$1, Zoom$1, Lazy$1, Controller$1, A11y, History$1, HashNavigation$1, Autoplay$1, EffectFade, EffectCube, EffectFlip, EffectCoverflow, Thumbs$1];\n\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\n\nSwiper.use(components);\nexport default Swiper;"],"sourceRoot":""}