{"version":3,"sources":["webpack:///./src/components/Search/TheSearchFilterHorizontal.vue","webpack:///src/components/Search/TheSearchFilterHorizontal.vue","webpack:///./src/components/Search/TheSearchFilterHorizontal.vue?614d","webpack:///./src/components/Search/TheSearchFilterHorizontal.vue?b665","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/virtual/virtual.js","webpack:///./node_modules/swiper/esm/components/keyboard/keyboard.js","webpack:///./node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/swiper/esm/components/scrollbar/scrollbar.js","webpack:///./node_modules/swiper/esm/components/parallax/parallax.js","webpack:///./node_modules/swiper/esm/components/zoom/zoom.js","webpack:///./node_modules/swiper/esm/components/lazy/lazy.js","webpack:///./node_modules/swiper/esm/components/controller/controller.js","webpack:///./node_modules/swiper/esm/components/a11y/a11y.js","webpack:///./node_modules/swiper/esm/components/history/history.js","webpack:///./node_modules/swiper/esm/components/hash-navigation/hash-navigation.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./node_modules/swiper/esm/components/effect-fade/effect-fade.js","webpack:///./node_modules/swiper/esm/components/effect-cube/effect-cube.js","webpack:///./node_modules/swiper/esm/components/effect-flip/effect-flip.js","webpack:///./node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js","webpack:///./node_modules/swiper/esm/components/thumbs/thumbs.js","webpack:///./node_modules/vue-awesome-swiper/dist/vue-awesome-swiper.js","webpack:///./src/components/Search/TheSearchFilterHorizontal.vue?37df","webpack:///./src/components/Search/TheSearchFilterHorizontal.vue?f34b"],"names":["_c","_self","staticClass","_vm","count","staticStyle","ref","attrs","getFiltersFlatten","key","make","TagValueId","model","staticRenderFns","props","computed","data","swiperOptions","slidesPerView","observer","observeParents","loop","grab","components","Swiper","SwiperSlide","methods","userFilter","item","mounted","component","isObject","obj","constructor","Object","extend","target","src","keys","forEach","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","_inheritsLoose","subClass","superClass","prototype","create","__proto__","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","toString","call","e","_construct","Parent","args","Class","a","push","apply","Constructor","Function","bind","instance","arguments","_isNativeFunction","fn","indexOf","_wrapNativeSuper","_cache","Map","undefined","TypeError","has","get","set","Wrapper","value","enumerable","writable","configurable","_assertThisInitialized","self","ReferenceError","makeReactive","proto","defineProperty","Dom7","_Array","items","_this","concat","Array","arrayFlat","arr","res","el","isArray","arrayFilter","filter","arrayUnique","uniqueArray","i","qsa","selector","context","$","html","trim","toCreate","tempParent","innerHTML","nodeType","addClass","_len","classes","_key","classNames","map","c","split","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","toggleClass","_len3","_key3","className","toggle","hasClass","_len4","_key4","contains","attr","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","on","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","j","events","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","splice","trigger","_len9","_key9","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","includeMargins","_styles","styles","offsetWidth","parseFloat","_styles2","offsetHeight","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","_prop","each","index","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parentNode","_parent","closest","find","foundElements","found","removeChild","noTrigger","shortcut","name","eventHandler","Methods","outerWidth","outerHeight","offset","parent","methodName","deleteProps","object","nextTick","delay","now","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","replace","join","MozTransform","OTransform","MsTransform","msTransform","m41","m42","slice","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","params","createElements","checkProps","auto","element","calcSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","passiveListener","supportsPassive","opts","gestures","getSupport","calcDevice","_temp","_ref","support","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","calcBrowser","isSafari","toLowerCase","isEdge","isWebView","test","getBrowser","ResizeObserver","swiper","resize","createObserver","destroyed","initialized","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","emit","orientationChangeHandler","init","resizeObserver","destroy","_extends","assign","source","hasOwnProperty","Observer","attach","options","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observers","containerParents","$el","observeSlideChildren","$wrapperEl","disconnect","useParams","instanceParams","modules","moduleName","module","useModules","modulesParams","moduleParams","moduleEventName","priority","method","eventsListeners","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventsArray","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","size","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","node","label","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","Math","floor","ceil","slidesPerColumnFill","max","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","centeredSlides","abs","slidesPerGroupSkip","effect","setWrapperSize","_i","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","_","slideIndex","cssMode","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","setTransition","getSlideByIndex","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","isVisible","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","updateSize","getSwiperTranslate","virtualTranslate","currentTranslate","byController","newProgress","wrapperEl","x","y","z","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","setTranslate","onTranslateToWrapperTransitionEnd","transitionStart","direction","dir","slideTo","initial","Error","indexAsNumber","isValidNumber","isFinite","initialSlide","normalizedTranslate","normalizedGird","normalizedGridNext","allowSlideNext","allowSlidePrev","t","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","increment","loopPreventsSlide","loopFix","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","threshold","currentSnap","nextSnap","_currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","diff","slideChanged","_slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","appendSlide","update","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","shadowRoot","path","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","pow","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","position","time","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","autoplay","running","paused","run","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","onTouchMove","onClick","start","move","end","passiveListeners","passive","cancel","updateOnWindowResize","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","containerModifierClass","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","base","containerEl","currentWidth","currentHeight","innerHeight","points","point","minRatio","substr","sort","b","_points$i","prepareClasses","prefix","resultClasses","addClasses","suffixes","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","complete","onload","onerror","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","wasLocked","lastSlidePosition","url","uniqueNavElements","wrapperClass","_emitClasses","_defineProperties","descriptor","_createClass","protoProps","staticProps","prototypes","modular","eventsEmitter","manipulation","images","extendedDefaults","swipers","newParams","browser","moduleParamName","swiperParams","defaults","passedParams","eventName","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","setProgress","current","getSlideClasses","slideEl","updates","spv","breakLoop","translated","translateValue","newDirection","needUpdate","currentDirection","mount","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","Virtual","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","cache","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","isEventSupported","isSupported","implementation","hasFeature","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","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","eventsTarget","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","positions","sensitivity","_newEvent","sign","ignoreWheelEvents","timeout","_recentWheelEvents","shift","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","newEvent","raw","prevEvent","animateSlider","releaseScroll","thresholdDelta","thresholdTime","getTime","Navigation","toggleEl","disabled","disabledClass","tagName","_swiper$navigation","$nextEl","$prevEl","lockClass","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","toEdge","fromEdge","_swiper$navigation3","click","_swiper$navigation4","targetEl","pagination","clickable","isHidden","Pagination","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","clickableClass","modifierClass","progressbarOppositeClass","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","dragStartPos","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","in","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomedSlideClass","toggleGestures","slideSelector","enableGestures","gesturesEnabled","disableGestures","activeListenerWithCapture","touchStart","touchEnd","doubleTap","slideChange","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","background","$pictureEl","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","scrollingElement","isWindow","scrollElementWidth","scrollElementHeight","scrollHandlerAttached","checkInView","loadOnTransitionStart","scroll","Controller","LinearSpline","i1","i3","binarySearch","guess","array","interpolate","getInterpolateFunction","controller","spline","_setTranslate","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","A11y","getRandomNumber","randomChar","round","random","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","a11y","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","slideRole","ariaLabelMessage","slideLabelMessage","notificationClass","afterInit","paginationUpdate","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","urlOverride","URL","pathArray","part","setHistory","slugify","root","includes","currentState","state","slideHistory","HashNavigation","onHashCange","newHash","activeSlideHash","setHash","slideHash","watchState","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","beforeTransitionStart","sliderFirstMove","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Cube","$cubeShadowEl","cubeEffect","wrapperRotate","shadow","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","cos","scale1","scale2","zFactor","Flip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","Coverflow","coverflowEffect","center","depth","slideOffset","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","Thumbs","thumbsParams","thumbs","SwiperClass","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","beforeDestroy","g","f","exports","Vue","CoreNames","ComponentEvents","ComponentPropNames","DEFAULT_CLASSES","freeze","SWIPER_EVENTS","__spreadArrays","s","il","r","jl","SlotNames","kebabcase","string","handleClickSlideEvent","_a","_b","eventPath","composedPath","slides_1","some","reallyIndex","dataset","swiperSlideIndex","reallyIndexValue","isInteger","ClickSlide","bindSwiperEvents","arguments$1","kebabcaseName","INSTANCE_NAME_KEY","getDirective","globalOptions","getStandardisedOptionByAttrs","vnode","_d","getSwiperInstanceName","binding","arg","SwiperInstance","getSwiperInstance","instanceName","getSwipeOptions","getBooleanValueByInput","input","getEventEmiter","componentOptions","listeners","fns","emitEvent","inserted","vueContext","Ready","componentUpdated","_e","_f","_g","_h","_j","_k","_l","_m","autoUpdate","AutoUpdate","isLoop","unbind","autoDestroy","AutoDestroy","DeleteInstanceOnDestroy","CleanupStylesOnDestroy","getSwiperComponent","SwiperComponent","defaultOptions","required","default","Boolean","swiperInstance","handleSwiperClick","$emit","autoReLoopSwiper","updateSwiper","destroySwiper","initSwiper","activated","updated","$nextTick","$slots","ParallaxBg","class","PrevButton","NextButton","SwiperSlideComponent","$parent","getInstaller","install","installed","directive","SwiperDirective","exporter","version","VueAwesomeSwiper"],"mappings":"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","file":"assets/js/chunk-b42ded48.4f76e894.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex position-relative sort-row-wrapper\",attrs:{\"align-v\":\"center\"}},[_c('div',{staticClass:\"count pr-3\"},[(_vm.$store.getters.listings)?_c('h6',{staticClass:\"m-0\"},[(_vm.count)?_c('b',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.count)+\" \"+_vm._s(_vm.$t(\"dashboard.label.vehicles\")))]):_vm._e()]):(_vm.loading)?_c('h6',[_vm._v(\" \"+_vm._s(_vm.$t('search.label.loading')))]):_c('h6',[_vm._v(_vm._s(_vm.$t(\"search.label.noResults\")))])]),(\n this.getUserFilters.Model.length > 0 ||\n this.getUserFilters.Make.length > 0 ||\n this.getUserFilters.Year.length > 0\n )?_c('div',{staticClass:\"px-0 py-0 has-order\"},[_c('swiper',{ref:\"swiper\",staticClass:\"swiper\",attrs:{\"options\":_vm.swiperOptions}},[_vm._l((_vm.getFiltersFlatten().Make),function(make){return _c('swiper-slide',{key:make.TagValueId},[_c('v-chip',{attrs:{\"close\":\"\"},on:{\"click:close\":function($event){return _vm.removeItemUserFilters({ type: 'Make', item: make })}}},[_vm._v(\" \"+_vm._s(make.Value)+\" \")])],1)}),_vm._l((_vm.getFiltersFlatten().Model),function(model){return _c('swiper-slide',{key:model.TagValueId},[_c('v-chip',{attrs:{\"close\":\"\"},on:{\"click:close\":function($event){return _vm.removeItemUserFilters({ type: 'Model', item: model })}}},[_vm._v(\" \"+_vm._s(model.ParentTagValueLabel + \" \" + model.Value)+\" \")])],1)}),(_vm.getFiltersFlatten().Year.length)?_c('swiper-slide',[_c('v-chip',{attrs:{\"close\":\"\"},on:{\"click:close\":function($event){return _vm.removeItemUserFilters({ type: 'Year', item: [] })}}},[_vm._v(\" \"+_vm._s(_vm.getFiltersFlatten().Year[0])+\" - \"+_vm._s(_vm.getFiltersFlatten().Year[1])+\" \")])],1):_vm._e()],2)],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSearchFilterHorizontal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-babel/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-babel/node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSearchFilterHorizontal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheSearchFilterHorizontal.vue?vue&type=template&id=58386f9e&scoped=true&\"\nimport script from \"./TheSearchFilterHorizontal.vue?vue&type=script&lang=js&\"\nexport * from \"./TheSearchFilterHorizontal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TheSearchFilterHorizontal.vue?vue&type=style&index=0&id=58386f9e&prod&scoped=true&lang=scss&\"\nimport style1 from \"./TheSearchFilterHorizontal.vue?vue&type=style&index=1&id=58386f9e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"58386f9e\",\n null\n \n)\n\nexport default component.exports","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getDocument, getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n\n return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentWidth = base === 'window' ? window.innerWidth : containerEl.clientWidth;\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= currentWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n createElements: false,\n enabled: true,\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.enable = function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n };\n\n _proto.disable = function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n };\n\n _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n return $el.children(\".\" + swiper.params.wrapperClass);\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Virtual = {\n update: function update(force) {\n var swiper = this;\n var _swiper$params = swiper.params,\n slidesPerView = _swiper$params.slidesPerView,\n slidesPerGroup = _swiper$params.slidesPerGroup,\n centeredSlides = _swiper$params.centeredSlides;\n var _swiper$params$virtua = swiper.params.virtual,\n addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\n addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\n var _swiper$virtual = swiper.virtual,\n previousFrom = _swiper$virtual.from,\n previousTo = _swiper$virtual.to,\n slides = _swiper$virtual.slides,\n previousSlidesGrid = _swiper$virtual.slidesGrid,\n renderSlide = _swiper$virtual.renderSlide,\n previousOffset = _swiper$virtual.offset;\n swiper.updateActiveIndex();\n var activeIndex = swiper.activeIndex || 0;\n var offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n var slidesAfter;\n var slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n extend(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, offset + \"px\");\n }\n\n swiper.updateProgress();\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: function getSlides() {\n var slidesToRender = [];\n\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n\n return;\n }\n\n var prependIndexes = [];\n var appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\").remove();\n }\n }\n }\n\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (_i >= from && _i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(_i);\n } else {\n if (_i > previousTo) appendIndexes.push(_i);\n if (_i < previousFrom) prependIndexes.push(_i);\n }\n }\n }\n\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) {\n return b - a;\n }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, offset + \"px\");\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\n var params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(\"
\" + slide + \"
\");\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide: function appendSlide(slides) {\n var swiper = this;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slides) {\n var swiper = this;\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n var $cachedEl = cache[cachedIndex];\n var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide: function removeSlide(slidesIndexes) {\n var swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n var activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides: function removeAllSlides() {\n var swiper = this;\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n }\n};\nexport default {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n virtual: _extends({}, Virtual, {\n slides: swiper.params.virtual.slides,\n cache: {}\n })\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"virtual\");\n var overwriteParams = {\n watchSlidesProgress: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n if (!swiper.enabled) return;\n var window = getWindow();\n var document = getDocument();\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\" + swiper.params.slideClass).length > 0 && swiper.$el.parents(\".\" + swiper.params.slideActiveClass).length === 0) {\n return undefined;\n }\n\n var $el = swiper.$el;\n var swiperWidth = $el[0].clientWidth;\n var swiperHeight = $el[0].clientHeight;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n var document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n var document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n keyboard: _extends({\n enabled: false\n }, Keyboard)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n var document = getDocument();\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n var window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n var swiper = this;\n if (!swiper.enabled) return;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n var positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (_recentWheelEvents.length >= 15) {\n _recentWheelEvents.shift(); // only store the last N events\n\n }\n\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = _recentWheelEvents[0];\n\n _recentWheelEvents.push(_newEvent);\n\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n _recentWheelEvents.splice(0);\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.mousewheel.timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n var window = getWindow();\n\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n },\n click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, nextTick, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n var dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(\"translate3d(\" + newPos + \"px, 0, 0)\");\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n $dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\n $dragEl[0].style.height = newSize + \"px\";\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize\n });\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n },\n getPointerPosition: function getPointerPosition(e) {\n var swiper = this;\n\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el,\n dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n dragStartPos = scrollbar.dragStartPos;\n var positionRatio;\n positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n clearTimeout(swiper.scrollbar.dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n swiper.emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n\n if (!support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n\n if (!support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n swiper.params.scrollbar = createElementIfNotDefined($swiperEl, swiper.params.scrollbar, swiper.params.createElements, {\n el: 'swiper-scrollbar'\n });\n var params = swiper.params.scrollbar;\n if (!params.el) return;\n var $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find(\".\" + swiper.params.scrollbar.dragClass);\n\n if ($dragEl.length === 0) {\n $dragEl = $(\"
\");\n $el.append($dragEl);\n }\n\n extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n }\n};\nexport default {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n scrollbar: _extends({\n isTouched: false,\n timeout: null,\n dragTimeout: null\n }, Scrollbar)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update(swiper) {\n swiper.scrollbar.updateSize();\n },\n resize: function resize(swiper) {\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate(swiper) {\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate(swiper) {\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n swiper.scrollbar.setTransition(duration);\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.scrollbar.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy(swiper) {\n swiper.scrollbar.destroy();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\n var rtl = swiper.rtl;\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = parseInt(x, 10) * progress * rtlFactor + \"%\";\n } else {\n x = x * progress * rtlFactor + \"px\";\n }\n\n if (y.indexOf('%') >= 0) {\n y = parseInt(y, 10) * progress + \"%\";\n } else {\n y = y * progress + \"px\";\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px)\");\n } else {\n var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\");\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides,\n progress = swiper.progress,\n snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each(function (slideEl, slideIndex) {\n var slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition(duration) {\n if (duration === void 0) {\n duration = this.params.speed;\n }\n\n var swiper = this;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n }\n};\nexport default {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n parallax: _extends({}, Parallax)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init: function init(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, getTranslate } from '../../utils/utils';\nvar Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n return distance;\n },\n // Events\n onGestureStart: function onGestureStart(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(\".\" + swiper.params.slideClass);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') zoom.onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);\n }\n\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var device = swiper.device;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var device = swiper.device;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove: function onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n } // Define if we need image drag\n\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(\"translate3d(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle: function toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function _in(e) {\n var swiper = this;\n var window = getWindow();\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n gesture.$slideEl.addClass(\"\" + params.zoomedSlideClass);\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(\" + translateX + \"px, \" + translateY + \"px,0)\");\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n out: function out() {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(\"\" + params.zoomedSlideClass);\n gesture.$slideEl = undefined;\n },\n toggleGestures: function toggleGestures(method) {\n var swiper = this;\n var zoom = swiper.zoom;\n var selector = zoom.slideSelector,\n passive = zoom.passiveListener;\n swiper.$wrapperEl[method]('gesturestart', selector, zoom.onGestureStart, passive);\n swiper.$wrapperEl[method]('gesturechange', selector, zoom.onGestureChange, passive);\n swiper.$wrapperEl[method]('gestureend', selector, zoom.onGestureEnd, passive);\n },\n enableGestures: function enableGestures() {\n if (this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = true;\n this.zoom.toggleGestures('on');\n },\n disableGestures: function disableGestures() {\n if (!this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = false;\n this.zoom.toggleGestures('off');\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var support = swiper.support;\n var zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass;\n swiper.zoom.passiveListener = passiveListener;\n swiper.zoom.slideSelector = slideSelector; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) return;\n var support = swiper.support;\n swiper.zoom.enabled = false;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n var slideSelector = \".\" + swiper.params.slideClass; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n }\n};\nexport default {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n zoom: _extends({\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n }\n }, Zoom)\n });\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function get() {\n return scale;\n },\n set: function set(value) {\n if (scale !== value) {\n var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy(swiper) {\n swiper.zoom.disable();\n },\n touchStart: function touchStart(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(swiper, e) {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if (loadInDuplicate === void 0) {\n loadInDuplicate = true;\n }\n\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\") : swiper.slides.eq(index);\n var $images = $slideEl.find(\".\" + params.elementClass + \":not(.\" + params.loadedClass + \"):not(.\" + params.loadingClass + \")\");\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(function (imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n var $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', \"url(\\\"\" + background + \"\\\")\");\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(function (sourceEl) {\n var $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(\".\" + params.preloaderClass).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + swiper.params.slideDuplicateClass + \")\");\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children(\".\" + swiper.params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\");\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n swiperParams = swiper.params,\n slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n var slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(\".\" + swiperParams.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\").length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(\".\" + swiperParams.slideVisibleClass).each(function (slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (var _i = activeIndex + slidesPerView; _i < maxIndex; _i += 1) {\n if (slideExist(_i)) swiper.lazy.loadInSlide(_i);\n } // Prev Slides\n\n\n for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) {\n if (slideExist(_i2)) swiper.lazy.loadInSlide(_i2);\n }\n } else {\n var nextSlide = $wrapperEl.children(\".\" + swiperParams.slideNextClass);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n var prevSlide = $wrapperEl.children(\".\" + swiperParams.slidePrevClass);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n checkInViewOnLoad: function checkInViewOnLoad() {\n var window = getWindow();\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n var isWindow = $scrollElement[0] === window;\n var scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n var scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n var swiperOffset = swiper.$el.offset();\n var rtl = swiper.rtlTranslate;\n var inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n swiper.lazy.load();\n $scrollElement.off('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n } else if (!swiper.lazy.scrollHandlerAttached) {\n swiper.lazy.scrollHandlerAttached = true;\n $scrollElement.on('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n }\n }\n};\nexport default {\n name: 'lazy',\n params: {\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n lazy: _extends({\n initialImageLoaded: false\n }, Lazy)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n if (swiper.params.lazy.checkInView) {\n swiper.lazy.checkInViewOnLoad();\n } else {\n swiper.lazy.load();\n }\n }\n },\n scroll: function scroll(swiper) {\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n 'scrollbarDragMove resize _freeModeNoMomentumRelease': function lazyLoad(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart(swiper) {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(_setTranslate, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n var Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var Swiper = swiper.constructor;\n var controlled = swiper.controller.control;\n var i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(function () {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n controller: _extends({\n control: swiper.params.controller.control\n }, Controller)\n });\n },\n on: {\n update: function update(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(swiper, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(swiper, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, classesToSelector } from '../../utils/utils';\nvar A11y = {\n getRandomNumber: function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n var randomChar = function randomChar() {\n return Math.round(16 * Math.random()).toString(16);\n };\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n },\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElRoleDescription: function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n return $el;\n },\n addElControls: function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n addElId: function addElId($el, id) {\n $el.attr('id', id);\n return $el;\n },\n addElLive: function addElLive($el, live) {\n $el.attr('aria-live', live);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterOrSpaceKey: function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n var swiper = this;\n var params = swiper.params.a11y;\n var $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n if (swiper.params.loop || !swiper.navigation) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.a11y;\n swiper.$el.append(swiper.a11y.liveRegion); // Container\n\n var $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\n var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n swiper.a11y.addElId($wrapperEl, wrapperId);\n swiper.a11y.addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n swiper.a11y.addElRole($(swiper.slides), params.slideRole);\n swiper.slides.each(function (slideEl) {\n var $slideEl = $(slideEl);\n var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, $slideEl.index() + 1).replace(/\\{\\{slidesLength\\}\\}/, swiper.slides.length);\n swiper.a11y.addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n swiper.a11y.makeElFocusable($nextEl);\n\n if ($nextEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($nextEl, 'button');\n $nextEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n swiper.a11y.addElControls($nextEl, wrapperId);\n }\n\n if ($prevEl && $prevEl.length) {\n swiper.a11y.makeElFocusable($prevEl);\n\n if ($prevEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($prevEl, 'button');\n $prevEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n swiper.a11y.addElControls($prevEl, wrapperId);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n }\n};\nexport default {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends({}, A11y, {\n liveRegion: $(\"\")\n })\n });\n },\n on: {\n afterInit: function afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar History = {\n init: function init() {\n var swiper = this;\n var window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues(swiper.params.url);\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues(swiper.params.url);\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues: function getPathValues(urlOverride) {\n var window = getWindow();\n var location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n var pathArray = location.pathname.slice(1).split('/').filter(function (part) {\n return part !== '';\n });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return {\n key: key,\n value: value\n };\n },\n setHistory: function setHistory(key, index) {\n var swiper = this;\n var window = getWindow();\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n var location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n var slide = swiper.slides.eq(index);\n var value = History.slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n var root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = root + \"/\" + key + \"/\" + value;\n } else if (!location.pathname.includes(key)) {\n value = key + \"/\" + value;\n }\n\n var currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value: value\n }, null, value);\n } else {\n window.history.pushState({\n value: value\n }, null, value);\n }\n },\n slugify: function slugify(text) {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = History.slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n }\n};\nexport default {\n name: 'history',\n params: {\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n history: _extends({}, History)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar HashNavigation = {\n onHashCange: function onHashCange() {\n var swiper = this;\n var document = getDocument();\n swiper.emit('hashChange');\n var newHash = document.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-hash=\\\"\" + newHash + \"\\\"]\").index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n var window = getWindow();\n var document = getDocument();\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, \"#\" + swiper.slides.eq(swiper.activeIndex).attr('data-hash') || '');\n swiper.emit('hashSet');\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init: function init() {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n swiper.hashNavigation.initialized = true;\n var hash = document.location.hash.replace('#', '');\n\n if (hash) {\n var speed = 0;\n\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n }\n};\nexport default {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n hashNavigation: _extends({\n initialized: false\n }, HashNavigation)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n onMouseEnter: function onMouseEnter() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n },\n onMouseLeave: function onMouseLeave() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n },\n attachMouseEvents: function attachMouseEvents() {\n var swiper = this;\n\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n }\n },\n detachMouseEvents: function detachMouseEvents() {\n var swiper = this;\n swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n swiper.autoplay.attachMouseEvents();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n swiper.autoplay.detachMouseEvents();\n\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl.css({\n opacity: slideOpacity\n }).transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n fadeEffect: _extends({}, Fade)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"fade\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides,\n swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n rtl = swiper.rtlTranslate,\n swiperSize = swiper.size,\n browser = swiper.browser;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: swiperWidth + \"px\"\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var transform = \"rotateX(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + tz + \"px)\";\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
\");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
\");\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-moz-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-ms-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n 'transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\"\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\"translate3d(0px, \" + (swiperWidth / 2 + params.shadowOffset) + \"px, \" + -swiperWidth / 2 + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + params.shadowScale + \")\");\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var offset = params.shadowOffset;\n $cubeShadowEl.transform(\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + (swiperHeight / 2 + offset) + \"px, \" + -swiperHeight / 2 / scale2 + \"px) rotateX(-90deg)\");\n }\n }\n\n var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(\"translate3d(0px,0,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\");\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var $el = swiper.$el,\n slides = swiper.slides;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n }\n};\nexport default {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n cubeEffect: _extends({}, Cube)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"cube\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n var offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -offset;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
\");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
\");\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n $slideEl.transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n activeIndex = swiper.activeIndex,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false; // eslint-disable-next-line\n\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return; // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n flipEffect: _extends({}, Flip)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"flip\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth; // Each slide offset from center\n\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n var translateZ = -translate * Math.abs(offsetMultiplier);\n var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n var slideTransform = \"translate3d(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) scale(\" + scale + \")\";\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(\"
\");\n $slideEl.append($shadowBeforeEl);\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(\"
\");\n $slideEl.append($shadowAfterEl);\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n};\nexport default {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n coverflowEffect: _extends({}, Coverflow)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"coverflow\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, isObject, bindModuleMethods } from '../../utils/utils';\nimport $ from '../../utils/dom';\nvar Thumbs = {\n init: function init() {\n var swiper = this;\n var thumbsParams = swiper.params.thumbs;\n if (swiper.thumbs.initialized) return false;\n swiper.thumbs.initialized = true;\n var SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false\n }));\n swiper.thumbs.swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n return true;\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n var slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n },\n update: function update(initial) {\n var swiper = this;\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n var direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + (swiper.realIndex + i) + \"\\\"]\").addClass(thumbActiveClass);\n }\n } else {\n for (var _i = 0; _i < thumbsToActivate; _i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass);\n }\n }\n }\n};\nexport default {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n thumbs: _extends({\n swiper: null,\n initialized: false\n }, Thumbs)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n var thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update: function update(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize: function resize(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition: function setTransition(swiper, duration) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy(swiper) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n }\n }\n};","\n/*!\n * vue-awesome-swiper v4.1.1\n * Copyright (c) Surmon. All rights reserved.\n * Released under the MIT License.\n * Surmon \n */\n\n(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?f(exports,require('swiper'),require('vue')):typeof define==='function'&&define.amd?define(['exports','swiper','vue'],f):(g=g||self,f(g.VueAwesomeSwiper={},g.Swiper,g.Vue));}(this,(function(exports, SwiperClass, Vue){'use strict';SwiperClass=SwiperClass&&Object.prototype.hasOwnProperty.call(SwiperClass,'default')?SwiperClass['default']:SwiperClass;Vue=Vue&&Object.prototype.hasOwnProperty.call(Vue,'default')?Vue['default']:Vue;/**\r\n * @file vue-awesome-swiper\r\n * @module constants\r\n * @author Surmon \r\n */\r\nvar CoreNames;\r\n(function (CoreNames) {\r\n CoreNames[\"SwiperComponent\"] = \"Swiper\";\r\n CoreNames[\"SwiperSlideComponent\"] = \"SwiperSlide\";\r\n CoreNames[\"SwiperDirective\"] = \"swiper\";\r\n CoreNames[\"SwiperInstance\"] = \"$swiper\";\r\n})(CoreNames || (CoreNames = {}));\r\nvar DEFAULT_CLASSES = Object.freeze({\r\n containerClass: 'swiper-container',\r\n wrapperClass: 'swiper-wrapper',\r\n slideClass: 'swiper-slide'\r\n});\r\nvar ComponentEvents;\r\n(function (ComponentEvents) {\r\n ComponentEvents[\"Ready\"] = \"ready\";\r\n ComponentEvents[\"ClickSlide\"] = \"clickSlide\";\r\n})(ComponentEvents || (ComponentEvents = {}));\r\nvar ComponentPropNames;\r\n(function (ComponentPropNames) {\r\n ComponentPropNames[\"AutoUpdate\"] = \"autoUpdate\";\r\n ComponentPropNames[\"AutoDestroy\"] = \"autoDestroy\";\r\n ComponentPropNames[\"DeleteInstanceOnDestroy\"] = \"deleteInstanceOnDestroy\";\r\n ComponentPropNames[\"CleanupStylesOnDestroy\"] = \"cleanupStylesOnDestroy\";\r\n})(ComponentPropNames || (ComponentPropNames = {}));\r\n// https://swiperjs.com/api/#events\r\nvar SWIPER_EVENTS = [\r\n 'init',\r\n 'beforeDestroy',\r\n 'slideChange',\r\n 'slideChangeTransitionStart',\r\n 'slideChangeTransitionEnd',\r\n 'slideNextTransitionStart',\r\n 'slideNextTransitionEnd',\r\n 'slidePrevTransitionStart',\r\n 'slidePrevTransitionEnd',\r\n 'transitionStart',\r\n 'transitionEnd',\r\n 'touchStart',\r\n 'touchMove',\r\n 'touchMoveOpposite',\r\n 'sliderMove',\r\n 'touchEnd',\r\n 'click',\r\n 'tap',\r\n 'doubleTap',\r\n 'imagesReady',\r\n 'progress',\r\n 'reachBeginning',\r\n 'reachEnd',\r\n 'fromEdge',\r\n 'setTranslate',\r\n 'setTransition',\r\n 'resize',\r\n 'observerUpdate',\r\n 'beforeLoopFix',\r\n 'loopFix'\r\n];/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module utils\r\n * @author Surmon \r\n */\r\nvar kebabcase = function (string) {\r\n return string\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/\\s+/g, '-')\r\n .toLowerCase();\r\n};/**\r\n * @file vue-awesome-swiper\r\n * @module event\r\n * @author Surmon \r\n */\r\nvar handleClickSlideEvent = function (swiper, event, emit) {\r\n var _a, _b, _c;\r\n if (swiper && !(swiper.destroyed)) {\r\n var eventPath = ((_a = event.composedPath) === null || _a === void 0 ? void 0 : _a.call(event)) || event.path;\r\n if ((event === null || event === void 0 ? void 0 : event.target) && eventPath) {\r\n var slides_1 = Array.from(swiper.slides);\r\n var paths = Array.from(eventPath);\r\n // Click slide || slide[children]\r\n if (slides_1.includes(event.target) || paths.some(function (item) { return slides_1.includes(item); })) {\r\n var clickedIndex = swiper.clickedIndex;\r\n var reallyIndex = Number((_c = (_b = swiper.clickedSlide) === null || _b === void 0 ? void 0 : _b.dataset) === null || _c === void 0 ? void 0 : _c.swiperSlideIndex);\r\n var reallyIndexValue = Number.isInteger(reallyIndex) ? reallyIndex : null;\r\n emit(ComponentEvents.ClickSlide, clickedIndex, reallyIndexValue);\r\n emit(kebabcase(ComponentEvents.ClickSlide), clickedIndex, reallyIndexValue);\r\n }\r\n }\r\n }\r\n};\r\nvar bindSwiperEvents = function (swiper, emit) {\r\n SWIPER_EVENTS.forEach(function (eventName) {\r\n swiper.on(eventName, function () {\n var arguments$1 = arguments;\n\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments$1[_i];\r\n }\r\n emit.apply(void 0, __spreadArrays([eventName], args));\r\n var kebabcaseName = kebabcase(eventName);\r\n if (kebabcaseName !== eventName) {\r\n emit.apply(void 0, __spreadArrays([kebabcaseName], args));\r\n }\r\n });\r\n });\r\n};/**\r\n * @file vue-awesome-swiper\r\n * @module directive\r\n * @author Surmon \r\n */\r\nvar INSTANCE_NAME_KEY = 'instanceName';\r\nfunction getDirective(SwiperClass, globalOptions) {\r\n var getStandardisedOptionByAttrs = function (vnode, key) {\r\n var _a, _b, _c, _d;\r\n var value = (_b = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[key];\r\n return value !== undefined\r\n ? value\r\n : (_d = (_c = vnode.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d[kebabcase(key)];\r\n };\r\n // Get swiper instace name in directive\r\n var getSwiperInstanceName = function (element, binding, vnode) {\r\n return (binding.arg ||\r\n getStandardisedOptionByAttrs(vnode, INSTANCE_NAME_KEY) ||\r\n element.id ||\r\n CoreNames.SwiperInstance);\r\n };\r\n var getSwiperInstance = function (element, binding, vnode) {\r\n var instanceName = getSwiperInstanceName(element, binding, vnode);\r\n return vnode.context[instanceName] || null;\r\n };\r\n var getSwipeOptions = function (binding) {\r\n return binding.value || globalOptions;\r\n };\r\n var getBooleanValueByInput = function (input) {\r\n return [true, undefined, null, ''].includes(input);\r\n };\r\n // Emit event in Vue directive\r\n var getEventEmiter = function (vnode) {\r\n var _a, _b;\r\n var handlers = ((_a = vnode.data) === null || _a === void 0 ? void 0 : _a.on) || ((_b = vnode.componentOptions) === null || _b === void 0 ? void 0 : _b.listeners);\r\n return function (name) {\n var arguments$1 = arguments;\n\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments$1[_i];\r\n }\r\n var _a;\r\n var handle = (_a = handlers) === null || _a === void 0 ? void 0 : _a[name];\r\n if (handle) {\r\n handle.fns.apply(handle, args);\r\n }\r\n };\r\n };\r\n return {\r\n // Init\r\n bind: function (element, binding, vnode) {\r\n // auto class name\r\n if (element.className.indexOf(DEFAULT_CLASSES.containerClass) === -1) {\r\n element.className += ((element.className ? ' ' : '') + DEFAULT_CLASSES.containerClass);\r\n }\r\n // bind click event\r\n element.addEventListener('click', function (event) {\r\n var emitEvent = getEventEmiter(vnode);\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n handleClickSlideEvent(swiper, event, emitEvent);\r\n });\r\n },\r\n // DOM inserted\r\n inserted: function (element, binding, vnode) {\r\n var context = vnode.context;\r\n var swiperOptions = getSwipeOptions(binding);\r\n var instanceName = getSwiperInstanceName(element, binding, vnode);\r\n var emitEvent = getEventEmiter(vnode);\r\n var vueContext = context;\r\n var swiper = vueContext === null || vueContext === void 0 ? void 0 : vueContext[instanceName];\r\n // Swiper will destroy but not delete instance, when used \r\n if (!swiper || swiper.destroyed) {\r\n swiper = new SwiperClass(element, swiperOptions);\r\n vueContext[instanceName] = swiper;\r\n bindSwiperEvents(swiper, emitEvent);\r\n emitEvent(ComponentEvents.Ready, swiper);\r\n // MARK: Reinstance when the nexttick with \r\n // Vue.nextTick(instancing) | setTimeout(instancing)\r\n }\r\n },\r\n // On options changed or DOM updated\r\n componentUpdated: function (element, binding, vnode) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n var autoUpdate = getStandardisedOptionByAttrs(vnode, ComponentPropNames.AutoUpdate);\r\n if (getBooleanValueByInput(autoUpdate)) {\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n if (swiper) {\r\n var swiperOptions = getSwipeOptions(binding);\r\n var isLoop = swiperOptions.loop;\r\n if (isLoop) {\r\n (_b = (_a = swiper) === null || _a === void 0 ? void 0 : _a.loopDestroy) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n (_c = swiper === null || swiper === void 0 ? void 0 : swiper.update) === null || _c === void 0 ? void 0 : _c.call(swiper);\r\n (_e = (_d = swiper.navigation) === null || _d === void 0 ? void 0 : _d.update) === null || _e === void 0 ? void 0 : _e.call(_d);\r\n (_g = (_f = swiper.pagination) === null || _f === void 0 ? void 0 : _f.render) === null || _g === void 0 ? void 0 : _g.call(_f);\r\n (_j = (_h = swiper.pagination) === null || _h === void 0 ? void 0 : _h.update) === null || _j === void 0 ? void 0 : _j.call(_h);\r\n if (isLoop) {\r\n (_l = (_k = swiper) === null || _k === void 0 ? void 0 : _k.loopCreate) === null || _l === void 0 ? void 0 : _l.call(_k);\r\n (_m = swiper === null || swiper === void 0 ? void 0 : swiper.update) === null || _m === void 0 ? void 0 : _m.call(swiper);\r\n }\r\n }\r\n }\r\n },\r\n // Destroy this directive\r\n unbind: function (element, binding, vnode) {\r\n var _a;\r\n var autoDestroy = getStandardisedOptionByAttrs(vnode, ComponentPropNames.AutoDestroy);\r\n if (getBooleanValueByInput(autoDestroy)) {\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n if (swiper && swiper.initialized) {\r\n (_a = swiper === null || swiper === void 0 ? void 0 : swiper.destroy) === null || _a === void 0 ? void 0 : _a.call(swiper, getBooleanValueByInput(getStandardisedOptionByAttrs(vnode, ComponentPropNames.DeleteInstanceOnDestroy)), getBooleanValueByInput(getStandardisedOptionByAttrs(vnode, ComponentPropNames.CleanupStylesOnDestroy)));\r\n }\r\n }\r\n }\r\n };\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module SwiperComponent\r\n * @author Surmon \r\n */\r\nvar SlotNames;\r\n(function (SlotNames) {\r\n SlotNames[\"ParallaxBg\"] = \"parallax-bg\";\r\n SlotNames[\"Pagination\"] = \"pagination\";\r\n SlotNames[\"Scrollbar\"] = \"scrollbar\";\r\n SlotNames[\"PrevButton\"] = \"button-prev\";\r\n SlotNames[\"NextButton\"] = \"button-next\";\r\n})(SlotNames || (SlotNames = {}));\r\nfunction getSwiperComponent(SwiperClass) {\r\n var _a;\r\n return Vue.extend({\r\n name: CoreNames.SwiperComponent,\r\n props: (_a = {\r\n defaultOptions: {\r\n type: Object,\r\n required: false,\r\n default: function () { return ({}); }\r\n },\r\n // eslint-disable-next-line vue/require-default-prop\r\n options: {\r\n type: Object,\r\n required: false\r\n }\r\n },\r\n _a[ComponentPropNames.AutoUpdate] = {\r\n type: Boolean,\r\n default: true\r\n },\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/550/files\r\n _a[ComponentPropNames.AutoDestroy] = {\r\n type: Boolean,\r\n default: true\r\n },\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/388\r\n _a[ComponentPropNames.DeleteInstanceOnDestroy] = {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n _a[ComponentPropNames.CleanupStylesOnDestroy] = {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n _a),\r\n data: function () {\r\n var _a;\r\n return _a = {},\r\n _a[CoreNames.SwiperInstance] = null,\r\n _a;\r\n },\r\n computed: {\r\n swiperInstance: {\r\n cache: false,\r\n set: function (swiper) {\r\n this[CoreNames.SwiperInstance] = swiper;\r\n },\r\n get: function () {\r\n return this[CoreNames.SwiperInstance];\r\n }\r\n },\r\n swiperOptions: function () {\r\n return this.options || this.defaultOptions;\r\n },\r\n wrapperClass: function () {\r\n return this.swiperOptions.wrapperClass || DEFAULT_CLASSES.wrapperClass;\r\n }\r\n },\r\n methods: {\r\n // Feature: click event\r\n handleSwiperClick: function (event) {\r\n handleClickSlideEvent(this.swiperInstance, event, this.$emit.bind(this));\r\n },\r\n autoReLoopSwiper: function () {\r\n var _a, _b;\r\n if (this.swiperInstance && this.swiperOptions.loop) {\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/593\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/544\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/545/files\r\n var swiper = this.swiperInstance;\r\n (_a = swiper === null || swiper === void 0 ? void 0 : swiper.loopDestroy) === null || _a === void 0 ? void 0 : _a.call(swiper);\r\n (_b = swiper === null || swiper === void 0 ? void 0 : swiper.loopCreate) === null || _b === void 0 ? void 0 : _b.call(swiper);\r\n }\r\n },\r\n updateSwiper: function () {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n if (this[ComponentPropNames.AutoUpdate] && this.swiperInstance) {\r\n this.autoReLoopSwiper();\r\n (_b = (_a = this.swiperInstance) === null || _a === void 0 ? void 0 : _a.update) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n (_d = (_c = this.swiperInstance.navigation) === null || _c === void 0 ? void 0 : _c.update) === null || _d === void 0 ? void 0 : _d.call(_c);\r\n (_f = (_e = this.swiperInstance.pagination) === null || _e === void 0 ? void 0 : _e.render) === null || _f === void 0 ? void 0 : _f.call(_e);\r\n (_h = (_g = this.swiperInstance.pagination) === null || _g === void 0 ? void 0 : _g.update) === null || _h === void 0 ? void 0 : _h.call(_g);\r\n }\r\n },\r\n destroySwiper: function () {\r\n var _a, _b;\r\n if (this[ComponentPropNames.AutoDestroy] && this.swiperInstance) {\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/341\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/340\r\n if (this.swiperInstance.initialized) {\r\n (_b = (_a = this.swiperInstance) === null || _a === void 0 ? void 0 : _a.destroy) === null || _b === void 0 ? void 0 : _b.call(_a, this[ComponentPropNames.DeleteInstanceOnDestroy], this[ComponentPropNames.CleanupStylesOnDestroy]);\r\n }\r\n }\r\n },\r\n initSwiper: function () {\r\n this.swiperInstance = new SwiperClass(this.$el, this.swiperOptions);\r\n bindSwiperEvents(this.swiperInstance, this.$emit.bind(this));\r\n this.$emit(ComponentEvents.Ready, this.swiperInstance);\r\n }\r\n },\r\n mounted: function () {\r\n if (!this.swiperInstance) {\r\n this.initSwiper();\r\n }\r\n },\r\n // Update swiper when the parent component activated with `keep-alive`.\r\n activated: function () {\r\n this.updateSwiper();\r\n },\r\n updated: function () {\r\n this.updateSwiper();\r\n },\r\n beforeDestroy: function () {\r\n // https://github.com/surmon-china/vue-awesome-swiper/commit/2924a9d4d3d1cf51c0d46076410b1f804b2b8a43#diff-7f4e0261ac562c0f354cb91a1ca8864f\r\n this.$nextTick(this.destroySwiper);\r\n },\r\n render: function (createElement) {\r\n return createElement('div', {\r\n staticClass: DEFAULT_CLASSES.containerClass,\r\n on: {\r\n click: this.handleSwiperClick\r\n }\r\n }, [\r\n this.$slots[SlotNames.ParallaxBg],\r\n createElement('div', {\r\n class: this.wrapperClass\r\n }, this.$slots.default),\r\n this.$slots[SlotNames.Pagination],\r\n this.$slots[SlotNames.PrevButton],\r\n this.$slots[SlotNames.NextButton],\r\n this.$slots[SlotNames.Scrollbar]\r\n ]);\r\n }\r\n });\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module SwiperSlideComponent\r\n * @author Surmon \r\n */\r\nvar SwiperSlideComponent = Vue.extend({\r\n name: CoreNames.SwiperSlideComponent,\r\n computed: {\r\n slideClass: function () {\r\n var _a, _b;\r\n return ((_b = (_a = this.$parent) === null || _a === void 0 ? void 0 : _a.swiperOptions) === null || _b === void 0 ? void 0 : _b.slideClass) || DEFAULT_CLASSES.slideClass;\r\n }\r\n },\r\n methods: {\r\n update: function () {\r\n var _a;\r\n var parent = this.$parent;\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/632\r\n if (parent[ComponentPropNames.AutoUpdate]) {\r\n (_a = parent === null || parent === void 0 ? void 0 : parent.swiperInstance) === null || _a === void 0 ? void 0 : _a.update();\r\n }\r\n }\r\n },\r\n mounted: function () {\r\n this.update();\r\n },\r\n updated: function () {\r\n this.update();\r\n },\r\n render: function (createElement) {\r\n return createElement('div', {\r\n class: this.slideClass\r\n }, this.$slots.default);\r\n }\r\n});/**\r\n * @file vue-awesome-swiper\r\n * @module exporter\r\n * @author Surmon \r\n */\r\nvar getInstaller = function (SwiperClass) {\r\n var install = function (Vue, globalOptions) {\r\n if (install.installed)\r\n { return; }\r\n var SwiperComponent = getSwiperComponent(SwiperClass);\r\n if (globalOptions) {\r\n SwiperComponent.options.props.defaultOptions.default = function () { return globalOptions; };\r\n }\r\n Vue.component(CoreNames.SwiperComponent, SwiperComponent);\r\n Vue.component(CoreNames.SwiperSlideComponent, SwiperSlideComponent);\r\n Vue.directive(CoreNames.SwiperDirective, getDirective(SwiperClass, globalOptions));\r\n install.installed = true;\r\n };\r\n return install;\r\n};\r\nfunction exporter(SwiperClass) {\r\n var _a;\r\n return _a = {\r\n version: '4.1.1',\r\n install: getInstaller(SwiperClass),\r\n directive: getDirective(SwiperClass)\r\n },\r\n _a[CoreNames.SwiperComponent] = getSwiperComponent(SwiperClass),\r\n _a[CoreNames.SwiperSlideComponent] = SwiperSlideComponent,\r\n _a;\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module default-export\r\n * @author Surmon \r\n */\r\nvar VueAwesomeSwiper = exporter(SwiperClass);\r\nvar version = VueAwesomeSwiper.version;\r\nvar install = VueAwesomeSwiper.install;\r\nvar directive = VueAwesomeSwiper.directive;\r\nvar Swiper = VueAwesomeSwiper.Swiper;\r\nvar SwiperSlide = VueAwesomeSwiper.SwiperSlide;exports.Swiper=Swiper;exports.SwiperSlide=SwiperSlide;exports.default=VueAwesomeSwiper;exports.directive=directive;exports.install=install;exports.version=version;Object.defineProperty(exports,'__esModule',{value:true});})));","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/sass-loader/dist/cjs.js??ref--14-0!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSearchFilterHorizontal.vue?vue&type=style&index=0&id=58386f9e&prod&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/sass-loader/dist/cjs.js??ref--14-0!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSearchFilterHorizontal.vue?vue&type=style&index=1&id=58386f9e&prod&lang=scss&\""],"sourceRoot":""}