{"version":3,"sources":["../node_modules/swiper/esm/components/navigation/navigation.js","../node_modules/swiper/esm/components/pagination/pagination.js","../node_modules/swiper/esm/components/scrollbar/scrollbar.js","../node_modules/swiper/esm/components/mousewheel/mousewheel.js","../node_modules/swiper/esm/components/autoplay/autoplay.js","../node_modules/swiper/esm/components/a11y/a11y.js","../node_modules/swiper/esm/react/swiper-slide.js","../node_modules/swiper/esm/utils/get-support.js","../node_modules/swiper/esm/utils/get-device.js","../node_modules/swiper/esm/utils/get-browser.js","../node_modules/swiper/esm/modules/resize/resize.js","../node_modules/swiper/esm/modules/observer/observer.js","../node_modules/swiper/esm/components/core/events/onTouchStart.js","../node_modules/swiper/esm/components/core/events/onTouchMove.js","../node_modules/swiper/esm/components/core/events/onTouchEnd.js","../node_modules/swiper/esm/components/core/events/onResize.js","../node_modules/swiper/esm/components/core/events/onClick.js","../node_modules/swiper/esm/components/core/events/onScroll.js","../node_modules/swiper/esm/components/core/events/index.js","../node_modules/swiper/esm/components/core/check-overflow/index.js","../node_modules/swiper/esm/components/core/defaults.js","../node_modules/swiper/esm/components/core/core-class.js","../node_modules/swiper/esm/components/core/modular.js","../node_modules/swiper/esm/components/core/events-emitter.js","../node_modules/swiper/esm/components/core/update/index.js","../node_modules/swiper/esm/components/core/update/updateSize.js","../node_modules/swiper/esm/components/core/update/updateSlides.js","../node_modules/swiper/esm/components/core/update/updateAutoHeight.js","../node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","../node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","../node_modules/swiper/esm/components/core/update/updateProgress.js","../node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","../node_modules/swiper/esm/components/core/update/updateActiveIndex.js","../node_modules/swiper/esm/components/core/update/updateClickedSlide.js","../node_modules/swiper/esm/components/core/translate/index.js","../node_modules/swiper/esm/components/core/translate/getTranslate.js","../node_modules/swiper/esm/components/core/translate/setTranslate.js","../node_modules/swiper/esm/components/core/translate/minTranslate.js","../node_modules/swiper/esm/components/core/translate/maxTranslate.js","../node_modules/swiper/esm/components/core/translate/translateTo.js","../node_modules/swiper/esm/components/core/transition/index.js","../node_modules/swiper/esm/components/core/transition/setTransition.js","../node_modules/swiper/esm/components/core/transition/transitionStart.js","../node_modules/swiper/esm/components/core/transition/transitionEnd.js","../node_modules/swiper/esm/components/core/slide/index.js","../node_modules/swiper/esm/components/core/slide/slideTo.js","../node_modules/swiper/esm/components/core/slide/slideToLoop.js","../node_modules/swiper/esm/components/core/slide/slideNext.js","../node_modules/swiper/esm/components/core/slide/slidePrev.js","../node_modules/swiper/esm/components/core/slide/slideReset.js","../node_modules/swiper/esm/components/core/slide/slideToClosest.js","../node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","../node_modules/swiper/esm/components/core/loop/index.js","../node_modules/swiper/esm/components/core/loop/loopCreate.js","../node_modules/swiper/esm/components/core/loop/loopFix.js","../node_modules/swiper/esm/components/core/loop/loopDestroy.js","../node_modules/swiper/esm/components/core/grab-cursor/index.js","../node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","../node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","../node_modules/swiper/esm/components/core/manipulation/index.js","../node_modules/swiper/esm/components/core/manipulation/appendSlide.js","../node_modules/swiper/esm/components/core/manipulation/prependSlide.js","../node_modules/swiper/esm/components/core/manipulation/addSlide.js","../node_modules/swiper/esm/components/core/manipulation/removeSlide.js","../node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","../node_modules/swiper/esm/components/core/breakpoints/index.js","../node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","../node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","../node_modules/swiper/esm/components/core/classes/index.js","../node_modules/swiper/esm/components/core/classes/addClasses.js","../node_modules/swiper/esm/components/core/classes/removeClasses.js","../node_modules/swiper/esm/components/core/images/index.js","../node_modules/swiper/esm/components/core/images/loadImage.js","../node_modules/swiper/esm/components/core/images/preloadImages.js","../node_modules/swiper/esm/react/params-list.js","../node_modules/swiper/esm/react/loop.js","../node_modules/swiper/esm/react/swiper.js","../node_modules/swiper/esm/react/get-params.js","../node_modules/swiper/esm/react/get-children.js","../node_modules/swiper/esm/react/get-changed-params.js","../node_modules/swiper/esm/react/update-swiper.js","../node_modules/swiper/esm/react/virtual.js","../node_modules/swiper/esm/react/init-swiper.js","../node_modules/@material-ui/core/esm/utils/useControlled.js","../node_modules/@material-ui/core/esm/FormControl/useFormControl.js","../node_modules/swiper/esm/utils/utils.js","../node_modules/@material-ui/core/esm/internal/SwitchBase.js","../node_modules/ssr-window/ssr-window.esm.js","../node_modules/dom7/dom7.esm.js","../node_modules/swiper/esm/utils/dom.js","../node_modules/@material-ui/core/esm/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@material-ui/core/esm/internal/svg-icons/CheckBox.js","../node_modules/@material-ui/core/esm/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@material-ui/core/esm/Checkbox/Checkbox.js","../node_modules/swiper/esm/react/utils.js","../node_modules/lodash/slice.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/concat.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/orderBy.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/swiper/esm/react/use-isomorphic-layout-effect.js"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","Navigation","update","params","navigation","loop","_swiper$navigation","$nextEl","$prevEl","isBeginning","addClass","disabledClass","removeClass","watchOverflow","isLocked","lockClass","isEnd","onPrevClick","e","preventDefault","slidePrev","onNextClick","slideNext","init","nextEl","prevEl","$","uniqueNavElements","$el","find","on","extend","destroy","_swiper$navigation2","off","name","hideOnClick","hiddenClass","create","bindModuleMethods","swiper","toEdge","fromEdge","click","isHidden","_swiper$navigation3","is","hasClass","emit","toggleClass","Pagination","rtl","pagination","el","current","slidesLength","virtual","enabled","slides","total","Math","ceil","loopedSlides","slidesPerGroup","snapGrid","activeIndex","paginationType","snapIndex","type","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","eq","isHorizontal","css","dynamicMainBullets","undefined","previousIndex","dynamicBulletIndex","min","bulletActiveClass","each","bullet","$bullet","bulletIndex","index","prev","next","$firstDisplayedBullet","$lastDisplayedBullet","_i","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","text","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","transform","transition","speed","renderCustom","html","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","replace","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","slideTo","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","setTranslate","scrollbar","rtlTranslate","progress","dragSize","trackSize","$dragEl","newSize","newPos","style","width","height","hide","clearTimeout","timeout","opacity","setTimeout","setTransition","duration","updateSize","offsetWidth","offsetHeight","divider","size","virtualSize","moveDivider","parseInt","display","getPointerPosition","targetTouches","clientX","clientY","setDragPosition","positionRatio","dragStartPos","offset","max","position","minTranslate","maxTranslate","updateProgress","updateActiveIndex","updateSlidesClasses","onDragStart","$wrapperEl","isTouched","getBoundingClientRect","stopPropagation","dragTimeout","cssMode","onDragMove","returnValue","onDragEnd","nextTick","snapOnRelease","slideToClosest","enableDraggable","document","getDocument","touchEventsTouch","touchEventsDesktop","support","activeListener","passiveListener","passiveListeners","passive","capture","touch","addEventListener","start","move","end","disableDraggable","removeEventListener","$swiperEl","dragClass","append","dragEl","draggable","resize","observerUpdate","Mousewheel","lastScrollTime","now","lastEventBeforeSnap","recentWheelEvents","event","getWindow","navigator","userAgent","indexOf","isSupported","element","createElement","setAttribute","implementation","hasFeature","isEventSupported","normalize","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","shiftKey","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","handle","mousewheel","eventsTarget","contains","releaseOnEdges","originalEvent","delta","rtlFactor","data","forceToAxis","abs","invert","positions","getTranslate","sensitivity","nested","freeMode","_newEvent","time","direction","sign","ignoreWheelEvents","loopFix","wasBeginning","wasEnd","freeModeSticky","_recentWheelEvents","shift","_prevEvent","firstEvent","push","splice","snapToThreshold","autoplay","autoplayDisableOnInteraction","stop","newEvent","raw","prevEvent","animateSlider","releaseScroll","window","thresholdDelta","thresholdTime","animating","Date","getTime","enable","wrapperEl","disable","Autoplay","run","$activeSlideEl","delay","attr","autoplayResult","reverseDirection","stopOnLastSlide","running","pause","paused","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","destroyed","disableOnInteraction","beforeTransitionStart","internal","sliderFirstMove","touchEnd","A11y","getRandomNumber","repeat","round","random","toString","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","label","addElId","id","addElLive","live","disableEl","enableEl","onEnterKey","a11y","keyCode","$targetEl","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","slideEl","$slideEl","tagName","remove","notificationClass","afterInit","paginationUpdate","SwiperSlide","forwardRef","_temp","externalRef","slideData","_ref","_ref$tag","tag","Tag","children","_ref$className","className","zoom","virtualIndex","rest","excluded","sourceKeys","keys","_objectWithoutPropertiesLoose","slideElRef","useRef","_useState","useState","slideClasses","setSlideClasses","updateClasses","classNames","useIsomorphicLayoutEffect","getSlideClasses","isActive","isVisible","isDuplicate","isPrev","isNext","renderChildren","React","ref","uniqueClasses","displayName","device","browser","getSupport","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","supportsPassive","opts","defineProperty","get","gestures","calcSupport","getDevice","overrides","platform","ua","ios","android","screenWidth","screen","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","toLowerCase","isWebView","test","calcBrowser","resizeHandler","initialized","orientationChangeHandler","Observer","attach","options","MutationObserver","WebkitMutationObserver","mutations","requestAnimationFrame","observe","attributes","childList","characterData","observers","observeParents","containerParents","parents","observeSlideChildren","forEach","disconnect","onTouchStart","touchEventsData","touches","preventInteractionOnTransition","touchEventsTarget","closest","isTouchEvent","which","button","isMoved","noSwipingClass","shadowRoot","path","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","threshold","allowThresholdMove","formElements","activeElement","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","translate","diffX","diffY","sqrt","pow","touchAngle","atan2","PI","cancelable","touchMoveStopPropagation","startTranslate","trigger","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","watchSlidesProgress","watchSlidesVisibility","velocities","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","nextSlide","j","once","moveDistance","currentSlideSize","slidesSizesGrid","transitionStart","transitionEnd","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollWidth","scrollLeft","scrollTop","translatesDiff","dummyEventAttached","dummyEventListener","initialSlide","updateOnWindowResize","url","autoHeight","setWrapperSize","virtualTranslate","effect","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopFillGroupWithBlank","loopPreventsSlide","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","_defineProperties","props","descriptor","enumerable","configurable","writable","prototypes","modular","useParams","instanceParams","instance","modules","moduleName","module","useModules","modulesParams","moduleParams","moduleEventName","bind","eventsEmitter","events","handler","priority","self","method","split","eventsListeners","onceHandler","__emitterProxy","_len","args","Array","_key","onAny","eventsAnyListeners","offAny","eventHandler","context","_len2","_key2","isArray","slice","unshift","eventsArray","concat","clientWidth","clientHeight","Number","isNaN","swiperSize","wrongRTL","isVirtual","previousSlidesLength","slidesForMargin","slideIndex","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","parseFloat","marginLeft","marginTop","marginRight","marginBottom","floor","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","slideStyles","getComputedStyle","currentTransform","currentWebKitTransform","webkitTransform","outerWidth","outerHeight","getPropertyValue","paddingLeft","paddingRight","boxSizing","_slide$","paddingTop","paddingBottom","_boxSizing","_slide$2","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","filter","allSlidesSize","slideSizeValue","maxSnap","map","snap","_allSlidesSize","allSlidesOffset","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","activeSlide","realIndex","nextAll","prevSlide","prevAll","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","byController","x","y","translateTo","runCallbacks","translateBounds","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","Error","indexAsNumber","isFinite","t","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","_clientLeft","clientLeft","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","prepend","loopDestroy","removeAttr","moving","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","value","innerHeight","sort","a","b","_points$i","wasLocked","lastSlidePosition","classes","addClasses","suffixes","suffix","join","removeClasses","images","loadImage","imageEl","src","srcset","sizes","checkForComplete","callback","image","onReady","parent","complete","Image","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","getAttribute","extendedDefaults","Swiper","constructor","moduleParamName","swiperParams","defaults","passedParams","eventName","swipers","containerEl","newParams","querySelector","desktop","clickTimeout","Constructor","protoProps","staticProps","_proto","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","deleteInstance","cleanStyles","deleteProps","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","Resize","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","obj","allowedParams","isObject","search","getParams","restProps","_getChildren","slots","processChildren","c","Children","toArray","child","Fragment","slot","getChildren","changedParams","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","onBeforeBreakpoint","_containerClasses","_swiper","cache","renderExternal","renderExternalUpdate","useEffect","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","updateParams","currentParams","thumbs","includes","controller","control","updateSwiper","lazy","load","paginationEl","scrollbarEl","needsNavigation","needsPagination","needsScrollbar","initSwiper","top","from","to","cloneElement","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop","useControlled","controlled","defaultProp","default","isControlled","state","_React$useState","valueState","setValue","newValue","useFormControl","FormControlContext","object","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","o","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","subKey","SwitchBase","autoFocus","checkedProp","checked","checkedIcon","defaultChecked","disabledProp","disabled","icon","inputProps","inputRef","onBlur","onChange","onFocus","readOnly","required","tabIndex","other","_objectWithoutProperties","_useControlled","Boolean","_useControlled2","_slicedToArray","setCheckedState","muiFormControl","hasLabelFor","IconButton","component","clsx","root","input","newChecked","withStyles","padding","left","margin","zIndex","ssrDocument","body","nodeName","querySelectorAll","getElementById","createEvent","initEvent","childNodes","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","doc","ssrWindow","history","replaceState","pushState","go","back","CustomEvent","matchMedia","cancelAnimationFrame","win","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_construct","Parent","Class","Function","_wrapNativeSuper","_cache","Map","fn","TypeError","has","set","Wrapper","Dom7","_Array","subClass","superClass","items","_this","proto","makeReactive","ReferenceError","_assertThisInitialized","arrayFlat","arr","res","arrayFilter","selector","trim","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","shortcut","Methods","_el$classList","classList","add","_el$classList2","_len4","_key4","_len3","_key3","toggle","attrs","attrName","removeAttribute","transitionDuration","_len5","_key5","eventType","targetSelector","listener","handleLiveEvent","eventData","dom7EventData","_parents","k","handleEvent","_event","dom7LiveListeners","proxyListener","dom7Listeners","_len6","_key6","handlers","dom7proxy","_len9","_key9","evt","bubbles","dataIndex","dispatchEvent","dom","fireCallBack","includeMargins","_styles","styles","_styles2","box","clientTop","scrollY","scrollX","_prop","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","previousSibling","returnIndex","newChild","tempDiv","firstChild","appendChild","insertBefore","nextElementSibling","nextEls","_next","previousElementSibling","prevEls","_prev","parentNode","_parent","foundElements","found","removeChild","methodName","createSvgIcon","d","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","Checkbox","_props$checkedIcon","_props$color","color","_props$icon","iconProp","_props$indeterminate","indeterminate","_props$indeterminateI","indeterminateIcon","indeterminateIconProp","_props$size","capitalize","fontSize","theme","palette","secondary","colorPrimary","primary","main","backgroundColor","fade","action","hoverOpacity","colorSecondary","unique","baseSlice","require","isIterateeCall","toInteger","exports","array","result","arrayPush","baseFlatten","copyArray","baseOrderBy","collection","iteratees","orders","guard","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","identity","iteratee","comparer","compareAscending","objCriteria","criteria","othCriteria","ordersLength","isSymbol","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","isArrayLike","isIndex","deps","useLayoutEffect"],"mappings":"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","file":"static/js/14.2d616166.chunk.js","sourcesContent":["function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } 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 _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } 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.replace(/ /g, '.'));\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.replace(/ /g, '.'), 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.replace(/ /g, '.'));\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() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, nextTick, bindModuleMethods } from '../../utils/utils';\nvar Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n var dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(\"translate3d(\" + newPos + \"px, 0, 0)\");\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n $dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\n $dragEl[0].style.height = newSize + \"px\";\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = dragSize + \"px\";\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition: function getPointerPosition(e) {\n var swiper = this;\n\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n },\n setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el,\n dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n dragStartPos = scrollbar.dragStartPos;\n var positionRatio;\n positionRatio = (scrollbar.getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart: function onDragStart(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n clearTimeout(swiper.scrollbar.dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n swiper.emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (!support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (!support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n var params = swiper.params.scrollbar;\n var $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find(\".\" + swiper.params.scrollbar.dragClass);\n\n if ($dragEl.length === 0) {\n $dragEl = $(\"
\");\n $el.append($dragEl);\n }\n\n extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n }\n};\nexport default {\n name: 'scrollbar',\n params: {\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n scrollbar: _extends({\n isTouched: false,\n timeout: null,\n dragTimeout: null\n }, Scrollbar)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update(swiper) {\n swiper.scrollbar.updateSize();\n },\n resize: function resize(swiper) {\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate(swiper) {\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate(swiper) {\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n swiper.scrollbar.setTransition(duration);\n },\n destroy: function destroy(swiper) {\n swiper.scrollbar.destroy();\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n var document = getDocument();\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n var window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n var positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (_recentWheelEvents.length >= 15) {\n _recentWheelEvents.shift(); // only store the last N events\n\n }\n\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = _recentWheelEvents[0];\n\n _recentWheelEvents.push(_newEvent);\n\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n _recentWheelEvents.splice(0);\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.mousewheel.timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n var window = getWindow();\n\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n 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({}, 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};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } 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.replace(/ /g, '.'))) {\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.replace(/ /g, '.'), 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.replace(/ /g, '.'), 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({}, A11y, {\n liveRegion: $(\"\")\n })\n });\n },\n on: {\n afterInit: function afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n swiper = _ref.swiper,\n zoom = _ref.zoom,\n virtualIndex = _ref.virtualIndex,\n rest = _objectWithoutPropertiesLoose(_ref, [\"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 };","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() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\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; // change target el for shadow root componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n 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.innerWidth - 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) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n 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) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport $ 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 self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { 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.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n 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 if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n\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}","/* 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 /*#__PURE__*/React.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: child.key + \"-duplicate-\" + index + \"-\" + position,\n className: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass\n });\n }\n\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() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\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 = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n className = _ref.className,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$wrapperTag = _ref.wrapperTag,\n WrapperTag = _ref$wrapperTag === void 0 ? 'div' : _ref$wrapperTag,\n children = _ref.children,\n onSwiper = _ref.onSwiper,\n rest = _objectWithoutPropertiesLoose(_ref, [\"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(true, false);\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 /*#__PURE__*/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 /*#__PURE__*/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 };","/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled(_ref) {\n var controlled = _ref.controlled,\n defaultProp = _ref.default,\n name = _ref.name,\n _ref$state = _ref.state,\n state = _ref$state === void 0 ? 'value' : _ref$state;\n\n var _React$useRef = React.useRef(controlled !== undefined),\n isControlled = _React$useRef.current;\n\n var _React$useState = React.useState(defaultProp),\n valueState = _React$useState[0],\n setValue = _React$useState[1];\n\n var value = isControlled ? controlled : valueState;\n\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(function () {\n if (isControlled !== (controlled !== undefined)) {\n console.error([\"Material-UI: A component is changing the \".concat(isControlled ? '' : 'un', \"controlled \").concat(state, \" state of \").concat(name, \" to be \").concat(isControlled ? 'un' : '', \"controlled.\"), 'Elements should not switch from uncontrolled to controlled (or vice versa).', \"Decide between using a controlled or uncontrolled \".concat(name, \" \") + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render, it's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [controlled]);\n\n var _React$useRef2 = React.useRef(defaultProp),\n defaultValue = _React$useRef2.current;\n\n React.useEffect(function () {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([\"Material-UI: A component is changing the default \".concat(state, \" state of an uncontrolled \").concat(name, \" after being initialized. \") + \"To suppress this warning opt to use a controlled \".concat(name, \".\")].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n\n var setValueIfUncontrolled = React.useCallback(function (newValue) {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","import * as React from 'react';\nimport FormControlContext from './FormControlContext';\nexport default function useFormControl() {\n return React.useContext(FormControlContext);\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 };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@material-ui/utils';\nimport useControlled from '../utils/useControlled';\nimport useFormControl from '../FormControl/useFormControl';\nimport withStyles from '../styles/withStyles';\nimport IconButton from '../IconButton';\nexport var styles = {\n root: {\n padding: 9\n },\n checked: {},\n disabled: {},\n input: {\n cursor: 'inherit',\n position: 'absolute',\n opacity: 0,\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n zIndex: 1\n }\n};\n/**\n * @ignore - internal component.\n */\n\nvar SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref) {\n var autoFocus = props.autoFocus,\n checkedProp = props.checked,\n checkedIcon = props.checkedIcon,\n classes = props.classes,\n className = props.className,\n defaultChecked = props.defaultChecked,\n disabledProp = props.disabled,\n icon = props.icon,\n id = props.id,\n inputProps = props.inputProps,\n inputRef = props.inputRef,\n name = props.name,\n onBlur = props.onBlur,\n onChange = props.onChange,\n onFocus = props.onFocus,\n readOnly = props.readOnly,\n required = props.required,\n tabIndex = props.tabIndex,\n type = props.type,\n value = props.value,\n other = _objectWithoutProperties(props, [\"autoFocus\", \"checked\", \"checkedIcon\", \"classes\", \"className\", \"defaultChecked\", \"disabled\", \"icon\", \"id\", \"inputProps\", \"inputRef\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"readOnly\", \"required\", \"tabIndex\", \"type\", \"value\"]);\n\n var _useControlled = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'SwitchBase',\n state: 'checked'\n }),\n _useControlled2 = _slicedToArray(_useControlled, 2),\n checked = _useControlled2[0],\n setCheckedState = _useControlled2[1];\n\n var muiFormControl = useFormControl();\n\n var handleFocus = function handleFocus(event) {\n if (onFocus) {\n onFocus(event);\n }\n\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n }\n };\n\n var handleBlur = function handleBlur(event) {\n if (onBlur) {\n onBlur(event);\n }\n\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n }\n };\n\n var handleInputChange = function handleInputChange(event) {\n var newChecked = event.target.checked;\n setCheckedState(newChecked);\n\n if (onChange) {\n // TODO v5: remove the second argument.\n onChange(event, newChecked);\n }\n };\n\n var disabled = disabledProp;\n\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n\n var hasLabelFor = type === 'checkbox' || type === 'radio';\n return /*#__PURE__*/React.createElement(IconButton, _extends({\n component: \"span\",\n className: clsx(classes.root, className, checked && classes.checked, disabled && classes.disabled),\n disabled: disabled,\n tabIndex: null,\n role: undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n ref: ref\n }, other), /*#__PURE__*/React.createElement(\"input\", _extends({\n autoFocus: autoFocus,\n checked: checkedProp,\n defaultChecked: defaultChecked,\n className: classes.input,\n disabled: disabled,\n id: hasLabelFor && id,\n name: name,\n onChange: handleInputChange,\n readOnly: readOnly,\n ref: inputRef,\n required: required,\n tabIndex: tabIndex,\n type: type,\n value: value\n }, inputProps)), checked ? checkedIcon : icon);\n}); // NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\n\nprocess.env.NODE_ENV !== \"production\" ? SwitchBase.propTypes = {\n /**\n * If `true`, the `input` element will be focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node.isRequired,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * @ignore\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the switch will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node.isRequired,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /*\n * @ignore\n */\n name: PropTypes.string,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n\n /**\n * If `true`, the `input` element will be required.\n */\n required: PropTypes.bool,\n\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The input component prop `type`.\n */\n type: PropTypes.string.isRequired,\n\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default withStyles(styles, {\n name: 'PrivateSwitchBase'\n})(SwitchBase);","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = Methods[methodName];\n});\nexport default $;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@material-ui/utils';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport { fade } from '../styles/colorManipulator';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n color: theme.palette.text.secondary\n },\n\n /* Pseudo-class applied to the root element if `checked={true}`. */\n checked: {},\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Pseudo-class applied to the root element if `indeterminate={true}`. */\n indeterminate: {},\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n '&$checked': {\n color: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n '&$disabled': {\n color: theme.palette.action.disabled\n }\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n '&$checked': {\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n '&$disabled': {\n color: theme.palette.action.disabled\n }\n }\n };\n};\nvar defaultCheckedIcon = /*#__PURE__*/React.createElement(CheckBoxIcon, null);\nvar defaultIcon = /*#__PURE__*/React.createElement(CheckBoxOutlineBlankIcon, null);\nvar defaultIndeterminateIcon = /*#__PURE__*/React.createElement(IndeterminateCheckBoxIcon, null);\nvar Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(props, ref) {\n var _props$checkedIcon = props.checkedIcon,\n checkedIcon = _props$checkedIcon === void 0 ? defaultCheckedIcon : _props$checkedIcon,\n classes = props.classes,\n _props$color = props.color,\n color = _props$color === void 0 ? 'secondary' : _props$color,\n _props$icon = props.icon,\n iconProp = _props$icon === void 0 ? defaultIcon : _props$icon,\n _props$indeterminate = props.indeterminate,\n indeterminate = _props$indeterminate === void 0 ? false : _props$indeterminate,\n _props$indeterminateI = props.indeterminateIcon,\n indeterminateIconProp = _props$indeterminateI === void 0 ? defaultIndeterminateIcon : _props$indeterminateI,\n inputProps = props.inputProps,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n other = _objectWithoutProperties(props, [\"checkedIcon\", \"classes\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"]);\n\n var icon = indeterminate ? indeterminateIconProp : iconProp;\n var indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n return /*#__PURE__*/React.createElement(SwitchBase, _extends({\n type: \"checkbox\",\n classes: {\n root: clsx(classes.root, classes[\"color\".concat(capitalize(color))], indeterminate && classes.indeterminate),\n checked: classes.checked,\n disabled: classes.disabled\n },\n color: color,\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: icon.props.fontSize === undefined && size === \"small\" ? size : icon.props.fontSize\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: indeterminateIcon.props.fontSize === undefined && size === \"small\" ? size : indeterminateIcon.props.fontSize\n }),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'primary', 'secondary']),\n\n /**\n * If `true`, the checkbox will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the input.\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element will be required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the checkbox.\n * `small` is equivalent to the dense checkbox styling.\n */\n size: PropTypes.oneOf(['medium', 'small']),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiCheckbox'\n})(Checkbox);","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 };","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nmodule.exports = slice;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var arrayPush = require('./_arrayPush'),\n baseFlatten = require('./_baseFlatten'),\n copyArray = require('./_copyArray'),\n isArray = require('./isArray');\n\n/**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\nfunction concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n}\n\nmodule.exports = concat;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","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 };"],"sourceRoot":""}