{"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","Class","name","concat","proto","static","install","_len3","_key3","m","installModule","_len4","_key4","set","components","use","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","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","_boxSizing","swiperSlideSize","centeredSlides","abs","slidesPerGroup","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","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","initialized","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","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","defaults","init","touchEventsTarget","breakpointsInverse","uniqueNavElements","preloadImages","updateOnImagesReady","passiveListeners","containerModifierClass","wrapperClass","runCallbacksOnInit","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","autoplay","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","setDragPosition","positionRatio","clientX","clientY","onDragStart","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","run","$activeSlideEl","reverseDirection","stopOnLastSlide","running","pause","paused","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-80de74e679b861c6972a.js","sourcesContent":["import _assertThisInitialized from \"D:/Projects/Rapid Circle/SalesTribe/ST08042024/STWebsiteV2/gatsby-site/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"D:/Projects/Rapid Circle/SalesTribe/ST08042024/STWebsiteV2/gatsby-site/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"D:/Projects/Rapid Circle/SalesTribe/ST08042024/STWebsiteV2/gatsby-site/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"D:/Projects/Rapid Circle/SalesTribe/ST08042024/STWebsiteV2/gatsby-site/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _classCallCheck from \"D:/Projects/Rapid Circle/SalesTribe/ST08042024/STWebsiteV2/gatsby-site/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"D:/Projects/Rapid Circle/SalesTribe/ST08042024/STWebsiteV2/gatsby-site/node_modules/babel-preset-gatsby/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.0\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: February 22, 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] = 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: \"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 key: \"components\",\n set: function set(components) {\n var Class = this;\n if (!Class.use) return;\n Class.use(components);\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') {\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\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') {\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') {\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 || slideAfter > 0 && 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 swiper.emit('slideChange');\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 } // 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 if (currentDirection === 'vertical') {\n swiper.$el.removeClass(\"\".concat(swiper.params.containerModifierClass, \"vertical wp8-vertical\")).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\n if (currentDirection === 'horizontal') {\n swiper.$el.removeClass(\"\".concat(swiper.params.containerModifierClass, \"horizontal wp8-horizontal\")).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\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)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && kc === 37 || swiper.isVertical() && kc === 38)) {\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 === 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 === 37 || kc === 39) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (kc === 39 && !rtl || kc === 37 && rtl) swiper.slideNext();\n if (kc === 37 && !rtl || kc === 39 && rtl) swiper.slidePrev();\n } else {\n if (kc === 38 || kc === 40) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (kc === 40) swiper.slideNext();\n if (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 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 var pointerPosition;\n\n if (swiper.isHorizontal()) {\n pointerPosition = e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX || e.clientX;\n } else {\n pointerPosition = e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY || e.clientY;\n }\n\n var positionRatio;\n positionRatio = (pointerPosition - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - 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 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 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]').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]').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]').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 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.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) {\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":""}