{"version":3,"sources":["webpack:///./aan/node_modules/ssr-window/ssr-window.esm.js","webpack:///./aan/node_modules/dom7/dom7.esm.js","webpack:///./aan/node_modules/swiper/esm/utils/dom.js","webpack:///./aan/node_modules/swiper/esm/utils/get-support.js","webpack:///./aan/node_modules/swiper/esm/utils/get-device.js","webpack:///./aan/node_modules/swiper/esm/utils/get-browser.js","webpack:///./aan/node_modules/swiper/esm/utils/utils.js","webpack:///./aan/node_modules/swiper/esm/modules/resize/resize.js","webpack:///./aan/node_modules/swiper/esm/modules/observer/observer.js","webpack:///./aan/node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./aan/node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./aan/node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./aan/node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./aan/node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./aan/node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./aan/node_modules/swiper/esm/components/core/events/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/defaults.js","webpack:///./aan/node_modules/swiper/esm/components/core/core-class.js","webpack:///./aan/node_modules/swiper/esm/components/core/modular.js","webpack:///./aan/node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./aan/node_modules/swiper/esm/components/core/update/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./aan/node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./aan/node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./aan/node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./aan/node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./aan/node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./aan/node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./aan/node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./aan/node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./aan/node_modules/swiper/esm/components/core/translate/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./aan/node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./aan/node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./aan/node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./aan/node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./aan/node_modules/swiper/esm/components/core/transition/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./aan/node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./aan/node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./aan/node_modules/swiper/esm/components/core/slide/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./aan/node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./aan/node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./aan/node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./aan/node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./aan/node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./aan/node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./aan/node_modules/swiper/esm/components/core/loop/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./aan/node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./aan/node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./aan/node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./aan/node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./aan/node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./aan/node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./aan/node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./aan/node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./aan/node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./aan/node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./aan/node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./aan/node_modules/swiper/esm/components/core/classes/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./aan/node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./aan/node_modules/swiper/esm/components/core/images/index.js","webpack:///./aan/node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./aan/node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./aan/node_modules/swiper/esm/components/a11y/a11y.js","webpack:///./aan/node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./aan/node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./aan/node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./aan/node_modules/swiper/esm/components/keyboard/keyboard.js","webpack:///./aan/node_modules/swiper/esm/components/lazy/lazy.js","webpack:///./aan/node_modules/swiper/esm/components/effect-fade/effect-fade.js","webpack:///./aan/node_modules/swiper/esm/components/controller/controller.js","webpack:///./aan/node_modules/ui-theme/plugins/swiper/index.ts","webpack:///./aan/node_modules/ui-theme/widgets/slideshow/index.ts"],"names":["isObject","obj","_typeof","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","prototype","toString","call","e","_construct","Parent","args","Class","a","push","apply","instance","Function","bind","arguments","_wrapNativeSuper","_cache","Map","undefined","_isNativeFunction","fn","indexOf","TypeError","has","get","set","Wrapper","create","value","enumerable","writable","configurable","Dom7","_Array","items","_this","makeReactive","proto","defineProperty","_assertThisInitialized","self","ReferenceError","concat","_inheritsLoose","subClass","superClass","Array","arrayFlat","arr","res","el","isArray","arrayFilter","filter","$","selector","context","html","trim","toCreate","tempParent","innerHTML","i","qsa","nodeType","arrayUnique","uniqueArray","noTrigger","split","shortcut","name","eventHandler","_len","_key","trigger","on","Methods","addClass","classes","classNames","map","c","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","className","contains","toggleClass","_len3","_key3","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","j","events","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","splice","_len9","_key9","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","parseFloat","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","_prop","each","index","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","find","foundElements","found","removeChild","methodName","support","device","browser","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","replace","join","MozTransform","OTransform","MsTransform","msTransform","m41","m42","slice","isNode","node","HTMLElement","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","params","createElements","checkProps","auto","element","getSupport","calcSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","checkObserver","passiveListener","checkPassiveListener","supportsPassive","opts","gestures","checkGestures","getDevice","overrides","calcDevice","_temp","platform","ua","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","getBrowser","calcBrowser","isEdge","isSafari","toLowerCase","isWebView","test","swiper","resize","createObserver","destroyed","initialized","ResizeObserver","entries","newWidth","newHeight","_ref","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","emit","orientationChangeHandler","init","resizeObserver","supportsResizeObserver","destroy","_extends","assign","source","hasOwnProperty","Observer","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observers","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","disconnect","onTouchStart","touchEventsData","touches","enabled","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","type","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","closestElement","base","__closestFrom","assignedSlot","getRootNode","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","rtl","rtlTranslate","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","loop","isVertical","translate","maxTranslate","minTranslate","diffX","diffY","Math","sqrt","pow","touchAngle","isHorizontal","atan2","abs","PI","cssMode","touchMoveStopPropagation","nested","stopPropagation","loopFix","startTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","position","time","updateProgress","setTranslate","onTouchEnd","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","run","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","progress","dummyEventAttached","dummyEventListener","direction","initialSlide","updateOnWindowResize","url","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","_defineProperties","descriptor","prototypes","modular","useParams","instanceParams","modules","moduleName","module","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","method","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventsArray","update","clientWidth","clientHeight","parseInt","Number","isNaN","size","getDirectionLabel","property","getDirectionPropertyValue","label","swiperSize","wrongRTL","isVirtual","virtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","floor","ceil","max","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","_i","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","_","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","getSlideByIndex","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","getSwiperTranslate","byController","x","y","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","initial","Error","indexAsNumber","isFinite","normalizedTranslate","normalizedGird","normalizedGridNext","t","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","start","move","end","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","b","_points$i","wasLocked","lastSlidePosition","addClasses","suffixes","prepareClasses","prefix","resultClasses","item","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","moduleParamName","swiperParams","defaults","passedParams","eventName","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","setProgress","current","getSlideClasses","slideEl","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","deleteProps","object","extendDefaults","newDefaults","installModule","use","m","_createClass","Constructor","protoProps","staticProps","prototypeGroup","protoMethod","Resize","A11y","getRandomNumber","repeat","randomChar","round","random","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","keyCode","a11y","$nextEl","notify","lastSlideMessage","nextSlideMessage","$prevEl","firstSlideMessage","prevSlideMessage","pagination","bulletClass","click","message","notification","liveRegion","updateNavigation","_swiper$navigation","updatePagination","clickable","bullets","bulletEl","$bulletEl","renderBullet","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","slideRole","$slideEl","ariaLabelMessage","slideLabelMessage","tagName","notificationClass","afterInit","toEdge","fromEdge","paginationUpdate","Navigation","toggleEl","disabled","disabledClass","lockClass","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","enableDisable","_swiper$navigation3","_swiper$navigation4","targetEl","isHidden","Pagination","total","paginationType","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","render","paginationHTML","numberOfBullets","bulletElement","renderFraction","renderProgressbar","clickableClass","modifierClass","progressbarOppositeClass","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Autoplay","$activeSlideEl","timeout","autoplayResult","reverseDirection","stopOnLastSlide","stop","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","beforeTransitionStart","sliderFirstMove","touchEnd","Keyboard","handle","kc","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Lazy","loadInSlide","loadInDuplicate","lazy","$images","elementClass","loadedClass","loadingClass","$imageEl","background","$pictureEl","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","load","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","scrollingElement","isWindow","scrollElementWidth","scrollElementHeight","scrollHandlerAttached","checkInView","loadOnTransitionStart","beforeInit","scroll","lazyLoad","slideChange","_swiper$params","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","opacity","eventTriggered","triggerEvents","overwriteParams","Controller","LinearSpline","i1","i3","binarySearch","guess","array","interpolate","x2","getInterpolateFunction","controller","spline","_setTranslate","controlledTranslate","controlled","control","setControlledTranslate","by","inverse","setControlledTransition","container","responsiveSlider","viewportSlider","centerSlider","freeModeSlider","marginSlider","observerSlider","selectors","setWrapper","initElements","initialize","elements","getCustomEvent","destoryEvent","beforeInstanceCreation","initializeInstance","afterInstanceCreation","Event","addViewPortListener","swiperEl","readySwiper","addEventListeners","viewPort","setViewPortListener","then","catch","console","log","addAccessibility","addAutoPlayControl","dataset","disableA11y","goToSlide","swiperMargin","responsiveOption","centeredOption","freeModeOption","autoheight","animation","hasObserver","slideChangeTransitionEnd","margin","responsive","json","JSON","parse","sliderVport","onViewPort","offViewPort","isAutoplayEnabled","keyboardFocusControls","handleKeydown","LEFT","RIGHT","first","focus","controlBtn","stringToNode","SlideShow","Selectors","ClassList","Texts"],"mappings":"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","file":"js/vendors~loi~slideshow-79f8795fe1d102c9f330.js","sourcesContent":["/**\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","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, 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 { 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 };","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 { 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};","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 { 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 updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\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 getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\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 setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function 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 slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\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 loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function 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 setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\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 setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill && breakpointParams.slidesPerColumnFill === 'column' || !breakpointParams.slidesPerColumnFill && params.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","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 addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\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}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, classesToSelector } from '../../utils/utils';\nvar A11y = {\n getRandomNumber: function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n var randomChar = function randomChar() {\n return Math.round(16 * Math.random()).toString(16);\n };\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n },\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElRoleDescription: function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n return $el;\n },\n addElControls: function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n addElId: function addElId($el, id) {\n $el.attr('id', id);\n return $el;\n },\n addElLive: function addElLive($el, live) {\n $el.attr('aria-live', live);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterOrSpaceKey: function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n var swiper = this;\n var params = swiper.params.a11y;\n var $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n if (swiper.params.loop || !swiper.navigation) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.a11y;\n swiper.$el.append(swiper.a11y.liveRegion); // Container\n\n var $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\n var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n swiper.a11y.addElId($wrapperEl, wrapperId);\n swiper.a11y.addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n swiper.a11y.addElRole($(swiper.slides), params.slideRole);\n var slidesLength = swiper.params.loop ? swiper.slides.filter(function (el) {\n return !el.classList.contains(swiper.params.slideDuplicateClass);\n }).length : swiper.slides.length;\n swiper.slides.each(function (slideEl, index) {\n var $slideEl = $(slideEl);\n var slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n swiper.a11y.addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n swiper.a11y.makeElFocusable($nextEl);\n\n if ($nextEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($nextEl, 'button');\n $nextEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n swiper.a11y.addElControls($nextEl, wrapperId);\n }\n\n if ($prevEl && $prevEl.length) {\n swiper.a11y.makeElFocusable($prevEl);\n\n if ($prevEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($prevEl, 'button');\n $prevEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n swiper.a11y.addElControls($prevEl, wrapperId);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n }\n};\nexport default {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends({}, A11y, {\n liveRegion: $(\"\")\n })\n });\n },\n on: {\n afterInit: function afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n },\n click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n onMouseEnter: function onMouseEnter() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n },\n onMouseLeave: function onMouseLeave() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n },\n attachMouseEvents: function attachMouseEvents() {\n var swiper = this;\n\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n }\n },\n detachMouseEvents: function detachMouseEvents() {\n var swiper = this;\n swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n swiper.autoplay.attachMouseEvents();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n swiper.autoplay.detachMouseEvents();\n\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n if (!swiper.enabled) return;\n var window = getWindow();\n var document = getDocument();\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\" + swiper.params.slideClass).length > 0 && swiper.$el.parents(\".\" + swiper.params.slideActiveClass).length === 0) {\n return undefined;\n }\n\n var $el = swiper.$el;\n var swiperWidth = $el[0].clientWidth;\n var swiperHeight = $el[0].clientHeight;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n var document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n var document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n keyboard: _extends({\n enabled: false\n }, Keyboard)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if (loadInDuplicate === void 0) {\n loadInDuplicate = true;\n }\n\n var swiper = this;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\") : swiper.slides.eq(index);\n var $images = $slideEl.find(\".\" + params.elementClass + \":not(.\" + params.loadedClass + \"):not(.\" + params.loadingClass + \")\");\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(function (imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n var $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', \"url(\\\"\" + background + \"\\\")\");\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(function (sourceEl) {\n var $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(\".\" + params.preloaderClass).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + swiper.params.slideDuplicateClass + \")\");\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children(\".\" + swiper.params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\");\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n swiperParams = swiper.params,\n slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n var slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(\".\" + swiperParams.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\").length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(\".\" + swiperParams.slideVisibleClass).each(function (slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (var _i = activeIndex + slidesPerView; _i < maxIndex; _i += 1) {\n if (slideExist(_i)) swiper.lazy.loadInSlide(_i);\n } // Prev Slides\n\n\n for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) {\n if (slideExist(_i2)) swiper.lazy.loadInSlide(_i2);\n }\n } else {\n var nextSlide = $wrapperEl.children(\".\" + swiperParams.slideNextClass);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n var prevSlide = $wrapperEl.children(\".\" + swiperParams.slidePrevClass);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n checkInViewOnLoad: function checkInViewOnLoad() {\n var window = getWindow();\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n var isWindow = $scrollElement[0] === window;\n var scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n var scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n var swiperOffset = swiper.$el.offset();\n var rtl = swiper.rtlTranslate;\n var inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n swiper.lazy.load();\n $scrollElement.off('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n } else if (!swiper.lazy.scrollHandlerAttached) {\n swiper.lazy.scrollHandlerAttached = true;\n $scrollElement.on('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n }\n }\n};\nexport default {\n name: 'lazy',\n params: {\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n lazy: _extends({\n initialImageLoaded: false\n }, Lazy)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n if (swiper.params.lazy.checkInView) {\n swiper.lazy.checkInViewOnLoad();\n } else {\n swiper.lazy.load();\n }\n }\n },\n scroll: function scroll(swiper) {\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n 'scrollbarDragMove resize _freeModeNoMomentumRelease': function lazyLoad(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart(swiper) {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange: function slideChange(swiper) {\n var _swiper$params = swiper.params,\n lazy = _swiper$params.lazy,\n cssMode = _swiper$params.cssMode,\n watchSlidesVisibility = _swiper$params.watchSlidesVisibility,\n watchSlidesProgress = _swiper$params.watchSlidesProgress,\n touchReleaseOnEdges = _swiper$params.touchReleaseOnEdges,\n resistanceRatio = _swiper$params.resistanceRatio;\n\n if (lazy.enabled && (cssMode || (watchSlidesVisibility || watchSlidesProgress) && (touchReleaseOnEdges || resistanceRatio === 0))) {\n swiper.lazy.load();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var offset = $slideEl[0].swiperSlideOffset;\n var tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl.css({\n opacity: slideOpacity\n }).transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.transitionEnd(function () {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n};\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n fadeEffect: _extends({}, Fade)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"fade\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Controller = {\n LinearSpline: function LinearSpline(x, y) {\n var binarySearch = function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(_setTranslate, byController) {\n var swiper = this;\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n var Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n },\n setTransition: function setTransition(duration, byController) {\n var swiper = this;\n var Swiper = swiper.constructor;\n var controlled = swiper.controller.control;\n var i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(function () {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n controller: _extends({\n control: swiper.params.controller.control\n }, Controller)\n });\n },\n on: {\n update: function update(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize: function resize(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate: function setTranslate(swiper, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(swiper, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n }\n }\n};","import Swiper, {\n A11y,\n Navigation,\n Pagination,\n Autoplay,\n Keyboard,\n Lazy,\n EffectFade,\n Controller,\n} from 'swiper';\n\nSwiper.use([\n A11y,\n Navigation,\n Pagination,\n Autoplay,\n Keyboard,\n Lazy,\n EffectFade,\n Controller,\n]);\n\nexport default Swiper;","import Swiper from '../../plugins/swiper';\nimport { BaseElements, BaseObject, BaseService, BaseInjector } from '../../js/base';\nimport { querySelector, KeyCodes, isIE } from '../../utility/utils';\nimport bootstrapBreakpoints from '../../utility/grid';\nimport { offVPort, onVPort, ScreenSize } from '../../utility/breakPointEvents';\n\nconst events = {\n init: 'UX:swiper-init',\n destroy: 'UX:swiper-destroy'\n};\n\nclass Texts extends BaseObject { }\n\nclass ClassList extends BaseObject {\n paused = 'paused';\n}\n\nclass Selectors extends BaseObject {\n container = '.swiper-container';\n pagination = '.swiper-pagination';\n prev = '.swiper-button-prev';\n next = '.swiper-button-next';\n responsiveSlider = '.responsive-slider';\n viewportSlider = '.viewport-slider';\n centerSlider = '.center-slider';\n freeModeSlider = '.freemode-slider';\n marginSlider = '.margin-slider';\n observerSlider = '.observer-slider';\n}\n\nclass Elements extends BaseElements {\n swiper: HTMLElement;\n pagination: HTMLElement;\n next: HTMLElement;\n prev: HTMLElement;\n wrapper: HTMLElement\n\n constructor(selectors: Selectors) {\n super(selectors, false);\n }\n\n setWrapper(wrapper: HTMLElement) {\n this.wrapper = wrapper;\n this.initElements();\n }\n\n initElements() {\n this.swiper = querySelector(this.selectors.container, this.wrapper);\n this.pagination = querySelector(this.selectors.pagination, this.wrapper);\n this.next = querySelector(this.selectors.next, this.wrapper);\n this.prev = querySelector(this.selectors.prev, this.wrapper);\n }\n}\n\ninterface SlideShow extends BaseService { }\n\ninterface SlideShowOptions {\n autoHeight: (string | boolean);\n loop: boolean;\n effect: string;\n loopAdditionalSlides: (number | null);\n centeredSlides: boolean;\n slidesPerView: (number | string);\n spaceBetween: (string | number);\n breakpoints: object;\n freeMode: boolean;\n a11y: {\n enabled: boolean,\n prevSlideMessage: string,\n nextSlideMessage: string,\n paginationBulletMessage: string\n },\n pagination: { el: HTMLElement, clickable: boolean };\n navigation: { nextEl: string | HTMLElement, prevEl: string | HTMLElement };\n init: boolean;\n clickable: boolean;\n grabCursor: boolean;\n observeParents: boolean;\n observer: HTMLElement;\n autoplay: {\n delay: number,\n disableOnInteraction: boolean,\n } | boolean;\n on: {\n slideChangeTransitionEnd: (swiperElm: { slides: any }) => any\n\n }\n}\n\n@BaseInjector(Selectors, Elements, ClassList, Texts)\nclass SlideShow {\n\n initEvent: Event;\n destoryEvent: Event;\n\n constructor(readonly wrapper: HTMLElement) {\n\n }\n\n\n initialize(): void {\n this.elements.setWrapper(this.wrapper);\n this.initEvent = this.getCustomEvent(events.init);\n this.destoryEvent = this.getCustomEvent(events.destroy);\n\n this.beforeInstanceCreation(this.elements.swiper);\n this.initializeInstance();\n this.afterInstanceCreation(this.elements.swiper);\n }\n\n getCustomEvent(type: string): Event {\n return new Event(type);\n }\n\n /**\n * Initialize the swiper instance and apply accessibility on the swiper element\n *\n */\n initializeInstance(addViewPortListener: boolean = true): Swiper {\n const swiperEl = this.elements.swiper;\n const options = this.options();\n let swiper;\n const readySwiper = (Swiper) => {\n swiper = new Swiper(swiperEl, options);\n this.addEventListeners(swiper);\n if (addViewPortListener) {\n const viewPort = this.setViewPortListener(options);\n if (!viewPort || (viewPort && window.outerWidth < bootstrapBreakpoints[viewPort])) {\n swiper.init();\n swiperEl.dispatchEvent(this.initEvent);\n }\n }\n };\n\n if (isIE()) {\n //Latest supported version of IE for swiper is v4, therefore it will be added dynamically\n import('swiper-v4')\n .then(({ default: Swiper }) => {\n readySwiper(Swiper);\n return swiper;\n })\n .catch(e => console.log(e));\n } else {\n readySwiper(Swiper);\n return swiper;\n }\n }\n\n /**\n * Add extra logic before the instance initialization\n *\n */\n beforeInstanceCreation(swiperEl: HTMLElement) {\n\n }\n\n /**\n * Add extra logic after the instance initialization\n *\n */\n afterInstanceCreation(swiperEl: HTMLElement) {\n this.addAccessibility(swiperEl);\n this.addAutoPlayControl();\n }\n\n /**\n * Generate the options for the swiper from the DOM.\n *\n */\n options(): SlideShowOptions {\n const swiper = this.elements.swiper;\n const options = swiper.dataset ?? {};\n const speed = parseInt(options.speed);\n const items = parseInt(options.items);\n const autoplay = options.autoplay && options.autoplay !== 'false' ? {\n delay: speed,\n disableOnInteraction: false,\n } : false;\n const loopAdditionalSlides = options.loop ? 2 : null; //clone additional two slides to prevent the issue of extra next/prev items not showing\n return {\n a11y: {\n enabled: !options.disableA11y,\n prevSlideMessage: options.prevSlide,\n nextSlideMessage: options.nextSlide,\n paginationBulletMessage: `${options.goToSlide} {{index}}`\n },\n spaceBetween: this.swiperMargin,\n breakpoints: this.responsiveOption,\n centeredSlides: this.centeredOption,\n freeMode: this.freeModeOption,\n pagination: this.pagination,\n navigation: this.navigation,\n init: false,\n autoHeight: (options.autoheight && options.autoheight !== 'false'),\n effect: options.animation,\n slidesPerView: !isNaN(items) ? items : 'auto',\n loop: (options.loop && options.loop != 'false'),\n loopAdditionalSlides: loopAdditionalSlides,\n clickable: true,\n grabCursor: true,\n observeParents: true,\n observer: this.hasObserver,\n autoplay,\n on: {\n slideChangeTransitionEnd: this.slideChangeTransitionEnd.bind(this)\n }\n };\n }\n\n /**\n * Generates the indicators option for the swiper\n *\n */\n get pagination(): SlideShowOptions[\"pagination\"] {\n return {\n el: this.elements.pagination,\n clickable: true\n };\n }\n\n /**\n * Generates the arrows option for the swiper\n *\n */\n get navigation(): SlideShowOptions[\"navigation\"] {\n return {\n nextEl: this.elements.next,\n prevEl: this.elements.prev\n };\n }\n\n /**\n * Check if the parent of the swiper-container has a class of margin-slider\n *\n */\n get swiperMargin(): SlideShowOptions[\"spaceBetween\"] {\n const marginSlider = this.elements.swiper.closest(this.selectors.marginSlider);\n let spaceBetween = 0;\n if (marginSlider && marginSlider.dataset.margin) {\n spaceBetween = parseInt(marginSlider.dataset.margin);\n }\n return spaceBetween;\n }\n\n /**\n * Check if the parent need to enable the observer option\n *\n */\n get hasObserver(): HTMLElement {\n return this.elements.swiper.closest(this.selectors.observerSlider);\n }\n\n /**\n * Check if the parent of the swiper-container has a class of center-slider\n *\n */\n get centeredOption(): SlideShowOptions[\"centeredSlides\"] {\n return !!this.elements.swiper.closest(this.selectors.centerSlider);\n }\n\n /**\n * Check if the parent of the swiper-container has a class of freemode-slider\n *\n */\n get freeModeOption(): SlideShowOptions[\"freeMode\"] {\n return !!this.elements.swiper.closest(this.selectors.freeModeSlider);\n }\n\n /**\n * Check if the parent of the swiper-container has timeout\n *\n */\n get initTimeout(): string {\n return this.elements.swiper.dataset.timeout;\n }\n\n /**\n * Generates the breakpoints option for the swiper\n *\n */\n get responsiveOption(): SlideShowOptions[\"breakpoints\"] {\n const swiper = this.elements.swiper;\n let responsive = swiper.dataset?.responsive;\n if (!responsive || responsive === '') {\n responsive = swiper.closest(this.selectors.responsiveSlider)?.dataset?.responsive;\n }\n\n let breakpoints = {};\n\n\n if (responsive && responsive !== '') {\n const json = JSON.parse(responsive);\n for (let key in json) {\n let viewport = bootstrapBreakpoints[key];\n breakpoints[viewport] = json[key];\n }\n }\n return breakpoints;\n };\n\n /**\n * Initialize the instance or destroy it depending on the given viewport\n *\n */\n setViewPortListener(options: object): string {\n const viewPort = this.elements.swiper.closest(this.selectors.viewportSlider)?.dataset?.sliderVport as ScreenSize;\n if (!viewPort) {\n return;\n }\n onVPort(viewPort, this.onViewPort.bind(this, options));\n offVPort(viewPort, this.offViewPort.bind(this, options));\n return viewPort.split('-').pop();\n };\n\n /**\n * When enters the viewport\n *\n * @param options\n */\n onViewPort(options) {\n const swiperEl = this.elements.swiper;\n if (!swiperEl.swiper || !swiperEl.swiper.initialized) {\n this.beforeInstanceCreation(swiperEl);\n this.initializeInstance(false).init();\n this.afterInstanceCreation(swiperEl);\n } else {\n swiperEl.swiper.init();\n }\n swiperEl.dispatchEvent(this.initEvent);\n }\n\n /**\n * When leaves the viewport\n *\n */\n offViewPort() {\n const swiperEl = this.elements.swiper;\n if (swiperEl.swiper && swiperEl.swiper.initialized) {\n swiperEl.swiper.destroy();\n }\n swiperEl.dispatchEvent(this.destoryEvent);\n }\n\n /**\n * Add event listeners for the current instance\n *\n */\n addEventListeners(swiper: Swiper) {\n\n }\n\n /**\n * On transition end\n *\n */\n slideChangeTransitionEnd(swiper: Swiper) { }\n\n /**\n * Check if the parent of the swiper-container has timeout\n *\n */\n addAccessibility(swiperEl: HTMLElement) {\n const swiper = swiperEl.swiper;\n const isAutoplayEnabled = swiperEl.dataset?.autoplay === 'true';\n if (swiper) {\n swiper.slides.forEach((slide, i) => {\n slide.addEventListener('focusin', () => {\n // Reset the scroll\n swiperEl.scrollLeft = 0;\n // WebKit sets the scroll after the event, we need\n // to reset it with zero timeout. Keep the first\n // reset to prevent jittering in other browsers\n setTimeout(() => {\n swiperEl.scrollLeft = 0;\n }, 0);\n swiper.slideTo(i);\n });\n });\n swiperEl.addEventListener('focusin', () => {\n this.keyboardFocusControls(swiperEl, swiper, isAutoplayEnabled, true);\n });\n swiperEl.addEventListener('focusout', () => {\n this.keyboardFocusControls(swiperEl, swiper, isAutoplayEnabled, false);\n });\n }\n }\n\n /**\n * Control the keyboard functionalities when the swiper has focus\n *\n */\n keyboardFocusControls(swiperEl: HTMLElement, swiper: Swiper, isAutoplayEnabled: boolean, enable: boolean) {\n if (!swiper || !swiper.keyboard) {\n return;\n }\n if (enable) {\n swiper.keyboard.enable();\n swiperEl.addEventListener('keydown', this.handleKeydown.bind(this, swiper));\n isAutoplayEnabled ? swiper.autoplay.stop() : '';\n } else {\n swiper.keyboard.disable();\n swiperEl.removeEventListener('keydown', this.handleKeydown.bind(this, swiper));\n isAutoplayEnabled ? swiper.autoplay.start() : '';\n }\n }\n\n /**\n * Handle keydown event on the swiper\n *\n */\n handleKeydown(swiper: Swiper, e: KeyboardEvent) {\n if (e.keyCode === KeyCodes.LEFT || e.keyCode === KeyCodes.RIGHT) {\n // Add timeout to allow the active index to be changed first\n setTimeout(() => {\n const activeSlide = swiper.slides[swiper.activeIndex];\n $(activeSlide).find(':focusable').first().eq(0).focus();\n }, 0);\n }\n }\n\n protected addAutoPlayControl() {\n const { pagination, swiper } = this.elements; \n const { controls, autoplay } = swiper.dataset;\n if(!pagination || !swiper || controls !==\"true\" || autoplay!==\"true\") return; \n const controlBtn = this.base.stringToNode(``);\n controlBtn.addEventListener('click', (e) => {\n e.stopPropagation();\n if(controlBtn.classList.contains(this.classList.paused)) {\n (swiper as any).swiper.autoplay.start();\n controlBtn.classList.remove(this.classList.paused);\n } else {\n (swiper as any).swiper.autoplay.stop();\n controlBtn.classList.add(this.classList.paused);\n }\n })\n pagination.append(controlBtn);\n }\n}\n\nexport default SlideShow;\n\nexport {\n Elements as SlideShowElements,\n Selectors as SlideShowSelectors,\n ClassList as SlideShowClassList,\n Texts as SlideShowTexts,\n SlideShowOptions,\n events,\n}"],"sourceRoot":""}