{"version":3,"sources":["webpack:///./node_modules/regexp.prototype.flags/shim.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/set-function-name/index.js","webpack:///./node_modules/regexp.prototype.flags/implementation.js","webpack:///./node_modules/regexp.prototype.flags/polyfill.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/register-service-worker/index.js","webpack:///./node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack:///./node_modules/set-function-length/index.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./node_modules/regexp.prototype.flags/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js"],"names":["supportsDescriptors","getPolyfill","gOPD","Object","getOwnPropertyDescriptor","defineProperty","TypeErr","TypeError","getProto","getPrototypeOf","regex","module","exports","polyfill","proto","descriptor","get","configurable","enumerable","Methods","addClass","removeClass","hasClass","toggleClass","attr","removeAttr","transform","transition","on","off","trigger","transitionEnd","outerWidth","outerHeight","styles","offset","css","each","html","text","is","index","eq","append","prepend","next","nextAll","prev","prevAll","parent","parents","closest","find","children","filter","remove","keys","forEach","methodName","fn","value","writable","define","hasDescriptors","functionsHaveConfigurableNames","$TypeError","name","loose","arguments","length","setFunctionName","$Object","this","result","hasIndices","global","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","implementation","$gOPD","flags","RegExp","prototype","calls","o","call","_extends","assign","target","i","source","key","hasOwnProperty","apply","Pagination","update","swiper","rtl","params","pagination","el","$el","current","slidesLength","virtual","enabled","slides","total","loop","Math","ceil","loopedSlides","slidesPerGroup","snapGrid","activeIndex","paginationType","snapIndex","type","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","isHorizontal","dynamicMainBullets","undefined","previousIndex","dynamicBulletIndex","min","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","_i","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","speed","renderCustom","emit","watchOverflow","isLocked","lockClass","render","paginationHTML","numberOfBullets","freeMode","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","init","createElements","uniqueNavElements","clickable","clickableClass","modifierClass","progressbarOppositeClass","e","preventDefault","slideTo","destroy","hiddenClass","hideOnClick","number","create","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","click","targetEl","navigation","nextEl","prevEl","isHidden","browser","calcSupport","window","document","touch","DocumentTouch","pointerEvents","PointerEvent","navigator","maxTouchPoints","observer","passiveListener","supportsPassive","opts","addEventListener","gestures","getSupport","calcDevice","_temp","_ref","userAgent","support","platform","ua","device","ios","android","screenWidth","screen","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","iPadScreens","indexOf","os","getDevice","overrides","calcBrowser","isSafari","toLowerCase","isEdge","isWebView","test","getBrowser","ResizeObserver","resize","createObserver","destroyed","initialized","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","removeEventListener","Observer","attach","options","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","requestAnimationFrame","setTimeout","attributes","childList","characterData","observers","push","observeParents","containerParents","observeSlideChildren","$wrapperEl","disconnect","useParams","instanceParams","instance","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","bind","events","handler","priority","self","method","split","event","eventsListeners","once","onceHandler","__emitterProxy","_len","args","Array","_key","onAny","eventsAnyListeners","offAny","splice","eventHandler","data","context","_len2","_key2","isArray","slice","unshift","eventsArray","concat","updateSize","clientWidth","clientHeight","isVertical","parseInt","Number","isNaN","size","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","node","label","parseFloat","getPropertyValue","swiperSize","rtlTranslate","wrongRTL","isVirtual","previousSlidesLength","slideClass","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","replace","virtualSize","marginLeft","marginBottom","marginTop","marginRight","slidesPerColumn","floor","slidesPerView","slidesPerColumnFill","max","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","slideStyles","getComputedStyle","currentTransform","style","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","_slide$","offsetWidth","swiperSlideSize","centeredSlides","abs","slidesPerGroupSkip","effect","setWrapperSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","_","slideIndex","cssMode","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","map","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","getAttribute","visibleSlides","offsetHeight","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","isVisible","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getSwiperTranslate","axis","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","wrapperEl","x","y","z","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","getTranslate","duration","transitionStart","direction","dir","initial","Error","indexAsNumber","isValidNumber","isFinite","initialSlide","normalizedTranslate","normalizedGird","normalizedGridNext","allowSlideNext","allowSlidePrev","t","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","increment","loopPreventsSlide","loopFix","_clientLeft","clientLeft","slidePrev","normalize","val","prevIndex","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","threshold","currentSnap","nextSnap","_currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","createElement","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","diff","slideChanged","_slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","cursor","unsetGrabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","closestElement","selector","base","__closestFrom","assignedSlot","found","getRootNode","host","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","activeElement","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","pow","touchAngle","atan2","PI","cancelable","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","velocities","position","time","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","j","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","onResize","breakpoints","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","scrollLeft","scrollTop","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","capture","start","move","end","passiveListeners","passive","cancel","updateOnWindowResize","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","containerModifierClass","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","a","b","_points$i","matchMedia","matches","prepareClasses","prefix","resultClasses","item","classNames","addClasses","suffixes","join","removeClasses","loadImage","imageEl","src","srcset","sizes","checkForComplete","callback","image","onReady","isPicture","complete","Image","onload","onerror","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","wasLocked","lastSlidePosition","url","wrapperClass","_emitClasses","_defineProperties","props","_createClass","Constructor","protoProps","staticProps","prototypes","modular","eventsEmitter","manipulation","classes","images","extendedDefaults","Swiper","constructor","toString","swipers","newParams","__swiper__","moduleParamName","auto","swiperParams","defaults","passedParams","eventName","$","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","setProgress","className","getSlideClasses","slideEl","updates","spv","breakLoop","translated","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","trim","getWrapper","querySelector","res","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","deleteProps","obj","object","nextTick","delay","now","Date","currentStyle","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isObject","isNode","HTMLElement","nodeType","extend","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","checkProps","element","Navigation","toggleEl","disabled","disabledClass","tagName","_swiper$navigation","$nextEl","$prevEl","onPrevClick","onNextClick","_swiper$navigation2","toEdge","fromEdge","_swiper$navigation3","_swiper$navigation4","contains","waitWindowLoad","isLocalhost","Boolean","location","hostname","register","swUrl","hooks","registrationOptions","hook","then","checkValidServiceWorker","serviceWorker","ready","registration","catch","error","handleError","registerValidSW","onLine","waiting","onupdatefound","installingWorker","installing","onstatechange","state","controller","fetch","response","status","unregister","headers","Promise","resolve","cb","isEventSupported","isSupported","setAttribute","hasFeature","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","shiftKey","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","handle","mousewheel","eventsTarget","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","positions","sensitivity","_newEvent","sign","ignoreWheelEvents","clearTimeout","timeout","_recentWheelEvents","shift","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","newEvent","raw","prevEvent","animateSlider","releaseScroll","returnValue","thresholdDelta","thresholdTime","getTime","GetIntrinsic","$floor","functionLengthIsConfigurable","functionLengthIsWritable","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","beforeTransitionStart","sliderFirstMove","touchEnd","callBind","shim","flagsBound","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","array","noop","title","env","argv","version","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","ssrDocument","body","nodeName","querySelectorAll","getElementById","createEvent","initEvent","childNodes","getElementsByTagName","createElementNS","importNode","hash","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","history","replaceState","pushState","go","back","CustomEvent","cancelAnimationFrame","id","getWindow","win"],"mappings":"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","file":"js/chunk-vendors~f9ca8911.61784f8f.js","sourcesContent":["'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","'use strict';\n\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames();\n\nvar $TypeError = require('es-errors/type');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionName(fn, name) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\tif (!loose || functionsHaveConfigurableNames) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'name', name, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'name', name);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar setFunctionName = require('set-function-name');\nvar $TypeError = require('es-errors/type');\n\nvar $Object = Object;\n\nmodule.exports = setFunctionName(function flags() {\n\tif (this == null || this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.hasIndices) {\n\t\tresult += 'd';\n\t}\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.unicodeSets) {\n\t\tresult += 'v';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n}, 'get flags', true);\n\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function getPolyfill() {\n\tif (supportsDescriptors && (/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (\n\t\t\tdescriptor\n\t\t\t&& typeof descriptor.get === 'function'\n\t\t\t&& 'dotAll' in RegExp.prototype\n\t\t\t&& 'hasIndices' in RegExp.prototype\n\t\t) {\n\t\t\t/* eslint getter-return: 0 */\n\t\t\tvar calls = '';\n\t\t\tvar o = {};\n\t\t\tObject.defineProperty(o, 'hasIndices', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'd';\n\t\t\t\t}\n\t\t\t});\n\t\t\tObject.defineProperty(o, 'sticky', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'y';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tdescriptor.get.call(o);\n\n\t\t\tif (calls === 'dy') {\n\t\t\t\treturn descriptor.get;\n\t\t\t}\n\t\t}\n\t}\n\treturn implementation;\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass;\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill && breakpointParams.slidesPerColumnFill === 'column' || !breakpointParams.slidesPerColumnFill && params.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (base === 'window') {\n if (window.matchMedia(\"(min-width: \" + value + \"px)\").matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.enable = function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n };\n\n _proto.disable = function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n };\n\n _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { getDocument, getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n\n return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n },\n click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","// Register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\nvar isLocalhost = function () { return Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n); }\n\nvar waitWindowLoad\n// https://github.com/yyx990803/register-service-worker/pull/33#discussion_r394181861\nif (typeof window !== 'undefined') {\n // Typically, a browser that supports `serviceWorker` should also have supported\n // `Promise`. But as this package can be used in environments without service\n // worker support (in that case it would do nothing), there's a chance that\n // `Promise` does not exist. So we must check for its existence first.\n if (typeof Promise !== 'undefined') {\n waitWindowLoad = new Promise(function (resolve) { return window.addEventListener('load', resolve); })\n } else {\n waitWindowLoad = { then: function (cb) { return window.addEventListener('load', cb); } }\n }\n}\n\nexport function register (swUrl, hooks) {\n if ( hooks === void 0 ) hooks = {};\n\n var registrationOptions = hooks.registrationOptions; if ( registrationOptions === void 0 ) registrationOptions = {};\n delete hooks.registrationOptions\n\n var emit = function (hook) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n if (hooks && hooks[hook]) {\n hooks[hook].apply(hooks, args)\n }\n }\n\n if ('serviceWorker' in navigator) {\n waitWindowLoad.then(function () {\n if (isLocalhost()) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, emit, registrationOptions)\n navigator.serviceWorker.ready.then(function (registration) {\n emit('ready', registration)\n }).catch(function (error) { return handleError(emit, error); })\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl, emit, registrationOptions)\n navigator.serviceWorker.ready.then(function (registration) {\n emit('ready', registration)\n }).catch(function (error) { return handleError(emit, error); })\n }\n })\n }\n}\n\nfunction handleError (emit, error) {\n if (!navigator.onLine) {\n emit('offline')\n }\n emit('error', error)\n}\n\nfunction registerValidSW (swUrl, emit, registrationOptions) {\n navigator.serviceWorker\n .register(swUrl, registrationOptions)\n .then(function (registration) {\n emit('registered', registration)\n if (registration.waiting) {\n emit('updated', registration)\n return\n }\n registration.onupdatefound = function () {\n emit('updatefound', registration)\n var installingWorker = registration.installing\n installingWorker.onstatechange = function () {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n emit('updated', registration)\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n emit('cached', registration)\n }\n }\n }\n }\n })\n .catch(function (error) { return handleError(emit, error); })\n}\n\nfunction checkValidServiceWorker (swUrl, emit, registrationOptions) {\n // Check if the service worker can be found.\n fetch(swUrl)\n .then(function (response) {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (response.status === 404) {\n // No service worker found.\n emit('error', new Error((\"Service worker not found at \" + swUrl)))\n unregister()\n } else if (response.headers.get('content-type').indexOf('javascript') === -1) {\n emit('error', new Error(\n \"Expected \" + swUrl + \" to have javascript content-type, \" +\n \"but received \" + (response.headers.get('content-type'))))\n unregister()\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, emit, registrationOptions)\n }\n })\n .catch(function (error) { return handleError(emit, error); })\n}\n\nexport function unregister () {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(function (registration) {\n registration.unregister()\n }).catch(function (error) { return handleError(emit, error); })\n }\n}\n","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n var document = getDocument();\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n var window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n var swiper = this;\n if (!swiper.enabled) return;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n var positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (_recentWheelEvents.length >= 15) {\n _recentWheelEvents.shift(); // only store the last N events\n\n }\n\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = _recentWheelEvents[0];\n\n _recentWheelEvents.push(_newEvent);\n\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n _recentWheelEvents.splice(0);\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.mousewheel.timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n var window = getWindow();\n\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n onMouseEnter: function onMouseEnter() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n },\n onMouseLeave: function onMouseLeave() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n },\n attachMouseEvents: function attachMouseEvents() {\n var swiper = this;\n\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n }\n },\n detachMouseEvents: function detachMouseEvents() {\n var swiper = this;\n swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n swiper.autoplay.attachMouseEvents();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n swiper.autoplay.detachMouseEvents();\n\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(getPolyfill());\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n"],"sourceRoot":""}