{"version":3,"sources":["webpack:///./node_modules/react-bootstrap/esm/Row.js","webpack:///./node_modules/react-bootstrap/esm/Container.js","webpack:///./src/images/logos/logoFb.svg","webpack:///./src/images/hayPromoHayMundial/search.svg","webpack:///./src/images/logos/logoIg.svg","webpack:///./node_modules/classnames/index.js","webpack:///./src/images/logos/logoTw.svg","webpack:///./src/images/logos/logoYou.svg","webpack:///./src/styles/hayPromoHayMundial/main.module.css","webpack:///./src/styles/quilmesrock/footer.module.css","webpack:///./src/styles/hayPromoHayMundial/pdvCard.module.css","webpack:///./src/images/hayPromoHayMundial/clear.svg","webpack:///./node_modules/react-bootstrap/esm/ThemeProvider.js","webpack:///./src/images/logos/quilmesLogo.svg","webpack:///./src/images/hayPromoHayMundial/pointer.svg","webpack:///./src/styles/hayPromoHayMundial/pointer.module.css","webpack:///./src/components/hayPromoHayMundial/MapStyle.js","webpack:///./src/components/hayPromoHayMundial/Pointer.js","webpack:///./src/components/hayPromoHayMundial/CardPdv.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/shared/dom.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/images/index.js","webpack:///./node_modules/swiper/core/images/loadImage.js","webpack:///./node_modules/swiper/core/images/preloadImages.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.js","webpack:///./node_modules/swiper/shared/classes-to-selector.js","webpack:///./node_modules/swiper/modules/pagination/pagination.js","webpack:///./node_modules/swiper/components-shared/utils.js","webpack:///./node_modules/swiper/components-shared/params-list.js","webpack:///./node_modules/swiper/shared/calc-looped-slides.js","webpack:///./node_modules/swiper/react/get-children.js","webpack:///./node_modules/swiper/components-shared/update-swiper.js","webpack:///./node_modules/swiper/react/use-isomorphic-layout-effect.js","webpack:///./node_modules/swiper/react/context.js","webpack:///./node_modules/swiper/react/swiper.js","webpack:///./node_modules/swiper/components-shared/get-params.js","webpack:///./node_modules/swiper/components-shared/mount-swiper.js","webpack:///./node_modules/swiper/components-shared/get-changed-params.js","webpack:///./node_modules/swiper/components-shared/update-on-virtual-data.js","webpack:///./node_modules/swiper/react/virtual.js","webpack:///./node_modules/swiper/react/loop.js","webpack:///./node_modules/swiper/react/swiper-slide.js","webpack:///./src/components/hayPromoHayMundial/SliderPdv.js","webpack:///./src/components/hayPromoHayMundial/MainMundial.js","webpack:///./src/components/hayPromoHayMundial/Footer.js","webpack:///./src/pages/localesadheridos.js"],"names":["_excluded","DEVICE_SIZES","Row","forwardRef","_ref","ref","bsPrefix","className","noGutters","_ref$as","as","Component","props","decoratedBsPrefix","sizePrefix","classes","forEach","brkPoint","cols","propValue","infix","push","createElement","apply","concat","displayName","defaultProps","Container","fluid","prefix","suffix","module","exports","hasOwn","hasOwnProperty","classNames","i","arguments","length","arg","appendClass","parseValue","Array","isArray","toString","Object","prototype","includes","key","call","value","newClass","default","ThemeContext","createContext","Consumer","Provider","useBootstrapPrefix","defaultPrefix","prefixes","greatPlaceStyle","position","width","zIndex","height","top","left","transform","overflow","border","borderRadius","backgroundColor","textAlign","color","fontSize","fontWeight","padding","mapStyles","Pointer","visiblePointer","zoom","visiblePdvInfo","setVisiblePdvInfo","useState","setWidth","pointerRef","useRef","useEffect","handleClickOutside","event","current","contains","target","document","addEventListener","setTimeout","React","styles","iconContainer","style","onClick","handleClick","localidad","domicilio","window","dataLayer","event_category","event_action","provincia","event_label","interaction","component_name","iconImg","src","iconQuilmes","alt","infoContainer","topInfo","clearIcon","handleClear","CardPuntoDeVenta","pdv","setZoom","setPosition","console","log","cardContainer","handleSelectPdv","lat","lng","element_text","isObject","obj","constructor","extend","undefined","keys","ssrDocument","body","activeElement","nodeName","querySelector","querySelectorAll","getElementById","createEvent","children","childNodes","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","CustomEvent","this","getComputedStyle","getPropertyValue","screen","matchMedia","requestAnimationFrame","callback","id","clearTimeout","getWindow","win","Dom7","items","super","proto","__proto__","defineProperty","get","makeReactive","arrayFlat","arr","res","el","arrayFilter","filter","$","selector","context","html","trim","indexOf","toCreate","tempParent","innerHTML","a","qsa","nodeType","uniqueArray","arrayUnique","fn","noTrigger","split","shortcut","name","_len14","args","_key14","trigger","on","Methods","addClass","_len","_key","map","c","classList","add","removeClass","_len2","_key2","remove","hasClass","_len4","_key4","toggleClass","_len3","_key3","toggle","attr","attrs","getAttribute","setAttribute","attrName","removeAttr","removeAttribute","transition","duration","transitionDuration","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","parents","k","handleEvent","events","j","dom7LiveListeners","proxyListener","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","removeEventListener","splice","_len9","_key9","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","offsetWidth","parseFloat","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","css","prop","each","index","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","parentNode","closest","find","foundElements","found","removeChild","methodName","writable","nextTick","delay","now","Date","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","replace","join","MozTransform","OTransform","MsTransform","msTransform","m41","m42","o","slice","isNode","node","HTMLElement","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","startTime","params","speed","wrapperEl","scrollSnapType","cancelAnimationFrame","cssModeFrameID","dir","isOutOfBound","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","deviceCached","getSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","calcDevice","support","platform","ua","device","ios","android","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","iPadScreens","os","getBrowser","isSafari","toLowerCase","isWebView","test","calcBrowser","transitionEmit","runCallbacks","direction","step","activeIndex","previousIndex","emit","touchEventsData","touches","enabled","animating","preventInteractionOnTransition","cssMode","loop","loopFix","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","path","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","assign","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","focusableElements","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchStart","rtlTranslate","rtl","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","maxTranslate","minTranslate","diffX","diffY","sqrt","touchAngle","isHorizontal","atan2","abs","touchMoveStopPropagation","nested","stopPropagation","startTranslate","setTransition","$wrapperEl","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","watchSlidesProgress","updateActiveIndex","updateSlidesClasses","onTouchMove","updateProgress","setTranslate","slidesGrid","touchEndTime","timeDiff","pathTree","updateClickedSlide","lastClickTime","destroyed","currentPos","onTouchEnd","stopIndex","groupSize","slidesSizesGrid","slidesPerGroupSkip","slidesPerGroup","increment","rewindFirstIndex","rewindLastIndex","rewind","isBeginning","virtual","slides","isEnd","ratio","longSwipesMs","longSwipes","slideTo","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","snapGrid","updateSlides","slidesPerView","centeredSlides","autoplay","running","paused","run","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","newProgress","previousTranslate","translatesDiff","dummyEventAttached","dummyEventListener","method","touchEvents","domMethod","swiperMethod","start","passiveListeners","passive","move","end","cancel","updateOnWindowResize","isGridEnabled","grid","rows","init","initialSlide","resizeObserver","createElements","url","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopedSlidesLimit","loopFillGroupWithBlank","loopPreventsSlide","maxBackfaceHiddenSlides","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","priority","self","eventsListeners","onceHandler","__emitterProxy","eventsAnyListeners","eventHandler","update","$el","clientWidth","clientHeight","parseInt","Number","isNaN","size","getDirectionLabel","property","getDirectionPropertyValue","label","swiperSize","wrongRTL","isVirtual","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","gridEnabled","slideSize","initSlides","shouldResetSlideSize","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","_","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","visibleSlides","ceil","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","wasBeginning","wasEnd","realIndex","activeSlide","nextSlide","prevSlide","emitSlidesClasses","newActiveIndex","previousRealIndex","previousSnapIndex","skip","initialized","slideFound","clickedSlide","clickedIndex","byController","x","y","translateTo","translateBounds","internal","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionStart","initial","Error","indexAsNumber","isFinite","normalizedTranslate","normalizedGrid","normalizedGridNext","t","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerViewDynamic","_clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","currentSnap","slideToIndex","loopCreate","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","attachEvents","bind","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","b","wasLocked","lastSlideIndex","lastSlideRightEdge","addClasses","suffixes","entries","resultClasses","item","prepareClasses","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","Image","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","swipers","newParams","overrides","getDevice","browser","modules","__modules__","mod","extendParams","once","swiperParams","defaults","passedParams","eventName","onAny","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","cls","slideEl","updates","getSlideClasses","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","options","getWrapper","wrapper","mount","deleteInstance","cleanStyles","object","deleteProps","newDefaults","m","installModule","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","createElementIfNotDefined","checkProps","element","classesToSelector","Pagination","pfx","bulletSize","pagination","bulletElement","clickable","hideOnClick","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","destroy","_s","targetEl","isHidden","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","calcLoopedSlides","slidesPerViewParams","breakpointOnlyParams","isChildSwiperSlide","getChildren","slots","Children","toArray","slot","foundSlides","processChildren","updateSwiper","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","controller","control","newValue","lazy","load","useIsomorphicLayoutEffect","deps","SwiperSlideContext","SwiperContext","_extends","source","_temp","externalElRef","tag","Tag","wrapperTag","WrapperTag","onSwiper","rest","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","splitEvents","allowedParams","plainObj","getParams","onBeforeBreakpoint","initSwiper","extendWith","cache","renderExternal","renderExternalUpdate","mountSwiper","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","parallax","from","cloneElement","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop","Fragment","SwiperSlide","externalRef","virtualIndex","slideElRef","slideClasses","setSlideClasses","updateClasses","slideData","isActive","isVisible","isDuplicate","isPrev","isNext","renderChildren","SliderPuntoDeVenta","pdvs","isMobile","setIsMobile","IsMobileDevice","Swiper","onSlideChange","GoogleMapReact","loadable","HayPromoHayMundial","puntosDeVenta","provinces","localidades","provincePoints","searchInput","setSearchInput","provinceInput","setProvinceInput","searchOptions","setSearchOptions","provinceOptions","setProvinceOptions","bounds","setBounds","selectedProvince","setSelectedProvince","selectedLocalidad","setSelectedLocalidad","provincePointers","setProvincePointers","provincePdvs","setPdvs","visiblePointers","setVisiblePointers","puntoDeVenta","clearInput","center","container","headerMain","Link","quilmesIcon","logoQ","topContainer","title","searchContainer","inputsContainer","searchBar","searchIcon","placeholder","onChange","filtradas","province","handleProvinceChange","clearContainer","dropdownResults","searchOptionsLast","pdvFiltrados","positionPdv","handleBtnsDropdownProvince","handleChange","handleBtnsDropdown","rightInfo","infoResults","bottomContainer","pdvsContainer","googleMapContainer","bootstrapURLKeys","defaultCenter","defaultZoom","ne","sw","gestureHandling","pointer","isPointerInBounds","codPdv","scroll","Scroll","Footer","footer_container","scrollToTop","footer_menu","footerOptions","links","pHidden","socialContainer","facebook","logoFb","social","logoTw","logoIg","logoYou","ElMundial","local","localStorage","getItem","sessionStorage","navigate","state","newPath","allLocalesAdheridos","nodes","allProvince","cityPoints","allCity","toUpperCase","SEO","description"],"mappings":"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","file":"component---src-pages-localesadheridos-js-e40982c473021037c4bb.js","sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"className\", \"noGutters\", \"as\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar DEVICE_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];\nvar defaultProps = {\n noGutters: false\n};\nvar Row = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n className = _ref.className,\n noGutters = _ref.noGutters,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n var decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n var sizePrefix = decoratedBsPrefix + \"-cols\";\n var classes = [];\n DEVICE_SIZES.forEach(function (brkPoint) {\n var propValue = props[brkPoint];\n delete props[brkPoint];\n var cols;\n if (propValue != null && typeof propValue === 'object') {\n cols = propValue.cols;\n } else {\n cols = propValue;\n }\n var infix = brkPoint !== 'xs' ? \"-\" + brkPoint : '';\n if (cols != null) classes.push(\"\" + sizePrefix + infix + \"-\" + cols);\n });\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames.apply(void 0, [className, decoratedBsPrefix, noGutters && 'no-gutters'].concat(classes))\n }));\n});\nRow.displayName = 'Row';\nRow.defaultProps = defaultProps;\nexport default Row;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"bsPrefix\", \"fluid\", \"as\", \"className\"];\nimport classNames from 'classnames';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nvar defaultProps = {\n fluid: false\n};\nvar Container = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var bsPrefix = _ref.bsPrefix,\n fluid = _ref.fluid,\n _ref$as = _ref.as,\n Component = _ref$as === void 0 ? 'div' : _ref$as,\n className = _ref.className,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n var prefix = useBootstrapPrefix(bsPrefix, 'container');\n var suffix = typeof fluid === 'string' ? \"-\" + fluid : '-fluid';\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref\n }, props, {\n className: classNames(className, fluid ? \"\" + prefix + suffix : prefix)\n }));\n});\nContainer.displayName = 'Container';\nContainer.defaultProps = defaultProps;\nexport default Container;","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMC44MDgiIGhlaWdodD0iMjMuMTYyIiB2aWV3Qm94PSIwIDAgMTAuODA4IDIzLjE2MiI+DQogIDxnIGlkPSJHcnVwb183NjYiIGRhdGEtbmFtZT0iR3J1cG8gNzY2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwKSI+DQogICAgPHBhdGggaWQ9IlRyYXphZG9fNDM3IiBkYXRhLW5hbWU9IlRyYXphZG8gNDM3IiBkPSJNLTM2My45MTgsMTMyNC4wMzR2LTEuODUyYS45ODIuOTgyLDAsMCwxLDEuMDI1LTEuMTEzaDIuNlYxMzE3LjFsLTMuNTc5LS4wMTZjLTMuOTcyLDAtNC44NzUsMi45NjEtNC44NzUsNC44NTV2Mi4wOTRoLTIuM3Y0LjYzMmgyLjMxNnYxMS41ODFoNC42MzN2LTExLjU4MWgzLjQzN2wuMTY3LTEuODE5LjI1Ni0yLjgxM1oiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM3MS4wNDUgLTEzMTcuMDg0KSIgZmlsbD0iIzRhYmNlZCIvPg0KICA8L2c+DQo8L3N2Zz4NCg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTExIDE5QzE1LjQxODMgMTkgMTkgMTUuNDE4MyAxOSAxMUMxOSA2LjU4MTcyIDE1LjQxODMgMyAxMSAzQzYuNTgxNzIgMyAzIDYuNTgxNzIgMyAxMUMzIDE1LjQxODMgNi41ODE3MiAxOSAxMSAxOVoiIHN0cm9rZT0iIzE5NDQ3OCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTIwLjk5OTkgMjAuOTk5OUwxNi42NDk5IDE2LjY0OTkiIHN0cm9rZT0iIzE5NDQ3OCIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iR3J1cG9fNzY1IiBkYXRhLW5hbWU9IkdydXBvIDc2NSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjMuMTYyIiBoZWlnaHQ9IjIzLjE2MSIgdmlld0JveD0iMCAwIDIzLjE2MiAyMy4xNjEiPg0KICA8ZyBpZD0iR3J1cG9fNzY0IiBkYXRhLW5hbWU9IkdydXBvIDc2NCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCkiPg0KICAgIDxwYXRoIGlkPSJUcmF6YWRvXzQzOSIgZGF0YS1uYW1lPSJUcmF6YWRvIDQzOSIgZD0iTS0yNzkuNTMyLDEzMTUuNjgzaC05LjM2MmE2LjkwNyw2LjkwNywwLDAsMC02LjksNi45djkuMzYyYTYuOTA4LDYuOTA4LDAsMCwwLDYuOSw2LjloOS4zNjJhNi45MDgsNi45MDgsMCwwLDAsNi45LTYuOXYtOS4zNjJBNi45MDcsNi45MDcsMCwwLDAtMjc5LjUzMiwxMzE1LjY4M1ptNC41NywxNi4yNjFhNC41Nyw0LjU3LDAsMCwxLTQuNTcsNC41N2gtOS4zNjJhNC41NjksNC41NjksMCwwLDEtNC41Ny00LjU3di05LjM2MmE0LjU2OSw0LjU2OSwwLDAsMSw0LjU3LTQuNTdoOS4zNjJhNC41Nyw0LjU3LDAsMCwxLDQuNTcsNC41N3Y5LjM2MloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI5NS43OTQgLTEzMTUuNjgzKSIgZmlsbD0iIzRhYmNlZCIvPg0KICAgIDxwYXRoIGlkPSJUcmF6YWRvXzQ0MCIgZGF0YS1uYW1lPSJUcmF6YWRvIDQ0MCIgZD0iTS0yODMuMDUsMTMyMi40MzVhNiw2LDAsMCwwLTUuOTkxLDUuOTksNiw2LDAsMCwwLDUuOTkxLDUuOTksNiw2LDAsMCwwLDUuOTkxLTUuOTlBNiw2LDAsMCwwLTI4My4wNSwxMzIyLjQzNVptMCw5LjY1YTMuNjYsMy42NiwwLDAsMS0zLjY2MS0zLjY2LDMuNjYxLDMuNjYxLDAsMCwxLDMuNjYxLTMuNjYsMy42NiwzLjY2LDAsMCwxLDMuNjYsMy42NkEzLjY2LDMuNjYsMCwwLDEtMjgzLjA1LDEzMzIuMDg1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjk0LjYzMiAtMTMxNi44NDUpIiBmaWxsPSIjNGFiY2VkIi8+DQogICAgPGVsbGlwc2UgaWQ9IkVsaXBzZV8zMiIgZGF0YS1uYW1lPSJFbGlwc2UgMzIiIGN4PSIxLjQzNSIgY3k9IjEuNDM1IiByeD0iMS40MzUiIHJ5PSIxLjQzNSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTYuMTQ4IDQuMikiIGZpbGw9IiM0YWJjZWQiLz4NCiAgPC9nPg0KPC9zdmc+DQo=\"","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n function classNames() {\n var classes = '';\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (arg) {\n classes = appendClass(classes, parseValue(arg));\n }\n }\n return classes;\n }\n function parseValue(arg) {\n if (typeof arg === 'string' || typeof arg === 'number') {\n return arg;\n }\n if (typeof arg !== 'object') {\n return '';\n }\n if (Array.isArray(arg)) {\n return classNames.apply(null, arg);\n }\n if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n return arg.toString();\n }\n var classes = '';\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes = appendClass(classes, key);\n }\n }\n return classes;\n }\n function appendClass(value, newClass) {\n if (!newClass) {\n return value;\n }\n if (value) {\n return value + ' ' + newClass;\n }\n return value + newClass;\n }\n if (typeof module !== 'undefined' && module.exports) {\n classNames.default = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMy4xNjMiIGhlaWdodD0iMTguNTI5IiB2aWV3Qm94PSIwIDAgMjMuMTYzIDE4LjUyOSI+DQogIDxwYXRoIGlkPSJUcmF6YWRvXzQzOCIgZGF0YS1uYW1lPSJUcmF6YWRvIDQzOCIgZD0iTS0zMTIuNjIyLDEzMjEuOGE5LjU4NSw5LjU4NSwwLDAsMS0yLjcyOS43MzYsNC43LDQuNywwLDAsMCwyLjA5LTIuNTg5LDkuNTYzLDkuNTYzLDAsMCwxLTMuMDE5LDEuMTM2LDQuNzc1LDQuNzc1LDAsMCwwLTMuNDY4LTEuNDc3LDQuNzE2LDQuNzE2LDAsMCwwLTQuNzUxLDQuNjc3LDQuNjc0LDQuNjc0LDAsMCwwLC4xMjIsMS4wNjUsMTMuNTYxLDEzLjU2MSwwLDAsMS05Ljc5NC00Ljg4Nyw0LjYwNiw0LjYwNiwwLDAsMC0uNjQ0LDIuMzUyLDQuNjYyLDQuNjYyLDAsMCwwLDIuMTE0LDMuODkzLDQuNzg4LDQuNzg4LDAsMCwxLTIuMTUyLS41ODR2LjA1OGE0LjYsNC42LDAsMCwwLC4zMjUsMS43LDQuNzQ2LDQuNzQ2LDAsMCwwLDMuNDg3LDIuODkzLDQuODgzLDQuODgzLDAsMCwxLTEuMjUzLjE2NCw0LjgsNC44LDAsMCwxLS44OTMtLjA4NCw0Ljc0OCw0Ljc0OCwwLDAsMCw0LjQzOCwzLjI0OCw5LjYyLDkuNjIsMCwwLDEtNS45LDIsOS42OTQsOS42OTQsMCwwLDEtMS4xMzUtLjA2NiwxMy42MjMsMTMuNjIzLDAsMCwwLDcuMjg1LDIuMSwxMy4yMjcsMTMuMjI3LDAsMCwwLDEzLjItMTAuNDg2LDEyLjgxOSwxMi44MTksMCwwLDAsLjMyNC0yLjgyNGMwLS4yLDAtLjQtLjAxMy0uNkE5LjU1Nyw5LjU1NywwLDAsMC0zMTIuNjIyLDEzMjEuOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMzNS43ODUgLTEzMTkuNjAyKSIgZmlsbD0iIzRhYmNlZCIvPg0KPC9zdmc+DQo=\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNC41MzciIGhlaWdodD0iMTcuOTkyIiB2aWV3Qm94PSIwIDAgMjQuNTM3IDE3Ljk5MiI+DQogIDxwYXRoIGlkPSJUcmF6YWRvXzQ0MSIgZGF0YS1uYW1lPSJUcmF6YWRvIDQ0MSIgZD0iTS0xODcuMjA2LDEzMzYuOTA4YTUuNjgsNS42OCwwLDAsMC0uOTc0LTIuNTQsMy40MzMsMy40MzMsMCwwLDAtMi40NTctMS4wODNjLTMuNDM2LS4yNTctOC41ODUtLjI1Ny04LjU4NS0uMjU3aC0uMDExcy01LjE1MiwwLTguNTg0LjI1OGEzLjQyNywzLjQyNywwLDAsMC0yLjQ1OSwxLjA4Myw1LjY5Myw1LjY5MywwLDAsMC0uOTc0LDIuNTQsNDAuMDk0LDQwLjA5NCwwLDAsMC0uMjQ3LDQuMTQxdjEuOTRhNDAuMTMxLDQwLjEzMSwwLDAsMCwuMjQ3LDQuMTQzLDUuNjg5LDUuNjg5LDAsMCwwLC45NzQsMi41MzksNC4wNjQsNC4wNjQsMCwwLDAsMi43MDcsMS4wOTNjMS45NjMuMiw4LjM0MS4yNTcsOC4zNDEuMjU3czUuMTU1LS4wMSw4LjU5MS0uMjY3YTMuNDMsMy40MywwLDAsMCwyLjQ1Ny0xLjA4NCw1LjY3Nyw1LjY3NywwLDAsMCwuOTc0LTIuNTM5LDQwLjExLDQwLjExLDAsMCwwLC4yNDctNC4xNDJ2LTEuOTRBNDAuMTI3LDQwLjEyNywwLDAsMC0xODcuMjA2LDEzMzYuOTA4Wm0tNy45MjcsNC44NTQtNi42MjcsMy41ODEsMC01LjUxMnYtMS42NzdsMi45ODgsMS42MjdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTEuNDk2IC0xMzMzLjAyOCkiIGZpbGw9IiM0YWJjZWQiLz4NCjwvc3ZnPg0K\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"main-module--container--2nKsb\",\"headerMain\":\"main-module--headerMain--1ZwRQ\",\"topContainer\":\"main-module--topContainer--2xvxf\",\"title\":\"main-module--title--1FYJA\",\"text\":\"main-module--text--2kvpl\",\"quilmesIcon\":\"main-module--quilmesIcon--3Asj2\",\"textContainer\":\"main-module--textContainer--1Frnc\",\"slogan\":\"main-module--slogan--37rhZ\",\"inputsContainer\":\"main-module--inputsContainer--3Mo92\",\"searchContainer\":\"main-module--searchContainer--1WG5n\",\"search\":\"main-module--search--2uk8c\",\"searchBar\":\"main-module--searchBar--3bol8\",\"searchIcon\":\"main-module--searchIcon--23a2O\",\"searchInput\":\"main-module--searchInput--tCMAX\",\"clearContainer\":\"main-module--clearContainer--1jCuz\",\"clearIcon\":\"main-module--clearIcon--2oAtx\",\"rightInfo\":\"main-module--rightInfo--1ts2K\",\"btnCupon\":\"main-module--btnCupon--r8jV2\",\"cuponText\":\"main-module--cuponText--37e8O\",\"infoResults\":\"main-module--infoResults--Y_WXM\",\"dropdownContainer\":\"main-module--dropdownContainer--mZHGt\",\"dropdownResults\":\"main-module--dropdownResults--2CA1W\",\"searchOptions\":\"main-module--searchOptions--2Bxko\",\"searchOptionsLast\":\"main-module--searchOptionsLast--1ey76\",\"bottomContainer\":\"main-module--bottomContainer--17bzF\",\"pdvsContainer\":\"main-module--pdvsContainer--3PLId\",\"googleMapContainer\":\"main-module--googleMapContainer--1fOon\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer_container\":\"footer-module--footer_container--3BbTB\",\"logoQ\":\"footer-module--logoQ--3fsz5\",\"footer_menu\":\"footer-module--footer_menu--398_P\",\"footerOptions\":\"footer-module--footer-options--1Po9v\",\"socialContainer\":\"footer-module--social-container--1eU2h\",\"social\":\"footer-module--social--uL6My\",\"links\":\"footer-module--links--3VFId\",\"linksmobile\":\"footer-module--linksmobile--3j8As\",\"pHidden\":\"footer-module--p-hidden--1We1K\",\"facebook\":\"footer-module--facebook--1WBbH\",\"linksflex\":\"footer-module--linksflex--2Q1Fm\",\"linksnone\":\"footer-module--linksnone--2CzDj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cardContainer\":\"pdvCard-module--cardContainer--xchwK\"};","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDZMNiAxOCIgc3Ryb2tlPSIjMTk0NDc4IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNNiA2TDE4IDE4IiBzdHJva2U9IiMxOTQ0NzgiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=\"","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { useContext, useMemo } from 'react';\nvar ThemeContext = /*#__PURE__*/React.createContext({});\nvar Consumer = ThemeContext.Consumer,\n Provider = ThemeContext.Provider;\nfunction ThemeProvider(_ref) {\n var prefixes = _ref.prefixes,\n children = _ref.children;\n var copiedPrefixes = useMemo(function () {\n return _extends({}, prefixes);\n }, [prefixes]);\n return /*#__PURE__*/React.createElement(Provider, {\n value: copiedPrefixes\n }, children);\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n var prefixes = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n var isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n var _opts = opts,\n prefix = _opts.prefix,\n _opts$forwardRefAs = _opts.forwardRefAs,\n forwardRefAs = _opts$forwardRefAs === void 0 ? isClassy ? 'ref' : 'innerRef' : _opts$forwardRefAs;\n var Wrapped = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {\n var props = _extends({}, _ref2);\n props[forwardRefAs] = ref;\n var bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n bsPrefix: bsPrefix\n }));\n });\n Wrapped.displayName = \"Bootstrap(\" + (Component.displayName || Component.name) + \")\";\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iR3J1cG9fNzczIiBkYXRhLW5hbWU9IkdydXBvIDc3MyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjI3LjI4NyIgaGVpZ2h0PSIxMTYuOTMyIiB2aWV3Qm94PSIwIDAgMjI3LjI4NyAxMTYuOTMyIj4NCiAgPGcgaWQ9IkdydXBvXzUwIiBkYXRhLW5hbWU9IkdydXBvIDUwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1NC4xNjEgNzIuMjI5KSI+DQogICAgPGcgaWQ9IkdydXBvXzQ5IiBkYXRhLW5hbWU9IkdydXBvIDQ5Ij4NCiAgICAgIDxwYXRoIGlkPSJUcmF6YWRvXzQxIiBkYXRhLW5hbWU9IlRyYXphZG8gNDEiIGQ9Ik0xMDIuNjY2LDEzMy40NDFhNC4wNDksNC4wNDksMCwwLDEtMS4wODksMS40NTcsNS43OTIsNS43OTIsMCwwLDEtMi40NzMsMS4xNDdjLTIuNS41MzMtMy43MzYtLjY0OS0zLjczNi0yLjQ4OGEzLjU4MywzLjU4MywwLDAsMSwxLjE0MS0yLjY5NCw0Ljc3MSw0Ljc3MSwwLDAsMSwyLjU2OS0xLjMyNSw0LjMzOCw0LjMzOCwwLDAsMSwyLjM0Mi4wNzksMi40MzIsMi40MzIsMCwwLDEsMS4xMjQuOTY5TDEwMS42LDEzMWExLjQyNywxLjQyNywwLDAsMC0uNjctLjYxOCwzLjE0NiwzLjE0NiwwLDAsMC0xLjgyLS4wNzYsMy4xNzksMy4xNzksMCwwLDAtMi44MjIsMy4wMzQsMi4xMTUsMi4xMTUsMCwwLDAsLjYzNiwxLjYyMywyLjU4OCwyLjU4OCwwLDAsMCwyLjIzOS4zMTIsMy43ODgsMy43ODgsMCwwLDAsMS45NTktLjk1LDIuODA5LDIuODA5LDAsMCwwLC42MTgtLjg3NloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC05NS4zNjggLTEwMC41KSIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggaWQ9IlRyYXphZG9fNDIiIGRhdGEtbmFtZT0iVHJhemFkbyA0MiIgZD0iTTEwMi45NzUsMTI4LjkybDUuNjc4LTEuMjA4di43NjFsLTQuODA3LDEuMDI0djEuODQ3bDQuNjc1LTF2LjcyN2wtNC42NzUsMXYyLjA4NGw1LjAyNS0xLjA2OXYuNzYxbC01LjksMS4yNTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtOTIuNzk2IC0xMDEuMDc1KSIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggaWQ9IlRyYXphZG9fNDMiIGRhdGEtbmFtZT0iVHJhemFkbyA0MyIgZD0iTTEwOS42NywxMjcuNDQzbDQuMTgtLjg5YTIuMiwyLjIsMCwwLDEsMS43MjUuMTMyLDEuMzQxLDEuMzQxLDAsMCwxLC41NDksMS4yLDIuMjI2LDIuMjI2LDAsMCwxLTEuNjU1LDIuMWwyLjI2NCwyLjEyNi0xLjE0LjI0NC0yLjA4Mi0yLjAyNi0yLjk2OS42MzJ2Mi40NjlsLS44NzEuMTg2Wm0uODYzLjU2MXYyLjI0MWwzLjAzOS0uNjQ4YTIuMDc4LDIuMDc4LDAsMCwwLDEuNDM3LS43NzcsMS4yNTIsMS4yNTIsMCwwLDAsLjIwOS0uNywxLjAyLDEuMDIsMCwwLDAtLjE4My0uNjE4Yy0uMjc4LS4zODctLjcyMy0uMjkzLTEuMTIzLS4yMTVaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtOTAuNTMyIC0xMDEuNTA0KSIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggaWQ9IlRyYXphZG9fNDQiIGRhdGEtbmFtZT0iVHJhemFkbyA0NCIgZD0iTTEyMS45ODQsMTI0LjkzMWwuOTU3LS4yLTIuOSw2LjgtLjg3OS4xODYtMi45NTItNS41NTEuOTY2LS4yMDYsMi4xNDIsNC4xMTNhMy4yLDMuMiwwLDAsMSwuMy43MDcsMi41NzksMi41NzksMCwwLDEsLjIyNi0uNzIxWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg4LjMyIC0xMDIuMDg0KSIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggaWQ9IlRyYXphZG9fNDUiIGRhdGEtbmFtZT0iVHJhemFkbyA0NSIgZD0iTTEyMy4wNTUsMTI0LjY0N2w1LjY3OC0xLjIwOHYuNzYxbC00LjgwNywxLjAyMnYxLjg0OGw0LjY3Ny0xdi43MjdsLTQuNjc3LDF2Mi4wODRsNS4wMjUtMS4wNzF2Ljc2MWwtNS45LDEuMjU1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTg2LjAwNiAtMTAyLjUyKSIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggaWQ9IlRyYXphZG9fNDYiIGRhdGEtbmFtZT0iVHJhemFkbyA0NiIgZD0iTTEyOS43NTgsMTIzLjI0MWw1LjY4Ny0xLjIxdi43MzVsLTQuODI1LDUuNyw0LjkxMi0xLjA0NXYuNzcxbC02LjEzOSwxLjMwNnYtLjcyN2w0LjgxNi01LjcxNy00LjQ1MS45NDdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODMuODYzIC0xMDIuOTk2KSIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggaWQ9IlRyYXphZG9fNDciIGRhdGEtbmFtZT0iVHJhemFkbyA0NyIgZD0iTTEzOC42NjIsMTIxLjIzNWwuOTIyLS4yLDMuMTUzLDUuNTE5LTEsLjIxMy0uNzQ5LTEuMzY0LTMuNzc5LjgtLjc0OSwxLjY4Mi0uOTc1LjIwN1ptLjY1MywxLjIwOGMtLjA0NC0uMS0uMS0uMTg5LS4xMzktLjI4NWEyLjEyOCwyLjEyOCwwLDAsMS0uMDcxLS4yMjJjLS4wMjUuMDg0LS4wNTEuMTc4LS4wODcuMjczLS4wNDMuMTIzLS4xLjI0LS4xNDcuMzY0bC0xLjMsMi44NDEsMy4wMzktLjY0NloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC04MS44MDMgLTEwMy4zMzIpIiBmaWxsPSIjZmZmIi8+DQogICAgICA8cGF0aCBpZD0iVHJhemFkb180OCIgZGF0YS1uYW1lPSJUcmF6YWRvIDQ4IiBkPSJNMTQ5LjA1OSwxMTkuMDIybC45MjMtLjIsMy4xNTMsNS41MTgtMSwuMjEzLS43NDktMS4zNjQtMy43NzkuOC0uNzQ5LDEuNjgzLS45NzYuMjA3Wm0uNjU0LDEuMjFjLS4wNDQtLjEtLjEtLjE5LS4xNC0uMjg2YTIuMjA5LDIuMjA5LDAsMCwxLS4wNy0uMjIxYy0uMDI1LjA4NC0uMDUyLjE3Ny0uMDg3LjI3Mi0uMDQzLjEyMy0uMS4yNC0uMTQ3LjM2NGwtMS4zLDIuODQxLDMuMDM5LS42NDZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzguMjg3IC0xMDQuMDgpIiBmaWxsPSIjZmZmIi8+DQogICAgICA8cGF0aCBpZD0iVHJhemFkb180OSIgZGF0YS1uYW1lPSJUcmF6YWRvIDQ5IiBkPSJNMTUzLjEyMywxMTguMmw0LjE4LS44OWEyLjE5MiwyLjE5MiwwLDAsMSwxLjcyNS4xMzIsMS4zMzksMS4zMzksMCwwLDEsLjU0OSwxLjIsMi4yMjgsMi4yMjgsMCwwLDEtMS42NTUsMi4xbDIuMjY0LDIuMTI2LTEuMTQuMjQ0LTIuMDgyLTIuMDI2LTIuOTY5LjYzMnYyLjQ2OWwtLjg3MS4xODVabS44NjMuNTYxVjEyMWwzLjAzOS0uNjQ4YTIuMDgsMi4wOCwwLDAsMCwxLjQzNy0uNzc5LDEuMjQ3LDEuMjQ3LDAsMCwwLC4yMDktLjcsMS4wMTgsMS4wMTgsMCwwLDAtLjE4My0uNjE3Yy0uMjc4LS4zODctLjcyMy0uMjkzLTEuMTIzLS4yMTdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzUuODM4IC0xMDQuNjMxKSIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggaWQ9IlRyYXphZG9fNTAiIGRhdGEtbmFtZT0iVHJhemFkbyA1MCIgZD0iTTE2Ni4zMjUsMTIwLjczNWMtLjExMi4xMy0uMjA5LjI0Ni0uMzM5LjM3OWE0Ljk4Miw0Ljk4MiwwLDAsMS0yLjM0MywxLjE4MmMtMi4xMjUuNDUyLTMuNTE4LS43MzEtMy41MTgtMi41YTMuODY2LDMuODY2LDAsMCwxLC41MzEtMS44ODEsNC44MzksNC44MzksMCwwLDEsMy4xMzUtMi4xMjksMy41NTksMy41NTksMCwwLDEsMi42NjQuMzE2LDEuODc1LDEuODc1LDAsMCwxLC42LjYyNmwtLjg2Mi40NDZhMS41LDEuNSwwLDAsMC0uMzkyLS4zOCwyLjU3NiwyLjU3NiwwLDAsMC0xLjk0Mi0uMjYxLDMuMjU4LDMuMjU4LDAsMCwwLTIuOCwzLjAxMiwyLjI1OCwyLjI1OCwwLDAsMCwuNDE3LDEuMzQ2LDIuMzcxLDIuMzcxLDAsMCwwLDIuMzYxLjYyOCwzLjU4MiwzLjU4MiwwLDAsMCwyLjAyOS0xLjI0NiwyLjIzOCwyLjIzOCwwLDAsMCwuNDg4LTEuMjI0bC0yLjcwOC41Nzd2LS43MzZsMy40MzktLjczMnYzLjI2NWwtLjc1Ny4xNjJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzMuNDcxIC0xMDUuMTQ0KSIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggaWQ9IlRyYXphZG9fNTEiIGRhdGEtbmFtZT0iVHJhemFkbyA1MSIgZD0iTTE2Ny44NjgsMTE1LjExbDUuNjc4LTEuMjA4di43NjFsLTQuODA3LDEuMDI0djEuODQ3bDQuNjc3LTF2LjcyN2wtNC42NzcsMXYyLjA4NGw1LjAyNS0xLjA2OXYuNzYxbC01LjksMS4yNTRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNzAuODUzIC0xMDUuNzQ1KSIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggaWQ9IlRyYXphZG9fNTIiIGRhdGEtbmFtZT0iVHJhemFkbyA1MiIgZD0iTTE3NS40NjEsMTEzLjUzOGw0LjE0NCwzLjUzOGE2Ljg3Niw2Ljg3NiwwLDAsMSwuNjU0LjYxNCw4LjI4OSw4LjI4OSwwLDAsMS0uMDU0LS45di00LjI2M2wuODM2LS4xNzh2Ni4xOGwtLjg1NC4xODItNC4zNTQtMy43Yy0uMjI2LS4yMDYtLjMtLjI3OC0uNDc4LS40NjdhOS42NTUsOS42NTUsMCwwLDEsLjA0MywxLjA1OHY0LjEzMmwtLjgzNi4xNzh2LTYuMTgxWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTY4LjU4OSAtMTA2LjI2OSkiIGZpbGw9IiNmZmYiLz4NCiAgICAgIDxwYXRoIGlkPSJUcmF6YWRvXzUzIiBkYXRhLW5hbWU9IlRyYXphZG8gNTMiIGQ9Ik0xODEuMzM3LDExMi4yNTZsNS45LTEuMjU1di43MzZsLTIuNTE3LjUzNXY1LjQ0NWwtLjg3MS4xODV2LTUuNDQ1bC0yLjUwOC41MzRaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNjYuMjk4IC0xMDYuNzI2KSIgZmlsbD0iI2ZmZiIvPg0KICAgICAgPHBhdGggaWQ9IlRyYXphZG9fNTQiIGRhdGEtbmFtZT0iVHJhemFkbyA1NCIgZD0iTTE4Ny42NjIsMTEwLjY0MWwuOS0uMTkxdjYuMTgxbC0uOS4xOVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02NC4xNTkgLTEwNi45MTIpIiBmaWxsPSIjZmZmIi8+DQogICAgICA8cGF0aCBpZD0iVHJhemFkb181NSIgZGF0YS1uYW1lPSJUcmF6YWRvIDU1IiBkPSJNMTkxLjg3NywxMTAuMDQ0bDQuMTQ2LDMuNTM4YTcuMDU2LDcuMDU2LDAsMCwxLC42NTMuNjE0LDguNiw4LjYsMCwwLDEtLjA1Mi0uOXYtNC4yNjNsLjgzNi0uMTc4djYuMTgxbC0uODU0LjE4MS00LjM1NC0zLjdjLS4yMjYtLjIwNi0uMy0uMjc4LS40NzktLjQ2N2E5LjYzNSw5LjYzNSwwLDAsMSwuMDQ0LDEuMDU4djQuMTMybC0uODM2LjE3OHYtNi4xOFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC02My4wMzcgLTEwNy40NTEpIiBmaWxsPSIjZmZmIi8+DQogICAgICA8cGF0aCBpZD0iVHJhemFkb181NiIgZGF0YS1uYW1lPSJUcmF6YWRvIDU2IiBkPSJNMjAwLjg0MSwxMDhsLjkyMy0uMiwzLjE1Myw1LjUxNy0xLC4yMTMtLjc0OC0xLjM2NC0zLjc4LjgtLjc0OCwxLjY4My0uOTc2LjIwN1ptLjY1MywxLjIxYy0uMDQzLS4xLS4xLS4xOS0uMTM5LS4yODVhMS45MiwxLjkyLDAsMCwxLS4wNy0uMjIyYy0uMDI3LjA4NC0uMDUyLjE3OC0uMDg3LjI3My0uMDQzLjEyMi0uMS4yMzgtLjE0OS4zNjRsLTEuMywyLjg0MSwzLjAzOS0uNjQ4WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTYwLjc3OCAtMTA3LjgwNikiIGZpbGw9IiNmZmYiLz4NCiAgICA8L2c+DQogIDwvZz4NCiAgPHBhdGggaWQ9IlRyYXphZG9fNTciIGRhdGEtbmFtZT0iVHJhemFkbyA1NyIgZD0iTTE1MS42LDcwLjk3MmE3LjY1Myw3LjY1MywwLDAsMSw1LjcyNS03Ljc3OWMzLjMyNC0uNyw2LjIyLDEuNjM3LDYuNDE4LDUuMjI1YTcuNjIzLDcuNjIzLDAsMCwxLTUuNjk0LDcuNzY1QzE1NC43MDUsNzYuODkyLDE1MS44MTUsNzQuNTYsMTUxLjYsNzAuOTcyWk04Mi41MjIsMTUyLjU0MWM0LC41LDkuOTgzLDEuMzE4LDE0LjI4Ni0zLjkxNS0uNjgyLDkuNzE1LTYuNDIsMTYuNC0xNS4zMTYsMTYuMTQ1LTguOTEyLS4yNjItMTQuMzQ1LS4wMjMtMTguMDY4LDQuOWwtLjc4NiwxLjA5M2MuNzc5LTkuMTU2LDMuNDU0LTE0LjkzNiwxMC44NDQtMTcuMTg3QzY2LjkwNSwxNTIuMzI3LDUwLjA1NiwxNDEuMyw1Ni4yMywxMDcuOTljMy45NjItMjEuMzgsMTUuMTg1LTMzLjQ1NiwyNC43MS0zNy4wNjgtMy4xNTUsMy4zNDUtNC44MzEsNS42OTItOC4wODEsMTEuOTgzLTEwLjA0MywxOS40NDMtOC45NTIsNTQuNzE4LDYuODExLDUyLjA1OCwxNS43ODktMi42NjMsMjMtMjguMDY0LDIwLjg4Ny00NS45NjQtMi4xMTQtMTguMTI3LTEzLjYzLTExLjE0NC0xNi4wNzItMi41OCwzLjI4NC00LjA1MywxMi4yMjEtLjg0Myw5LjkyOSwxNi45MjUtMy4xMTUsMjQuMTQtMjMuMTc5LDI3LjA0LTIxLjM0MSwxLjc1MiwxLjktMjIuNjI4LDExLjcyNy0zMi4yNzcsMTkuMDM4LTM0LjQ1Nyw3Ljc1My0yLjIxNywyNC42LDcuNjY2LDE3LjI1MSw0NS42NDdDMTA1LjMzMiwxMzMuMjM3LDk4LjI3LDE0Ny44MjMsODIuNTIyLDE1Mi41NDFaTTgyLjgzMSw5NS43Yy4xMTgsMi40NjEsMS40NDcsMy45MjksMy4wMDUsMy4yOCwxLjUzOS0uNjUzLDIuNzIyLTMuMiwyLjYxMS01LjY1Mi0uMS0yLjQ4OS0xLjQzMi0zLjk4LTMtMy4zMkM4My45LDkwLjY5NSw4Mi43MjksOTMuMjIsODIuODMxLDk1LjdaTTI2NC43LDEwOS43MzRjLTUuNDI5LjkyOS04LjEwNi0xLjctOS40Mi00Ljc1NmEzNi42MjUsMzYuNjI1LDAsMCwxLTUuMzg2LDYuMTM3di4wMTNjLTQuNjY3LDMuNTY2LTEwLjQ1OCw0LjItMTMuMTU5LDIuNTUyLTcuMDY3LTQuMzA5LTUuOTM3LTE3LjA4LTUuOTM3LTE3LjA4cy01LjE1NiwxMy41OTEtOS44NTksMTkuNjg3Yy01LjUwNiw3LjItMTAuMDQ1LDMuMTEzLTguOTcyLTMuNiwxLjU2NC05Ljc4Miw1LjEyNC0zMy4zOTMsNS4xMjQtMzMuMzkzLjg1LTQuOTU2LTEuMzg4LTQuOTEtMy4zMjctMS4zMjNhMjMuNjUxLDIzLjY1MSwwLDAsMC0zLjE1NSw5LjIxOEwyMDUuNTgsMTIxLjE3bC0xMC41NjIsMi4yNDRMMjAxLjE1Nyw4MS40Yy42LTMuNDQzLTEuNzIyLTMuMjg4LTMuODI3LS4wODJhMjAuOTc2LDIwLjk3NiwwLDAsMC0yLjQxNCw2LjM3MnMtNS4xLDM1LjkwOS01LjM4OSwzNi44NzdsLTEwLjY2OSwyLjI2NywzLjQ3Mi0yMy41OTRjLTIuODMyLDguNDU3LTYuOTEzLDE3LjI3OC0xMS4yLDIzLjMtNC42NzQsNi41NzItOS41NjYsNC41NDItOC45NDQtMS4wNTZsMi4xODQtMTcuODE3Yy0xLjYwOCw1LjA2OC03LjI3LDE3LjM2OC0xMS42NDksMjMuMjYxLTQuNjc0LDYuMzI1LTguODcxLDMuNDI0LTguMzU5LTEuOGwyLjQ1Ny0xOC4xNDhjLTQuNCwxMC44ODQtOC4zNTcsMTguOC0xMS43NjksMjMuODA4LTMuOTcyLDUuODMzLTkuMDM0LDMuNjg4LTguNDEzLTIuMDU5bDEuMjM2LTExLjg3N2MtMS40NzYsNC41MjItNi4zMDcsMTMuMzM1LTguNzIyLDE2LjkwNi0zLjc3Miw1LjU3NS0xMC4wODYsNi40MzQtOC40NDktNC40ODlsNi40LTQ0LjYyM0wxMjcuNjUyLDg2LjRjLS4zODksMS42MjItNC42LDMyLjUyOS01LjIxNiwzNS45ODQtLjYsMy40MzksMS4zNzgsMi4zNzUsMi41Ni40ODNhNDguMjcyLDQ4LjI3MiwwLDAsMCw0LjY2OS0xMi45OTFsMy40ODktMjQuNjQ2LDEwLjU1OS0yLjI0NGMtLjExMi4zNjgtMy42MjYsMjcuNTEtNC43OTMsMzQtMS4xMTMsNi4yLDEuNjMzLDQuNDEzLDMuMjEzLDEuMjQzLDEuNzEzLTMuNDIzLDQuMjc1LTExLjM3Miw1LjYzNi0xNS44NjJzMy4zMTEtMjAuOTQzLDMuMzExLTIwLjk0M2wxMC41NS0yLjI0MWMtLjcsNS4yMzktNC44NjUsMzQuNjU3LTQuODY4LDM0LjY3NC0uOCw0LjU0OCwxLjEyMSw0LjExNSwyLjczMiwxLjM0OSw0LjM1LTguMTk1LDYuNjQ0LTE5LjEzMyw3LjMwNi0yMi4zNTEuNjU0LTMuMiw0LjczMy0zMy4wMzIsNC43MzMtMzMuMDMybDEwLjMyMi0yLjE4Yy0uNDQ4LDIuNTI2LTcuMjcxLDUxLjIzNi03LjI3MSw1MS4yMzYtMS4wNDEsNy4wNzcsMi4xMzQsNC42MTEsMy44MjYuMy44OC0yLjI0NCw0Ljc1Mi0xMi44NjksNS4wNjYtMTMuNzQ4bDMuMTc5LTIxLjU2MiwxMC4zMDYtMi4xOTEtMS40MzYsOS4yNTlBNTIuMTQ4LDUyLjE0OCwwLDAsMSwyMDEsNzMuMDYzYzUuMjItNS45NTEsMTAuMTktNi45NzYsMTAuNjkzLjM4NWEzOC42MjksMzguNjI5LDAsMCwxLC4wMTUsNC40NDEsNTYuNzEsNTYuNzEsMCwwLDEsNC4xNzYtNi42MWM3LjA4LTkuNjQxLDEzLjQ0Ny03LjgyMywxMi43MzUuNjI1LDAsMC0zLjksMjUuOTYzLTQuMTQ0LDI3LjY3Ny0uNDMxLDMuMDkuODg3LDQuNjE3LDIuNCwyLjA2OSwwLDAsMi45NzUtNS4zNjIsMy43NDktOS43NTQsMi4yLTEzLjEsNy4xNzItMzAuMzE0LDE5Ljc2LTMyLjcxNXMxMS44LDE1LjMxMSw5Ljc3NiwyMC43NTdjLTEuOTY3LDUuMy01LjcxNywxMy4wNDctMTcuODQxLDE0LjIyMiwwLDAtLjM0MywyLjM4My0uMzQsMi42NDRhNTguMjU3LDU4LjI1NywwLDAsMC0uNDUyLDguMTJjLjI1MiwyLjIsMi4yODcsNy41MjYsNy43NzEsNC40MzcsMS4yNy0uNzI3LDMuMTc5LTIuOTU2LDUuNC02LjAyN2ExOC41MiwxOC41MiwwLDAsMS0uNjI0LTMuNzQxYy0uMDM1LS4yMzgtLjA1OS0uNDg0LS4wNzEtLjczNWE3LjYyNSw3LjYyNSwwLDAsMSwuMDMxLTEuMDM0Yy4wMDUtLjE1NC4wMDktLjI0NS4wMDktLjI0NWwuMDEyLjAyNGE4LjQ4Myw4LjQ4MywwLDAsMSw2LjMtNy4yOCw1LjgyMSw1LjgyMSwwLDAsMSwyLjc4My4wNzVjMS45OTItMy4yNjQsMy45NDYtNi41NzMsNS43LTkuNmEzMC45NjMsMzAuOTYzLDAsMCwxLTMuMTY1LTE2LjA2Yy45ODUtOS41NjYsOC42NzEtMTAuNzIxLDguNjcxLTEwLjcyMXM1LjQ2OS0xLjUyLDYuNTg5LDQuMDA2Yy42NzgsMy4zNTUtMi4wMTEsOC42LTQuMjA3LDEyLjE2OS0uMDU2LjEtLjE1LjI3My0uMjguNTA3LDEuOTQ0LDQuMzIyLDUuMzQ1LDEyLjY3NCw1LjY5NCwxOC43MDlDMjgyLjY2OSw5OC4zNTcsMjc2LjI0NSwxMDcuNzU5LDI2NC43LDEwOS43MzRaTTI0Mi41ODQsOTIuMzUzYy0uMDI5LDAsLjk3NS0uMTA3LDIuNjU1LS40NTQsMi4yMi0uNDU4LDMuNDA4LTIuOTYzLDMuNjI0LTQuOTQ3LDAsMCwyLjk1MS0xOS43NywzLjExMy0yMi4yNTZhNi4yNDEsNi4yNDEsMCwwLDAtLjAxNy0xLjAxNCwyLjExNSwyLjExNSwwLDAsMC0xLjY3LTIuMTI2LDMuMDEzLDMuMDEzLDAsMCwwLTEuNDU1LjMwNSwzLjExOCwzLjExOCwwLDAsMC0uOTM4LjYxNiw1LjUzLDUuNTMsMCwwLDAtMS4zMjksMi4yODgsMTMuODg3LDEzLjg4NywwLDAsMC0uNTQ5LDIuNDQ2UzI0My42NTQsODMuOTkxLDI0Mi41ODQsOTIuMzUzWk0yNzMuOCw5NC45NDZjLS4yNTMtMy4wMDUtLjAwNS00LjI5NC00LjEtMTIuNDQxLTEuNTgyLDIuNjg4LTMuMzI4LDUuNi01LjEzMiw4LjUxN2E2LjExMSw2LjExMSwwLDAsMSwyLjczNyw1LjA0MSw4LjQ4LDguNDgsMCwwLDEtNi4zMTksOC41MTksNS42MTEsNS42MTEsMCwwLDEtNC41NS0uOTE4LDYuNjA2LDYuNjA2LDAsMCwwLDcuODE5LDMuOTY5QzI3MS4xNjgsMTA2LjI3MiwyNzQuMTg3LDk5LjYsMjczLjgsOTQuOTQ2Wm0yLjAzNy0yNi40ODdzMy42MTItNy4xMDcsMi44NzMtOS45NTdhMi40ODYsMi40ODYsMCwwLDAtMy43MTMtMS44NmMtNC4zODUsMi4zODkuMjY5LDExLjUwOS4yNjksMTEuNTA5LjA4NC4xNjkuMi40MTUuMzQ4LjcxNloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01NC44OTMgLTUzLjgyOSkiIGZpbGw9IiNmZmYiLz4NCjwvc3ZnPg0K\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iQ2FwYV8yIiBkYXRhLW5hbWU9IkNhcGEgMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMjE3LjcxIDM4OC40MSI+CiAgPGRlZnM+CiAgICA8c3R5bGU+CiAgICAgIC5jbHMtMSB7CiAgICAgICAgZmlsbDogI2ZmZmZmZjsKICAgICAgICBzdHJva2Utd2lkdGg6IDBweDsKICAgICAgfQogICAgPC9zdHlsZT4KICA8L2RlZnM+CiAgPGcgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSI+CiAgICA8cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Im0xMDYuODYsMzE3LjkzYzE1LjQ3LDEuOTQsMzguNjEsNS4xLDU1LjI2LTE1LjE0LTIuNjQsMzcuNTgtMjQuODQsNjMuNDMtNTkuMjQsNjIuNDUtMzQuNDctMS4wMS01NS40OS0uMDktNjkuODksMTguOTVsLTMuMDQsNC4yM2MzLjAxLTM1LjQxLDEzLjM2LTU3Ljc3LDQxLjk1LTY2LjQ4LTI1LjQ0LTQuODMtOTAuNjItNDcuNDctNjYuNzMtMTc2LjMyQzIwLjUsNjIuOTEsNjMuOSwxNi4yLDEwMC43NSwyLjIzYy0xMi4yMSwxMi45NC0xOC42OSwyMi4wMi0zMS4yNSw0Ni4zNS0zOC44NSw3NS4yMS0zNC42MywyMTEuNjUsMjYuMzQsMjAxLjM2LDYxLjA4LTEwLjMsODguOTUtMTA4LjU1LDgwLjc5LTE3Ny43OS04LjE4LTcwLjExLTUyLjcyLTQzLjExLTYyLjE3LTkuOTgsMTIuNy0xNS42Nyw0Ny4yNy0zLjI2LDM4LjQsNjUuNDctMTIuMDUsOTMuMzctODkuNjUsMTA0LjU5LTgyLjU0LDYuNzdDNzcuNjYsNDYuODksMTE1LjY4LDkuNTYsMTQzLjk2LDEuMTRjMjkuOTktOC41OCw5NS4xNywyOS42NSw2Ni43MiwxNzYuNTYtMTUuNTksNjUuNTctNDIuOSwxMjEuOTgtMTAzLjgyLDE0MC4yM1ptMS4yLTIxMi45MWMuNDUsOS41Miw1LjU5LDE1LjIsMTEuNjIsMTIuNjksNS45Ni0yLjUzLDEwLjUzLTEyLjM2LDEwLjEtMjEuODYtLjM4LTkuNjMtNS41NC0xNS4zOS0xMS42MS0xMi44NC01Ljk5LDIuNjgtMTAuNTEsMTIuNDUtMTAuMTIsMjIuMDJaIi8+CiAgPC9nPgo8L3N2Zz4K\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"iconContainer\":\"pointer-module--iconContainer--1xqBr\",\"iconImg\":\"pointer-module--iconImg--2RMY1\",\"infoContainer\":\"pointer-module--infoContainer--37Dv_\",\"topInfo\":\"pointer-module--topInfo--Si-KI\",\"clearIcon\":\"pointer-module--clearIcon--2iHFD\"};","const greatPlaceStyle = {\n position: \"absolute\",\n width: \"84vw\",\n zIndex: \"0\",\n height: \"70vh\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n overflow: \"hidden\",\n\n border: \"13px solid rgb(6 41 80)\",\n borderRadius: \"40px\",\n backgroundColor: \"white\",\n textAlign: \"center !important\",\n color: \"#3f51b5\",\n fontSize: 16,\n fontWeight: \"bold\",\n padding: 4,\n}\n\nconst mapStyles = [\n {\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#1d2c4d\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#8ec3b9\"\n }\n ]\n },\n {\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#1a3646\"\n }\n ]\n },\n {\n \"featureType\": \"administrative\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.country\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#4b6878\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.land_parcel\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#64779e\"\n }\n ]\n },\n {\n \"featureType\": \"administrative.province\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#4b6878\"\n }\n ]\n },\n {\n \"featureType\": \"landscape.man_made\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#334e87\"\n }\n ]\n },\n {\n \"featureType\": \"landscape.natural\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#023e58\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#283d6a\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#6f9ba5\"\n }\n ]\n },\n {\n \"featureType\": \"poi\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#1d2c4d\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#023e58\"\n }\n ]\n },\n {\n \"featureType\": \"poi.park\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#3C7680\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#304a7d\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"labels.icon\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#98a5be\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#1d2c4d\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#2c6675\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"geometry.stroke\",\n \"stylers\": [\n {\n \"color\": \"#255763\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#b0d5ce\"\n }\n ]\n },\n {\n \"featureType\": \"road.highway\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#023e58\"\n }\n ]\n },\n {\n \"featureType\": \"transit\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"transit\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#98a5be\"\n }\n ]\n },\n {\n \"featureType\": \"transit\",\n \"elementType\": \"labels.text.stroke\",\n \"stylers\": [\n {\n \"color\": \"#1d2c4d\"\n }\n ]\n },\n {\n \"featureType\": \"transit.line\",\n \"elementType\": \"geometry.fill\",\n \"stylers\": [\n {\n \"color\": \"#283d6a\"\n }\n ]\n },\n {\n \"featureType\": \"transit.station\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#3a4762\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"geometry\",\n \"stylers\": [\n {\n \"color\": \"#0e1626\"\n }\n ]\n },\n {\n \"featureType\": \"water\",\n \"elementType\": \"labels.text.fill\",\n \"stylers\": [\n {\n \"color\": \"#4e6d70\"\n }\n ]\n }\n]\n\nexport { greatPlaceStyle, mapStyles }\n","import React, { useEffect, useRef, useState } from \"react\"\nimport styles from \"../../styles/hayPromoHayMundial/pointer.module.css\"\nimport iconQuilmes from \"../../images/hayPromoHayMundial/pointer.svg\"\nimport clearIcon from \"../../images/hayPromoHayMundial/clear.svg\"\n\nexport default function Pointer({ visiblePointer, zoom }) {\n const [visiblePdvInfo, setVisiblePdvInfo] = useState(false)\n const [width, setWidth] = useState(0);\n const pointerRef = useRef();\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (pointerRef.current && !pointerRef.current.contains(event.target)) {\n setVisiblePdvInfo(false)\n }\n };\n document.addEventListener(\"click\", handleClickOutside);\n\n\n return () => {\n document.addEventListener(\"click\", handleClickOutside);\n };\n }, [pointerRef])\n\n useEffect(() => {\n setTimeout(() => {\n if (zoom < 11) {\n setWidth(60);\n } else {\n setWidth(40);\n }\n }, 100);\n }, [zoom])\n\n const handleClick = () => {\n setVisiblePdvInfo(!visiblePdvInfo)\n if(visiblePointer.localidad && visiblePointer.domicilio) {\n window.dataLayer.push({\n event: \"GAEvent\",\n event_category: \"Mapa\",\n event_action: visiblePointer.provincia,\n event_label: visiblePointer.localidad,\n interaction: \"True\",\n component_name: visiblePointer.domicilio,\n });\n }\n }\n\n const handleClear = () => {\n setVisiblePdvInfo(!visiblePdvInfo)\n }\n\n\n return (\n
\n \"iconQuilmes\"\n {visiblePdvInfo && visiblePointer.localidad && visiblePointer.domicilio && (\n
\n
\n

{visiblePointer.localidad}

\n \n
\n

{visiblePointer.domicilio}

\n
\n )}\n
\n )\n}\n","import React from \"react\";\nimport styles from \"../../styles/hayPromoHayMundial/pdvCard.module.css\";\n\nexport default function CardPuntoDeVenta({ pdv, setZoom, setPosition }) {\nconsole.log(\"pase por CardPDV\")\n\n const handleSelectPdv = ()=>{\n setZoom(16)\n setPosition({lat:pdv.lat, lng:pdv.lng})\n window.dataLayer.push({\n event: \"GAEvent\",\n event_category: \"Search\",\n event_action: pdv.provincia,\n event_label: pdv.localidad,\n interaction: \"True\",\n component_name: pdv.domicilio,\n element_text: pdv.localidad,\n });\n }\n\n return (\n
\n

{pdv.domicilio}

\n

{pdv.localidad}, {pdv.provincia}.

\n
\n )\n}\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend() {\n let target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let src = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Object.keys(src).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\nconst ssrDocument = {\n body: {},\n addEventListener() {},\n removeEventListener() {},\n activeElement: {\n blur() {},\n nodeName: ''\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() {}\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() {},\n getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\nconst 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() {},\n pushState() {},\n go() {},\n back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() {},\n removeEventListener() {},\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n },\n Image() {},\n Date() {},\n screen: {},\n setTimeout() {},\n clearTimeout() {},\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n }\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n set(value) {\n proto.__proto__ = value;\n }\n });\n}\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n}\nfunction arrayFlat() {\n let arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...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 const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n const a = [];\n const res = context.querySelectorAll(selector);\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n return a;\n}\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n if (!selector) {\n return new Dom7(arr);\n }\n if (typeof selector === 'string') {\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\nfunction removeClass() {\n for (var _len2 = arguments.length, classes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n classes[_key2] = arguments[_key2];\n }\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\nfunction toggleClass() {\n for (var _len3 = arguments.length, classes = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n classes[_key3] = arguments[_key3];\n }\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\nfunction hasClass() {\n for (var _len4 = arguments.length, classes = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n classes[_key4] = arguments[_key4];\n }\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\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 for (let 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 (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\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 (let 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 (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n return this;\n}\nfunction data(key, value) {\n let el;\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 const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n } // Set value\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n for (const 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 return dataset;\n}\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n return values;\n }\n return el.value;\n } // set value\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let 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 return this;\n}\nfunction value(value) {\n return this.val(value);\n}\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n return this;\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 let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n 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 const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n return this;\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 let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\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 return this;\n}\nfunction once() {\n const dom = this;\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\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 listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger() {\n const window = getWindow();\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n return this;\n}\nfunction transitionStart(callback) {\n const dom = this;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const dom = this;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n return this;\n}\nfunction animationEnd(callback) {\n const dom = this;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n return this;\n}\nfunction width() {\n const window = getWindow();\n if (this[0] === window) {\n return window.innerWidth;\n }\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n const window = getWindow();\n if (this[0] === window) {\n return window.innerHeight;\n }\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n return null;\n}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n const window = getWindow();\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n const window = getWindow();\n let i;\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 (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\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 return this;\n }\n return this;\n}\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\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 for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n if (selector === document) {\n return el === document;\n }\n if (selector === window) {\n return el === window;\n }\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction index() {\n let child = this[0];\n let i;\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 return i;\n }\n return undefined;\n}\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n if (index > length - 1) {\n return $([]);\n }\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n return $([this[index]]);\n}\nfunction append() {\n let newChild;\n const document = getDocument();\n for (let k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let 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 return this;\n}\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\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 return this;\n}\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\n for (let 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 (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n const after = $(selector);\n for (let 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 (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\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 return $([]);\n }\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n return $([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return $(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n return $([]);\n }\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n return $([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return $(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let 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 return $(parents);\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let 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 parent = parent.parentNode;\n }\n }\n return $(parents);\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return $(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return $(children);\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add() {\n const dom = this;\n let i;\n let j;\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.nodeType === 1) {\n for (let 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 el.textContent = '';\n }\n }\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo() {\n const window = getWindow();\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render() {\n let time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\nfunction scrollTop() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\n }\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft() {\n for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n args[_key13] = arguments[_key13];\n }\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const 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 }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(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,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\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 elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(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 const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\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 a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n if (a.elements.length === 0) {\n return els;\n }\n let animateInstance;\n for (let 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 if (!animateInstance) {\n animateInstance = a;\n }\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n return els;\n}\nfunction stop() {\n const els = this;\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\nconst noTrigger = 'resize scroll'.split(' ');\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n args[_key14] = arguments[_key14];\n }\n if (typeof args[0] === 'undefined') {\n for (let 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 return this;\n }\n return this.on(name, ...args);\n }\n return eventHandler;\n}\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, transitionStart, trigger, val, value, width };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\nfunction nextTick(callback) {\n let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el) {\n let axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\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 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 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 return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\nfunction calcDevice() {\n let {\n userAgent\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\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 if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n return device;\n}\nfunction getDevice() {\n let overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\nexport { getBrowser };","export default function transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector) {\n let base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this;\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n Object.assign(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 if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (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 if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\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 if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let 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 let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-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 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\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 if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\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 data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : 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 const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\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 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n swiper.emit('breakpoint', breakpointParams);\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\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: true,\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 // 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 loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\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 maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\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};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams() {\n let obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // 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(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n return swiper;\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\n }\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n slidesPerViewDynamic() {\n let view = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'current';\n let exact = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\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 if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection) {\n let needUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\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(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 changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n return res;\n }\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n let $wrapperEl = getWrapper();\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy() {\n let deleteInstance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n let cleanStyles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\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 if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\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 swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\n }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\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 data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\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 Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\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 swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress() {\n let translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this && this.translate || 0;\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\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 activeSlide.addClass(params.slideActiveClass);\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 let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.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 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 swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (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 if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n } // Get real index\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate() {\n let axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.isHorizontal() ? 'x' : 'y';\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n 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}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo() {\n let translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n let runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n let translateBounds = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n let internal = arguments.length > 4 ? arguments[4] : undefined;\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let 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 if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart() {\n let runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n let direction = arguments.length > 1 ? arguments[1] : undefined;\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd() {\n let runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n let direction = arguments.length > 1 ? arguments[1] : undefined;\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n let runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n let internal = arguments.length > 3 ? arguments[3] : undefined;\n let initial = arguments.length > 4 ? arguments[4] : undefined;\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 if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const 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 const isValidNumber = isFinite(indexAsNumber);\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 index = indexAsNumber;\n }\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n swiper.updateProgress(translate);\n let 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 swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\n }\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('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 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}","export default function slideToLoop() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n let runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n let internal = arguments.length > 3 ? arguments[3] : undefined;\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const 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 const isValidNumber = isFinite(indexAsNumber);\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 index = indexAsNumber;\n }\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext() {\n let speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n let runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let internal = arguments.length > 2 ? arguments[2] : undefined;\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\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 if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev() {\n let speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n let runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let internal = arguments.length > 2 ? arguments[2] : undefined;\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\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 const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset() {\n let speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n let runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let internal = arguments.length > 2 ? arguments[2] : undefined;\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest() {\n let speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n let runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let internal = arguments.length > 2 ? arguments[2] : undefined;\n let threshold = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.5;\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (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(() => {\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(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n slides = $selector.children(`.${params.slideClass}`);\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 if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints) {\n let base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'window';\n let containerEl = arguments.length > 2 ? arguments[2] : undefined;\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n function onReady() {\n if (callback) callback();\n }\n const isPicture = $(imageEl).parent('picture')[0];\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\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 observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}","export default function classesToSelector() {\n let classes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\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: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(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 if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation() {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination() {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar() {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses() {\n let classNames = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_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', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopedSlidesLimit', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import Swiper from 'swiper';\nexport const calcLoopedSlides = (slides, swiperParams) => {\n let slidesPerViewParams = swiperParams.slidesPerView;\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n if (loopedSlides > slides.length && swiperParams.loopedSlidesLimit) {\n loopedSlides = slides.length;\n }\n return loopedSlides;\n};","import React from 'react';\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\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 if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\nexport { getChildren };","import { isObject, extend } from './utils.js';\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n swiper.update();\n}\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\nexport { useIsomorphicLayoutEffect };","import { createContext, useContext } from 'react';\nexport const SwiperSlideContext = /*#__PURE__*/createContext(null);\nexport const useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nexport const SwiperContext = /*#__PURE__*/createContext(null);\nexport const useSwiper = () => {\n return useContext(SwiperContext);\n};","function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from '../components-shared/get-params.js';\nimport { mountSwiper } from '../components-shared/mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from '../components-shared/utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from '../components-shared/get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from '../components-shared/update-swiper.js';\nimport { renderVirtual } from './virtual.js';\nimport { updateOnVirtualData } from '../components-shared/update-on-virtual-data.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperContext } from './context.js';\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = new SwiperCore(swiperParams);\n swiperRef.current.loopCreate = () => {};\n swiperRef.current.loopDestroy = () => {};\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n } // Listen for breakpoints change\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), 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 }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\nfunction getParams() {\n let obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let splitEvents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\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 if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\nexport { getParams };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\nexport { mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(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}\nexport { getChangedParams };","export const updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};","import React from 'react';\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\nexport { renderVirtual };","import React from 'react';\nimport { calcLoopedSlides } from '../shared/calc-looped-slides.js';\nfunction renderLoop(swiper, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\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 if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n for (let i = 0; i < loopedSlides; i += 1) {\n const index = i - Math.floor(i / modifiedSlides.length) * modifiedSlides.length;\n appendSlides.push(duplicateSlide(modifiedSlides[index], i, 'append'));\n prependSlides.unshift(duplicateSlide(modifiedSlides[modifiedSlides.length - index - 1], i, 'prepend'));\n }\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\nexport { calcLoopedSlides, renderLoop };","function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from '../components-shared/utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperSlideContext } from './context.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const 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 const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\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), /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, 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 React, { useEffect, useState } from \"react\"\nimport CardPuntoDeVenta from \"../hayPromoHayMundial/CardPdv\";\nimport { Swiper, SwiperSlide } from \"swiper/react\";\nimport { Pagination } from 'swiper';\nimport 'swiper/swiper.min.css';\nimport { IsMobileDevice } from \"../../../utils/ismobile\"\n// import 'swiper/swiper.scss';\n// require(\"../../styles/hayPromoHayMundial/slidePdv.module.css\");\n// import 'swiper/modules/pagination/pagination.min.css';\n\nexport default function SliderPuntoDeVenta({ pdvs, setZoom, setPosition }) {\n const [isMobile, setIsMobile] = useState(false);\n useEffect(() => {\n setIsMobile(IsMobileDevice());\n }, [])\n return (\n <>\n console.log(swiper)}\n onSlideChange={() => console.log('slide change')}\n >\n {pdvs.length > 0 && \n (pdvs.map(pdv=>{\n return(\n \n \n \n )\n })\n )}\n \n \n )\n \n}","import React, { useMemo, useState } from \"react\"\nimport { Link } from \"gatsby\"\nimport styles from \"../../styles/hayPromoHayMundial/main.module.css\"\nimport logoQ from \"../../images/logos/quilmesLogo.svg\"\nimport clearIcon from \"../../images/hayPromoHayMundial/clear.svg\"\nimport searchIcon from \"../../images/hayPromoHayMundial/search.svg\"\nimport loadable from \"@loadable/component\"\nimport { greatPlaceStyle, mapStyles } from \"./MapStyle\"\nimport Pointer from \"../hayPromoHayMundial/Pointer\"\nimport SliderPuntoDeVenta from \"../hayPromoHayMundial/SliderPdv\"\n\nconst GoogleMapReact = loadable(() => import(\"google-map-react\"))\n\nexport default function HayPromoHayMundial({\n puntosDeVenta,\n provinces,\n localidades,\n provincePoints\n}) {\n const [searchInput, setSearchInput] = useState(\"\")\n const [provinceInput, setProvinceInput] = useState(\"\")\n const [searchOptions, setSearchOptions] = useState([])\n const [provinceOptions, setProvinceOptions] = useState([])\n const [bounds, setBounds] = useState(null)\n const [selectedProvince, setSelectedProvince] = useState(null)\n const [selectedLocalidad, setSelectedLocalidad] = useState(null)\n const [provincePointers, setProvincePointers] = useState([])\n\n const isPointerInBounds = pointer => {\n if (!bounds) return false\n\n return (\n pointer.lat < bounds.ne.lat &&\n pointer.lat > bounds.sw.lat &&\n pointer.lng < bounds.ne.lng &&\n pointer.lng > bounds.sw.lng\n )\n }\n\n const provincePdvs = provincePoints\n\n const [position, setPosition] = useState({\n lat: -34.99729,\n lng: -64.82106,\n })\n const [zoom, setZoom] = useState(4)\n const [pdvs, setPdvs] = useState([])\n const [visiblePointers, setVisiblePointers] = useState(\n puntosDeVenta.filter(puntoDeVenta => {\n return puntoDeVenta.lat && puntoDeVenta.lng\n })\n )\n\n console.log(\"Puntos de venta\", visiblePointers)\n const handleChange = value => {\n setSearchInput(value)\n if (value.length >= 2) {\n let filtradas = localidades.filter(localidad => {\n if (\n localidad.name.toLowerCase().includes(value.toLowerCase()) &&\n localidad.province === provinceInput\n )\n return true\n })\n setSearchOptions(filtradas)\n } else if (value.length === 1) {\n setSearchOptions(\n localidades.filter(localidad => localidad.province === provinceInput)\n )\n } else {\n setSearchOptions([])\n }\n }\n\n const handleProvinceChange = value => {\n setProvinceInput(value)\n if (value.length >= 2) {\n let filtradas = provinces.filter(province => {\n if (province.toLowerCase().includes(value.toLowerCase())) return true\n })\n setProvinceOptions(filtradas)\n } else if (value.length === 1) {\n setProvinceOptions(provinces)\n } else {\n setSearchOptions([])\n }\n }\n\n const clearInput = () => {\n setSearchInput(\"\")\n setProvinceInput(\"\")\n setSelectedProvince(null)\n setSelectedLocalidad(null)\n setSearchOptions([])\n setProvinceOptions([])\n setProvincePointers([])\n setPdvs([])\n setVisiblePointers(puntosDeVenta)\n setPosition({ lat: -34.99729, lng: -64.82106 })\n setZoom(4)\n }\n\n const handleBtnsDropdown = localidad => {\n let pdvFiltrados = provincePointers.filter(puntoDeVenta => {\n if (puntoDeVenta.localidad === localidad.name) return true\n })\n setPdvs(pdvFiltrados)\n setSearchInput(localidad.name)\n setSearchOptions([])\n setVisiblePointers(pdvFiltrados)\n setSelectedLocalidad(localidad.name)\n setPosition({\n lat: Number(localidad.lat),\n lng: Number(localidad.lng),\n })\n setZoom(14)\n\n window.dataLayer.push({\n event: \"GAEvent\",\n event_category: \"Search\",\n event_action: \"Query\",\n event_label: localidad.name,\n interaction: \"True\",\n component_name: \"boton_localidad\",\n element_text: localidad.name,\n })\n }\n\n const handleBtnsDropdownProvince = province => {\n let pdvFiltrados = visiblePointers.filter(puntoDeVenta => {\n if (puntoDeVenta.provincia === province) return true\n })\n setPdvs(pdvFiltrados)\n setProvinceInput(province)\n setProvinceOptions([])\n setProvincePointers(pdvFiltrados)\n setSelectedProvince(province)\n const positionPdv = provincePdvs.find(pdv => pdv.provincia === province)\n setPosition({\n lat: Number(positionPdv.lat),\n lng: Number(positionPdv.lng),\n })\n setZoom(9)\n\n window.dataLayer.push({\n event: \"GAEvent\",\n event_category: \"Search\",\n event_action: \"Query\",\n event_label: province,\n interaction: \"True\",\n component_name: \"boton_search\",\n element_text: province,\n })\n }\n\n const defaultProps = {\n center: {\n lat: -34.99729,\n lng: -64.82106,\n },\n zoom: 8,\n }\n\n return (\n
\n
\n \n \n \n
\n
\n

ELEGÍ TU LOCAL ADHERIDO MÁS CERCANO

\n
\n
\n
\n
\n \n handleProvinceChange(e.target.value)}\n className={styles.searchInput}\n />\n
\n {provinceInput.length ? (\n \n ) : null}\n
\n
\n {provinceOptions.map((province, index) => {\n return (\n handleBtnsDropdownProvince(province)}\n >\n

{province}

\n
\n )\n })}\n
\n
\n {provinceInput && (\n
\n \n handleChange(e.target.value)}\n className={styles.searchInput}\n />\n
\n {searchInput.length ? (\n \n ) : null}\n
\n
\n {searchOptions.map((localidad, index) => {\n return (\n handleBtnsDropdown(localidad)}\n >\n

{localidad.name}

\n
\n )\n })}\n
\n
\n )}\n
\n\n
\n {pdvs.length > 1 && (\n
\n

{pdvs.length} puntos de venta encontrados

\n
\n )}\n {pdvs.length === 1 && (\n
\n

{pdvs.length} punto de venta encontrado

\n
\n )}\n
\n
\n
\n

\n {!(selectedProvince && !selectedLocalidad)\n ? \"Seleccioná tu provincia y localidad para encontrar el punto de venta adherido más cercano.\"\n : \"¡Hace zoom en tu localidad y encontra el punto de venta adherido más cercano!\"}\n

\n \n
\n
\n {selectedProvince && selectedLocalidad && (\n \n )}\n
\n
\n {\n setBounds({\n ne: bounds.ne,\n sw: bounds.sw,\n })\n setZoom(zoom)\n }}\n options={{\n gestureHandling: \"greedy\",\n styles: mapStyles,\n }}\n >\n {(zoom < 11\n ? provincePdvs\n : selectedProvince && selectedLocalidad\n ? visiblePointers\n : []\n ).map(visiblePointer => {\n console.log(\"visiblePointer\", visiblePointer)\n return (\n isPointerInBounds(visiblePointer) && (\n \n )\n )\n })}\n \n
\n
\n \n )\n}\n","import React from \"react\"\nimport styles from \"../../styles/quilmesrock/footer.module.css\"\nimport logoQ from \"../../images/logos/quilmesLogo.svg\"\nimport logoIg from \"../../images/logos/logoIg.svg\"\nimport logoFb from \"../../images/logos/logoFb.svg\"\nimport logoTw from \"../../images/logos/logoTw.svg\"\nimport logoYou from \"../../images/logos/logoYou.svg\"\nimport { Container, Row } from \"react-bootstrap\"\nimport * as Scroll from \"react-scroll\"\n\nlet scroll = Scroll.animateScroll\nconst Footer = () => {\n function handleClick() {\n scroll.scrollToTop()\n }\n\n return (\n
\n \n\n
\n
\n \n

POLÍTICA DE PRIVACIDAD

\n \n

|

\n \n

BYC PROMO BAJO TAPA CONSUMIDOR

\n \n

|

\n \n

BYC PROMO BAJO TAPA PUNTO DE VENTA

\n \n

|

\n \n

TÉRMINOS Y CONDICIONES

\n \n

|

\n \n

INFORMACIÓN OFICIAL DE LA COMPAÑÍA

\n \n
\n \n \n \n

TÉRMINOS LEGALES

\n \n

|

\n \n

OPORTUNUDADES LABORALES

\n \n
\n
\n \n \n \n

TAP INTO YOUR BEER

\n \n
\n
\n \n BEBER CON MODERACIÓN.PROHIBIDA SU VENTA A MENORES DE 18 AÑOS. NO\n COMPARTA EL CONTENIDO CON MENORES. Quilmes®\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n {/* */}\n
\n )\n}\nexport default Footer\n","import React, { useEffect } from \"react\"\nimport { graphql, navigate } from \"gatsby\"\nimport HayPromoHayMundial from \"../components/hayPromoHayMundial/MainMundial\"\nimport Footer from \"../components/hayPromoHayMundial/Footer\"\nimport SEO from \"../components/seo\"\n\nfunction ElMundial({ data }) {\n useEffect(() => {\n let local = localStorage.getItem(\"age\")\n let session = sessionStorage.getItem(\"age\")\n if (!session && !local)\n navigate(\"/agegate\", { state: { newPath: \"/localesadheridos\" } })\n }, [])\n\n const puntosDeVenta = data.allLocalesAdheridos.nodes;\n const provincePoints = data.allProvince.nodes;\n const cityPoints = data.allCity.nodes;\n\n let provinces = provincePoints.map((point) => {\n return point.name.toUpperCase();\n });\n let localidades = cityPoints;\n\n return (\n <>\n \n {\n return {\n domicilio: puntoDeVenta.domicilio,\n localidad: puntoDeVenta.localidad.toUpperCase(),\n provincia: puntoDeVenta.provincia.toUpperCase(),\n lat: Number(puntoDeVenta.lat),\n lng: Number(puntoDeVenta.lng),\n codPdv: puntoDeVenta.id,\n }\n })}\n localidades={localidades}\n provinces={provinces}\n provincePoints={provincePoints.map((province) => {\n return {\n lat: Number(province.lat),\n lng: Number(province.lng),\n provincia: province.name.toUpperCase(),\n };\n })}\n />\n