{"version":3,"sources":["webpack:///./node_modules/swiper/esm/react/use-isomorphic-layout-effect.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./src/css/youtube.module.scss","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/swiper/esm/react/swiper-slide.js","webpack:///./src/css/slider.module.scss","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/swiper/esm/components/effect-fade/effect-fade.js","webpack:///./src/images/svg/closeicon.svg","webpack:///./src/components/minislider.js","webpack:///./src/images/svg/player.svg","webpack:///./src/components/youtube.js","webpack:///./node_modules/swiper/esm/components/a11y/a11y.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/swiper/esm/react/utils.js","webpack:///./node_modules/swiper/esm/react/params-list.js","webpack:///./node_modules/swiper/esm/react/loop.js","webpack:///./node_modules/swiper/esm/react/swiper.js","webpack:///./node_modules/swiper/esm/react/get-params.js","webpack:///./node_modules/swiper/esm/react/get-children.js","webpack:///./node_modules/swiper/esm/react/get-changed-params.js","webpack:///./node_modules/swiper/esm/react/update-swiper.js","webpack:///./node_modules/swiper/esm/react/virtual.js","webpack:///./node_modules/swiper/esm/react/init-swiper.js"],"names":["useIsomorphicLayoutEffect","callback","deps","window","isObject","obj","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","cancelAnimationFrame","id","getWindow","win","_extends","assign","i","arguments","source","prototype","hasOwnProperty","call","apply","Autoplay","run","swiper","$activeSlideEl","slides","eq","activeIndex","delay","params","autoplay","attr","timeout","autoplayResult","reverseDirection","loop","loopFix","slidePrev","speed","emit","isBeginning","stopOnLastSlide","stop","slideTo","slideNext","isEnd","cssMode","running","start","undefined","pause","paused","waitForTransition","$wrapperEl","onTransitionEnd","onVisibilityChange","visibilityState","e","destroyed","name","enabled","disableOnInteraction","create","on","init","beforeTransitionStart","internal","sliderFirstMove","touchEnd","destroy","module","exports","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","toString","_construct","Parent","args","Class","a","push","instance","Function","bind","_wrapNativeSuper","_cache","Map","fn","indexOf","TypeError","has","get","set","Wrapper","value","enumerable","writable","configurable","Dom7","_Array","subClass","superClass","items","_this","proto","concat","self","ReferenceError","_assertThisInitialized","defineProperty","Array","arrayFlat","arr","res","el","isArray","arrayFilter","filter","$","selector","context","html","trim","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","split","shortcut","_len","_key","trigger","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","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","_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","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","SwiperSlide","_temp","externalRef","slideData","_ref","_ref$tag","tag","Tag","_ref$className","zoom","virtualIndex","rest","excluded","sourceKeys","_objectWithoutPropertiesLoose","slideElRef","_useState","slideClasses","setSlideClasses","updateClasses","current","getSlideClasses","isActive","isVisible","isDuplicate","isPrev","isNext","renderChildren","ref","displayName","Pagination","update","rtl","pagination","$el","slidesLength","virtual","total","Math","ceil","loopedSlides","slidesPerGroup","snapGrid","paginationType","snapIndex","type","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","isHorizontal","dynamicMainBullets","previousIndex","dynamicBulletIndex","min","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","_i","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","watchOverflow","isLocked","lockClass","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","uniqueNavElements","clickable","clickableClass","modifierClass","progressbarOppositeClass","preventDefault","hiddenClass","hideOnClick","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","click","Fade","setTranslate","$slideEl","tx","swiperSlideOffset","virtualTranslate","translate","ty","slideOpacity","fadeEffect","crossFade","max","abs","progress","opacity","setTransition","eventTriggered","animating","triggerEvents","beforeInit","effect","containerModifierClass","overwriteParams","slidesPerView","slidesPerColumn","watchSlidesProgress","spaceBetween","originalParams","symbol","SwiperCore","use","Navigation","A11y","EffectFade","Thumb","filename","alt","image","useStaticQuery","edges","n","node","relativePath","includes","fluid","Minislider","state","showModal","selectedImage","handleOpenModal","handleCloseModal","setState","componentDidMount","keyCode","thumbFileNames","names","thumbItems","galleryName","onClick","fullImageItems","slidetoview","navigation","isshownav","shouldFocusAfterRender","closeOnEscape","isOpen","onRequestClose","modal","overlayClassName","overlay","initialSlide","closebutton","svgclass","closeicon","vbox","viewBox","React","Component","defaultProps","Poster","sizes","Youtube","iframeRef","createRef","posterRef","handleClick","tubeid","embedbox","onKeyDown","aria-hidden","poster","posterimagename","playbutton","player","iframe","title","width","height","frameBorder","allow","allowfullscreen","loading","getRandomNumber","size","repeat","replace","round","random","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","label","addElId","addElLive","live","disableEl","enableEl","onEnterKey","a11y","$targetEl","$nextEl","notify","lastSlideMessage","nextSlideMessage","$prevEl","firstSlideMessage","prevSlideMessage","message","notification","liveRegion","updateNavigation","_swiper$navigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","slideEl","tagName","notificationClass","afterInit","toEdge","fromEdge","paginationUpdate","browser","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","support","platform","ua","device","ios","android","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","toLowerCase","isWebView","test","calcBrowser","resize","resizeHandler","initialized","orientationChangeHandler","Observer","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","observe","attributes","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","disconnect","onTouchStart","touchEventsData","touches","preventInteractionOnTransition","originalEvent","touchEventsTarget","wrapperEl","isTouchEvent","which","button","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","rtlTranslate","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","maxTranslate","minTranslate","diffX","diffY","sqrt","pow","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","getTranslate","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","position","time","updateProgress","onTouchEnd","slidesGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","checkOverflow","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","dummyEventAttached","dummyEventListener","direction","updateOnWindowResize","url","autoHeight","setWrapperSize","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","_defineProperties","descriptor","prototypes","modular","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","method","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","slice","eventsArray","clientWidth","clientHeight","parseInt","Number","isNaN","swiperSize","wrongRTL","isVirtual","previousSlidesLength","slidesForMargin","slideIndex","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","floor","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","_slide$","paddingTop","paddingBottom","_boxSizing","_slide$2","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","visibleSlides","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","axis","byController","x","y","translateTo","runCallbacks","translateBounds","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","t","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","_clientLeft","normalize","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","move","end","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","sort","b","_points$i","innerWidth","wasLocked","lastSlidePosition","addClasses","suffixes","suffix","join","removeClasses","images","loadImage","imageEl","srcset","checkForComplete","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","moduleParamName","swiperParams","defaults","passedParams","eventName","swipers","containerEl","newParams","desktop","shadowRoot","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","protoProps","staticProps","_proto","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","m","prototypeGroup","protoMethod","deleteProps","object","nextTick","now","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","bindModuleMethods","subKey","disabledClass","onPrevClick","onNextClick","_swiper$navigation2","isHidden","_swiper$navigation3","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","calcLoopedSlides","slidesPerViewParams","externalElRef","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","containerClasses","setContainerClasses","_useState2","virtualData","setVirtualData","_useState3","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","allowedParams","getParams","restProps","_getChildren","slots","processChildren","Children","toArray","Fragment","slot","getChildren","changedParams","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","onBeforeBreakpoint","_containerClasses","_swiper","cache","renderExternal","renderExternalUpdate","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","updateParams","currentParams","thumbs","controller","control","updateSwiper","lazy","load","paginationEl","scrollbarEl","initSwiper","from","cloneElement","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop"],"mappings":"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","file":"fcf793b49829f949041f7ed0fb555895eab23879-6b01369e13cb04600f43.js","sourcesContent":["import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","/**\n * SSR Window 3.0.0-alpha.4\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 20, 2020\n */\n\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\n\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n\n if (src === void 0) {\n src = {};\n }\n\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\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 replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\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 };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n/* eslint no-underscore-dangle: \"off\" */\n\n\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 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\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 swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends(_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 }\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 if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"bug\":\"youtube-module--bug--3TYHf\",\"embedbox\":\"youtube-module--embedbox--FilqC\",\"iframe\":\"youtube-module--iframe--3oaTW\",\"playbutton\":\"youtube-module--playbutton--MuGOf\",\"poster\":\"youtube-module--poster--1HLXT\",\"hideposter\":\"youtube-module--hideposter--3jmV1\"};","/**\n * Dom7 3.0.0-alpha.9\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: August 25, 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/* eslint-disable no-proto */\n\n\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}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\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}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transition = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\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 };","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 $.fn[methodName] = Methods[methodName];\n});\nexport default $;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar SwiperSlide = forwardRef(function (_temp, externalRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n swiper = _ref.swiper,\n zoom = _ref.zoom,\n virtualIndex = _ref.virtualIndex,\n rest = _objectWithoutPropertiesLoose(_ref, [\"tag\", \"children\", \"className\", \"swiper\", \"zoom\", \"virtualIndex\"]);\n\n var slideElRef = useRef(null);\n\n var _useState = useState('swiper-slide'),\n slideClasses = _useState[0],\n setSlideClasses = _useState[1];\n\n function updateClasses(swiper, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(function () {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return function () {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(function () {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n var slideData;\n\n if (typeof children === 'function') {\n slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate next') >= 0\n };\n }\n\n var renderChildren = function renderChildren() {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(\"\" + slideClasses + (className ? \" \" + className : '')),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren());\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","// extracted by mini-css-extract-plugin\nmodule.exports = {\"bug\":\"slider-module--bug--3QILt\",\"slidebody\":\"slider-module--slidebody--2HOiz\",\"slidewrap\":\"slider-module--slidewrap--1ORsV\",\"modal\":\"slider-module--modal--3aKoi\",\"overlay\":\"slider-module--overlay--1s5OC\",\"closebutton\":\"slider-module--closebutton--3Tb2J\",\"closeicon\":\"slider-module--closeicon--3b74m\",\"swiperPreloaderSpin\":\"slider-module--swiper-preloader-spin--27x5D\"};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } 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(\".\" + params.currentClass).text(params.formatFractionCurrent(current + 1));\n $el.find(\".\" + 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(\".\" + 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 $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\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 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(\".\" + 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 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', \".\" + 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 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', \".\" + 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 click: function click(swiper, e) {\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(e.target).hasClass(swiper.params.pagination.bulletClass)) {\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() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\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};","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"closeicon\",\n \"use\": \"closeicon-usage\",\n \"viewBox\": \"0 0 24 24\",\n \"content\": \"\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import React, { Fragment } from \"react\";\nimport styles from \"../css/slider.module.scss\";\n// import Swiper core and required components\nimport SwiperCore, {\n Navigation,\n Pagination,\n Autoplay,\n A11y,\n EffectFade,\n} from \"swiper\";\nimport { Swiper, SwiperSlide } from \"swiper/react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport Img from \"gatsby-image\";\nimport Modal from \"react-modal\";\nimport Svgsprite from \"./svgsprite\";\nimport closeicon from \"../images/svg/closeicon.svg\";\n\n// install Swiper components\nSwiperCore.use([Navigation, Pagination, A11y, Autoplay, EffectFade]);\n\nconst Thumb = (props) => {\n const {\n filename,\n type = \"default\",\n alt,\n //sizes = \"(max-width: 400px) 100vw, (max-width: 600px) 100vw,(max-width: 2000px) 100vw, (max-width: 4000px) 100vw\",\n } = props;\n\n const images = useStaticQuery(graphql`\n query Minislider {\n data: allFile(\n filter: {\n extension: { regex: \"/(jpg)|(png)|(jpeg)/\" }\n relativeDirectory: { eq: \"minislider_tumbs\" }\n }\n ) {\n edges {\n node {\n relativePath\n default: childImageSharp {\n fluid(\n sizes: \"(max-width: 400px) 100vw, (max-width: 600px) 100vw,(max-width: 2000px) 100vw, (max-width: 4000px) 100vw\"\n quality: 85\n ) {\n ...GatsbyImageSharpFluid\n }\n }\n thumb: childImageSharp {\n fluid(maxHeight: 250, quality: 85) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n }\n }\n `);\n\n const image = images.data.edges.find((n) => {\n return n.node.relativePath.includes(filename);\n });\n\n if (!image) {\n return null;\n }\n\n return (\n \n );\n};\n\nclass Minislider extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n showModal: false,\n selectedImage: null,\n };\n this.handleOpenModal = this.handleOpenModal.bind(this);\n this.handleCloseModal = this.handleCloseModal.bind(this);\n }\n\n handleOpenModal() {\n this.setState({ showModal: true });\n }\n\n handleCloseModal() {\n this.setState({ showModal: false });\n }\n\n componentDidMount() {\n document.addEventListener(\"keyup\", (e) => {\n if (e.keyCode === 27) this.handleCloseModal();\n });\n }\n\n render() {\n const thumbFileNames = this.props.names;\n\n const thumbItems = thumbFileNames.map((galleryName, index) => (\n this.setState({ showModal: true, selectedImage: index })}\n >\n
\n \n
\n \n ));\n\n const fullImageItems = thumbFileNames.map((galleryName, index) => (\n \n
\n \n
\n
\n ));\n\n return (\n \n
\n \n {thumbItems}\n \n
\n \n
\n \n {fullImageItems}\n \n
\n \n \n \n \n
\n );\n }\n}\n\nMinislider.defaultProps = {\n isshownav: true,\n};\n\nexport default Minislider;\n","import SpriteSymbol from \"../../../node_modules/svg-baker-runtime/browser-symbol.js\";\nimport sprite from \"../../../node_modules/svg-sprite-loader/runtime/browser-sprite.build.js\";\nvar symbol = new SpriteSymbol({\n \"id\": \"player\",\n \"use\": \"player-usage\",\n \"viewBox\": \"0 0 1024 721\",\n \"content\": \"\\n\\n\\n\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import React from \"react\";\nimport styles from \"../css/youtube.module.scss\";\nimport Svgsprite from \"./svgsprite\";\nimport player from \"../images/svg/player.svg\";\nimport { graphql, useStaticQuery } from \"gatsby\";\nimport Img from \"gatsby-image\";\n\nconst Poster = (props) => {\n const {\n filename,\n type = \"default\",\n alt,\n sizes = \"(max-width: 400px) 100vw, (max-width: 600px) 100vw,(max-width: 1000px) 100vw\",\n } = props;\n\n const images = useStaticQuery(graphql`\n query Tube {\n data: allFile(\n filter: {\n extension: { regex: \"/(jpg)|(png)|(jpeg)/\" }\n relativeDirectory: { eq: \"tubeposter\" }\n }\n ) {\n edges {\n node {\n relativePath\n default: childImageSharp {\n fluid(quality: 85) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n }\n }\n `);\n\n const image = images.data.edges.find((n) => {\n return n.node.relativePath.includes(filename);\n });\n\n if (!image) {\n return null;\n }\n\n return (\n \n );\n};\n\nclass Youtube extends React.Component {\n constructor(props) {\n super(props);\n this.iframeRef = React.createRef();\n this.posterRef = React.createRef();\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick() {\n //console.log(this.posterRef.current.className);\n this.posterRef.current.classList.add(styles[\"hideposter\"]);\n this.iframeRef.current.src = `https://www.youtube.com/embed/${this.props.tubeid}?rel=0&showinfo=0&autoplay=1`;\n }\n\n render() {\n return (\n
\n \n \n \n
\n \n \n );\n }\n}\n\nexport default Youtube;\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } 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-role-description', 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 onEnterKey: function onEnterKey(e) {\n var swiper = this;\n var params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\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(\".\" + 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;\n swiper.a11y.addElId($wrapperEl, wrapperId);\n\n if (swiper.params.autoplay && swiper.params.autoplay.enabled) {\n live = 'off';\n } else {\n live = 'polite';\n }\n\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), 'group');\n swiper.slides.each(function (slideEl) {\n var $slideEl = $(slideEl);\n swiper.a11y.addElLabel($slideEl, $slideEl.index() + 1 + \" / \" + swiper.slides.length);\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.onEnterKey);\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.onEnterKey);\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', \".\" + swiper.params.pagination.bulletClass, swiper.a11y.onEnterKey);\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.onEnterKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\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', \".\" + swiper.params.pagination.bulletClass, swiper.a11y.onEnterKey);\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 containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends(_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};","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\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(); // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\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(_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';\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\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;\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[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.screen.width - edgeSwipeThreshold)) {\n return;\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\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 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.formElements)) {\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 } // 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 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.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\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\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 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 nested: false,\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 // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/* eslint no-param-reassign: \"off\" */\n\n\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 && args[0].constructor === 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; // Swiper Instance\n\n var swiper = this;\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 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.$ = $; // Find el\n\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper; // Find Wrapper\n\n var $wrapperEl;\n\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n $wrapperEl.children = function (options) {\n return $el.children(options);\n };\n } else {\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n } // Extend Swiper\n\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\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 // 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 // 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 formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // 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.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 swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n swiper.emit('_slideClass', slideEl, classNames);\n });\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.init = function init() {\n var swiper = this;\n if (swiper.initialized) return;\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) {\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);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\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 };\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 var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.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.width !== 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 { getWindow } from 'ssr-window';\nimport { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n var window = getWindow();\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\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }\n\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.snapGrid.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 marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\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(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), 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 = window.getComputedStyle(slide[0], null);\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 if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\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 } else {\n var height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n\n var _boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (_boxSizing && _boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n var _slide$2 = slide[0],\n clientHeight = _slide$2.clientHeight,\n offsetHeight = _slide$2.offsetHeight;\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom + (offsetHeight - clientHeight);\n }\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 if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\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 if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\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 if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({\n marginLeft: spaceBetween + \"px\"\n });else slides.filter(slidesForMargin).css({\n marginRight: spaceBetween + \"px\"\n });\n } else slides.filter(slidesForMargin).css({\n marginBottom: spaceBetween + \"px\"\n });\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 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 } // 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) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\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\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\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) {\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 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\n if (swiper.animating && params.preventInteractionOnTransition) {\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 if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\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 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\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 currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\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);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\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\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 === '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 extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\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 }\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoints(breakpoints) {\n var window = getWindow(); // Get breakpoint for window width\n\n if (!breakpoints) return undefined;\n var breakpoint = false;\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 = window.innerHeight * 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 (value <= window.innerWidth) {\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};","export 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 var suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n\n if (rtl) {\n suffixes.push('rtl');\n }\n\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n\n if (device.android) {\n suffixes.push('android');\n }\n\n if (device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(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}","import { 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 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 = window.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 && o.constructor === Object;\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\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) {\n var keysArray = Object.keys(Object(nextSource));\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 extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\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\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Navigation = {\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\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 $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\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 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 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 click: function click(swiper, e) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if (swiper.params.navigation.hideOnClick && !$(e.target).is($prevEl) && !$(e.target).is($nextEl)) {\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 isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend(target, src) {\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nvar paramsList = ['init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'nested', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_freeModeMomentum', '_freeModeMomentumRatio', '_freeModeMomentumBounce', '_freeModeMomentumBounceRatio', '_freeModeMomentumVelocityRatio', '_freeModeSticky', '_freeModeMinimumVelocity', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_slidesPerColumn', '_slidesPerColumnFill', '_slidesPerGroup', '_slidesPerGroupSkip', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_watchSlidesVisibility', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react'; // eslint-disable-next-line\n\nimport Swiper from '../../core';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n var slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n var breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n var breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n return React.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return React.cloneElement(child, {\n key: child.key + \"-duplicate-\" + index + \"-\" + position,\n className: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: swiperParams.slideClass + \" \" + swiperParams.slideBlankClass\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n var prependSlides = [];\n var appendSlides = [];\n modifiedSlides.forEach(function (child, index) {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [].concat(prependSlides, modifiedSlides, appendSlides);\n}\n\nexport { calcLoopedSlides, renderLoop };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params';\nimport { initSwiper } from './init-swiper';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses } from './utils';\nimport { renderLoop, calcLoopedSlides } from './loop';\nimport { getChangedParams } from './get-changed-params';\nimport { getChildren } from './get-children';\nimport { updateSwiper } from './update-swiper';\nimport { renderVirtual, updateOnVirtualData } from './virtual';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar Swiper = forwardRef(function (_temp, externalElRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n className = _ref.className,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$wrapperTag = _ref.wrapperTag,\n WrapperTag = _ref$wrapperTag === void 0 ? 'div' : _ref$wrapperTag,\n children = _ref.children,\n onSwiper = _ref.onSwiper,\n rest = _objectWithoutPropertiesLoose(_ref, [\"className\", \"tag\", \"wrapperTag\", \"children\", \"onSwiper\"]);\n\n var _useState = useState('swiper-container'),\n containerClasses = _useState[0],\n setContainerClasses = _useState[1];\n\n var _useState2 = useState(null),\n virtualData = _useState2[0],\n setVirtualData = _useState2[1];\n\n var _useState3 = useState(false),\n breakpointChanged = _useState3[0],\n setBreakpointChanged = _useState3[1];\n\n var initializedRef = useRef(false);\n var swiperElRef = useRef(null);\n var swiperRef = useRef(null);\n var oldPassedParamsRef = useRef(null);\n var oldSlides = useRef(null);\n var nextElRef = useRef(null);\n var prevElRef = useRef(null);\n var paginationElRef = useRef(null);\n var scrollbarElRef = useRef(null);\n\n var _getParams = getParams(rest),\n swiperParams = _getParams.params,\n passedParams = _getParams.passedParams,\n restProps = _getParams.rest;\n\n var _getChildren = getChildren(children),\n slides = _getChildren.slides,\n slots = _getChildren.slots;\n\n var changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n var onBeforeBreakpoint = function onBeforeBreakpoint() {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses: function _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n },\n _swiper: function _swiper(swiper) {\n swiper.loopCreate = function () {};\n\n swiper.loopDestroy = function () {};\n\n if (swiperParams.loop) {\n swiper.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n swiperRef.current = swiper;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.virtual.slides = slides;\n swiper.params.virtual.cache = false;\n swiper.params.virtual.renderExternal = setVirtualData;\n swiper.params.virtual.renderExternalUpdate = false;\n }\n }\n });\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n useEffect(function () {\n return function () {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(function () {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // watch for params change\n\n useIsomorphicLayoutEffect(function () {\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper(swiperRef.current, slides, passedParams, changedParams);\n }\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(function () {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // init swiper\n\n useIsomorphicLayoutEffect(function () {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n initSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return function () {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy();\n }\n };\n }, []); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(function (child) {\n return React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(\"\" + containerClasses + (className ? \" \" + className : ''))\n }, restProps), slots['container-start'], needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { isObject, extend } from './utils';\nimport { paramsList } from './params-list';\n\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n var params = {\n on: {}\n };\n var passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n var rest = {};\n var allowedParams = paramsList.map(function (key) {\n return key.replace(/_/, '');\n });\n Object.keys(obj).forEach(function (key) {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n params.on[\"\" + key[2].toLowerCase() + key.substr(3)] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n return {\n params: params,\n passedParams: passedParams,\n rest: rest\n };\n}\n\nexport { getParams };","import React from 'react';\n\nfunction getChildren(children) {\n var slides = [];\n var slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n\n function processChildren(c) {\n React.Children.toArray(c).forEach(function (child) {\n if (child.type === React.Fragment && child.props.children) {\n processChildren(child.props.children);\n return;\n }\n\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else {\n slots['container-end'].push(child);\n }\n });\n }\n\n processChildren(children);\n return {\n slides: slides,\n slots: slots\n };\n}\n\nexport { getChildren };","import { paramsList } from './params-list';\nimport { isObject } from './utils';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n var keys = [];\n if (!oldParams) return keys;\n\n var addKey = function addKey(key) {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n var oldChildrenKeys = oldChildren.map(function (child) {\n return child.key;\n });\n var childrenKeys = children.map(function (child) {\n return child.key;\n });\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n var watchParams = paramsList.filter(function (key) {\n return key[0] === '_';\n }).map(function (key) {\n return key.replace(/_/, '');\n });\n watchParams.forEach(function (key) {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n var newKeys = Object.keys(swiperParams[key]);\n var oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(function (newKey) {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(function (oldKey) {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import { isObject, extend } from './utils';\n\nfunction updateSwiper(swiper, slides, passedParams, changedParams) {\n var updateParams = changedParams.filter(function (key) {\n return key !== 'children' && key !== 'direction';\n });\n var currentParams = swiper.params,\n pagination = swiper.pagination,\n navigation = swiper.navigation,\n scrollbar = swiper.scrollbar,\n virtual = swiper.virtual,\n thumbs = swiper.thumbs;\n var needThumbsInit;\n var needControllerInit;\n var needPaginationInit;\n var needScrollbarInit;\n var needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && passedParams.pagination.el && currentParams.pagination && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && passedParams.scrollbar.el && currentParams.scrollbar && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && passedParams.navigation.prevEl && passedParams.navigation.nextEl && currentParams.navigation && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n updateParams.forEach(function (key) {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n currentParams[key] = passedParams[key];\n }\n });\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n }\n\n if (needThumbsInit) {\n var initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import React from 'react';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n var _ref;\n\n if (!virtualData) return null;\n var style = swiper.isHorizontal() ? (_ref = {}, _ref[swiper.rtlTranslate ? 'right' : 'left'] = virtualData.offset + \"px\", _ref) : {\n top: virtualData.offset + \"px\"\n };\n return slides.filter(function (child, index) {\n return index >= virtualData.from && index <= virtualData.to;\n }).map(function (child) {\n return React.cloneElement(child, {\n swiper: swiper,\n style: style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils';\n\nfunction initSwiper(_ref, swiperParams) {\n var el = _ref.el,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n paginationEl = _ref.paginationEl,\n scrollbarEl = _ref.scrollbarEl;\n\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n if (swiperParams.navigation === true) {\n swiperParams.navigation = {};\n }\n\n swiperParams.navigation.nextEl = nextEl;\n swiperParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n if (swiperParams.pagination === true) {\n swiperParams.pagination = {};\n }\n\n swiperParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n if (swiperParams.scrollbar === true) {\n swiperParams.scrollbar = {};\n }\n\n swiperParams.scrollbar.el = scrollbarEl;\n }\n\n return new Swiper(el, swiperParams);\n}\n\nexport { initSwiper };"],"sourceRoot":""}