{"version":3,"sources":["webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/shared/dom.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/images/loadImage.js","webpack:///./node_modules/swiper/core/images/preloadImages.js","webpack:///./node_modules/swiper/core/images/index.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./node_modules/swiper/modules/virtual/virtual.js","webpack:///./node_modules/swiper/modules/keyboard/keyboard.js","webpack:///./node_modules/swiper/modules/mousewheel/mousewheel.js","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.js","webpack:///./node_modules/swiper/modules/navigation/navigation.js","webpack:///./node_modules/swiper/shared/classes-to-selector.js","webpack:///./node_modules/swiper/modules/pagination/pagination.js","webpack:///./node_modules/swiper/modules/scrollbar/scrollbar.js","webpack:///./node_modules/swiper/modules/parallax/parallax.js","webpack:///./node_modules/swiper/modules/zoom/zoom.js","webpack:///./node_modules/swiper/modules/lazy/lazy.js","webpack:///./node_modules/swiper/modules/controller/controller.js","webpack:///./node_modules/swiper/modules/a11y/a11y.js","webpack:///./node_modules/swiper/modules/history/history.js","webpack:///./node_modules/swiper/modules/hash-navigation/hash-navigation.js","webpack:///./node_modules/swiper/modules/autoplay/autoplay.js","webpack:///./node_modules/swiper/modules/thumbs/thumbs.js","webpack:///./node_modules/swiper/modules/free-mode/free-mode.js","webpack:///./node_modules/swiper/modules/grid/grid.js","webpack:///./node_modules/swiper/modules/manipulation/methods/appendSlide.js","webpack:///./node_modules/swiper/modules/manipulation/methods/prependSlide.js","webpack:///./node_modules/swiper/modules/manipulation/methods/addSlide.js","webpack:///./node_modules/swiper/modules/manipulation/methods/removeSlide.js","webpack:///./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js","webpack:///./node_modules/swiper/modules/manipulation/manipulation.js","webpack:///./node_modules/swiper/shared/effect-init.js","webpack:///./node_modules/swiper/shared/effect-target.js","webpack:///./node_modules/swiper/shared/effect-virtual-transition-end.js","webpack:///./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack:///./node_modules/swiper/modules/effect-cube/effect-cube.js","webpack:///./node_modules/swiper/shared/create-shadow.js","webpack:///./node_modules/swiper/modules/effect-flip/effect-flip.js","webpack:///./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","webpack:///./node_modules/swiper/modules/effect-creative/effect-creative.js","webpack:///./node_modules/swiper/modules/effect-cards/effect-cards.js","webpack:///./node_modules/swiper/swiper.esm.js"],"names":["makeReactive","obj","proto","__proto__","Object","defineProperty","get","set","value","Dom7","Array","constructor","items","arrayFlat","arr","arguments","length","undefined","res","forEach","el","isArray","push","arrayFilter","callback","prototype","filter","call","arrayUnique","uniqueArray","i","indexOf","toCamelCase","string","toLowerCase","replace","match","group","toUpperCase","qsa","selector","context","a","querySelectorAll","$","window","getWindow","document","getDocument","html","trim","toCreate","tempParent","createElement","innerHTML","childNodes","nodeType","fn","addClass","_len","classes","_key","classNames","map","c","split","classList","add","removeClass","_len2","_key2","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","name","parseFloat","val","multiple","nodeName","values","selectedOptions","j","options","selected","transform","style","transition","duration","transitionDuration","on","_len5","args","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","e","target","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","events","event","dom7Listeners","proxyListener","addEventListener","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","transitionStart","fireCallBack","transitionEnd","animationEnd","width","innerWidth","css","outerWidth","includeMargins","styles","offsetWidth","getPropertyValue","height","innerHeight","outerHeight","offsetHeight","offset","box","getBoundingClientRect","body","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","hide","display","show","getComputedStyle","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","prev","previousElementSibling","prevAll","prevEls","siblings","closest","find","foundElements","found","children","removeChild","detach","_len10","els","_key10","toAdd","empty","scrollTo","_len11","_key11","easing","animate","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","Date","getTime","progress","easeProgress","cos","PI","done","requestAnimationFrame","_len12","_key12","_len13","_key13","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","animateInstance","noTrigger","shortcut","eventHandler","_len14","_key14","click","blur","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","Methods","methodName","writable","deleteProps","object","nextTick","delay","setTimeout","now","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","isObject","o","slice","isNode","node","HTMLElement","extend","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","currentPosition","overflow","support","calcSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","checkPassiveListener","supportsPassive","opts","gestures","checkGestures","getSupport","deviceCached","calcDevice","userAgent","platform","navigator","ua","device","ios","android","screenWidth","screen","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","browser","calcBrowser","isSafari","isWebView","test","getBrowser","Resize","emit","observer","animationFrame","resizeHandler","destroyed","initialized","createObserver","ResizeObserver","entries","newWidth","newHeight","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","Observer","extendParams","observers","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","init","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","destroy","disconnect","priority","self","eventsListeners","method","__emitterProxy","onAny","eventsAnyListeners","offAny","eventsArray","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","size","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","gridEnabled","grid","rows","initSlides","slideSize","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","visibleSlides","ceil","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","activeSlide","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","x","y","z","previousTranslate","newProgress","translateTo","runCallbacks","translateBounds","internal","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","slideTo","initial","Error","indexAsNumber","isValidNumber","isFinite","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","t","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","loopedSlidesLimit","prependSlides","appendSlides","snapTranslate","diff","slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","closestElement","base","__closestFrom","assignedSlot","getRootNode","host","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","isTouchEvent","type","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","activeElement","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","start","move","end","passiveListeners","passive","cancel","updateOnWindowResize","attachEvents","bind","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","points","point","minRatio","substr","sort","b","matchMedia","prepareClasses","prefix","resultClasses","item","addClasses","suffixes","removeClasses","loadImage","imageEl","src","srcset","sizes","checkForComplete","image","onReady","isPicture","Image","onload","onerror","preloadImages","imagesToLoad","imagesLoaded","updateOnImagesReady","update","currentSrc","wasLocked","lastSlideIndex","lastSlideRightEdge","initialSlide","createElements","url","uniqueNavElements","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","images","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","defaults","passedParams","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","slideInView","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","getWrapper","querySelector","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod","Virtual","cache","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","cssModeTimeout","from","$slideEl","force","previousFrom","previousTo","previousSlidesGrid","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","getSlides","slidesToRender","prependIndexes","appendIndexes","appendSlide","prependSlide","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","removeSlide","slidesIndexes","removeAllSlides","clearTimeout","Keyboard","keyboard","onlyInViewport","pageUpDown","handle","kc","keyCode","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Mousewheel","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","timeout","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","animateSlider","newEvent","delta","raw","releaseScroll","rtlFactor","positions","sign","prevEvent","ignoreWheelEvents","position","sticky","firstEvent","snapToThreshold","autoplayDisableOnInteraction","createElementIfNotDefined","checkProps","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","$nextEl","$prevEl","getEl","toggleEl","disabled","tagName","onPrevClick","onNextClick","_s","targetEl","pagination","clickable","isHidden","classesToSelector","Pagination","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","progressbarDirection","scale","scaleX","scaleY","paginationHTML","numberOfBullets","Scrollbar","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","draggable","snapOnRelease","dragClass","scrollbarDisabledClass","dragEl","$dragEl","newSize","newPos","opacity","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","activeListener","eventMethod","enableDraggable","disableDraggable","$swiperEl","Parallax","parallax","setTransform","p","currentOpacity","currentScale","parallaxEl","$parallaxEl","parallaxDuration","_swiper","Zoom","zoom","maxRatio","containerClass","zoomedSlideClass","isScaling","gesturesEnabled","fakeGestureTouched","fakeGestureMoved","gesture","slideWidth","slideHeight","$imageEl","$imageWrapEl","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","x2","y2","distance","onGestureStart","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","onTransitionEnd","zoomIn","touchAction","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","getSlideSelector","toggleGestures","slideSelector","enableGestures","disableGestures","in","out","Lazy","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$images","background","$pictureEl","sourceEl","$source","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","Controller","controller","control","inverse","by","LinearSpline","binarySearch","search","guess","array","i1","i3","interpolate","getInterpolateFunction","spline","_t","controlled","controlledTranslate","setControlledTranslate","setControlledTransition","removeSpline","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","id","clicked","liveRegion","notify","message","notification","getRandomNumber","randomChar","round","random","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","updateNavigation","hasPagination","hasClickablePagination","updatePagination","bulletEl","initNavEl","wrapperId","handlePointerDown","handlePointerUp","handleFocus","includes","isActive","sourceCapabilities","firesTouchEvents","ariaLabelMessage","$containerEl","History","history","root","replaceState","keepQuery","paths","slugify","getPathValues","urlOverride","location","URL","pathArray","pathname","part","setHistory","currentState","state","pushState","scrollToSlide","slideHistory","setHistoryPopState","hashNavigation","HashNavigation","watchState","onHashChange","newHash","hash","activeSlideHash","setHash","slideHash","Autoplay","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","$activeSlideEl","autoplayResult","pause","onVisibilityChange","visibilityState","onMouseEnter","onMouseLeave","attachMouseEvents","detachMouseEvents","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","lastMoveEvent","pop","velocityEvent","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","indexToRemove","Manipulation","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","overwriteParamsResult","slideShadows","requireUpdateOnVirtual","effectTarget","effectParams","transformEl","effectVirtualTransitionEnd","allSlides","eventTriggered","$transitionEndTarget","triggerEvents","EffectFade","fadeEffect","crossFade","tx","ty","slideOpacity","$transitionElements","EffectCube","cubeEffect","shadow","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","wrapperRotate","$cubeShadowEl","slideAngle","tz","shadowAngle","sin","scale1","scale2","zFactor","createShadow","shadowClass","$shadowContainer","$shadowEl","EffectFlip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","EffectCoverflow","coverflowEffect","stretch","depth","modifier","center","centerOffset","offsetMultiplier","translateZ","slideTransform","$shadowBeforeEl","$shadowAfterEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","r","custom","translateString","rotateString","scaleString","opacityString","shadowOpacity","origin","EffectCards","cardsEffect","perSlideRotate","perSlideOffset","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,YAAY;AACZ,wBAAwB,EAAE;AAC1B,2BAA2B,EAAE;AAC7B;AACA,gBAAgB,EAAE;AAClB;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB;AACrB,4BAA4B,EAAE;AAC9B;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,wBAAwB,EAAE;AAC1B,qBAAqB,EAAE;AACvB,cAAc,EAAE;AAChB,gBAAgB,EAAE;AAClB,KAAK;AACL;AACA;AACA,KAAK;AACL,wBAAwB,EAAE;AAC1B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,aAAa,EAAE;AACf,YAAY,EAAE;AACd,cAAc;AACd,kBAAkB,EAAE;AACpB,oBAAoB,EAAE;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEkE;;;ACnJlE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACoD;;AAEpD;AACA,SAASA,YAAYA,CAACC,GAAG,EAAE;EACzB,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","file":"vendors~clamped-text~give-me-five~hotspots~hotspots-xray~image-set~modal--slider~stage-slider~stage-~391a57fa.chunk.js","sourcesContent":["/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\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 Object.keys(src).forEach((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\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\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 const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst 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() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...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 const uniqueArray = [];\n\n for (let 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, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let 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 const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 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 (let 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 (const 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 (let 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 (let 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 (const 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 let 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 const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let 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 (let i = 0; i < this.length; i += 1) {\n const 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 const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const 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 (const 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 const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let 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 (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let 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 (let 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 (let 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(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const 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 const parents = $(target).parents(); // eslint-disable-line\n\n for (let 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 const 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 const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n 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 const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\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 (let k = handlers.length - 1; k >= 0; k -= 1) {\n const 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(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\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(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionStart(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const 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 const 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 const 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 const styles = this.styles();\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 const 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 const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.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 const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const 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 (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const 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 const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let 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 (const 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((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const 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 (let 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 (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let 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 let child = this[0];\n let 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 const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const 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 (let 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 const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const 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 const before = $(selector);\n\n for (let 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 (let 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 const after = $(selector);\n\n for (let 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 (let 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 const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const 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 const 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 const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const 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 const parents = []; // eslint-disable-line\n\n for (let 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 const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let 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 let 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 const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let 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 (let 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(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const 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 (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let 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\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let 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 let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let 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(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const 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(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const 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\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const 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\n 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\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(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,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let 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(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(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 const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const 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\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let 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 const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let 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(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst 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, transitionStart, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(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 = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let 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 = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const 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(a => a.replace(',', '.')).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(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const 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 setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const 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 (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\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';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\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 resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(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 emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n 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 observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((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\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\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 const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $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 Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const 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 const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let 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 }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const 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 const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\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\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 $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= 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 const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(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 let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\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) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let 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 const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[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(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const 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 const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const 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 slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const 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 Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let 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 let 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 let 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 updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let 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 const 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 const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const 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 let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let 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 const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","export default function setTransition(duration, byController) {\n const 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 transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let 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(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\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 const 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 const 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 const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\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 if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\n let 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 const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\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 (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else 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 return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const 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 const 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 const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\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 if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\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 const 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 const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const 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 const currentSnap = swiper.snapGrid[snapIndex];\n const 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 const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let 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(() => {\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(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.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 && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const 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 const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $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 const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const 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, $targetEl[0]) : $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 const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const 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 Object.assign(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 let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let 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 const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const 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 if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(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 const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let 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 && !params.cssMode) {\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 let 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 let disableParentSwiper = true;\n let 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 + (-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 - (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.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let 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 const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\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(() => {\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 let 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 (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const 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 }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const 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(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const 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(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\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 let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\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\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\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.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(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 const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const 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 const 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 (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\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 // 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 slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\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: true,\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 // 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 loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\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};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\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)) {\n extend(allModulesParams, obj);\n return;\n }\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 extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\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, params] = args;\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 const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n const 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 swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // 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(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 Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\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 const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\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 });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n enable() {\n const 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 disable() {\n const 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 setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let 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 (let 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 // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // 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 const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\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 changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const 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(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 changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $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 init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const 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 destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\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(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 static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import $ from '../../shared/dom.js';\nimport { setCSSProperty } from '../../shared/utils.js';\nexport default function Virtual({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\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 let cssModeTimeout;\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n const $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\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let 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 const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Object.assign(swiper.virtual, {\n from,\n to,\n 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 emit('virtualUpdate');\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 emit('virtualUpdate');\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n\n for (let 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 } else {\n emit('virtualUpdate');\n }\n\n return;\n }\n\n const prependIndexes = [];\n const appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let 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 (let 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(index => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach(index => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n }\n\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let 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 update(true);\n }\n\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let 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 const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (let 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 update(true);\n swiper.slideTo(activeIndex, 0);\n }\n\n function removeAllSlides() {\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n update(true);\n swiper.slideTo(0, 0);\n }\n\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.slides = swiper.params.virtual.slides;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Keyboard({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const 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 let 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 const $el = swiper.$el;\n const swiperWidth = $el[0].clientWidth;\n const swiperHeight = $el[0].clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const 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 emit('keyPress', kc);\n return undefined;\n }\n\n function enable() {\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n\n function disable() {\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\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 swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n\n let pX = 0;\n let 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\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.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() - 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 emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n }\n\n function releaseScroll(newEvent) {\n const 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\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let 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 let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = 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 let 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 || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const 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 if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const 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 animateSlider(newEvent);\n }\n } else {\n 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 (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 const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const 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.freeMode.sticky) {\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(timeout);\n timeout = undefined;\n\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\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 const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!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 timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) 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\n function events(method) {\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target[method]('mouseenter', handleMouseEnter);\n target[method]('mouseleave', handleMouseLeave);\n target[method]('wheel', handle);\n }\n\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n\n if (swiper.mousewheel.enabled) return false;\n events('on');\n swiper.mousewheel.enabled = true;\n return true;\n }\n\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n\n if (!swiper.mousewheel.enabled) return false;\n events('off');\n swiper.mousewheel.enabled = false;\n return true;\n }\n\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\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 navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $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\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\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 on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const 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 let 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 emit('navigationShow');\n } else {\n 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 const enable = () => {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\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: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const 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 const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const 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 setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let 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) {\n for (let 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 setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const 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 let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let 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 emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let 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 emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $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); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n 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 let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $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 const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\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 scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n $el: null,\n $dragEl: null\n };\n\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl,\n progress\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n let newSize = dragSize;\n let 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(timeout);\n $el[0].style.opacity = 1;\n timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n }\n\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n }\n\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\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 if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function getPointerPosition(e) {\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\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n $el\n } = scrollbar;\n let positionRatio;\n positionRatio = (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 const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? 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 setDragPosition(e);\n clearTimeout(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 emit('scrollbarDragStart', e);\n }\n\n function onDragMove(e) {\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n emit('scrollbarDragMove', e);\n }\n\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el\n } = scrollbar;\n if (!isTouched) return;\n 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(dragTimeout);\n dragTimeout = nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n\n function events(method) {\n const {\n scrollbar,\n touchEventsTouch,\n touchEventsDesktop,\n params,\n support\n } = swiper;\n const $el = scrollbar.$el;\n if (!$el) return;\n const target = $el[0];\n const activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n if (!support.touch) {\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n } else {\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n }\n }\n\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n\n function init() {\n const {\n scrollbar,\n $el: $swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let $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 $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n Object.assign(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.scrollbar;\n const $el = swiper.scrollbar.$el;\n\n if ($el) {\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n\n disableDraggable();\n }\n\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.scrollbar;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n\n init();\n updateSize();\n setTranslate();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import $ from '../../shared/dom.js';\nexport default function Parallax({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n parallax: {\n enabled: false\n }\n });\n\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const 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 const 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 const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n };\n\n const setTranslate = () => {\n const {\n $el,\n slides,\n progress,\n snapGrid\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, progress);\n });\n slides.each((slideEl, slideIndex) => {\n let 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(el => {\n setTransform(el, slideProgress);\n });\n });\n };\n\n const setTransition = (duration = swiper.params.speed) => {\n const {\n $el\n } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(parallaxEl => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n };\n\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { getTranslate } from '../../shared/utils.js';\nexport default function Zoom({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\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 swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let gesturesEnabled;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const gesture = {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n };\n const 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 const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\n const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\n emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n\n });\n\n function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n } // Events\n\n\n function onGestureStart(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureTouched = true;\n gesture.scaleStart = 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(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\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 isScaling = true;\n }\n\n function onGestureChange(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function onGestureEnd(e) {\n const device = swiper.device;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n fakeGestureTouched = false;\n 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 currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n }\n\n function onTouchStart(e) {\n const device = swiper.device;\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\n function onTouchMove(e) {\n const zoom = swiper.zoom;\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 const scaledWidth = image.width * zoom.scale;\n const 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 && !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 - (image.minX - image.currentX + 1) ** 0.8;\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (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\n function onTouchEnd() {\n const zoom = swiper.zoom;\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 let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const 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 const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n const scaledWidth = image.width * zoom.scale;\n const 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\n function onTransitionEnd() {\n const zoom = swiper.zoom;\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 currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n }\n\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\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(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\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\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let 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 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\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\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(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\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\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n\n zoom.scale = 1;\n 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 } // Toggle Zoom\n\n\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n\n function getListeners() {\n const support = swiper.support;\n const passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n function getSlideSelector() {\n return `.${swiper.params.slideClass}`;\n }\n\n function toggleGestures(method) {\n const {\n passiveListener\n } = getListeners();\n const slideSelector = getSlideSelector();\n swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\n swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\n }\n\n function enableGestures() {\n if (gesturesEnabled) return;\n gesturesEnabled = true;\n toggleGestures('on');\n }\n\n function disableGestures() {\n if (!gesturesEnabled) return;\n gesturesEnabled = false;\n toggleGestures('off');\n } // Attach/Detach Events\n\n\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const support = swiper.support;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n const support = swiper.support;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd(e);\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Lazy({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\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 swiper.lazy = {};\n let scrollHandlerAttached = false;\n let initialImageLoaded = false;\n\n function loadInSlide(index, loadInDuplicate = true) {\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n const $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(imageEl => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\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(sourceEl => {\n const $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 const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n const {\n $wrapperEl,\n params: swiperParams,\n slides,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let 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 (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = Math.ceil(slidesPerView);\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (let i = activeIndex + spv; i < maxIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n } // Prev Slides\n\n\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n const window = getWindow();\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n const isWindow = $scrollElement[0] === window;\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const {\n rtlTranslate: rtl\n } = swiper;\n let inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const 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 (let i = 0; i < swiperCoord.length; i += 1) {\n const 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 const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', () => {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', () => {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', () => {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', () => {\n const {\n lazy,\n cssMode,\n watchSlidesProgress,\n touchReleaseOnEdges,\n resistanceRatio\n } = swiper.params;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n on('destroy', () => {\n if (!swiper.$el) return;\n swiper.$el.find(`.${swiper.params.lazy.loadingClass}`).removeClass(swiper.params.lazy.loadingClass);\n });\n Object.assign(swiper.lazy, {\n load,\n loadInSlide\n });\n}","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick } from '../../shared/utils.js';\nexport default function Controller({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n });\n swiper.controller = {\n control: undefined\n };\n\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (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 let i1;\n let 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 } // xxx: for now i will just save one spline function to to\n\n\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const 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 const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n 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 (let 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\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let 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(() => {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(() => {\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\n function removeSpline() {\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\n on('beforeInit', () => {\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport $ from '../../shared/dom.js';\nexport default function A11y({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\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 id: null\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber(size = 16) {\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const $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 notify(params.lastSlideMessage);\n } else {\n 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 notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.each(bulletEl => {\n const $bulletEl = $(bulletEl);\n\n if (swiper.params.pagination.clickable) {\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n }\n\n if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {\n $bulletEl.attr('aria-current', 'true');\n } else {\n $bulletEl.removeAttr('aria-current');\n }\n });\n }\n\n const initNavEl = ($el, wrapperId, message) => {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n const handlePointerDown = () => {\n swiper.a11y.clicked = true;\n };\n\n const handlePointerUp = () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n\n const handleFocus = e => {\n if (swiper.a11y.clicked) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n\n const initSlides = () => {\n const params = swiper.params.a11y;\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n if (params.slideRole) {\n addElRole($(swiper.slides), params.slideRole);\n }\n\n const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n\n if (params.slideLabelMessage) {\n swiper.slides.each((slideEl, index) => {\n const $slideEl = $(slideEl);\n const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n });\n }\n };\n\n const init = () => {\n const params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n const $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = params.id || $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n initSlides(); // Navigation\n\n let $nextEl;\n let $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 initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.on('focus', handleFocus, true);\n swiper.$el.on('pointerdown', handlePointerDown, true);\n swiper.$el.on('pointerup', handlePointerUp, true);\n };\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let $nextEl;\n let $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', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.off('focus', handleFocus, true);\n swiper.$el.off('pointerdown', handlePointerDown, true);\n swiper.$el.off('pointerup', handlePointerUp, true);\n }\n\n on('beforeInit', () => {\n liveRegion = $(``);\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}","import { getWindow } from 'ssr-window';\nexport default function History({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n const slide = swiper.slides.eq(index);\n let value = slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n let 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 if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n\n const 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\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n\n const init = () => {\n const 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 initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) return;\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n\n const destroy = () => {\n const window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function HashNavigation({\n swiper,\n extendParams,\n emit,\n on\n}) {\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n });\n\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n };\n\n const setHash = () => {\n if (!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 emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n emit('hashSet');\n }\n };\n\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n\n if (hash) {\n const speed = 0;\n\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const 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', onHashChange);\n }\n };\n\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', onHashChange);\n }\n };\n\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\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\n function run() {\n if (!swiper.size) {\n swiper.autoplay.running = false;\n swiper.autoplay.paused = false;\n return;\n }\n\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let 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(timeout);\n timeout = nextTick(() => {\n let 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 emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit('autoplayPause');\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","import { isObject } from '../../shared/utils.js';\nimport $ from '../../shared/dom.js';\nexport default function Thumb({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let 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 let 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 const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const 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\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; // Activate thumbs\n\n let thumbsToActivate = 1;\n const 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 (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let 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 const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const 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 }\n }\n\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}","import { now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n\n function onTouchStart() {\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n\n function onTouchMove() {\n const {\n touchEventsData: data,\n touches\n } = swiper; // Velocity\n\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 }\n\n function onTouchEnd({\n currentPos\n }) {\n const {\n params,\n $wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper; // Time diff\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\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.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\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.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\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.freeMode.momentumBounce) {\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.freeMode.sticky) {\n let nextSlide;\n\n for (let 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 once('transitionEnd', () => {\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.freeMode.sticky) {\n // If freeMode.sticky 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 const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const 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.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeMode.momentumBounce && 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(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\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(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}","export default function Grid({\n swiper,\n extendParams\n}) {\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n\n const initSlides = slidesLength => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const {\n slidesPerGroup,\n spaceBetween\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid; // Set slides order\n\n let newSlideOrderIndex;\n let column;\n let row;\n\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.css({\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n\n if (row >= rows) {\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 ? spaceBetween && `${spaceBetween}px` : '');\n };\n\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const {\n spaceBetween,\n centeredSlides,\n roundLengths\n } = swiper.params;\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.$wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`\n });\n\n if (centeredSlides) {\n snapGrid.splice(0, snapGrid.length);\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid.push(...newSlidesGrid);\n }\n };\n\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize\n };\n}","export default function appendSlide(slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let 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) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n let newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let 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) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n const 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 let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let 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 (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let 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) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import appendSlide from './methods/appendSlide.js';\nimport prependSlide from './methods/prependSlide.js';\nimport addSlide from './methods/addSlide.js';\nimport removeSlide from './methods/removeSlide.js';\nimport removeAllSlides from './methods/removeAllSlides.js';\nexport default function Manipulation({\n swiper\n}) {\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return; // remove shadows\n\n swiper.slides.each(slideEl => {\n const $slideEl = swiper.$(slideEl);\n $slideEl.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').remove();\n }); // create new one\n\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}","export default function effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n 'backface-visibility': 'hidden',\n '-webkit-backface-visibility': 'hidden'\n });\n }\n\n return $slideEl;\n}","export default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides\n}) {\n const {\n slides,\n activeIndex,\n $wrapperEl\n } = swiper;\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let $transitionEndTarget;\n\n if (allSlides) {\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n } else {\n $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n }\n\n $transitionEndTarget.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n const 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 const $targetEl = effectTarget(params, $slideEl);\n $targetEl.css({\n opacity: slideOpacity\n }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.fadeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import $ from '../../shared/dom.js';\nimport effectInit from '../../shared/effect-init.js';\nexport default function EffectCube({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n\n const createSlideShadows = ($slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let 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 const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.each(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows($(slideEl), progress, isHorizontal);\n });\n };\n\n const setTranslate = () => {\n const {\n $el,\n $wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $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 (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let 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 const 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 createSlideShadows($slideEl, progress, isHorizontal);\n }\n }\n\n $wrapperEl.css({\n '-webkit-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 const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const 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 const 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 $wrapperEl[0].style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n\n const setTransition = duration => {\n const {\n $el,\n slides\n } = swiper;\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\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}","import $ from './dom.js';\nexport default function createShadow(params, $slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\n\n if (!$shadowEl.length) {\n $shadowEl = $(`
`);\n $shadowContainer.append($shadowEl);\n }\n\n return $shadowEl;\n}","import $ from '../../shared/dom.js';\nimport createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFlip({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n transformEl: null\n }\n });\n\n const createSlideShadows = ($slideEl, progress, params) => {\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\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 const recreateShadows = () => {\n // Set shadows\n const params = swiper.params.flipEffect;\n swiper.slides.each(slideEl => {\n const $slideEl = $(slideEl);\n let progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n\n createSlideShadows($slideEl, progress, params);\n });\n };\n\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let 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 const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let 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 (params.slideShadows) {\n createSlideShadows($slideEl, progress, params);\n }\n\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.flipEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nexport default function EffectCoverflow({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth; // Each slide offset from center\n\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let 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 let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let 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 const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\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\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.coverflowEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n };\n\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCreative({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n creativeEffect: {\n transformEl: null,\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n\n const setTranslate = () => {\n const {\n slides,\n $wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n } // set translate\n\n\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n }); // set rotates\n\n r.forEach((value, index) => {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; // Set shadows\n\n if (custom && data.shadow || !custom) {\n let $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0 && data.shadow) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform).css({\n opacity: opacityString\n });\n\n if (data.origin) {\n $targetEl.css('transform-origin', data.origin);\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.creativeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCards({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cardsEffect: {\n slideShadows: true,\n transformEl: null,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n activeIndex\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = swiper.translate;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = $slideEl[0].swiperSlideOffset;\n\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);\n }\n\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n\n if (progress < 0) {\n // next\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rotate : 0}deg)\n scale(${scaleString})\n `;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowEl = $slideEl.find('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.cardsEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","/**\n * Swiper 8.4.7\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: January 30, 2023\n */\n\nexport { default as Swiper, default } from './core/core.js';\nexport { default as Virtual } from './modules/virtual/virtual.js';\nexport { default as Keyboard } from './modules/keyboard/keyboard.js';\nexport { default as Mousewheel } from './modules/mousewheel/mousewheel.js';\nexport { default as Navigation } from './modules/navigation/navigation.js';\nexport { default as Pagination } from './modules/pagination/pagination.js';\nexport { default as Scrollbar } from './modules/scrollbar/scrollbar.js';\nexport { default as Parallax } from './modules/parallax/parallax.js';\nexport { default as Zoom } from './modules/zoom/zoom.js';\nexport { default as Lazy } from './modules/lazy/lazy.js';\nexport { default as Controller } from './modules/controller/controller.js';\nexport { default as A11y } from './modules/a11y/a11y.js';\nexport { default as History } from './modules/history/history.js';\nexport { default as HashNavigation } from './modules/hash-navigation/hash-navigation.js';\nexport { default as Autoplay } from './modules/autoplay/autoplay.js';\nexport { default as Thumbs } from './modules/thumbs/thumbs.js';\nexport { default as FreeMode } from './modules/free-mode/free-mode.js';\nexport { default as Grid } from './modules/grid/grid.js';\nexport { default as Manipulation } from './modules/manipulation/manipulation.js';\nexport { default as EffectFade } from './modules/effect-fade/effect-fade.js';\nexport { default as EffectCube } from './modules/effect-cube/effect-cube.js';\nexport { default as EffectFlip } from './modules/effect-flip/effect-flip.js';\nexport { default as EffectCoverflow } from './modules/effect-coverflow/effect-coverflow.js';\nexport { default as EffectCreative } from './modules/effect-creative/effect-creative.js';\nexport { default as EffectCards } from './modules/effect-cards/effect-cards.js';"],"sourceRoot":""}