{"version":3,"sources":["../node_modules/ssr-window/ssr-window.esm.js","../node_modules/dom7/dom7.esm.js","../src/utils/dom.js","../src/utils/get-support.js","../src/utils/get-device.js","../src/utils/get-browser.js","../src/utils/utils.js","../src/components/core/events/onResize.js","../src/components/core/events/index.js","../src/components/core/check-overflow/index.js","../src/components/core/defaults.js","../src/components/core/core-class.js","../src/components/core/modular.js","../src/components/core/events-emitter.js","../src/components/core/update/index.js","../src/components/core/update/updateSize.js","../src/components/core/update/updateSlides.js","../src/components/core/update/updateAutoHeight.js","../src/components/core/update/updateSlidesOffset.js","../src/components/core/update/updateSlidesProgress.js","../src/components/core/update/updateProgress.js","../src/components/core/update/updateSlidesClasses.js","../src/components/core/update/updateActiveIndex.js","../src/components/core/update/updateClickedSlide.js","../src/components/core/translate/index.js","../src/components/core/translate/getTranslate.js","../src/components/core/translate/setTranslate.js","../src/components/core/translate/minTranslate.js","../src/components/core/translate/maxTranslate.js","../src/components/core/translate/translateTo.js","../src/components/core/transition/index.js","../src/components/core/transition/setTransition.js","../src/components/core/transition/transitionStart.js","../src/components/core/transition/transitionEnd.js","../src/components/core/slide/index.js","../src/components/core/slide/slideTo.js","../src/components/core/slide/slideToLoop.js","../src/components/core/slide/slideNext.js","../src/components/core/slide/slidePrev.js","../src/components/core/slide/slideReset.js","../src/components/core/slide/slideToClosest.js","../src/components/core/slide/slideToClickedSlide.js","../src/components/core/loop/index.js","../src/components/core/loop/loopCreate.js","../src/components/core/loop/loopFix.js","../src/components/core/loop/loopDestroy.js","../src/components/core/grab-cursor/index.js","../src/components/core/grab-cursor/setGrabCursor.js","../src/components/core/grab-cursor/unsetGrabCursor.js","../src/components/core/manipulation/index.js","../src/components/core/manipulation/appendSlide.js","../src/components/core/manipulation/prependSlide.js","../src/components/core/manipulation/addSlide.js","../src/components/core/manipulation/removeSlide.js","../src/components/core/manipulation/removeAllSlides.js","../src/components/core/events/onTouchStart.js","../src/components/core/events/onTouchMove.js","../src/components/core/events/onTouchEnd.js","../src/components/core/events/onScroll.js","../src/components/core/events/onClick.js","../src/components/core/breakpoints/index.js","../src/components/core/breakpoints/setBreakpoint.js","../src/components/core/breakpoints/getBreakpoint.js","../src/components/core/classes/index.js","../src/components/core/classes/addClasses.js","../src/components/core/classes/removeClasses.js","../src/components/core/images/index.js","../src/components/core/images/loadImage.js","../src/components/core/images/preloadImages.js","../src/modules/resize/resize.js","../src/modules/observer/observer.js","../src/components/virtual/virtual.js","../src/components/keyboard/keyboard.js","../src/components/mousewheel/mousewheel.js","../src/components/navigation/navigation.js","../src/components/pagination/pagination.js","../src/components/scrollbar/scrollbar.js","../src/components/parallax/parallax.js","../src/components/zoom/zoom.js","../src/components/lazy/lazy.js","../src/components/controller/controller.js","../src/components/a11y/a11y.js","../src/components/history/history.js","../src/components/hash-navigation/hash-navigation.js","../src/components/autoplay/autoplay.js","../src/components/effect-fade/effect-fade.js","../src/components/effect-cube/effect-cube.js","../src/components/effect-flip/effect-flip.js","../src/components/effect-coverflow/effect-coverflow.js","../src/components/thumbs/thumbs.js","../src/swiper.js"],"names":["isObject","obj","Object","extend","target","src","key","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","_getPrototypeOf","o","_setPrototypeOf","p","_construct","Parent","args","Class","Reflect","construct","sham","Proxy","e","_isNativeReflectConstruct","a","instance","Function","arguments","_wrapNativeSuper","_cache","Map","undefined","fn","TypeError","Wrapper","constructor","create","prototype","value","enumerable","writable","configurable","Dom7","_Array","subClass","superClass","items","proto","_this","concat","self","ReferenceError","_assertThisInitialized","makeReactive","__proto__","get","set","_inheritsLoose","Array","arrayFlat","arr","res","el","arrayFilter","$","selector","context","html","trim","toCreate","tempParent","i","length","qsa","uniqueArray","arrayUnique","support","device","browser","Methods","addClass","_len","classes","_key","classNames","map","c","forEach","_el$classList","classList","add","apply","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","filter","className","toggleClass","_len3","_key3","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","on","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","_parents","parents","k","handleEvent","j","events","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","trigger","_len9","_key9","evt","detail","bubbles","cancelable","data","dataIndex","dom7EventData","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","parseFloat","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollLeft","top","left","css","props","_prop","each","index","innerHTML","text","textContent","is","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","find","foundElements","found","removeChild","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","split","join","m41","m42","isObject$1","extend$1","to","nextSource","keysArray","nextIndex","len","nextKey","desc","bindModuleMethods","subKey","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","observer","passiveListener","supportsPassive","opts","defineProperty","gestures","getDevice","overrides","_temp","platform","ua","screenWidth","screenHeight","android","ipad","ipod","iphone","windows","macos","ios","width","height","iPadScreens","getBrowser","isEdge","isSafari","toLowerCase","isWebView","test","onResize","allowSlideNext","allowSlidePrev","snapGrid","swiper","params","breakpoints","isEnd","isBeginning","centeredSlides","paused","methodName","dummyEventAttached","dummyEventListener","defaults","init","direction","touchEventsTarget","initialSlide","speed","cssMode","updateOnWindowResize","preventInteractionOnTransition","url","edgeSwipeDetection","edgeSwipeThreshold","freeMode","freeModeMomentum","freeModeMomentumRatio","freeModeMomentumBounce","freeModeMomentumBounceRatio","freeModeMomentumVelocityRatio","freeModeSticky","freeModeMinimumVelocity","autoHeight","setWrapperSize","virtualTranslate","effect","spaceBetween","slidesPerView","slidesPerColumn","slidesPerColumnFill","slidesPerGroup","slidesPerGroupSkip","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","swipeHandler","noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","modular","useParams","instanceParams","modules","moduleName","module","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","method","once","onceHandler","__emitterProxy","onAny","offAny","eventsAnyListeners","eventsListeners","eventHandler","emit","eventsArray","update","updateSize","$el","isHorizontal","isVertical","parseInt","Number","size","updateSlides","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","enabled","previousSlidesLength","slides","slidesLength","slidesGrid","slidesSizesGrid","slidesForMargin","slideEl","slideIndex","offsetBefore","offsetAfter","slidesNumberEvenToRows","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","marginLeft","marginTop","marginRight","marginBottom","Math","newSlidesGrid","allSlidesSize","maxSnap","allSlidesOffset","slidesPerRow","numFullColumns","slideSize","groupIndex","slideIndexInGroup","columnsInGroup","row","column","newSlideOrderIndex","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","paddingTop","paddingBottom","slide","-webkit-box-ordinal-group","-moz-box-ordinal-group","-ms-flex-order","-webkit-order","order","webkitTransform","slidesGridItem","_i","_i2","slideSizeValue","snap","_allSlidesSize","snapIndex","updateAutoHeight","activeSlides","newHeight","updateSlidesOffset","updateSlidesProgress","translate","swiperSlideOffset","offsetCenter","slideBefore","slideAfter","slideProgress","updateProgress","multiplier","translatesDiff","minTranslate","progress","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","activeIndex","realIndex","nextSlide","prevSlide","updateActiveIndex","newActiveIndex","skip","previousIndex","previousRealIndex","previousSnapIndex","updateClickedSlide","slideFound","currentTranslate","setTranslate","byController","wrapperEl","x","y","newProgress","maxTranslate","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","animating","onTranslateToWrapperTransitionEnd","destroyed","setTransition","transitionStart","dir","slideTo","t","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","increment","loopFix","slidePrev","normalize","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","currentSnap","slideToIndex","clickedIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","diff","loopDestroy","setGrabCursor","moving","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","$targetEl","startX","startY","preventDefault","shouldPreventDefault","touchEventsData","touches","originalEvent","isTouchEvent","isMoved","currentX","currentY","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","isTouched","allowTouchCallbacks","isScrolling","startMoving","formElements","onTouchStart","targetTouch","pageX","pageY","preventedByNestedSwiper","diffX","diffY","pow","nested","disableParentSwiper","startTranslate","allowThresholdMove","position","time","touchStartTime","onTouchMove","currentPos","lastMoveEvent","velocityEvent","distance","touchEndTime","timeDiff","allowClick","swipeDirection","pop","momentumDuration","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","moveDistance","currentSlideSize","doBounce","bounceAmount","allowMomentumBounce","velocity","stopIndex","groupSize","_increment","ratio","prevEl","nextEl","onTouchEnd","onScroll","onClick","start","passive","cancel","detachEvents","setBreakpoint","breakpoint","breakpointOnlyParams","breakpointParams","wasMultiRow","isMultiRow","directionChanged","needsReLoop","initialized","_swiper$loopedSlides","param","paramValue","originalParams","getBreakpoint","points","keys","point","minRatio","b","_points$i","innerWidth","checkOverflow","wasLocked","isLocked","lastSlidePosition","navigation","addClasses","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","extendedDefaults","Swiper","prototypeGroup","protoMethod","moduleParamName","swiperParams","eventName","desktop","swipers","containerEl","newParams","options","previousTranslate","move","end","touchEventsDesktop","lastClickTime","clickTimeout","velocities","imagesToLoad","imagesLoaded","emitContainerClasses","emitSlidesClasses","slidesPerViewDynamic","spv","breakLoop","swiperSlideSize","translateValue","translated","changeDirection","needUpdate","currentDirection","newDirection","destroy","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","name","use","m","Resize","resize","resizeHandler","orientationChangeHandler","Observer","attach","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","containerParents","observeSlideChildren","Observer$1","_extends","observers","Virtual","force","_swiper$params","_swiper$params$virtua","virtual","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","slidesAfter","offsetProp","slidesBefore","onRendered","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","$slideEl","cache","newCache","numberOfNewSlides","cachedIndex","$cachedEl","cachedElIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","handle","kc","charCode","pageUpDown","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","metaKey","inView","windowWidth","windowHeight","innerHeight","swiperOffset","swiperCoord","enable","disable","Keyboard$1","keyboard","onlyInViewport","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","element","isSupported","implementation","hasFeature","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","handleMouseLeave","mousewheel","mouseEntered","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","newEvent","ignoreWheelEvents","prevEvent","firstEvent","snapToThreshold","sensitivity","shift","timeout","autoplayDisableOnInteraction","stop","raw","animateSlider","getTime","releaseScroll","Navigation","_swiper$navigation","$nextEl","$prevEl","onPrevClick","onNextClick","_swiper$navigation2","Pagination","pagination","current","progressbarDirection","scale","scaleX","scaleY","total","firstIndex","lastIndex","midIndex","dynamicBulletsLength","bulletsOffset","bullets","dynamicBullets","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicMainBullets","bulletSize","progressbarOpposite","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletElement","bulletClass","renderFraction","currentClass","totalClass","renderProgressbar","progressbarFillClass","clickable","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","divider","moveDivider","virtualSize","getPointerPosition","clientX","clientY","setDragPosition","dragStartPos","positionRatio","onDragStart","onDragMove","onDragEnd","snapOnRelease","enableDraggable","touchEventsTouch","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Parallax","setTransform","currentOpacity","currentScale","opacity","parallaxEl","$parallaxEl","parallaxDuration","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","$imageEl","onGestureChange","scaleStart","maxRatio","onGestureEnd","fakeGestureTouched","fakeGestureMoved","scaledWidth","scaledHeight","slideHeight","isScaling","minX","maxX","minY","maxY","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","$imageWrapEl","toggle","in","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","slideWidth","offsetX","offsetY","out","toggleGestures","slideSelector","enableGestures","gesturesEnabled","disableGestures","activeListenerWithCapture","Lazy","loadInSlide","loadInDuplicate","$images","lazy","loadingClass","background","$pictureEl","slideOriginalIndex","originalSlide","duplicatedSlide","sourceEl","$source","load","slideExist","initialImageLoaded","loadPrevNext","amount","loadPrevNextAmount","maxIndex","minIndex","Controller","LinearSpline","guess","i1","i3","binarySearch","array","interpolate","getInterpolateFunction","spline","_setTranslate","controlledTranslate","controlled","control","setControlledTranslate","inverse","setControlledTransition","A11y","makeElFocusable","makeElNotFocusable","addElRole","role","addElLabel","label","disableEl","enableEl","onEnterKey","a11y","notify","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","History","setHistoryPopState","getPathValues","urlOverride","URL","pathArray","slice","part","setHistory","currentState","state","slugify","scrollToSlide","slideHistory","HashNavigation","onHashCange","newHash","setHash","slideHash","watchState","Autoplay","run","$activeSlideEl","reverseDirection","stopOnLastSlide","running","pause","waitForTransition","onVisibilityChange","Fade","tx","ty","slideOpacity","eventTriggered","triggerEvents","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","shadow","shadowAngle","scale1","scale2","slideAngle","round","tz","shadowBefore","shadowAfter","slideShadows","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","transform-origin","PI","shadowScale","shadowOffset","zFactor","Flip","limitRotation","rotateY","rotateX","Coverflow","coverflowEffect","center","rotate","depth","offsetMultiplier","modifier","translateZ","stretch","$shadowBeforeEl","$shadowAfterEl","slideTransform","Thumbs","thumbsParams","thumbs","SwiperClass","onThumbClick","clickedSlide","currentIndex","thumbsSwiper","slideThumbActiveClass","initial","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","newThumbsIndex","autoScrollOffset","useOffset","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","components","eventsTarget","hideOnClick","disabledClass","hiddenClass","lockClass","toEdge","fromEdge","click","isHidden","_swiper$navigation3","type","formatFractionCurrent","number","formatFractionTotal","bulletActiveClass","modifierClass","progressbarOppositeClass","clickableClass","dynamicBulletIndex","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","dragTimeout","parallax","containerClass","zoomedSlideClass","touchesStart","touchesCurrent","touchStart","touchEnd","doubleTap","slideChange","loadOnTransitionStart","elementClass","loadedClass","preloaderClass","scroll","scrollbarDragMove","controller","by","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","paginationUpdate","hashNavigation","autoplay","disableOnInteraction","beforeTransitionStart","sliderFirstMove","fadeEffect","crossFade","flipEffect","thumbsContainerClass","beforeDestroy"],"mappings":"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","file":"bootstrap-fvg.plugin.swiper.min.js","sourcesContent":["/**\n * SSR Window 3.0.0-alpha.4\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 20, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 3.0.0-alpha.7\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: July 14, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transition = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import {\n $,\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove,\n} from 'dom7';\n\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n $.fn[methodName] = Methods[methodName];\n});\n\nexport default $;\n","import { getWindow, getDocument } from 'ssr-window';\n\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n\n return {\n touch: !!(\n 'ontouchstart' in window ||\n (window.DocumentTouch && document instanceof window.DocumentTouch)\n ),\n\n pointerEvents:\n !!window.PointerEvent &&\n 'maxTouchPoints' in window.navigator &&\n window.navigator.maxTouchPoints >= 0,\n\n observer: (function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n })(),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n })(),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n })(),\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nexport { getSupport };\n","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\n\nlet device;\n\nfunction calcDevice({ userAgent } = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n const iPadScreens = [\n '1024x1366',\n '1366x1024',\n '834x1194',\n '1194x834',\n '834x1112',\n '1112x834',\n '768x1024',\n '1024x768',\n ];\n if (\n !ipad &&\n macos &&\n support.touch &&\n iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n }\n\n // Android\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 }\n\n // Export object\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!device) {\n device = calcDevice(overrides);\n }\n return device;\n}\n\nexport { getDevice };\n","import { getWindow } from 'ssr-window';\n\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nexport { getBrowser };\n","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform\n .split(', ')\n .map((a) => a.replace(',', '.'))\n .join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix =\n curStyle.MozTransform ||\n curStyle.OTransform ||\n curStyle.MsTransform ||\n curStyle.msTransform ||\n curStyle.transform ||\n curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // 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;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // 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 && o.constructor === Object;\n}\nfunction extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach((key) => {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach((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}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods };\n","export default function onResize() {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n swiper.updateSlidesClasses();\n if (\n (params.slidesPerView === 'auto' || params.slidesPerView > 1) &&\n swiper.isEnd &&\n !swiper.isBeginning &&\n !swiper.params.centeredSlides\n ) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n","import { getDocument } from 'ssr-window';\n\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\n\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const { params, touchEvents, el, wrapperEl, device, support } = swiper;\n\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\n swiper.onClick = onClick.bind(swiper);\n\n const capture = !!params.nested;\n\n // Touch Events\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 const passiveListener =\n touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(\n touchEvents.move,\n swiper.onTouchMove,\n support.passiveListener ? { passive: false, capture } : capture,\n );\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 (\n (params.simulateTouch && !device.ios && !device.android) ||\n (params.simulateTouch && !support.touch && device.ios)\n ) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\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 }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper.on(\n device.ios || device.android\n ? 'resize orientationchange observerUpdate'\n : 'resize observerUpdate',\n onResize,\n true,\n );\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n const swiper = this;\n const document = getDocument();\n\n const { params, touchEvents, el, wrapperEl, device, support } = swiper;\n\n const capture = !!params.nested;\n\n // Touch Events\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 const passiveListener =\n touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners\n ? { passive: true, 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 (\n (params.simulateTouch && !device.ios && !device.android) ||\n (params.simulateTouch && !support.touch && device.ios)\n ) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n swiper.off(\n device.ios || device.android\n ? 'resize orientationchange observerUpdate'\n : 'resize observerUpdate',\n onResize,\n );\n}\n\nexport default {\n attachEvents,\n detachEvents,\n};\n","function checkOverflow() {\n const swiper = this;\n const params = swiper.params;\n const wasLocked = swiper.isLocked;\n const lastSlidePosition =\n swiper.slides.length > 0 &&\n params.slidesOffsetBefore +\n params.spaceBetween * (swiper.slides.length - 1) +\n swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default { 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\n // Overrides\n width: null,\n height: null,\n\n //\n preventInteractionOnTransition: false,\n\n // ssr\n userAgent: null,\n url: null,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\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\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\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, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\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\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // 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\n // Callbacks\n runCallbacksOnInit: true,\n\n // Internals\n _emitClasses: false,\n};\n","/* eslint no-param-reassign: \"off\" */\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';\n\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\n\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';\n\nimport defaults from './defaults';\n\nconst prototypes = {\n modular,\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n // Swiper Instance\n const swiper = this;\n swiper.support = getSupport();\n swiper.device = getDevice({ userAgent: params.userAgent });\n swiper.browser = getBrowser();\n\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n Object.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object' &&\n !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach((eventName) => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((containerEl) => {\n const newParams = extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n\n // Find Wrapper\n let $wrapperEl;\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(`.${swiper.params.wrapperClass}`));\n // Children needs to return slot items\n $wrapperEl.children = (options) => $el.children(options);\n } else {\n $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n }\n // Extend Swiper\n extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate:\n swiper.params.direction === 'horizontal' &&\n (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n let 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\n ? swiper.touchEventsTouch\n : swiper.touchEventsDesktop;\n })(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n });\n\n // Install Modules\n swiper.useModules();\n\n swiper.emit('_swiper');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const classes = swiper.el.className.split(' ').filter((className) => {\n return (\n className.indexOf('swiper-container') === 0 ||\n className.indexOf(swiper.params.containerModifierClass) === 0\n );\n });\n swiper.emit('_containerClasses', classes.join(' '));\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n swiper.slides.each((slideEl) => {\n const classes = slideEl.className.split(' ').filter((className) => {\n return (\n className.indexOf('swiper-slide') === 0 ||\n className.indexOf(swiper.params.slideClass) === 0\n );\n });\n swiper.emit('_slideClass', slideEl, classes.join(' '));\n });\n }\n\n slidesPerViewDynamic() {\n const swiper = this;\n const { params, slides, slidesGrid, size: swiperSize, activeIndex } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(\n Math.max(translateValue, swiper.maxTranslate()),\n swiper.minTranslate(),\n );\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if (\n (swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) &&\n swiper.isEnd &&\n !swiper.params.centeredSlides\n ) {\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\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (\n newDirection === currentDirection ||\n (newDirection !== 'horizontal' && newDirection !== 'vertical')\n ) {\n return swiper;\n }\n\n swiper.$el\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection}`)\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each((slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n\n return swiper;\n }\n\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(\n swiper.params.initialSlide + swiper.loopedSlides,\n 0,\n swiper.params.runCallbacksOnInit,\n );\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const { params, $el, $wrapperEl, slides } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass(\n [\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '),\n )\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n const name = module.name || `${Object.keys(Swiper.prototype.modules).length}_${now()}`;\n Swiper.prototype.modules[name] = module;\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach((m) => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\n\nexport default Swiper;\n","import { extend } from '../../utils/utils';\n\nexport default {\n useParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n },\n};\n","/* eslint-disable no-underscore-dangle */\n\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (\n eventHandler === handler ||\n (eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler)\n ) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\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 const eventsArray = Array.isArray(events) ? events : events.split(' ');\n\n eventsArray.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n },\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';\n\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n","import { extend } from '../../../utils/utils';\n\nexport default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $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.width !== 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 }\n\n // Subtract paddings\n width =\n width -\n parseInt($el.css('padding-left') || 0, 10) -\n parseInt($el.css('padding-right') || 0, 10);\n height =\n height -\n parseInt($el.css('padding-top') || 0, 10) -\n parseInt($el.css('padding-bottom') || 0, 10);\n\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n\n extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n","import { getWindow } from 'ssr-window';\nimport { extend } from '../../../utils/utils';\n\nexport default function updateSlides() {\n const swiper = this;\n const window = getWindow();\n const params = swiper.params;\n\n const { $wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let 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\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (\n Math.floor(slidesLength / params.slidesPerColumn) ===\n slidesLength / swiper.params.slidesPerColumn\n ) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows =\n Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(\n slidesNumberEvenToRows,\n params.slidesPerView * params.slidesPerColumn,\n );\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n const slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n const columnsInGroup =\n groupIndex === 0\n ? params.slidesPerGroup\n : Math.min(\n Math.ceil(\n (slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) /\n slidesPerColumn,\n ),\n params.slidesPerGroup,\n );\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n\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(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n row !== 0 && params.spaceBetween && `${params.spaceBetween}px`,\n );\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const 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 if (swiper.isHorizontal()) {\n const width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n const height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\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\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0)\n 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 (\n (index - Math.min(swiper.params.slidesPerGroupSkip, index)) %\n swiper.params.slidesPerGroup ===\n 0\n )\n snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (params.setWrapperSize) {\n if (swiper.isHorizontal())\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`,\n });\n else\n $wrapperEl.css({\n height: `${swiper.virtualSize + params.spaceBetween}px`,\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize =\n Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal())\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`,\n });\n else\n $wrapperEl.css({\n height: `${swiper.virtualSize + params.spaceBetween}px`,\n });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let 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 }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (\n Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) >\n 1\n ) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({ marginLeft: `${spaceBetween}px` });\n else slides.filter(slidesForMargin).css({ marginRight: `${spaceBetween}px` });\n } else slides.filter(slidesForMargin).css({ marginBottom: `${spaceBetween}px` });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map((snap) => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\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\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each((slide) => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\n","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal()\n ? slides[i].offsetLeft\n : slides[i].offsetTop;\n }\n}\n","import $ from '../../../utils/dom';\n\nexport default function updateSlidesProgress(translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress =\n (offsetCenter +\n (params.centeredSlides ? swiper.minTranslate() : 0) -\n slide.swiperSlideOffset) /\n (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible =\n (slideBefore >= 0 && slideBefore < swiper.size - 1) ||\n (slideAfter > 1 && slideAfter <= swiper.size) ||\n (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}\n","import { extend } from '../../../utils/utils';\n\nexport default function updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = (swiper && swiper.translate && swiper.translate * multiplier) || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const 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,\n isBeginning,\n isEnd,\n });\n\n if (\n params.watchSlidesProgress ||\n params.watchSlidesVisibility ||\n (params.centeredSlides && params.autoHeight)\n )\n swiper.updateSlidesProgress(translate);\n\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\n swiper.emit('progress', progress);\n}\n","export default function updateSlidesClasses() {\n const swiper = this;\n\n const { slides, params, $wrapperEl, activeIndex, realIndex } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(\n `${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`,\n );\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\n `.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`,\n );\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(\n `.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`,\n )\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(\n `.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`,\n )\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide\n .nextAll(`.${params.slideClass}`)\n .eq(0)\n .addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide\n .prevAll(`.${params.slideClass}`)\n .eq(0)\n .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\n .children(\n `.${params.slideClass}:not(.${\n params.slideDuplicateClass\n })[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`,\n )\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(\n `.${params.slideClass}.${\n params.slideDuplicateClass\n }[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`,\n )\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(\n `.${params.slideClass}:not(.${\n params.slideDuplicateClass\n })[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`,\n )\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(\n `.${params.slideClass}.${\n params.slideDuplicateClass\n }[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`,\n )\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}\n","import { extend } from '../../../utils/utils';\n\nexport default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (\n translate >= slidesGrid[i] &&\n translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2\n ) {\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 }\n // Normalize slideIndex\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 const 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 }\n\n // Get real index\n const realIndex = parseInt(\n swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex,\n 10,\n );\n\n extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n 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}\n","import $ from '../../../utils/dom';\n\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\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 = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (\n params.slideToClickedSlide &&\n swiper.clickedIndex !== undefined &&\n swiper.clickedIndex !== swiper.activeIndex\n ) {\n swiper.slideToClickedSlide();\n }\n}\n","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\n\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo,\n};\n","import { getTranslate } from '../../../utils/utils';\n\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const { params, rtlTranslate: rtl, translate, $wrapperEl } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n","export default function setTranslate(translate, byController) {\n const swiper = this;\n const { rtlTranslate: rtl, params, $wrapperEl, wrapperEl, progress } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const 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\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n","export default function minTranslate() {\n return -this.snapGrid[0];\n}\n","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n","export default function translateTo(\n translate = 0,\n speed = this.params.speed,\n runCallbacks = true,\n translateBounds = true,\n internal,\n) {\n const swiper = this;\n\n const { params, wrapperEl } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\n else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const 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 wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\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(\n 'transitionend',\n swiper.onTranslateToWrapperTransitionEnd,\n );\n swiper.$wrapperEl[0].removeEventListener(\n 'webkitTransitionEnd',\n swiper.onTranslateToWrapperTransitionEnd,\n );\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener(\n 'transitionend',\n swiper.onTranslateToWrapperTransitionEnd,\n );\n swiper.$wrapperEl[0].addEventListener(\n 'webkitTransitionEnd',\n swiper.onTranslateToWrapperTransitionEnd,\n );\n }\n }\n\n return true;\n}\n","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\n\nexport default {\n setTransition,\n transitionStart,\n transitionEnd,\n};\n","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}\n","export default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n","export default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex, params } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\n\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide,\n};\n","export default function slideTo(\n index = 0,\n speed = this.params.speed,\n runCallbacks = true,\n internal,\n) {\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (\n !swiper.allowSlideNext &&\n translate < swiper.translate &&\n translate < swiper.minTranslate()\n ) {\n return false;\n }\n if (\n !swiper.allowSlidePrev &&\n translate > swiper.translate &&\n translate > swiper.maxTranslate()\n ) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\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 const isH = swiper.isHorizontal();\n let 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 wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n 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(\n 'transitionend',\n swiper.onSlideToWrapperTransitionEnd,\n );\n swiper.$wrapperEl[0].removeEventListener(\n 'webkitTransitionEnd',\n swiper.onSlideToWrapperTransitionEnd,\n );\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(\n 'webkitTransitionEnd',\n swiper.onSlideToWrapperTransitionEnd,\n );\n }\n }\n\n return true;\n}\n","export default function slideToLoop(\n index = 0,\n speed = this.params.speed,\n runCallbacks = true,\n internal,\n) {\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating, snapGrid, slidesGrid, rtlTranslate } = swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const 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 const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach((snap) => {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n let 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}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(\n speed = this.params.speed,\n runCallbacks = true,\n internal,\n threshold = 0.5,\n) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n 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\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\n\nexport default function slideToClickedSlide() {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView =\n params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let 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 (\n slideToIndex < swiper.loopedSlides - slidesPerView / 2 ||\n slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(\n `.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`,\n )\n .eq(0)\n .index();\n\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(\n `.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`,\n )\n .eq(0)\n .index();\n\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\n\nexport default {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\n\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(\n `${params.slideClass} ${params.slideBlankClass}`,\n );\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\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\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const 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 (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n","export default function loopFix() {\n const swiper = this;\n\n swiper.emit('beforeLoopFix');\n\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const 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 const 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\n swiper.emit('loopFix');\n}\n","export default function loopDestroy() {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl\n .children(\n `.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`,\n )\n .remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\n\nexport default {\n setGrabCursor,\n unsetGrabCursor,\n};\n","export default function setGrabCursor(moving) {\n const swiper = this;\n if (\n swiper.support.touch ||\n !swiper.params.simulateTouch ||\n (swiper.params.watchOverflow && swiper.isLocked) ||\n swiper.params.cssMode\n )\n return;\n const 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}\n","export default function unsetGrabCursor() {\n const swiper = this;\n if (\n swiper.support.touch ||\n (swiper.params.watchOverflow && swiper.isLocked) ||\n swiper.params.cssMode\n ) {\n return;\n }\n swiper.el.style.cursor = '';\n}\n","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\n\nexport default {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides,\n};\n","export default function appendSlide(slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}\n","export default function prependSlide(slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n 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}\n","export default function addSlide(index, slides) {\n const swiper = this;\n const { $wrapperEl, params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const 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 let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex =\n activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n 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}\n","export default function removeSlide(slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n","export default function removeAllSlides() {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n\n const data = swiper.touchEventsData;\n const { params, touches } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const $targetEl = $(e.target);\n\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;\n if (\n params.noSwiping &&\n $targetEl.closest(\n params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`,\n )[0]\n ) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection &&\n (startX <= edgeSwipeThreshold || startX >= window.screen.width - edgeSwipeThreshold)\n ) {\n return;\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\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 let preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n if (\n document.activeElement &&\n $(document.activeElement).is(data.formElements) &&\n document.activeElement !== $targetEl[0]\n ) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault =\n preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\n","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\n\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl } = swiper;\n let 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 const targetTouch =\n e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n 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 (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) ||\n (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) ||\n (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold)\n return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (\n (swiper.isHorizontal() && touches.currentY === touches.startY) ||\n (swiper.isVertical() && touches.currentX === touches.startX)\n ) {\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()\n ? touchAngle > params.touchAngle\n : 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\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;\n // Grab Cursor\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\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n let disableParentSwiper = true;\n let 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)\n data.currentTranslate =\n swiper.minTranslate() -\n 1 +\n (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance)\n data.currentTranslate =\n swiper.maxTranslate() +\n 1 -\n (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (\n !swiper.allowSlideNext &&\n swiper.swipeDirection === 'next' &&\n data.currentTranslate < data.startTranslate\n ) {\n data.currentTranslate = data.startTranslate;\n }\n if (\n !swiper.allowSlidePrev &&\n swiper.swipeDirection === 'prev' &&\n data.currentTranslate > data.startTranslate\n ) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\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()\n ? touches.currentX - touches.startX\n : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\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 }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n","import { now, nextTick } from '../../../utils/utils';\n\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n\n const { params, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid } = swiper;\n let 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 }\n // Return Grab Cursor\n if (\n params.grabCursor &&\n data.isMoved &&\n data.isTouched &&\n (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)\n ) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\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\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (\n !data.isTouched ||\n !data.isMoved ||\n !swiper.swipeDirection ||\n touches.diff === 0 ||\n data.currentTranslate === data.startTranslate\n ) {\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\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n 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\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const 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 }\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 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\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let 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 let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (\n Math.abs(snapGrid[nextSlide] - newPosition) <\n Math.abs(snapGrid[nextSlide - 1] - newPosition) ||\n swiper.swipeDirection === 'next'\n ) {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\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 const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const 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\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(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n 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(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (\n let i = 0;\n i < slidesGrid.length;\n i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup\n ) {\n const 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 }\n\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget =\n swiper.navigation &&\n (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}\n","export default function onScroll() {\n const swiper = this;\n const { wrapperEl, rtlTranslate } = swiper;\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 }\n // eslint-disable-next-line\n if (swiper.translate === -0) swiper.translate = 0;\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n let newProgress;\n const 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\n swiper.emit('setTranslate', swiper.translate, false);\n}\n","export default function onClick(e) {\n const swiper = this;\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}\n","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\n\nexport default { setBreakpoint, getBreakpoint };\n","import { extend } from '../../../utils/utils';\n\nexport default function setBreakpoint() {\n const swiper = this;\n const { activeIndex, initialized, loopedSlides = 0, params, $el } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n [\n 'slidesPerView',\n 'spaceBetween',\n 'slidesPerGroup',\n 'slidesPerGroupSkip',\n 'slidesPerColumn',\n ].forEach((param) => {\n const 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\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = params.slidesPerColumn > 1;\n const isMultiRow = breakpointParams.slidesPerColumn > 1;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(\n `${params.containerModifierClass}multirow ${params.containerModifierClass}multirow-column`,\n );\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}multirow`);\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(`${params.containerModifierClass}multirow-column`);\n }\n swiper.emitContainerClasses();\n }\n\n const directionChanged =\n breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop =\n params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}\n","import { getWindow } from 'ssr-window';\n\nexport default function getBreakpoints(breakpoints) {\n const window = getWindow();\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n\n const points = Object.keys(breakpoints).map((point) => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = window.innerHeight * minRatio;\n return { value, point };\n }\n return { value: point, point };\n });\n\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const { point, value } = points[i];\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\n\nexport default { addClasses, removeClasses };\n","export default function addClasses() {\n const swiper = this;\n const { classNames, params, rtl, $el, device } = swiper;\n const suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n if (device.android) {\n suffixes.push('android');\n }\n if (device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n\n swiper.emitContainerClasses();\n}\n","export default function removeClasses() {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}\n","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\n\nexport default {\n loadImage,\n preloadImages,\n};\n","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\n\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n function onReady() {\n if (callback) callback();\n }\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n 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}\n","export default function preloadImages() {\n const 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 (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady,\n );\n }\n}\n","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nexport default {\n name: 'resize',\n create() {\n const swiper = this;\n extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init(swiper) {\n const window = getWindow();\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy(swiper) {\n const window = getWindow();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n","import { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst Observer = {\n attach(target, options = {}) {\n const window = getWindow();\n const swiper = this;\n\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc((mutations) => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n\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\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren,\n });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n observer: {\n ...Observer,\n observers: [],\n },\n });\n },\n on: {\n init(swiper) {\n swiper.observer.init();\n },\n destroy(swiper) {\n swiper.observer.destroy();\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Virtual = {\n update(force) {\n const swiper = this;\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n renderSlide,\n offset: previousOffset,\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n\n extend(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n swiper.updateProgress();\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: (function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n })(),\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl\n .find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`)\n .remove();\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n appendIndexes.forEach((index) => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes\n .sort((a, b) => b - a)\n .forEach((index) => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n },\n renderSlide(slide, index) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n const $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index))\n : $(\n `
${slide}
`,\n );\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n },\n appendSlide(slides) {\n const swiper = this;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n swiper.virtual.update(true);\n },\n prependSlide(slides) {\n const swiper = this;\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach((cachedIndex) => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide(slidesIndexes) {\n const swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides() {\n const swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n};\n\nexport default {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n virtual: {\n ...Virtual,\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true,\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n },\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n const window = getWindow();\n const document = getDocument();\n const { rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (\n !swiper.allowSlideNext &&\n ((swiper.isHorizontal() && isArrowRight) ||\n (swiper.isVertical() && isArrowDown) ||\n isPageDown)\n ) {\n return false;\n }\n if (\n !swiper.allowSlidePrev &&\n ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)\n ) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (\n document.activeElement &&\n document.activeElement.nodeName &&\n (document.activeElement.nodeName.toLowerCase() === 'input' ||\n document.activeElement.nodeName.toLowerCase() === 'textarea')\n ) {\n return undefined;\n }\n if (\n swiper.params.keyboard.onlyInViewport &&\n (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)\n ) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (\n swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 &&\n swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0\n ) {\n return undefined;\n }\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\n ];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\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();\n else e.returnValue = false;\n }\n if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl))\n swiper.slideNext();\n if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl))\n swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();\n 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() {\n const swiper = this;\n const document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n const document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n keyboard: {\n enabled: false,\n ...Keyboard,\n },\n });\n },\n on: {\n init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n const document = getDocument();\n const eventName = 'onwheel';\n let isSupported = eventName in document;\n\n if (!isSupported) {\n const element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (\n !isSupported &&\n document.implementation &&\n document.implementation.hasFeature &&\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event() {\n const window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges)\n return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n else return true;\n } else {\n delta =\n Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event,\n };\n\n // Keep the most recent events\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length\n ? recentWheelEvents[recentWheelEvents.length - 1]\n : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (\n newEvent.direction !== prevEvent.direction ||\n newEvent.delta > prevEvent.delta ||\n newEvent.time > prevEvent.time + 150\n ) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n };\n const { lastEventBeforeSnap } = swiper.mousewheel;\n const ignoreWheelEvents =\n lastEventBeforeSnap &&\n newEvent.time < lastEventBeforeSnap.time + 500 &&\n newEvent.delta <= lastEventBeforeSnap.delta &&\n newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momuntum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length\n ? recentWheelEvents[recentWheelEvents.length - 1]\n : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (\n prevEvent &&\n (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)\n ) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (\n recentWheelEvents.length >= 15 &&\n newEvent.time - firstEvent.time < 500 &&\n firstEvent.delta - newEvent.delta >= 1 &&\n newEvent.delta <= 6\n ) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.mousewheel.timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction)\n swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n animateSlider(newEvent) {\n const swiper = this;\n const window = getWindow();\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n swiper.mousewheel.lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n },\n releaseScroll(newEvent) {\n const swiper = this;\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n },\n enable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll,\n },\n });\n },\n on: {\n init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](\n params.lockClass,\n );\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](\n params.lockClass,\n );\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements &&\n typeof params.nextEl === 'string' &&\n $nextEl.length > 1 &&\n swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements &&\n typeof params.prevEl === 'string' &&\n $prevEl.length > 1 &&\n swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\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};\n\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n navigation: {\n ...Navigation,\n },\n });\n },\n on: {\n init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy(swiper) {\n swiper.navigation.destroy();\n },\n click(swiper, e) {\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick &&\n !$(e.target).is($prevEl) &&\n !$(e.target).is($nextEl)\n ) {\n let 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};\n","import $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (\n !params.el ||\n !swiper.pagination.el ||\n !swiper.pagination.$el ||\n swiper.pagination.$el.length === 0\n )\n return;\n const slidesLength =\n swiper.virtual && swiper.params.virtual.enabled\n ? swiper.virtual.slides.length\n : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop\n ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup)\n : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil(\n (swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup,\n );\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 }\n // Types\n if (\n params.type === 'bullets' &&\n swiper.pagination.bullets &&\n swiper.pagination.bullets.length > 0\n ) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets\n .eq(0)\n [swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(\n swiper.isHorizontal() ? 'width' : 'height',\n `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`,\n );\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(\n `${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`,\n );\n if ($el.length > 1) {\n bullets.each((bullet) => {\n const $bullet = $(bullet);\n const 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\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let 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 (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n bullets\n .eq(bullets.length - params.dynamicMainBullets - 1)\n .addClass(`${params.bulletActiveClass}-prev`);\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset =\n (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 -\n midIndex * swiper.pagination.bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el\n .find(`.${params.progressbarFillClass}`)\n .transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`)\n .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 $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](\n params.lockClass,\n );\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (\n !params.el ||\n !swiper.pagination.el ||\n !swiper.pagination.$el ||\n swiper.pagination.$el.length === 0\n )\n return;\n const slidesLength =\n swiper.virtual && swiper.params.virtual.enabled\n ? swiper.virtual.slides.length\n : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop\n ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup)\n : swiper.snapGrid.length;\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${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 ' / ' +\n ``;\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() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', `.${params.bulletClass}`, function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (\n !params.el ||\n !swiper.pagination.el ||\n !swiper.pagination.$el ||\n swiper.pagination.$el.length === 0\n )\n return;\n const $el = swiper.pagination.$el;\n\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', `.${params.bulletClass}`);\n }\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', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // 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', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n pagination: {\n dynamicBulletIndex: 0,\n ...Pagination,\n },\n });\n },\n on: {\n init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n 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(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy(swiper) {\n swiper.pagination.destroy();\n },\n click(swiper, e) {\n if (\n swiper.params.pagination.el &&\n swiper.params.pagination.hideOnClick &&\n swiper.pagination.$el.length > 0 &&\n !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n const 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};\n","import { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, nextTick, bindModuleMethods } from '../../utils/utils';\n\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\n const { dragSize, trackSize, $dragEl, $el } = scrollbar;\n const params = swiper.params.scrollbar;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { $dragEl, $el } = scrollbar;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](\n swiper.params.scrollbar.lockClass,\n );\n },\n getPointerPosition(e) {\n const swiper = this;\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove'\n ? e.targetTouches[0].clientX\n : e.clientX;\n }\n return e.type === 'touchstart' || e.type === 'touchmove'\n ? e.targetTouches[0].clientY\n : e.clientY;\n },\n setDragPosition(e) {\n const swiper = this;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const { $el, dragSize, trackSize, dragStartPos } = scrollbar;\n\n let positionRatio;\n positionRatio =\n (scrollbar.getPointerPosition(e) -\n $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] -\n (dragStartPos !== null ? dragStartPos : dragSize / 2)) /\n (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position =\n swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos =\n e.target === $dragEl[0] || e.target === $dragEl\n ? scrollbar.getPointerPosition(e) -\n e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top']\n : null;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd(e) {\n const swiper = this;\n\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const document = getDocument();\n const { scrollbar, touchEventsTouch, touchEventsDesktop, params, support } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener =\n support.passiveListener && params.passiveListeners\n ? { passive: false, capture: false }\n : false;\n const passiveListener =\n support.passiveListener && params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n if (!support.touch) {\n target.addEventListener(\n touchEventsDesktop.start,\n swiper.scrollbar.onDragStart,\n activeListener,\n );\n document.addEventListener(\n touchEventsDesktop.move,\n swiper.scrollbar.onDragMove,\n activeListener,\n );\n document.addEventListener(\n touchEventsDesktop.end,\n swiper.scrollbar.onDragEnd,\n passiveListener,\n );\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const document = getDocument();\n const { scrollbar, touchEventsTouch, touchEventsDesktop, params, support } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener =\n support.passiveListener && params.passiveListeners\n ? { passive: false, capture: false }\n : false;\n const passiveListener =\n support.passiveListener && params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n if (!support.touch) {\n target.removeEventListener(\n touchEventsDesktop.start,\n swiper.scrollbar.onDragStart,\n activeListener,\n );\n document.removeEventListener(\n touchEventsDesktop.move,\n swiper.scrollbar.onDragMove,\n activeListener,\n );\n document.removeEventListener(\n touchEventsDesktop.end,\n swiper.scrollbar.onDragEnd,\n passiveListener,\n );\n } else {\n target.removeEventListener(\n touchEventsTouch.start,\n swiper.scrollbar.onDragStart,\n activeListener,\n );\n target.removeEventListener(\n touchEventsTouch.move,\n swiper.scrollbar.onDragMove,\n activeListener,\n );\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const { scrollbar, $el: $swiperEl } = swiper;\n const params = swiper.params.scrollbar;\n\n let $el = $(params.el);\n if (\n swiper.params.uniqueNavElements &&\n typeof params.el === 'string' &&\n $el.length > 1 &&\n $swiperEl.find(params.el).length === 1\n ) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nexport default {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n scrollbar: {\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n ...Scrollbar,\n },\n });\n },\n on: {\n init(swiper) {\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update(swiper) {\n swiper.scrollbar.updateSize();\n },\n resize(swiper) {\n swiper.scrollbar.updateSize();\n },\n observerUpdate(swiper) {\n swiper.scrollbar.updateSize();\n },\n setTranslate(swiper) {\n swiper.scrollbar.setTranslate();\n },\n setTransition(swiper, duration) {\n swiper.scrollbar.setTransition(duration);\n },\n destroy(swiper) {\n swiper.scrollbar.destroy();\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const { rtl } = swiper;\n\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n },\n setTranslate() {\n const swiper = this;\n const { $el, slides, progress, snapGrid } = swiper;\n $el\n .children(\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n )\n .each((el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl)\n .find(\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n )\n .each((el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition(duration = this.params.speed) {\n const swiper = this;\n const { $el } = swiper;\n $el\n .find(\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\n )\n .each((parallaxEl) => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration =\n parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n },\n};\n\nexport default {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n parallax: {\n ...Parallax,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition(swiper, duration) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { bindModuleMethods, getTranslate } from '../../utils/utils';\n\nconst Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const gesture = zoom.gesture;\n if (!support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') zoom.onGestureStart(e);\n return;\n }\n if (support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const device = swiper.device;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (\n e.type !== 'touchend' ||\n (e.type === 'touchend' && e.changedTouches.length < 2 && !device.android)\n ) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl\n .transition(swiper.params.speed)\n .transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart(e) {\n const swiper = this;\n const device = swiper.device;\n const zoom = swiper.zoom;\n const { gesture, image } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n },\n onTouchMove(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !zoom.isScaling) {\n if (\n swiper.isHorizontal() &&\n ((Math.floor(image.minX) === Math.floor(image.startX) &&\n image.touchesCurrent.x < image.touchesStart.x) ||\n (Math.floor(image.maxX) === Math.floor(image.startX) &&\n image.touchesCurrent.x > image.touchesStart.x))\n ) {\n image.isTouched = false;\n return;\n }\n if (\n !swiper.isHorizontal() &&\n ((Math.floor(image.minY) === Math.floor(image.startY) &&\n image.touchesCurrent.y < image.touchesStart.y) ||\n (Math.floor(image.maxY) === Math.floor(image.startY) &&\n image.touchesCurrent.y > image.touchesStart.y))\n ) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x =\n (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y =\n (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0)\n momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0)\n momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n\n gesture.$imageWrapEl\n .transition(momentumDuration)\n .transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in(e) {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture, image } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n gesture.$imageWrapEl\n .transition(300)\n .transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n out() {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture } = zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n },\n\n toggleGestures(method) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { slideSelector: selector, passiveListener: passive } = zoom;\n swiper.$wrapperEl[method]('gesturestart', selector, zoom.onGestureStart, passive);\n swiper.$wrapperEl[method]('gesturechange', selector, zoom.onGestureChange, passive);\n swiper.$wrapperEl[method]('gestureend', selector, zoom.onGestureEnd, passive);\n },\n enableGestures() {\n if (this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = true;\n this.zoom.toggleGestures('on');\n },\n disableGestures() {\n if (!this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = false;\n this.zoom.toggleGestures('off');\n },\n // Attach/Detach Events\n enable() {\n const swiper = this;\n const support = swiper.support;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n\n const passiveListener =\n swiper.touchEvents.start === 'touchstart' &&\n support.passiveListener &&\n swiper.params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n const activeListenerWithCapture = support.passiveListener\n ? { passive: false, capture: true }\n : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n swiper.zoom.passiveListener = passiveListener;\n swiper.zoom.slideSelector = slideSelector;\n\n // Scale image\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(\n swiper.touchEvents.start,\n slideSelector,\n zoom.onGestureStart,\n passiveListener,\n );\n swiper.$wrapperEl.on(\n swiper.touchEvents.move,\n slideSelector,\n zoom.onGestureChange,\n activeListenerWithCapture,\n );\n swiper.$wrapperEl.on(\n swiper.touchEvents.end,\n slideSelector,\n zoom.onGestureEnd,\n passiveListener,\n );\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(\n swiper.touchEvents.cancel,\n slideSelector,\n zoom.onGestureEnd,\n passiveListener,\n );\n }\n }\n\n // Move image\n swiper.$wrapperEl.on(\n swiper.touchEvents.move,\n `.${swiper.params.zoom.containerClass}`,\n zoom.onTouchMove,\n activeListenerWithCapture,\n );\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n const support = swiper.support;\n\n swiper.zoom.enabled = false;\n\n const passiveListener =\n swiper.touchEvents.start === 'touchstart' &&\n support.passiveListener &&\n swiper.params.passiveListeners\n ? { passive: true, capture: false }\n : false;\n const activeListenerWithCapture = support.passiveListener\n ? { passive: false, capture: true }\n : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(\n swiper.touchEvents.start,\n slideSelector,\n zoom.onGestureStart,\n passiveListener,\n );\n swiper.$wrapperEl.off(\n swiper.touchEvents.move,\n slideSelector,\n zoom.onGestureChange,\n activeListenerWithCapture,\n );\n swiper.$wrapperEl.off(\n swiper.touchEvents.end,\n slideSelector,\n zoom.onGestureEnd,\n passiveListener,\n );\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(\n swiper.touchEvents.cancel,\n slideSelector,\n zoom.onGestureEnd,\n passiveListener,\n );\n }\n }\n\n // Move image\n swiper.$wrapperEl.off(\n swiper.touchEvents.move,\n `.${swiper.params.zoom.containerClass}`,\n zoom.onTouchMove,\n activeListenerWithCapture,\n );\n },\n};\n\nexport default {\n name: 'zoom',\n params: {\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed',\n },\n },\n create() {\n const swiper = this;\n\n bindModuleMethods(swiper, {\n zoom: {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n image: {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {},\n },\n velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n ...Zoom,\n },\n });\n\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = swiper.zoom.gesture.$imageEl\n ? swiper.zoom.gesture.$imageEl[0]\n : undefined;\n const slideEl = swiper.zoom.gesture.$slideEl\n ? swiper.zoom.gesture.$slideEl[0]\n : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init(swiper) {\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy(swiper) {\n swiper.zoom.disable();\n },\n touchStart(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(swiper, e) {\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst Lazy = {\n loadInSlide(index, loadInDuplicate = true) {\n const swiper = this;\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n const $slideEl = isVirtual\n ? swiper.$wrapperEl.children(\n `.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`,\n )\n : swiper.slides.eq(index);\n\n const $images = $slideEl.find(\n `.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`,\n );\n if (\n $slideEl.hasClass(params.elementClass) &&\n !$slideEl.hasClass(params.loadedClass) &&\n !$slideEl.hasClass(params.loadingClass)\n ) {\n $images.push($slideEl[0]);\n }\n if ($images.length === 0) return;\n\n $images.each((imageEl) => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (\n typeof swiper === 'undefined' ||\n swiper === null ||\n !swiper ||\n (swiper && !swiper.params) ||\n swiper.destroyed\n )\n return;\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if ($pictureEl.length) {\n $pictureEl.children('source').each((sourceEl) => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(\n `[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`,\n );\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(\n `.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`,\n );\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const { $wrapperEl, params: swiperParams, slides, activeIndex } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n\n let slidesPerView = swiperParams.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if (\n $wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`)\n .length\n ) {\n return true;\n }\n } else if (slides[index]) return true;\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((slideEl) => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n};\n\nexport default {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n lazy: {\n initialImageLoaded: false,\n ...Lazy,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll(swiper) {\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart(swiper) {\n if (swiper.params.lazy.enabled) {\n if (\n swiper.params.lazy.loadOnTransitionStart ||\n (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)\n ) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n },\n },\n};\n","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\n\nconst Controller = {\n LinearSpline: function LinearSpline(x, y) {\n const binarySearch = (function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = (maxIndex + minIndex) >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n })();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (\n ((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1]) + this.y[i1]\n );\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier =\n (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition(duration, byController) {\n const swiper = this;\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n },\n};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n controller: {\n control: swiper.params.controller.control,\n ...Controller,\n },\n });\n },\n on: {\n update(swiper) {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize(swiper) {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate(swiper) {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(swiper, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(swiper, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst A11y = {\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n\n if (swiper.params.loop || !swiper.navigation) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (\n swiper.pagination &&\n swiper.params.pagination.clickable &&\n swiper.pagination.bullets &&\n swiper.pagination.bullets.length\n ) {\n swiper.pagination.bullets.each((bulletEl) => {\n const $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel(\n $bulletEl,\n params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1),\n );\n });\n }\n },\n init() {\n const swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n const params = swiper.params.a11y;\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (\n swiper.pagination &&\n swiper.params.pagination.clickable &&\n swiper.pagination.bullets &&\n swiper.pagination.bullets.length\n ) {\n swiper.pagination.$el.on(\n 'keydown',\n `.${swiper.params.pagination.bulletClass}`,\n swiper.a11y.onEnterKey,\n );\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0)\n swiper.a11y.liveRegion.remove();\n\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (\n swiper.pagination &&\n swiper.params.pagination.clickable &&\n swiper.pagination.bullets &&\n swiper.pagination.bullets.length\n ) {\n swiper.pagination.$el.off(\n 'keydown',\n `.${swiper.params.pagination.bulletClass}`,\n swiper.a11y.onEnterKey,\n );\n }\n },\n};\nexport default {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n a11y: {\n ...A11y,\n liveRegion: $(\n ``,\n ),\n },\n });\n },\n on: {\n init(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n },\n },\n};\n","import { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst History = {\n init() {\n const swiper = this;\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues(swiper.params.url);\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues(swiper.params.url);\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues(urlOverride) {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname\n .slice(1)\n .split('/')\n .filter((part) => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return { key, value };\n },\n setHistory(key, index) {\n const swiper = this;\n const window = getWindow();\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.slides.eq(index);\n let value = History.slugify(slide.attr('data-history'));\n if (!location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({ value }, null, value);\n } else {\n window.history.pushState({ value }, null, value);\n }\n },\n slugify(text) {\n return text\n .toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = History.slugify(slide.attr('data-history'));\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n },\n};\n\nexport default {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n history: {\n ...History,\n },\n });\n },\n on: {\n init(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd(swiper) {\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange(swiper) {\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n const document = getDocument();\n swiper.emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl\n .children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`)\n .index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash() {\n const swiper = this;\n const window = getWindow();\n const document = getDocument();\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n if (\n swiper.params.hashNavigation.replaceState &&\n window.history &&\n window.history.replaceState\n ) {\n window.history.replaceState(\n null,\n null,\n `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '',\n );\n swiper.emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init() {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n if (\n !swiper.params.hashNavigation.enabled ||\n (swiper.params.history && swiper.params.history.enabled)\n )\n return;\n swiper.hashNavigation.initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n const window = getWindow();\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nexport default {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n hashNavigation: {\n initialized: false,\n ...HashNavigation,\n },\n });\n },\n on: {\n init(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd(swiper) {\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange(swiper) {\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n","/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(() => {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();\n }, delay);\n },\n start() {\n const swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop() {\n const swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n onVisibilityChange() {\n const swiper = this;\n const document = getDocument();\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd(e) {\n const swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener(\n 'webkitTransitionEnd',\n swiper.autoplay.onTransitionEnd,\n );\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n};\n\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n autoplay: {\n ...Autoplay,\n running: false,\n paused: false,\n },\n });\n },\n on: {\n init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n const document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd(swiper) {\n if (\n swiper.params.cssMode &&\n swiper.autoplay.paused &&\n !swiper.params.autoplay.disableOnInteraction\n ) {\n swiper.autoplay.run();\n }\n },\n destroy(swiper) {\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n const document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n },\n },\n};\n","import { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, $wrapperEl } = swiper;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n fadeEffect: {\n ...Fade,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(swiper, duration) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const {\n $el,\n $wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser,\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${\n isHorizontal ? slideAngle : 0\n }deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal\n ? $slideEl.find('.swiper-slide-shadow-left')\n : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal\n ? $slideEl.find('.swiper-slide-shadow-right')\n : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(\n `
`,\n );\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(\n `
`,\n );\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-ms-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`,\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\n `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${\n -swiperWidth / 2\n }px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`,\n );\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier =\n 1.5 -\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2 +\n Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(\n `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${\n -swiperHeight / 2 / scale2\n }px) rotateX(-90deg)`,\n );\n }\n }\n const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(\n `translate3d(0px,0,${zFactor}px) rotateX(${\n swiper.isHorizontal() ? 0 : wrapperRotate\n }deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`,\n );\n },\n setTransition(duration) {\n const swiper = this;\n const { $el, slides } = swiper;\n slides\n .transition(duration)\n .find(\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n )\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nexport default {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n cubeEffect: {\n ...Cube,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(swiper, duration) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\n\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const { slides, rtlTranslate: rtl } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (swiper.params.flipEffect.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal()\n ? $slideEl.find('.swiper-slide-shadow-left')\n : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal()\n ? $slideEl.find('.swiper-slide-shadow-right')\n : $slideEl.find('.swiper-slide-shadow-bottom');\n if (shadowBefore.length === 0) {\n shadowBefore = $(\n `
`,\n );\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(\n `
`,\n );\n $slideEl.append(shadowAfter);\n }\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n $slideEl.transform(\n `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`,\n );\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, activeIndex, $wrapperEl } = swiper;\n slides\n .transition(duration)\n .find(\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n )\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nexport default {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n flipEffect: {\n ...Flip,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(swiper, duration) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\n\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const { width: swiperWidth, height: swiperHeight, slides, slidesSizesGrid } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier =\n ((center - slideOffset - slideSize / 2) / slideSize) * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = (parseFloat(params.stretch) / 100) * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal\n ? $slideEl.find('.swiper-slide-shadow-left')\n : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal\n ? $slideEl.find('.swiper-slide-shadow-right')\n : $slideEl.find('.swiper-slide-shadow-bottom');\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(\n `
`,\n );\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(\n `
`,\n );\n $slideEl.append($shadowAfterEl);\n }\n if ($shadowBeforeEl.length)\n $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length)\n $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides\n .transition(duration)\n .find(\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\n )\n .transition(duration);\n },\n};\n\nexport default {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n coverflowEffect: {\n ...Coverflow,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(swiper, duration) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n","import { extend, isObject, bindModuleMethods } from '../../utils/utils';\nimport $ from '../../utils/dom';\n\nconst Thumbs = {\n init() {\n const swiper = this;\n const { thumbs: thumbsParams } = swiper.params;\n if (swiper.thumbs.initialized) return false;\n swiper.thumbs.initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(\n extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }),\n );\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n return true;\n },\n onThumbClick() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass))\n return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n const prevIndex = swiper.slides\n .eq(currentIndex)\n .prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`)\n .eq(0)\n .index();\n const nextIndex = swiper.slides\n .eq(currentIndex)\n .nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`)\n .eq(0)\n .index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update(initial) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n const slidesPerView =\n thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n if (\n thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .hasClass(thumbsSwiper.params.slideDuplicateClass)\n ) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`)\n .eq(0)\n .index();\n const nextThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`)\n .eq(0)\n .index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;\n else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex)\n newThumbsIndex = currentThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex)\n newThumbsIndex = nextThumbsIndex;\n else newThumbsIndex = prevThumbsIndex;\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (\n thumbsSwiper.visibleSlidesIndexes &&\n thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0\n ) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n if (\n thumbsSwiper.params.loop ||\n (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)\n ) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl\n .children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`)\n .addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n },\n};\nexport default {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create() {\n const swiper = this;\n bindModuleMethods(swiper, {\n thumbs: {\n swiper: null,\n initialized: false,\n ...Thumbs,\n },\n });\n },\n on: {\n beforeInit(swiper) {\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition(swiper, duration) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy(swiper) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n};\n","// Swiper Class\nimport Swiper from './components/core/core-class';\n\n// Core Modules\nimport Resize from './modules/resize/resize';\nimport Observer from './modules/observer/observer';\n\n//IMPORT_COMPONENTS\n\nconst components = [\n Resize,\n Observer,\n //INSTALL_COMPONENTS\n];\n\nSwiper.use(components);\n\n//EXPORT\n"]}