{"version":3,"file":"Swiper.js","names":["defineDs","doc","document","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","location","hash","win","window","navigator","userAgent","history","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","Dom7","arr","self","i","length","$","selector","context","els","tempParent","html","trim","indexOf","toCreate","innerHTML","push","match","split","nodeType","fn","prototype","Class","unique","uniqueArray","addClass","className","this$1","classes","j","classList","add","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","attrs","value","arguments$1","arguments","getAttribute","undefined","attrName","removeAttr","removeAttribute","data","key","el","dom7ElementDataStorage","dataKey","transform","elStyle","webkitTransform","transition","duration","webkitTransitionDuration","transitionDuration","on","assign","args","len","eventType","targetSelector","listener","capture","handleLiveEvent","e","target","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","events","event","dom7Listeners","proxyListener","event$1","dom7LiveListeners","off","handlers","handler","splice","trigger","evt","detail","bubbles","cancelable","filter","dataIndex","dispatchEvent","transitionEnd","callback","dom","fireCallBack","call","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","prop","each","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","index","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","parentNode","closest","find","foundElements","found","removeChild","toAdd","Methods","Object","keys","forEach","methodName","Utils","deleteProps","obj","object","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","parseUrlQuery","url","query","urlToParse","href","params","param","paramsPart","decodeURIComponent","isObject","o","constructor","extend","len$1","to","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","enumerable","Support","testDiv","touch","Modernizr","checkTouch","DocumentTouch","pointerEvents","pointerEnabled","PointerEvent","prefixedPointerEvents","msPointerEnabled","checkTransition","transforms3d","csstransforms3d","checkTransforms3d","flexbox","checkFlexbox","observer","checkObserver","passiveListener","checkPassiveListener","supportsPassive","opts","defineProperty","get","gestures","checkGestures","SwiperClass","eventsListeners","eventName","staticAccessors","components","configurable","priority","method","once","onceHandler","eventHandler","emit","Array","isArray","slice","eventsArray","useModulesParams","instanceParams","instance","modules","moduleName","module","useModules","modulesParams","moduleParams","modulePropName","moduleProp","bind","moduleEventName","create","set","use","installModule","name","proto","static","install","m","concat","defineProperties","updateSize","swiper","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","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesNumberEvenToRows","slidesPerColumn","Math","floor","ceil","slidesPerView","slidesPerColumnFill","max","slideSize","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","swiperSlideSize","centeredSlides","abs","slidesPerGroup","newSlidesGrid","effect","setWrapperSize","i$1","slidesGridItem","i$2","slidesGridItem$1","centerInsufficientSlides","allSlidesSize","slideSizeValue","allSlidesOffset","snap","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","visibleSlides","slideProgress","minTranslate","slideBefore","slideAfter","isVisible","progress","updateProgress","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","activeSlide","loop","slideDuplicateClass","nextSlide","prevSlide","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","update","virtualTranslate","currentTranslate","setTranslate","byController","x","y","z","previousTranslate","newProgress","transitionStart","runCallbacks","direction","autoHeight","dir","transitionEnd$1","animating","transition$1","slideTo","internal","slideIndex","preventInteractionOnTransition","initialSlide","initialized","allowSlideNext","allowSlidePrev","onSlideToWrapperTransitionEnd","destroyed","slideToLoop","newIndex","loopedSlides","slideNext","loopFix","_clientLeft","slidePrev","normalize","val","normalizedTranslate","normalizedSnapGrid","normalizedSlidesGrid","currentSnap","prevSnap","prevIndex","slideReset","slideToClosest","nextSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","diff","slideChanged","slideChanged$1","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","grabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","manipulation","Device","ua","device","ios","android","androidChrome","desktop","windows","iphone","ipod","ipad","cordova","phonegap","os","osVersion","toLowerCase","webView","osVersionArr","metaViewport","minimalUi","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","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","threshold","allowThresholdMove","preventDefault","formElements","allowTouchMove","touchStartPreventDefault","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","touchEndTime","timeDiff","lastClickTime","clickTimeout","currentPos","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","freeModeMomentumBounceRatio","needsLoopFix","freeModeMomentumBounce","freeModeSticky","longSwipesMs","stopIndex","groupSize","ratio","longSwipes","longSwipesRatio","shortSwipes","onResize","breakpoints","setBreakpoint","newTranslate","min","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","attachEvents","touchEvents","wrapperEl","touchEventsTarget","start","move","end","passiveListeners","passive","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakPointsParams","originalParams","needsReLoop","points","point","sort","b","breakpointsInverse","innerWidth","Browser","isSafari","isIE","isEdge","isUiWebView","test","addClasses","classNames","suffixes","suffix","containerModifierClass","removeClasses","loadImage","imageEl","src","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","preloadImages","imagesToLoad","imagesLoaded","updateOnImagesReady","currentSrc","images","wasLocked","navigation","checkOverflow$1","defaults","init","uniqueNavElements","wrapperClass","runCallbacksOnInit","prototypes","extendedDefaults","Swiper","SwiperClass$$1","prototypeGroup","protoMethod","moduleParamName","swiperParams","passedParams","swipers","containerEl","newParams","touchEventsTouch","touchEventsDesktop","__proto__","spv","breakLoop","update$$1","translateValue","translated","destroy","deleteInstance","cleanStyles","extendDefaults","newDefaults","Device$1","Support$1","support","Browser$1","browser","Resize","resize","resizeHandler","orientationChangeHandler","Observer","func","MutationObserver","WebkitMutationObserver","attach","options","ObserverFunc","mutations","observerUpdate","requestAnimationFrame","observe","attributes","childList","characterData","observers","observeParents","containerParents","disconnect","Observer$1","Virtual","force","ref","ref$1","addSlidesBefore","addSlidesAfter","ref$2","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","getSlides","slidesToRender","prependIndexes","appendIndexes","cache","$slideEl","newCache","cachedIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","shiftKey","altKey","ctrlKey","metaKey","keyboard","onlyInViewport","inView","windowWidth","windowHeight","innerHeight","swiperOffset","swiperCoord","returnValue","enable","disable","Keyboard$1","isEventSupported","isSupported","element","implementation","hasFeature","Mousewheel","lastScrollTime","getEvent","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","getTime","sensitivity","timeout","autoplay","autoplayDisableOnInteraction","stop","eventsTarged","Mousewheel$1","Navigation","$nextEl","$prevEl","disabledClass","lockClass","nextEl","prevEl","Navigation$1","hideOnClick","hiddenClass","toEdge","fromEdge","click","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","Pagination$1","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","scrollbarHide","setDragPosition","pointerPosition","clientX","clientY","positionRatio","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Scrollbar$1","Parallax","setTransform","p","currentOpacity","currentScale","parallax","slideEl","parallaxEl","$parallaxEl","parallaxDuration","Parallax$1","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","out","in","in$1","zoomedSlideClass","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","Zoom$1","touchStart","touchEnd","doubleTap","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","elIndex","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Lazy$1","loadOnTransitionStart","scroll","scrollbarDragMove","Controller","LinearSpline","binarySearch","search","guess","array","i1","i3","interpolate","getInterpolateFunction","c","controller","spline","setTranslate$1","controlled","control","multiplier","controlledTranslate","setControlledTranslate","by","inverse","setControlledTransition","Controller$1","a11y","makeElFocusable","addElRole","role","addElLabel","label","disableEl","enableEl","onEnterKey","$targetEl","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","A11y","notificationClass","paginationUpdate","History","pushState","hashNavigation","paths","getPathValues","scrollToSlide","replaceState","setHistoryPopState","pathArray","pathname","part","setHistory","slugify","includes","currentState","state","slideHistory","History$1","HashNavigation","onHashCange","newHash","activeSlideHash","setHash","slideHash","watchState","HashNavigation$1","Autoplay","run","$activeSlideEl","reverseDirection","stopOnLastSlide","running","pause","paused","waitForTransition","Autoplay$1","disableOnInteraction","beforeTransitionStart","sliderFirstMove","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","EffectFade","Cube","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","$cubeShadowEl","shadow","slideAngle","round","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","cos","scale1","scale2","zFactor","EffectCube","Flip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","EffectFlip","Coverflow","coverflowEffect","center","depth","slideOffset","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","ws","perspectiveOrigin","EffectCoverflow","Thumbs","thumbsParams","thumbs","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","currentIndex","initial","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","slideThumbActiveClass","Thumbs$1","slideChange","beforeDestroy"],"sources":["DanskeSpil/Domain/AvalonComponents/Scripts/Libraries/Swiper.js"],"sourcesContent":["/* eslint-disable */\r\ndefineDs('DanskeSpil/Domain/AvalonComponents/Scripts/Libraries/Swiper', function () {\r\n\r\n 'use strict';\r\n\r\n /**\r\n * Swiper 4.4.1\r\n * Most modern mobile touch slider and framework with hardware accelerated transitions\r\n * http://www.idangero.us/swiper/\r\n *\r\n * Copyright 2014-2018 Vladimir Kharlampidi\r\n *\r\n * Released under the MIT License\r\n *\r\n * Released on: September 14, 2018\r\n */\r\n\r\n /**\r\n * SSR Window 1.0.1\r\n * Better handling for window object in SSR environment\r\n * https://github.com/nolimits4web/ssr-window\r\n *\r\n * Copyright 2018, Vladimir Kharlampidi\r\n *\r\n * Licensed under MIT\r\n *\r\n * Released on: July 18, 2018\r\n */\r\n var doc = (typeof document === 'undefined') ? {\r\n body: {},\r\n addEventListener: function addEventListener() {\r\n },\r\n removeEventListener: function removeEventListener() {\r\n },\r\n activeElement: {\r\n blur: function blur() {\r\n },\r\n nodeName: '',\r\n },\r\n querySelector: function querySelector() {\r\n return null;\r\n },\r\n querySelectorAll: function querySelectorAll() {\r\n return [];\r\n },\r\n getElementById: function getElementById() {\r\n return null;\r\n },\r\n createEvent: function createEvent() {\r\n return {\r\n initEvent: function initEvent() {\r\n },\r\n };\r\n },\r\n createElement: function createElement() {\r\n return {\r\n children: [],\r\n childNodes: [],\r\n style: {},\r\n setAttribute: function setAttribute() {\r\n },\r\n getElementsByTagName: function getElementsByTagName() {\r\n return [];\r\n },\r\n };\r\n },\r\n location: {hash: ''},\r\n } : document; // eslint-disable-line\r\n\r\n var win = (typeof window === 'undefined') ? {\r\n document: doc,\r\n navigator: {\r\n userAgent: '',\r\n },\r\n location: {},\r\n history: {},\r\n CustomEvent: function CustomEvent() {\r\n return this;\r\n },\r\n addEventListener: function addEventListener() {\r\n },\r\n removeEventListener: function removeEventListener() {\r\n },\r\n getComputedStyle: function getComputedStyle() {\r\n return {\r\n getPropertyValue: function getPropertyValue() {\r\n return '';\r\n },\r\n };\r\n },\r\n Image: function Image() {\r\n },\r\n Date: function Date() {\r\n },\r\n screen: {},\r\n setTimeout: function setTimeout() {\r\n },\r\n clearTimeout: function clearTimeout() {\r\n },\r\n } : window; // eslint-disable-line\r\n\r\n /**\r\n * Dom7 2.1.2\r\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\r\n * http://framework7.io/docs/dom.html\r\n *\r\n * Copyright 2018, Vladimir Kharlampidi\r\n * The iDangero.us\r\n * http://www.idangero.us/\r\n *\r\n * Licensed under MIT\r\n *\r\n * Released on: September 13, 2018\r\n */\r\n\r\n var Dom7 = function Dom7(arr) {\r\n var self = this;\r\n // Create array-like object\r\n for (var i = 0; i < arr.length; i += 1) {\r\n self[i] = arr[i];\r\n }\r\n self.length = arr.length;\r\n // Return collection with methods\r\n return this;\r\n };\r\n\r\n function $(selector, context) {\r\n var arr = [];\r\n var i = 0;\r\n if (selector && !context) {\r\n if (selector instanceof Dom7) {\r\n return selector;\r\n }\r\n }\r\n if (selector) {\r\n // String\r\n if (typeof selector === 'string') {\r\n var els;\r\n var tempParent;\r\n var html = selector.trim();\r\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\r\n var toCreate = 'div';\r\n if (html.indexOf(':~]/)) {\r\n // Pure ID selector\r\n els = [doc.getElementById(selector.trim().split('#')[1])];\r\n } else {\r\n // Other selectors\r\n els = (context || doc).querySelectorAll(selector.trim());\r\n }\r\n for (i = 0; i < els.length; i += 1) {\r\n if (els[i]) {\r\n arr.push(els[i]);\r\n }\r\n }\r\n }\r\n } else if (selector.nodeType || selector === win || selector === doc) {\r\n // Node/element\r\n arr.push(selector);\r\n } else if (selector.length > 0 && selector[0].nodeType) {\r\n // Array of elements or instance of Dom\r\n for (i = 0; i < selector.length; i += 1) {\r\n arr.push(selector[i]);\r\n }\r\n }\r\n }\r\n return new Dom7(arr);\r\n }\r\n\r\n $.fn = Dom7.prototype;\r\n $.Class = Dom7;\r\n $.Dom7 = Dom7;\r\n\r\n function unique(arr) {\r\n var uniqueArray = [];\r\n for (var i = 0; i < arr.length; i += 1) {\r\n if (uniqueArray.indexOf(arr[i]) === -1) {\r\n uniqueArray.push(arr[i]);\r\n }\r\n }\r\n return uniqueArray;\r\n }\r\n\r\n // Classes and attributes\r\n function addClass(className) {\r\n var this$1 = this;\r\n\r\n if (typeof className === 'undefined') {\r\n return this;\r\n }\r\n var classes = className.split(' ');\r\n for (var i = 0; i < classes.length; i += 1) {\r\n for (var j = 0; j < this.length; j += 1) {\r\n if (typeof this$1[j] !== 'undefined' && typeof this$1[j].classList !== 'undefined') {\r\n this$1[j].classList.add(classes[i]);\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function removeClass(className) {\r\n var this$1 = this;\r\n\r\n var classes = className.split(' ');\r\n for (var i = 0; i < classes.length; i += 1) {\r\n for (var j = 0; j < this.length; j += 1) {\r\n if (typeof this$1[j] !== 'undefined' && typeof this$1[j].classList !== 'undefined') {\r\n this$1[j].classList.remove(classes[i]);\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function hasClass(className) {\r\n if (!this[0]) {\r\n return false;\r\n }\r\n return this[0].classList.contains(className);\r\n }\r\n\r\n function toggleClass(className) {\r\n var this$1 = this;\r\n\r\n var classes = className.split(' ');\r\n for (var i = 0; i < classes.length; i += 1) {\r\n for (var j = 0; j < this.length; j += 1) {\r\n if (typeof this$1[j] !== 'undefined' && typeof this$1[j].classList !== 'undefined') {\r\n this$1[j].classList.toggle(classes[i]);\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function attr(attrs, value) {\r\n var arguments$1 = arguments;\r\n var this$1 = this;\r\n\r\n if (arguments.length === 1 && typeof attrs === 'string') {\r\n // Get attr\r\n if (this[0]) {\r\n return this[0].getAttribute(attrs);\r\n }\r\n return undefined;\r\n }\r\n\r\n // Set attrs\r\n for (var i = 0; i < this.length; i += 1) {\r\n if (arguments$1.length === 2) {\r\n // String\r\n this$1[i].setAttribute(attrs, value);\r\n } else {\r\n // Object\r\n // eslint-disable-next-line\r\n for (var attrName in attrs) {\r\n this$1[i][attrName] = attrs[attrName];\r\n this$1[i].setAttribute(attrName, attrs[attrName]);\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n // eslint-disable-next-line\r\n function removeAttr(attr) {\r\n var this$1 = this;\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n this$1[i].removeAttribute(attr);\r\n }\r\n return this;\r\n }\r\n\r\n function data(key, value) {\r\n var this$1 = this;\r\n\r\n var el;\r\n if (typeof value === 'undefined') {\r\n el = this[0];\r\n // Get value\r\n if (el) {\r\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\r\n return el.dom7ElementDataStorage[key];\r\n }\r\n\r\n var dataKey = el.getAttribute((\"data-\" + key));\r\n if (dataKey) {\r\n return dataKey;\r\n }\r\n return undefined;\r\n }\r\n return undefined;\r\n }\r\n\r\n // Set value\r\n for (var i = 0; i < this.length; i += 1) {\r\n el = this$1[i];\r\n if (!el.dom7ElementDataStorage) {\r\n el.dom7ElementDataStorage = {};\r\n }\r\n el.dom7ElementDataStorage[key] = value;\r\n }\r\n return this;\r\n }\r\n\r\n // Transforms\r\n // eslint-disable-next-line\r\n function transform(transform) {\r\n var this$1 = this;\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n var elStyle = this$1[i].style;\r\n elStyle.webkitTransform = transform;\r\n elStyle.transform = transform;\r\n }\r\n return this;\r\n }\r\n\r\n function transition(duration) {\r\n var this$1 = this;\r\n\r\n if (typeof duration !== 'string') {\r\n duration = duration + \"ms\"; // eslint-disable-line\r\n }\r\n for (var i = 0; i < this.length; i += 1) {\r\n var elStyle = this$1[i].style;\r\n elStyle.webkitTransitionDuration = duration;\r\n elStyle.transitionDuration = duration;\r\n }\r\n return this;\r\n }\r\n\r\n // Events\r\n function on() {\r\n var this$1 = this;\r\n var assign;\r\n\r\n var args = [], len = arguments.length;\r\n while (len--) args[len] = arguments[len];\r\n var eventType = args[0];\r\n var targetSelector = args[1];\r\n var listener = args[2];\r\n var capture = args[3];\r\n if (typeof args[1] === 'function') {\r\n (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]);\r\n targetSelector = undefined;\r\n }\r\n if (!capture) {\r\n capture = false;\r\n }\r\n\r\n function handleLiveEvent(e) {\r\n var target = e.target;\r\n if (!target) {\r\n return;\r\n }\r\n var eventData = e.target.dom7EventData || [];\r\n if (eventData.indexOf(e) < 0) {\r\n eventData.unshift(e);\r\n }\r\n if ($(target).is(targetSelector)) {\r\n listener.apply(target, eventData);\r\n }\r\n else {\r\n var parents = $(target).parents(); // eslint-disable-line\r\n for (var k = 0; k < parents.length; k += 1) {\r\n if ($(parents[k]).is(targetSelector)) {\r\n listener.apply(parents[k], eventData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function handleEvent(e) {\r\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\r\n if (eventData.indexOf(e) < 0) {\r\n eventData.unshift(e);\r\n }\r\n listener.apply(this, eventData);\r\n }\r\n\r\n var events = eventType.split(' ');\r\n var j;\r\n for (var i = 0; i < this.length; i += 1) {\r\n var el = this$1[i];\r\n if (!targetSelector) {\r\n for (j = 0; j < events.length; j += 1) {\r\n var event = events[j];\r\n if (!el.dom7Listeners) {\r\n el.dom7Listeners = {};\r\n }\r\n if (!el.dom7Listeners[event]) {\r\n el.dom7Listeners[event] = [];\r\n }\r\n el.dom7Listeners[event].push({\r\n listener: listener,\r\n proxyListener: handleEvent,\r\n });\r\n el.addEventListener(event, handleEvent, capture);\r\n }\r\n } else {\r\n // Live events\r\n for (j = 0; j < events.length; j += 1) {\r\n var event$1 = events[j];\r\n if (!el.dom7LiveListeners) {\r\n el.dom7LiveListeners = {};\r\n }\r\n if (!el.dom7LiveListeners[event$1]) {\r\n el.dom7LiveListeners[event$1] = [];\r\n }\r\n el.dom7LiveListeners[event$1].push({\r\n listener: listener,\r\n proxyListener: handleLiveEvent,\r\n });\r\n el.addEventListener(event$1, handleLiveEvent, capture);\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function off() {\r\n var this$1 = this;\r\n var assign;\r\n\r\n var args = [], len = arguments.length;\r\n while (len--) args[len] = arguments[len];\r\n var eventType = args[0];\r\n var targetSelector = args[1];\r\n var listener = args[2];\r\n var capture = args[3];\r\n if (typeof args[1] === 'function') {\r\n (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]);\r\n targetSelector = undefined;\r\n }\r\n if (!capture) {\r\n capture = false;\r\n }\r\n\r\n var events = eventType.split(' ');\r\n for (var i = 0; i < events.length; i += 1) {\r\n var event = events[i];\r\n for (var j = 0; j < this.length; j += 1) {\r\n var el = this$1[j];\r\n var handlers = (void 0);\r\n if (!targetSelector && el.dom7Listeners) {\r\n handlers = el.dom7Listeners[event];\r\n } else if (targetSelector && el.dom7LiveListeners) {\r\n handlers = el.dom7LiveListeners[event];\r\n }\r\n if (handlers && handlers.length) {\r\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\r\n var handler = handlers[k];\r\n if (listener && handler.listener === listener) {\r\n el.removeEventListener(event, handler.proxyListener, capture);\r\n handlers.splice(k, 1);\r\n } else if (!listener) {\r\n el.removeEventListener(event, handler.proxyListener, capture);\r\n handlers.splice(k, 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function trigger() {\r\n var this$1 = this;\r\n var args = [], len = arguments.length;\r\n while (len--) args[len] = arguments[len];\r\n\r\n var events = args[0].split(' ');\r\n var eventData = args[1];\r\n for (var i = 0; i < events.length; i += 1) {\r\n var event = events[i];\r\n for (var j = 0; j < this.length; j += 1) {\r\n var el = this$1[j];\r\n var evt = (void 0);\r\n try {\r\n evt = new win.CustomEvent(event, {\r\n detail: eventData,\r\n bubbles: true,\r\n cancelable: true,\r\n });\r\n } catch (e) {\r\n evt = doc.createEvent('Event');\r\n evt.initEvent(event, true, true);\r\n evt.detail = eventData;\r\n }\r\n // eslint-disable-next-line\r\n el.dom7EventData = args.filter(function (data, dataIndex) {\r\n return dataIndex > 0;\r\n });\r\n el.dispatchEvent(evt);\r\n el.dom7EventData = [];\r\n delete el.dom7EventData;\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function transitionEnd(callback) {\r\n var events = ['webkitTransitionEnd', 'transitionend'];\r\n var dom = this;\r\n var i;\r\n\r\n function fireCallBack(e) {\r\n /* jshint validthis:true */\r\n if (e.target !== this) {\r\n return;\r\n }\r\n callback.call(this, e);\r\n for (i = 0; i < events.length; i += 1) {\r\n dom.off(events[i], fireCallBack);\r\n }\r\n }\r\n\r\n if (callback) {\r\n for (i = 0; i < events.length; i += 1) {\r\n dom.on(events[i], fireCallBack);\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function outerWidth(includeMargins) {\r\n if (this.length > 0) {\r\n if (includeMargins) {\r\n // eslint-disable-next-line\r\n var styles = this.styles();\r\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\r\n }\r\n return this[0].offsetWidth;\r\n }\r\n return null;\r\n }\r\n\r\n function outerHeight(includeMargins) {\r\n if (this.length > 0) {\r\n if (includeMargins) {\r\n // eslint-disable-next-line\r\n var styles = this.styles();\r\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\r\n }\r\n return this[0].offsetHeight;\r\n }\r\n return null;\r\n }\r\n\r\n function offset() {\r\n if (this.length > 0) {\r\n var el = this[0];\r\n var box = el.getBoundingClientRect();\r\n var body = doc.body;\r\n var clientTop = el.clientTop || body.clientTop || 0;\r\n var clientLeft = el.clientLeft || body.clientLeft || 0;\r\n var scrollTop = el === win ? win.scrollY : el.scrollTop;\r\n var scrollLeft = el === win ? win.scrollX : el.scrollLeft;\r\n return {\r\n top: (box.top + scrollTop) - clientTop,\r\n left: (box.left + scrollLeft) - clientLeft,\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function styles() {\r\n if (this[0]) {\r\n return win.getComputedStyle(this[0], null);\r\n }\r\n return {};\r\n }\r\n\r\n function css(props, value) {\r\n var this$1 = this;\r\n\r\n var i;\r\n if (arguments.length === 1) {\r\n if (typeof props === 'string') {\r\n if (this[0]) {\r\n return win.getComputedStyle(this[0], null).getPropertyValue(props);\r\n }\r\n } else {\r\n for (i = 0; i < this.length; i += 1) {\r\n // eslint-disable-next-line\r\n for (var prop in props) {\r\n this$1[i].style[prop] = props[prop];\r\n }\r\n }\r\n return this;\r\n }\r\n }\r\n if (arguments.length === 2 && typeof props === 'string') {\r\n for (i = 0; i < this.length; i += 1) {\r\n this$1[i].style[props] = value;\r\n }\r\n return this;\r\n }\r\n return this;\r\n }\r\n\r\n // Iterate over the collection passing elements to `callback`\r\n function each(callback) {\r\n var this$1 = this;\r\n\r\n // Don't bother continuing without a callback\r\n if (!callback) {\r\n return this;\r\n }\r\n // Iterate over the current collection\r\n for (var i = 0; i < this.length; i += 1) {\r\n // If the callback returns false\r\n if (callback.call(this$1[i], i, this$1[i]) === false) {\r\n // End the loop early\r\n return this$1;\r\n }\r\n }\r\n // Return `this` to allow chained DOM operations\r\n return this;\r\n }\r\n\r\n // eslint-disable-next-line\r\n function html(html) {\r\n var this$1 = this;\r\n\r\n if (typeof html === 'undefined') {\r\n return this[0] ? this[0].innerHTML : undefined;\r\n }\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n this$1[i].innerHTML = html;\r\n }\r\n return this;\r\n }\r\n\r\n // eslint-disable-next-line\r\n function text(text) {\r\n var this$1 = this;\r\n\r\n if (typeof text === 'undefined') {\r\n if (this[0]) {\r\n return this[0].textContent.trim();\r\n }\r\n return null;\r\n }\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n this$1[i].textContent = text;\r\n }\r\n return this;\r\n }\r\n\r\n function is(selector) {\r\n var el = this[0];\r\n var compareWith;\r\n var i;\r\n if (!el || typeof selector === 'undefined') {\r\n return false;\r\n }\r\n if (typeof selector === 'string') {\r\n if (el.matches) {\r\n return el.matches(selector);\r\n }\r\n else if (el.webkitMatchesSelector) {\r\n return el.webkitMatchesSelector(selector);\r\n }\r\n else if (el.msMatchesSelector) {\r\n return el.msMatchesSelector(selector);\r\n }\r\n\r\n compareWith = $(selector);\r\n for (i = 0; i < compareWith.length; i += 1) {\r\n if (compareWith[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n } else if (selector === doc) {\r\n return el === doc;\r\n }\r\n else if (selector === win) {\r\n return el === win;\r\n }\r\n\r\n if (selector.nodeType || selector instanceof Dom7) {\r\n compareWith = selector.nodeType ? [selector] : selector;\r\n for (i = 0; i < compareWith.length; i += 1) {\r\n if (compareWith[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n return false;\r\n }\r\n\r\n function index() {\r\n var child = this[0];\r\n var i;\r\n if (child) {\r\n i = 0;\r\n // eslint-disable-next-line\r\n while ((child = child.previousSibling) !== null) {\r\n if (child.nodeType === 1) {\r\n i += 1;\r\n }\r\n }\r\n return i;\r\n }\r\n return undefined;\r\n }\r\n\r\n // eslint-disable-next-line\r\n function eq(index) {\r\n if (typeof index === 'undefined') {\r\n return this;\r\n }\r\n var length = this.length;\r\n var returnIndex;\r\n if (index > length - 1) {\r\n return new Dom7([]);\r\n }\r\n if (index < 0) {\r\n returnIndex = length + index;\r\n if (returnIndex < 0) {\r\n return new Dom7([]);\r\n }\r\n return new Dom7([this[returnIndex]]);\r\n }\r\n return new Dom7([this[index]]);\r\n }\r\n\r\n function append() {\r\n var this$1 = this;\r\n var args = [], len = arguments.length;\r\n while (len--) args[len] = arguments[len];\r\n\r\n var newChild;\r\n\r\n for (var k = 0; k < args.length; k += 1) {\r\n newChild = args[k];\r\n for (var i = 0; i < this.length; i += 1) {\r\n if (typeof newChild === 'string') {\r\n var tempDiv = doc.createElement('div');\r\n tempDiv.innerHTML = newChild;\r\n while (tempDiv.firstChild) {\r\n this$1[i].appendChild(tempDiv.firstChild);\r\n }\r\n } else if (newChild instanceof Dom7) {\r\n for (var j = 0; j < newChild.length; j += 1) {\r\n this$1[i].appendChild(newChild[j]);\r\n }\r\n } else {\r\n this$1[i].appendChild(newChild);\r\n }\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function prepend(newChild) {\r\n var this$1 = this;\r\n\r\n var i;\r\n var j;\r\n for (i = 0; i < this.length; i += 1) {\r\n if (typeof newChild === 'string') {\r\n var tempDiv = doc.createElement('div');\r\n tempDiv.innerHTML = newChild;\r\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\r\n this$1[i].insertBefore(tempDiv.childNodes[j], this$1[i].childNodes[0]);\r\n }\r\n } else if (newChild instanceof Dom7) {\r\n for (j = 0; j < newChild.length; j += 1) {\r\n this$1[i].insertBefore(newChild[j], this$1[i].childNodes[0]);\r\n }\r\n } else {\r\n this$1[i].insertBefore(newChild, this$1[i].childNodes[0]);\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function next(selector) {\r\n if (this.length > 0) {\r\n if (selector) {\r\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\r\n return new Dom7([this[0].nextElementSibling]);\r\n }\r\n return new Dom7([]);\r\n }\r\n\r\n if (this[0].nextElementSibling) {\r\n return new Dom7([this[0].nextElementSibling]);\r\n }\r\n return new Dom7([]);\r\n }\r\n return new Dom7([]);\r\n }\r\n\r\n function nextAll(selector) {\r\n var nextEls = [];\r\n var el = this[0];\r\n if (!el) {\r\n return new Dom7([]);\r\n }\r\n while (el.nextElementSibling) {\r\n var next = el.nextElementSibling; // eslint-disable-line\r\n if (selector) {\r\n if ($(next).is(selector)) {\r\n nextEls.push(next);\r\n }\r\n } else {\r\n nextEls.push(next);\r\n }\r\n el = next;\r\n }\r\n return new Dom7(nextEls);\r\n }\r\n\r\n function prev(selector) {\r\n if (this.length > 0) {\r\n var el = this[0];\r\n if (selector) {\r\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\r\n return new Dom7([el.previousElementSibling]);\r\n }\r\n return new Dom7([]);\r\n }\r\n\r\n if (el.previousElementSibling) {\r\n return new Dom7([el.previousElementSibling]);\r\n }\r\n return new Dom7([]);\r\n }\r\n return new Dom7([]);\r\n }\r\n\r\n function prevAll(selector) {\r\n var prevEls = [];\r\n var el = this[0];\r\n if (!el) {\r\n return new Dom7([]);\r\n }\r\n while (el.previousElementSibling) {\r\n var prev = el.previousElementSibling; // eslint-disable-line\r\n if (selector) {\r\n if ($(prev).is(selector)) {\r\n prevEls.push(prev);\r\n }\r\n } else {\r\n prevEls.push(prev);\r\n }\r\n el = prev;\r\n }\r\n return new Dom7(prevEls);\r\n }\r\n\r\n function parent(selector) {\r\n var this$1 = this;\r\n\r\n var parents = []; // eslint-disable-line\r\n for (var i = 0; i < this.length; i += 1) {\r\n if (this$1[i].parentNode !== null) {\r\n if (selector) {\r\n if ($(this$1[i].parentNode).is(selector)) {\r\n parents.push(this$1[i].parentNode);\r\n }\r\n } else {\r\n parents.push(this$1[i].parentNode);\r\n }\r\n }\r\n }\r\n return $(unique(parents));\r\n }\r\n\r\n function parents(selector) {\r\n var this$1 = this;\r\n\r\n var parents = []; // eslint-disable-line\r\n for (var i = 0; i < this.length; i += 1) {\r\n var parent = this$1[i].parentNode; // eslint-disable-line\r\n while (parent) {\r\n if (selector) {\r\n if ($(parent).is(selector)) {\r\n parents.push(parent);\r\n }\r\n } else {\r\n parents.push(parent);\r\n }\r\n parent = parent.parentNode;\r\n }\r\n }\r\n return $(unique(parents));\r\n }\r\n\r\n function closest(selector) {\r\n var closest = this; // eslint-disable-line\r\n if (typeof selector === 'undefined') {\r\n return new Dom7([]);\r\n }\r\n if (!closest.is(selector)) {\r\n closest = closest.parents(selector).eq(0);\r\n }\r\n return closest;\r\n }\r\n\r\n function find(selector) {\r\n var this$1 = this;\r\n\r\n var foundElements = [];\r\n for (var i = 0; i < this.length; i += 1) {\r\n var found = this$1[i].querySelectorAll(selector);\r\n for (var j = 0; j < found.length; j += 1) {\r\n foundElements.push(found[j]);\r\n }\r\n }\r\n return new Dom7(foundElements);\r\n }\r\n\r\n function children(selector) {\r\n var this$1 = this;\r\n\r\n var children = []; // eslint-disable-line\r\n for (var i = 0; i < this.length; i += 1) {\r\n var childNodes = this$1[i].childNodes;\r\n\r\n for (var j = 0; j < childNodes.length; j += 1) {\r\n if (!selector) {\r\n if (childNodes[j].nodeType === 1) {\r\n children.push(childNodes[j]);\r\n }\r\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\r\n children.push(childNodes[j]);\r\n }\r\n }\r\n }\r\n return new Dom7(unique(children));\r\n }\r\n\r\n function remove() {\r\n var this$1 = this;\r\n\r\n for (var i = 0; i < this.length; i += 1) {\r\n if (this$1[i].parentNode) {\r\n this$1[i].parentNode.removeChild(this$1[i]);\r\n }\r\n }\r\n return this;\r\n }\r\n\r\n function add() {\r\n var args = [], len = arguments.length;\r\n while (len--) args[len] = arguments[len];\r\n\r\n var dom = this;\r\n var i;\r\n var j;\r\n for (i = 0; i < args.length; i += 1) {\r\n var toAdd = $(args[i]);\r\n for (j = 0; j < toAdd.length; j += 1) {\r\n dom[dom.length] = toAdd[j];\r\n dom.length += 1;\r\n }\r\n }\r\n return dom;\r\n }\r\n\r\n var Methods = {\r\n addClass: addClass,\r\n removeClass: removeClass,\r\n hasClass: hasClass,\r\n toggleClass: toggleClass,\r\n attr: attr,\r\n removeAttr: removeAttr,\r\n data: data,\r\n transform: transform,\r\n transition: transition,\r\n on: on,\r\n off: off,\r\n trigger: trigger,\r\n transitionEnd: transitionEnd,\r\n outerWidth: outerWidth,\r\n outerHeight: outerHeight,\r\n offset: offset,\r\n css: css,\r\n each: each,\r\n html: html,\r\n text: text,\r\n is: is,\r\n index: index,\r\n eq: eq,\r\n append: append,\r\n prepend: prepend,\r\n next: next,\r\n nextAll: nextAll,\r\n prev: prev,\r\n prevAll: prevAll,\r\n parent: parent,\r\n parents: parents,\r\n closest: closest,\r\n find: find,\r\n children: children,\r\n remove: remove,\r\n add: add,\r\n styles: styles,\r\n };\r\n\r\n Object.keys(Methods).forEach(function (methodName) {\r\n $.fn[methodName] = Methods[methodName];\r\n });\r\n\r\n var Utils = {\r\n deleteProps: function deleteProps(obj) {\r\n var object = obj;\r\n Object.keys(object).forEach(function (key) {\r\n try {\r\n object[key] = null;\r\n } catch (e) {\r\n // no getter for object\r\n }\r\n try {\r\n delete object[key];\r\n } catch (e) {\r\n // something got wrong\r\n }\r\n });\r\n },\r\n nextTick: function nextTick(callback, delay) {\r\n if (delay === void 0) delay = 0;\r\n\r\n return setTimeout(callback, delay);\r\n },\r\n now: function now() {\r\n return Date.now();\r\n },\r\n getTranslate: function getTranslate(el, axis) {\r\n if (axis === void 0) axis = 'x';\r\n\r\n var matrix;\r\n var curTransform;\r\n var transformMatrix;\r\n\r\n var curStyle = win.getComputedStyle(el, null);\r\n\r\n if (win.WebKitCSSMatrix) {\r\n curTransform = curStyle.transform || curStyle.webkitTransform;\r\n if (curTransform.split(',').length > 6) {\r\n curTransform = curTransform.split(', ').map(function (a) {\r\n return a.replace(',', '.');\r\n }).join(', ');\r\n }\r\n // Some old versions of Webkit choke when 'none' is passed; pass\r\n // empty string instead in this case\r\n transformMatrix = new win.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\r\n } else {\r\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\r\n matrix = transformMatrix.toString().split(',');\r\n }\r\n\r\n if (axis === 'x') {\r\n // Latest Chrome and webkits Fix\r\n if (win.WebKitCSSMatrix) {\r\n curTransform = transformMatrix.m41;\r\n }\r\n // Crazy IE10 Matrix\r\n else if (matrix.length === 16) {\r\n curTransform = parseFloat(matrix[12]);\r\n }\r\n // Normal Browsers\r\n else {\r\n curTransform = parseFloat(matrix[4]);\r\n }\r\n }\r\n if (axis === 'y') {\r\n // Latest Chrome and webkits Fix\r\n if (win.WebKitCSSMatrix) {\r\n curTransform = transformMatrix.m42;\r\n }\r\n // Crazy IE10 Matrix\r\n else if (matrix.length === 16) {\r\n curTransform = parseFloat(matrix[13]);\r\n }\r\n // Normal Browsers\r\n else {\r\n curTransform = parseFloat(matrix[5]);\r\n }\r\n }\r\n return curTransform || 0;\r\n },\r\n parseUrlQuery: function parseUrlQuery(url) {\r\n var query = {};\r\n var urlToParse = url || win.location.href;\r\n var i;\r\n var params;\r\n var param;\r\n var length;\r\n if (typeof urlToParse === 'string' && urlToParse.length) {\r\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\r\n params = urlToParse.split('&').filter(function (paramsPart) {\r\n return paramsPart !== '';\r\n });\r\n length = params.length;\r\n\r\n for (i = 0; i < length; i += 1) {\r\n param = params[i].replace(/#\\S+/g, '').split('=');\r\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\r\n }\r\n }\r\n return query;\r\n },\r\n isObject: function isObject(o) {\r\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\r\n },\r\n extend: function extend() {\r\n var args = [], len$1 = arguments.length;\r\n while (len$1--) args[len$1] = arguments[len$1];\r\n\r\n var to = Object(args[0]);\r\n for (var i = 1; i < args.length; i += 1) {\r\n var nextSource = args[i];\r\n if (nextSource !== undefined && nextSource !== null) {\r\n var keysArray = Object.keys(Object(nextSource));\r\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\r\n var nextKey = keysArray[nextIndex];\r\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\r\n if (desc !== undefined && desc.enumerable) {\r\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\r\n Utils.extend(to[nextKey], nextSource[nextKey]);\r\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\r\n to[nextKey] = {};\r\n Utils.extend(to[nextKey], nextSource[nextKey]);\r\n } else {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return to;\r\n },\r\n };\r\n\r\n var Support = (function Support() {\r\n var testDiv = doc.createElement('div');\r\n return {\r\n touch: (win.Modernizr && win.Modernizr.touch === true) || (function checkTouch() {\r\n return !!(('ontouchstart' in win) || (win.DocumentTouch && doc instanceof win.DocumentTouch));\r\n }()),\r\n\r\n pointerEvents: !!(win.navigator.pointerEnabled || win.PointerEvent),\r\n prefixedPointerEvents: !!win.navigator.msPointerEnabled,\r\n\r\n transition: (function checkTransition() {\r\n var style = testDiv.style;\r\n return ('transition' in style || 'webkitTransition' in style || 'MozTransition' in style);\r\n }()),\r\n transforms3d: (win.Modernizr && win.Modernizr.csstransforms3d === true) || (function checkTransforms3d() {\r\n var style = testDiv.style;\r\n return ('webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style);\r\n }()),\r\n\r\n flexbox: (function checkFlexbox() {\r\n var style = testDiv.style;\r\n var styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');\r\n for (var i = 0; i < styles.length; i += 1) {\r\n if (styles[i] in style) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }()),\r\n\r\n observer: (function checkObserver() {\r\n return ('MutationObserver' in win || 'WebkitMutationObserver' in win);\r\n }()),\r\n\r\n passiveListener: (function checkPassiveListener() {\r\n var supportsPassive = false;\r\n try {\r\n var opts = Object.defineProperty({}, 'passive', {\r\n // eslint-disable-next-line\r\n get: function get() {\r\n supportsPassive = true;\r\n },\r\n });\r\n win.addEventListener('testPassiveListener', null, opts);\r\n } catch (e) {\r\n // No support\r\n }\r\n return supportsPassive;\r\n }()),\r\n\r\n gestures: (function checkGestures() {\r\n return 'ongesturestart' in win;\r\n }()),\r\n };\r\n }());\r\n\r\n var SwiperClass = function SwiperClass(params) {\r\n if (params === void 0) params = {};\r\n\r\n var self = this;\r\n self.params = params;\r\n\r\n // Events\r\n self.eventsListeners = {};\r\n\r\n if (self.params && self.params.on) {\r\n Object.keys(self.params.on).forEach(function (eventName) {\r\n self.on(eventName, self.params.on[eventName]);\r\n });\r\n }\r\n };\r\n\r\n var staticAccessors = {components: {configurable: true}};\r\n\r\n SwiperClass.prototype.on = function on(events, handler, priority) {\r\n var self = this;\r\n if (typeof handler !== 'function') {\r\n return self;\r\n }\r\n var method = priority ? 'unshift' : 'push';\r\n events.split(' ').forEach(function (event) {\r\n if (!self.eventsListeners[event]) {\r\n self.eventsListeners[event] = [];\r\n }\r\n self.eventsListeners[event][method](handler);\r\n });\r\n return self;\r\n };\r\n\r\n SwiperClass.prototype.once = function once(events, handler, priority) {\r\n var self = this;\r\n if (typeof handler !== 'function') {\r\n return self;\r\n }\r\n\r\n function onceHandler() {\r\n var args = [], len = arguments.length;\r\n while (len--) args[len] = arguments[len];\r\n\r\n handler.apply(self, args);\r\n self.off(events, onceHandler);\r\n }\r\n\r\n return self.on(events, onceHandler, priority);\r\n };\r\n\r\n SwiperClass.prototype.off = function off(events, handler) {\r\n var self = this;\r\n if (!self.eventsListeners) {\r\n return self;\r\n }\r\n events.split(' ').forEach(function (event) {\r\n if (typeof handler === 'undefined') {\r\n self.eventsListeners[event] = [];\r\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\r\n self.eventsListeners[event].forEach(function (eventHandler, index) {\r\n if (eventHandler === handler) {\r\n self.eventsListeners[event].splice(index, 1);\r\n }\r\n });\r\n }\r\n });\r\n return self;\r\n };\r\n\r\n SwiperClass.prototype.emit = function emit() {\r\n var args = [], len = arguments.length;\r\n while (len--) args[len] = arguments[len];\r\n\r\n var self = this;\r\n if (!self.eventsListeners) {\r\n return self;\r\n }\r\n var events;\r\n var data;\r\n var context;\r\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\r\n events = args[0];\r\n data = args.slice(1, args.length);\r\n context = self;\r\n } else {\r\n events = args[0].events;\r\n data = args[0].data;\r\n context = args[0].context || self;\r\n }\r\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\r\n eventsArray.forEach(function (event) {\r\n if (self.eventsListeners && self.eventsListeners[event]) {\r\n var handlers = [];\r\n self.eventsListeners[event].forEach(function (eventHandler) {\r\n handlers.push(eventHandler);\r\n });\r\n handlers.forEach(function (eventHandler) {\r\n eventHandler.apply(context, data);\r\n });\r\n }\r\n });\r\n return self;\r\n };\r\n\r\n SwiperClass.prototype.useModulesParams = function useModulesParams(instanceParams) {\r\n var instance = this;\r\n if (!instance.modules) {\r\n return;\r\n }\r\n Object.keys(instance.modules).forEach(function (moduleName) {\r\n var module = instance.modules[moduleName];\r\n // Extend params\r\n if (module.params) {\r\n Utils.extend(instanceParams, module.params);\r\n }\r\n });\r\n };\r\n\r\n SwiperClass.prototype.useModules = function useModules(modulesParams) {\r\n if (modulesParams === void 0) modulesParams = {};\r\n\r\n var instance = this;\r\n if (!instance.modules) {\r\n return;\r\n }\r\n Object.keys(instance.modules).forEach(function (moduleName) {\r\n var module = instance.modules[moduleName];\r\n var moduleParams = modulesParams[moduleName] || {};\r\n // Extend instance methods and props\r\n if (module.instance) {\r\n Object.keys(module.instance).forEach(function (modulePropName) {\r\n var moduleProp = module.instance[modulePropName];\r\n if (typeof moduleProp === 'function') {\r\n instance[modulePropName] = moduleProp.bind(instance);\r\n } else {\r\n instance[modulePropName] = moduleProp;\r\n }\r\n });\r\n }\r\n // Add event listeners\r\n if (module.on && instance.on) {\r\n Object.keys(module.on).forEach(function (moduleEventName) {\r\n instance.on(moduleEventName, module.on[moduleEventName]);\r\n });\r\n }\r\n\r\n // Module create callback\r\n if (module.create) {\r\n module.create.bind(instance)(moduleParams);\r\n }\r\n });\r\n };\r\n\r\n staticAccessors.components.set = function (components) {\r\n var Class = this;\r\n if (!Class.use) {\r\n return;\r\n }\r\n Class.use(components);\r\n };\r\n\r\n SwiperClass.installModule = function installModule(module) {\r\n var params = [], len = arguments.length - 1;\r\n while (len-- > 0) params[len] = arguments[len + 1];\r\n\r\n var Class = this;\r\n if (!Class.prototype.modules) {\r\n Class.prototype.modules = {};\r\n }\r\n var name = module.name || (((Object.keys(Class.prototype.modules).length) + \"_\" + (Utils.now())));\r\n Class.prototype.modules[name] = module;\r\n // Prototype\r\n if (module.proto) {\r\n Object.keys(module.proto).forEach(function (key) {\r\n Class.prototype[key] = module.proto[key];\r\n });\r\n }\r\n // Class\r\n if (module.static) {\r\n Object.keys(module.static).forEach(function (key) {\r\n Class[key] = module.static[key];\r\n });\r\n }\r\n // Callback\r\n if (module.install) {\r\n module.install.apply(Class, params);\r\n }\r\n return Class;\r\n };\r\n\r\n SwiperClass.use = function use(module) {\r\n var params = [], len = arguments.length - 1;\r\n while (len-- > 0) params[len] = arguments[len + 1];\r\n\r\n var Class = this;\r\n if (Array.isArray(module)) {\r\n module.forEach(function (m) {\r\n return Class.installModule(m);\r\n });\r\n return Class;\r\n }\r\n return Class.installModule.apply(Class, [module].concat(params));\r\n };\r\n\r\n Object.defineProperties(SwiperClass, staticAccessors);\r\n\r\n function updateSize() {\r\n var swiper = this;\r\n var width;\r\n var height;\r\n var $el = swiper.$el;\r\n if (typeof swiper.params.width !== 'undefined') {\r\n width = swiper.params.width;\r\n } else {\r\n width = $el[0].clientWidth;\r\n }\r\n if (typeof swiper.params.height !== 'undefined') {\r\n height = swiper.params.height;\r\n } else {\r\n height = $el[0].clientHeight;\r\n }\r\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\r\n return;\r\n }\r\n\r\n // Subtract paddings\r\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\r\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\r\n\r\n Utils.extend(swiper, {\r\n width: width,\r\n height: height,\r\n size: swiper.isHorizontal() ? width : height,\r\n });\r\n }\r\n\r\n function updateSlides() {\r\n var swiper = this;\r\n var params = swiper.params;\r\n\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var swiperSize = swiper.size;\r\n var rtl = swiper.rtlTranslate;\r\n var wrongRTL = swiper.wrongRTL;\r\n var isVirtual = swiper.virtual && params.virtual.enabled;\r\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\r\n var slides = $wrapperEl.children((\".\" + (swiper.params.slideClass)));\r\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\r\n var snapGrid = [];\r\n var slidesGrid = [];\r\n var slidesSizesGrid = [];\r\n\r\n var offsetBefore = params.slidesOffsetBefore;\r\n if (typeof offsetBefore === 'function') {\r\n offsetBefore = params.slidesOffsetBefore.call(swiper);\r\n }\r\n\r\n var offsetAfter = params.slidesOffsetAfter;\r\n if (typeof offsetAfter === 'function') {\r\n offsetAfter = params.slidesOffsetAfter.call(swiper);\r\n }\r\n\r\n var previousSnapGridLength = swiper.snapGrid.length;\r\n var previousSlidesGridLength = swiper.snapGrid.length;\r\n\r\n var spaceBetween = params.spaceBetween;\r\n var slidePosition = -offsetBefore;\r\n var prevSlideSize = 0;\r\n var index = 0;\r\n if (typeof swiperSize === 'undefined') {\r\n return;\r\n }\r\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\r\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\r\n }\r\n\r\n swiper.virtualSize = -spaceBetween;\r\n\r\n // reset margins\r\n if (rtl) {\r\n slides.css({marginLeft: '', marginTop: ''});\r\n }\r\n else {\r\n slides.css({marginRight: '', marginBottom: ''});\r\n }\r\n\r\n var slidesNumberEvenToRows;\r\n if (params.slidesPerColumn > 1) {\r\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\r\n slidesNumberEvenToRows = slidesLength;\r\n } else {\r\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\r\n }\r\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\r\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\r\n }\r\n }\r\n\r\n // Calc slides\r\n var slideSize;\r\n var slidesPerColumn = params.slidesPerColumn;\r\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\r\n var numFullColumns = slidesPerRow - ((params.slidesPerColumn * slidesPerRow) - slidesLength);\r\n for (var i = 0; i < slidesLength; i += 1) {\r\n slideSize = 0;\r\n var slide = slides.eq(i);\r\n if (params.slidesPerColumn > 1) {\r\n // Set slides order\r\n var newSlideOrderIndex = (void 0);\r\n var column = (void 0);\r\n var row = (void 0);\r\n if (params.slidesPerColumnFill === 'column') {\r\n column = Math.floor(i / slidesPerColumn);\r\n row = i - (column * slidesPerColumn);\r\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\r\n row += 1;\r\n if (row >= slidesPerColumn) {\r\n row = 0;\r\n column += 1;\r\n }\r\n }\r\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\r\n slide\r\n .css({\r\n '-webkit-box-ordinal-group': newSlideOrderIndex,\r\n '-moz-box-ordinal-group': newSlideOrderIndex,\r\n '-ms-flex-order': newSlideOrderIndex,\r\n '-webkit-order': newSlideOrderIndex,\r\n order: newSlideOrderIndex,\r\n });\r\n } else {\r\n row = Math.floor(i / slidesPerRow);\r\n column = i - (row * slidesPerRow);\r\n }\r\n slide\r\n .css(\r\n (\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left')),\r\n (row !== 0 && params.spaceBetween) && (((params.spaceBetween) + \"px\"))\r\n )\r\n .attr('data-swiper-column', column)\r\n .attr('data-swiper-row', row);\r\n }\r\n if (slide.css('display') === 'none') {\r\n continue;\r\n } // eslint-disable-line\r\n\r\n if (params.slidesPerView === 'auto') {\r\n var slideStyles = win.getComputedStyle(slide[0], null);\r\n var currentTransform = slide[0].style.transform;\r\n var currentWebKitTransform = slide[0].style.webkitTransform;\r\n if (currentTransform) {\r\n slide[0].style.transform = 'none';\r\n }\r\n if (currentWebKitTransform) {\r\n slide[0].style.webkitTransform = 'none';\r\n }\r\n if (params.roundLengths) {\r\n slideSize = swiper.isHorizontal()\r\n ? slide.outerWidth(true)\r\n : slide.outerHeight(true);\r\n } else {\r\n // eslint-disable-next-line\r\n if (swiper.isHorizontal()) {\r\n slideSize = slide[0].getBoundingClientRect().width\r\n + parseFloat(slideStyles.getPropertyValue('margin-left'))\r\n + parseFloat(slideStyles.getPropertyValue('margin-right'));\r\n } else {\r\n slideSize = slide[0].getBoundingClientRect().height\r\n + parseFloat(slideStyles.getPropertyValue('margin-top'))\r\n + parseFloat(slideStyles.getPropertyValue('margin-bottom'));\r\n }\r\n }\r\n if (currentTransform) {\r\n slide[0].style.transform = currentTransform;\r\n }\r\n if (currentWebKitTransform) {\r\n slide[0].style.webkitTransform = currentWebKitTransform;\r\n }\r\n if (params.roundLengths) {\r\n slideSize = Math.floor(slideSize);\r\n }\r\n } else {\r\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\r\n if (params.roundLengths) {\r\n slideSize = Math.floor(slideSize);\r\n }\r\n\r\n if (slides[i]) {\r\n if (swiper.isHorizontal()) {\r\n slides[i].style.width = slideSize + \"px\";\r\n } else {\r\n slides[i].style.height = slideSize + \"px\";\r\n }\r\n }\r\n }\r\n if (slides[i]) {\r\n slides[i].swiperSlideSize = slideSize;\r\n }\r\n slidesSizesGrid.push(slideSize);\r\n\r\n\r\n if (params.centeredSlides) {\r\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\r\n if (prevSlideSize === 0 && i !== 0) {\r\n slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\r\n }\r\n if (i === 0) {\r\n slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\r\n }\r\n if (Math.abs(slidePosition) < 1 / 1000) {\r\n slidePosition = 0;\r\n }\r\n if (params.roundLengths) {\r\n slidePosition = Math.floor(slidePosition);\r\n }\r\n if ((index) % params.slidesPerGroup === 0) {\r\n snapGrid.push(slidePosition);\r\n }\r\n slidesGrid.push(slidePosition);\r\n } else {\r\n if (params.roundLengths) {\r\n slidePosition = Math.floor(slidePosition);\r\n }\r\n if ((index) % params.slidesPerGroup === 0) {\r\n snapGrid.push(slidePosition);\r\n }\r\n slidesGrid.push(slidePosition);\r\n slidePosition = slidePosition + slideSize + spaceBetween;\r\n }\r\n\r\n swiper.virtualSize += slideSize + spaceBetween;\r\n\r\n prevSlideSize = slideSize;\r\n\r\n index += 1;\r\n }\r\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\r\n var newSlidesGrid;\r\n\r\n if (\r\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\r\n $wrapperEl.css({width: ((swiper.virtualSize + params.spaceBetween) + \"px\")});\r\n }\r\n if (!Support.flexbox || params.setWrapperSize) {\r\n if (swiper.isHorizontal()) {\r\n $wrapperEl.css({width: ((swiper.virtualSize + params.spaceBetween) + \"px\")});\r\n }\r\n else {\r\n $wrapperEl.css({height: ((swiper.virtualSize + params.spaceBetween) + \"px\")});\r\n }\r\n }\r\n\r\n if (params.slidesPerColumn > 1) {\r\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\r\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\r\n if (swiper.isHorizontal()) {\r\n $wrapperEl.css({width: ((swiper.virtualSize + params.spaceBetween) + \"px\")});\r\n }\r\n else {\r\n $wrapperEl.css({height: ((swiper.virtualSize + params.spaceBetween) + \"px\")});\r\n }\r\n if (params.centeredSlides) {\r\n newSlidesGrid = [];\r\n for (var i$1 = 0; i$1 < snapGrid.length; i$1 += 1) {\r\n var slidesGridItem = snapGrid[i$1];\r\n if (params.roundLengths) {\r\n slidesGridItem = Math.floor(slidesGridItem);\r\n }\r\n if (snapGrid[i$1] < swiper.virtualSize + snapGrid[0]) {\r\n newSlidesGrid.push(slidesGridItem);\r\n }\r\n }\r\n snapGrid = newSlidesGrid;\r\n }\r\n }\r\n\r\n // Remove last grid elements depending on width\r\n if (!params.centeredSlides) {\r\n newSlidesGrid = [];\r\n for (var i$2 = 0; i$2 < snapGrid.length; i$2 += 1) {\r\n var slidesGridItem$1 = snapGrid[i$2];\r\n if (params.roundLengths) {\r\n slidesGridItem$1 = Math.floor(slidesGridItem$1);\r\n }\r\n if (snapGrid[i$2] <= swiper.virtualSize - swiperSize) {\r\n newSlidesGrid.push(slidesGridItem$1);\r\n }\r\n }\r\n snapGrid = newSlidesGrid;\r\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\r\n snapGrid.push(swiper.virtualSize - swiperSize);\r\n }\r\n }\r\n if (snapGrid.length === 0) {\r\n snapGrid = [0];\r\n }\r\n\r\n if (params.spaceBetween !== 0) {\r\n if (swiper.isHorizontal()) {\r\n if (rtl) {\r\n slides.css({marginLeft: (spaceBetween + \"px\")});\r\n }\r\n else {\r\n slides.css({marginRight: (spaceBetween + \"px\")});\r\n }\r\n } else {\r\n slides.css({marginBottom: (spaceBetween + \"px\")});\r\n }\r\n }\r\n\r\n if (params.centerInsufficientSlides) {\r\n var allSlidesSize = 0;\r\n slidesSizesGrid.forEach(function (slideSizeValue) {\r\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\r\n });\r\n allSlidesSize -= params.spaceBetween;\r\n if (allSlidesSize < swiperSize) {\r\n var allSlidesOffset = (swiperSize - allSlidesSize) / 2;\r\n snapGrid.forEach(function (snap, snapIndex) {\r\n snapGrid[snapIndex] = snap - allSlidesOffset;\r\n });\r\n slidesGrid.forEach(function (snap, snapIndex) {\r\n slidesGrid[snapIndex] = snap + allSlidesOffset;\r\n });\r\n }\r\n }\r\n\r\n Utils.extend(swiper, {\r\n slides: slides,\r\n snapGrid: snapGrid,\r\n slidesGrid: slidesGrid,\r\n slidesSizesGrid: slidesSizesGrid,\r\n });\r\n\r\n if (slidesLength !== previousSlidesLength) {\r\n swiper.emit('slidesLengthChange');\r\n }\r\n if (snapGrid.length !== previousSnapGridLength) {\r\n if (swiper.params.watchOverflow) {\r\n swiper.checkOverflow();\r\n }\r\n swiper.emit('snapGridLengthChange');\r\n }\r\n if (slidesGrid.length !== previousSlidesGridLength) {\r\n swiper.emit('slidesGridLengthChange');\r\n }\r\n\r\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\r\n swiper.updateSlidesOffset();\r\n }\r\n }\r\n\r\n function updateAutoHeight(speed) {\r\n var swiper = this;\r\n var activeSlides = [];\r\n var newHeight = 0;\r\n var i;\r\n if (typeof speed === 'number') {\r\n swiper.setTransition(speed);\r\n } else if (speed === true) {\r\n swiper.setTransition(swiper.params.speed);\r\n }\r\n // Find slides currently in view\r\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\r\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\r\n var index = swiper.activeIndex + i;\r\n if (index > swiper.slides.length) {\r\n break;\r\n }\r\n activeSlides.push(swiper.slides.eq(index)[0]);\r\n }\r\n } else {\r\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\r\n }\r\n\r\n // Find new height from highest slide in view\r\n for (i = 0; i < activeSlides.length; i += 1) {\r\n if (typeof activeSlides[i] !== 'undefined') {\r\n var height = activeSlides[i].offsetHeight;\r\n newHeight = height > newHeight ? height : newHeight;\r\n }\r\n }\r\n\r\n // Update Height\r\n if (newHeight) {\r\n swiper.$wrapperEl.css('height', (newHeight + \"px\"));\r\n }\r\n }\r\n\r\n function updateSlidesOffset() {\r\n var swiper = this;\r\n var slides = swiper.slides;\r\n for (var i = 0; i < slides.length; i += 1) {\r\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\r\n }\r\n }\r\n\r\n function updateSlidesProgress(translate) {\r\n if (translate === void 0) translate = (this && this.translate) || 0;\r\n\r\n var swiper = this;\r\n var params = swiper.params;\r\n\r\n var slides = swiper.slides;\r\n var rtl = swiper.rtlTranslate;\r\n\r\n if (slides.length === 0) {\r\n return;\r\n }\r\n if (typeof slides[0].swiperSlideOffset === 'undefined') {\r\n swiper.updateSlidesOffset();\r\n }\r\n\r\n var offsetCenter = -translate;\r\n if (rtl) {\r\n offsetCenter = translate;\r\n }\r\n\r\n // Visible Slides\r\n slides.removeClass(params.slideVisibleClass);\r\n\r\n swiper.visibleSlidesIndexes = [];\r\n swiper.visibleSlides = [];\r\n\r\n for (var i = 0; i < slides.length; i += 1) {\r\n var slide = slides[i];\r\n var slideProgress = (\r\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\r\n ) / (slide.swiperSlideSize + params.spaceBetween);\r\n if (params.watchSlidesVisibility) {\r\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\r\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\r\n var isVisible = (slideBefore >= 0 && slideBefore < swiper.size)\r\n || (slideAfter > 0 && slideAfter <= swiper.size)\r\n || (slideBefore <= 0 && slideAfter >= swiper.size);\r\n if (isVisible) {\r\n swiper.visibleSlides.push(slide);\r\n swiper.visibleSlidesIndexes.push(i);\r\n slides.eq(i).addClass(params.slideVisibleClass);\r\n }\r\n }\r\n slide.progress = rtl ? -slideProgress : slideProgress;\r\n }\r\n swiper.visibleSlides = $(swiper.visibleSlides);\r\n }\r\n\r\n function updateProgress(translate) {\r\n if (translate === void 0) translate = (this && this.translate) || 0;\r\n\r\n var swiper = this;\r\n var params = swiper.params;\r\n\r\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n var progress = swiper.progress;\r\n var isBeginning = swiper.isBeginning;\r\n var isEnd = swiper.isEnd;\r\n var wasBeginning = isBeginning;\r\n var wasEnd = isEnd;\r\n if (translatesDiff === 0) {\r\n progress = 0;\r\n isBeginning = true;\r\n isEnd = true;\r\n } else {\r\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\r\n isBeginning = progress <= 0;\r\n isEnd = progress >= 1;\r\n }\r\n Utils.extend(swiper, {\r\n progress: progress,\r\n isBeginning: isBeginning,\r\n isEnd: isEnd,\r\n });\r\n\r\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\r\n swiper.updateSlidesProgress(translate);\r\n }\r\n\r\n if (isBeginning && !wasBeginning) {\r\n swiper.emit('reachBeginning toEdge');\r\n }\r\n if (isEnd && !wasEnd) {\r\n swiper.emit('reachEnd toEdge');\r\n }\r\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\r\n swiper.emit('fromEdge');\r\n }\r\n\r\n swiper.emit('progress', progress);\r\n }\r\n\r\n function updateSlidesClasses() {\r\n var swiper = this;\r\n\r\n var slides = swiper.slides;\r\n var params = swiper.params;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var activeIndex = swiper.activeIndex;\r\n var realIndex = swiper.realIndex;\r\n var isVirtual = swiper.virtual && params.virtual.enabled;\r\n\r\n slides.removeClass(((params.slideActiveClass) + \" \" + (params.slideNextClass) + \" \" + (params.slidePrevClass) + \" \" + (params.slideDuplicateActiveClass) + \" \" + (params.slideDuplicateNextClass) + \" \" + (params.slideDuplicatePrevClass)));\r\n\r\n var activeSlide;\r\n if (isVirtual) {\r\n activeSlide = swiper.$wrapperEl.find((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\"));\r\n } else {\r\n activeSlide = slides.eq(activeIndex);\r\n }\r\n\r\n // Active classes\r\n activeSlide.addClass(params.slideActiveClass);\r\n\r\n if (params.loop) {\r\n // Duplicate to all looped slides\r\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl\r\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\"))\r\n .addClass(params.slideDuplicateActiveClass);\r\n } else {\r\n $wrapperEl\r\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\"))\r\n .addClass(params.slideDuplicateActiveClass);\r\n }\r\n }\r\n // Next Slide\r\n var nextSlide = activeSlide.nextAll((\".\" + (params.slideClass))).eq(0).addClass(params.slideNextClass);\r\n if (params.loop && nextSlide.length === 0) {\r\n nextSlide = slides.eq(0);\r\n nextSlide.addClass(params.slideNextClass);\r\n }\r\n // Prev Slide\r\n var prevSlide = activeSlide.prevAll((\".\" + (params.slideClass))).eq(0).addClass(params.slidePrevClass);\r\n if (params.loop && prevSlide.length === 0) {\r\n prevSlide = slides.eq(-1);\r\n prevSlide.addClass(params.slidePrevClass);\r\n }\r\n if (params.loop) {\r\n // Duplicate to all looped slides\r\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl\r\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + (nextSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\r\n .addClass(params.slideDuplicateNextClass);\r\n } else {\r\n $wrapperEl\r\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + (nextSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\r\n .addClass(params.slideDuplicateNextClass);\r\n }\r\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl\r\n .children((\".\" + (params.slideClass) + \":not(.\" + (params.slideDuplicateClass) + \")[data-swiper-slide-index=\\\"\" + (prevSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\r\n .addClass(params.slideDuplicatePrevClass);\r\n } else {\r\n $wrapperEl\r\n .children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + (prevSlide.attr('data-swiper-slide-index')) + \"\\\"]\"))\r\n .addClass(params.slideDuplicatePrevClass);\r\n }\r\n }\r\n }\r\n\r\n function updateActiveIndex(newActiveIndex) {\r\n var swiper = this;\r\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n var slidesGrid = swiper.slidesGrid;\r\n var snapGrid = swiper.snapGrid;\r\n var params = swiper.params;\r\n var previousIndex = swiper.activeIndex;\r\n var previousRealIndex = swiper.realIndex;\r\n var previousSnapIndex = swiper.snapIndex;\r\n var activeIndex = newActiveIndex;\r\n var snapIndex;\r\n if (typeof activeIndex === 'undefined') {\r\n for (var i = 0; i < slidesGrid.length; i += 1) {\r\n if (typeof slidesGrid[i + 1] !== 'undefined') {\r\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\r\n activeIndex = i;\r\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\r\n activeIndex = i + 1;\r\n }\r\n } else if (translate >= slidesGrid[i]) {\r\n activeIndex = i;\r\n }\r\n }\r\n // Normalize slideIndex\r\n if (params.normalizeSlideIndex) {\r\n if (activeIndex < 0 || typeof activeIndex === 'undefined') {\r\n activeIndex = 0;\r\n }\r\n }\r\n }\r\n if (snapGrid.indexOf(translate) >= 0) {\r\n snapIndex = snapGrid.indexOf(translate);\r\n } else {\r\n snapIndex = Math.floor(activeIndex / params.slidesPerGroup);\r\n }\r\n if (snapIndex >= snapGrid.length) {\r\n snapIndex = snapGrid.length - 1;\r\n }\r\n if (activeIndex === previousIndex) {\r\n if (snapIndex !== previousSnapIndex) {\r\n swiper.snapIndex = snapIndex;\r\n swiper.emit('snapIndexChange');\r\n }\r\n return;\r\n }\r\n\r\n // Get real index\r\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\r\n\r\n Utils.extend(swiper, {\r\n snapIndex: snapIndex,\r\n realIndex: realIndex,\r\n previousIndex: previousIndex,\r\n activeIndex: activeIndex,\r\n });\r\n swiper.emit('activeIndexChange');\r\n swiper.emit('snapIndexChange');\r\n if (previousRealIndex !== realIndex) {\r\n swiper.emit('realIndexChange');\r\n }\r\n swiper.emit('slideChange');\r\n }\r\n\r\n function updateClickedSlide(e) {\r\n var swiper = this;\r\n var params = swiper.params;\r\n var slide = $(e.target).closest((\".\" + (params.slideClass)))[0];\r\n var slideFound = false;\r\n if (slide) {\r\n for (var i = 0; i < swiper.slides.length; i += 1) {\r\n if (swiper.slides[i] === slide) {\r\n slideFound = true;\r\n }\r\n }\r\n }\r\n\r\n if (slide && slideFound) {\r\n swiper.clickedSlide = slide;\r\n if (swiper.virtual && swiper.params.virtual.enabled) {\r\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\r\n } else {\r\n swiper.clickedIndex = $(slide).index();\r\n }\r\n } else {\r\n swiper.clickedSlide = undefined;\r\n swiper.clickedIndex = undefined;\r\n return;\r\n }\r\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\r\n swiper.slideToClickedSlide();\r\n }\r\n }\r\n\r\n var update = {\r\n updateSize: updateSize,\r\n updateSlides: updateSlides,\r\n updateAutoHeight: updateAutoHeight,\r\n updateSlidesOffset: updateSlidesOffset,\r\n updateSlidesProgress: updateSlidesProgress,\r\n updateProgress: updateProgress,\r\n updateSlidesClasses: updateSlidesClasses,\r\n updateActiveIndex: updateActiveIndex,\r\n updateClickedSlide: updateClickedSlide,\r\n };\r\n\r\n function getTranslate(axis) {\r\n if (axis === void 0) axis = this.isHorizontal() ? 'x' : 'y';\r\n\r\n var swiper = this;\r\n\r\n var params = swiper.params;\r\n var rtl = swiper.rtlTranslate;\r\n var translate = swiper.translate;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n\r\n if (params.virtualTranslate) {\r\n return rtl ? -translate : translate;\r\n }\r\n\r\n var currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\r\n if (rtl) {\r\n currentTranslate = -currentTranslate;\r\n }\r\n\r\n return currentTranslate || 0;\r\n }\r\n\r\n function setTranslate(translate, byController) {\r\n var swiper = this;\r\n var rtl = swiper.rtlTranslate;\r\n var params = swiper.params;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var progress = swiper.progress;\r\n var x = 0;\r\n var y = 0;\r\n var z = 0;\r\n\r\n if (swiper.isHorizontal()) {\r\n x = rtl ? -translate : translate;\r\n } else {\r\n y = translate;\r\n }\r\n\r\n if (params.roundLengths) {\r\n x = Math.floor(x);\r\n y = Math.floor(y);\r\n }\r\n\r\n if (!params.virtualTranslate) {\r\n if (Support.transforms3d) {\r\n $wrapperEl.transform((\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\"));\r\n }\r\n else {\r\n $wrapperEl.transform((\"translate(\" + x + \"px, \" + y + \"px)\"));\r\n }\r\n }\r\n swiper.previousTranslate = swiper.translate;\r\n swiper.translate = swiper.isHorizontal() ? x : y;\r\n\r\n // Check if we need to update progress\r\n var newProgress;\r\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n if (translatesDiff === 0) {\r\n newProgress = 0;\r\n } else {\r\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\r\n }\r\n if (newProgress !== progress) {\r\n swiper.updateProgress(translate);\r\n }\r\n\r\n swiper.emit('setTranslate', swiper.translate, byController);\r\n }\r\n\r\n function minTranslate() {\r\n return (-this.snapGrid[0]);\r\n }\r\n\r\n function maxTranslate() {\r\n return (-this.snapGrid[this.snapGrid.length - 1]);\r\n }\r\n\r\n var translate = {\r\n getTranslate: getTranslate,\r\n setTranslate: setTranslate,\r\n minTranslate: minTranslate,\r\n maxTranslate: maxTranslate,\r\n };\r\n\r\n function setTransition(duration, byController) {\r\n var swiper = this;\r\n\r\n swiper.$wrapperEl.transition(duration);\r\n\r\n swiper.emit('setTransition', duration, byController);\r\n }\r\n\r\n function transitionStart(runCallbacks, direction) {\r\n if (runCallbacks === void 0) runCallbacks = true;\r\n\r\n var swiper = this;\r\n var activeIndex = swiper.activeIndex;\r\n var params = swiper.params;\r\n var previousIndex = swiper.previousIndex;\r\n if (params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n\r\n var dir = direction;\r\n if (!dir) {\r\n if (activeIndex > previousIndex) {\r\n dir = 'next';\r\n }\r\n else if (activeIndex < previousIndex) {\r\n dir = 'prev';\r\n }\r\n else {\r\n dir = 'reset';\r\n }\r\n }\r\n\r\n swiper.emit('transitionStart');\r\n\r\n if (runCallbacks && activeIndex !== previousIndex) {\r\n if (dir === 'reset') {\r\n swiper.emit('slideResetTransitionStart');\r\n return;\r\n }\r\n swiper.emit('slideChangeTransitionStart');\r\n if (dir === 'next') {\r\n swiper.emit('slideNextTransitionStart');\r\n } else {\r\n swiper.emit('slidePrevTransitionStart');\r\n }\r\n }\r\n }\r\n\r\n function transitionEnd$1(runCallbacks, direction) {\r\n if (runCallbacks === void 0) runCallbacks = true;\r\n\r\n var swiper = this;\r\n var activeIndex = swiper.activeIndex;\r\n var previousIndex = swiper.previousIndex;\r\n swiper.animating = false;\r\n swiper.setTransition(0);\r\n\r\n var dir = direction;\r\n if (!dir) {\r\n if (activeIndex > previousIndex) {\r\n dir = 'next';\r\n }\r\n else if (activeIndex < previousIndex) {\r\n dir = 'prev';\r\n }\r\n else {\r\n dir = 'reset';\r\n }\r\n }\r\n\r\n swiper.emit('transitionEnd');\r\n\r\n if (runCallbacks && activeIndex !== previousIndex) {\r\n if (dir === 'reset') {\r\n swiper.emit('slideResetTransitionEnd');\r\n return;\r\n }\r\n swiper.emit('slideChangeTransitionEnd');\r\n if (dir === 'next') {\r\n swiper.emit('slideNextTransitionEnd');\r\n } else {\r\n swiper.emit('slidePrevTransitionEnd');\r\n }\r\n }\r\n }\r\n\r\n var transition$1 = {\r\n setTransition: setTransition,\r\n transitionStart: transitionStart,\r\n transitionEnd: transitionEnd$1,\r\n };\r\n\r\n function slideTo(index, speed, runCallbacks, internal) {\r\n if (index === void 0) index = 0;\r\n if (speed === void 0) speed = this.params.speed;\r\n if (runCallbacks === void 0) runCallbacks = true;\r\n\r\n var swiper = this;\r\n var slideIndex = index;\r\n if (slideIndex < 0) {\r\n slideIndex = 0;\r\n }\r\n\r\n var params = swiper.params;\r\n var snapGrid = swiper.snapGrid;\r\n var slidesGrid = swiper.slidesGrid;\r\n var previousIndex = swiper.previousIndex;\r\n var activeIndex = swiper.activeIndex;\r\n var rtl = swiper.rtlTranslate;\r\n if (swiper.animating && params.preventInteractionOnTransition) {\r\n return false;\r\n }\r\n\r\n var snapIndex = Math.floor(slideIndex / params.slidesPerGroup);\r\n if (snapIndex >= snapGrid.length) {\r\n snapIndex = snapGrid.length - 1;\r\n }\r\n\r\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\r\n swiper.emit('beforeSlideChangeStart');\r\n }\r\n\r\n var translate = -snapGrid[snapIndex];\r\n\r\n // Update progress\r\n swiper.updateProgress(translate);\r\n\r\n // Normalize slideIndex\r\n if (params.normalizeSlideIndex) {\r\n for (var i = 0; i < slidesGrid.length; i += 1) {\r\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\r\n slideIndex = i;\r\n }\r\n }\r\n }\r\n // Directions locks\r\n if (swiper.initialized && slideIndex !== activeIndex) {\r\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\r\n return false;\r\n }\r\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\r\n if ((activeIndex || 0) !== slideIndex) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n var direction;\r\n if (slideIndex > activeIndex) {\r\n direction = 'next';\r\n }\r\n else if (slideIndex < activeIndex) {\r\n direction = 'prev';\r\n }\r\n else {\r\n direction = 'reset';\r\n }\r\n\r\n\r\n // Update Index\r\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\r\n swiper.updateActiveIndex(slideIndex);\r\n // Update Height\r\n if (params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n swiper.updateSlidesClasses();\r\n if (params.effect !== 'slide') {\r\n swiper.setTranslate(translate);\r\n }\r\n if (direction !== 'reset') {\r\n swiper.transitionStart(runCallbacks, direction);\r\n swiper.transitionEnd(runCallbacks, direction);\r\n }\r\n return false;\r\n }\r\n\r\n if (speed === 0 || !Support.transition) {\r\n swiper.setTransition(0);\r\n swiper.setTranslate(translate);\r\n swiper.updateActiveIndex(slideIndex);\r\n swiper.updateSlidesClasses();\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.transitionStart(runCallbacks, direction);\r\n swiper.transitionEnd(runCallbacks, direction);\r\n } else {\r\n swiper.setTransition(speed);\r\n swiper.setTranslate(translate);\r\n swiper.updateActiveIndex(slideIndex);\r\n swiper.updateSlidesClasses();\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.transitionStart(runCallbacks, direction);\r\n if (!swiper.animating) {\r\n swiper.animating = true;\r\n if (!swiper.onSlideToWrapperTransitionEnd) {\r\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\r\n if (!swiper || swiper.destroyed) {\r\n return;\r\n }\r\n if (e.target !== this) {\r\n return;\r\n }\r\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\r\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\r\n swiper.onSlideToWrapperTransitionEnd = null;\r\n delete swiper.onSlideToWrapperTransitionEnd;\r\n swiper.transitionEnd(runCallbacks, direction);\r\n };\r\n }\r\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\r\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function slideToLoop(index, speed, runCallbacks, internal) {\r\n if (index === void 0) index = 0;\r\n if (speed === void 0) speed = this.params.speed;\r\n if (runCallbacks === void 0) runCallbacks = true;\r\n\r\n var swiper = this;\r\n var newIndex = index;\r\n if (swiper.params.loop) {\r\n newIndex += swiper.loopedSlides;\r\n }\r\n\r\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\r\n }\r\n\r\n /* eslint no-unused-vars: \"off\" */\r\n function slideNext(speed, runCallbacks, internal) {\r\n if (speed === void 0) speed = this.params.speed;\r\n if (runCallbacks === void 0) runCallbacks = true;\r\n\r\n var swiper = this;\r\n var params = swiper.params;\r\n var animating = swiper.animating;\r\n if (params.loop) {\r\n if (animating) {\r\n return false;\r\n }\r\n swiper.loopFix();\r\n // eslint-disable-next-line\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\r\n }\r\n return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);\r\n }\r\n\r\n /* eslint no-unused-vars: \"off\" */\r\n function slidePrev(speed, runCallbacks, internal) {\r\n if (speed === void 0) speed = this.params.speed;\r\n if (runCallbacks === void 0) runCallbacks = true;\r\n\r\n var swiper = this;\r\n var params = swiper.params;\r\n var animating = swiper.animating;\r\n var snapGrid = swiper.snapGrid;\r\n var slidesGrid = swiper.slidesGrid;\r\n var rtlTranslate = swiper.rtlTranslate;\r\n\r\n if (params.loop) {\r\n if (animating) {\r\n return false;\r\n }\r\n swiper.loopFix();\r\n // eslint-disable-next-line\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n }\r\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\r\n\r\n function normalize(val) {\r\n if (val < 0) {\r\n return -Math.floor(Math.abs(val));\r\n }\r\n return Math.floor(val);\r\n }\r\n\r\n var normalizedTranslate = normalize(translate);\r\n var normalizedSnapGrid = snapGrid.map(function (val) {\r\n return normalize(val);\r\n });\r\n var normalizedSlidesGrid = slidesGrid.map(function (val) {\r\n return normalize(val);\r\n });\r\n\r\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\r\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\r\n var prevIndex;\r\n if (typeof prevSnap !== 'undefined') {\r\n prevIndex = slidesGrid.indexOf(prevSnap);\r\n if (prevIndex < 0) {\r\n prevIndex = swiper.activeIndex - 1;\r\n }\r\n }\r\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\r\n }\r\n\r\n /* eslint no-unused-vars: \"off\" */\r\n function slideReset(speed, runCallbacks, internal) {\r\n if (speed === void 0) speed = this.params.speed;\r\n if (runCallbacks === void 0) runCallbacks = true;\r\n\r\n var swiper = this;\r\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\r\n }\r\n\r\n /* eslint no-unused-vars: \"off\" */\r\n function slideToClosest(speed, runCallbacks, internal) {\r\n if (speed === void 0) speed = this.params.speed;\r\n if (runCallbacks === void 0) runCallbacks = true;\r\n\r\n var swiper = this;\r\n var index = swiper.activeIndex;\r\n var snapIndex = Math.floor(index / swiper.params.slidesPerGroup);\r\n\r\n if (snapIndex < swiper.snapGrid.length - 1) {\r\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n\r\n var currentSnap = swiper.snapGrid[snapIndex];\r\n var nextSnap = swiper.snapGrid[snapIndex + 1];\r\n\r\n if ((translate - currentSnap) > (nextSnap - currentSnap) / 2) {\r\n index = swiper.params.slidesPerGroup;\r\n }\r\n }\r\n\r\n return swiper.slideTo(index, speed, runCallbacks, internal);\r\n }\r\n\r\n function slideToClickedSlide() {\r\n var swiper = this;\r\n var params = swiper.params;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n\r\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\r\n var slideToIndex = swiper.clickedIndex;\r\n var realIndex;\r\n if (params.loop) {\r\n if (swiper.animating) {\r\n return;\r\n }\r\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\r\n if (params.centeredSlides) {\r\n if (\r\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\r\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\r\n ) {\r\n swiper.loopFix();\r\n slideToIndex = $wrapperEl\r\n .children((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + (params.slideDuplicateClass) + \")\"))\r\n .eq(0)\r\n .index();\r\n\r\n Utils.nextTick(function () {\r\n swiper.slideTo(slideToIndex);\r\n });\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\r\n swiper.loopFix();\r\n slideToIndex = $wrapperEl\r\n .children((\".\" + (params.slideClass) + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + (params.slideDuplicateClass) + \")\"))\r\n .eq(0)\r\n .index();\r\n\r\n Utils.nextTick(function () {\r\n swiper.slideTo(slideToIndex);\r\n });\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n }\r\n\r\n var slide = {\r\n slideTo: slideTo,\r\n slideToLoop: slideToLoop,\r\n slideNext: slideNext,\r\n slidePrev: slidePrev,\r\n slideReset: slideReset,\r\n slideToClosest: slideToClosest,\r\n slideToClickedSlide: slideToClickedSlide,\r\n };\r\n\r\n function loopCreate() {\r\n var swiper = this;\r\n var params = swiper.params;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n // Remove duplicated slides\r\n $wrapperEl.children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass))).remove();\r\n\r\n var slides = $wrapperEl.children((\".\" + (params.slideClass)));\r\n\r\n if (params.loopFillGroupWithBlank) {\r\n var blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\r\n if (blankSlidesNum !== params.slidesPerGroup) {\r\n for (var i = 0; i < blankSlidesNum; i += 1) {\r\n var blankNode = $(doc.createElement('div')).addClass(((params.slideClass) + \" \" + (params.slideBlankClass)));\r\n $wrapperEl.append(blankNode);\r\n }\r\n slides = $wrapperEl.children((\".\" + (params.slideClass)));\r\n }\r\n }\r\n\r\n if (params.slidesPerView === 'auto' && !params.loopedSlides) {\r\n params.loopedSlides = slides.length;\r\n }\r\n\r\n swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10);\r\n swiper.loopedSlides += params.loopAdditionalSlides;\r\n if (swiper.loopedSlides > slides.length) {\r\n swiper.loopedSlides = slides.length;\r\n }\r\n\r\n var prependSlides = [];\r\n var appendSlides = [];\r\n slides.each(function (index, el) {\r\n var slide = $(el);\r\n if (index < swiper.loopedSlides) {\r\n appendSlides.push(el);\r\n }\r\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\r\n prependSlides.push(el);\r\n }\r\n slide.attr('data-swiper-slide-index', index);\r\n });\r\n for (var i$1 = 0; i$1 < appendSlides.length; i$1 += 1) {\r\n $wrapperEl.append($(appendSlides[i$1].cloneNode(true)).addClass(params.slideDuplicateClass));\r\n }\r\n for (var i$2 = prependSlides.length - 1; i$2 >= 0; i$2 -= 1) {\r\n $wrapperEl.prepend($(prependSlides[i$2].cloneNode(true)).addClass(params.slideDuplicateClass));\r\n }\r\n }\r\n\r\n function loopFix() {\r\n var swiper = this;\r\n var params = swiper.params;\r\n var activeIndex = swiper.activeIndex;\r\n var slides = swiper.slides;\r\n var loopedSlides = swiper.loopedSlides;\r\n var allowSlidePrev = swiper.allowSlidePrev;\r\n var allowSlideNext = swiper.allowSlideNext;\r\n var snapGrid = swiper.snapGrid;\r\n var rtl = swiper.rtlTranslate;\r\n var newIndex;\r\n swiper.allowSlidePrev = true;\r\n swiper.allowSlideNext = true;\r\n\r\n var snapTranslate = -snapGrid[activeIndex];\r\n var diff = snapTranslate - swiper.getTranslate();\r\n\r\n\r\n // Fix For Negative Oversliding\r\n if (activeIndex < loopedSlides) {\r\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\r\n newIndex += loopedSlides;\r\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\r\n if (slideChanged && diff !== 0) {\r\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\r\n }\r\n } else if ((params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2) || (activeIndex >= slides.length - loopedSlides)) {\r\n // Fix For Positive Oversliding\r\n newIndex = -slides.length + activeIndex + loopedSlides;\r\n newIndex += loopedSlides;\r\n var slideChanged$1 = swiper.slideTo(newIndex, 0, false, true);\r\n if (slideChanged$1 && diff !== 0) {\r\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\r\n }\r\n }\r\n swiper.allowSlidePrev = allowSlidePrev;\r\n swiper.allowSlideNext = allowSlideNext;\r\n }\r\n\r\n function loopDestroy() {\r\n var swiper = this;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var params = swiper.params;\r\n var slides = swiper.slides;\r\n $wrapperEl.children((\".\" + (params.slideClass) + \".\" + (params.slideDuplicateClass))).remove();\r\n slides.removeAttr('data-swiper-slide-index');\r\n }\r\n\r\n var loop = {\r\n loopCreate: loopCreate,\r\n loopFix: loopFix,\r\n loopDestroy: loopDestroy,\r\n };\r\n\r\n function setGrabCursor(moving) {\r\n var swiper = this;\r\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked)) {\r\n return;\r\n }\r\n var el = swiper.el;\r\n el.style.cursor = 'move';\r\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\r\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\r\n el.style.cursor = moving ? 'grabbing' : 'grab';\r\n }\r\n\r\n function unsetGrabCursor() {\r\n var swiper = this;\r\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked)) {\r\n return;\r\n }\r\n swiper.el.style.cursor = '';\r\n }\r\n\r\n var grabCursor = {\r\n setGrabCursor: setGrabCursor,\r\n unsetGrabCursor: unsetGrabCursor,\r\n };\r\n\r\n function appendSlide(slides) {\r\n var swiper = this;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var params = swiper.params;\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n }\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (var i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) {\r\n $wrapperEl.append(slides[i]);\r\n }\r\n }\r\n } else {\r\n $wrapperEl.append(slides);\r\n }\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n if (!(params.observer && Support.observer)) {\r\n swiper.update();\r\n }\r\n }\r\n\r\n function prependSlide(slides) {\r\n var swiper = this;\r\n var params = swiper.params;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var activeIndex = swiper.activeIndex;\r\n\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n }\r\n var newActiveIndex = activeIndex + 1;\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (var i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) {\r\n $wrapperEl.prepend(slides[i]);\r\n }\r\n }\r\n newActiveIndex = activeIndex + slides.length;\r\n } else {\r\n $wrapperEl.prepend(slides);\r\n }\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n if (!(params.observer && Support.observer)) {\r\n swiper.update();\r\n }\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n }\r\n\r\n function addSlide(index, slides) {\r\n var swiper = this;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var params = swiper.params;\r\n var activeIndex = swiper.activeIndex;\r\n var activeIndexBuffer = activeIndex;\r\n if (params.loop) {\r\n activeIndexBuffer -= swiper.loopedSlides;\r\n swiper.loopDestroy();\r\n swiper.slides = $wrapperEl.children((\".\" + (params.slideClass)));\r\n }\r\n var baseLength = swiper.slides.length;\r\n if (index <= 0) {\r\n swiper.prependSlide(slides);\r\n return;\r\n }\r\n if (index >= baseLength) {\r\n swiper.appendSlide(slides);\r\n return;\r\n }\r\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\r\n\r\n var slidesBuffer = [];\r\n for (var i = baseLength - 1; i >= index; i -= 1) {\r\n var currentSlide = swiper.slides.eq(i);\r\n currentSlide.remove();\r\n slidesBuffer.unshift(currentSlide);\r\n }\r\n\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {\r\n if (slides[i$1]) {\r\n $wrapperEl.append(slides[i$1]);\r\n }\r\n }\r\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\r\n } else {\r\n $wrapperEl.append(slides);\r\n }\r\n\r\n for (var i$2 = 0; i$2 < slidesBuffer.length; i$2 += 1) {\r\n $wrapperEl.append(slidesBuffer[i$2]);\r\n }\r\n\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n if (!(params.observer && Support.observer)) {\r\n swiper.update();\r\n }\r\n if (params.loop) {\r\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\r\n } else {\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n }\r\n }\r\n\r\n function removeSlide(slidesIndexes) {\r\n var swiper = this;\r\n var params = swiper.params;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var activeIndex = swiper.activeIndex;\r\n\r\n var activeIndexBuffer = activeIndex;\r\n if (params.loop) {\r\n activeIndexBuffer -= swiper.loopedSlides;\r\n swiper.loopDestroy();\r\n swiper.slides = $wrapperEl.children((\".\" + (params.slideClass)));\r\n }\r\n var newActiveIndex = activeIndexBuffer;\r\n var indexToRemove;\r\n\r\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\r\n for (var i = 0; i < slidesIndexes.length; i += 1) {\r\n indexToRemove = slidesIndexes[i];\r\n if (swiper.slides[indexToRemove]) {\r\n swiper.slides.eq(indexToRemove).remove();\r\n }\r\n if (indexToRemove < newActiveIndex) {\r\n newActiveIndex -= 1;\r\n }\r\n }\r\n newActiveIndex = Math.max(newActiveIndex, 0);\r\n } else {\r\n indexToRemove = slidesIndexes;\r\n if (swiper.slides[indexToRemove]) {\r\n swiper.slides.eq(indexToRemove).remove();\r\n }\r\n if (indexToRemove < newActiveIndex) {\r\n newActiveIndex -= 1;\r\n }\r\n newActiveIndex = Math.max(newActiveIndex, 0);\r\n }\r\n\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n\r\n if (!(params.observer && Support.observer)) {\r\n swiper.update();\r\n }\r\n if (params.loop) {\r\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\r\n } else {\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n }\r\n }\r\n\r\n function removeAllSlides() {\r\n var swiper = this;\r\n\r\n var slidesIndexes = [];\r\n for (var i = 0; i < swiper.slides.length; i += 1) {\r\n slidesIndexes.push(i);\r\n }\r\n swiper.removeSlide(slidesIndexes);\r\n }\r\n\r\n var manipulation = {\r\n appendSlide: appendSlide,\r\n prependSlide: prependSlide,\r\n addSlide: addSlide,\r\n removeSlide: removeSlide,\r\n removeAllSlides: removeAllSlides,\r\n };\r\n\r\n var Device = (function Device() {\r\n var ua = win.navigator.userAgent;\r\n\r\n var device = {\r\n ios: false,\r\n android: false,\r\n androidChrome: false,\r\n desktop: false,\r\n windows: false,\r\n iphone: false,\r\n ipod: false,\r\n ipad: false,\r\n cordova: win.cordova || win.phonegap,\r\n phonegap: win.cordova || win.phonegap,\r\n };\r\n\r\n var windows = ua.match(/(Windows Phone);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\r\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\r\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\r\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\r\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\r\n\r\n\r\n // Windows\r\n if (windows) {\r\n device.os = 'windows';\r\n device.osVersion = windows[2];\r\n device.windows = true;\r\n }\r\n // Android\r\n if (android && !windows) {\r\n device.os = 'android';\r\n device.osVersion = android[2];\r\n device.android = true;\r\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\r\n }\r\n if (ipad || iphone || ipod) {\r\n device.os = 'ios';\r\n device.ios = true;\r\n }\r\n // iOS\r\n if (iphone && !ipod) {\r\n device.osVersion = iphone[2].replace(/_/g, '.');\r\n device.iphone = true;\r\n }\r\n if (ipad) {\r\n device.osVersion = ipad[2].replace(/_/g, '.');\r\n device.ipad = true;\r\n }\r\n if (ipod) {\r\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\r\n device.iphone = true;\r\n }\r\n // iOS 8+ changed UA\r\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\r\n if (device.osVersion.split('.')[0] === '10') {\r\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\r\n }\r\n }\r\n\r\n // Desktop\r\n device.desktop = !(device.os || device.android || device.webView);\r\n\r\n // Webview\r\n device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i);\r\n\r\n // Minimal UI\r\n if (device.os && device.os === 'ios') {\r\n var osVersionArr = device.osVersion.split('.');\r\n var metaViewport = doc.querySelector('meta[name=\"viewport\"]');\r\n device.minimalUi = !device.webView\r\n && (ipod || iphone)\r\n && (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7)\r\n && metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0;\r\n }\r\n\r\n // Pixel Ratio\r\n device.pixelRatio = win.devicePixelRatio || 1;\r\n\r\n // Export object\r\n return device;\r\n }());\r\n\r\n function onTouchStart(event) {\r\n var swiper = this;\r\n var data = swiper.touchEventsData;\r\n var params = swiper.params;\r\n var touches = swiper.touches;\r\n if (swiper.animating && params.preventInteractionOnTransition) {\r\n return;\r\n }\r\n var e = event;\r\n if (e.originalEvent) {\r\n e = e.originalEvent;\r\n }\r\n data.isTouchEvent = e.type === 'touchstart';\r\n if (!data.isTouchEvent && 'which' in e && e.which === 3) {\r\n return;\r\n }\r\n if (!data.isTouchEvent && 'button' in e && e.button > 0) {\r\n return;\r\n }\r\n if (data.isTouched && data.isMoved) {\r\n return;\r\n }\r\n if (params.noSwiping && $(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : (\".\" + (params.noSwipingClass)))[0]) {\r\n swiper.allowClick = true;\r\n return;\r\n }\r\n if (params.swipeHandler) {\r\n if (!$(e).closest(params.swipeHandler)[0]) {\r\n return;\r\n }\r\n }\r\n\r\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\r\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\r\n var startX = touches.currentX;\r\n var startY = touches.currentY;\r\n\r\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore\r\n\r\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\r\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\r\n if (\r\n edgeSwipeDetection\r\n && ((startX <= edgeSwipeThreshold)\r\n || (startX >= win.screen.width - edgeSwipeThreshold))\r\n ) {\r\n return;\r\n }\r\n\r\n Utils.extend(data, {\r\n isTouched: true,\r\n isMoved: false,\r\n allowTouchCallbacks: true,\r\n isScrolling: undefined,\r\n startMoving: undefined,\r\n });\r\n\r\n touches.startX = startX;\r\n touches.startY = startY;\r\n data.touchStartTime = Utils.now();\r\n swiper.allowClick = true;\r\n swiper.updateSize();\r\n swiper.swipeDirection = undefined;\r\n if (params.threshold > 0) {\r\n data.allowThresholdMove = false;\r\n }\r\n if (e.type !== 'touchstart') {\r\n var preventDefault = true;\r\n if ($(e.target).is(data.formElements)) {\r\n preventDefault = false;\r\n }\r\n if (\r\n doc.activeElement\r\n && $(doc.activeElement).is(data.formElements)\r\n && doc.activeElement !== e.target\r\n ) {\r\n doc.activeElement.blur();\r\n }\r\n if (preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault) {\r\n e.preventDefault();\r\n }\r\n }\r\n swiper.emit('touchStart', e);\r\n }\r\n\r\n function onTouchMove(event) {\r\n var swiper = this;\r\n var data = swiper.touchEventsData;\r\n var params = swiper.params;\r\n var touches = swiper.touches;\r\n var rtl = swiper.rtlTranslate;\r\n var e = event;\r\n if (e.originalEvent) {\r\n e = e.originalEvent;\r\n }\r\n if (!data.isTouched) {\r\n if (data.startMoving && data.isScrolling) {\r\n swiper.emit('touchMoveOpposite', e);\r\n }\r\n return;\r\n }\r\n if (data.isTouchEvent && e.type === 'mousemove') {\r\n return;\r\n }\r\n var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\r\n var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\r\n if (e.preventedByNestedSwiper) {\r\n touches.startX = pageX;\r\n touches.startY = pageY;\r\n return;\r\n }\r\n if (!swiper.allowTouchMove) {\r\n // isMoved = true;\r\n swiper.allowClick = false;\r\n if (data.isTouched) {\r\n Utils.extend(touches, {\r\n startX: pageX,\r\n startY: pageY,\r\n currentX: pageX,\r\n currentY: pageY,\r\n });\r\n data.touchStartTime = Utils.now();\r\n }\r\n return;\r\n }\r\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\r\n if (swiper.isVertical()) {\r\n // Vertical\r\n if (\r\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\r\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\r\n ) {\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n return;\r\n }\r\n } else if (\r\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\r\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\r\n ) {\r\n return;\r\n }\r\n }\r\n if (data.isTouchEvent && doc.activeElement) {\r\n if (e.target === doc.activeElement && $(e.target).is(data.formElements)) {\r\n data.isMoved = true;\r\n swiper.allowClick = false;\r\n return;\r\n }\r\n }\r\n if (data.allowTouchCallbacks) {\r\n swiper.emit('touchMove', e);\r\n }\r\n if (e.targetTouches && e.targetTouches.length > 1) {\r\n return;\r\n }\r\n\r\n touches.currentX = pageX;\r\n touches.currentY = pageY;\r\n\r\n var diffX = touches.currentX - touches.startX;\r\n var diffY = touches.currentY - touches.startY;\r\n if (swiper.params.threshold && Math.sqrt((Math.pow(diffX, 2)) + (Math.pow(diffY, 2))) < swiper.params.threshold) {\r\n return;\r\n }\r\n\r\n if (typeof data.isScrolling === 'undefined') {\r\n var touchAngle;\r\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\r\n data.isScrolling = false;\r\n } else {\r\n // eslint-disable-next-line\r\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\r\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\r\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\r\n }\r\n }\r\n }\r\n if (data.isScrolling) {\r\n swiper.emit('touchMoveOpposite', e);\r\n }\r\n if (typeof data.startMoving === 'undefined') {\r\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\r\n data.startMoving = true;\r\n }\r\n }\r\n if (data.isScrolling) {\r\n data.isTouched = false;\r\n return;\r\n }\r\n if (!data.startMoving) {\r\n return;\r\n }\r\n swiper.allowClick = false;\r\n e.preventDefault();\r\n if (params.touchMoveStopPropagation && !params.nested) {\r\n e.stopPropagation();\r\n }\r\n\r\n if (!data.isMoved) {\r\n if (params.loop) {\r\n swiper.loopFix();\r\n }\r\n data.startTranslate = swiper.getTranslate();\r\n swiper.setTransition(0);\r\n if (swiper.animating) {\r\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\r\n }\r\n data.allowMomentumBounce = false;\r\n // Grab Cursor\r\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\r\n swiper.setGrabCursor(true);\r\n }\r\n swiper.emit('sliderFirstMove', e);\r\n }\r\n swiper.emit('sliderMove', e);\r\n data.isMoved = true;\r\n\r\n var diff = swiper.isHorizontal() ? diffX : diffY;\r\n touches.diff = diff;\r\n\r\n diff *= params.touchRatio;\r\n if (rtl) {\r\n diff = -diff;\r\n }\r\n\r\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\r\n data.currentTranslate = diff + data.startTranslate;\r\n\r\n var disableParentSwiper = true;\r\n var resistanceRatio = params.resistanceRatio;\r\n if (params.touchReleaseOnEdges) {\r\n resistanceRatio = 0;\r\n }\r\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\r\n disableParentSwiper = false;\r\n if (params.resistance) {\r\n data.currentTranslate = (swiper.minTranslate() - 1) + (Math.pow((-swiper.minTranslate() + data.startTranslate + diff), resistanceRatio));\r\n }\r\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\r\n disableParentSwiper = false;\r\n if (params.resistance) {\r\n data.currentTranslate = (swiper.maxTranslate() + 1) - (Math.pow((swiper.maxTranslate() - data.startTranslate - diff), resistanceRatio));\r\n }\r\n }\r\n\r\n if (disableParentSwiper) {\r\n e.preventedByNestedSwiper = true;\r\n }\r\n\r\n // Directions locks\r\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\r\n data.currentTranslate = data.startTranslate;\r\n }\r\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\r\n data.currentTranslate = data.startTranslate;\r\n }\r\n\r\n\r\n // Threshold\r\n if (params.threshold > 0) {\r\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\r\n if (!data.allowThresholdMove) {\r\n data.allowThresholdMove = true;\r\n touches.startX = touches.currentX;\r\n touches.startY = touches.currentY;\r\n data.currentTranslate = data.startTranslate;\r\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\r\n return;\r\n }\r\n } else {\r\n data.currentTranslate = data.startTranslate;\r\n return;\r\n }\r\n }\r\n\r\n if (!params.followFinger) {\r\n return;\r\n }\r\n\r\n // Update active index in free mode\r\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n if (params.freeMode) {\r\n // Velocity\r\n if (data.velocities.length === 0) {\r\n data.velocities.push({\r\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\r\n time: data.touchStartTime,\r\n });\r\n }\r\n data.velocities.push({\r\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\r\n time: Utils.now(),\r\n });\r\n }\r\n // Update progress\r\n swiper.updateProgress(data.currentTranslate);\r\n // Update translate\r\n swiper.setTranslate(data.currentTranslate);\r\n }\r\n\r\n function onTouchEnd(event) {\r\n var swiper = this;\r\n var data = swiper.touchEventsData;\r\n\r\n var params = swiper.params;\r\n var touches = swiper.touches;\r\n var rtl = swiper.rtlTranslate;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var slidesGrid = swiper.slidesGrid;\r\n var snapGrid = swiper.snapGrid;\r\n var e = event;\r\n if (e.originalEvent) {\r\n e = e.originalEvent;\r\n }\r\n if (data.allowTouchCallbacks) {\r\n swiper.emit('touchEnd', e);\r\n }\r\n data.allowTouchCallbacks = false;\r\n if (!data.isTouched) {\r\n if (data.isMoved && params.grabCursor) {\r\n swiper.setGrabCursor(false);\r\n }\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n return;\r\n }\r\n // Return Grab Cursor\r\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\r\n swiper.setGrabCursor(false);\r\n }\r\n\r\n // Time diff\r\n var touchEndTime = Utils.now();\r\n var timeDiff = touchEndTime - data.touchStartTime;\r\n\r\n // Tap, doubleTap, Click\r\n if (swiper.allowClick) {\r\n swiper.updateClickedSlide(e);\r\n swiper.emit('tap', e);\r\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) > 300) {\r\n if (data.clickTimeout) {\r\n clearTimeout(data.clickTimeout);\r\n }\r\n data.clickTimeout = Utils.nextTick(function () {\r\n if (!swiper || swiper.destroyed) {\r\n return;\r\n }\r\n swiper.emit('click', e);\r\n }, 300);\r\n }\r\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\r\n if (data.clickTimeout) {\r\n clearTimeout(data.clickTimeout);\r\n }\r\n swiper.emit('doubleTap', e);\r\n }\r\n }\r\n\r\n data.lastClickTime = Utils.now();\r\n Utils.nextTick(function () {\r\n if (!swiper.destroyed) {\r\n swiper.allowClick = true;\r\n }\r\n });\r\n\r\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n return;\r\n }\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n\r\n var currentPos;\r\n if (params.followFinger) {\r\n currentPos = rtl ? swiper.translate : -swiper.translate;\r\n } else {\r\n currentPos = -data.currentTranslate;\r\n }\r\n\r\n if (params.freeMode) {\r\n if (currentPos < -swiper.minTranslate()) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n if (currentPos > -swiper.maxTranslate()) {\r\n if (swiper.slides.length < snapGrid.length) {\r\n swiper.slideTo(snapGrid.length - 1);\r\n } else {\r\n swiper.slideTo(swiper.slides.length - 1);\r\n }\r\n return;\r\n }\r\n\r\n if (params.freeModeMomentum) {\r\n if (data.velocities.length > 1) {\r\n var lastMoveEvent = data.velocities.pop();\r\n var velocityEvent = data.velocities.pop();\r\n\r\n var distance = lastMoveEvent.position - velocityEvent.position;\r\n var time = lastMoveEvent.time - velocityEvent.time;\r\n swiper.velocity = distance / time;\r\n swiper.velocity /= 2;\r\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\r\n swiper.velocity = 0;\r\n }\r\n // this implies that the user stopped moving a finger then released.\r\n // There would be no events with distance zero, so the last event is stale.\r\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\r\n swiper.velocity = 0;\r\n }\r\n } else {\r\n swiper.velocity = 0;\r\n }\r\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\r\n\r\n data.velocities.length = 0;\r\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\r\n var momentumDistance = swiper.velocity * momentumDuration;\r\n\r\n var newPosition = swiper.translate + momentumDistance;\r\n if (rtl) {\r\n newPosition = -newPosition;\r\n }\r\n\r\n var doBounce = false;\r\n var afterBouncePosition;\r\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\r\n var needsLoopFix;\r\n if (newPosition < swiper.maxTranslate()) {\r\n if (params.freeModeMomentumBounce) {\r\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\r\n newPosition = swiper.maxTranslate() - bounceAmount;\r\n }\r\n afterBouncePosition = swiper.maxTranslate();\r\n doBounce = true;\r\n data.allowMomentumBounce = true;\r\n } else {\r\n newPosition = swiper.maxTranslate();\r\n }\r\n if (params.loop && params.centeredSlides) {\r\n needsLoopFix = true;\r\n }\r\n } else if (newPosition > swiper.minTranslate()) {\r\n if (params.freeModeMomentumBounce) {\r\n if (newPosition - swiper.minTranslate() > bounceAmount) {\r\n newPosition = swiper.minTranslate() + bounceAmount;\r\n }\r\n afterBouncePosition = swiper.minTranslate();\r\n doBounce = true;\r\n data.allowMomentumBounce = true;\r\n } else {\r\n newPosition = swiper.minTranslate();\r\n }\r\n if (params.loop && params.centeredSlides) {\r\n needsLoopFix = true;\r\n }\r\n } else if (params.freeModeSticky) {\r\n var nextSlide;\r\n for (var j = 0; j < snapGrid.length; j += 1) {\r\n if (snapGrid[j] > -newPosition) {\r\n nextSlide = j;\r\n break;\r\n }\r\n }\r\n\r\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\r\n newPosition = snapGrid[nextSlide];\r\n } else {\r\n newPosition = snapGrid[nextSlide - 1];\r\n }\r\n newPosition = -newPosition;\r\n }\r\n if (needsLoopFix) {\r\n swiper.once('transitionEnd', function () {\r\n swiper.loopFix();\r\n });\r\n }\r\n // Fix duration\r\n if (swiper.velocity !== 0) {\r\n if (rtl) {\r\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\r\n } else {\r\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\r\n }\r\n } else if (params.freeModeSticky) {\r\n swiper.slideToClosest();\r\n return;\r\n }\r\n\r\n if (params.freeModeMomentumBounce && doBounce) {\r\n swiper.updateProgress(afterBouncePosition);\r\n swiper.setTransition(momentumDuration);\r\n swiper.setTranslate(newPosition);\r\n swiper.transitionStart(true, swiper.swipeDirection);\r\n swiper.animating = true;\r\n $wrapperEl.transitionEnd(function () {\r\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) {\r\n return;\r\n }\r\n swiper.emit('momentumBounce');\r\n\r\n swiper.setTransition(params.speed);\r\n swiper.setTranslate(afterBouncePosition);\r\n $wrapperEl.transitionEnd(function () {\r\n if (!swiper || swiper.destroyed) {\r\n return;\r\n }\r\n swiper.transitionEnd();\r\n });\r\n });\r\n } else if (swiper.velocity) {\r\n swiper.updateProgress(newPosition);\r\n swiper.setTransition(momentumDuration);\r\n swiper.setTranslate(newPosition);\r\n swiper.transitionStart(true, swiper.swipeDirection);\r\n if (!swiper.animating) {\r\n swiper.animating = true;\r\n $wrapperEl.transitionEnd(function () {\r\n if (!swiper || swiper.destroyed) {\r\n return;\r\n }\r\n swiper.transitionEnd();\r\n });\r\n }\r\n } else {\r\n swiper.updateProgress(newPosition);\r\n }\r\n\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n } else if (params.freeModeSticky) {\r\n swiper.slideToClosest();\r\n return;\r\n }\r\n\r\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\r\n swiper.updateProgress();\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n return;\r\n }\r\n\r\n // Find current slide\r\n var stopIndex = 0;\r\n var groupSize = swiper.slidesSizesGrid[0];\r\n for (var i = 0; i < slidesGrid.length; i += params.slidesPerGroup) {\r\n if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') {\r\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) {\r\n stopIndex = i;\r\n groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i];\r\n }\r\n } else if (currentPos >= slidesGrid[i]) {\r\n stopIndex = i;\r\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\r\n }\r\n }\r\n\r\n // Find current slide size\r\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\r\n\r\n if (timeDiff > params.longSwipesMs) {\r\n // Long touches\r\n if (!params.longSwipes) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n if (swiper.swipeDirection === 'next') {\r\n if (ratio >= params.longSwipesRatio) {\r\n swiper.slideTo(stopIndex + params.slidesPerGroup);\r\n }\r\n else {\r\n swiper.slideTo(stopIndex);\r\n }\r\n }\r\n if (swiper.swipeDirection === 'prev') {\r\n if (ratio > (1 - params.longSwipesRatio)) {\r\n swiper.slideTo(stopIndex + params.slidesPerGroup);\r\n }\r\n else {\r\n swiper.slideTo(stopIndex);\r\n }\r\n }\r\n } else {\r\n // Short swipes\r\n if (!params.shortSwipes) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n if (swiper.swipeDirection === 'next') {\r\n swiper.slideTo(stopIndex + params.slidesPerGroup);\r\n }\r\n if (swiper.swipeDirection === 'prev') {\r\n swiper.slideTo(stopIndex);\r\n }\r\n }\r\n }\r\n\r\n function onResize() {\r\n var swiper = this;\r\n\r\n var params = swiper.params;\r\n var el = swiper.el;\r\n\r\n if (el && el.offsetWidth === 0) {\r\n return;\r\n }\r\n\r\n // Breakpoints\r\n if (params.breakpoints) {\r\n swiper.setBreakpoint();\r\n }\r\n\r\n // Save locks\r\n var allowSlideNext = swiper.allowSlideNext;\r\n var allowSlidePrev = swiper.allowSlidePrev;\r\n var snapGrid = swiper.snapGrid;\r\n\r\n // Disable locks on resize\r\n swiper.allowSlideNext = true;\r\n swiper.allowSlidePrev = true;\r\n\r\n swiper.updateSize();\r\n swiper.updateSlides();\r\n\r\n if (params.freeMode) {\r\n var newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate());\r\n swiper.setTranslate(newTranslate);\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n\r\n if (params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n } else {\r\n swiper.updateSlidesClasses();\r\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\r\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\r\n } else {\r\n swiper.slideTo(swiper.activeIndex, 0, false, true);\r\n }\r\n }\r\n // Return locks after resize\r\n swiper.allowSlidePrev = allowSlidePrev;\r\n swiper.allowSlideNext = allowSlideNext;\r\n\r\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\r\n swiper.checkOverflow();\r\n }\r\n }\r\n\r\n function onClick(e) {\r\n var swiper = this;\r\n if (!swiper.allowClick) {\r\n if (swiper.params.preventClicks) {\r\n e.preventDefault();\r\n }\r\n if (swiper.params.preventClicksPropagation && swiper.animating) {\r\n e.stopPropagation();\r\n e.stopImmediatePropagation();\r\n }\r\n }\r\n }\r\n\r\n function attachEvents() {\r\n var swiper = this;\r\n var params = swiper.params;\r\n var touchEvents = swiper.touchEvents;\r\n var el = swiper.el;\r\n var wrapperEl = swiper.wrapperEl;\r\n\r\n {\r\n swiper.onTouchStart = onTouchStart.bind(swiper);\r\n swiper.onTouchMove = onTouchMove.bind(swiper);\r\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\r\n }\r\n\r\n swiper.onClick = onClick.bind(swiper);\r\n\r\n var target = params.touchEventsTarget === 'container' ? el : wrapperEl;\r\n var capture = !!params.nested;\r\n\r\n // Touch Events\r\n {\r\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\r\n target.addEventListener(touchEvents.start, swiper.onTouchStart, false);\r\n doc.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\r\n doc.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\r\n } else {\r\n if (Support.touch) {\r\n var passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\r\n target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? {\r\n passive: false,\r\n capture: capture\r\n } : capture);\r\n target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\r\n }\r\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\r\n target.addEventListener('mousedown', swiper.onTouchStart, false);\r\n doc.addEventListener('mousemove', swiper.onTouchMove, capture);\r\n doc.addEventListener('mouseup', swiper.onTouchEnd, false);\r\n }\r\n }\r\n // Prevent Links Clicks\r\n if (params.preventClicks || params.preventClicksPropagation) {\r\n target.addEventListener('click', swiper.onClick, true);\r\n }\r\n }\r\n\r\n // Resize handler\r\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\r\n }\r\n\r\n function detachEvents() {\r\n var swiper = this;\r\n\r\n var params = swiper.params;\r\n var touchEvents = swiper.touchEvents;\r\n var el = swiper.el;\r\n var wrapperEl = swiper.wrapperEl;\r\n\r\n var target = params.touchEventsTarget === 'container' ? el : wrapperEl;\r\n var capture = !!params.nested;\r\n\r\n // Touch Events\r\n {\r\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\r\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\r\n doc.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\r\n doc.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\r\n } else {\r\n if (Support.touch) {\r\n var passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\r\n target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\r\n target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\r\n }\r\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\r\n target.removeEventListener('mousedown', swiper.onTouchStart, false);\r\n doc.removeEventListener('mousemove', swiper.onTouchMove, capture);\r\n doc.removeEventListener('mouseup', swiper.onTouchEnd, false);\r\n }\r\n }\r\n // Prevent Links Clicks\r\n if (params.preventClicks || params.preventClicksPropagation) {\r\n target.removeEventListener('click', swiper.onClick, true);\r\n }\r\n }\r\n\r\n // Resize handler\r\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\r\n }\r\n\r\n var events = {\r\n attachEvents: attachEvents,\r\n detachEvents: detachEvents,\r\n };\r\n\r\n function setBreakpoint() {\r\n var swiper = this;\r\n var activeIndex = swiper.activeIndex;\r\n var initialized = swiper.initialized;\r\n var loopedSlides = swiper.loopedSlides;\r\n if (loopedSlides === void 0) loopedSlides = 0;\r\n var params = swiper.params;\r\n var breakpoints = params.breakpoints;\r\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) {\r\n return;\r\n }\r\n // Set breakpoint for window width and update parameters\r\n var breakpoint = swiper.getBreakpoint(breakpoints);\r\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\r\n var breakPointsParams = breakpoint in breakpoints ? breakpoints[breakpoint] : swiper.originalParams;\r\n var needsReLoop = params.loop && (breakPointsParams.slidesPerView !== params.slidesPerView);\r\n\r\n Utils.extend(swiper.params, breakPointsParams);\r\n\r\n Utils.extend(swiper, {\r\n allowTouchMove: swiper.params.allowTouchMove,\r\n allowSlideNext: swiper.params.allowSlideNext,\r\n allowSlidePrev: swiper.params.allowSlidePrev,\r\n });\r\n\r\n swiper.currentBreakpoint = breakpoint;\r\n\r\n if (needsReLoop && initialized) {\r\n swiper.loopDestroy();\r\n swiper.loopCreate();\r\n swiper.updateSlides();\r\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\r\n }\r\n swiper.emit('breakpoint', breakPointsParams);\r\n }\r\n }\r\n\r\n function getBreakpoint(breakpoints) {\r\n var swiper = this;\r\n // Get breakpoint for window width\r\n if (!breakpoints) {\r\n return undefined;\r\n }\r\n var breakpoint = false;\r\n var points = [];\r\n Object.keys(breakpoints).forEach(function (point) {\r\n points.push(point);\r\n });\r\n points.sort(function (a, b) {\r\n return parseInt(a, 10) - parseInt(b, 10);\r\n });\r\n for (var i = 0; i < points.length; i += 1) {\r\n var point = points[i];\r\n if (swiper.params.breakpointsInverse) {\r\n if (point <= win.innerWidth) {\r\n breakpoint = point;\r\n }\r\n } else if (point >= win.innerWidth && !breakpoint) {\r\n breakpoint = point;\r\n }\r\n }\r\n return breakpoint || 'max';\r\n }\r\n\r\n var breakpoints = {setBreakpoint: setBreakpoint, getBreakpoint: getBreakpoint};\r\n\r\n var Browser = (function Browser() {\r\n function isSafari() {\r\n var ua = win.navigator.userAgent.toLowerCase();\r\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\r\n }\r\n\r\n return {\r\n isIE: !!win.navigator.userAgent.match(/Trident/g) || !!win.navigator.userAgent.match(/MSIE/g),\r\n isEdge: !!win.navigator.userAgent.match(/Edge/g),\r\n isSafari: isSafari(),\r\n isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent),\r\n };\r\n }());\r\n\r\n function addClasses() {\r\n var swiper = this;\r\n var classNames = swiper.classNames;\r\n var params = swiper.params;\r\n var rtl = swiper.rtl;\r\n var $el = swiper.$el;\r\n var suffixes = [];\r\n\r\n suffixes.push(params.direction);\r\n\r\n if (params.freeMode) {\r\n suffixes.push('free-mode');\r\n }\r\n if (!Support.flexbox) {\r\n suffixes.push('no-flexbox');\r\n }\r\n if (params.autoHeight) {\r\n suffixes.push('autoheight');\r\n }\r\n if (rtl) {\r\n suffixes.push('rtl');\r\n }\r\n if (params.slidesPerColumn > 1) {\r\n suffixes.push('multirow');\r\n }\r\n if (Device.android) {\r\n suffixes.push('android');\r\n }\r\n if (Device.ios) {\r\n suffixes.push('ios');\r\n }\r\n // WP8 Touch Events Fix\r\n if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) {\r\n suffixes.push((\"wp8-\" + (params.direction)));\r\n }\r\n\r\n suffixes.forEach(function (suffix) {\r\n classNames.push(params.containerModifierClass + suffix);\r\n });\r\n\r\n $el.addClass(classNames.join(' '));\r\n }\r\n\r\n function removeClasses() {\r\n var swiper = this;\r\n var $el = swiper.$el;\r\n var classNames = swiper.classNames;\r\n\r\n $el.removeClass(classNames.join(' '));\r\n }\r\n\r\n var classes = {addClasses: addClasses, removeClasses: removeClasses};\r\n\r\n function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\r\n var image;\r\n\r\n function onReady() {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n\r\n if (!imageEl.complete || !checkForComplete) {\r\n if (src) {\r\n image = new win.Image();\r\n image.onload = onReady;\r\n image.onerror = onReady;\r\n if (sizes) {\r\n image.sizes = sizes;\r\n }\r\n if (srcset) {\r\n image.srcset = srcset;\r\n }\r\n if (src) {\r\n image.src = src;\r\n }\r\n } else {\r\n onReady();\r\n }\r\n } else {\r\n // image already loaded...\r\n onReady();\r\n }\r\n }\r\n\r\n function preloadImages() {\r\n var swiper = this;\r\n swiper.imagesToLoad = swiper.$el.find('img');\r\n\r\n function onReady() {\r\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) {\r\n return;\r\n }\r\n if (swiper.imagesLoaded !== undefined) {\r\n swiper.imagesLoaded += 1;\r\n }\r\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\r\n if (swiper.params.updateOnImagesReady) {\r\n swiper.update();\r\n }\r\n swiper.emit('imagesReady');\r\n }\r\n }\r\n\r\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\r\n var imageEl = swiper.imagesToLoad[i];\r\n swiper.loadImage(\r\n imageEl,\r\n imageEl.currentSrc || imageEl.getAttribute('src'),\r\n imageEl.srcset || imageEl.getAttribute('srcset'),\r\n imageEl.sizes || imageEl.getAttribute('sizes'),\r\n true,\r\n onReady\r\n );\r\n }\r\n }\r\n\r\n var images = {\r\n loadImage: loadImage,\r\n preloadImages: preloadImages,\r\n };\r\n\r\n function checkOverflow() {\r\n var swiper = this;\r\n var wasLocked = swiper.isLocked;\r\n\r\n swiper.isLocked = swiper.snapGrid.length === 1;\r\n swiper.allowSlideNext = !swiper.isLocked;\r\n swiper.allowSlidePrev = !swiper.isLocked;\r\n\r\n // events\r\n if (wasLocked !== swiper.isLocked) {\r\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\r\n }\r\n\r\n if (wasLocked && wasLocked !== swiper.isLocked) {\r\n swiper.isEnd = false;\r\n swiper.navigation.update();\r\n }\r\n }\r\n\r\n var checkOverflow$1 = {checkOverflow: checkOverflow};\r\n\r\n var defaults = {\r\n init: true,\r\n direction: 'horizontal',\r\n touchEventsTarget: 'container',\r\n initialSlide: 0,\r\n speed: 300,\r\n //\r\n preventInteractionOnTransition: false,\r\n\r\n // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).\r\n edgeSwipeDetection: false,\r\n edgeSwipeThreshold: 20,\r\n\r\n // Free mode\r\n freeMode: false,\r\n freeModeMomentum: true,\r\n freeModeMomentumRatio: 1,\r\n freeModeMomentumBounce: true,\r\n freeModeMomentumBounceRatio: 1,\r\n freeModeMomentumVelocityRatio: 1,\r\n freeModeSticky: false,\r\n freeModeMinimumVelocity: 0.02,\r\n\r\n // Autoheight\r\n autoHeight: false,\r\n\r\n // Set wrapper width\r\n setWrapperSize: false,\r\n\r\n // Virtual Translate\r\n virtualTranslate: false,\r\n\r\n // Effects\r\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\r\n\r\n // Breakpoints\r\n breakpoints: undefined,\r\n breakpointsInverse: false,\r\n\r\n // Slides grid\r\n spaceBetween: 0,\r\n slidesPerView: 1,\r\n slidesPerColumn: 1,\r\n slidesPerColumnFill: 'column',\r\n slidesPerGroup: 1,\r\n centeredSlides: false,\r\n slidesOffsetBefore: 0, // in px\r\n slidesOffsetAfter: 0, // in px\r\n normalizeSlideIndex: true,\r\n centerInsufficientSlides: false,\r\n\r\n // Disable swiper and hide navigation when container not overflow\r\n watchOverflow: false,\r\n\r\n // Round length\r\n roundLengths: false,\r\n\r\n // Touches\r\n touchRatio: 1,\r\n touchAngle: 45,\r\n simulateTouch: true,\r\n shortSwipes: true,\r\n longSwipes: true,\r\n longSwipesRatio: 0.5,\r\n longSwipesMs: 300,\r\n followFinger: true,\r\n allowTouchMove: true,\r\n threshold: 0,\r\n touchMoveStopPropagation: true,\r\n touchStartPreventDefault: true,\r\n touchReleaseOnEdges: false,\r\n\r\n // Unique Navigation Elements\r\n uniqueNavElements: true,\r\n\r\n // Resistance\r\n resistance: true,\r\n resistanceRatio: 0.85,\r\n\r\n // Progress\r\n watchSlidesProgress: false,\r\n watchSlidesVisibility: false,\r\n\r\n // Cursor\r\n grabCursor: false,\r\n\r\n // Clicks\r\n preventClicks: true,\r\n preventClicksPropagation: true,\r\n slideToClickedSlide: false,\r\n\r\n // Images\r\n preloadImages: true,\r\n updateOnImagesReady: true,\r\n\r\n // loop\r\n loop: false,\r\n loopAdditionalSlides: 0,\r\n loopedSlides: null,\r\n loopFillGroupWithBlank: false,\r\n\r\n // Swiping/no swiping\r\n allowSlidePrev: true,\r\n allowSlideNext: true,\r\n swipeHandler: null, // '.swipe-handler',\r\n noSwiping: true,\r\n noSwipingClass: 'swiper-no-swiping',\r\n noSwipingSelector: null,\r\n\r\n // Passive Listeners\r\n passiveListeners: true,\r\n\r\n // NS\r\n containerModifierClass: 'swiper-container-', // NEW\r\n slideClass: 'swiper-slide',\r\n slideBlankClass: 'swiper-slide-invisible-blank',\r\n slideActiveClass: 'swiper-slide-active',\r\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\r\n slideVisibleClass: 'swiper-slide-visible',\r\n slideDuplicateClass: 'swiper-slide-duplicate',\r\n slideNextClass: 'swiper-slide-next',\r\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\r\n slidePrevClass: 'swiper-slide-prev',\r\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\r\n wrapperClass: 'swiper-wrapper',\r\n\r\n // Callbacks\r\n runCallbacksOnInit: true,\r\n };\r\n\r\n var prototypes = {\r\n update: update,\r\n translate: translate,\r\n transition: transition$1,\r\n slide: slide,\r\n loop: loop,\r\n grabCursor: grabCursor,\r\n manipulation: manipulation,\r\n events: events,\r\n breakpoints: breakpoints,\r\n checkOverflow: checkOverflow$1,\r\n classes: classes,\r\n images: images,\r\n };\r\n\r\n var extendedDefaults = {};\r\n\r\n var Swiper = (function (SwiperClass$$1) {\r\n function Swiper() {\r\n var assign;\r\n\r\n var args = [], len = arguments.length;\r\n while (len--) args[len] = arguments[len];\r\n var el;\r\n var params;\r\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\r\n params = args[0];\r\n } else {\r\n (assign = args, el = assign[0], params = assign[1]);\r\n }\r\n if (!params) {\r\n params = {};\r\n }\r\n\r\n params = Utils.extend({}, params);\r\n if (el && !params.el) {\r\n params.el = el;\r\n }\r\n\r\n SwiperClass$$1.call(this, params);\r\n\r\n Object.keys(prototypes).forEach(function (prototypeGroup) {\r\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\r\n if (!Swiper.prototype[protoMethod]) {\r\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\r\n }\r\n });\r\n });\r\n\r\n // Swiper Instance\r\n var swiper = this;\r\n if (typeof swiper.modules === 'undefined') {\r\n swiper.modules = {};\r\n }\r\n Object.keys(swiper.modules).forEach(function (moduleName) {\r\n var module = swiper.modules[moduleName];\r\n if (module.params) {\r\n var moduleParamName = Object.keys(module.params)[0];\r\n var moduleParams = module.params[moduleParamName];\r\n if (typeof moduleParams !== 'object' || moduleParams === null) {\r\n return;\r\n }\r\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\r\n return;\r\n }\r\n if (params[moduleParamName] === true) {\r\n params[moduleParamName] = {enabled: true};\r\n }\r\n if (\r\n typeof params[moduleParamName] === 'object'\r\n && !('enabled' in params[moduleParamName])\r\n ) {\r\n params[moduleParamName].enabled = true;\r\n }\r\n if (!params[moduleParamName]) {\r\n params[moduleParamName] = {enabled: false};\r\n }\r\n }\r\n });\r\n\r\n // Extend defaults with modules params\r\n var swiperParams = Utils.extend({}, defaults);\r\n swiper.useModulesParams(swiperParams);\r\n\r\n // Extend defaults with passed params\r\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\r\n swiper.originalParams = Utils.extend({}, swiper.params);\r\n swiper.passedParams = Utils.extend({}, params);\r\n\r\n // Save Dom lib\r\n swiper.$ = $;\r\n\r\n // Find el\r\n var $el = $(swiper.params.el);\r\n el = $el[0];\r\n\r\n if (!el) {\r\n return undefined;\r\n }\r\n\r\n if ($el.length > 1) {\r\n var swipers = [];\r\n $el.each(function (index, containerEl) {\r\n var newParams = Utils.extend({}, params, {el: containerEl});\r\n swipers.push(new Swiper(newParams));\r\n });\r\n return swipers;\r\n }\r\n\r\n el.swiper = swiper;\r\n $el.data('swiper', swiper);\r\n\r\n // Find Wrapper\r\n var $wrapperEl = $el.children((\".\" + (swiper.params.wrapperClass)));\r\n\r\n // Extend Swiper\r\n Utils.extend(swiper, {\r\n $el: $el,\r\n el: el,\r\n $wrapperEl: $wrapperEl,\r\n wrapperEl: $wrapperEl[0],\r\n\r\n // Classes\r\n classNames: [],\r\n\r\n // Slides\r\n slides: $(),\r\n slidesGrid: [],\r\n snapGrid: [],\r\n slidesSizesGrid: [],\r\n\r\n // isDirection\r\n isHorizontal: function isHorizontal() {\r\n return swiper.params.direction === 'horizontal';\r\n },\r\n isVertical: function isVertical() {\r\n return swiper.params.direction === 'vertical';\r\n },\r\n // RTL\r\n rtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\r\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\r\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\r\n\r\n // Indexes\r\n activeIndex: 0,\r\n realIndex: 0,\r\n\r\n //\r\n isBeginning: true,\r\n isEnd: false,\r\n\r\n // Props\r\n translate: 0,\r\n previousTranslate: 0,\r\n progress: 0,\r\n velocity: 0,\r\n animating: false,\r\n\r\n // Locks\r\n allowSlideNext: swiper.params.allowSlideNext,\r\n allowSlidePrev: swiper.params.allowSlidePrev,\r\n\r\n // Touch Events\r\n touchEvents: (function touchEvents() {\r\n var touch = ['touchstart', 'touchmove', 'touchend'];\r\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\r\n if (Support.pointerEvents) {\r\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\r\n } else if (Support.prefixedPointerEvents) {\r\n desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp'];\r\n }\r\n swiper.touchEventsTouch = {\r\n start: touch[0],\r\n move: touch[1],\r\n end: touch[2],\r\n };\r\n swiper.touchEventsDesktop = {\r\n start: desktop[0],\r\n move: desktop[1],\r\n end: desktop[2],\r\n };\r\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\r\n }()),\r\n touchEventsData: {\r\n isTouched: undefined,\r\n isMoved: undefined,\r\n allowTouchCallbacks: undefined,\r\n touchStartTime: undefined,\r\n isScrolling: undefined,\r\n currentTranslate: undefined,\r\n startTranslate: undefined,\r\n allowThresholdMove: undefined,\r\n // Form elements to match\r\n formElements: 'input, select, option, textarea, button, video',\r\n // Last click time\r\n lastClickTime: Utils.now(),\r\n clickTimeout: undefined,\r\n // Velocities\r\n velocities: [],\r\n allowMomentumBounce: undefined,\r\n isTouchEvent: undefined,\r\n startMoving: undefined,\r\n },\r\n\r\n // Clicks\r\n allowClick: true,\r\n\r\n // Touches\r\n allowTouchMove: swiper.params.allowTouchMove,\r\n\r\n touches: {\r\n startX: 0,\r\n startY: 0,\r\n currentX: 0,\r\n currentY: 0,\r\n diff: 0,\r\n },\r\n\r\n // Images\r\n imagesToLoad: [],\r\n imagesLoaded: 0,\r\n\r\n });\r\n\r\n // Install Modules\r\n swiper.useModules();\r\n\r\n // Init\r\n if (swiper.params.init) {\r\n swiper.init();\r\n }\r\n\r\n // Return app instance\r\n return swiper;\r\n }\r\n\r\n if (SwiperClass$$1) Swiper.__proto__ = SwiperClass$$1;\r\n Swiper.prototype = Object.create(SwiperClass$$1 && SwiperClass$$1.prototype);\r\n Swiper.prototype.constructor = Swiper;\r\n\r\n var staticAccessors = {\r\n extendedDefaults: {configurable: true},\r\n defaults: {configurable: true},\r\n Class: {configurable: true},\r\n $: {configurable: true}\r\n };\r\n\r\n Swiper.prototype.slidesPerViewDynamic = function slidesPerViewDynamic() {\r\n var swiper = this;\r\n var params = swiper.params;\r\n var slides = swiper.slides;\r\n var slidesGrid = swiper.slidesGrid;\r\n var swiperSize = swiper.size;\r\n var activeIndex = swiper.activeIndex;\r\n var spv = 1;\r\n if (params.centeredSlides) {\r\n var slideSize = slides[activeIndex].swiperSlideSize;\r\n var breakLoop;\r\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\r\n if (slides[i] && !breakLoop) {\r\n slideSize += slides[i].swiperSlideSize;\r\n spv += 1;\r\n if (slideSize > swiperSize) {\r\n breakLoop = true;\r\n }\r\n }\r\n }\r\n for (var i$1 = activeIndex - 1; i$1 >= 0; i$1 -= 1) {\r\n if (slides[i$1] && !breakLoop) {\r\n slideSize += slides[i$1].swiperSlideSize;\r\n spv += 1;\r\n if (slideSize > swiperSize) {\r\n breakLoop = true;\r\n }\r\n }\r\n }\r\n } else {\r\n for (var i$2 = activeIndex + 1; i$2 < slides.length; i$2 += 1) {\r\n if (slidesGrid[i$2] - slidesGrid[activeIndex] < swiperSize) {\r\n spv += 1;\r\n }\r\n }\r\n }\r\n return spv;\r\n };\r\n\r\n Swiper.prototype.update = function update$$1() {\r\n var swiper = this;\r\n if (!swiper || swiper.destroyed) {\r\n return;\r\n }\r\n var snapGrid = swiper.snapGrid;\r\n var params = swiper.params;\r\n // Breakpoints\r\n if (params.breakpoints) {\r\n swiper.setBreakpoint();\r\n }\r\n swiper.updateSize();\r\n swiper.updateSlides();\r\n swiper.updateProgress();\r\n swiper.updateSlidesClasses();\r\n\r\n function setTranslate() {\r\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\r\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\r\n swiper.setTranslate(newTranslate);\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n\r\n var translated;\r\n if (swiper.params.freeMode) {\r\n setTranslate();\r\n if (swiper.params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n } else {\r\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\r\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\r\n } else {\r\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\r\n }\r\n if (!translated) {\r\n setTranslate();\r\n }\r\n }\r\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\r\n swiper.checkOverflow();\r\n }\r\n swiper.emit('update');\r\n };\r\n\r\n Swiper.prototype.init = function init() {\r\n var swiper = this;\r\n if (swiper.initialized) {\r\n return;\r\n }\r\n\r\n swiper.emit('beforeInit');\r\n\r\n // Set breakpoint\r\n if (swiper.params.breakpoints) {\r\n swiper.setBreakpoint();\r\n }\r\n\r\n // Add Classes\r\n swiper.addClasses();\r\n\r\n // Create loop\r\n if (swiper.params.loop) {\r\n swiper.loopCreate();\r\n }\r\n\r\n // Update size\r\n swiper.updateSize();\r\n\r\n // Update slides\r\n swiper.updateSlides();\r\n\r\n if (swiper.params.watchOverflow) {\r\n swiper.checkOverflow();\r\n }\r\n\r\n // Set Grab Cursor\r\n if (swiper.params.grabCursor) {\r\n swiper.setGrabCursor();\r\n }\r\n\r\n if (swiper.params.preloadImages) {\r\n swiper.preloadImages();\r\n }\r\n\r\n // Slide To Initial Slide\r\n if (swiper.params.loop) {\r\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\r\n } else {\r\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\r\n }\r\n\r\n // Attach events\r\n swiper.attachEvents();\r\n\r\n // Init Flag\r\n swiper.initialized = true;\r\n\r\n // Emit\r\n swiper.emit('init');\r\n };\r\n\r\n Swiper.prototype.destroy = function destroy(deleteInstance, cleanStyles) {\r\n if (deleteInstance === void 0) deleteInstance = true;\r\n if (cleanStyles === void 0) cleanStyles = true;\r\n\r\n var swiper = this;\r\n var params = swiper.params;\r\n var $el = swiper.$el;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var slides = swiper.slides;\r\n\r\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\r\n return null;\r\n }\r\n\r\n swiper.emit('beforeDestroy');\r\n\r\n // Init Flag\r\n swiper.initialized = false;\r\n\r\n // Detach events\r\n swiper.detachEvents();\r\n\r\n // Destroy loop\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n }\r\n\r\n // Cleanup styles\r\n if (cleanStyles) {\r\n swiper.removeClasses();\r\n $el.removeAttr('style');\r\n $wrapperEl.removeAttr('style');\r\n if (slides && slides.length) {\r\n slides\r\n .removeClass([\r\n params.slideVisibleClass,\r\n params.slideActiveClass,\r\n params.slideNextClass,\r\n params.slidePrevClass].join(' '))\r\n .removeAttr('style')\r\n .removeAttr('data-swiper-slide-index')\r\n .removeAttr('data-swiper-column')\r\n .removeAttr('data-swiper-row');\r\n }\r\n }\r\n\r\n swiper.emit('destroy');\r\n\r\n // Detach emitter events\r\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\r\n swiper.off(eventName);\r\n });\r\n\r\n if (deleteInstance !== false) {\r\n swiper.$el[0].swiper = null;\r\n swiper.$el.data('swiper', null);\r\n Utils.deleteProps(swiper);\r\n }\r\n swiper.destroyed = true;\r\n\r\n return null;\r\n };\r\n\r\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\r\n Utils.extend(extendedDefaults, newDefaults);\r\n };\r\n\r\n staticAccessors.extendedDefaults.get = function () {\r\n return extendedDefaults;\r\n };\r\n\r\n staticAccessors.defaults.get = function () {\r\n return defaults;\r\n };\r\n\r\n staticAccessors.Class.get = function () {\r\n return SwiperClass$$1;\r\n };\r\n\r\n staticAccessors.$.get = function () {\r\n return $;\r\n };\r\n\r\n Object.defineProperties(Swiper, staticAccessors);\r\n\r\n return Swiper;\r\n }(SwiperClass));\r\n\r\n var Device$1 = {\r\n name: 'device',\r\n proto: {\r\n device: Device,\r\n },\r\n static: {\r\n device: Device,\r\n },\r\n };\r\n\r\n var Support$1 = {\r\n name: 'support',\r\n proto: {\r\n support: Support,\r\n },\r\n static: {\r\n support: Support,\r\n },\r\n };\r\n\r\n var Browser$1 = {\r\n name: 'browser',\r\n proto: {\r\n browser: Browser,\r\n },\r\n static: {\r\n browser: Browser,\r\n },\r\n };\r\n\r\n var Resize = {\r\n name: 'resize',\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n resize: {\r\n resizeHandler: function resizeHandler() {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) {\r\n return;\r\n }\r\n swiper.emit('beforeResize');\r\n swiper.emit('resize');\r\n },\r\n orientationChangeHandler: function orientationChangeHandler() {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) {\r\n return;\r\n }\r\n swiper.emit('orientationchange');\r\n },\r\n },\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n // Emit resize\r\n win.addEventListener('resize', swiper.resize.resizeHandler);\r\n\r\n // Emit orientationchange\r\n win.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n win.removeEventListener('resize', swiper.resize.resizeHandler);\r\n win.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\r\n },\r\n },\r\n };\r\n\r\n var Observer = {\r\n func: win.MutationObserver || win.WebkitMutationObserver,\r\n attach: function attach(target, options) {\r\n if (options === void 0) options = {};\r\n\r\n var swiper = this;\r\n\r\n var ObserverFunc = Observer.func;\r\n var observer = new ObserverFunc(function (mutations) {\r\n // The observerUpdate event should only be triggered\r\n // once despite the number of mutations. Additional\r\n // triggers are redundant and are very costly\r\n if (mutations.length === 1) {\r\n swiper.emit('observerUpdate', mutations[0]);\r\n return;\r\n }\r\n var observerUpdate = function observerUpdate() {\r\n swiper.emit('observerUpdate', mutations[0]);\r\n };\r\n\r\n if (win.requestAnimationFrame) {\r\n win.requestAnimationFrame(observerUpdate);\r\n } else {\r\n win.setTimeout(observerUpdate, 0);\r\n }\r\n });\r\n\r\n observer.observe(target, {\r\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\r\n childList: typeof options.childList === 'undefined' ? true : options.childList,\r\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\r\n });\r\n\r\n swiper.observer.observers.push(observer);\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n if (!Support.observer || !swiper.params.observer) {\r\n return;\r\n }\r\n if (swiper.params.observeParents) {\r\n var containerParents = swiper.$el.parents();\r\n for (var i = 0; i < containerParents.length; i += 1) {\r\n swiper.observer.attach(containerParents[i]);\r\n }\r\n }\r\n // Observe container\r\n swiper.observer.attach(swiper.$el[0], {childList: false});\r\n\r\n // Observe wrapper\r\n swiper.observer.attach(swiper.$wrapperEl[0], {attributes: false});\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n swiper.observer.observers.forEach(function (observer) {\r\n observer.disconnect();\r\n });\r\n swiper.observer.observers = [];\r\n },\r\n };\r\n\r\n var Observer$1 = {\r\n name: 'observer',\r\n params: {\r\n observer: false,\r\n observeParents: false,\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n observer: {\r\n init: Observer.init.bind(swiper),\r\n attach: Observer.attach.bind(swiper),\r\n destroy: Observer.destroy.bind(swiper),\r\n observers: [],\r\n },\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n swiper.observer.init();\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n swiper.observer.destroy();\r\n },\r\n },\r\n };\r\n\r\n var Virtual = {\r\n update: function update(force) {\r\n var swiper = this;\r\n var ref = swiper.params;\r\n var slidesPerView = ref.slidesPerView;\r\n var slidesPerGroup = ref.slidesPerGroup;\r\n var centeredSlides = ref.centeredSlides;\r\n var ref$1 = swiper.params.virtual;\r\n var addSlidesBefore = ref$1.addSlidesBefore;\r\n var addSlidesAfter = ref$1.addSlidesAfter;\r\n var ref$2 = swiper.virtual;\r\n var previousFrom = ref$2.from;\r\n var previousTo = ref$2.to;\r\n var slides = ref$2.slides;\r\n var previousSlidesGrid = ref$2.slidesGrid;\r\n var renderSlide = ref$2.renderSlide;\r\n var previousOffset = ref$2.offset;\r\n swiper.updateActiveIndex();\r\n var activeIndex = swiper.activeIndex || 0;\r\n\r\n var offsetProp;\r\n if (swiper.rtlTranslate) {\r\n offsetProp = 'right';\r\n }\r\n else {\r\n offsetProp = swiper.isHorizontal() ? 'left' : 'top';\r\n }\r\n\r\n var slidesAfter;\r\n var slidesBefore;\r\n if (centeredSlides) {\r\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\r\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\r\n } else {\r\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\r\n slidesBefore = slidesPerGroup + addSlidesAfter;\r\n }\r\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\r\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\r\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\r\n\r\n Utils.extend(swiper.virtual, {\r\n from: from,\r\n to: to,\r\n offset: offset,\r\n slidesGrid: swiper.slidesGrid,\r\n });\r\n\r\n function onRendered() {\r\n swiper.updateSlides();\r\n swiper.updateProgress();\r\n swiper.updateSlidesClasses();\r\n if (swiper.lazy && swiper.params.lazy.enabled) {\r\n swiper.lazy.load();\r\n }\r\n }\r\n\r\n if (previousFrom === from && previousTo === to && !force) {\r\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\r\n swiper.slides.css(offsetProp, (offset + \"px\"));\r\n }\r\n swiper.updateProgress();\r\n return;\r\n }\r\n if (swiper.params.virtual.renderExternal) {\r\n swiper.params.virtual.renderExternal.call(swiper, {\r\n offset: offset,\r\n from: from,\r\n to: to,\r\n slides: (function getSlides() {\r\n var slidesToRender = [];\r\n for (var i = from; i <= to; i += 1) {\r\n slidesToRender.push(slides[i]);\r\n }\r\n return slidesToRender;\r\n }()),\r\n });\r\n onRendered();\r\n return;\r\n }\r\n var prependIndexes = [];\r\n var appendIndexes = [];\r\n if (force) {\r\n swiper.$wrapperEl.find((\".\" + (swiper.params.slideClass))).remove();\r\n } else {\r\n for (var i = previousFrom; i <= previousTo; i += 1) {\r\n if (i < from || i > to) {\r\n swiper.$wrapperEl.find((\".\" + (swiper.params.slideClass) + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\")).remove();\r\n }\r\n }\r\n }\r\n for (var i$1 = 0; i$1 < slides.length; i$1 += 1) {\r\n if (i$1 >= from && i$1 <= to) {\r\n if (typeof previousTo === 'undefined' || force) {\r\n appendIndexes.push(i$1);\r\n } else {\r\n if (i$1 > previousTo) {\r\n appendIndexes.push(i$1);\r\n }\r\n if (i$1 < previousFrom) {\r\n prependIndexes.push(i$1);\r\n }\r\n }\r\n }\r\n }\r\n appendIndexes.forEach(function (index) {\r\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\r\n });\r\n prependIndexes.sort(function (a, b) {\r\n return a < b;\r\n }).forEach(function (index) {\r\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\r\n });\r\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, (offset + \"px\"));\r\n onRendered();\r\n },\r\n renderSlide: function renderSlide(slide, index) {\r\n var swiper = this;\r\n var params = swiper.params.virtual;\r\n if (params.cache && swiper.virtual.cache[index]) {\r\n return swiper.virtual.cache[index];\r\n }\r\n var $slideEl = params.renderSlide\r\n ? $(params.renderSlide.call(swiper, slide, index))\r\n : $((\"
\" + slide + \"
\"));\r\n if (!$slideEl.attr('data-swiper-slide-index')) {\r\n $slideEl.attr('data-swiper-slide-index', index);\r\n }\r\n if (params.cache) {\r\n swiper.virtual.cache[index] = $slideEl;\r\n }\r\n return $slideEl;\r\n },\r\n appendSlide: function appendSlide(slide) {\r\n var swiper = this;\r\n swiper.virtual.slides.push(slide);\r\n swiper.virtual.update(true);\r\n },\r\n prependSlide: function prependSlide(slide) {\r\n var swiper = this;\r\n swiper.virtual.slides.unshift(slide);\r\n if (swiper.params.virtual.cache) {\r\n var cache = swiper.virtual.cache;\r\n var newCache = {};\r\n Object.keys(cache).forEach(function (cachedIndex) {\r\n newCache[cachedIndex + 1] = cache[cachedIndex];\r\n });\r\n swiper.virtual.cache = newCache;\r\n }\r\n swiper.virtual.update(true);\r\n swiper.slideNext(0);\r\n },\r\n };\r\n\r\n var Virtual$1 = {\r\n name: 'virtual',\r\n params: {\r\n virtual: {\r\n enabled: false,\r\n slides: [],\r\n cache: true,\r\n renderSlide: null,\r\n renderExternal: null,\r\n addSlidesBefore: 0,\r\n addSlidesAfter: 0,\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n virtual: {\r\n update: Virtual.update.bind(swiper),\r\n appendSlide: Virtual.appendSlide.bind(swiper),\r\n prependSlide: Virtual.prependSlide.bind(swiper),\r\n renderSlide: Virtual.renderSlide.bind(swiper),\r\n slides: swiper.params.virtual.slides,\r\n cache: {},\r\n },\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit() {\r\n var swiper = this;\r\n if (!swiper.params.virtual.enabled) {\r\n return;\r\n }\r\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"virtual\"));\r\n var overwriteParams = {\r\n watchSlidesProgress: true,\r\n };\r\n Utils.extend(swiper.params, overwriteParams);\r\n Utils.extend(swiper.originalParams, overwriteParams);\r\n\r\n swiper.virtual.update();\r\n },\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n if (!swiper.params.virtual.enabled) {\r\n return;\r\n }\r\n swiper.virtual.update();\r\n },\r\n },\r\n };\r\n\r\n var Keyboard = {\r\n handle: function handle(event) {\r\n var swiper = this;\r\n var rtl = swiper.rtlTranslate;\r\n var e = event;\r\n if (e.originalEvent) {\r\n e = e.originalEvent;\r\n } // jquery fix\r\n var kc = e.keyCode || e.charCode;\r\n // Directions locks\r\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40))) {\r\n return false;\r\n }\r\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38))) {\r\n return false;\r\n }\r\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\r\n return undefined;\r\n }\r\n if (doc.activeElement && doc.activeElement.nodeName && (doc.activeElement.nodeName.toLowerCase() === 'input' || doc.activeElement.nodeName.toLowerCase() === 'textarea')) {\r\n return undefined;\r\n }\r\n if (swiper.params.keyboard.onlyInViewport && (kc === 37 || kc === 39 || kc === 38 || kc === 40)) {\r\n var inView = false;\r\n // Check that swiper should be inside of visible area of window\r\n if (swiper.$el.parents((\".\" + (swiper.params.slideClass))).length > 0 && swiper.$el.parents((\".\" + (swiper.params.slideActiveClass))).length === 0) {\r\n return undefined;\r\n }\r\n var windowWidth = win.innerWidth;\r\n var windowHeight = win.innerHeight;\r\n var swiperOffset = swiper.$el.offset();\r\n if (rtl) {\r\n swiperOffset.left -= swiper.$el[0].scrollLeft;\r\n }\r\n var swiperCoord = [\r\n [swiperOffset.left, swiperOffset.top],\r\n [swiperOffset.left + swiper.width, swiperOffset.top],\r\n [swiperOffset.left, swiperOffset.top + swiper.height],\r\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\r\n for (var i = 0; i < swiperCoord.length; i += 1) {\r\n var point = swiperCoord[i];\r\n if (\r\n point[0] >= 0 && point[0] <= windowWidth\r\n && point[1] >= 0 && point[1] <= windowHeight\r\n ) {\r\n inView = true;\r\n }\r\n }\r\n if (!inView) {\r\n return undefined;\r\n }\r\n }\r\n if (swiper.isHorizontal()) {\r\n if (kc === 37 || kc === 39) {\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n else {\r\n e.returnValue = false;\r\n }\r\n }\r\n if ((kc === 39 && !rtl) || (kc === 37 && rtl)) {\r\n swiper.slideNext();\r\n }\r\n if ((kc === 37 && !rtl) || (kc === 39 && rtl)) {\r\n swiper.slidePrev();\r\n }\r\n } else {\r\n if (kc === 38 || kc === 40) {\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n else {\r\n e.returnValue = false;\r\n }\r\n }\r\n if (kc === 40) {\r\n swiper.slideNext();\r\n }\r\n if (kc === 38) {\r\n swiper.slidePrev();\r\n }\r\n }\r\n swiper.emit('keyPress', kc);\r\n return undefined;\r\n },\r\n enable: function enable() {\r\n var swiper = this;\r\n if (swiper.keyboard.enabled) {\r\n return;\r\n }\r\n $(doc).on('keydown', swiper.keyboard.handle);\r\n swiper.keyboard.enabled = true;\r\n },\r\n disable: function disable() {\r\n var swiper = this;\r\n if (!swiper.keyboard.enabled) {\r\n return;\r\n }\r\n $(doc).off('keydown', swiper.keyboard.handle);\r\n swiper.keyboard.enabled = false;\r\n },\r\n };\r\n\r\n var Keyboard$1 = {\r\n name: 'keyboard',\r\n params: {\r\n keyboard: {\r\n enabled: false,\r\n onlyInViewport: true,\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n keyboard: {\r\n enabled: false,\r\n enable: Keyboard.enable.bind(swiper),\r\n disable: Keyboard.disable.bind(swiper),\r\n handle: Keyboard.handle.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n if (swiper.params.keyboard.enabled) {\r\n swiper.keyboard.enable();\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n if (swiper.keyboard.enabled) {\r\n swiper.keyboard.disable();\r\n }\r\n },\r\n },\r\n };\r\n\r\n function isEventSupported() {\r\n var eventName = 'onwheel';\r\n var isSupported = eventName in doc;\r\n\r\n if (!isSupported) {\r\n var element = doc.createElement('div');\r\n element.setAttribute(eventName, 'return;');\r\n isSupported = typeof element[eventName] === 'function';\r\n }\r\n\r\n if (!isSupported\r\n && doc.implementation\r\n && doc.implementation.hasFeature\r\n // always returns true in newer browsers as per the standard.\r\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\r\n && doc.implementation.hasFeature('', '') !== true\r\n ) {\r\n // This is the only way to test support for the `wheel` event in IE9+.\r\n isSupported = doc.implementation.hasFeature('Events.wheel', '3.0');\r\n }\r\n\r\n return isSupported;\r\n }\r\n\r\n var Mousewheel = {\r\n lastScrollTime: Utils.now(),\r\n event: (function getEvent() {\r\n if (win.navigator.userAgent.indexOf('firefox') > -1) {\r\n return 'DOMMouseScroll';\r\n }\r\n return isEventSupported() ? 'wheel' : 'mousewheel';\r\n }()),\r\n normalize: function normalize(e) {\r\n // Reasonable defaults\r\n var PIXEL_STEP = 10;\r\n var LINE_HEIGHT = 40;\r\n var PAGE_HEIGHT = 800;\r\n\r\n var sX = 0;\r\n var sY = 0; // spinX, spinY\r\n var pX = 0;\r\n var pY = 0; // pixelX, pixelY\r\n\r\n // Legacy\r\n if ('detail' in e) {\r\n sY = e.detail;\r\n }\r\n if ('wheelDelta' in e) {\r\n sY = -e.wheelDelta / 120;\r\n }\r\n if ('wheelDeltaY' in e) {\r\n sY = -e.wheelDeltaY / 120;\r\n }\r\n if ('wheelDeltaX' in e) {\r\n sX = -e.wheelDeltaX / 120;\r\n }\r\n\r\n // side scrolling on FF with DOMMouseScroll\r\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\r\n sX = sY;\r\n sY = 0;\r\n }\r\n\r\n pX = sX * PIXEL_STEP;\r\n pY = sY * PIXEL_STEP;\r\n\r\n if ('deltaY' in e) {\r\n pY = e.deltaY;\r\n }\r\n if ('deltaX' in e) {\r\n pX = e.deltaX;\r\n }\r\n\r\n if ((pX || pY) && e.deltaMode) {\r\n if (e.deltaMode === 1) { // delta in LINE units\r\n pX *= LINE_HEIGHT;\r\n pY *= LINE_HEIGHT;\r\n } else { // delta in PAGE units\r\n pX *= PAGE_HEIGHT;\r\n pY *= PAGE_HEIGHT;\r\n }\r\n }\r\n\r\n // Fall-back if spin cannot be determined\r\n if (pX && !sX) {\r\n sX = (pX < 1) ? -1 : 1;\r\n }\r\n if (pY && !sY) {\r\n sY = (pY < 1) ? -1 : 1;\r\n }\r\n\r\n return {\r\n spinX: sX,\r\n spinY: sY,\r\n pixelX: pX,\r\n pixelY: pY,\r\n };\r\n },\r\n handleMouseEnter: function handleMouseEnter() {\r\n var swiper = this;\r\n swiper.mouseEntered = true;\r\n },\r\n handleMouseLeave: function handleMouseLeave() {\r\n var swiper = this;\r\n swiper.mouseEntered = false;\r\n },\r\n handle: function handle(event) {\r\n var e = event;\r\n var swiper = this;\r\n var params = swiper.params.mousewheel;\r\n\r\n if (!swiper.mouseEntered && !params.releaseOnEdges) {\r\n return true;\r\n }\r\n\r\n if (e.originalEvent) {\r\n e = e.originalEvent;\r\n } // jquery fix\r\n var delta = 0;\r\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\r\n\r\n var data = Mousewheel.normalize(e);\r\n\r\n if (params.forceToAxis) {\r\n if (swiper.isHorizontal()) {\r\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) {\r\n delta = data.pixelX * rtlFactor;\r\n }\r\n else {\r\n return true;\r\n }\r\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) {\r\n delta = data.pixelY;\r\n }\r\n else {\r\n return true;\r\n }\r\n } else {\r\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\r\n }\r\n\r\n if (delta === 0) {\r\n return true;\r\n }\r\n\r\n if (params.invert) {\r\n delta = -delta;\r\n }\r\n\r\n if (!swiper.params.freeMode) {\r\n if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) {\r\n if (delta < 0) {\r\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\r\n swiper.slideNext();\r\n swiper.emit('scroll', e);\r\n } else if (params.releaseOnEdges) {\r\n return true;\r\n }\r\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\r\n swiper.slidePrev();\r\n swiper.emit('scroll', e);\r\n } else if (params.releaseOnEdges) {\r\n return true;\r\n }\r\n }\r\n swiper.mousewheel.lastScrollTime = (new win.Date()).getTime();\r\n } else {\r\n // Freemode or scrollContainer:\r\n if (swiper.params.loop) {\r\n swiper.loopFix();\r\n }\r\n var position = swiper.getTranslate() + (delta * params.sensitivity);\r\n var wasBeginning = swiper.isBeginning;\r\n var wasEnd = swiper.isEnd;\r\n\r\n if (position >= swiper.minTranslate()) {\r\n position = swiper.minTranslate();\r\n }\r\n if (position <= swiper.maxTranslate()) {\r\n position = swiper.maxTranslate();\r\n }\r\n\r\n swiper.setTransition(0);\r\n swiper.setTranslate(position);\r\n swiper.updateProgress();\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n\r\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\r\n swiper.updateSlidesClasses();\r\n }\r\n\r\n if (swiper.params.freeModeSticky) {\r\n clearTimeout(swiper.mousewheel.timeout);\r\n swiper.mousewheel.timeout = Utils.nextTick(function () {\r\n swiper.slideToClosest();\r\n }, 300);\r\n }\r\n // Emit event\r\n swiper.emit('scroll', e);\r\n\r\n // Stop autoplay\r\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) {\r\n swiper.autoplay.stop();\r\n }\r\n // Return page scroll on edge positions\r\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) {\r\n return true;\r\n }\r\n }\r\n\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n else {\r\n e.returnValue = false;\r\n }\r\n return false;\r\n },\r\n enable: function enable() {\r\n var swiper = this;\r\n if (!Mousewheel.event) {\r\n return false;\r\n }\r\n if (swiper.mousewheel.enabled) {\r\n return false;\r\n }\r\n var target = swiper.$el;\r\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\r\n target = $(swiper.params.mousewheel.eventsTarged);\r\n }\r\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\r\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\r\n target.on(Mousewheel.event, swiper.mousewheel.handle);\r\n swiper.mousewheel.enabled = true;\r\n return true;\r\n },\r\n disable: function disable() {\r\n var swiper = this;\r\n if (!Mousewheel.event) {\r\n return false;\r\n }\r\n if (!swiper.mousewheel.enabled) {\r\n return false;\r\n }\r\n var target = swiper.$el;\r\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\r\n target = $(swiper.params.mousewheel.eventsTarged);\r\n }\r\n target.off(Mousewheel.event, swiper.mousewheel.handle);\r\n swiper.mousewheel.enabled = false;\r\n return true;\r\n },\r\n };\r\n\r\n var Mousewheel$1 = {\r\n name: 'mousewheel',\r\n params: {\r\n mousewheel: {\r\n enabled: false,\r\n releaseOnEdges: false,\r\n invert: false,\r\n forceToAxis: false,\r\n sensitivity: 1,\r\n eventsTarged: 'container',\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n mousewheel: {\r\n enabled: false,\r\n enable: Mousewheel.enable.bind(swiper),\r\n disable: Mousewheel.disable.bind(swiper),\r\n handle: Mousewheel.handle.bind(swiper),\r\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\r\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\r\n lastScrollTime: Utils.now(),\r\n },\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n if (swiper.params.mousewheel.enabled) {\r\n swiper.mousewheel.enable();\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n if (swiper.mousewheel.enabled) {\r\n swiper.mousewheel.disable();\r\n }\r\n },\r\n },\r\n };\r\n\r\n var Navigation = {\r\n update: function update() {\r\n // Update Navigation Buttons\r\n var swiper = this;\r\n var params = swiper.params.navigation;\r\n\r\n if (swiper.params.loop) {\r\n return;\r\n }\r\n var ref = swiper.navigation;\r\n var $nextEl = ref.$nextEl;\r\n var $prevEl = ref.$prevEl;\r\n\r\n if ($prevEl && $prevEl.length > 0) {\r\n if (swiper.isBeginning) {\r\n $prevEl.addClass(params.disabledClass);\r\n } else {\r\n $prevEl.removeClass(params.disabledClass);\r\n }\r\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n }\r\n if ($nextEl && $nextEl.length > 0) {\r\n if (swiper.isEnd) {\r\n $nextEl.addClass(params.disabledClass);\r\n } else {\r\n $nextEl.removeClass(params.disabledClass);\r\n }\r\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n }\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n var params = swiper.params.navigation;\r\n if (!(params.nextEl || params.prevEl)) {\r\n return;\r\n }\r\n\r\n var $nextEl;\r\n var $prevEl;\r\n if (params.nextEl) {\r\n $nextEl = $(params.nextEl);\r\n if (\r\n swiper.params.uniqueNavElements\r\n && typeof params.nextEl === 'string'\r\n && $nextEl.length > 1\r\n && swiper.$el.find(params.nextEl).length === 1\r\n ) {\r\n $nextEl = swiper.$el.find(params.nextEl);\r\n }\r\n }\r\n if (params.prevEl) {\r\n $prevEl = $(params.prevEl);\r\n if (\r\n swiper.params.uniqueNavElements\r\n && typeof params.prevEl === 'string'\r\n && $prevEl.length > 1\r\n && swiper.$el.find(params.prevEl).length === 1\r\n ) {\r\n $prevEl = swiper.$el.find(params.prevEl);\r\n }\r\n }\r\n\r\n if ($nextEl && $nextEl.length > 0) {\r\n $nextEl.on('click', function (e) {\r\n e.preventDefault();\r\n if (swiper.isEnd && !swiper.params.loop) {\r\n return;\r\n }\r\n swiper.slideNext();\r\n });\r\n }\r\n if ($prevEl && $prevEl.length > 0) {\r\n $prevEl.on('click', function (e) {\r\n e.preventDefault();\r\n if (swiper.isBeginning && !swiper.params.loop) {\r\n return;\r\n }\r\n swiper.slidePrev();\r\n });\r\n }\r\n\r\n Utils.extend(swiper.navigation, {\r\n $nextEl: $nextEl,\r\n nextEl: $nextEl && $nextEl[0],\r\n $prevEl: $prevEl,\r\n prevEl: $prevEl && $prevEl[0],\r\n });\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n var ref = swiper.navigation;\r\n var $nextEl = ref.$nextEl;\r\n var $prevEl = ref.$prevEl;\r\n if ($nextEl && $nextEl.length) {\r\n $nextEl.off('click');\r\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\r\n }\r\n if ($prevEl && $prevEl.length) {\r\n $prevEl.off('click');\r\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\r\n }\r\n },\r\n };\r\n\r\n var Navigation$1 = {\r\n name: 'navigation',\r\n params: {\r\n navigation: {\r\n nextEl: null,\r\n prevEl: null,\r\n\r\n hideOnClick: false,\r\n disabledClass: 'swiper-button-disabled',\r\n hiddenClass: 'swiper-button-hidden',\r\n lockClass: 'swiper-button-lock',\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n navigation: {\r\n init: Navigation.init.bind(swiper),\r\n update: Navigation.update.bind(swiper),\r\n destroy: Navigation.destroy.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n swiper.navigation.init();\r\n swiper.navigation.update();\r\n },\r\n toEdge: function toEdge() {\r\n var swiper = this;\r\n swiper.navigation.update();\r\n },\r\n fromEdge: function fromEdge() {\r\n var swiper = this;\r\n swiper.navigation.update();\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n swiper.navigation.destroy();\r\n },\r\n click: function click(e) {\r\n var swiper = this;\r\n var ref = swiper.navigation;\r\n var $nextEl = ref.$nextEl;\r\n var $prevEl = ref.$prevEl;\r\n if (\r\n swiper.params.navigation.hideOnClick\r\n && !$(e.target).is($prevEl)\r\n && !$(e.target).is($nextEl)\r\n ) {\r\n if ($nextEl) {\r\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\r\n }\r\n if ($prevEl) {\r\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\r\n }\r\n }\r\n },\r\n },\r\n };\r\n\r\n var Pagination = {\r\n update: function update() {\r\n // Render || Update Pagination bullets/items\r\n var swiper = this;\r\n var rtl = swiper.rtl;\r\n var params = swiper.params.pagination;\r\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) {\r\n return;\r\n }\r\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\r\n var $el = swiper.pagination.$el;\r\n // Current/Total\r\n var current;\r\n var total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\r\n if (swiper.params.loop) {\r\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\r\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\r\n current -= (slidesLength - (swiper.loopedSlides * 2));\r\n }\r\n if (current > total - 1) {\r\n current -= total;\r\n }\r\n if (current < 0 && swiper.params.paginationType !== 'bullets') {\r\n current = total + current;\r\n }\r\n } else if (typeof swiper.snapIndex !== 'undefined') {\r\n current = swiper.snapIndex;\r\n } else {\r\n current = swiper.activeIndex || 0;\r\n }\r\n // Types\r\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\r\n var bullets = swiper.pagination.bullets;\r\n var firstIndex;\r\n var lastIndex;\r\n var midIndex;\r\n if (params.dynamicBullets) {\r\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\r\n $el.css(swiper.isHorizontal() ? 'width' : 'height', ((swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)) + \"px\"));\r\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\r\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\r\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\r\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\r\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\r\n swiper.pagination.dynamicBulletIndex = 0;\r\n }\r\n }\r\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\r\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\r\n midIndex = (lastIndex + firstIndex) / 2;\r\n }\r\n bullets.removeClass(((params.bulletActiveClass) + \" \" + (params.bulletActiveClass) + \"-next \" + (params.bulletActiveClass) + \"-next-next \" + (params.bulletActiveClass) + \"-prev \" + (params.bulletActiveClass) + \"-prev-prev \" + (params.bulletActiveClass) + \"-main\"));\r\n if ($el.length > 1) {\r\n bullets.each(function (index, bullet) {\r\n var $bullet = $(bullet);\r\n var bulletIndex = $bullet.index();\r\n if (bulletIndex === current) {\r\n $bullet.addClass(params.bulletActiveClass);\r\n }\r\n if (params.dynamicBullets) {\r\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\r\n $bullet.addClass(((params.bulletActiveClass) + \"-main\"));\r\n }\r\n if (bulletIndex === firstIndex) {\r\n $bullet\r\n .prev()\r\n .addClass(((params.bulletActiveClass) + \"-prev\"))\r\n .prev()\r\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\r\n }\r\n if (bulletIndex === lastIndex) {\r\n $bullet\r\n .next()\r\n .addClass(((params.bulletActiveClass) + \"-next\"))\r\n .next()\r\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\r\n }\r\n }\r\n });\r\n } else {\r\n var $bullet = bullets.eq(current);\r\n $bullet.addClass(params.bulletActiveClass);\r\n if (params.dynamicBullets) {\r\n var $firstDisplayedBullet = bullets.eq(firstIndex);\r\n var $lastDisplayedBullet = bullets.eq(lastIndex);\r\n for (var i = firstIndex; i <= lastIndex; i += 1) {\r\n bullets.eq(i).addClass(((params.bulletActiveClass) + \"-main\"));\r\n }\r\n $firstDisplayedBullet\r\n .prev()\r\n .addClass(((params.bulletActiveClass) + \"-prev\"))\r\n .prev()\r\n .addClass(((params.bulletActiveClass) + \"-prev-prev\"));\r\n $lastDisplayedBullet\r\n .next()\r\n .addClass(((params.bulletActiveClass) + \"-next\"))\r\n .next()\r\n .addClass(((params.bulletActiveClass) + \"-next-next\"));\r\n }\r\n }\r\n if (params.dynamicBullets) {\r\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\r\n var bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\r\n var offsetProp = rtl ? 'right' : 'left';\r\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', (bulletsOffset + \"px\"));\r\n }\r\n }\r\n if (params.type === 'fraction') {\r\n $el.find((\".\" + (params.currentClass))).text(params.formatFractionCurrent(current + 1));\r\n $el.find((\".\" + (params.totalClass))).text(params.formatFractionTotal(total));\r\n }\r\n if (params.type === 'progressbar') {\r\n var progressbarDirection;\r\n if (params.progressbarOpposite) {\r\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\r\n } else {\r\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\r\n }\r\n var scale = (current + 1) / total;\r\n var scaleX = 1;\r\n var scaleY = 1;\r\n if (progressbarDirection === 'horizontal') {\r\n scaleX = scale;\r\n } else {\r\n scaleY = scale;\r\n }\r\n $el.find((\".\" + (params.progressbarFillClass))).transform((\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\")).transition(swiper.params.speed);\r\n }\r\n if (params.type === 'custom' && params.renderCustom) {\r\n $el.html(params.renderCustom(swiper, current + 1, total));\r\n swiper.emit('paginationRender', swiper, $el[0]);\r\n } else {\r\n swiper.emit('paginationUpdate', swiper, $el[0]);\r\n }\r\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n },\r\n render: function render() {\r\n // Render Container\r\n var swiper = this;\r\n var params = swiper.params.pagination;\r\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) {\r\n return;\r\n }\r\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\r\n\r\n var $el = swiper.pagination.$el;\r\n var paginationHTML = '';\r\n if (params.type === 'bullets') {\r\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\r\n for (var i = 0; i < numberOfBullets; i += 1) {\r\n if (params.renderBullet) {\r\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\r\n } else {\r\n paginationHTML += \"<\" + (params.bulletElement) + \" class=\\\"\" + (params.bulletClass) + \"\\\">\";\r\n }\r\n }\r\n $el.html(paginationHTML);\r\n swiper.pagination.bullets = $el.find((\".\" + (params.bulletClass)));\r\n }\r\n if (params.type === 'fraction') {\r\n if (params.renderFraction) {\r\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\r\n } else {\r\n paginationHTML = \"\"\r\n + ' / '\r\n + \"\";\r\n }\r\n $el.html(paginationHTML);\r\n }\r\n if (params.type === 'progressbar') {\r\n if (params.renderProgressbar) {\r\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\r\n } else {\r\n paginationHTML = \"\";\r\n }\r\n $el.html(paginationHTML);\r\n }\r\n if (params.type !== 'custom') {\r\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\r\n }\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n var params = swiper.params.pagination;\r\n if (!params.el) {\r\n return;\r\n }\r\n\r\n var $el = $(params.el);\r\n if ($el.length === 0) {\r\n return;\r\n }\r\n\r\n if (\r\n swiper.params.uniqueNavElements\r\n && typeof params.el === 'string'\r\n && $el.length > 1\r\n && swiper.$el.find(params.el).length === 1\r\n ) {\r\n $el = swiper.$el.find(params.el);\r\n }\r\n\r\n if (params.type === 'bullets' && params.clickable) {\r\n $el.addClass(params.clickableClass);\r\n }\r\n\r\n $el.addClass(params.modifierClass + params.type);\r\n\r\n if (params.type === 'bullets' && params.dynamicBullets) {\r\n $el.addClass((\"\" + (params.modifierClass) + (params.type) + \"-dynamic\"));\r\n swiper.pagination.dynamicBulletIndex = 0;\r\n if (params.dynamicMainBullets < 1) {\r\n params.dynamicMainBullets = 1;\r\n }\r\n }\r\n if (params.type === 'progressbar' && params.progressbarOpposite) {\r\n $el.addClass(params.progressbarOppositeClass);\r\n }\r\n\r\n if (params.clickable) {\r\n $el.on('click', (\".\" + (params.bulletClass)), function onClick(e) {\r\n e.preventDefault();\r\n var index = $(this).index() * swiper.params.slidesPerGroup;\r\n if (swiper.params.loop) {\r\n index += swiper.loopedSlides;\r\n }\r\n swiper.slideTo(index);\r\n });\r\n }\r\n\r\n Utils.extend(swiper.pagination, {\r\n $el: $el,\r\n el: $el[0],\r\n });\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n var params = swiper.params.pagination;\r\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) {\r\n return;\r\n }\r\n var $el = swiper.pagination.$el;\r\n\r\n $el.removeClass(params.hiddenClass);\r\n $el.removeClass(params.modifierClass + params.type);\r\n if (swiper.pagination.bullets) {\r\n swiper.pagination.bullets.removeClass(params.bulletActiveClass);\r\n }\r\n if (params.clickable) {\r\n $el.off('click', (\".\" + (params.bulletClass)));\r\n }\r\n },\r\n };\r\n\r\n var Pagination$1 = {\r\n name: 'pagination',\r\n params: {\r\n pagination: {\r\n el: null,\r\n bulletElement: 'span',\r\n clickable: false,\r\n hideOnClick: false,\r\n renderBullet: null,\r\n renderProgressbar: null,\r\n renderFraction: null,\r\n renderCustom: null,\r\n progressbarOpposite: false,\r\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\r\n dynamicBullets: false,\r\n dynamicMainBullets: 1,\r\n formatFractionCurrent: function (number) {\r\n return number;\r\n },\r\n formatFractionTotal: function (number) {\r\n return number;\r\n },\r\n bulletClass: 'swiper-pagination-bullet',\r\n bulletActiveClass: 'swiper-pagination-bullet-active',\r\n modifierClass: 'swiper-pagination-', // NEW\r\n currentClass: 'swiper-pagination-current',\r\n totalClass: 'swiper-pagination-total',\r\n hiddenClass: 'swiper-pagination-hidden',\r\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\r\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\r\n clickableClass: 'swiper-pagination-clickable', // NEW\r\n lockClass: 'swiper-pagination-lock',\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n pagination: {\r\n init: Pagination.init.bind(swiper),\r\n render: Pagination.render.bind(swiper),\r\n update: Pagination.update.bind(swiper),\r\n destroy: Pagination.destroy.bind(swiper),\r\n dynamicBulletIndex: 0,\r\n },\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n swiper.pagination.init();\r\n swiper.pagination.render();\r\n swiper.pagination.update();\r\n },\r\n activeIndexChange: function activeIndexChange() {\r\n var swiper = this;\r\n if (swiper.params.loop) {\r\n swiper.pagination.update();\r\n } else if (typeof swiper.snapIndex === 'undefined') {\r\n swiper.pagination.update();\r\n }\r\n },\r\n snapIndexChange: function snapIndexChange() {\r\n var swiper = this;\r\n if (!swiper.params.loop) {\r\n swiper.pagination.update();\r\n }\r\n },\r\n slidesLengthChange: function slidesLengthChange() {\r\n var swiper = this;\r\n if (swiper.params.loop) {\r\n swiper.pagination.render();\r\n swiper.pagination.update();\r\n }\r\n },\r\n snapGridLengthChange: function snapGridLengthChange() {\r\n var swiper = this;\r\n if (!swiper.params.loop) {\r\n swiper.pagination.render();\r\n swiper.pagination.update();\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n swiper.pagination.destroy();\r\n },\r\n click: function click(e) {\r\n var swiper = this;\r\n if (\r\n swiper.params.pagination.el\r\n && swiper.params.pagination.hideOnClick\r\n && swiper.pagination.$el.length > 0\r\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\r\n ) {\r\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\r\n }\r\n },\r\n },\r\n };\r\n\r\n var Scrollbar = {\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) {\r\n return;\r\n }\r\n var scrollbar = swiper.scrollbar;\r\n var rtl = swiper.rtlTranslate;\r\n var progress = swiper.progress;\r\n var dragSize = scrollbar.dragSize;\r\n var trackSize = scrollbar.trackSize;\r\n var $dragEl = scrollbar.$dragEl;\r\n var $el = scrollbar.$el;\r\n var params = swiper.params.scrollbar;\r\n\r\n var newSize = dragSize;\r\n var newPos = (trackSize - dragSize) * progress;\r\n if (rtl) {\r\n newPos = -newPos;\r\n if (newPos > 0) {\r\n newSize = dragSize - newPos;\r\n newPos = 0;\r\n } else if (-newPos + dragSize > trackSize) {\r\n newSize = trackSize + newPos;\r\n }\r\n } else if (newPos < 0) {\r\n newSize = dragSize + newPos;\r\n newPos = 0;\r\n } else if (newPos + dragSize > trackSize) {\r\n newSize = trackSize - newPos;\r\n }\r\n if (swiper.isHorizontal()) {\r\n if (Support.transforms3d) {\r\n $dragEl.transform((\"translate3d(\" + newPos + \"px, 0, 0)\"));\r\n } else {\r\n $dragEl.transform((\"translateX(\" + newPos + \"px)\"));\r\n }\r\n $dragEl[0].style.width = newSize + \"px\";\r\n } else {\r\n if (Support.transforms3d) {\r\n $dragEl.transform((\"translate3d(0px, \" + newPos + \"px, 0)\"));\r\n } else {\r\n $dragEl.transform((\"translateY(\" + newPos + \"px)\"));\r\n }\r\n $dragEl[0].style.height = newSize + \"px\";\r\n }\r\n if (params.hide) {\r\n clearTimeout(swiper.scrollbar.timeout);\r\n $el[0].style.opacity = 1;\r\n swiper.scrollbar.timeout = setTimeout(function () {\r\n $el[0].style.opacity = 0;\r\n $el.transition(400);\r\n }, 1000);\r\n }\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) {\r\n return;\r\n }\r\n swiper.scrollbar.$dragEl.transition(duration);\r\n },\r\n updateSize: function updateSize() {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) {\r\n return;\r\n }\r\n\r\n var scrollbar = swiper.scrollbar;\r\n var $dragEl = scrollbar.$dragEl;\r\n var $el = scrollbar.$el;\r\n\r\n $dragEl[0].style.width = '';\r\n $dragEl[0].style.height = '';\r\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\r\n\r\n var divider = swiper.size / swiper.virtualSize;\r\n var moveDivider = divider * (trackSize / swiper.size);\r\n var dragSize;\r\n if (swiper.params.scrollbar.dragSize === 'auto') {\r\n dragSize = trackSize * divider;\r\n } else {\r\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\r\n }\r\n\r\n if (swiper.isHorizontal()) {\r\n $dragEl[0].style.width = dragSize + \"px\";\r\n } else {\r\n $dragEl[0].style.height = dragSize + \"px\";\r\n }\r\n\r\n if (divider >= 1) {\r\n $el[0].style.display = 'none';\r\n } else {\r\n $el[0].style.display = '';\r\n }\r\n if (swiper.params.scrollbarHide) {\r\n $el[0].style.opacity = 0;\r\n }\r\n Utils.extend(scrollbar, {\r\n trackSize: trackSize,\r\n divider: divider,\r\n moveDivider: moveDivider,\r\n dragSize: dragSize,\r\n });\r\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\r\n },\r\n setDragPosition: function setDragPosition(e) {\r\n var swiper = this;\r\n var scrollbar = swiper.scrollbar;\r\n var rtl = swiper.rtlTranslate;\r\n var $el = scrollbar.$el;\r\n var dragSize = scrollbar.dragSize;\r\n var trackSize = scrollbar.trackSize;\r\n\r\n var pointerPosition;\r\n if (swiper.isHorizontal()) {\r\n pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX);\r\n } else {\r\n pointerPosition = ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY);\r\n }\r\n var positionRatio;\r\n positionRatio = ((pointerPosition) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragSize / 2)) / (trackSize - dragSize);\r\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\r\n if (rtl) {\r\n positionRatio = 1 - positionRatio;\r\n }\r\n\r\n var position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\r\n\r\n swiper.updateProgress(position);\r\n swiper.setTranslate(position);\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n },\r\n onDragStart: function onDragStart(e) {\r\n var swiper = this;\r\n var params = swiper.params.scrollbar;\r\n var scrollbar = swiper.scrollbar;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var $el = scrollbar.$el;\r\n var $dragEl = scrollbar.$dragEl;\r\n swiper.scrollbar.isTouched = true;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n $wrapperEl.transition(100);\r\n $dragEl.transition(100);\r\n scrollbar.setDragPosition(e);\r\n\r\n clearTimeout(swiper.scrollbar.dragTimeout);\r\n\r\n $el.transition(0);\r\n if (params.hide) {\r\n $el.css('opacity', 1);\r\n }\r\n swiper.emit('scrollbarDragStart', e);\r\n },\r\n onDragMove: function onDragMove(e) {\r\n var swiper = this;\r\n var scrollbar = swiper.scrollbar;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var $el = scrollbar.$el;\r\n var $dragEl = scrollbar.$dragEl;\r\n\r\n if (!swiper.scrollbar.isTouched) {\r\n return;\r\n }\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n }\r\n else {\r\n e.returnValue = false;\r\n }\r\n scrollbar.setDragPosition(e);\r\n $wrapperEl.transition(0);\r\n $el.transition(0);\r\n $dragEl.transition(0);\r\n swiper.emit('scrollbarDragMove', e);\r\n },\r\n onDragEnd: function onDragEnd(e) {\r\n var swiper = this;\r\n\r\n var params = swiper.params.scrollbar;\r\n var scrollbar = swiper.scrollbar;\r\n var $el = scrollbar.$el;\r\n\r\n if (!swiper.scrollbar.isTouched) {\r\n return;\r\n }\r\n swiper.scrollbar.isTouched = false;\r\n if (params.hide) {\r\n clearTimeout(swiper.scrollbar.dragTimeout);\r\n swiper.scrollbar.dragTimeout = Utils.nextTick(function () {\r\n $el.css('opacity', 0);\r\n $el.transition(400);\r\n }, 1000);\r\n }\r\n swiper.emit('scrollbarDragEnd', e);\r\n if (params.snapOnRelease) {\r\n swiper.slideToClosest();\r\n }\r\n },\r\n enableDraggable: function enableDraggable() {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el) {\r\n return;\r\n }\r\n var scrollbar = swiper.scrollbar;\r\n var touchEvents = swiper.touchEvents;\r\n var touchEventsDesktop = swiper.touchEventsDesktop;\r\n var params = swiper.params;\r\n var $el = scrollbar.$el;\r\n var target = $el[0];\r\n var activeListener = Support.passiveListener && params.passiveListeners ? {\r\n passive: false,\r\n capture: false\r\n } : false;\r\n var passiveListener = Support.passiveListener && params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\r\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\r\n doc.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\r\n doc.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n } else {\r\n if (Support.touch) {\r\n target.addEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener);\r\n target.addEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener);\r\n target.addEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n }\r\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\r\n target.addEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener);\r\n doc.addEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener);\r\n doc.addEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener);\r\n }\r\n }\r\n },\r\n disableDraggable: function disableDraggable() {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el) {\r\n return;\r\n }\r\n var scrollbar = swiper.scrollbar;\r\n var touchEvents = swiper.touchEvents;\r\n var touchEventsDesktop = swiper.touchEventsDesktop;\r\n var params = swiper.params;\r\n var $el = scrollbar.$el;\r\n var target = $el[0];\r\n var activeListener = Support.passiveListener && params.passiveListeners ? {\r\n passive: false,\r\n capture: false\r\n } : false;\r\n var passiveListener = Support.passiveListener && params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) {\r\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\r\n doc.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\r\n doc.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n } else {\r\n if (Support.touch) {\r\n target.removeEventListener(touchEvents.start, swiper.scrollbar.onDragStart, activeListener);\r\n target.removeEventListener(touchEvents.move, swiper.scrollbar.onDragMove, activeListener);\r\n target.removeEventListener(touchEvents.end, swiper.scrollbar.onDragEnd, passiveListener);\r\n }\r\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\r\n target.removeEventListener('mousedown', swiper.scrollbar.onDragStart, activeListener);\r\n doc.removeEventListener('mousemove', swiper.scrollbar.onDragMove, activeListener);\r\n doc.removeEventListener('mouseup', swiper.scrollbar.onDragEnd, passiveListener);\r\n }\r\n }\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n if (!swiper.params.scrollbar.el) {\r\n return;\r\n }\r\n var scrollbar = swiper.scrollbar;\r\n var $swiperEl = swiper.$el;\r\n var params = swiper.params.scrollbar;\r\n\r\n var $el = $(params.el);\r\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\r\n $el = $swiperEl.find(params.el);\r\n }\r\n\r\n var $dragEl = $el.find((\".\" + (swiper.params.scrollbar.dragClass)));\r\n if ($dragEl.length === 0) {\r\n $dragEl = $((\"
\"));\r\n $el.append($dragEl);\r\n }\r\n\r\n Utils.extend(scrollbar, {\r\n $el: $el,\r\n el: $el[0],\r\n $dragEl: $dragEl,\r\n dragEl: $dragEl[0],\r\n });\r\n\r\n if (params.draggable) {\r\n scrollbar.enableDraggable();\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n swiper.scrollbar.disableDraggable();\r\n },\r\n };\r\n\r\n var Scrollbar$1 = {\r\n name: 'scrollbar',\r\n params: {\r\n scrollbar: {\r\n el: null,\r\n dragSize: 'auto',\r\n hide: false,\r\n draggable: false,\r\n snapOnRelease: true,\r\n lockClass: 'swiper-scrollbar-lock',\r\n dragClass: 'swiper-scrollbar-drag',\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n scrollbar: {\r\n init: Scrollbar.init.bind(swiper),\r\n destroy: Scrollbar.destroy.bind(swiper),\r\n updateSize: Scrollbar.updateSize.bind(swiper),\r\n setTranslate: Scrollbar.setTranslate.bind(swiper),\r\n setTransition: Scrollbar.setTransition.bind(swiper),\r\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\r\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\r\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\r\n onDragStart: Scrollbar.onDragStart.bind(swiper),\r\n onDragMove: Scrollbar.onDragMove.bind(swiper),\r\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\r\n isTouched: false,\r\n timeout: null,\r\n dragTimeout: null,\r\n },\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n swiper.scrollbar.init();\r\n swiper.scrollbar.updateSize();\r\n swiper.scrollbar.setTranslate();\r\n },\r\n update: function update() {\r\n var swiper = this;\r\n swiper.scrollbar.updateSize();\r\n },\r\n resize: function resize() {\r\n var swiper = this;\r\n swiper.scrollbar.updateSize();\r\n },\r\n observerUpdate: function observerUpdate() {\r\n var swiper = this;\r\n swiper.scrollbar.updateSize();\r\n },\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n swiper.scrollbar.setTranslate();\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n swiper.scrollbar.setTransition(duration);\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n swiper.scrollbar.destroy();\r\n },\r\n },\r\n };\r\n\r\n var Parallax = {\r\n setTransform: function setTransform(el, progress) {\r\n var swiper = this;\r\n var rtl = swiper.rtl;\r\n\r\n var $el = $(el);\r\n var rtlFactor = rtl ? -1 : 1;\r\n\r\n var p = $el.attr('data-swiper-parallax') || '0';\r\n var x = $el.attr('data-swiper-parallax-x');\r\n var y = $el.attr('data-swiper-parallax-y');\r\n var scale = $el.attr('data-swiper-parallax-scale');\r\n var opacity = $el.attr('data-swiper-parallax-opacity');\r\n\r\n if (x || y) {\r\n x = x || '0';\r\n y = y || '0';\r\n } else if (swiper.isHorizontal()) {\r\n x = p;\r\n y = '0';\r\n } else {\r\n y = p;\r\n x = '0';\r\n }\r\n\r\n if ((x).indexOf('%') >= 0) {\r\n x = (parseInt(x, 10) * progress * rtlFactor) + \"%\";\r\n } else {\r\n x = (x * progress * rtlFactor) + \"px\";\r\n }\r\n if ((y).indexOf('%') >= 0) {\r\n y = (parseInt(y, 10) * progress) + \"%\";\r\n } else {\r\n y = (y * progress) + \"px\";\r\n }\r\n\r\n if (typeof opacity !== 'undefined' && opacity !== null) {\r\n var currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress)));\r\n $el[0].style.opacity = currentOpacity;\r\n }\r\n if (typeof scale === 'undefined' || scale === null) {\r\n $el.transform((\"translate3d(\" + x + \", \" + y + \", 0px)\"));\r\n } else {\r\n var currentScale = scale - ((scale - 1) * (1 - Math.abs(progress)));\r\n $el.transform((\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\"));\r\n }\r\n },\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n var $el = swiper.$el;\r\n var slides = swiper.slides;\r\n var progress = swiper.progress;\r\n var snapGrid = swiper.snapGrid;\r\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\r\n .each(function (index, el) {\r\n swiper.parallax.setTransform(el, progress);\r\n });\r\n slides.each(function (slideIndex, slideEl) {\r\n var slideProgress = slideEl.progress;\r\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\r\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\r\n }\r\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\r\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\r\n .each(function (index, el) {\r\n swiper.parallax.setTransform(el, slideProgress);\r\n });\r\n });\r\n },\r\n setTransition: function setTransition(duration) {\r\n if (duration === void 0) duration = this.params.speed;\r\n\r\n var swiper = this;\r\n var $el = swiper.$el;\r\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]')\r\n .each(function (index, parallaxEl) {\r\n var $parallaxEl = $(parallaxEl);\r\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\r\n if (duration === 0) {\r\n parallaxDuration = 0;\r\n }\r\n $parallaxEl.transition(parallaxDuration);\r\n });\r\n },\r\n };\r\n\r\n var Parallax$1 = {\r\n name: 'parallax',\r\n params: {\r\n parallax: {\r\n enabled: false,\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n parallax: {\r\n setTransform: Parallax.setTransform.bind(swiper),\r\n setTranslate: Parallax.setTranslate.bind(swiper),\r\n setTransition: Parallax.setTransition.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit() {\r\n var swiper = this;\r\n if (!swiper.params.parallax.enabled) {\r\n return;\r\n }\r\n swiper.params.watchSlidesProgress = true;\r\n swiper.originalParams.watchSlidesProgress = true;\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n if (!swiper.params.parallax) {\r\n return;\r\n }\r\n swiper.parallax.setTranslate();\r\n },\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n if (!swiper.params.parallax) {\r\n return;\r\n }\r\n swiper.parallax.setTranslate();\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n if (!swiper.params.parallax) {\r\n return;\r\n }\r\n swiper.parallax.setTransition(duration);\r\n },\r\n },\r\n };\r\n\r\n var Zoom = {\r\n // Calc Scale From Multi-touches\r\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\r\n if (e.targetTouches.length < 2) {\r\n return 1;\r\n }\r\n var x1 = e.targetTouches[0].pageX;\r\n var y1 = e.targetTouches[0].pageY;\r\n var x2 = e.targetTouches[1].pageX;\r\n var y2 = e.targetTouches[1].pageY;\r\n var distance = Math.sqrt((Math.pow((x2 - x1), 2)) + (Math.pow((y2 - y1), 2)));\r\n return distance;\r\n },\r\n // Events\r\n onGestureStart: function onGestureStart(e) {\r\n var swiper = this;\r\n var params = swiper.params.zoom;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture;\r\n zoom.fakeGestureTouched = false;\r\n zoom.fakeGestureMoved = false;\r\n if (!Support.gestures) {\r\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\r\n return;\r\n }\r\n zoom.fakeGestureTouched = true;\r\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\r\n }\r\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\r\n gesture.$slideEl = $(e.target).closest('.swiper-slide');\r\n if (gesture.$slideEl.length === 0) {\r\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n }\r\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\r\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\r\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n if (gesture.$imageWrapEl.length === 0) {\r\n gesture.$imageEl = undefined;\r\n return;\r\n }\r\n }\r\n gesture.$imageEl.transition(0);\r\n swiper.zoom.isScaling = true;\r\n },\r\n onGestureChange: function onGestureChange(e) {\r\n var swiper = this;\r\n var params = swiper.params.zoom;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture;\r\n if (!Support.gestures) {\r\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\r\n return;\r\n }\r\n zoom.fakeGestureMoved = true;\r\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\r\n }\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\r\n return;\r\n }\r\n if (Support.gestures) {\r\n swiper.zoom.scale = e.scale * zoom.currentScale;\r\n } else {\r\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\r\n }\r\n if (zoom.scale > gesture.maxRatio) {\r\n zoom.scale = (gesture.maxRatio - 1) + (Math.pow(((zoom.scale - gesture.maxRatio) + 1), 0.5));\r\n }\r\n if (zoom.scale < params.minRatio) {\r\n zoom.scale = (params.minRatio + 1) - (Math.pow(((params.minRatio - zoom.scale) + 1), 0.5));\r\n }\r\n gesture.$imageEl.transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\r\n },\r\n onGestureEnd: function onGestureEnd(e) {\r\n var swiper = this;\r\n var params = swiper.params.zoom;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture;\r\n if (!Support.gestures) {\r\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\r\n return;\r\n }\r\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\r\n return;\r\n }\r\n zoom.fakeGestureTouched = false;\r\n zoom.fakeGestureMoved = false;\r\n }\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\r\n return;\r\n }\r\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\r\n gesture.$imageEl.transition(swiper.params.speed).transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\r\n zoom.currentScale = zoom.scale;\r\n zoom.isScaling = false;\r\n if (zoom.scale === 1) {\r\n gesture.$slideEl = undefined;\r\n }\r\n },\r\n onTouchStart: function onTouchStart(e) {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture;\r\n var image = zoom.image;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\r\n return;\r\n }\r\n if (image.isTouched) {\r\n return;\r\n }\r\n if (Device.android) {\r\n e.preventDefault();\r\n }\r\n image.isTouched = true;\r\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\r\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\r\n },\r\n onTouchMove: function onTouchMove(e) {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture;\r\n var image = zoom.image;\r\n var velocity = zoom.velocity;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\r\n return;\r\n }\r\n swiper.allowClick = false;\r\n if (!image.isTouched || !gesture.$slideEl) {\r\n return;\r\n }\r\n\r\n if (!image.isMoved) {\r\n image.width = gesture.$imageEl[0].offsetWidth;\r\n image.height = gesture.$imageEl[0].offsetHeight;\r\n image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\r\n image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\r\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\r\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\r\n gesture.$imageWrapEl.transition(0);\r\n if (swiper.rtl) {\r\n image.startX = -image.startX;\r\n image.startY = -image.startY;\r\n }\r\n }\r\n // Define if we need image drag\r\n var scaledWidth = image.width * zoom.scale;\r\n var scaledHeight = image.height * zoom.scale;\r\n\r\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) {\r\n return;\r\n }\r\n\r\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\r\n image.maxX = -image.minX;\r\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\r\n image.maxY = -image.minY;\r\n\r\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\r\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\r\n\r\n if (!image.isMoved && !zoom.isScaling) {\r\n if (\r\n swiper.isHorizontal()\r\n && (\r\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\r\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\r\n )\r\n ) {\r\n image.isTouched = false;\r\n return;\r\n }\r\n if (\r\n !swiper.isHorizontal()\r\n && (\r\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\r\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\r\n )\r\n ) {\r\n image.isTouched = false;\r\n return;\r\n }\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n image.isMoved = true;\r\n image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX;\r\n image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY;\r\n\r\n if (image.currentX < image.minX) {\r\n image.currentX = (image.minX + 1) - (Math.pow(((image.minX - image.currentX) + 1), 0.8));\r\n }\r\n if (image.currentX > image.maxX) {\r\n image.currentX = (image.maxX - 1) + (Math.pow(((image.currentX - image.maxX) + 1), 0.8));\r\n }\r\n\r\n if (image.currentY < image.minY) {\r\n image.currentY = (image.minY + 1) - (Math.pow(((image.minY - image.currentY) + 1), 0.8));\r\n }\r\n if (image.currentY > image.maxY) {\r\n image.currentY = (image.maxY - 1) + (Math.pow(((image.currentY - image.maxY) + 1), 0.8));\r\n }\r\n\r\n // Velocity\r\n if (!velocity.prevPositionX) {\r\n velocity.prevPositionX = image.touchesCurrent.x;\r\n }\r\n if (!velocity.prevPositionY) {\r\n velocity.prevPositionY = image.touchesCurrent.y;\r\n }\r\n if (!velocity.prevTime) {\r\n velocity.prevTime = Date.now();\r\n }\r\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\r\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\r\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) {\r\n velocity.x = 0;\r\n }\r\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) {\r\n velocity.y = 0;\r\n }\r\n velocity.prevPositionX = image.touchesCurrent.x;\r\n velocity.prevPositionY = image.touchesCurrent.y;\r\n velocity.prevTime = Date.now();\r\n\r\n gesture.$imageWrapEl.transform((\"translate3d(\" + (image.currentX) + \"px, \" + (image.currentY) + \"px,0)\"));\r\n },\r\n onTouchEnd: function onTouchEnd() {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture;\r\n var image = zoom.image;\r\n var velocity = zoom.velocity;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\r\n return;\r\n }\r\n if (!image.isTouched || !image.isMoved) {\r\n image.isTouched = false;\r\n image.isMoved = false;\r\n return;\r\n }\r\n image.isTouched = false;\r\n image.isMoved = false;\r\n var momentumDurationX = 300;\r\n var momentumDurationY = 300;\r\n var momentumDistanceX = velocity.x * momentumDurationX;\r\n var newPositionX = image.currentX + momentumDistanceX;\r\n var momentumDistanceY = velocity.y * momentumDurationY;\r\n var newPositionY = image.currentY + momentumDistanceY;\r\n\r\n // Fix duration\r\n if (velocity.x !== 0) {\r\n momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\r\n }\r\n if (velocity.y !== 0) {\r\n momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\r\n }\r\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\r\n\r\n image.currentX = newPositionX;\r\n image.currentY = newPositionY;\r\n\r\n // Define if we need image drag\r\n var scaledWidth = image.width * zoom.scale;\r\n var scaledHeight = image.height * zoom.scale;\r\n image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0);\r\n image.maxX = -image.minX;\r\n image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0);\r\n image.maxY = -image.minY;\r\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\r\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\r\n\r\n gesture.$imageWrapEl.transition(momentumDuration).transform((\"translate3d(\" + (image.currentX) + \"px, \" + (image.currentY) + \"px,0)\"));\r\n },\r\n onTransitionEnd: function onTransitionEnd() {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n var gesture = zoom.gesture;\r\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\r\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\r\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\r\n gesture.$slideEl = undefined;\r\n gesture.$imageEl = undefined;\r\n gesture.$imageWrapEl = undefined;\r\n\r\n zoom.scale = 1;\r\n zoom.currentScale = 1;\r\n }\r\n },\r\n // Toggle Zoom\r\n toggle: function toggle(e) {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n\r\n if (zoom.scale && zoom.scale !== 1) {\r\n // Zoom Out\r\n zoom.out();\r\n } else {\r\n // Zoom In\r\n zoom.in(e);\r\n }\r\n },\r\n in: function in$1(e) {\r\n var swiper = this;\r\n\r\n var zoom = swiper.zoom;\r\n var params = swiper.params.zoom;\r\n var gesture = zoom.gesture;\r\n var image = zoom.image;\r\n\r\n if (!gesture.$slideEl) {\r\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\r\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\r\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\r\n }\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\r\n return;\r\n }\r\n\r\n gesture.$slideEl.addClass((\"\" + (params.zoomedSlideClass)));\r\n\r\n var touchX;\r\n var touchY;\r\n var offsetX;\r\n var offsetY;\r\n var diffX;\r\n var diffY;\r\n var translateX;\r\n var translateY;\r\n var imageWidth;\r\n var imageHeight;\r\n var scaledWidth;\r\n var scaledHeight;\r\n var translateMinX;\r\n var translateMinY;\r\n var translateMaxX;\r\n var translateMaxY;\r\n var slideWidth;\r\n var slideHeight;\r\n\r\n if (typeof image.touchesStart.x === 'undefined' && e) {\r\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\r\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\r\n } else {\r\n touchX = image.touchesStart.x;\r\n touchY = image.touchesStart.y;\r\n }\r\n\r\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n if (e) {\r\n slideWidth = gesture.$slideEl[0].offsetWidth;\r\n slideHeight = gesture.$slideEl[0].offsetHeight;\r\n offsetX = gesture.$slideEl.offset().left;\r\n offsetY = gesture.$slideEl.offset().top;\r\n diffX = (offsetX + (slideWidth / 2)) - touchX;\r\n diffY = (offsetY + (slideHeight / 2)) - touchY;\r\n\r\n imageWidth = gesture.$imageEl[0].offsetWidth;\r\n imageHeight = gesture.$imageEl[0].offsetHeight;\r\n scaledWidth = imageWidth * zoom.scale;\r\n scaledHeight = imageHeight * zoom.scale;\r\n\r\n translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0);\r\n translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0);\r\n translateMaxX = -translateMinX;\r\n translateMaxY = -translateMinY;\r\n\r\n translateX = diffX * zoom.scale;\r\n translateY = diffY * zoom.scale;\r\n\r\n if (translateX < translateMinX) {\r\n translateX = translateMinX;\r\n }\r\n if (translateX > translateMaxX) {\r\n translateX = translateMaxX;\r\n }\r\n\r\n if (translateY < translateMinY) {\r\n translateY = translateMinY;\r\n }\r\n if (translateY > translateMaxY) {\r\n translateY = translateMaxY;\r\n }\r\n } else {\r\n translateX = 0;\r\n translateY = 0;\r\n }\r\n gesture.$imageWrapEl.transition(300).transform((\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\"));\r\n gesture.$imageEl.transition(300).transform((\"translate3d(0,0,0) scale(\" + (zoom.scale) + \")\"));\r\n },\r\n out: function out() {\r\n var swiper = this;\r\n\r\n var zoom = swiper.zoom;\r\n var params = swiper.params.zoom;\r\n var gesture = zoom.gesture;\r\n\r\n if (!gesture.$slideEl) {\r\n gesture.$slideEl = swiper.clickedSlide ? $(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex);\r\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas');\r\n gesture.$imageWrapEl = gesture.$imageEl.parent((\".\" + (params.containerClass)));\r\n }\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\r\n return;\r\n }\r\n\r\n zoom.scale = 1;\r\n zoom.currentScale = 1;\r\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\r\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\r\n gesture.$slideEl.removeClass((\"\" + (params.zoomedSlideClass)));\r\n gesture.$slideEl = undefined;\r\n },\r\n // Attach/Detach Events\r\n enable: function enable() {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n if (zoom.enabled) {\r\n return;\r\n }\r\n zoom.enabled = true;\r\n\r\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n\r\n // Scale image\r\n if (Support.gestures) {\r\n swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\r\n swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\r\n swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\r\n } else if (swiper.touchEvents.start === 'touchstart') {\r\n swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\r\n swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\r\n swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\r\n }\r\n\r\n // Move image\r\n swiper.$wrapperEl.on(swiper.touchEvents.move, (\".\" + (swiper.params.zoom.containerClass)), zoom.onTouchMove);\r\n },\r\n disable: function disable() {\r\n var swiper = this;\r\n var zoom = swiper.zoom;\r\n if (!zoom.enabled) {\r\n return;\r\n }\r\n\r\n swiper.zoom.enabled = false;\r\n\r\n var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? {\r\n passive: true,\r\n capture: false\r\n } : false;\r\n\r\n // Scale image\r\n if (Support.gestures) {\r\n swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener);\r\n swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener);\r\n swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener);\r\n } else if (swiper.touchEvents.start === 'touchstart') {\r\n swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener);\r\n swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener);\r\n swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener);\r\n }\r\n\r\n // Move image\r\n swiper.$wrapperEl.off(swiper.touchEvents.move, (\".\" + (swiper.params.zoom.containerClass)), zoom.onTouchMove);\r\n },\r\n };\r\n\r\n var Zoom$1 = {\r\n name: 'zoom',\r\n params: {\r\n zoom: {\r\n enabled: false,\r\n maxRatio: 3,\r\n minRatio: 1,\r\n toggle: true,\r\n containerClass: 'swiper-zoom-container',\r\n zoomedSlideClass: 'swiper-slide-zoomed',\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n var zoom = {\r\n enabled: false,\r\n scale: 1,\r\n currentScale: 1,\r\n isScaling: false,\r\n gesture: {\r\n $slideEl: undefined,\r\n slideWidth: undefined,\r\n slideHeight: undefined,\r\n $imageEl: undefined,\r\n $imageWrapEl: undefined,\r\n maxRatio: 3,\r\n },\r\n image: {\r\n isTouched: undefined,\r\n isMoved: undefined,\r\n currentX: undefined,\r\n currentY: undefined,\r\n minX: undefined,\r\n minY: undefined,\r\n maxX: undefined,\r\n maxY: undefined,\r\n width: undefined,\r\n height: undefined,\r\n startX: undefined,\r\n startY: undefined,\r\n touchesStart: {},\r\n touchesCurrent: {},\r\n },\r\n velocity: {\r\n x: undefined,\r\n y: undefined,\r\n prevPositionX: undefined,\r\n prevPositionY: undefined,\r\n prevTime: undefined,\r\n },\r\n };\r\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach(function (methodName) {\r\n zoom[methodName] = Zoom[methodName].bind(swiper);\r\n });\r\n Utils.extend(swiper, {\r\n zoom: zoom,\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n if (swiper.params.zoom.enabled) {\r\n swiper.zoom.enable();\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n swiper.zoom.disable();\r\n },\r\n touchStart: function touchStart(e) {\r\n var swiper = this;\r\n if (!swiper.zoom.enabled) {\r\n return;\r\n }\r\n swiper.zoom.onTouchStart(e);\r\n },\r\n touchEnd: function touchEnd(e) {\r\n var swiper = this;\r\n if (!swiper.zoom.enabled) {\r\n return;\r\n }\r\n swiper.zoom.onTouchEnd(e);\r\n },\r\n doubleTap: function doubleTap(e) {\r\n var swiper = this;\r\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\r\n swiper.zoom.toggle(e);\r\n }\r\n },\r\n transitionEnd: function transitionEnd() {\r\n var swiper = this;\r\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\r\n swiper.zoom.onTransitionEnd();\r\n }\r\n },\r\n },\r\n };\r\n\r\n var Lazy = {\r\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\r\n if (loadInDuplicate === void 0) loadInDuplicate = true;\r\n\r\n var swiper = this;\r\n var params = swiper.params.lazy;\r\n if (typeof index === 'undefined') {\r\n return;\r\n }\r\n if (swiper.slides.length === 0) {\r\n return;\r\n }\r\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n\r\n var $slideEl = isVirtual\r\n ? swiper.$wrapperEl.children((\".\" + (swiper.params.slideClass) + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\"))\r\n : swiper.slides.eq(index);\r\n\r\n var $images = $slideEl.find((\".\" + (params.elementClass) + \":not(.\" + (params.loadedClass) + \"):not(.\" + (params.loadingClass) + \")\"));\r\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\r\n $images = $images.add($slideEl[0]);\r\n }\r\n if ($images.length === 0) {\r\n return;\r\n }\r\n\r\n $images.each(function (imageIndex, imageEl) {\r\n var $imageEl = $(imageEl);\r\n $imageEl.addClass(params.loadingClass);\r\n\r\n var background = $imageEl.attr('data-background');\r\n var src = $imageEl.attr('data-src');\r\n var srcset = $imageEl.attr('data-srcset');\r\n var sizes = $imageEl.attr('data-sizes');\r\n\r\n swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, function () {\r\n if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) {\r\n return;\r\n }\r\n if (background) {\r\n $imageEl.css('background-image', (\"url(\\\"\" + background + \"\\\")\"));\r\n $imageEl.removeAttr('data-background');\r\n } else {\r\n if (srcset) {\r\n $imageEl.attr('srcset', srcset);\r\n $imageEl.removeAttr('data-srcset');\r\n }\r\n if (sizes) {\r\n $imageEl.attr('sizes', sizes);\r\n $imageEl.removeAttr('data-sizes');\r\n }\r\n if (src) {\r\n $imageEl.attr('src', src);\r\n $imageEl.removeAttr('data-src');\r\n }\r\n }\r\n\r\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\r\n $slideEl.find((\".\" + (params.preloaderClass))).remove();\r\n if (swiper.params.loop && loadInDuplicate) {\r\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\r\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\r\n var originalSlide = swiper.$wrapperEl.children((\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + (swiper.params.slideDuplicateClass) + \")\"));\r\n swiper.lazy.loadInSlide(originalSlide.index(), false);\r\n } else {\r\n var duplicatedSlide = swiper.$wrapperEl.children((\".\" + (swiper.params.slideDuplicateClass) + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\"));\r\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\r\n }\r\n }\r\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\r\n });\r\n\r\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\r\n });\r\n },\r\n load: function load() {\r\n var swiper = this;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var swiperParams = swiper.params;\r\n var slides = swiper.slides;\r\n var activeIndex = swiper.activeIndex;\r\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\r\n var params = swiperParams.lazy;\r\n\r\n var slidesPerView = swiperParams.slidesPerView;\r\n if (slidesPerView === 'auto') {\r\n slidesPerView = 0;\r\n }\r\n\r\n function slideExist(index) {\r\n if (isVirtual) {\r\n if ($wrapperEl.children((\".\" + (swiperParams.slideClass) + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\")).length) {\r\n return true;\r\n }\r\n } else if (slides[index]) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function slideIndex(slideEl) {\r\n if (isVirtual) {\r\n return $(slideEl).attr('data-swiper-slide-index');\r\n }\r\n return $(slideEl).index();\r\n }\r\n\r\n if (!swiper.lazy.initialImageLoaded) {\r\n swiper.lazy.initialImageLoaded = true;\r\n }\r\n if (swiper.params.watchSlidesVisibility) {\r\n $wrapperEl.children((\".\" + (swiperParams.slideVisibleClass))).each(function (elIndex, slideEl) {\r\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\r\n swiper.lazy.loadInSlide(index);\r\n });\r\n } else if (slidesPerView > 1) {\r\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\r\n if (slideExist(i)) {\r\n swiper.lazy.loadInSlide(i);\r\n }\r\n }\r\n } else {\r\n swiper.lazy.loadInSlide(activeIndex);\r\n }\r\n if (params.loadPrevNext) {\r\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\r\n var amount = params.loadPrevNextAmount;\r\n var spv = slidesPerView;\r\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\r\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\r\n // Next Slides\r\n for (var i$1 = activeIndex + slidesPerView; i$1 < maxIndex; i$1 += 1) {\r\n if (slideExist(i$1)) {\r\n swiper.lazy.loadInSlide(i$1);\r\n }\r\n }\r\n // Prev Slides\r\n for (var i$2 = minIndex; i$2 < activeIndex; i$2 += 1) {\r\n if (slideExist(i$2)) {\r\n swiper.lazy.loadInSlide(i$2);\r\n }\r\n }\r\n } else {\r\n var nextSlide = $wrapperEl.children((\".\" + (swiperParams.slideNextClass)));\r\n if (nextSlide.length > 0) {\r\n swiper.lazy.loadInSlide(slideIndex(nextSlide));\r\n }\r\n\r\n var prevSlide = $wrapperEl.children((\".\" + (swiperParams.slidePrevClass)));\r\n if (prevSlide.length > 0) {\r\n swiper.lazy.loadInSlide(slideIndex(prevSlide));\r\n }\r\n }\r\n }\r\n },\r\n };\r\n\r\n var Lazy$1 = {\r\n name: 'lazy',\r\n params: {\r\n lazy: {\r\n enabled: false,\r\n loadPrevNext: false,\r\n loadPrevNextAmount: 1,\r\n loadOnTransitionStart: false,\r\n\r\n elementClass: 'swiper-lazy',\r\n loadingClass: 'swiper-lazy-loading',\r\n loadedClass: 'swiper-lazy-loaded',\r\n preloaderClass: 'swiper-lazy-preloader',\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n lazy: {\r\n initialImageLoaded: false,\r\n load: Lazy.load.bind(swiper),\r\n loadInSlide: Lazy.loadInSlide.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit() {\r\n var swiper = this;\r\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\r\n swiper.params.preloadImages = false;\r\n }\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\r\n swiper.lazy.load();\r\n }\r\n },\r\n scroll: function scroll() {\r\n var swiper = this;\r\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\r\n swiper.lazy.load();\r\n }\r\n },\r\n resize: function resize() {\r\n var swiper = this;\r\n if (swiper.params.lazy.enabled) {\r\n swiper.lazy.load();\r\n }\r\n },\r\n scrollbarDragMove: function scrollbarDragMove() {\r\n var swiper = this;\r\n if (swiper.params.lazy.enabled) {\r\n swiper.lazy.load();\r\n }\r\n },\r\n transitionStart: function transitionStart() {\r\n var swiper = this;\r\n if (swiper.params.lazy.enabled) {\r\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\r\n swiper.lazy.load();\r\n }\r\n }\r\n },\r\n transitionEnd: function transitionEnd() {\r\n var swiper = this;\r\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\r\n swiper.lazy.load();\r\n }\r\n },\r\n },\r\n };\r\n\r\n /* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\r\n\r\n var Controller = {\r\n LinearSpline: function LinearSpline(x, y) {\r\n var binarySearch = (function search() {\r\n var maxIndex;\r\n var minIndex;\r\n var guess;\r\n return function (array, val) {\r\n minIndex = -1;\r\n maxIndex = array.length;\r\n while (maxIndex - minIndex > 1) {\r\n guess = maxIndex + minIndex >> 1;\r\n if (array[guess] <= val) {\r\n minIndex = guess;\r\n } else {\r\n maxIndex = guess;\r\n }\r\n }\r\n return maxIndex;\r\n };\r\n }());\r\n this.x = x;\r\n this.y = y;\r\n this.lastIndex = x.length - 1;\r\n // Given an x value (x2), return the expected y2 value:\r\n // (x1,y1) is the known point before given value,\r\n // (x3,y3) is the known point after given value.\r\n var i1;\r\n var i3;\r\n\r\n this.interpolate = function interpolate(x2) {\r\n if (!x2) {\r\n return 0;\r\n }\r\n\r\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\r\n i3 = binarySearch(this.x, x2);\r\n i1 = i3 - 1;\r\n\r\n // We have our indexes i1 & i3, so we can calculate already:\r\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\r\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\r\n };\r\n return this;\r\n },\r\n // xxx: for now i will just save one spline function to to\r\n getInterpolateFunction: function getInterpolateFunction(c) {\r\n var swiper = this;\r\n if (!swiper.controller.spline) {\r\n swiper.controller.spline = swiper.params.loop\r\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\r\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\r\n }\r\n },\r\n setTranslate: function setTranslate(setTranslate$1, byController) {\r\n var swiper = this;\r\n var controlled = swiper.controller.control;\r\n var multiplier;\r\n var controlledTranslate;\r\n\r\n function setControlledTranslate(c) {\r\n // this will create an Interpolate function based on the snapGrids\r\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\r\n // it makes sense to create this only once and recall it for the interpolation\r\n // the function does a lot of value caching for performance\r\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\r\n if (swiper.params.controller.by === 'slide') {\r\n swiper.controller.getInterpolateFunction(c);\r\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\r\n // but it did not work out\r\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\r\n }\r\n\r\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\r\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\r\n controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate();\r\n }\r\n\r\n if (swiper.params.controller.inverse) {\r\n controlledTranslate = c.maxTranslate() - controlledTranslate;\r\n }\r\n c.updateProgress(controlledTranslate);\r\n c.setTranslate(controlledTranslate, swiper);\r\n c.updateActiveIndex();\r\n c.updateSlidesClasses();\r\n }\r\n\r\n if (Array.isArray(controlled)) {\r\n for (var i = 0; i < controlled.length; i += 1) {\r\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\r\n setControlledTranslate(controlled[i]);\r\n }\r\n }\r\n } else if (controlled instanceof Swiper && byController !== controlled) {\r\n setControlledTranslate(controlled);\r\n }\r\n },\r\n setTransition: function setTransition(duration, byController) {\r\n var swiper = this;\r\n var controlled = swiper.controller.control;\r\n var i;\r\n\r\n function setControlledTransition(c) {\r\n c.setTransition(duration, swiper);\r\n if (duration !== 0) {\r\n c.transitionStart();\r\n if (c.params.autoHeight) {\r\n Utils.nextTick(function () {\r\n c.updateAutoHeight();\r\n });\r\n }\r\n c.$wrapperEl.transitionEnd(function () {\r\n if (!controlled) {\r\n return;\r\n }\r\n if (c.params.loop && swiper.params.controller.by === 'slide') {\r\n c.loopFix();\r\n }\r\n c.transitionEnd();\r\n });\r\n }\r\n }\r\n\r\n if (Array.isArray(controlled)) {\r\n for (i = 0; i < controlled.length; i += 1) {\r\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\r\n setControlledTransition(controlled[i]);\r\n }\r\n }\r\n } else if (controlled instanceof Swiper && byController !== controlled) {\r\n setControlledTransition(controlled);\r\n }\r\n },\r\n };\r\n var Controller$1 = {\r\n name: 'controller',\r\n params: {\r\n controller: {\r\n control: undefined,\r\n inverse: false,\r\n by: 'slide', // or 'container'\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n controller: {\r\n control: swiper.params.controller.control,\r\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\r\n setTranslate: Controller.setTranslate.bind(swiper),\r\n setTransition: Controller.setTransition.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n update: function update() {\r\n var swiper = this;\r\n if (!swiper.controller.control) {\r\n return;\r\n }\r\n if (swiper.controller.spline) {\r\n swiper.controller.spline = undefined;\r\n delete swiper.controller.spline;\r\n }\r\n },\r\n resize: function resize() {\r\n var swiper = this;\r\n if (!swiper.controller.control) {\r\n return;\r\n }\r\n if (swiper.controller.spline) {\r\n swiper.controller.spline = undefined;\r\n delete swiper.controller.spline;\r\n }\r\n },\r\n observerUpdate: function observerUpdate() {\r\n var swiper = this;\r\n if (!swiper.controller.control) {\r\n return;\r\n }\r\n if (swiper.controller.spline) {\r\n swiper.controller.spline = undefined;\r\n delete swiper.controller.spline;\r\n }\r\n },\r\n setTranslate: function setTranslate(translate, byController) {\r\n var swiper = this;\r\n if (!swiper.controller.control) {\r\n return;\r\n }\r\n swiper.controller.setTranslate(translate, byController);\r\n },\r\n setTransition: function setTransition(duration, byController) {\r\n var swiper = this;\r\n if (!swiper.controller.control) {\r\n return;\r\n }\r\n swiper.controller.setTransition(duration, byController);\r\n },\r\n },\r\n };\r\n\r\n var a11y = {\r\n makeElFocusable: function makeElFocusable($el) {\r\n $el.attr('tabIndex', '0');\r\n return $el;\r\n },\r\n addElRole: function addElRole($el, role) {\r\n $el.attr('role', role);\r\n return $el;\r\n },\r\n addElLabel: function addElLabel($el, label) {\r\n $el.attr('aria-label', label);\r\n return $el;\r\n },\r\n disableEl: function disableEl($el) {\r\n $el.attr('aria-disabled', true);\r\n return $el;\r\n },\r\n enableEl: function enableEl($el) {\r\n $el.attr('aria-disabled', false);\r\n return $el;\r\n },\r\n onEnterKey: function onEnterKey(e) {\r\n var swiper = this;\r\n var params = swiper.params.a11y;\r\n if (e.keyCode !== 13) {\r\n return;\r\n }\r\n var $targetEl = $(e.target);\r\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\r\n if (!(swiper.isEnd && !swiper.params.loop)) {\r\n swiper.slideNext();\r\n }\r\n if (swiper.isEnd) {\r\n swiper.a11y.notify(params.lastSlideMessage);\r\n } else {\r\n swiper.a11y.notify(params.nextSlideMessage);\r\n }\r\n }\r\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\r\n if (!(swiper.isBeginning && !swiper.params.loop)) {\r\n swiper.slidePrev();\r\n }\r\n if (swiper.isBeginning) {\r\n swiper.a11y.notify(params.firstSlideMessage);\r\n } else {\r\n swiper.a11y.notify(params.prevSlideMessage);\r\n }\r\n }\r\n if (swiper.pagination && $targetEl.is((\".\" + (swiper.params.pagination.bulletClass)))) {\r\n $targetEl[0].click();\r\n }\r\n },\r\n notify: function notify(message) {\r\n var swiper = this;\r\n var notification = swiper.a11y.liveRegion;\r\n if (notification.length === 0) {\r\n return;\r\n }\r\n notification.html('');\r\n notification.html(message);\r\n },\r\n updateNavigation: function updateNavigation() {\r\n var swiper = this;\r\n\r\n if (swiper.params.loop) {\r\n return;\r\n }\r\n var ref = swiper.navigation;\r\n var $nextEl = ref.$nextEl;\r\n var $prevEl = ref.$prevEl;\r\n\r\n if ($prevEl && $prevEl.length > 0) {\r\n if (swiper.isBeginning) {\r\n swiper.a11y.disableEl($prevEl);\r\n } else {\r\n swiper.a11y.enableEl($prevEl);\r\n }\r\n }\r\n if ($nextEl && $nextEl.length > 0) {\r\n if (swiper.isEnd) {\r\n swiper.a11y.disableEl($nextEl);\r\n } else {\r\n swiper.a11y.enableEl($nextEl);\r\n }\r\n }\r\n },\r\n updatePagination: function updatePagination() {\r\n var swiper = this;\r\n var params = swiper.params.a11y;\r\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\r\n swiper.pagination.bullets.each(function (bulletIndex, bulletEl) {\r\n var $bulletEl = $(bulletEl);\r\n swiper.a11y.makeElFocusable($bulletEl);\r\n swiper.a11y.addElRole($bulletEl, 'button');\r\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1));\r\n });\r\n }\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n\r\n swiper.$el.append(swiper.a11y.liveRegion);\r\n\r\n // Navigation\r\n var params = swiper.params.a11y;\r\n var $nextEl;\r\n var $prevEl;\r\n if (swiper.navigation && swiper.navigation.$nextEl) {\r\n $nextEl = swiper.navigation.$nextEl;\r\n }\r\n if (swiper.navigation && swiper.navigation.$prevEl) {\r\n $prevEl = swiper.navigation.$prevEl;\r\n }\r\n if ($nextEl) {\r\n swiper.a11y.makeElFocusable($nextEl);\r\n swiper.a11y.addElRole($nextEl, 'button');\r\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\r\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\r\n }\r\n if ($prevEl) {\r\n swiper.a11y.makeElFocusable($prevEl);\r\n swiper.a11y.addElRole($prevEl, 'button');\r\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\r\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\r\n }\r\n\r\n // Pagination\r\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\r\n swiper.pagination.$el.on('keydown', (\".\" + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey);\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) {\r\n swiper.a11y.liveRegion.remove();\r\n }\r\n\r\n var $nextEl;\r\n var $prevEl;\r\n if (swiper.navigation && swiper.navigation.$nextEl) {\r\n $nextEl = swiper.navigation.$nextEl;\r\n }\r\n if (swiper.navigation && swiper.navigation.$prevEl) {\r\n $prevEl = swiper.navigation.$prevEl;\r\n }\r\n if ($nextEl) {\r\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\r\n }\r\n if ($prevEl) {\r\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\r\n }\r\n\r\n // Pagination\r\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\r\n swiper.pagination.$el.off('keydown', (\".\" + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey);\r\n }\r\n },\r\n };\r\n var A11y = {\r\n name: 'a11y',\r\n params: {\r\n a11y: {\r\n enabled: true,\r\n notificationClass: 'swiper-notification',\r\n prevSlideMessage: 'Previous slide',\r\n nextSlideMessage: 'Next slide',\r\n firstSlideMessage: 'This is the first slide',\r\n lastSlideMessage: 'This is the last slide',\r\n paginationBulletMessage: 'Go to slide {{index}}',\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n a11y: {\r\n liveRegion: $((\"\")),\r\n },\r\n });\r\n Object.keys(a11y).forEach(function (methodName) {\r\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n if (!swiper.params.a11y.enabled) {\r\n return;\r\n }\r\n swiper.a11y.init();\r\n swiper.a11y.updateNavigation();\r\n },\r\n toEdge: function toEdge() {\r\n var swiper = this;\r\n if (!swiper.params.a11y.enabled) {\r\n return;\r\n }\r\n swiper.a11y.updateNavigation();\r\n },\r\n fromEdge: function fromEdge() {\r\n var swiper = this;\r\n if (!swiper.params.a11y.enabled) {\r\n return;\r\n }\r\n swiper.a11y.updateNavigation();\r\n },\r\n paginationUpdate: function paginationUpdate() {\r\n var swiper = this;\r\n if (!swiper.params.a11y.enabled) {\r\n return;\r\n }\r\n swiper.a11y.updatePagination();\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n if (!swiper.params.a11y.enabled) {\r\n return;\r\n }\r\n swiper.a11y.destroy();\r\n },\r\n },\r\n };\r\n\r\n var History = {\r\n init: function init() {\r\n var swiper = this;\r\n if (!swiper.params.history) {\r\n return;\r\n }\r\n if (!win.history || !win.history.pushState) {\r\n swiper.params.history.enabled = false;\r\n swiper.params.hashNavigation.enabled = true;\r\n return;\r\n }\r\n var history = swiper.history;\r\n history.initialized = true;\r\n history.paths = History.getPathValues();\r\n if (!history.paths.key && !history.paths.value) {\r\n return;\r\n }\r\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\r\n if (!swiper.params.history.replaceState) {\r\n win.addEventListener('popstate', swiper.history.setHistoryPopState);\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n if (!swiper.params.history.replaceState) {\r\n win.removeEventListener('popstate', swiper.history.setHistoryPopState);\r\n }\r\n },\r\n setHistoryPopState: function setHistoryPopState() {\r\n var swiper = this;\r\n swiper.history.paths = History.getPathValues();\r\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\r\n },\r\n getPathValues: function getPathValues() {\r\n var pathArray = win.location.pathname.slice(1).split('/').filter(function (part) {\r\n return part !== '';\r\n });\r\n var total = pathArray.length;\r\n var key = pathArray[total - 2];\r\n var value = pathArray[total - 1];\r\n return {key: key, value: value};\r\n },\r\n setHistory: function setHistory(key, index) {\r\n var swiper = this;\r\n if (!swiper.history.initialized || !swiper.params.history.enabled) {\r\n return;\r\n }\r\n var slide = swiper.slides.eq(index);\r\n var value = History.slugify(slide.attr('data-history'));\r\n if (!win.location.pathname.includes(key)) {\r\n value = key + \"/\" + value;\r\n }\r\n var currentState = win.history.state;\r\n if (currentState && currentState.value === value) {\r\n return;\r\n }\r\n if (swiper.params.history.replaceState) {\r\n win.history.replaceState({value: value}, null, value);\r\n } else {\r\n win.history.pushState({value: value}, null, value);\r\n }\r\n },\r\n slugify: function slugify(text) {\r\n return text.toString().toLowerCase()\r\n .replace(/\\s+/g, '-')\r\n .replace(/[^\\w-]+/g, '')\r\n .replace(/--+/g, '-')\r\n .replace(/^-+/, '')\r\n .replace(/-+$/, '');\r\n },\r\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\r\n var swiper = this;\r\n if (value) {\r\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\r\n var slide = swiper.slides.eq(i);\r\n var slideHistory = History.slugify(slide.attr('data-history'));\r\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\r\n var index = slide.index();\r\n swiper.slideTo(index, speed, runCallbacks);\r\n }\r\n }\r\n } else {\r\n swiper.slideTo(0, speed, runCallbacks);\r\n }\r\n },\r\n };\r\n\r\n var History$1 = {\r\n name: 'history',\r\n params: {\r\n history: {\r\n enabled: false,\r\n replaceState: false,\r\n key: 'slides',\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n history: {\r\n init: History.init.bind(swiper),\r\n setHistory: History.setHistory.bind(swiper),\r\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\r\n scrollToSlide: History.scrollToSlide.bind(swiper),\r\n destroy: History.destroy.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n if (swiper.params.history.enabled) {\r\n swiper.history.init();\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n if (swiper.params.history.enabled) {\r\n swiper.history.destroy();\r\n }\r\n },\r\n transitionEnd: function transitionEnd() {\r\n var swiper = this;\r\n if (swiper.history.initialized) {\r\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\r\n }\r\n },\r\n },\r\n };\r\n\r\n var HashNavigation = {\r\n onHashCange: function onHashCange() {\r\n var swiper = this;\r\n var newHash = doc.location.hash.replace('#', '');\r\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\r\n if (newHash !== activeSlideHash) {\r\n var newIndex = swiper.$wrapperEl.children((\".\" + (swiper.params.slideClass) + \"[data-hash=\\\"\" + newHash + \"\\\"]\")).index();\r\n if (typeof newIndex === 'undefined') {\r\n return;\r\n }\r\n swiper.slideTo(newIndex);\r\n }\r\n },\r\n setHash: function setHash() {\r\n var swiper = this;\r\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) {\r\n return;\r\n }\r\n if (swiper.params.hashNavigation.replaceState && win.history && win.history.replaceState) {\r\n win.history.replaceState(null, null, ((\"#\" + (swiper.slides.eq(swiper.activeIndex).attr('data-hash'))) || ''));\r\n } else {\r\n var slide = swiper.slides.eq(swiper.activeIndex);\r\n var hash = slide.attr('data-hash') || slide.attr('data-history');\r\n doc.location.hash = hash || '';\r\n }\r\n },\r\n init: function init() {\r\n var swiper = this;\r\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) {\r\n return;\r\n }\r\n swiper.hashNavigation.initialized = true;\r\n var hash = doc.location.hash.replace('#', '');\r\n if (hash) {\r\n var speed = 0;\r\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\r\n var slide = swiper.slides.eq(i);\r\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\r\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\r\n var index = slide.index();\r\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\r\n }\r\n }\r\n }\r\n if (swiper.params.hashNavigation.watchState) {\r\n $(win).on('hashchange', swiper.hashNavigation.onHashCange);\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n if (swiper.params.hashNavigation.watchState) {\r\n $(win).off('hashchange', swiper.hashNavigation.onHashCange);\r\n }\r\n },\r\n };\r\n var HashNavigation$1 = {\r\n name: 'hash-navigation',\r\n params: {\r\n hashNavigation: {\r\n enabled: false,\r\n replaceState: false,\r\n watchState: false,\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n hashNavigation: {\r\n initialized: false,\r\n init: HashNavigation.init.bind(swiper),\r\n destroy: HashNavigation.destroy.bind(swiper),\r\n setHash: HashNavigation.setHash.bind(swiper),\r\n onHashCange: HashNavigation.onHashCange.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n if (swiper.params.hashNavigation.enabled) {\r\n swiper.hashNavigation.init();\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n if (swiper.params.hashNavigation.enabled) {\r\n swiper.hashNavigation.destroy();\r\n }\r\n },\r\n transitionEnd: function transitionEnd() {\r\n var swiper = this;\r\n if (swiper.hashNavigation.initialized) {\r\n swiper.hashNavigation.setHash();\r\n }\r\n },\r\n },\r\n };\r\n\r\n /* eslint no-underscore-dangle: \"off\" */\r\n\r\n var Autoplay = {\r\n run: function run() {\r\n var swiper = this;\r\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\r\n var delay = swiper.params.autoplay.delay;\r\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\r\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\r\n }\r\n swiper.autoplay.timeout = Utils.nextTick(function () {\r\n if (swiper.params.autoplay.reverseDirection) {\r\n if (swiper.params.loop) {\r\n swiper.loopFix();\r\n swiper.slidePrev(swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else if (!swiper.isBeginning) {\r\n swiper.slidePrev(swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\r\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else {\r\n swiper.autoplay.stop();\r\n }\r\n } else if (swiper.params.loop) {\r\n swiper.loopFix();\r\n swiper.slideNext(swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else if (!swiper.isEnd) {\r\n swiper.slideNext(swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\r\n swiper.slideTo(0, swiper.params.speed, true, true);\r\n swiper.emit('autoplay');\r\n } else {\r\n swiper.autoplay.stop();\r\n }\r\n }, delay);\r\n },\r\n start: function start() {\r\n var swiper = this;\r\n if (typeof swiper.autoplay.timeout !== 'undefined') {\r\n return false;\r\n }\r\n if (swiper.autoplay.running) {\r\n return false;\r\n }\r\n swiper.autoplay.running = true;\r\n swiper.emit('autoplayStart');\r\n swiper.autoplay.run();\r\n return true;\r\n },\r\n stop: function stop() {\r\n var swiper = this;\r\n if (!swiper.autoplay.running) {\r\n return false;\r\n }\r\n if (typeof swiper.autoplay.timeout === 'undefined') {\r\n return false;\r\n }\r\n\r\n if (swiper.autoplay.timeout) {\r\n clearTimeout(swiper.autoplay.timeout);\r\n swiper.autoplay.timeout = undefined;\r\n }\r\n swiper.autoplay.running = false;\r\n swiper.emit('autoplayStop');\r\n return true;\r\n },\r\n pause: function pause(speed) {\r\n var swiper = this;\r\n if (!swiper.autoplay.running) {\r\n return;\r\n }\r\n if (swiper.autoplay.paused) {\r\n return;\r\n }\r\n if (swiper.autoplay.timeout) {\r\n clearTimeout(swiper.autoplay.timeout);\r\n }\r\n swiper.autoplay.paused = true;\r\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\r\n swiper.autoplay.paused = false;\r\n swiper.autoplay.run();\r\n } else {\r\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\r\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\r\n }\r\n },\r\n };\r\n\r\n var Autoplay$1 = {\r\n name: 'autoplay',\r\n params: {\r\n autoplay: {\r\n enabled: false,\r\n delay: 3000,\r\n waitForTransition: true,\r\n disableOnInteraction: true,\r\n stopOnLastSlide: false,\r\n reverseDirection: false,\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n autoplay: {\r\n running: false,\r\n paused: false,\r\n run: Autoplay.run.bind(swiper),\r\n start: Autoplay.start.bind(swiper),\r\n stop: Autoplay.stop.bind(swiper),\r\n pause: Autoplay.pause.bind(swiper),\r\n onTransitionEnd: function onTransitionEnd(e) {\r\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) {\r\n return;\r\n }\r\n if (e.target !== this) {\r\n return;\r\n }\r\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\r\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\r\n swiper.autoplay.paused = false;\r\n if (!swiper.autoplay.running) {\r\n swiper.autoplay.stop();\r\n } else {\r\n swiper.autoplay.run();\r\n }\r\n },\r\n },\r\n });\r\n },\r\n on: {\r\n init: function init() {\r\n var swiper = this;\r\n if (swiper.params.autoplay.enabled) {\r\n swiper.autoplay.start();\r\n }\r\n },\r\n beforeTransitionStart: function beforeTransitionStart(speed, internal) {\r\n var swiper = this;\r\n if (swiper.autoplay.running) {\r\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\r\n swiper.autoplay.pause(speed);\r\n } else {\r\n swiper.autoplay.stop();\r\n }\r\n }\r\n },\r\n sliderFirstMove: function sliderFirstMove() {\r\n var swiper = this;\r\n if (swiper.autoplay.running) {\r\n if (swiper.params.autoplay.disableOnInteraction) {\r\n swiper.autoplay.stop();\r\n } else {\r\n swiper.autoplay.pause();\r\n }\r\n }\r\n },\r\n destroy: function destroy() {\r\n var swiper = this;\r\n if (swiper.autoplay.running) {\r\n swiper.autoplay.stop();\r\n }\r\n },\r\n },\r\n };\r\n\r\n var Fade = {\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n var slides = swiper.slides;\r\n for (var i = 0; i < slides.length; i += 1) {\r\n var $slideEl = swiper.slides.eq(i);\r\n var offset = $slideEl[0].swiperSlideOffset;\r\n var tx = -offset;\r\n if (!swiper.params.virtualTranslate) {\r\n tx -= swiper.translate;\r\n }\r\n var ty = 0;\r\n if (!swiper.isHorizontal()) {\r\n ty = tx;\r\n tx = 0;\r\n }\r\n var slideOpacity = swiper.params.fadeEffect.crossFade\r\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\r\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\r\n $slideEl\r\n .css({\r\n opacity: slideOpacity,\r\n })\r\n .transform((\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\"));\r\n }\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n var slides = swiper.slides;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n slides.transition(duration);\r\n if (swiper.params.virtualTranslate && duration !== 0) {\r\n var eventTriggered = false;\r\n slides.transitionEnd(function () {\r\n if (eventTriggered) {\r\n return;\r\n }\r\n if (!swiper || swiper.destroyed) {\r\n return;\r\n }\r\n eventTriggered = true;\r\n swiper.animating = false;\r\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\r\n for (var i = 0; i < triggerEvents.length; i += 1) {\r\n $wrapperEl.trigger(triggerEvents[i]);\r\n }\r\n });\r\n }\r\n },\r\n };\r\n\r\n var EffectFade = {\r\n name: 'effect-fade',\r\n params: {\r\n fadeEffect: {\r\n crossFade: false,\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n fadeEffect: {\r\n setTranslate: Fade.setTranslate.bind(swiper),\r\n setTransition: Fade.setTransition.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit() {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'fade') {\r\n return;\r\n }\r\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"fade\"));\r\n var overwriteParams = {\r\n slidesPerView: 1,\r\n slidesPerColumn: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n spaceBetween: 0,\r\n virtualTranslate: true,\r\n };\r\n Utils.extend(swiper.params, overwriteParams);\r\n Utils.extend(swiper.originalParams, overwriteParams);\r\n },\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'fade') {\r\n return;\r\n }\r\n swiper.fadeEffect.setTranslate();\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'fade') {\r\n return;\r\n }\r\n swiper.fadeEffect.setTransition(duration);\r\n },\r\n },\r\n };\r\n\r\n var Cube = {\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n var $el = swiper.$el;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var slides = swiper.slides;\r\n var swiperWidth = swiper.width;\r\n var swiperHeight = swiper.height;\r\n var rtl = swiper.rtlTranslate;\r\n var swiperSize = swiper.size;\r\n var params = swiper.params.cubeEffect;\r\n var isHorizontal = swiper.isHorizontal();\r\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n var wrapperRotate = 0;\r\n var $cubeShadowEl;\r\n if (params.shadow) {\r\n if (isHorizontal) {\r\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\r\n if ($cubeShadowEl.length === 0) {\r\n $cubeShadowEl = $('
');\r\n $wrapperEl.append($cubeShadowEl);\r\n }\r\n $cubeShadowEl.css({height: (swiperWidth + \"px\")});\r\n } else {\r\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\r\n if ($cubeShadowEl.length === 0) {\r\n $cubeShadowEl = $('
');\r\n $el.append($cubeShadowEl);\r\n }\r\n }\r\n }\r\n for (var i = 0; i < slides.length; i += 1) {\r\n var $slideEl = slides.eq(i);\r\n var slideIndex = i;\r\n if (isVirtual) {\r\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\r\n }\r\n var slideAngle = slideIndex * 90;\r\n var round = Math.floor(slideAngle / 360);\r\n if (rtl) {\r\n slideAngle = -slideAngle;\r\n round = Math.floor(-slideAngle / 360);\r\n }\r\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\r\n var tx = 0;\r\n var ty = 0;\r\n var tz = 0;\r\n if (slideIndex % 4 === 0) {\r\n tx = -round * 4 * swiperSize;\r\n tz = 0;\r\n } else if ((slideIndex - 1) % 4 === 0) {\r\n tx = 0;\r\n tz = -round * 4 * swiperSize;\r\n } else if ((slideIndex - 2) % 4 === 0) {\r\n tx = swiperSize + (round * 4 * swiperSize);\r\n tz = swiperSize;\r\n } else if ((slideIndex - 3) % 4 === 0) {\r\n tx = -swiperSize;\r\n tz = (3 * swiperSize) + (swiperSize * 4 * round);\r\n }\r\n if (rtl) {\r\n tx = -tx;\r\n }\r\n\r\n if (!isHorizontal) {\r\n ty = tx;\r\n tx = 0;\r\n }\r\n\r\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\r\n if (progress <= 1 && progress > -1) {\r\n wrapperRotate = (slideIndex * 90) + (progress * 90);\r\n if (rtl) {\r\n wrapperRotate = (-slideIndex * 90) - (progress * 90);\r\n }\r\n }\r\n $slideEl.transform(transform);\r\n if (params.slideShadows) {\r\n // Set shadows\r\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\r\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\r\n if (shadowBefore.length === 0) {\r\n shadowBefore = $((\"
\"));\r\n $slideEl.append(shadowBefore);\r\n }\r\n if (shadowAfter.length === 0) {\r\n shadowAfter = $((\"
\"));\r\n $slideEl.append(shadowAfter);\r\n }\r\n if (shadowBefore.length) {\r\n shadowBefore[0].style.opacity = Math.max(-progress, 0);\r\n }\r\n if (shadowAfter.length) {\r\n shadowAfter[0].style.opacity = Math.max(progress, 0);\r\n }\r\n }\r\n }\r\n $wrapperEl.css({\r\n '-webkit-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\r\n '-moz-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\r\n '-ms-transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\r\n 'transform-origin': (\"50% 50% -\" + (swiperSize / 2) + \"px\"),\r\n });\r\n\r\n if (params.shadow) {\r\n if (isHorizontal) {\r\n $cubeShadowEl.transform((\"translate3d(0px, \" + ((swiperWidth / 2) + params.shadowOffset) + \"px, \" + (-swiperWidth / 2) + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + (params.shadowScale) + \")\"));\r\n } else {\r\n var shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90);\r\n var multiplier = 1.5 - (\r\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\r\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\r\n );\r\n var scale1 = params.shadowScale;\r\n var scale2 = params.shadowScale / multiplier;\r\n var offset = params.shadowOffset;\r\n $cubeShadowEl.transform((\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + ((swiperHeight / 2) + offset) + \"px, \" + (-swiperHeight / 2 / scale2) + \"px) rotateX(-90deg)\"));\r\n }\r\n }\r\n var zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) : 0;\r\n $wrapperEl\r\n .transform((\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\"));\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n var $el = swiper.$el;\r\n var slides = swiper.slides;\r\n slides\r\n .transition(duration)\r\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\r\n .transition(duration);\r\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\r\n $el.find('.swiper-cube-shadow').transition(duration);\r\n }\r\n },\r\n };\r\n\r\n var EffectCube = {\r\n name: 'effect-cube',\r\n params: {\r\n cubeEffect: {\r\n slideShadows: true,\r\n shadow: true,\r\n shadowOffset: 20,\r\n shadowScale: 0.94,\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n cubeEffect: {\r\n setTranslate: Cube.setTranslate.bind(swiper),\r\n setTransition: Cube.setTransition.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit() {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'cube') {\r\n return;\r\n }\r\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"cube\"));\r\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\r\n var overwriteParams = {\r\n slidesPerView: 1,\r\n slidesPerColumn: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n resistanceRatio: 0,\r\n spaceBetween: 0,\r\n centeredSlides: false,\r\n virtualTranslate: true,\r\n };\r\n Utils.extend(swiper.params, overwriteParams);\r\n Utils.extend(swiper.originalParams, overwriteParams);\r\n },\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'cube') {\r\n return;\r\n }\r\n swiper.cubeEffect.setTranslate();\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'cube') {\r\n return;\r\n }\r\n swiper.cubeEffect.setTransition(duration);\r\n },\r\n },\r\n };\r\n\r\n var Flip = {\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n var slides = swiper.slides;\r\n var rtl = swiper.rtlTranslate;\r\n for (var i = 0; i < slides.length; i += 1) {\r\n var $slideEl = slides.eq(i);\r\n var progress = $slideEl[0].progress;\r\n if (swiper.params.flipEffect.limitRotation) {\r\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\r\n }\r\n var offset = $slideEl[0].swiperSlideOffset;\r\n var rotate = -180 * progress;\r\n var rotateY = rotate;\r\n var rotateX = 0;\r\n var tx = -offset;\r\n var ty = 0;\r\n if (!swiper.isHorizontal()) {\r\n ty = tx;\r\n tx = 0;\r\n rotateX = -rotateY;\r\n rotateY = 0;\r\n } else if (rtl) {\r\n rotateY = -rotateY;\r\n }\r\n\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\r\n\r\n if (swiper.params.flipEffect.slideShadows) {\r\n // Set shadows\r\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\r\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\r\n if (shadowBefore.length === 0) {\r\n shadowBefore = $((\"
\"));\r\n $slideEl.append(shadowBefore);\r\n }\r\n if (shadowAfter.length === 0) {\r\n shadowAfter = $((\"
\"));\r\n $slideEl.append(shadowAfter);\r\n }\r\n if (shadowBefore.length) {\r\n shadowBefore[0].style.opacity = Math.max(-progress, 0);\r\n }\r\n if (shadowAfter.length) {\r\n shadowAfter[0].style.opacity = Math.max(progress, 0);\r\n }\r\n }\r\n $slideEl\r\n .transform((\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\"));\r\n }\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n var slides = swiper.slides;\r\n var activeIndex = swiper.activeIndex;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n slides\r\n .transition(duration)\r\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\r\n .transition(duration);\r\n if (swiper.params.virtualTranslate && duration !== 0) {\r\n var eventTriggered = false;\r\n // eslint-disable-next-line\r\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\r\n if (eventTriggered) {\r\n return;\r\n }\r\n if (!swiper || swiper.destroyed) {\r\n return;\r\n }\r\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\r\n eventTriggered = true;\r\n swiper.animating = false;\r\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\r\n for (var i = 0; i < triggerEvents.length; i += 1) {\r\n $wrapperEl.trigger(triggerEvents[i]);\r\n }\r\n });\r\n }\r\n },\r\n };\r\n\r\n var EffectFlip = {\r\n name: 'effect-flip',\r\n params: {\r\n flipEffect: {\r\n slideShadows: true,\r\n limitRotation: true,\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n flipEffect: {\r\n setTranslate: Flip.setTranslate.bind(swiper),\r\n setTransition: Flip.setTransition.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit() {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'flip') {\r\n return;\r\n }\r\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"flip\"));\r\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\r\n var overwriteParams = {\r\n slidesPerView: 1,\r\n slidesPerColumn: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n spaceBetween: 0,\r\n virtualTranslate: true,\r\n };\r\n Utils.extend(swiper.params, overwriteParams);\r\n Utils.extend(swiper.originalParams, overwriteParams);\r\n },\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'flip') {\r\n return;\r\n }\r\n swiper.flipEffect.setTranslate();\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'flip') {\r\n return;\r\n }\r\n swiper.flipEffect.setTransition(duration);\r\n },\r\n },\r\n };\r\n\r\n var Coverflow = {\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n var swiperWidth = swiper.width;\r\n var swiperHeight = swiper.height;\r\n var slides = swiper.slides;\r\n var $wrapperEl = swiper.$wrapperEl;\r\n var slidesSizesGrid = swiper.slidesSizesGrid;\r\n var params = swiper.params.coverflowEffect;\r\n var isHorizontal = swiper.isHorizontal();\r\n var transform = swiper.translate;\r\n var center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2);\r\n var rotate = isHorizontal ? params.rotate : -params.rotate;\r\n var translate = params.depth;\r\n // Each slide offset from center\r\n for (var i = 0, length = slides.length; i < length; i += 1) {\r\n var $slideEl = slides.eq(i);\r\n var slideSize = slidesSizesGrid[i];\r\n var slideOffset = $slideEl[0].swiperSlideOffset;\r\n var offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\r\n\r\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\r\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\r\n // var rotateZ = 0\r\n var translateZ = -translate * Math.abs(offsetMultiplier);\r\n\r\n var translateY = isHorizontal ? 0 : params.stretch * (offsetMultiplier);\r\n var translateX = isHorizontal ? params.stretch * (offsetMultiplier) : 0;\r\n\r\n // Fix for ultra small values\r\n if (Math.abs(translateX) < 0.001) {\r\n translateX = 0;\r\n }\r\n if (Math.abs(translateY) < 0.001) {\r\n translateY = 0;\r\n }\r\n if (Math.abs(translateZ) < 0.001) {\r\n translateZ = 0;\r\n }\r\n if (Math.abs(rotateY) < 0.001) {\r\n rotateY = 0;\r\n }\r\n if (Math.abs(rotateX) < 0.001) {\r\n rotateX = 0;\r\n }\r\n\r\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\";\r\n\r\n $slideEl.transform(slideTransform);\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\r\n if (params.slideShadows) {\r\n // Set shadows\r\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\r\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\r\n if ($shadowBeforeEl.length === 0) {\r\n $shadowBeforeEl = $((\"
\"));\r\n $slideEl.append($shadowBeforeEl);\r\n }\r\n if ($shadowAfterEl.length === 0) {\r\n $shadowAfterEl = $((\"
\"));\r\n $slideEl.append($shadowAfterEl);\r\n }\r\n if ($shadowBeforeEl.length) {\r\n $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\r\n }\r\n if ($shadowAfterEl.length) {\r\n $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;\r\n }\r\n }\r\n }\r\n\r\n // Set correct perspective for IE10\r\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\r\n var ws = $wrapperEl[0].style;\r\n ws.perspectiveOrigin = center + \"px 50%\";\r\n }\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n swiper.slides\r\n .transition(duration)\r\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\r\n .transition(duration);\r\n },\r\n };\r\n\r\n var EffectCoverflow = {\r\n name: 'effect-coverflow',\r\n params: {\r\n coverflowEffect: {\r\n rotate: 50,\r\n stretch: 0,\r\n depth: 100,\r\n modifier: 1,\r\n slideShadows: true,\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n coverflowEffect: {\r\n setTranslate: Coverflow.setTranslate.bind(swiper),\r\n setTransition: Coverflow.setTransition.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit() {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'coverflow') {\r\n return;\r\n }\r\n\r\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"coverflow\"));\r\n swiper.classNames.push(((swiper.params.containerModifierClass) + \"3d\"));\r\n\r\n swiper.params.watchSlidesProgress = true;\r\n swiper.originalParams.watchSlidesProgress = true;\r\n },\r\n setTranslate: function setTranslate() {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'coverflow') {\r\n return;\r\n }\r\n swiper.coverflowEffect.setTranslate();\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n if (swiper.params.effect !== 'coverflow') {\r\n return;\r\n }\r\n swiper.coverflowEffect.setTransition(duration);\r\n },\r\n },\r\n };\r\n\r\n var Thumbs = {\r\n init: function init() {\r\n var swiper = this;\r\n var ref = swiper.params;\r\n var thumbsParams = ref.thumbs;\r\n var SwiperClass = swiper.constructor;\r\n if (thumbsParams.swiper instanceof SwiperClass) {\r\n swiper.thumbs.swiper = thumbsParams.swiper;\r\n Utils.extend(swiper.thumbs.swiper.originalParams, {\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false,\r\n });\r\n Utils.extend(swiper.thumbs.swiper.params, {\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false,\r\n });\r\n } else if (Utils.isObject(thumbsParams.swiper)) {\r\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\r\n watchSlidesVisibility: true,\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false,\r\n }));\r\n swiper.thumbs.swiperCreated = true;\r\n }\r\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\r\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\r\n },\r\n onThumbClick: function onThumbClick() {\r\n var swiper = this;\r\n var thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper) {\r\n return;\r\n }\r\n var clickedIndex = thumbsSwiper.clickedIndex;\r\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) {\r\n return;\r\n }\r\n var slideToIndex;\r\n if (thumbsSwiper.params.loop) {\r\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\r\n } else {\r\n slideToIndex = clickedIndex;\r\n }\r\n if (swiper.params.loop) {\r\n var currentIndex = swiper.activeIndex;\r\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\r\n swiper.loopFix();\r\n // eslint-disable-next-line\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n currentIndex = swiper.activeIndex;\r\n }\r\n var prevIndex = swiper.slides.eq(currentIndex).prevAll((\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\")).eq(0).index();\r\n var nextIndex = swiper.slides.eq(currentIndex).nextAll((\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\")).eq(0).index();\r\n if (typeof prevIndex === 'undefined') {\r\n slideToIndex = nextIndex;\r\n }\r\n else if (typeof nextIndex === 'undefined') {\r\n slideToIndex = prevIndex;\r\n }\r\n else if (nextIndex - currentIndex < currentIndex - prevIndex) {\r\n slideToIndex = nextIndex;\r\n }\r\n else {\r\n slideToIndex = prevIndex;\r\n }\r\n }\r\n swiper.slideTo(slideToIndex);\r\n },\r\n update: function update(initial) {\r\n var swiper = this;\r\n var thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper) {\r\n return;\r\n }\r\n\r\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\r\n ? thumbsSwiper.slidesPerViewDynamic()\r\n : thumbsSwiper.params.slidesPerView;\r\n\r\n if (swiper.realIndex !== thumbsSwiper.realIndex) {\r\n var currentThumbsIndex = thumbsSwiper.activeIndex;\r\n var newThumbsIndex;\r\n if (thumbsSwiper.params.loop) {\r\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\r\n thumbsSwiper.loopFix();\r\n // eslint-disable-next-line\r\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\r\n currentThumbsIndex = thumbsSwiper.activeIndex;\r\n }\r\n // Find actual thumbs index to slide to\r\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex) + \"\\\"]\")).eq(0).index();\r\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex) + \"\\\"]\")).eq(0).index();\r\n if (typeof prevThumbsIndex === 'undefined') {\r\n newThumbsIndex = nextThumbsIndex;\r\n }\r\n else if (typeof nextThumbsIndex === 'undefined') {\r\n newThumbsIndex = prevThumbsIndex;\r\n }\r\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\r\n newThumbsIndex = nextThumbsIndex;\r\n }\r\n else {\r\n newThumbsIndex = prevThumbsIndex;\r\n }\r\n } else {\r\n newThumbsIndex = swiper.realIndex;\r\n }\r\n\r\n if (thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\r\n if (thumbsSwiper.params.centeredSlides) {\r\n if (newThumbsIndex > currentThumbsIndex) {\r\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\r\n } else {\r\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\r\n }\r\n } else if (newThumbsIndex > currentThumbsIndex) {\r\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\r\n }\r\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\r\n }\r\n }\r\n\r\n // Activate thumbs\r\n var thumbsToActivate = 1;\r\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\r\n\r\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\r\n thumbsToActivate = swiper.params.slidesPerView;\r\n }\r\n\r\n thumbsSwiper.slides.removeClass(thumbActiveClass);\r\n if (thumbsSwiper.params.loop) {\r\n for (var i = 0; i < thumbsToActivate; i += 1) {\r\n thumbsSwiper.$wrapperEl.children((\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\")).addClass(thumbActiveClass);\r\n }\r\n } else {\r\n for (var i$1 = 0; i$1 < thumbsToActivate; i$1 += 1) {\r\n thumbsSwiper.slides.eq(swiper.realIndex + i$1).addClass(thumbActiveClass);\r\n }\r\n }\r\n },\r\n };\r\n var Thumbs$1 = {\r\n name: 'thumbs',\r\n params: {\r\n thumbs: {\r\n swiper: null,\r\n slideThumbActiveClass: 'swiper-slide-thumb-active',\r\n thumbsContainerClass: 'swiper-container-thumbs',\r\n },\r\n },\r\n create: function create() {\r\n var swiper = this;\r\n Utils.extend(swiper, {\r\n thumbs: {\r\n swiper: null,\r\n init: Thumbs.init.bind(swiper),\r\n update: Thumbs.update.bind(swiper),\r\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\r\n },\r\n });\r\n },\r\n on: {\r\n beforeInit: function beforeInit() {\r\n var swiper = this;\r\n var ref = swiper.params;\r\n var thumbs = ref.thumbs;\r\n if (!thumbs || !thumbs.swiper) {\r\n return;\r\n }\r\n swiper.thumbs.init();\r\n swiper.thumbs.update(true);\r\n },\r\n slideChange: function slideChange() {\r\n var swiper = this;\r\n if (!swiper.thumbs.swiper) {\r\n return;\r\n }\r\n swiper.thumbs.update();\r\n },\r\n update: function update() {\r\n var swiper = this;\r\n if (!swiper.thumbs.swiper) {\r\n return;\r\n }\r\n swiper.thumbs.update();\r\n },\r\n resize: function resize() {\r\n var swiper = this;\r\n if (!swiper.thumbs.swiper) {\r\n return;\r\n }\r\n swiper.thumbs.update();\r\n },\r\n observerUpdate: function observerUpdate() {\r\n var swiper = this;\r\n if (!swiper.thumbs.swiper) {\r\n return;\r\n }\r\n swiper.thumbs.update();\r\n },\r\n setTransition: function setTransition(duration) {\r\n var swiper = this;\r\n var thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper) {\r\n return;\r\n }\r\n thumbsSwiper.setTransition(duration);\r\n },\r\n beforeDestroy: function beforeDestroy() {\r\n var swiper = this;\r\n var thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper) {\r\n return;\r\n }\r\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\r\n thumbsSwiper.destroy();\r\n }\r\n },\r\n },\r\n };\r\n\r\n // Swiper Class\r\n\r\n var components = [\r\n Device$1,\r\n Support$1,\r\n Browser$1,\r\n Resize,\r\n Observer$1,\r\n Virtual$1,\r\n Keyboard$1,\r\n Mousewheel$1,\r\n Navigation$1,\r\n Pagination$1,\r\n Scrollbar$1,\r\n Parallax$1,\r\n Zoom$1,\r\n Lazy$1,\r\n Controller$1,\r\n A11y,\r\n History$1,\r\n HashNavigation$1,\r\n Autoplay$1,\r\n EffectFade,\r\n EffectCube,\r\n EffectFlip,\r\n EffectCoverflow,\r\n Thumbs$1\r\n ];\r\n\r\n if (typeof Swiper.use === 'undefined') {\r\n Swiper.use = Swiper.Class.use;\r\n Swiper.installModule = Swiper.Class.installModule;\r\n }\r\n\r\n Swiper.use(components);\r\n\r\n return Swiper;\r\n});\r\n"],"mappings":"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","ignoreList":[]}