{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./Static/javascript/modules/shop-carousel.ts","webpack:///./Static/javascript/modules/shop-google-analytics.ts","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/swiper/esm/components/a11y/a11y.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./node_modules/swiper/esm/components/controller/controller.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/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/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/images/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/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.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/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.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/updateSlidesClasses.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/effect-coverflow/effect-coverflow.js","webpack:///./node_modules/swiper/esm/components/effect-cube/effect-cube.js","webpack:///./node_modules/swiper/esm/components/effect-fade/effect-fade.js","webpack:///./node_modules/swiper/esm/components/effect-flip/effect-flip.js","webpack:///./node_modules/swiper/esm/components/hash-navigation/hash-navigation.js","webpack:///./node_modules/swiper/esm/components/history/history.js","webpack:///./node_modules/swiper/esm/components/keyboard/keyboard.js","webpack:///./node_modules/swiper/esm/components/lazy/lazy.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/parallax/parallax.js","webpack:///./node_modules/swiper/esm/components/scrollbar/scrollbar.js","webpack:///./node_modules/swiper/esm/components/thumbs/thumbs.js","webpack:///./node_modules/swiper/esm/components/virtual/virtual.js","webpack:///./node_modules/swiper/esm/components/zoom/zoom.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/swiper.esm.js"],"names":["_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","__proto__","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","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","obj","proto","defineProperty","Dom7","_Array","items","_this","concat","Array","arrayFlat","arr","res","forEach","el","isArray","arrayFilter","callback","filter","arrayUnique","uniqueArray","i","length","toCamelCase","string","toLowerCase","replace","match","group","toUpperCase","qsa","selector","context","querySelectorAll","$","window","getWindow","document","getDocument","html","trim","toCreate","tempParent","createElement","innerHTML","childNodes","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","attrs","getAttribute","setAttribute","attrName","removeAttr","removeAttribute","prop","props","propName","data","key","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","_attr","name","parseFloat","val","multiple","nodeName","values","selectedOptions","_i","_el","j","options","selected","transform","style","transition","duration","transitionDuration","on","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","target","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","events","event","dom7Listeners","proxyListener","addEventListener","_event","dom7LiveListeners","off","_len6","_key6","handlers","handler","removeEventListener","splice","dom7proxy","once","dom","_len7","_key7","eventName","onceHandler","_len8","eventArgs","_key8","trigger","_len9","_key9","CustomEvent","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","fireCallBack","animationEnd","width","innerWidth","css","outerWidth","includeMargins","_styles","styles","offsetWidth","getPropertyValue","height","innerHeight","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","body","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","hide","display","show","getComputedStyle","_prop","each","index","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","appendTo","parent","prepend","insertBefore","prependTo","before","parentNode","cloneNode","insertAfter","after","nextSibling","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","siblings","_parent","closest","find","foundElements","found","children","removeChild","detach","_len10","els","_key10","toAdd","empty","scrollTo","easing","animate","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","getTime","progress","easeProgress","cos","PI","done","requestAnimationFrame","initialProps","initialParams","assign","params","elements","animating","que","easingProgress","stop","frameId","cancelAnimationFrame","element","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","keys","currentValue","elementsDone","propsDone","began","begin","_el$prop","animateInstance","noTrigger","shortcut","eventHandler","click","blur","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","isObject","extend","src","ssrDocument","activeElement","querySelector","getElementById","createEvent","initEvent","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","Image","screen","setTimeout","clearTimeout","matchMedia","id","win","_extends","source","hasOwnProperty","A11y","getRandomNumber","size","randomChar","round","random","repeat","makeElFocusable","$el","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","label","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","keyCode","swiper","a11y","$targetEl","navigation","$nextEl","isEnd","loop","slideNext","notify","lastSlideMessage","nextSlideMessage","$prevEl","isBeginning","slidePrev","firstSlideMessage","prevSlideMessage","pagination","classesToSelector","bulletClass","message","notification","liveRegion","updateNavigation","_swiper$navigation","updatePagination","clickable","bullets","bulletEl","$bulletEl","renderBullet","paginationBulletMessage","init","$containerEl","containerRoleDescriptionMessage","containerMessage","$wrapperEl","wrapperId","autoplay","enabled","itemRoleDescriptionMessage","slides","slideRole","slidesLength","slideDuplicateClass","slideEl","$slideEl","slideIndex","parseInt","ariaLabelMessage","slideLabelMessage","tagName","destroy","notificationClass","bindModuleMethods","afterInit","toEdge","fromEdge","paginationUpdate","Autoplay","run","$activeSlideEl","activeIndex","delay","timeout","nextTick","autoplayResult","reverseDirection","loopFix","speed","emit","stopOnLastSlide","slideTo","cssMode","running","start","pause","paused","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","destroyed","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","beforeTransitionStart","internal","sliderFirstMove","touchEnd","Controller","LinearSpline","x","y","binarySearch","maxIndex","minIndex","guess","array","lastIndex","i1","i3","interpolate","x2","getInterpolateFunction","controller","spline","slidesGrid","snapGrid","setTranslate","_setTranslate","byController","controlled","control","multiplier","controlledTranslate","Swiper","setControlledTranslate","translate","rtlTranslate","by","maxTranslate","minTranslate","inverse","updateProgress","updateActiveIndex","updateSlidesClasses","setTransition","setControlledTransition","transitionStart","autoHeight","updateAutoHeight","update","observerUpdate","getBreakpoint","breakpoints","base","containerEl","breakpoint","currentHeight","clientHeight","points","point","minRatio","substr","sort","b","_points$i","clientWidth","setBreakpoint","initialized","_swiper$loopedSlides","loopedSlides","breakpointsBase","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","slidesPerColumn","isMultiRow","wasEnabled","containerModifierClass","emitContainerClasses","slidesPerColumnFill","directionChanged","direction","needsReLoop","slidesPerView","changeDirection","isEnabled","allowTouchMove","allowSlideNext","allowSlidePrev","disable","enable","loopDestroy","loopCreate","updateSlides","checkOverflow","wasLocked","isLocked","lastSlidePosition","slidesOffsetBefore","spaceBetween","slidesOffsetAfter","prepareClasses","entries","prefix","resultClasses","item","addClasses","rtl","device","support","suffixes","pointerEvents","touch","freeMode","android","ios","join","removeClasses","_defineProperties","descriptor","_createClass","protoProps","staticProps","prototypes","modular","eventsEmitter","slide","grabCursor","manipulation","images","extendedDefaults","slice","swipers","newParams","__swiper__","getSupport","getDevice","browser","getBrowser","eventsListeners","eventsAnyListeners","modules","moduleName","module","moduleParamName","moduleParams","auto","swiperParams","defaults","useParams","passedParams","onAny","slidesSizesGrid","isHorizontal","isVertical","realIndex","previousTranslate","velocity","touchEvents","desktop","touchEventsTouch","move","end","cancel","touchEventsDesktop","simulateTouch","touchEventsData","isTouched","isMoved","allowTouchCallbacks","touchStartTime","isScrolling","currentTranslate","startTranslate","allowThresholdMove","focusableElements","lastClickTime","now","clickTimeout","velocities","allowMomentumBounce","isTouchEvent","startMoving","allowClick","touches","startX","startY","currentX","currentY","diff","imagesToLoad","imagesLoaded","useModules","_proto","setGrabCursor","unsetGrabCursor","setProgress","current","translateTo","_emitClasses","getSlideClasses","slideClass","emitSlidesClasses","updates","slidesPerViewDynamic","swiperSize","spv","centeredSlides","slideSize","swiperSlideSize","breakLoop","_i2","updateSize","translateValue","newTranslate","translated","watchOverflow","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","wrapperClass","getWrapper","shadowRoot","createElements","wrapper","wrapperEl","dir","wrongRTL","preloadImages","initialSlide","runCallbacksOnInit","attachEvents","deleteInstance","cleanStyles","detachEvents","slideVisibleClass","slideActiveClass","slideNextClass","slidePrevClass","deleteProps","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","Resize","Observer","touchEventsTarget","updateOnWindowResize","resizeObserver","nested","preventInteractionOnTransition","url","edgeSwipeDetection","edgeSwipeThreshold","freeModeMomentum","freeModeMomentumRatio","freeModeMomentumBounce","freeModeMomentumBounceRatio","freeModeMomentumVelocityRatio","freeModeSticky","freeModeMinimumVelocity","setWrapperSize","virtualTranslate","effect","slidesPerGroup","slidesPerGroupSkip","centeredSlidesBounds","normalizeSlideIndex","centerInsufficientSlides","roundLengths","touchRatio","touchAngle","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","resistance","resistanceRatio","watchSlidesProgress","watchSlidesVisibility","preventClicks","preventClicksPropagation","slideToClickedSlide","updateOnImagesReady","loopAdditionalSlides","loopFillGroupWithBlank","loopPreventsSlide","swipeHandler","noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","slideBlankClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","priority","method","__emitterProxy","offAny","eventsArray","dummyEventAttached","dummyEventListener","onTouchStart","onTouchMove","onTouchEnd","onScroll","onClick","passiveListener","passive","onResize","preventDefault","stopPropagation","stopImmediatePropagation","newProgress","translatesDiff","originalEvent","touchEndTime","timeDiff","updateClickedSlide","swipeDirection","currentPos","lastMoveEvent","pop","velocityEvent","distance","position","abs","momentumDuration","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","nextSlide","moveDistance","currentSlideSize","slideToClosest","stopIndex","groupSize","_increment","ratio","increment","isNavButtonTarget","nextEl","prevEl","type","targetTouch","targetTouches","changedTouches","pageX","pageY","preventedByNestedSwiper","diffX","diffY","sqrt","pow","atan2","getTranslate","disableParentSwiper","closestElement","__closestFrom","assignedSlot","getRootNode","which","button","swipingClassHasValue","path","isTargetShadow","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","shouldPreventDefault","isContentEditable","moving","cursor","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","onload","onerror","currentSrc","blankSlidesNum","blankNode","ceil","prependSlides","appendSlides","newIndex","snapTranslate","slideChanged","_slideChanged","addSlide","activeIndexBuffer","baseLength","prependSlide","appendSlide","newActiveIndex","slidesBuffer","currentSlide","observer","removeSlide","removeAllSlides","slidesIndexes","indexToRemove","instanceParams","modulesParams","moduleEventName","slideToLoop","slideReset","runCallbacks","_clientLeft","normalize","floor","normalizedTranslate","normalizedSnapGrid","prevSnap","snap","prevIndex","initial","Error","indexAsNumber","isValidNumber","isFinite","previousIndex","skip","snapIndex","normalizedGird","normalizedGridNext","isH","t","_wrapperEl$scrollTo","behavior","onSlideToWrapperTransitionEnd","slideToIndex","clickedIndex","clickedSlide","currentSnap","nextSnap","_currentSnap","getSwiperTranslate","axis","z","translateBounds","onTranslateToWrapperTransitionEnd","updateSlidesOffset","updateSlidesProgress","previousRealIndex","previousSnapIndex","activeSlides","isVirtual","virtual","newHeight","getSlideByIndex","visibleSlides","slideFound","wasBeginning","wasEnd","Number","isNaN","getDirectionLabel","property","getDirectionPropertyValue","node","previousSlidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","slidesNumberEvenToRows","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","_slide$","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesGridItem","_slidesGridItem","_slides$filter$css","_","allSlidesSize","slideSizeValue","maxSnap","_allSlidesSize","allSlidesOffset","activeSlide","prevSlide","swiperSlideOffset","offsetLeft","offsetTop","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","isVisible","Coverflow","swiperWidth","swiperHeight","coverflowEffect","center","rotate","depth","slideOffset","offsetMultiplier","modifier","rotateY","rotateX","translateZ","stretch","translateY","translateX","scale","slideTransform","zIndex","slideShadows","$shadowBeforeEl","$shadowAfterEl","opacity","beforeInit","Cube","cubeEffect","wrapperRotate","$cubeShadowEl","shadow","slideAngle","tx","ty","tz","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","scale1","scale2","zFactor","isSafari","isWebView","overwriteParams","Fade","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","Flip","flipEffect","limitRotation","HashNavigation","onHashChange","newHash","activeSlideHash","setHash","hashNavigation","slideHash","watchState","transitionEnd_freeModeNoMomentumRelease","slideChange","History","paths","getPathValues","scrollToSlide","setHistoryPopState","urlOverride","URL","pathArray","part","total","setHistory","slugify","root","includes","currentState","state","slideHistory","Keyboard","handle","kc","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Lazy","loadInSlide","loadInDuplicate","lazy","$images","elementClass","loadedClass","loadingClass","$imageEl","background","$pictureEl","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","load","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","amount","checkInViewOnLoad","$scrollElement","scrollingElement","isWindow","scrollElementWidth","scrollElementHeight","scrollHandlerAttached","checkInView","loadOnTransitionStart","lazyLoad","_swiper$params","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","raw","prevEvent","animateSlider","releaseScroll","_newEvent","ignoreWheelEvents","_recentWheelEvents","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","thresholdDelta","thresholdTime","Navigation","toggleEl","disabled","disabledClass","lockClass","onPrevClick","onNextClick","createElementIfNotDefined","_swiper$navigation2","hideOnClick","hiddenClass","enableDisable","_swiper$navigation3","_swiper$navigation4","targetEl","isHidden","Pagination","paginationType","firstIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scaleX","scaleY","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","bulletElement","renderFraction","renderProgressbar","clickableClass","modifierClass","progressbarOppositeClass","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","divider","moveDivider","getPointerPosition","clientX","clientY","setDragPosition","dragStartPos","positionRatio","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Thumbs","thumbsParams","thumbs","SwiperClass","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","nextIndex","autoScrollOffset","useOffset","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","beforeDestroy","Virtual","force","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","from","previousTo","to","previousSlidesGrid","renderSlide","previousOffset","slidesAfter","slidesBefore","onRendered","renderExternal","getSlides","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","cache","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","Zoom","getDistanceBetweenTouches","x1","y1","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","gestures","scaleStart","$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","out","in","_in","zoomedSlideClass","touchX","touchY","offsetX","offsetY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","toggleGestures","slideSelector","enableGestures","gesturesEnabled","disableGestures","activeListenerWithCapture","touchStart","doubleTap","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observe","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","supportsResizeObserver","ResizeObserver","createObserver","newWidth","_ref","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","removeObserver","unobserve","orientationChangeHandler","Methods","methodName","calcBrowser","ua","isEdge","test","calcDevice","_temp","platform","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","os","overrides","calcSupport","DocumentTouch","PointerEvent","maxTouchPoints","checkObserver","checkPassiveListener","supportsPassive","opts","checkGestures","object","currentStyle","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","HTMLElement","noExtend","nextSource","keysArray","len","nextKey","desc","getOwnPropertyDescriptor","subKey","$container","checkProps"],"mappings":"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","file":"shop-carousel-bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"shop-carousel\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([47,\"common\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import Swiper, { Navigation } from 'swiper'\r\nimport { assign } from 'lodash';\r\nimport { nodeListToArray } from '../helpers/nodeListToArray';\r\nimport { sendVisibleCarouselItemsListScriptToGTM } from './shop-google-analytics';\r\n\r\n\r\nexport interface ICarousel {\r\n width?: number;\r\n containerClass: string;\r\n slidesPerView?: number;\r\n centeredSlides?: boolean;\r\n breakpoints?: any;\r\n spaceBetween?: number;\r\n navigation?: any;\r\n autoHeight?: boolean;\r\n height?: number;\r\n loop?: boolean;\r\n autoplayVideo?: boolean;\r\n pageNumberPreposition?: string;\r\n watchSlidesVisibility?: boolean;\r\n}\r\ninterface IPersonalizedProductData {\r\n authors: IAuthor[];\r\n itemNumber: string;\r\n itemName: string;\r\n newUntilDate: string;\r\n itemPublicationDate: string;\r\n startDate: string;\r\n endDate: string;\r\n bestseller: boolean;\r\n itemMemberPrice: number;\r\n itemRetailPrice: number;\r\n pricesLoading: boolean;\r\n isMemberBenefit: boolean;\r\n format: string;\r\n url: string;\r\n productImage: string;\r\n fullLocation: string;\r\n state: string;\r\n tags: string[];\r\n showAvailabilityDates: boolean;\r\n showPublicationDate: boolean;\r\n shortDescription: string;\r\n externalRegistrationUrl: string;\r\n category: string;\r\n isQuantityDiscount: boolean;\r\n healthyChildrenProduct: boolean;\r\n relevance: number;\r\n isMember: boolean;\r\n customFilterValues: string[];\r\n topics: string[];\r\n topicNames: string[];\r\n productType: ProductType;\r\n data: any;\r\n}\r\n\r\ninterface IAuthor {\r\n authorName: string;\r\n authorBio: string;\r\n authorOfRole: string;\r\n authorOfDescription: string;\r\n}\r\n\r\ninterface IPersonalizedProducts {\r\n alias: string;\r\n position: string;\r\n recs: IPersonalizedProduct[];\r\n widget: string;\r\n}\r\n\r\ninterface IPersonalizedProduct {\r\n id: number;\r\n img: string;\r\n refCode: string;\r\n title: string;\r\n url: URL;\r\n prices: IPriceType[];\r\n}\r\n\r\ninterface IPriceType {\r\n USD: IPrice;\r\n}\r\n\r\ninterface IPrice {\r\n salePrice: number;\r\n unitPrice: number;\r\n}\r\n\r\nenum ProductType {\r\n BOOK,\r\n EBOOK,\r\n JOURNAL,\r\n LIVE_ACTIVITY,\r\n COURSE,\r\n BROCHURE,\r\n POINT_OF_CARE,\r\n DEFAULT\r\n}\r\n\r\nvar impressedItems = [];\r\n\r\n\r\ndeclare global {\r\n interface Window {\r\n InitPeeriusCarousel: (data: any) => void }\r\n}\r\nwindow.InitPeeriusCarousel = function (data) {\r\n const carouselClass = 'peerius-carousel';\r\n const personalizedCarousels = nodeListToArray(document.querySelectorAll('[data-product-carousel-personalized]'));\r\n personalizedCarousels.forEach((carousel, index) => {\r\n carousel.classList.add(`${carouselClass}-${index}`);\r\n renderCarousel(data[0], `${carouselClass}-${index}`);\r\n });\r\n}\r\n\r\nexport function renderCarousel(data: any, carouselClass) {\r\n initImpressions();\r\n var count = 0;\r\n var carouselData = data;\r\n var promiseCount = 0;\r\n if (carouselData == undefined || carouselData.recs == undefined) {\r\n return;\r\n }\r\n const swiperElement = document.querySelector(`.${carouselClass}`).querySelector('.swiper-wrapper');\r\n carouselData.recs.forEach(rec => {\r\n getProductData(rec.refCode, count, rec.id, swiperElement).then(res => {\r\n promiseCount++;\r\n if (promiseCount === carouselData.recs.length) {\r\n //initialize the carousel once we have all the items and they are appended to the block\r\n new ProductCarousel({\r\n containerClass: `${carouselClass}`,\r\n slidesPerView: 1\r\n })\r\n sendImpressions();\r\n }\r\n });\r\n count++;\r\n });\r\n}\r\n//takes a single peerius recommended content item and gets the corresponding item from the search api\r\nfunction getProductData(refCode: string, index: number, id: number, swiperElement: Element) {\r\n const init: RequestInit = {\r\n method: 'GET',\r\n credentials: 'same-origin'\r\n };\r\n\r\n return window.fetch(`/api/v1/search/getProduct?refCode=${refCode}`, init)\r\n .then(res => {\r\n if (res.status !== 200) {\r\n throw new Error(res.statusText);\r\n }\r\n return res.text().then(data => {\r\n renderCarouselProductItem(data as any, index, id, swiperElement);\r\n });\r\n });\r\n}\r\n//takes the data we got in the search api call and adds wrapper with items for the result\r\nfunction renderCarouselProductItem(productData: any, index: number, id: number, swiperElement) {\r\n var parsedData = JSON.parse(productData) as IPersonalizedProductData;\r\n\r\n var productSwiperWrap = document.createElement('div');\r\n productSwiperWrap.setAttribute('class', 'swiper-slide');\r\n productSwiperWrap.setAttribute('slide-number', index.toString());\r\n productSwiperWrap.innerHTML = `\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n
\r\n
\r\n Price:\r\n \r\n
\r\n
\r\n\t\t Member Price:\r\n \r\n
\r\n \r\n
\r\n `;\r\n \r\n var personalizedCarousel = productSwiperWrap;\r\n swiperElement.append(personalizedCarousel);\r\n if (personalizedCarousel != undefined && parsedData != null && parsedData.data != null) {\r\n fillInData(personalizedCarousel, parsedData, index, id, swiperElement);\r\n addDataAttributesForGoogleAnalytics(productSwiperWrap, parsedData);\r\n }\r\n\r\n}\r\n\r\nfunction addDataAttributesForGoogleAnalytics(productSwiperWrap: HTMLDivElement, jsonData: IPersonalizedProductData) {\r\n //Add data attributes to carousel item for Google Analytics tracking.\r\n productSwiperWrap.dataset.productCarouselItemTitle = jsonData.data.itemName;\r\n productSwiperWrap.dataset.productCarouselItemId = jsonData.data.itemNumber;\r\n productSwiperWrap.dataset.productCarouselItemPrice = jsonData.data.itemRetailPrice;\r\n productSwiperWrap.dataset.productCarouselItemCategory = jsonData.data.topicNames && jsonData.data.topicNames.length > 0 ?\r\n jsonData.data.topicNames.join(\" \") : \"\";\r\n}\r\n\r\n// fills in the carousel item with data. Could be condensed into the template literal above when using for multiple types of carousels\r\nfunction fillInData(personalizedCarousel: Element, jsonData: IPersonalizedProductData, index: number, id: number, carouselClass: string) {\r\n let parsedData = jsonData.data;\r\n personalizedCarousel.querySelector('[retail-cash-js]').textContent = parsedData.itemRetailPrice != null ? (\"$\" + parsedData.itemRetailPrice.toFixed(2).toString()) : \"$0.00\";\r\n personalizedCarousel.querySelector('[member-cash-js]').textContent = parsedData.itemMemberPrice != null ? (\"$\" + parsedData.itemMemberPrice.toFixed(2).toString()) : \"$0.00\";\r\n personalizedCarousel.querySelector('[carousel-title-js]').textContent = parsedData.itemName;\r\n personalizedCarousel.querySelector('[carousel-title-js]').setAttribute(\"href\", parsedData.url);\r\n personalizedCarousel.querySelector('[tag-carousel-js]').textContent = parsedData.tags[0];\r\n\r\n if (personalizedCarousel.querySelector('[id-carousel-js]') != null &&\r\n personalizedCarousel.querySelector('[id-carousel-js]') != undefined) {\r\n personalizedCarousel.querySelector('[id-carousel-js]').textContent = id.toString();\r\n }\r\n fillInPublishedDate(personalizedCarousel, parsedData.itemPublicationDate);\r\n fillInImage(personalizedCarousel, parsedData);\r\n markClicks(personalizedCarousel, parsedData);\r\n}\r\n\r\nfunction fillInPublishedDate(personalizedCarousel: Element, publishedDate: string) {\r\n if (publishedDate.substr(0, 4) !== \"0001\") {\r\n personalizedCarousel.querySelector('[pub-date-js]').textContent = \"Published: \" + publishedDate.substr(0, 4);\r\n }\r\n}\r\n\r\nfunction fillInImage(personalizedCarousel: Element, parsedData: IPersonalizedProductData) {\r\n var image = personalizedCarousel.querySelector('[carousel-image]').querySelector('[carousel-image-js]');\r\n var link = personalizedCarousel.querySelector('[carousel-image]').querySelector('[carousel-link-js]');\r\n image.setAttribute(\"src\", parsedData.productImage);\r\n link.setAttribute(\"href\", parsedData.url);\r\n}\r\n\r\n\r\nfunction markClicks(personalizedCarousel: Element, parsedData: IPersonalizedProductData) {\r\n personalizedCarousel.querySelector('[carousel-image-js]').addEventListener(\"click\",\r\n (event) => {\r\n clickToPage(personalizedCarousel);\r\n pushViewItemInListEventToGoogleTagManager(personalizedCarousel, parsedData);\r\n event.stopImmediatePropagation();\r\n });\r\n personalizedCarousel.querySelector(\"[carousel-title-js]\").addEventListener(\"click\",\r\n (event) => {\r\n clickToPage(personalizedCarousel);\r\n pushViewItemInListEventToGoogleTagManager(personalizedCarousel, parsedData);\r\n event.stopImmediatePropagation();\r\n });\r\n personalizedCarousel.addEventListener(\"click\",\r\n () => {\r\n otherClick(personalizedCarousel);\r\n });\r\n}\r\n\r\nfunction clickToPage(personalizedCarousel: Element) {\r\n console.log(\"clickedToPage\");\r\n var id = personalizedCarousel.querySelector('[id-carousel-js]');\r\n if (id) {\r\n (window as any).Peerius.smartRecsClick(personalizedCarousel.querySelector('[id-carousel-js]').textContent);\r\n }\r\n}\r\n\r\nfunction otherClick(personalizedCarousel: Element) {\r\n console.log(\"clickedOther\");\r\n (window as any).Peerius.smartRecsSendClick(personalizedCarousel.querySelector('[id-carousel-js]').textContent);\r\n}\r\n\r\nfunction pushViewItemInListEventToGoogleTagManager(personalizedCarousel: Element, parsedData: IPersonalizedProductData) {\r\n\r\n //Send Google Tag Manager event any time a user clicks an item in a carousel.\r\n\r\n //Google wants to know which carousel the item was within, so we pull the carousel ID and carousel name.\r\n var id = \"\";\r\n var listTitle = \"\";\r\n var carouselContainer = document.querySelector('[data-product-carousel-personalized]');\r\n if (carouselContainer) {\r\n id = carouselContainer.getAttribute('data-unique-id');\r\n const carouselTitle = carouselContainer.querySelector('[data-product-carousel-title]');\r\n if (carouselTitle) {\r\n listTitle = (carouselTitle as HTMLElement).innerText;\r\n }\r\n }\r\n\r\n (window as any).dataLayer = (window as any).dataLayer || [];\r\n (window as any).dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n\r\n //Google also wants to know information about the specific catalog item in the carousel that the user chose.\r\n var tag = {\r\n 'event': 'select_item',\r\n 'ecommerce':\r\n {\r\n 'item_list_id': id,\r\n 'item_list_name': listTitle,\r\n 'items': [\r\n {\r\n 'item_id': parsedData.itemNumber,\r\n 'item_name': parsedData.itemName,\r\n 'price': parsedData.itemRetailPrice,\r\n 'item_category': parsedData.topicNames.join(\" \")\r\n }\r\n ]\r\n }\r\n };\r\n\r\n console.log(`Sending tag to data layer: ${JSON.stringify(tag)}`);\r\n (window as any).dataLayer.push(tag);\r\n}\r\n\r\n\r\nfunction initImpressions() {\r\n if (document.querySelector('[data-product-carousel]') != null &&\r\n document.querySelector('[data-product-carousel]') != undefined) {\r\n document.querySelector('[data-product-carousel]').addEventListener(\"click\", sendImpressions);\r\n }\r\n}\r\n\r\nfunction sendImpressions() {\r\n var carousel = document.querySelector('[data-product-carousel]');\r\n if (carousel === undefined || carousel === null) {\r\n return;\r\n }\r\n var swiperElement : any = carousel.querySelector('.swiper-wrapper');\r\n var swiperVisibleItems = swiperElement.querySelectorAll('.swiper-slide-visible');\r\n if (swiperVisibleItems != null && swiperElement.swiper != null) {\r\n var seenIds = [];\r\n for (var i = 0; i < swiperVisibleItems.length; i++) {\r\n var visibleItem = swiperVisibleItems[i];\r\n var id = visibleItem.querySelector('[id-carousel-js]').textContent;\r\n seenIds.push(id);\r\n }\r\n sendImpressionIds(seenIds);\r\n }\r\n}\r\n\r\n\r\nfunction sendImpressionIds(seenIds: Array) {\r\n var strIds = \"\";\r\n for (var i = 0; i < seenIds.length; i++) {\r\n if (impressedItems.indexOf(seenIds[i]) > -1) {\r\n continue;\r\n }\r\n else if (strIds.length === 0) {\r\n strIds = seenIds[i].toString();\r\n impressedItems.push(seenIds[i]);\r\n } else if (seenIds[i] != null && seenIds[i].toString().length > 0) {\r\n strIds = strIds + \",\" + seenIds[i];\r\n impressedItems.push(seenIds[i]);\r\n }\r\n }\r\n if (strIds.length > 0) {\r\n (window as any).Peerius.sendAjax(`aap/rec/shown.pagex?ids=${strIds}`);\r\n }\r\n}\r\n\r\nexport class ProductCarousel {\r\n //these params are exposed to the file you intialize your carousel in, so you can initialize multiple\r\n //carousel versions across your project or just be able to configure without diving into this file\r\n params: ICarousel = {\r\n containerClass: 'adage-carousel-js',\r\n centeredSlides: false,\r\n slidesPerView: 1,\r\n watchSlidesVisibility: true,\r\n breakpoints: {\r\n 320: {\r\n spaceBetween: 16,\r\n slidesPerView: 2\r\n },\r\n 640: {\r\n spaceBetween: 33,\r\n slidesPerView: 3\r\n },\r\n 800: {\r\n spaceBetween: 33,\r\n slidesPerView: 4\r\n },\r\n 1400: {\r\n spaceBetween: 33,\r\n slidesPerView: 5\r\n },\r\n 1920: {\r\n spaceBetween: 33,\r\n slidesPerView: 6\r\n }\r\n },\r\n spaceBetween: 25,\r\n navigation: {\r\n nextEl: '.swiper-button-next',\r\n prevEl: '.swiper-button-prev'\r\n },\r\n loop: false,\r\n autoplayVideo: true,\r\n pageNumberPreposition: ' of ',\r\n autoHeight: true\r\n };\r\n productCarousel: any;\r\n activeSlide: any;\r\n previousSlide: any;\r\n activeIndex: any;\r\n previousIndex: number; // swiper's previousindex implementation doesn't work with loop: true so we need to do it manually\r\n videos: any;\r\n carouselId: string;\r\n productData: any;\r\n\r\n constructor(params?: ICarousel) {\r\n\r\n assign(this.params, params);\r\n Swiper.use([Navigation]);\r\n this.productCarousel = new Swiper(`.${this.params.containerClass}`, {\r\n slidesPerView: this.params.slidesPerView,\r\n centeredSlides: this.params.centeredSlides,\r\n spaceBetween: this.params.spaceBetween,\r\n breakpoints: this.params.breakpoints,\r\n navigation: this.params.navigation,\r\n watchSlidesVisibility: true,\r\n \r\n loop: this.params.loop,\r\n on: {\r\n afterInit: this.sendVisibleItemsToGoogleTagManager.bind(this),\r\n slideChange: this.sendVisibleItemsToGoogleTagManager.bind(this)\r\n },\r\n enabled: true,\r\n autoHeight: this.params.autoHeight\r\n });\r\n if (this.productCarousel.el) {\r\n this.carouselId = this.productCarousel.el.getAttribute('data-unique-id');\r\n }\r\n this.videos = {};\r\n this.initCallback();\r\n setTimeout(() => this.productCarousel.resize.resizeHandler(), 2000); // SUPER hack... but it works\r\n }\r\n\r\n initCallback() {\r\n this.activeSlide = this.productCarousel.slides[this.productCarousel.activeIndex];\r\n this.activeIndex = this.productCarousel.activeIndex;\r\n this.setPageNumbers();\r\n }\r\n\r\n setPageNumbers() {\r\n if (this.productCarousel) {\r\n let totalSlides = this.productCarousel.el.getAttribute('data-total-slides');\r\n for (let i = 0; i < this.productCarousel.slides.length; i++) {\r\n let slide = this.productCarousel.slides[i];\r\n this.reconcileDupeId(slide);\r\n if (i !== this.activeIndex) {\r\n this.disableSlide(slide);\r\n }\r\n let slidePageContainer = slide.querySelector('[data-carousel-page]');\r\n if (slidePageContainer) {\r\n let pageString = `${parseInt(slide.getAttribute('data-slide-index')) + 1}${this.params.pageNumberPreposition}${totalSlides}`;\r\n slidePageContainer.innerHTML = pageString;\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n reconcileDupeId(slide) {\r\n // check to see if there's 2 slides with same unique ID (when loop is true, slides get duplicated)\r\n if (slide.querySelector('[data-unique-id]')) {\r\n let thisId = slide.querySelector('[data-unique-id]').getAttribute('data-unique-id');\r\n if (this.productCarousel.el.querySelectorAll(`[data-unique-id=\"${thisId}\"]`).length > 1) {\r\n let dupes = Array.prototype.slice.call(this.productCarousel.el.querySelectorAll(`[data-unique-id=\"${thisId}\"]`));\r\n dupes.forEach((dupe, index) => {\r\n dupe.setAttribute('data-unique-id', `${thisId}-${index}`);\r\n })\r\n }\r\n }\r\n }\r\n\r\n handleSlide() {\r\n if (this.productCarousel) {\r\n this.previousSlide = this.activeSlide;\r\n this.previousIndex = this.activeIndex;\r\n this.activeSlide = this.productCarousel.slides[this.productCarousel.activeIndex];\r\n this.activeIndex = this.productCarousel.activeIndex;\r\n this.disableSlide(this.previousSlide);\r\n this.enableSlide(this.activeSlide);\r\n }\r\n }\r\n\r\n disableSlide(slide) {\r\n // disable tabbing on tabbable content by default to stop trapping keyboard, and hide from screenreader users\r\n let tabbableContent = Array.prototype.slice.call(slide.querySelectorAll('a, input, button, area, object, select, iframe, video, audio'));\r\n tabbableContent.forEach(item => {\r\n item.tabIndex = -1;\r\n });\r\n slide.setAttribute('aria-hidden', 'true');\r\n }\r\n\r\n enableSlide(slide) {\r\n // enable tabbing on active slide and show to screenreader users\r\n let tabbableContent = Array.prototype.slice.call(slide.querySelectorAll('a, input, button, area, object, select, iframe, video, audio'));\r\n tabbableContent.forEach(item => {\r\n item.tabIndex = 0;\r\n });\r\n slide.setAttribute('aria-hidden', 'false');\r\n }\r\n\r\n sendVisibleItemsToGoogleTagManager() {\r\n const carouselElement = document.querySelector(\".\" + this.params.containerClass);\r\n sendVisibleCarouselItemsListScriptToGTM(carouselElement);\r\n }\r\n}","import { object } from \"prop-types\";\r\nimport { nodeListToArray } from \"../helpers/nodeListToArray\";\r\n\r\nexport { }\r\n\r\n\r\ndeclare global {\r\n interface Window {\r\n sendSelectItemAnalyticsScriptToGTM: (element: any, itemKey: string, itemTitle: string, itemPrice: string, itemCategory: string, listId: string, listName: string) => void;\r\n sendAddToCartScriptToGTM: (element: any) => void;\r\n }\r\n}\r\n\r\nwindow.sendSelectItemAnalyticsScriptToGTM = function (element: any, itemKey: string, itemTitle: string, itemPrice: string, itemCategory: string, listId: string, listName: string) {\r\n (window as any).dataLayer = (window as any).dataLayer || [];\r\n (window as any).dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n\r\n var tag = {\r\n 'event': 'select_item',\r\n 'ecommerce':\r\n {\r\n 'item_list_id': listId,\r\n 'item_list_name': listName,\r\n 'items': [\r\n {\r\n 'item_id': itemKey,\r\n 'item_name': itemTitle,\r\n 'price': itemPrice,\r\n 'item_category': itemCategory\r\n }\r\n ]\r\n }\r\n };\r\n\r\n console.log(`Sending tag to data layer: ${JSON.stringify(tag)}`);\r\n (window as any).dataLayer.push(tag);\r\n}\r\n\r\nfunction sendViewListAnalyticsScriptToGTM(itemElements: Array, listId: string, listName: string) {\r\n (window as any).dataLayer = (window as any).dataLayer || [];\r\n (window as any).dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n\r\n let items = getListItems(itemElements); \r\n let tag = {\r\n 'event': 'view_item_list',\r\n 'ecommerce':\r\n {\r\n 'item_list_id': listId,\r\n 'item_list_name': listName,\r\n 'items': items\r\n }\r\n };\r\n\r\n console.log(`Sending tag to data layer: ${JSON.stringify(tag)}`);\r\n (window as any).dataLayer.push(tag);\r\n}\r\n\r\nfunction getListItems(items: Array) {\r\n if (items && items.length > 0) {\r\n let listItems = [];\r\n items.forEach((item, index) =>\r\n {\r\n //get info about each product item via data attributes\r\n var title = item.getAttribute('data-product-carousel-item-title');\r\n var itemId = item.getAttribute('data-product-carousel-item-id');\r\n var itemPrice = item.getAttribute('data-product-carousel-item-price');\r\n var itemCategory = item.getAttribute('data-product-carousel-item-category');\r\n\r\n //Parse out additional HTML from the title.\r\n var e = document.createElement('div');\r\n e.innerHTML = title;\r\n title = e.textContent ? e.textContent : e.innerText;\r\n\r\n let listItem = getListItem(itemId, title, itemPrice, itemCategory);\r\n listItems.push(listItem);\r\n }\r\n )\r\n return listItems;\r\n }\r\n return [];\r\n}\r\n\r\nfunction getListItem(itemKey: string, itemTitle: string, itemPrice: string, itemCategory: string) {\r\n let listItem = {\r\n 'item_id': itemKey,\r\n 'item_name': itemTitle,\r\n 'price': itemPrice,\r\n 'item_category': itemCategory\r\n }\r\n return listItem;\r\n}\r\n\r\nexport function sendVisibleCarouselItemsListScriptToGTM(carouselElement: Element) {\r\n let visibleCarouselItems = getVisibleCarouselItems(carouselElement);\r\n let listId = \"\";\r\n let listName = \"\";\r\n\r\n if (carouselElement) {\r\n listId = carouselElement.getAttribute('data-unique-id');\r\n const carouselTitle = carouselElement.querySelector('[data-product-carousel-title]');\r\n if (carouselTitle) {\r\n listName = (carouselTitle as HTMLElement).innerText;\r\n }\r\n }\r\n\r\n sendViewListAnalyticsScriptToGTM(visibleCarouselItems, listId, listName);\r\n}\r\n\r\nfunction getVisibleCarouselItems(carouselElement: Element) : Array {\r\n let visibleCarouselItems = carouselElement.getElementsByClassName(\"swiper-slide-visible\");\r\n let arr = Array.prototype.slice.call(visibleCarouselItems);\r\n return arr;\r\n}\r\n\r\nfunction sendProductGroupBlockListingScriptToGTM(productGroupBlockElement: Element) {\r\n //Get all product elements in the list.\r\n const itemElements = nodeListToArray(productGroupBlockElement.querySelectorAll('[data-product-group-block-vertical-item]'));\r\n let listId = productGroupBlockElement.getAttribute('data-product-group-block-vertical-id');\r\n let listName = productGroupBlockElement.getAttribute('data-product-group-block-vertical-title');\r\n sendViewListAnalyticsScriptToGTM(itemElements, listId, listName);\r\n}\r\n\r\nexport function sendProductGroupBlockListingScriptsToGTM() {\r\n //Send 'view item list' event to GTM for each vertical product group block listing on the page.\r\n const productGroupBlockElements = nodeListToArray(document.querySelectorAll('[data-product-group-block-vertical]'));\r\n productGroupBlockElements.forEach((element, index) => {\r\n sendProductGroupBlockListingScriptToGTM(element)\r\n });\r\n}\r\n\r\nexport function sendOnlineCourseSeriesListScriptToGTM() {\r\n const onlineCourseSeriesElement = document.querySelector('[data-online-course-series]');\r\n if (onlineCourseSeriesElement) {\r\n const itemElements = nodeListToArray(onlineCourseSeriesElement.querySelectorAll('[data-online-course-series-item]'));\r\n let listId = onlineCourseSeriesElement.getAttribute('data-online-course-series-list-id');\r\n let listName = onlineCourseSeriesElement.getAttribute('data-online-course-series-list-name');\r\n sendViewListAnalyticsScriptToGTM(itemElements, listId, listName);\r\n }\r\n}\r\n\r\nexport function sendShopSearchResultListScriptToGTM() {\r\n const searchResultsElement = document.querySelector('[data-search-results]');\r\n if (searchResultsElement === null) return;\r\n //Get all product elements in the list.\r\n var shopItems = searchResultsElement.querySelectorAll('[data-shop-search-result]');\r\n if (shopItems === null) return;\r\n const itemElements = nodeListToArray(searchResultsElement.querySelectorAll('[data-shop-search-result]'));\r\n if (itemElements === null || itemElements.length == 0) return;\r\n\r\n let listId = \"Search Page\";\r\n let listName = \"Search Page\";\r\n sendViewListAnalyticsScriptToGTM(itemElements, listId, listName);\r\n}\r\n\r\nwindow.sendAddToCartScriptToGTM = function (element: any) {\r\n sendAddToCartScriptToGTM(element);\r\n}\r\nexport function sendAddToCartScriptToGTM(element: Element) {\r\n (window as any).dataLayer = (window as any).dataLayer || [];\r\n (window as any).dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\r\n\r\n //get info about each product item via data attributes\r\n var itemTitle = element.getAttribute('data-add-to-cart-title');\r\n var itemKey = element.getAttribute('data-add-to-cart-key');\r\n var itemPrice = element.getAttribute('data-add-to-cart-price');\r\n var itemCategory = element.getAttribute('data-add-to-cart-category');\r\n var item: any = getListItem(itemKey, itemTitle, itemPrice, itemCategory)\r\n var totalPrice = itemPrice;\r\n var quantityInput = document.getElementById('amount') as HTMLInputElement;\r\n if (quantityInput) {\r\n item = { ...item, 'quantity': quantityInput.value }\r\n let price = parseFloat(itemPrice);\r\n let quantity = parseInt(quantityInput.value);\r\n if (price && quantity) {\r\n totalPrice = (price * quantity).toFixed(2);\r\n }\r\n }\r\n let tag = {\r\n 'event': 'add_to_cart',\r\n 'ecommerce':\r\n {\r\n 'currency': 'USD',\r\n 'value': totalPrice,\r\n 'items': [ item ]\r\n }\r\n };\r\n\r\n console.log(`Sending tag to data layer: ${JSON.stringify(tag)}`);\r\n (window as any).dataLayer.push(tag);\r\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","/**\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","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 var slidesLength = swiper.params.loop ? swiper.slides.filter(function (el) {\n return !el.classList.contains(swiper.params.slideDuplicateClass);\n }).length : swiper.slides.length;\n swiper.slides.each(function (slideEl, index) {\n var $slideEl = $(slideEl);\n var slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\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\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\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};","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 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 (base === 'window') {\n if (window.matchMedia(\"(min-width: \" + value + \"px)\").matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\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};","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 && breakpointParams.slidesPerColumnFill === 'column' || !breakpointParams.slidesPerColumnFill && params.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}","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};","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}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\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}","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 focusableElements: swiper.params.focusableElements,\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 getWrapperSelector = function getWrapperSelector() {\n return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // 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(getWrapperSelector());\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;","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 focusableElements: 'input, select, option, textarea, button, video, label',\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};","/* 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 { 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};","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 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 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 { 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}","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.focusableElements)) {\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 { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\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 component\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 var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass;\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[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.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && 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 setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\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 loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\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 loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\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 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}","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 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 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}","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};","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 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}","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}","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};","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};","/* 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 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}","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}","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}","/* 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}","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}","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 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 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}","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}","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}","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 maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function minTranslate() {\n return -this.snapGrid[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 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 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 { 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}","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}","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 { 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}","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 marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\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 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}","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}","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 $ 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 { 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 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 { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar HashNavigation = {\n onHashChange: function onHashChange() {\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.onHashChange);\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.onHashChange);\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\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\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};","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 var _swiper$params = swiper.params,\n lazy = _swiper$params.lazy,\n cssMode = _swiper$params.cssMode,\n watchSlidesVisibility = _swiper$params.watchSlidesVisibility,\n watchSlidesProgress = _swiper$params.watchSlidesProgress,\n touchReleaseOnEdges = _swiper$params.touchReleaseOnEdges,\n resistanceRatio = _swiper$params.resistanceRatio;\n\n if (lazy.enabled && (cssMode || (watchSlidesVisibility || watchSlidesProgress) && (touchReleaseOnEdges || resistanceRatio === 0))) {\n swiper.lazy.load();\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 $ 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 { 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 { 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};","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\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 } // 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 (e && e.target) {\n gesture.$slideEl = $(e.target).closest(\".\" + swiper.params.slideClass);\n }\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\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 { 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 { 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};","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 } 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 { 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, 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 { 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 isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\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 && !isNode(nextSource)) {\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 };","/**\n * Swiper 6.8.4\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2021 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: August 23, 2021\n */\n\nexport { default as Swiper, default } from './esm/components/core/core-class';\nexport { default as Virtual } from './esm/components/virtual/virtual';\nexport { default as Keyboard } from './esm/components/keyboard/keyboard';\nexport { default as Mousewheel } from './esm/components/mousewheel/mousewheel';\nexport { default as Navigation } from './esm/components/navigation/navigation';\nexport { default as Pagination } from './esm/components/pagination/pagination';\nexport { default as Scrollbar } from './esm/components/scrollbar/scrollbar';\nexport { default as Parallax } from './esm/components/parallax/parallax';\nexport { default as Zoom } from './esm/components/zoom/zoom';\nexport { default as Lazy } from './esm/components/lazy/lazy';\nexport { default as Controller } from './esm/components/controller/controller';\nexport { default as A11y } from './esm/components/a11y/a11y';\nexport { default as History } from './esm/components/history/history';\nexport { default as HashNavigation } from './esm/components/hash-navigation/hash-navigation';\nexport { default as Autoplay } from './esm/components/autoplay/autoplay';\nexport { default as EffectFade } from './esm/components/effect-fade/effect-fade';\nexport { default as EffectCube } from './esm/components/effect-cube/effect-cube';\nexport { default as EffectFlip } from './esm/components/effect-flip/effect-flip';\nexport { default as EffectCoverflow } from './esm/components/effect-coverflow/effect-coverflow';\nexport { default as Thumbs } from './esm/components/thumbs/thumbs';"],"sourceRoot":""}