{"version":3,"sources":["webpack:///./node_modules/swiper/esm/react/params-list.js","webpack:///./node_modules/swiper/esm/react/loop.js","webpack:///./node_modules/swiper/esm/react/get-children.js","webpack:///./node_modules/swiper/esm/react/update-swiper.js","webpack:///./node_modules/swiper/esm/react/swiper.js","webpack:///./node_modules/swiper/esm/react/get-params.js","webpack:///./node_modules/swiper/esm/react/init-swiper.js","webpack:///./node_modules/swiper/esm/react/get-changed-params.js","webpack:///./node_modules/swiper/esm/react/virtual.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/swiper/esm/react/swiper-slide.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/components/keyboard/keyboard.js","webpack:///./node_modules/swiper/esm/react/use-isomorphic-layout-effect.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/swiper/esm/react/utils.js"],"names":["paramsList","calcLoopedSlides","slides","swiperParams","slidesPerViewParams","slidesPerView","breakpoints","breakpoint","prototype","getBreakpoint","breakpointOnlyParams","undefined","loopedSlides","Math","ceil","parseFloat","loopAdditionalSlides","length","getChildren","c","slots","Children","toArray","forEach","child","type","displayName","push","props","slot","children","foundSlides","processChildren","slide","updateSwiper","_ref","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","swiper","passedParams","changedParams","nextEl","prevEl","scrollbarEl","paginationEl","updateParams","filter","key","currentParams","params","pagination","navigation","scrollbar","virtual","thumbs","includes","controller","control","el","newValue","mod","destroy","enabled","update","lazy","load","init","render","updateSize","setTranslate","allowSlideNext","allowSlidePrev","changeDirection","direction","_excluded","_extends","Object","assign","target","i","arguments","source","hasOwnProperty","call","apply","this","Swiper","_temp","externalElRef","className","_ref$tag","tag","Tag","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","rest","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","eventsAssigned","_useState","containerClasses","setContainerClasses","_useState2","virtualData","setVirtualData","_useState3","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","obj","on","events","defaults","extendedDefaults","_emitClasses","allowedParams","map","replace","search","toLowerCase","substr","getParams","restProps","_getChildren","onBeforeBreakpoint","_containerClasses","classes","current","initSwiper","loopCreate","loopDestroy","loop","extendWith","cache","renderExternal","renderExternalUpdate","originalParams","off","emitSlidesClasses","mountSwiper","destroyed","eventName","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","join","newKeys","oldKeys","newKey","oldKey","getChangedParams","updateSlides","updateProgress","updateSlidesClasses","parallax","createElement","ref","Fragment","style","isHorizontal","rtlTranslate","offset","top","index","from","to","cloneElement","renderVirtual","modifiedSlides","duplicateSlide","position","slideDuplicateClass","loopFillGroupWithBlank","blankSlidesNum","slidesPerGroup","blankSlide","slideClass","slideBlankClass","prependSlides","appendSlides","concat","renderLoop","Navigation","toggleEl","$el","disabled","disabledClass","tagName","_swiper$navigation","$nextEl","$prevEl","isBeginning","watchOverflow","isLocked","lockClass","isEnd","onPrevClick","e","preventDefault","slidePrev","onNextClick","slideNext","createElements","uniqueNavElements","find","addClass","_swiper$navigation2","removeClass","name","hideOnClick","hiddenClass","create","toEdge","fromEdge","_swiper$navigation3","click","_swiper$navigation4","targetEl","is","clickable","contains","isHidden","hasClass","emit","toggleClass","Pagination","rtl","slidesLength","total","snapGrid","activeIndex","paginationType","snapIndex","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","eq","css","dynamicMainBullets","previousIndex","dynamicBulletIndex","min","bulletActiveClass","each","bullet","$bullet","bulletIndex","prev","next","$firstDisplayedBullet","$lastDisplayedBullet","_i","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","text","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","transform","transition","speed","renderCustom","html","paginationHTML","numberOfBullets","freeMode","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickableClass","modifierClass","progressbarOppositeClass","slideTo","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","SwiperSlide","externalRef","slideData","_ref$className","zoom","virtualIndex","slideElRef","slideClasses","setSlideClasses","updateClasses","classNames","getSlideClasses","isActive","isVisible","isDuplicate","isPrev","isNext","renderChildren","browser","getSupport","window","document","touch","DocumentTouch","pointerEvents","PointerEvent","navigator","maxTouchPoints","observer","passiveListener","supportsPassive","opts","defineProperty","get","addEventListener","gestures","calcSupport","getDevice","overrides","userAgent","support","platform","ua","device","ios","android","screenWidth","screen","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","test","calcBrowser","resize","createObserver","initialized","ResizeObserver","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","removeEventListener","Observer","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","requestAnimationFrame","setTimeout","attributes","childList","characterData","observers","observeParents","containerParents","parents","observeSlideChildren","$wrapperEl","disconnect","onTouchStart","event","data","touchEventsData","touches","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","closest","wrapperEl","isTouchEvent","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","selector","base","__closestFrom","assignedSlot","getRootNode","host","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","threshold","allowThresholdMove","focusableElements","activeElement","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","translate","maxTranslate","minTranslate","diffX","diffY","sqrt","pow","touchAngle","atan2","abs","PI","cssMode","cancelable","touchMoveStopPropagation","nested","stopPropagation","loopFix","startTranslate","getTranslate","setTransition","trigger","allowMomentumBounce","grabCursor","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","velocities","time","onTouchEnd","slidesGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","j","once","moveDistance","currentSlideSize","slidesSizesGrid","slideToClosest","transitionStart","transitionEnd","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","onResize","offsetWidth","setBreakpoint","autoplay","running","paused","run","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollWidth","scrollLeft","scrollTop","translatesDiff","progress","dummyEventAttached","dummyEventListener","initialSlide","updateOnWindowResize","url","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","slideToClickedSlide","preloadImages","updateOnImagesReady","loopPreventsSlide","passiveListeners","containerModifierClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_defineProperties","descriptor","enumerable","configurable","writable","prototypes","modular","useParams","instanceParams","instance","modules","moduleName","module","useModules","modulesParams","moduleParams","moduleEventName","bind","eventsEmitter","handler","priority","self","method","split","eventsListeners","onceHandler","__emitterProxy","_len","args","Array","_key","onAny","eventsAnyListeners","offAny","splice","eventHandler","context","_len2","_key2","isArray","slice","unshift","eventsArray","clientWidth","clientHeight","parseInt","Number","isNaN","size","getDirectionLabel","property","getDirectionPropertyValue","node","label","getPropertyValue","swiperSize","wrongRTL","isVirtual","previousSlidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","floor","max","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","slideStyles","getComputedStyle","currentTransform","currentWebKitTransform","webkitTransform","outerWidth","outerHeight","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","_","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","updateSlidesOffset","updateAutoHeight","activeSlides","getSlideByIndex","getAttribute","visibleSlides","offsetHeight","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","nextAll","prevSlide","prevAll","attr","newActiveIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","axis","byController","x","y","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","duration","dir","initial","Error","indexAsNumber","isFinite","normalizedTranslate","normalizedGird","normalizedGridNext","t","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","_clientLeft","clientLeft","normalize","val","prevIndex","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","remove","blankNode","append","cloneNode","prepend","removeAttr","moving","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","capture","start","move","end","passive","cancel","detachEvents","_swiper$loopedSlides","currentBreakpoint","param","paramValue","breakpointParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","directionChanged","needsReLoop","isEnabled","disable","enable","containerEl","currentHeight","innerHeight","points","point","minRatio","value","sort","a","b","_points$i","matchMedia","matches","wasLocked","lastSlidePosition","addClasses","prefix","resultClasses","suffixes","item","removeClasses","images","loadImage","imageEl","src","srcset","sizes","checkForComplete","callback","image","onReady","parent","complete","Image","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","constructor","toString","swipers","newParams","__swiper__","moduleParamName","auto","desktop","$","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","protoProps","staticProps","_proto","setProgress","slideEl","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","trim","querySelector","res","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","Keyboard","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","nodeName","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","left","swiperCoord","returnValue","useIsomorphicLayoutEffect","deps","deleteProps","object","nextTick","delay","now","Date","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isObject","o","isNode","HTMLElement","nodeType","extend","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","checkProps","element","Methods","styles","methodName","fn","needsNavigation","needsPagination","needsScrollbar","uniqueClasses","unique"],"mappings":"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","file":"js/swiper-b6b460bac8bb2e76e1a7.chunk.js","sourcesContent":["/* underscore in name -> watch for changes */\nvar paramsList = ['init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_freeModeMomentum', '_freeModeMomentumRatio', '_freeModeMomentumBounce', '_freeModeMomentumBounceRatio', '_freeModeMomentumVelocityRatio', '_freeModeSticky', '_freeModeMinimumVelocity', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_slidesPerColumn', '_slidesPerColumnFill', '_slidesPerGroup', '_slidesPerGroupSkip', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_watchSlidesVisibility', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react'; // eslint-disable-next-line\n\nimport Swiper from '../../core';\nfunction calcLoopedSlides(slides, swiperParams) {\n var slidesPerViewParams = swiperParams.slidesPerView;\n if (swiperParams.breakpoints) {\n var breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n var breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n return loopedSlides;\n}\nfunction renderLoop(swiper, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: child.key + \"-duplicate-\" + index + \"-\" + position,\n className: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass\n });\n }\n if (swiperParams.loopFillGroupWithBlank) {\n var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: swiperParams.slideClass + \" \" + swiperParams.slideBlankClass\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n var prependSlides = [];\n var appendSlides = [];\n modifiedSlides.forEach(function (child, index) {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n return [].concat(prependSlides, modifiedSlides, appendSlides);\n}\nexport { calcLoopedSlides, renderLoop };","import React from 'react';\nfunction processChildren(c) {\n var slides = [];\n React.Children.toArray(c).forEach(function (child) {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(function (slide) {\n return slides.push(slide);\n });\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n var slides = [];\n var slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(function (child) {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n var foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(function (slide) {\n return slides.push(slide);\n });\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides: slides,\n slots: slots\n };\n}\nexport { getChildren };","import { isObject, extend } from './utils';\nfunction updateSwiper(_ref) {\n var swiper = _ref.swiper,\n slides = _ref.slides,\n passedParams = _ref.passedParams,\n changedParams = _ref.changedParams,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n scrollbarEl = _ref.scrollbarEl,\n paginationEl = _ref.paginationEl;\n var updateParams = changedParams.filter(function (key) {\n return key !== 'children' && key !== 'direction';\n });\n var currentParams = swiper.params,\n pagination = swiper.pagination,\n navigation = swiper.navigation,\n scrollbar = swiper.scrollbar,\n virtual = swiper.virtual,\n thumbs = swiper.thumbs;\n var needThumbsInit;\n var needControllerInit;\n var needPaginationInit;\n var needScrollbarInit;\n var needNavigationInit;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n var destroyModule = function destroyModule(mod) {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n updateParams.forEach(function (key) {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n var newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n if (needThumbsInit) {\n var initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n swiper.update();\n}\nexport { updateSwiper };","var _excluded = [\"className\", \"tag\", \"wrapperTag\", \"children\", \"onSwiper\"];\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params';\nimport { initSwiper, mountSwiper } from './init-swiper';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils';\nimport { renderLoop, calcLoopedSlides } from './loop';\nimport { getChangedParams } from './get-changed-params';\nimport { getChildren } from './get-children';\nimport { updateSwiper } from './update-swiper';\nimport { renderVirtual, updateOnVirtualData } from './virtual';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n className = _ref.className,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$wrapperTag = _ref.wrapperTag,\n WrapperTag = _ref$wrapperTag === void 0 ? 'div' : _ref$wrapperTag,\n children = _ref.children,\n onSwiper = _ref.onSwiper,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var eventsAssigned = false;\n var _useState = useState('swiper-container'),\n containerClasses = _useState[0],\n setContainerClasses = _useState[1];\n var _useState2 = useState(null),\n virtualData = _useState2[0],\n setVirtualData = _useState2[1];\n var _useState3 = useState(false),\n breakpointChanged = _useState3[0],\n setBreakpointChanged = _useState3[1];\n var initializedRef = useRef(false);\n var swiperElRef = useRef(null);\n var swiperRef = useRef(null);\n var oldPassedParamsRef = useRef(null);\n var oldSlides = useRef(null);\n var nextElRef = useRef(null);\n var prevElRef = useRef(null);\n var paginationElRef = useRef(null);\n var scrollbarElRef = useRef(null);\n var _getParams = getParams(rest),\n swiperParams = _getParams.params,\n passedParams = _getParams.passedParams,\n restProps = _getParams.rest,\n events = _getParams.events;\n var _getChildren = getChildren(children),\n slides = _getChildren.slides,\n slots = _getChildren.slots;\n var onBeforeBreakpoint = function onBeforeBreakpoint() {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses: function _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n if (!swiperElRef.current) {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = initSwiper(swiperParams);\n swiperRef.current.loopCreate = function () {};\n swiperRef.current.loopDestroy = function () {};\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n var extendWith = {\n cache: false,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n } // Listen for breakpoints change\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n var attachEvents = function attachEvents() {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n var detachEvents = function detachEvents() {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(function (eventName) {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(function () {\n return function () {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(function () {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(function () {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return function () {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(function () {\n attachEvents();\n var changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides: slides,\n passedParams: passedParams,\n changedParams: changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return function () {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(function () {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(function (child) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(\"\" + containerClasses + (className ? \" \" + className : ''))\n }, restProps), slots['container-start'], needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { isObject, extend } from './utils';\nimport { paramsList } from './params-list';\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n var params = {\n on: {}\n };\n var events = {};\n var passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n var rest = {};\n var allowedParams = paramsList.map(function (key) {\n return key.replace(/_/, '');\n });\n Object.keys(obj).forEach(function (key) {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n events[\"\" + key[2].toLowerCase() + key.substr(3)] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(function (key) {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params: params,\n passedParams: passedParams,\n rest: rest,\n events: events\n };\n}\nexport { getParams };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils';\nfunction initSwiper(swiperParams) {\n return new Swiper(swiperParams);\n}\nfunction mountSwiper(_ref, swiperParams) {\n var el = _ref.el,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n paginationEl = _ref.paginationEl,\n scrollbarEl = _ref.scrollbarEl,\n swiper = _ref.swiper;\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\nexport { initSwiper, mountSwiper };","import { paramsList } from './params-list';\nimport { isObject } from './utils';\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n var keys = [];\n if (!oldParams) return keys;\n var addKey = function addKey(key) {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n var oldChildrenKeys = oldChildren.map(function (child) {\n return child.key;\n });\n var childrenKeys = children.map(function (child) {\n return child.key;\n });\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n var watchParams = paramsList.filter(function (key) {\n return key[0] === '_';\n }).map(function (key) {\n return key.replace(/_/, '');\n });\n watchParams.forEach(function (key) {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n var newKeys = Object.keys(swiperParams[key]);\n var oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(function (newKey) {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(function (oldKey) {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\nexport { getChangedParams };","import React from 'react';\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\nfunction renderVirtual(swiper, slides, virtualData) {\n var _ref;\n if (!virtualData) return null;\n var style = swiper.isHorizontal() ? (_ref = {}, _ref[swiper.rtlTranslate ? 'right' : 'left'] = virtualData.offset + \"px\", _ref) : {\n top: virtualData.offset + \"px\"\n };\n return slides.filter(function (child, index) {\n return index >= virtualData.from && index <= virtualData.to;\n }).map(function (child) {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiper,\n style: style\n });\n });\n}\nexport { renderVirtual, updateOnVirtualData };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n },\n click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\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 if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n 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 if (params.type === 'progressbar') {\n var progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\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 $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n $el.addClass(params.modifierClass + params.type);\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","var _excluded = [\"tag\", \"children\", \"className\", \"swiper\", \"zoom\", \"virtualIndex\"];\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n swiper = _ref.swiper,\n zoom = _ref.zoom,\n virtualIndex = _ref.virtualIndex,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var slideElRef = useRef(null);\n var _useState = useState('swiper-slide'),\n slideClasses = _useState[0],\n setSlideClasses = _useState[1];\n function updateClasses(swiper, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(function () {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return function () {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(function () {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n var slideData;\n if (typeof children === 'function') {\n slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n }\n var renderChildren = function renderChildren() {\n return typeof children === 'function' ? children(slideData) : children;\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(\"\" + slideClasses + (className ? \" \" + className : '')),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren());\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","import { getWindow, getDocument } from 'ssr-window';\nvar support;\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n 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 if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!device) {\n device = calcDevice(overrides);\n }\n return device;\n}\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\nfunction calcBrowser() {\n var window = getWindow();\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass;\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\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 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 if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\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 if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\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 if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\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 data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\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 return;\n }\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\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 newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\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 if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n } // Find current slide\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n 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 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\nfunction dummyEventListener() {}\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n return swiper;\n }\n var _proto = Swiper.prototype;\n _proto.enable = function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n };\n _proto.disable = function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n };\n _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n };\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n var translated;\n if (swiper.params.freeMode) {\n setTranslate();\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 if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n };\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n var swiper = this;\n var currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n var getWrapperSelector = function getWrapperSelector() {\n return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n };\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n return res;\n }\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n var $wrapperEl = getWrapper();\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\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 swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\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 if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\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 swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n };\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n };\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n return Swiper;\n}();\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\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 data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\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 if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\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 function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n var offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n });\n var slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\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 if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\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 swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n 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 }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n 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 extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n 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 activeSlide.addClass(params.slideActiveClass);\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 var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\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 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 swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n } // Get real index\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\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 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\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 swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\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 if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\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 if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit('transitionStart');\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit('transitionEnd');\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n 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 index = indexAsNumber;\n }\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\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 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, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n 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 return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n 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 var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n var prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(\".\" + params.slideClass);\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 if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n slide.attr('data-swiper-slide-index', index);\n });\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n 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 var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n if (params.loop) {\n swiper.loopDestroy();\n }\n var newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n var baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n 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 if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n if (breakpointParams.slidesPerColumnFill && breakpointParams.slidesPerColumnFill === 'column' || !breakpointParams.slidesPerColumnFill && params.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n swiper.emitContainerClasses();\n }\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n 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 return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n function onReady() {\n if (callback) callback();\n }\n var isPicture = $(imageEl).parent('picture')[0];\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n if (!swiper.enabled) return;\n var window = getWindow();\n var document = getDocument();\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\" + swiper.params.slideClass).length > 0 && swiper.$el.parents(\".\" + swiper.params.slideActiveClass).length === 0) {\n return undefined;\n }\n var $el = swiper.$el;\n var swiperWidth = $el[0].clientWidth;\n var swiperHeight = $el[0].clientHeight;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\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 if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\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 if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n var document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n var document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n keyboard: _extends({\n enabled: false\n }, Keyboard)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};","import { useEffect, useLayoutEffect } from 'react';\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\nexport { useIsomorphicLayoutEffect };","import { getDocument, getWindow } from 'ssr-window';\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n 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 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 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 return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\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 return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\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 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 return to;\n}\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n instance[key] = obj[key];\n });\n}\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return \".\" + classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n return params;\n}\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction extend(target, src) {\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n }).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };"],"sourceRoot":""}