{"version":3,"sources":["webpack:///./src/fonts/Museo300-Regular.woff","webpack:///./src/fonts/Belista.ttf","webpack:///./node_modules/gatsby-image/index.js","webpack:///./src/fonts/Museo700-Regular.woff","webpack:///./node_modules/react-cookie-consent/build/index.js","webpack:///./node_modules/react-icons/lib/esm/iconsManifest.js","webpack:///./node_modules/react-icons/lib/esm/iconContext.js","webpack:///./node_modules/react-icons/lib/esm/iconBase.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/swiper/esm/components/a11y/a11y.js","webpack:///./node_modules/swiper/esm/react/utils.js","webpack:///./node_modules/swiper/esm/react/params-list.js","webpack:///./node_modules/swiper/esm/react/loop.js","webpack:///./node_modules/swiper/esm/react/use-isomorphic-layout-effect.js","webpack:///./node_modules/swiper/esm/react/swiper.js","webpack:///./node_modules/swiper/esm/react/get-params.js","webpack:///./node_modules/swiper/esm/react/get-children.js","webpack:///./node_modules/swiper/esm/react/get-changed-params.js","webpack:///./node_modules/swiper/esm/react/update-swiper.js","webpack:///./node_modules/swiper/esm/react/virtual.js","webpack:///./node_modules/swiper/esm/react/init-swiper.js","webpack:///./node_modules/swiper/esm/react/swiper-slide.js","webpack:///./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js","webpack:///./src/presentation/global.js","webpack:///./src/cssConstants/typography.js","webpack:///./src/cssConstants/spacing.js","webpack:///./src/cssConstants/colors.js","webpack:///./src/components/Container/Container.js","webpack:///./src/cssMixins/container.js","webpack:///./src/containers/Footer/Footer.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/construct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack:///./node_modules/polished/dist/polished.esm.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./src/cssConstants/decorations.js","webpack:///./src/cssMixins/buttons.js","webpack:///./src/components/Button/Button.js","webpack:///./src/components/layout.js","webpack:///./src/components/Title/Title.js","webpack:///./src/components/Article/Article.js","webpack:///./src/pages/index.js","webpack:///./node_modules/styled-normalize/dist/index.js"],"names":["module","exports","_interopRequireDefault","require","__esModule","default","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","props","convertedProps","resolutions","sizes","critical","fixed","fluid","loading","groupByMedia","concat","matchesMedia","_ref","media","isBrowser","window","matchMedia","matches","getImageCacheKey","_ref2","srcData","getCurrentSrcData","src","currentData","Array","isArray","some","image","hasArtDirectionSupport","foundMedia","findIndex","noMedia","imageCache","Object","create","inImageCache","cacheKey","hasNativeLazyLoadSupport","HTMLImageElement","prototype","hasIOSupport","IntersectionObserver","listeners","WeakMap","generateImageSources","imageVariants","map","_ref3","srcSet","srcSetWebp","createElement","Fragment","key","type","withMedia","without","forEach","variant","push","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","el","cb","observer","entries","entry","has","target","get","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","set","noscriptImg","title","alt","width","height","crossOrigin","draggable","join","Placeholder","forwardRef","ref","generateSources","spreadProps","ariaHidden","baseImage","Img","length","style","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","propTypes","object","func","Image","_React$Component","_this","call","this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","state","imgLoaded","imgCached","isHydrated","imageRef","createRef","placeholderRef","handleImageLoaded","bind","handleRef","_proto","componentDidMount","setState","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","currentSrc","render","_convertProps","className","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","maxWidth","maxHeight","JSON","stringify","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","divStyle","display","Component","defaultProps","fixedObject","shape","number","isRequired","string","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","Error","checkPropTypes","oneOfType","arrayOf","bool","oneOf","_default","e","866","t","n","r","d","Cookies","s","OPTIONS","h","SAME_SITE_OPTIONS","m","j","getCookieConsentValue","g","o","i","c","a","l","Symbol","iterator","constructor","u","assign","arguments","hasOwnProperty","apply","p","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","f","b","getOwnPropertyDescriptors","defineProperties","defineProperty","value","configurable","writable","setPrototypeOf","__proto__","v","ReferenceError","O","getPrototypeOf","TOP","BOTTOM","NONE","STRICT","LAX","C","S","k","condition","wrapper","children","x","TypeError","Reflect","construct","sham","Proxy","Date","toString","visible","alignItems","background","color","flexWrap","justifyContent","zIndex","buttonStyle","border","borderRadius","boxShadow","cursor","flex","padding","margin","declineButtonStyle","contentStyle","overlayStyle","debug","getCookieValue","cookieName","cookieValue","hideOnAccept","onAccept","setCookie","declineCookieValue","hideOnDecline","onDecline","setDeclineCookie","extraCookieOptions","expires","sameSite","cookieSecurity","location","protocol","secure","disableStyles","buttonText","declineButtonText","containerClasses","y","contentClasses","buttonClasses","buttonWrapperClasses","declineButtonClasses","buttonId","declineButtonId","disableButtonStyles","enableDeclineButton","flipButtons","ButtonComponent","T","overlay","w","overlayClasses","B","P","ariaAcceptLabel","D","ariaDeclineLabel","E","I","N","_","R","A","id","onClick","decline","accept","reverse","any","element","elementType","indexOf","propertyIsEnumerable","808","replace","decodeURIComponent","document","path","defaults","toUTCString","test","write","encodeURIComponent","String","escape","split","cookie","slice","charAt","read","parse","getJSON","remove","withConverter","703","resetWarningCache","name","array","symbol","instanceOf","node","objectOf","exact","PropTypes","697","414","toStringTag","DefaultContext","undefined","size","attr","IconContext","__assign","__rest","GenIcon","data","IconBase","Tree2Element","tree","tag","child","elem","conf","computedSize","svgProps","stroke","fill","strokeWidth","xmlns","Consumer","isObject","obj","extend","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","hash","host","hostname","href","origin","pathname","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","screen","setTimeout","clearTimeout","requestAnimationFrame","callback","cancelAnimationFrame","getWindow","win","_getPrototypeOf","_setPrototypeOf","_isNativeReflectConstruct","Parent","args","Class","instance","Function","_cache","Map","fn","Wrapper","Dom7","_Array","subClass","superClass","items","proto","self","_assertThisInitialized","arrayFlat","arr","res","arrayFilter","$","selector","context","html","trim","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","shortcut","_len","_key","trigger","on","Methods","addClass","classes","classNames","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","hasClass","_len4","_key4","contains","toggleClass","_len3","_key3","toggle","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","duration","transitionDuration","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","handleEvent","events","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","splice","_len9","_key9","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","parseFloat","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","css","_prop","each","index","text","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","find","foundElements","found","removeChild","methodName","browser","nextTick","delay","now","to","nextSource","keysArray","nextIndex","len","nextKey","desc","bindModuleMethods","subKey","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","_temp","support","platform","ua","device","ios","android","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","toLowerCase","isWebView","calcBrowser","swiper","resize","resizeHandler","destroyed","initialized","emit","orientationChangeHandler","init","destroy","_extends","source","Observer","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observers","params","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","disconnect","onTouchStart","touchEventsData","touches","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","preventDefault","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","rtl","rtlTranslate","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","loop","isVertical","translate","maxTranslate","minTranslate","diffX","diffY","Math","sqrt","pow","touchAngle","isHorizontal","atan2","abs","PI","cssMode","touchMoveStopPropagation","nested","stopPropagation","loopFix","startTranslate","getTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","diff","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","time","updateProgress","setTranslate","onTouchEnd","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","run","watchOverflow","checkOverflow","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","progress","dummyEventAttached","dummyEventListener","direction","initialSlide","updateOnWindowResize","url","autoHeight","setWrapperSize","virtualTranslate","effect","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","_defineProperties","descriptor","prototypes","modular","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","method","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","update","clientWidth","clientHeight","parseInt","Number","isNaN","swiperSize","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","slidesForMargin","slideEl","slideIndex","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","floor","ceil","max","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","_slide$","paddingTop","_boxSizing","_slide$2","swiperSlideSize","_i","slidesGridItem","_i2","_slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","byController","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","indexAsNumber","isFinite","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","start","move","end","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","sort","_points$i","innerWidth","wasLocked","lastSlidePosition","addClasses","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","checkForComplete","onReady","onload","onerror","imagesLoaded","imagesToLoad","extendedDefaults","Swiper","moduleParamName","swiperParams","passedParams","eventName","swipers","containerEl","newParams","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","protoProps","staticProps","getSlideClasses","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","Navigation","_swiper$navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","toEdge","fromEdge","click","isHidden","_swiper$navigation3","Autoplay","$activeSlideEl","timeout","autoplayResult","reverseDirection","stopOnLastSlide","stop","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","disableOnInteraction","beforeTransitionStart","sliderFirstMove","touchEnd","Pagination","pagination","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","A11y","getRandomNumber","repeat","round","random","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","label","addElId","addElLive","live","disableEl","enableEl","onEnterKey","a11y","keyCode","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","$slideEl","tagName","notificationClass","afterInit","paginationUpdate","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","calcLoopedSlides","slidesPerViewParams","useIsomorphicLayoutEffect","deps","externalElRef","_ref$tag","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","rest","excluded","sourceKeys","_objectWithoutPropertiesLoose","_useState","setContainerClasses","_useState2","virtualData","setVirtualData","_useState3","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","allowedParams","getParams","restProps","_getChildren","slots","processChildren","Children","toArray","displayName","slot","getChildren","changedParams","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","onBeforeBreakpoint","_containerClasses","_swiper","cache","renderExternal","renderExternalUpdate","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","updateParams","currentParams","thumbs","includes","controller","control","updateSwiper","lazy","load","paginationEl","scrollbarEl","initSwiper","from","cloneElement","renderVirtual","modifiedSlides","duplicateSlide","blankSlide","renderLoop","SwiperSlide","externalRef","slideData","_ref$className","zoom","virtualIndex","slideElRef","slideClasses","setSlideClasses","updateClasses","isActive","isDuplicate","isPrev","isNext","renderChildren","_taggedTemplateLiteralLoose","strings","raw","GlobalStyle","createGlobalStyle","styledNormalize","Museo300","Museo700","Belista","Container","styled","div","BandFooter","Band","Element","Footer","useStaticQuery","file","childImageSharp","rel","_Error","PolishedError","code","colorToInt","convertToInt","red","green","blue","hslToRgb","hue","saturation","lightness","convert","huePrime","chroma","secondComponent","lightnessModification","namedColorMap","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","hexRegex","hexRgbaRegex","reducedHexRegex","reducedRgbaHexRegex","rgbRegex","rgbaRegex","hslRegex","hslaRegex","parseToRgb","normalizedColor","normalizedColorName","nameToHex","alpha","toFixed","_alpha","rgbMatched","exec","rgbaMatched","hslMatched","rgbColorString","hslRgbMatched","hslaMatched","_rgbColorString","_hslRgbMatched","parseToHsl","delta","rgbToHsl","reduceHexValue","numberToHex","hex","colorToHex","convertToHex","hslToHex","hsl","hsla","rgb","rgba","firstValue","secondValue","thirdValue","fourthValue","rgbValue","toColorString","isRgba","isRgb","isHsla","isHsl","curry","curried","acc","combined","guard","lowerBoundary","upperBoundary","darken","amount","hslColor","curriedDarken","setLightness","curriedSetLightness","fontSizeHash","small","tiny","buttonMixin","spacingUnit","Button","HeaderWrapper","Header","header","Nav","nav","HeaderLink","Root","Layout","logoLebonton","Title","h1","Article","article","SwiperCore","BandSlideShow","BandWhoWeAre","BandTeam","breakpointTablet","BandTeamItem","BandTeamItemName","BandCucinaEbraica","BandWhereWeAre","WhoWeAreIframe","iframe","frameBorder","allowFullScreen","tabIndex","Home","slideShow02","slideShow04","slideShow05","slideShow06","slideShow07","slideShow01","slideShow03","teams","giovanniTerracina","darioBascetta","danieleTerracina","item","bakeryBackground","Normalize","_styledComponents"],"mappings":"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","file":"component---src-pages-index-js-47a285479b490fd98bfe.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/Museo300-Regular-2cb8e5fac1521e494473e020abb046a8.woff\";","module.exports = __webpack_public_path__ + \"static/Belista-943930219530cd23e36b36206f0a8fcc.ttf\";","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n logDeprecationNotice(\"resolutions\", \"the gatsby-image v2 prop \\\"fixed\\\"\");\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n logDeprecationNotice(\"sizes\", \"the gatsby-image v2 prop \\\"fluid\\\"\");\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Checks if fluid or fixed are art-direction arrays.\n *\n * @param currentData {{media?: string}[]} The props to check for images.\n * @return {boolean}\n */\n\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(currentData) {\n return !!currentData && Array.isArray(currentData) && currentData.some(function (image) {\n return typeof image.media !== \"undefined\";\n });\n};\n/**\n * Tries to detect if a media query matches the current viewport.\n * @property media {{media?: string}} A media query string.\n * @return {boolean}\n */\n\n\nvar matchesMedia = function matchesMedia(_ref) {\n var media = _ref.media;\n return media ? isBrowser && !!window.matchMedia(media).matches : false;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string, media?: string}[], fixed: {src: string, media?: string}[]}} args\n * @return {string?} Returns image src or undefined it not given.\n */\n\n\nvar getImageCacheKey = function getImageCacheKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var srcData = getCurrentSrcData(fluid || fixed || []);\n return srcData && srcData.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[], maxWidth?: Number, maxHeight?: Number} The fluid or fixed image array.\n * @return {{src: string, media?: string, maxWidth?: Number, maxHeight?: Number}}\n */\n\n\nvar getCurrentSrcData = function getCurrentSrcData(currentData) {\n if (isBrowser && hasArtDirectionSupport(currentData)) {\n // Do we have an image for the current Viewport?\n var foundMedia = currentData.findIndex(matchesMedia);\n\n if (foundMedia !== -1) {\n return currentData[foundMedia];\n } // No media matches, select first element without a media condition\n\n\n var noMedia = currentData.findIndex(function (image) {\n return typeof image.media === \"undefined\";\n });\n\n if (noMedia !== -1) {\n return currentData[noMedia];\n }\n } // Else return the first image.\n\n\n return currentData[0];\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n return imageCache[cacheKey] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n\n if (cacheKey) {\n imageCache[cacheKey] = true;\n }\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners.delete(entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n srcSet = _ref3.srcSet,\n srcSetWebp = _ref3.srcSetWebp,\n media = _ref3.media,\n sizes = _ref3.sizes;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {\n key: src\n }, srcSetWebp && /*#__PURE__*/_react.default.createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), srcSet && /*#__PURE__*/_react.default.createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n tracedSVG = _ref4.tracedSVG;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref5) {\n var src = _ref5.src,\n media = _ref5.media,\n base64 = _ref5.base64;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref6, isWebp) {\n var srcSet = _ref6.srcSet,\n srcSetWebp = _ref6.srcSetWebp,\n media = _ref6.media,\n sizes = _ref6.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners.delete(el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"\" + sources + \"\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var src = props.src,\n imageVariants = props.imageVariants,\n generateSources = props.generateSources,\n spreadProps = props.spreadProps,\n ariaHidden = props.ariaHidden;\n\n var baseImage = /*#__PURE__*/_react.default.createElement(Img, (0, _extends2.default)({\n ref: ref,\n src: src\n }, spreadProps, {\n ariaHidden: ariaHidden\n }));\n\n return imageVariants.length > 1 ? /*#__PURE__*/_react.default.createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n});\n\nvar Img = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n ariaHidden = props.ariaHidden,\n otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\", \"ariaHidden\"]);\n return /*#__PURE__*/_react.default.createElement(\"img\", (0, _extends2.default)({\n \"aria-hidden\": ariaHidden,\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\n style: (0, _extends2.default)({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes.default.object,\n onError: _propTypes.default.func,\n onLoad: _propTypes.default.func\n};\n\nvar Image = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn,\n isHydrated: false\n };\n _this.imageRef = /*#__PURE__*/_react.default.createRef();\n _this.placeholderRef = props.placeholderRef || /*#__PURE__*/_react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.setState({\n isHydrated: isBrowser\n });\n\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.isCritical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n } // Specific to IntersectionObserver based lazy-load support\n ;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n // for lazyloaded components this might be null\n // TODO fix imgCached behaviour as it's now false when it's lazyloaded\n imgCached: !!(_this2.imageRef.current && _this2.imageRef.current.currentSrc)\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n draggable = _convertProps.draggable;\n\n var imageVariants = fluid || fixed; // Abort early if missing image data (#25371)\n\n if (!imageVariants) {\n return null;\n }\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2.default)({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, imgStyle, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName,\n itemProp: itemProp\n }; // Initial client render state needs to match SSR until hydration finishes.\n // Once hydration completes, render again to update to the correct image.\n // `imageVariants` is always an Array type at this point due to `convertProps()`\n\n var image = !this.state.isHydrated ? imageVariants[0] : getCurrentSrcData(imageVariants);\n\n if (fluid) {\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n maxWidth: image.maxWidth ? image.maxWidth + \"px\" : null,\n maxHeight: image.maxHeight ? image.maxHeight + \"px\" : null\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (fixed) {\n var divStyle = (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: image.width,\n height: image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(image.srcSet)\n }, bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n width: image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: image.height\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n width: image.width,\n height: image.height,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string,\n maxWidth: _propTypes.default.number,\n maxHeight: _propTypes.default.number\n});\n\nfunction requireFixedOrFluid(originalPropTypes) {\n return function (props, propName, componentName) {\n var _PropTypes$checkPropT;\n\n if (!props.fixed && !props.fluid) {\n throw new Error(\"The prop `fluid` or `fixed` is marked as required in `\" + componentName + \"`, but their values are both `undefined`.\");\n }\n\n _propTypes.default.checkPropTypes((_PropTypes$checkPropT = {}, _PropTypes$checkPropT[propName] = originalPropTypes, _PropTypes$checkPropT), props, \"prop\", componentName);\n };\n} // If you modify these propTypes, please don't forget to update following files as well:\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/index.d.ts\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/README.md#gatsby-image-props\n// https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/gatsby-image.md#gatsby-image-props\n\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: requireFixedOrFluid(_propTypes.default.oneOfType([fixedObject, _propTypes.default.arrayOf(fixedObject)])),\n fluid: requireFixedOrFluid(_propTypes.default.oneOfType([fluidObject, _propTypes.default.arrayOf(fluidObject)])),\n fadeIn: _propTypes.default.bool,\n durationFadeIn: _propTypes.default.number,\n title: _propTypes.default.string,\n alt: _propTypes.default.string,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n // Support Glamor's css prop.\n critical: _propTypes.default.bool,\n crossOrigin: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n style: _propTypes.default.object,\n imgStyle: _propTypes.default.object,\n placeholderStyle: _propTypes.default.object,\n placeholderClassName: _propTypes.default.string,\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n onError: _propTypes.default.func,\n onStartLoad: _propTypes.default.func,\n Tag: _propTypes.default.string,\n itemProp: _propTypes.default.string,\n loading: _propTypes.default.oneOf([\"auto\", \"lazy\", \"eager\"]),\n draggable: _propTypes.default.bool\n};\nvar _default = Image;\nexports.default = _default;","module.exports = __webpack_public_path__ + \"static/Museo700-Regular-ca11daabbd675a39710aeacd18893b57.woff\";","/*! For license information please see index.js.LICENSE.txt */\nmodule.exports = function () {\n var e = {\n 866: function _(e, t, n) {\n \"use strict\";\n\n n.r(t), n.d(t, {\n Cookies: function Cookies() {\n return s();\n },\n OPTIONS: function OPTIONS() {\n return h;\n },\n SAME_SITE_OPTIONS: function SAME_SITE_OPTIONS() {\n return m;\n },\n default: function _default() {\n return j;\n },\n getCookieConsentValue: function getCookieConsentValue() {\n return g;\n }\n });\n\n var o = require(\"react\");\n\n var r = n.n(o),\n i = n(697),\n c = n.n(i),\n a = n(808),\n s = n.n(a);\n\n function l(e) {\n return (l = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n })(e);\n }\n\n function u() {\n return (u = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = arguments[t];\n\n for (var o in n) {\n Object.prototype.hasOwnProperty.call(n, o) && (e[o] = n[o]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n }\n\n function p(e, t) {\n var n = Object.keys(e);\n\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n t && (o = o.filter(function (t) {\n return Object.getOwnPropertyDescriptor(e, t).enumerable;\n })), n.push.apply(n, o);\n }\n\n return n;\n }\n\n function f(e) {\n for (var t = 1; t < arguments.length; t++) {\n var n = null != arguments[t] ? arguments[t] : {};\n t % 2 ? p(Object(n), !0).forEach(function (t) {\n b(e, t, n[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : p(Object(n)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t));\n });\n }\n\n return e;\n }\n\n function b(e, t, n) {\n return t in e ? Object.defineProperty(e, t, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[t] = n, e;\n }\n\n function y(e, t) {\n for (var n = 0; n < t.length; n++) {\n var o = t[n];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);\n }\n }\n\n function d(e, t) {\n return (d = Object.setPrototypeOf || function (e, t) {\n return e.__proto__ = t, e;\n })(e, t);\n }\n\n function v(e, t) {\n return !t || \"object\" !== l(t) && \"function\" != typeof t ? function (e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }(e) : t;\n }\n\n function O(e) {\n return (O = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n })(e);\n }\n\n var h = {\n TOP: \"top\",\n BOTTOM: \"bottom\",\n NONE: \"none\"\n },\n m = {\n STRICT: \"strict\",\n LAX: \"lax\",\n NONE: \"none\"\n },\n g = function g() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : C,\n t = s().get(e);\n return void 0 === t && (t = s().get(S(e))), t;\n },\n S = function S(e) {\n return \"\".concat(e, \"-legacy\");\n },\n C = \"CookieConsent\",\n k = function k(e) {\n var t = e.condition,\n n = e.wrapper,\n o = e.children;\n return t ? n(o) : o;\n },\n x = function (e) {\n !function (e, t) {\n if (\"function\" != typeof t && null !== t) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(t && t.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), t && d(e, t);\n }(a, e);\n var t,\n n,\n o,\n i,\n c = (o = a, i = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Date.prototype.toString.call(Reflect.construct(Date, [], function () {})), !0;\n } catch (e) {\n return !1;\n }\n }(), function () {\n var e,\n t = O(o);\n\n if (i) {\n var n = O(this).constructor;\n e = Reflect.construct(t, arguments, n);\n } else e = t.apply(this, arguments);\n\n return v(this, e);\n });\n\n function a(e) {\n var t;\n return function (e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, a), (t = c.call(this, e)).state = {\n visible: !1,\n style: {\n alignItems: \"baseline\",\n background: \"#353535\",\n color: \"white\",\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-between\",\n left: \"0\",\n position: \"fixed\",\n width: \"100%\",\n zIndex: \"999\"\n },\n buttonStyle: {\n background: \"#ffd42d\",\n border: \"0\",\n borderRadius: \"0px\",\n boxShadow: \"none\",\n color: \"black\",\n cursor: \"pointer\",\n flex: \"0 0 auto\",\n padding: \"5px 10px\",\n margin: \"15px\"\n },\n declineButtonStyle: {\n background: \"#c12a2a\",\n border: \"0\",\n borderRadius: \"0px\",\n boxShadow: \"none\",\n color: \"#e5e5e5\",\n cursor: \"pointer\",\n flex: \"0 0 auto\",\n padding: \"5px 10px\",\n margin: \"15px\"\n },\n contentStyle: {\n flex: \"1 0 300px\",\n margin: \"15px\"\n },\n overlayStyle: {\n position: \"fixed\",\n left: 0,\n top: 0,\n width: \"100%\",\n height: \"100%\",\n zIndex: \"999\",\n backgroundColor: \"rgba(0,0,0,0.3)\"\n }\n }, t;\n }\n\n return t = a, (n = [{\n key: \"componentDidMount\",\n value: function value() {\n var e = this.props.debug;\n (void 0 === this.getCookieValue() || e) && this.setState({\n visible: !0\n });\n }\n }, {\n key: \"accept\",\n value: function value() {\n var e = this.props,\n t = e.cookieName,\n n = e.cookieValue,\n o = e.hideOnAccept,\n r = e.onAccept;\n this.setCookie(t, n), r(), o && this.setState({\n visible: !1\n });\n }\n }, {\n key: \"decline\",\n value: function value() {\n var e = this.props,\n t = e.cookieName,\n n = e.declineCookieValue,\n o = e.hideOnDecline,\n r = e.onDecline;\n e.setDeclineCookie && this.setCookie(t, n), r(), o && this.setState({\n visible: !1\n });\n }\n }, {\n key: \"setCookie\",\n value: function value(e, t) {\n var n = this.props,\n o = n.extraCookieOptions,\n r = n.expires,\n i = n.sameSite,\n c = this.props.cookieSecurity;\n void 0 === c && (c = !location || \"https:\" === location.protocol);\n var a = f(f({\n expires: r\n }, o), {}, {\n sameSite: i,\n secure: c\n });\n i === m.NONE && s().set(S(e), t, a), s().set(e, t, a);\n }\n }, {\n key: \"getCookieValue\",\n value: function value() {\n var e = this.props.cookieName;\n return g(e);\n }\n }, {\n key: \"render\",\n value: function value() {\n var e = this;\n if (!this.state.visible) return null;\n var t = this.props,\n n = t.location,\n o = t.style,\n i = t.buttonStyle,\n c = t.declineButtonStyle,\n a = t.contentStyle,\n s = t.disableStyles,\n l = t.buttonText,\n p = t.declineButtonText,\n b = t.containerClasses,\n y = t.contentClasses,\n d = t.buttonClasses,\n v = t.buttonWrapperClasses,\n O = t.declineButtonClasses,\n m = t.buttonId,\n g = t.declineButtonId,\n S = t.disableButtonStyles,\n C = t.enableDeclineButton,\n x = t.flipButtons,\n j = t.ButtonComponent,\n T = t.overlay,\n w = t.overlayClasses,\n B = t.overlayStyle,\n P = t.ariaAcceptLabel,\n D = t.ariaDeclineLabel,\n E = {},\n I = {},\n N = {},\n _ = {},\n R = {};\n\n switch (s ? (E = u({}, o), I = u({}, i), N = u({}, c), _ = u({}, a), R = u({}, B)) : (E = u({}, f(f({}, this.state.style), o)), _ = u({}, f(f({}, this.state.contentStyle), a)), R = u({}, f(f({}, this.state.overlayStyle), B)), S ? (I = u({}, i), N = u({}, c)) : (I = u({}, f(f({}, this.state.buttonStyle), i)), N = u({}, f(f({}, this.state.declineButtonStyle), c)))), n) {\n case h.TOP:\n E.top = \"0\";\n break;\n\n case h.BOTTOM:\n E.bottom = \"0\";\n }\n\n var A = [];\n return C && A.push(r().createElement(j, {\n key: \"declineButton\",\n style: N,\n className: O,\n id: g,\n \"aria-label\": D,\n onClick: function onClick() {\n e.decline();\n }\n }, p)), A.push(r().createElement(j, {\n key: \"acceptButton\",\n style: I,\n className: d,\n id: m,\n \"aria-label\": P,\n onClick: function onClick() {\n e.accept();\n }\n }, l)), x && A.reverse(), r().createElement(k, {\n condition: T,\n wrapper: function wrapper(e) {\n return r().createElement(\"div\", {\n style: R,\n className: w\n }, e);\n }\n }, r().createElement(\"div\", {\n className: \"\".concat(b),\n style: E\n }, r().createElement(\"div\", {\n style: _,\n className: y\n }, this.props.children), r().createElement(\"div\", {\n className: \"\".concat(v)\n }, A.map(function (e) {\n return e;\n }))));\n }\n }]) && y(t.prototype, n), a;\n }(o.Component);\n\n x.propTypes = {\n location: c().oneOf(Object.keys(h).map(function (e) {\n return h[e];\n })),\n sameSite: c().oneOf(Object.keys(m).map(function (e) {\n return m[e];\n })),\n style: c().object,\n buttonStyle: c().object,\n declineButtonStyle: c().object,\n contentStyle: c().object,\n children: c().any,\n disableStyles: c().bool,\n hideOnAccept: c().bool,\n hideOnDecline: c().bool,\n onAccept: c().func,\n onDecline: c().func,\n buttonText: c().oneOfType([c().string, c().func, c().element]),\n declineButtonText: c().oneOfType([c().string, c().func, c().element]),\n cookieName: c().string,\n cookieValue: c().oneOfType([c().string, c().bool, c().number]),\n declineCookieValue: c().oneOfType([c().string, c().bool, c().number]),\n setDeclineCookie: c().bool,\n debug: c().bool,\n expires: c().number,\n containerClasses: c().string,\n contentClasses: c().string,\n buttonClasses: c().string,\n buttonWrapperClasses: c().string,\n declineButtonClasses: c().string,\n buttonId: c().string,\n declineButtonId: c().string,\n extraCookieOptions: c().object,\n disableButtonStyles: c().bool,\n enableDeclineButton: c().bool,\n flipButtons: c().bool,\n ButtonComponent: c().elementType,\n cookieSecurity: c().bool,\n overlay: c().bool,\n overlayClasses: c().string,\n overlayStyle: c().object,\n ariaAcceptLabel: c().string,\n ariaDeclineLabel: c().string\n }, x.defaultProps = {\n disableStyles: !1,\n hideOnAccept: !0,\n hideOnDecline: !0,\n location: h.BOTTOM,\n onAccept: function onAccept() {},\n onDecline: function onDecline() {},\n cookieName: C,\n cookieValue: !0,\n declineCookieValue: !1,\n setDeclineCookie: !0,\n buttonText: \"I understand\",\n declineButtonText: \"I decline\",\n debug: !1,\n expires: 365,\n containerClasses: \"CookieConsent\",\n contentClasses: \"\",\n buttonClasses: \"\",\n buttonWrapperClasses: \"\",\n declineButtonClasses: \"\",\n buttonId: \"rcc-confirm-button\",\n declineButtonId: \"rcc-decline-button\",\n extraCookieOptions: {},\n disableButtonStyles: !1,\n enableDeclineButton: !1,\n flipButtons: !1,\n sameSite: m.LAX,\n ButtonComponent: function ButtonComponent(e) {\n var t = e.children,\n n = function (e, t) {\n if (null == e) return {};\n\n var n,\n o,\n r = function (e, t) {\n if (null == e) return {};\n var n,\n o,\n r = {},\n i = Object.keys(e);\n\n for (o = 0; o < i.length; o++) {\n n = i[o], t.indexOf(n) >= 0 || (r[n] = e[n]);\n }\n\n return r;\n }(e, t);\n\n if (Object.getOwnPropertySymbols) {\n var i = Object.getOwnPropertySymbols(e);\n\n for (o = 0; o < i.length; o++) {\n n = i[o], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]);\n }\n }\n\n return r;\n }(e, [\"children\"]);\n\n return r().createElement(\"button\", n, t);\n },\n overlay: !1,\n overlayClasses: \"\",\n ariaAcceptLabel: \"Accept cookies\",\n ariaDeclineLabel: \"Decline cookies\"\n };\n var j = x;\n },\n 808: function _(e, t, n) {\n var o, r, i;\n void 0 === (r = \"function\" == typeof (o = i = function i() {\n function e() {\n for (var e = 0, t = {}; e < arguments.length; e++) {\n var n = arguments[e];\n\n for (var o in n) {\n t[o] = n[o];\n }\n }\n\n return t;\n }\n\n function t(e) {\n return e.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n }\n\n return function n(o) {\n function r() {}\n\n function i(t, n, i) {\n if (\"undefined\" != typeof document) {\n \"number\" == typeof (i = e({\n path: \"/\"\n }, r.defaults, i)).expires && (i.expires = new Date(1 * new Date() + 864e5 * i.expires)), i.expires = i.expires ? i.expires.toUTCString() : \"\";\n\n try {\n var c = JSON.stringify(n);\n /^[\\{\\[]/.test(c) && (n = c);\n } catch (e) {}\n\n n = o.write ? o.write(n, t) : encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), t = encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\\(\\)]/g, escape);\n var a = \"\";\n\n for (var s in i) {\n i[s] && (a += \"; \" + s, !0 !== i[s] && (a += \"=\" + i[s].split(\";\")[0]));\n }\n\n return document.cookie = t + \"=\" + n + a;\n }\n }\n\n function c(e, n) {\n if (\"undefined\" != typeof document) {\n for (var r = {}, i = document.cookie ? document.cookie.split(\"; \") : [], c = 0; c < i.length; c++) {\n var a = i[c].split(\"=\"),\n s = a.slice(1).join(\"=\");\n n || '\"' !== s.charAt(0) || (s = s.slice(1, -1));\n\n try {\n var l = t(a[0]);\n if (s = (o.read || o)(s, l) || t(s), n) try {\n s = JSON.parse(s);\n } catch (e) {}\n if (r[l] = s, e === l) break;\n } catch (e) {}\n }\n\n return e ? r[e] : r;\n }\n }\n\n return r.set = i, r.get = function (e) {\n return c(e, !1);\n }, r.getJSON = function (e) {\n return c(e, !0);\n }, r.remove = function (t, n) {\n i(t, \"\", e(n, {\n expires: -1\n }));\n }, r.defaults = {}, r.withConverter = n, r;\n }(function () {});\n }) ? o.call(t, n, t, e) : o) || (e.exports = r), e.exports = i();\n },\n 703: function _(e, t, n) {\n \"use strict\";\n\n var o = n(414);\n\n function r() {}\n\n function i() {}\n\n i.resetWarningCache = r, e.exports = function () {\n function e(e, t, n, r, i, c) {\n if (c !== o) {\n var a = new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");\n throw a.name = \"Invariant Violation\", a;\n }\n }\n\n function t() {\n return e;\n }\n\n e.isRequired = e;\n var n = {\n array: e,\n bool: e,\n func: e,\n number: e,\n object: e,\n string: e,\n symbol: e,\n any: e,\n arrayOf: t,\n element: e,\n elementType: e,\n instanceOf: t,\n node: e,\n objectOf: t,\n oneOf: t,\n oneOfType: t,\n shape: t,\n exact: t,\n checkPropTypes: i,\n resetWarningCache: r\n };\n return n.PropTypes = n, n;\n };\n },\n 697: function _(e, t, n) {\n e.exports = n(703)();\n },\n 414: function _(e) {\n \"use strict\";\n\n e.exports = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";\n }\n },\n t = {};\n\n function n(o) {\n if (t[o]) return t[o].exports;\n var r = t[o] = {\n exports: {}\n };\n return e[o](r, r.exports, n), r.exports;\n }\n\n return n.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return n.d(t, {\n a: t\n }), t;\n }, n.d = function (e, t) {\n for (var o in t) {\n n.o(t, o) && !n.o(e, o) && Object.defineProperty(e, o, {\n enumerable: !0,\n get: t[o]\n });\n }\n }, n.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, n.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, n(866);\n}();","export var IconsManifest = [{\n \"id\": \"fa\",\n \"name\": \"Font Awesome\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}, {\n \"id\": \"io\",\n \"name\": \"Ionicons\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n}, {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n}, {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n}, {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n}, {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n}, {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n}, {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n}, {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/refactoringui/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n}, {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\"\n}, {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"CC BY 4.0 License\"\n}, {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}];","import * as React from 'react';\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && React.createContext(DefaultContext);","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport * as React from 'react';\nimport { IconContext, DefaultContext } from './iconContext';\n\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return React.createElement(node.tag, __assign({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\n\nexport function GenIcon(data) {\n return function (props) {\n return React.createElement(IconBase, __assign({\n attr: __assign({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nexport function IconBase(props) {\n var elem = function elem(conf) {\n var computedSize = props.size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + ' ' : '') + props.className;\n\n var attr = props.attr,\n title = props.title,\n svgProps = __rest(props, [\"attr\", \"title\"]);\n\n return React.createElement(\"svg\", __assign({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: __assign({\n color: props.color || conf.color\n }, conf.style, props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && React.createElement(\"title\", null, title), props.children);\n };\n\n return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\n}","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\n\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n\n if (src === void 0) {\n src = {};\n }\n\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\n\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\n};\n\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n/* eslint-disable no-proto */\n\n\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\n\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = Methods[methodName];\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow(); // Emit resize\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends(_extends({}, Observer), {}, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.screen.width - edgeSwipeThreshold)) {\n return;\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n nested: false,\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/* eslint no-param-reassign: \"off\" */\n\n\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el; // Swiper Instance\n\n var swiper = this;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Find el\n\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper; // Find Wrapper\n\n var $wrapperEl;\n\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n $wrapperEl.children = function (options) {\n return $el.children(options);\n };\n } else {\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n } // Extend Swiper\n\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n swiper.emit('_slideClass', slideEl, classNames);\n });\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.init = function init() {\n var swiper = this;\n if (swiper.initialized) return;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.width !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { getWindow } from 'ssr-window';\nimport { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n var window = getWindow();\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = window.getComputedStyle(slide[0], null);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n } else {\n var height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n\n var _boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (_boxSizing && _boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n var _slide$2 = slide[0],\n clientHeight = _slide$2.clientHeight,\n offsetHeight = _slide$2.offsetHeight;\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom + (offsetHeight - clientHeight);\n }\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({\n marginLeft: spaceBetween + \"px\"\n });else slides.filter(slidesForMargin).css({\n marginRight: spaceBetween + \"px\"\n });\n } else slides.filter(slidesForMargin).css({\n marginBottom: spaceBetween + \"px\"\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n } // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoints(breakpoints) {\n var window = getWindow(); // Get breakpoint for window width\n\n if (!breakpoints) return undefined;\n var breakpoint = false;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = window.innerHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","export default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device;\n var suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n\n if (rtl) {\n suffixes.push('rtl');\n }\n\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n\n if (device.android) {\n suffixes.push('android');\n }\n\n if (device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Navigation = {\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n click: function click(swiper, e) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if (swiper.params.navigation.hideOnClick && !$(e.target).is($prevEl) && !$(e.target).is($nextEl)) {\n var isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n/* eslint no-underscore-dangle: \"off\" */\n\n\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends(_extends({}, Autoplay), {}, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(\".\" + params.currentClass).text(params.formatFractionCurrent(current + 1));\n $el.find(\".\" + params.totalClass).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(\".\" + params.progressbarFillClass).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(\".\" + params.bulletClass);\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', \".\" + params.bulletClass, function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', \".\" + params.bulletClass);\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n click: function click(swiper, e) {\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(e.target).hasClass(swiper.params.pagination.bulletClass)) {\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar A11y = {\n getRandomNumber: function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n var randomChar = function randomChar() {\n return Math.round(16 * Math.random()).toString(16);\n };\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n },\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElRoleDescription: function addElRoleDescription($el, description) {\n $el.attr('aria-role-description', description);\n return $el;\n },\n addElControls: function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n addElId: function addElId($el, id) {\n $el.attr('id', id);\n return $el;\n },\n addElLive: function addElLive($el, live) {\n $el.attr('aria-live', live);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey: function onEnterKey(e) {\n var swiper = this;\n var params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n var $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(\".\" + swiper.params.pagination.bulletClass)) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n if (swiper.params.loop || !swiper.navigation) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.a11y;\n swiper.$el.append(swiper.a11y.liveRegion); // Container\n\n var $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\n var live;\n swiper.a11y.addElId($wrapperEl, wrapperId);\n\n if (swiper.params.autoplay && swiper.params.autoplay.enabled) {\n live = 'off';\n } else {\n live = 'polite';\n }\n\n swiper.a11y.addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n swiper.a11y.addElRole($(swiper.slides), 'group');\n swiper.slides.each(function (slideEl) {\n var $slideEl = $(slideEl);\n swiper.a11y.addElLabel($slideEl, $slideEl.index() + 1 + \" / \" + swiper.slides.length);\n }); // Navigation\n\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n swiper.a11y.makeElFocusable($nextEl);\n\n if ($nextEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($nextEl, 'button');\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n swiper.a11y.addElControls($nextEl, wrapperId);\n }\n\n if ($prevEl && $prevEl.length) {\n swiper.a11y.makeElFocusable($prevEl);\n\n if ($prevEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($prevEl, 'button');\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n swiper.a11y.addElControls($prevEl, wrapperId);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', \".\" + swiper.params.pagination.bulletClass, swiper.a11y.onEnterKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', \".\" + swiper.params.pagination.bulletClass, swiper.a11y.onEnterKey);\n }\n }\n};\nexport default {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends(_extends({}, A11y), {}, {\n liveRegion: $(\"\")\n })\n });\n },\n on: {\n afterInit: function afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend(target, src) {\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nvar paramsList = ['init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'nested', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_freeModeMomentum', '_freeModeMomentumRatio', '_freeModeMomentumBounce', '_freeModeMomentumBounceRatio', '_freeModeMomentumVelocityRatio', '_freeModeSticky', '_freeModeMinimumVelocity', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_slidesPerColumn', '_slidesPerColumnFill', '_slidesPerGroup', '_slidesPerGroupSkip', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_watchSlidesVisibility', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react'; // eslint-disable-next-line\n\nimport Swiper from '../../core';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n var slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n var breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n var breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n return React.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return React.cloneElement(child, {\n key: child.key + \"-duplicate-\" + index + \"-\" + position,\n className: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: swiperParams.slideClass + \" \" + swiperParams.slideBlankClass\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n var prependSlides = [];\n var appendSlides = [];\n modifiedSlides.forEach(function (child, index) {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [].concat(prependSlides, modifiedSlides, appendSlides);\n}\n\nexport { calcLoopedSlides, renderLoop };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params';\nimport { initSwiper } from './init-swiper';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses } from './utils';\nimport { renderLoop, calcLoopedSlides } from './loop';\nimport { getChangedParams } from './get-changed-params';\nimport { getChildren } from './get-children';\nimport { updateSwiper } from './update-swiper';\nimport { renderVirtual, updateOnVirtualData } from './virtual';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar Swiper = forwardRef(function (_temp, externalElRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n className = _ref.className,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$wrapperTag = _ref.wrapperTag,\n WrapperTag = _ref$wrapperTag === void 0 ? 'div' : _ref$wrapperTag,\n children = _ref.children,\n onSwiper = _ref.onSwiper,\n rest = _objectWithoutPropertiesLoose(_ref, [\"className\", \"tag\", \"wrapperTag\", \"children\", \"onSwiper\"]);\n\n var _useState = useState('swiper-container'),\n containerClasses = _useState[0],\n setContainerClasses = _useState[1];\n\n var _useState2 = useState(null),\n virtualData = _useState2[0],\n setVirtualData = _useState2[1];\n\n var _useState3 = useState(false),\n breakpointChanged = _useState3[0],\n setBreakpointChanged = _useState3[1];\n\n var initializedRef = useRef(false);\n var swiperElRef = useRef(null);\n var swiperRef = useRef(null);\n var oldPassedParamsRef = useRef(null);\n var oldSlides = useRef(null);\n var nextElRef = useRef(null);\n var prevElRef = useRef(null);\n var paginationElRef = useRef(null);\n var scrollbarElRef = useRef(null);\n\n var _getParams = getParams(rest),\n swiperParams = _getParams.params,\n passedParams = _getParams.passedParams,\n restProps = _getParams.rest;\n\n var _getChildren = getChildren(children),\n slides = _getChildren.slides,\n slots = _getChildren.slots;\n\n var changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n var onBeforeBreakpoint = function onBeforeBreakpoint() {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses: function _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n },\n _swiper: function _swiper(swiper) {\n swiper.loopCreate = function () {};\n\n swiper.loopDestroy = function () {};\n\n if (swiperParams.loop) {\n swiper.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n swiperRef.current = swiper;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.virtual.slides = slides;\n swiper.params.virtual.cache = false;\n swiper.params.virtual.renderExternal = setVirtualData;\n swiper.params.virtual.renderExternalUpdate = false;\n }\n }\n });\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n useEffect(function () {\n return function () {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(function () {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // watch for params change\n\n useIsomorphicLayoutEffect(function () {\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper(swiperRef.current, slides, passedParams, changedParams);\n }\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(function () {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // init swiper\n\n useIsomorphicLayoutEffect(function () {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n initSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return function () {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy();\n }\n };\n }, []); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(function (child) {\n return React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(\"\" + containerClasses + (className ? \" \" + className : ''))\n }, restProps), slots['container-start'], needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']);\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { isObject, extend } from './utils';\nimport { paramsList } from './params-list';\n\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n var params = {\n on: {}\n };\n var passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n var rest = {};\n var allowedParams = paramsList.map(function (key) {\n return key.replace(/_/, '');\n });\n Object.keys(obj).forEach(function (key) {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n params.on[\"\" + key[2].toLowerCase() + key.substr(3)] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n return {\n params: params,\n passedParams: passedParams,\n rest: rest\n };\n}\n\nexport { getParams };","import React from 'react';\n\nfunction getChildren(children) {\n var slides = [];\n var slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n\n function processChildren(c) {\n React.Children.toArray(c).forEach(function (child) {\n if (child.type === React.Fragment && child.props.children) {\n processChildren(child.props.children);\n return;\n }\n\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else {\n slots['container-end'].push(child);\n }\n });\n }\n\n processChildren(children);\n return {\n slides: slides,\n slots: slots\n };\n}\n\nexport { getChildren };","import { paramsList } from './params-list';\nimport { isObject } from './utils';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n var keys = [];\n if (!oldParams) return keys;\n\n var addKey = function addKey(key) {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n var oldChildrenKeys = oldChildren.map(function (child) {\n return child.key;\n });\n var childrenKeys = children.map(function (child) {\n return child.key;\n });\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n var watchParams = paramsList.filter(function (key) {\n return key[0] === '_';\n }).map(function (key) {\n return key.replace(/_/, '');\n });\n watchParams.forEach(function (key) {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n var newKeys = Object.keys(swiperParams[key]);\n var oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(function (newKey) {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(function (oldKey) {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import { isObject, extend } from './utils';\n\nfunction updateSwiper(swiper, slides, passedParams, changedParams) {\n var updateParams = changedParams.filter(function (key) {\n return key !== 'children' && key !== 'direction';\n });\n var currentParams = swiper.params,\n pagination = swiper.pagination,\n navigation = swiper.navigation,\n scrollbar = swiper.scrollbar,\n virtual = swiper.virtual,\n thumbs = swiper.thumbs;\n var needThumbsInit;\n var needControllerInit;\n var needPaginationInit;\n var needScrollbarInit;\n var needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && passedParams.pagination.el && currentParams.pagination && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && passedParams.scrollbar.el && currentParams.scrollbar && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && passedParams.navigation.prevEl && passedParams.navigation.nextEl && currentParams.navigation && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n updateParams.forEach(function (key) {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n currentParams[key] = passedParams[key];\n }\n });\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n }\n\n if (needThumbsInit) {\n var initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import React from 'react';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n var _ref;\n\n if (!virtualData) return null;\n var style = swiper.isHorizontal() ? (_ref = {}, _ref[swiper.rtlTranslate ? 'right' : 'left'] = virtualData.offset + \"px\", _ref) : {\n top: virtualData.offset + \"px\"\n };\n return slides.filter(function (child, index) {\n return index >= virtualData.from && index <= virtualData.to;\n }).map(function (child) {\n return React.cloneElement(child, {\n swiper: swiper,\n style: style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils';\n\nfunction initSwiper(_ref, swiperParams) {\n var el = _ref.el,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n paginationEl = _ref.paginationEl,\n scrollbarEl = _ref.scrollbarEl;\n\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n if (swiperParams.navigation === true) {\n swiperParams.navigation = {};\n }\n\n swiperParams.navigation.nextEl = nextEl;\n swiperParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n if (swiperParams.pagination === true) {\n swiperParams.pagination = {};\n }\n\n swiperParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n if (swiperParams.scrollbar === true) {\n swiperParams.scrollbar = {};\n }\n\n swiperParams.scrollbar.el = scrollbarEl;\n }\n\n return new Swiper(el, swiperParams);\n}\n\nexport { initSwiper };","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect';\nvar SwiperSlide = forwardRef(function (_temp, externalRef) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$tag = _ref.tag,\n Tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n children = _ref.children,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? '' : _ref$className,\n swiper = _ref.swiper,\n zoom = _ref.zoom,\n virtualIndex = _ref.virtualIndex,\n rest = _objectWithoutPropertiesLoose(_ref, [\"tag\", \"children\", \"className\", \"swiper\", \"zoom\", \"virtualIndex\"]);\n\n var slideElRef = useRef(null);\n\n var _useState = useState('swiper-slide'),\n slideClasses = _useState[0],\n setSlideClasses = _useState[1];\n\n function updateClasses(swiper, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(function () {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return function () {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(function () {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n var slideData;\n\n if (typeof children === 'function') {\n slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate next') >= 0\n };\n }\n\n var renderChildren = function renderChildren() {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(\"\" + slideClasses + (className ? \" \" + className : '')),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren());\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","export default function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n strings.raw = raw;\n return strings;\n}","import {createGlobalStyle} from 'styled-components'\nimport styledNormalize from 'styled-normalize'\n\nimport {spacingUnit} from '../cssConstants/spacing'\nimport {weightNormal} from '../cssConstants/typography'\nimport {colorText} from '../cssConstants/colors'\n\nimport Museo300 from '../fonts/Museo300-Regular.woff'\nimport Museo700 from '../fonts/Museo700-Regular.woff'\nimport Belista from '../fonts/Belista.ttf'\n\nexport const GlobalStyle = createGlobalStyle`\n ${styledNormalize};\n\n @font-face {\n font-family: 'Museo 300';\n font-style: normal;\n font-weight: normal;\n src: local(\"Museo 300\"), local(\"Museo-300\"), url(${Museo300}) format(\"woff\");\n }\n\n @font-face {\n font-family: 'Museo 700';\n font-style: normal;\n font-weight: normal;\n src: local(\"Museo 700\"), local(\"Museo-700\"), url(${Museo700}) format(\"woff\");\n }\n\n @font-face {\n font-family: 'Belista';\n font-style: normal;\n font-weight: normal;\n src: local(\"Belista\"), local(\"Belista\"), url(${Belista}) format('truetype');\n }\n\n html {\n font-size: 16px;\n font-family: Lato, Helvetica, system, -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Ubuntu\", \"Roboto\", \"Oxygen\", \"Cantarell\", \"Open Sans\", \"Fira Sans\", \"Droid Sans\", \"Arial\", sans-serif;\n font-weight: ${weightNormal};\n line-height: ${spacingUnit};\n color: ${colorText};\n min-height: 100%;\n\n position: relative;\n\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n scroll-behavior: smooth;\n }\n\n body {\n margin-left: revert;\n margin-right: revert;\n }\n\n #___gatsby {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n }\n`\n","export const fontSizeBase = '1rem'\nexport const fontSizeBig = '1.25rem'\nexport const fontSizeSmall = '.875rem'\nexport const fontSizeTiny = '.75rem'\nexport const fontSizeMin = '.625rem'\n\nexport const weightThin = 300\nexport const weightNormal = 400\nexport const weightBold = 700\n","export const spacingUnit = 1.5\nexport const spacingMin = spacingUnit / 6\nexport const spacingTiny = spacingUnit / 3\nexport const spacingSmall = spacingUnit / 2\nexport const spacingMedium = spacingUnit / 1.5\nexport const spacingMediumDouble = spacingMedium * 2\nexport const spacingBig = spacingUnit * 2\nexport const spacingLarge = spacingUnit * 4\n\nexport const minWidthSupported = 320\n\nconst breakpointMobile = 432\nconst breakpointMobileLarge = 544\nconst breakpointTablet = 767\nconst breakpointDesktop = 992\nconst breakpointDesktopLarge = 1200\n\nexport const widthMainContent = 768\n\nexport const maxWidthMobile = `${breakpointMobile}px`\nexport const minWidthMobileLarge = `${breakpointMobile + 1}px`\nexport const maxWidthMobileLarge = `${breakpointMobileLarge}px`\nexport const minWidthTablet = `${breakpointMobileLarge + 1}px`\nexport const maxWidthTablet = `${breakpointTablet}px`\nexport const minWidthDesktop = `${breakpointTablet + 1}px`\nexport const maxWidthDesktop = `${breakpointDesktop}px`\nexport const minWidthDesktopLarge = `${breakpointDesktop + 1}px`\nexport const maxWidthDesktopLarge = `${breakpointDesktopLarge}px`\n","export const colorWhite = '#fff'\nexport const colorGrayLighter = '#fafafa'\nexport const colorGrayLight = '#ddd'\nexport const colorGrayWarm = '#9b9b9b'\nexport const colorBlack = '#4a4a4a'\nexport const colorBlue = '#06aeed'\nexport const colorGreen = '#547107'\nexport const colorRed = '#e3343b'\nexport const colorWine = '#5A0D46'\n\nexport const colorText = colorBlack\nexport const colorPrimary = colorBlue\nexport const colorBorder = colorGrayLight\n","import styled from 'styled-components'\n\nimport {containerMixin} from '../../cssMixins/container'\n\nexport const Container = styled.div`\n ${p => containerMixin(p.width)};\n`\n","import {css} from 'styled-components'\n\nexport const containerMixin = (width = '1200px') => css`\n margin-right: auto;\n margin-left: auto;\n max-width: ${width};\n`\n","import React from 'react'\nimport styled from 'styled-components'\nimport {FaEnvelope, FaFacebook, FaInstagram, FaWhatsapp} from 'react-icons/fa'\n\nimport {useStaticQuery, graphql} from 'gatsby'\nimport Img from 'gatsby-image'\nimport {Band} from '../../components/Band'\nimport {spacingUnit} from '../../cssConstants/spacing'\nimport {fontSizeSmall} from '../../cssConstants/typography'\nimport {colorWine, colorWhite, colorGrayWarm} from '../../cssConstants/colors'\n\nconst BandFooter = styled(Band)`\n text-align: center;\n padding-top: ${spacingUnit}rem;\n padding-bottom: ${spacingUnit}rem;\n font-size: ${fontSizeSmall};\n border-top: 2px solid ${colorWine};\n background-color: ${colorGrayWarm};\n`\n\nconst Element = styled.div`\n color: ${colorWhite};\n text-align: center;\n margin-top: ${spacingUnit}rem;\n\n a {\n color: inherit;\n font-size: 2.5rem;\n &:not(:last-child) {\n margin-right: ${spacingUnit}rem;\n }\n }\n`\n\nconst enhance = x => x\n\nexport const Footer = () => {\n const data = useStaticQuery(graphql`\n query {\n file(relativePath: {eq: \"logo-lbt-dark.png\"}) {\n childImageSharp {\n fixed(width: 140) {\n ...GatsbyImageSharpFixed_noBase64\n }\n }\n }\n }\n `)\n return (\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n © 2020 LE BON TON CATERING\n
\n L'OSPITALITÀ È KOSHER.\n
\n
\n King David Catering SRL\n
\n P.I e C.F 0425148100\n
\n
\n
\n )\n}\n\nFooter.displayName = 'Footer'\nFooter.propTypes = {}\n\nexport default enhance(Footer)\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeFunction from \"@babel/runtime/helpers/esm/isNativeFunction\";\nimport construct from \"@babel/runtime/helpers/esm/construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import \"core-js/modules/es.array.reduce\";\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n}; // based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\n\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbols.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbols.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\n\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n\n var variableValue;\n /* eslint-disable */\n\n /* istanbul ignore next */\n\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n\n throw new PolishedError(74);\n} // @private\n\n\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n } // prettier-ignore\n\n\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n/**\n * Check if a string ends with something\n * @private\n */\n\n\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\n\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex);\n return matchedValue ? parseFloat(value) : value;\n}\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\n\nvar em = /*#__PURE__*/pxtoFactory('em');\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex$1);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\n\n\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 1.333;\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\n\nvar rem = /*#__PURE__*/pxtoFactory('rem');\nvar functionsMap = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction easeIn(functionName) {\n return functionsMap[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\n\nfunction easeInOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\n\nfunction easeOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\n\n\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\n\n\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\n\n\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[Symbol.iterator]();\n return it.next.bind(it);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\n\n\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n\n var obj = _step.value;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\n\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\n\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.match(dataURIRegex);\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings; // Error Handling\n\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n }; // Removes undefined fields for cleaner css object.\n\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\n\n\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\n\n\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\n\n\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject(), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\n\n\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nfunction _templateObject$1() {\n var data = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"]);\n\n _templateObject$1 = function _templateObject() {\n return data;\n };\n\n return data;\n}\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject$1(), position, shape, extent, colorStops.join(', '))\n };\n}\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\n\n\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n/* eslint-disable key-spacing */\n\n\nvar functionsMap$3 = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap$3[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\n\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n\n default:\n throw new PolishedError(59);\n }\n};\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\n\n\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsla\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor);\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor);\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\n\n\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\n\n\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\n\n\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\n\n\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n} // Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\n\n\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue = /*#__PURE__*/curry\n/* :: */\n(adjustHue);\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken = /*#__PURE__*/curry\n/* :: */\n(darken);\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate = /*#__PURE__*/curry\n/* :: */\n(desaturate);\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\n\n\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten = /*#__PURE__*/curry\n/* :: */\n(lighten);\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\n\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n }); // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * (parseFloat(weight) / 1.0) + color2.alpha * (1 - parseFloat(weight) / 1.0)\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix = /*#__PURE__*/curry\n/* :: */\n(mix);\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify = /*#__PURE__*/curry\n/* :: */\n(opacify);\nvar defaultLightReturnColor = '#000';\nvar defaultDarkReturnColor = '#fff';\n/**\n * Returns black or white (or optional light and dark return colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\n\nfunction readableColor(color, lightReturnColor, darkReturnColor, strict) {\n if (lightReturnColor === void 0) {\n lightReturnColor = defaultLightReturnColor;\n }\n\n if (darkReturnColor === void 0) {\n darkReturnColor = defaultDarkReturnColor;\n }\n\n if (strict === void 0) {\n strict = true;\n }\n\n var isLightColor = getLuminance(color) > 0.179;\n var preferredReturnColor = isLightColor ? lightReturnColor : darkReturnColor;\n\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n\n return isLightColor ? defaultLightReturnColor : defaultDarkReturnColor;\n}\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\n\n\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate = /*#__PURE__*/curry\n/* :: */\n(saturate);\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue = /*#__PURE__*/curry\n/* :: */\n(setHue);\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness = /*#__PURE__*/curry\n/* :: */\n(setLightness);\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation = /*#__PURE__*/curry\n/* :: */\n(setSaturation);\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade = /*#__PURE__*/curry\n/* :: */\n(shade);\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint = /*#__PURE__*/curry\n/* :: */\n(tint);\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff');\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')},\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize = /*#__PURE__*/curry\n/* :: */\n(transparentize);\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\n\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n } // Allow single or multiple animations passed\n\n\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\n\n\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\n\n\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\n\n\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\n\n\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\n\n\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\n\n\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\n\n\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap$1 = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap$1.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\n\n\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken as darken, curriedDesaturate as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten as lighten, linearGradient, margin, math, meetsContrastGuidelines, curriedMix as mix, modularScale, normalize, curriedOpacify as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate as saturate, curriedSetHue as setHue, curriedSetLightness as setLightness, curriedSetSaturation as setSaturation, curriedShade as shade, size, stripUnit, textInputs, timingFunctions, curriedTint as tint, toColorString, transitions, curriedTransparentize as transparentize, triangle, wordWrap };","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export const borderRadius = '0.25rem'\n","import {css} from 'styled-components'\n\nimport {borderRadius} from '../cssConstants/decorations'\nimport {fontSizeSmall, fontSizeTiny} from '../cssConstants/typography'\nimport {spacingMedium, spacingTiny} from '../cssConstants/spacing'\n\nconst fontSizeHash = {\n small: fontSizeSmall,\n tiny: fontSizeTiny,\n}\n\nexport const buttonMixin = css`\n display: inline-flex;\n white-space: nowrap;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n border: 1px solid transparent;\n border-radius: ${borderRadius};\n width: ${p => p.fluid && '100%'};\n\n transition-property: color, background-color, border-color, box-shadow;\n transition-duration: 0.3s;\n\n font-size: ${p => fontSizeHash[p.size]};\n\n padding: ${spacingTiny}rem ${spacingMedium}rem;\n\n &:focus,\n &:active:focus {\n outline: 0;\n }\n`\n\nexport const icons = css`\n display: none;\n font-family: 'Material Icons';\n`\n","import styled from 'styled-components'\nimport {darken, setLightness} from 'polished'\n\nimport {colorWine, colorWhite} from '../../cssConstants/colors'\nimport {weightBold} from '../../cssConstants/typography'\nimport {buttonMixin} from '../../cssMixins/buttons'\n\nexport const Button = styled.button`\n ${buttonMixin};\n flex-direction: column; /* iOS9 legacy support */\n align-items: center;\n justify-content: center;\n box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.2);\n\n background-color: ${colorWhite};\n color: ${colorWine};\n border-color: ${colorWine};\n font-weight: ${weightBold};\n\n &:hover {\n &,\n * {\n color: ${colorWhite};\n }\n background-color: ${darken(0.05, colorWine)};\n border-color: ${setLightness(0.4, colorWine)};\n }\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {Link} from 'gatsby'\nimport styled from 'styled-components'\nimport {useStaticQuery, graphql} from 'gatsby'\nimport Img from 'gatsby-image'\nimport {FaShoppingCart} from 'react-icons/fa'\nimport CookieConsent from 'react-cookie-consent'\n\nimport {GlobalStyle} from '../presentation/global'\nimport {Container} from '../components/Container'\nimport {Footer} from '../containers/Footer'\nimport {spacingUnit, spacingSmall, spacingTiny} from '../cssConstants/spacing'\nimport {colorWine, colorBlack, colorWhite} from '../cssConstants/colors'\nimport {Button} from '../components/Button'\n\nconst HeaderWrapper = styled.div`\n border-bottom: 1px solid ${colorWine};\n`\n\nconst Header = styled.header`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-right: ${spacingUnit}rem;\n padding-left: ${spacingUnit}rem;\n padding-top: ${spacingSmall}rem;\n padding-bottom: ${spacingSmall}rem;\n`\nconst Nav = styled.nav`\n display: flex;\n`\nconst HeaderLink = styled.a`\n text-decoration: none;\n ${Button} {\n ${'' /* margin-right: ${spacingUnit}rem; */}\n flex-direction: row;\n }\n\n svg {\n margin-left: ${spacingTiny}rem;\n color: ${colorWine};\n }\n`\n\nconst Root = styled.div`\n ${'' /* background: #000; */}\n min-height: 100vh;\n`\n\nexport default function Layout({children}) {\n // const [open, setOpen] = useState(false)\n // const node = useRef()\n // useOnClickOutside(node, () => setOpen(false))\n\n const data = useStaticQuery(graphql`\n query {\n logoLebonton: file(relativePath: {eq: \"logo-lebonton.png\"}) {\n childImageSharp {\n fixed(width: 90) {\n ...GatsbyImageSharpFixed_noBase64\n }\n }\n }\n }\n `)\n return (\n \n \n \n
\n \n \n \n \n
\n
\n
\n {children}\n {/*
\n \n \n
*/}\n