{"version":3,"sources":["webpack:///./node_modules/gatsby-image/index.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/hash-navigation/hash-navigation.js","webpack:///./node_modules/swiper/esm/react/utils.js","webpack:///./node_modules/swiper/esm/react/params-list.js","webpack:///./node_modules/swiper/esm/react/loop.js","webpack:///./node_modules/swiper/esm/react/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:///./src/components/ui/Loader/styled.tsx","webpack:///./src/components/ui/Loader/Loader.tsx","webpack:///./src/components/ContentWrapper/styled.tsx","webpack:///./src/components/ContentWrapper/ContentWrapper.tsx","webpack:///./src/components/Hello/Hello.tsx","webpack:///./src/components/Portal/Portal.tsx","webpack:///./src/components/OurOffice/styled.tsx","webpack:///./src/components/OurOffice/OurOffice.tsx","webpack:///./src/components/ui/Box/styled.tsx","webpack:///./src/components/ui/Box/Box.tsx","webpack:///./src/components/ui/ReadMoreButton/ReadMoreButton.tsx","webpack:///./src/components/BiographyIntro/styled.tsx","webpack:///./src/components/BiographyIntro/BiographyIntro.tsx","webpack:///./src/components/AboutUs/AboutUs.tsx","webpack:///./src/components/OurExpertise/styled.ts","webpack:///./src/components/OurExpertise/OurExpertise.tsx","webpack:///./src/components/OurDepartments/styled.tsx","webpack:///./src/components/OurDepartments/OurDepartments.tsx","webpack:///./src/components/ui/Slider/styled.tsx","webpack:///./src/components/ui/Slider/Slider.tsx","webpack:///./src/pages/index.tsx","webpack:///./src/images/icons/cross.svg","webpack:///./src/components/ui/Title/Title.tsx","webpack:///./src/components/ui/LineShape/LineShape.tsx","webpack:///./src/components/ui/LineShape/index.tsx","webpack:///./src/components/TopSection/styled.tsx","webpack:///./src/components/TopSection/TopSection.tsx","webpack:///./src/components/ui/Paragraph/index.tsx","webpack:///./src/components/ui/Paragraph/Paragraph.tsx"],"names":["_interopRequireDefault","require","exports","__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","isObject","obj","constructor","extend","keys","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","children","childNodes","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Date","screen","setTimeout","clearTimeout","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","toString","e","_construct","Parent","args","Class","a","apply","instance","Function","arguments","_wrapNativeSuper","_cache","Map","undefined","fn","indexOf","TypeError","Wrapper","value","enumerable","writable","configurable","Dom7","_Array","subClass","superClass","items","proto","self","ReferenceError","_assertThisInitialized","defineProperty","arrayFlat","arr","res","arrayFilter","filter","$","selector","context","html","trim","toCreate","tempParent","innerHTML","i","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","split","shortcut","name","_len","_key","trigger","on","Methods","addClass","classes","classNames","c","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","hasClass","_len4","_key4","contains","toggleClass","_len3","_key3","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","duration","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","j","events","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","splice","_len9","_key9","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","parseFloat","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","css","_prop","each","index","text","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","find","foundElements","found","removeChild","methodName","browser","nextTick","delay","now","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","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","test","calcBrowser","swiper","resize","resizeHandler","destroyed","initialized","emit","orientationChangeHandler","init","destroy","_extends","assign","source","hasOwnProperty","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","noSwiping","noSwipingSelector","noSwipingClass","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","onClick","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","module","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","method","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","slice","eventsArray","update","clientWidth","clientHeight","parseInt","Number","isNaN","size","swiperSize","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","slidesForMargin","slideEl","slideIndex","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","replace","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","x","y","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","t","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","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","start","move","end","passive","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","innerHeight","sort","b","_points$i","innerWidth","wasLocked","lastSlidePosition","addClasses","suffixes","suffix","removeClasses","images","loadImage","imageEl","srcset","checkForComplete","onReady","onload","onerror","imagesLoaded","imagesToLoad","extendedDefaults","Swiper","moduleParamName","swiperParams","defaults","passedParams","eventName","swipers","containerEl","newParams","desktop","shadowRoot","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","protoProps","staticProps","getSlideClasses","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","Navigation","_swiper$navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","toEdge","fromEdge","click","isHidden","_swiper$navigation3","HashNavigation","onHashCange","newHash","setHash","hashNavigation","watchState","slideChange","needsNavigation","needsPagination","pagination","needsScrollbar","scrollbar","uniqueClasses","unique","paramsList","calcLoopedSlides","slidesPerViewParams","useIsomorphicLayoutEffect","deps","externalElRef","_ref$tag","tag","_ref$wrapperTag","wrapperTag","WrapperTag","onSwiper","rest","excluded","sourceKeys","_objectWithoutPropertiesLoose","_useState","containerClasses","setContainerClasses","_useState2","virtualData","setVirtualData","_useState3","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","allowedParams","getParams","restProps","_getChildren","slots","processChildren","Children","toArray","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","rotate","keyframes","Spinner","styled","div","slim","theme","palette","primary","center","devices","medium","Loader","dimensions","spacingBase10","contentMaxWidthBig","contentMaxWidthMedium","large","ContentWrapper","Hello","useStaticQuery","wpPage","pageContent","pageTitle","description","subtitle","useHelloContent","Heading","TopSection","modalRoot","Portal","elRef","useRef","useEffect","createPortal","GalleryWrapper","section","xlarge","ModalWrapper","Modal","IconClose","ui","ImageClickMask","OurOfficeTitle","Title","fontWeight","bold","OurOfficeParagraph","WhiteParagraph","Gallery","ul","GalleryItem","li","xsmall","ArrowPrev","ArrowNext","OurOfficeWrapper","OurOffice","windowSize","useWindowSize","imageMaskRef","arrowPrev","arrowNext","useState","imageDimensions","setImageDimensions","coverIndex","setCoverIndex","useToggle","isModalOpen","openModal","setOn","closeModal","setOff","useOuterClick","subtitleOurOffice","descriptionOurOffice","allWpMediaItem","nodes","naturalWidth","naturalHeight","localFile","childImageSharp","handleCoverChange","aria-label","CrossIcon","article","gradientTextStyles","fontSize","h2","Description","h3","Box","ReadMoreButton","Button","AboutUsReadMoreButton","ImageWrapper","SectionWithImage","reversed","TextWrapper","baseMobile","light","base","Statistics","Subtitle","List","label","gradient","JoinUsWrapper","getImageData","imageName","BiographyIntro","useLocation","biographyIntroContent","aboutUs","titleBio","subtitleBio","descriptionBio","readMore","common","biography","sectionSubtitle1","sectionSubtitle","sectionTitle1","statBoxDescription1","statBoxDescription2","statBoxDescription3","statBoxTitle1","statBoxTitle2","statBoxTitle3","offer1","offer2","offer3","offer4","offer5","offer6","useBiographyIntroContent","isAdditionalContentVisible","toggleAdditionalContent","hideAdditionalContent","additionalContentRef","useScrollToAdditionalContent","React","JoinUsButton","AboutUs","WeAreExpertsInTitle","ExpertiseItemTitle","regular","FirstExpertiseItemTitle","ExpertiseItemDescriptionParagraph","Paragraph","ExpertiseReadMoreWrapper","OurExpertiseHeader","OurExpertise","weAreExpertsIn","firstExpertise","firstExpertiseDescription","secondExpertise","secondExpertiseDescription","ourExpertiseContent","ourExpertise","DepartmentsWrapper","OurDepartmentsReadMoreButton","SectionTitle","titleMobile","ItemsWrapper","SectionDesc","JoinUsTitle","OurDepartmentsHeading","DepartmentItemWrapper","DepartmentTitleWrapper","secondary","DepartmentTitle","contentText","labelBig","DepartmentArrow","showDesc","DepartmentDescWrapper","lightDark","TopSectionWrapper","OuterWrapper","OurDepartments","ourDepartments","exploreOurCoreDepartments","exploreOurCoreDepartmentsDescription","joinUsTitle","departments","departmentNumber1","departmentNumber1Description","departmentNumber2","departmentNumber2Description","departmentNumber3","departmentNumber3Description","departmentNumber4","departmentNumber4Description","departmentNumber5","departmentNumber5Description","departmentNumber6","departmentNumber6Description","departmentNumber7","departmentNumber7Description","departmentNumber8","departmentNumber8Description","departmentNumber9","departmentNumber9Description","departmentNumber10","departmentNumber10Description","departmentNumber11","departmentNumber11Description","departmentNumber12","departmentNumber12Description","useOurDepartmentsContent","expandedDepartmentIndex","setExpandedDepartmentIndex","LoaderWrapper","SwiperCore","Slider","isLoading","setIsLoading","HASHES","hello","navigate","data-hash","IndexPage","Layout","SEO","LineShape"],"mappings":"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","file":"component---src-pages-index-tsx-24ee61d8eefbfc66b6bf.js","sourcesContent":["\"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;","/**\n * SSR Window 3.0.0-alpha.4\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 20, 2020\n */\n\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\n\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n\n if (src === void 0) {\n src = {};\n }\n\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\n\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\n};\n\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","/**\n * Dom7 3.0.0-alpha.9\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: August 25, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n/* eslint-disable no-proto */\n\n\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\n\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transition = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = Methods[methodName];\n});\nexport default $;","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;\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.screen.width - edgeSwipeThreshold)) {\n return;\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n nested: false,\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/* eslint no-param-reassign: \"off\" */\n\n\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el; // Swiper Instance\n\n var swiper = this;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Find el\n\n var $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n var swipers = [];\n $el.each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper; // Find Wrapper\n\n var $wrapperEl;\n\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n $wrapperEl.children = function (options) {\n return $el.children(options);\n };\n } else {\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n } // Extend Swiper\n\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n swiper.emit('_slideClass', slideEl, classNames);\n });\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.init = function init() {\n var swiper = this;\n if (swiper.initialized) return;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n var handlers = [];\n self.eventsListeners[event].forEach(function (eventHandler) {\n handlers.push(eventHandler);\n });\n handlers.forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.width !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { getWindow } from 'ssr-window';\nimport { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n var window = getWindow();\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.snapGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(\"margin-\" + (swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = window.getComputedStyle(slide[0], null);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n var width = parseFloat(slideStyles.getPropertyValue('width') || 0);\n var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left') || 0);\n var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right') || 0);\n var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left') || 0);\n var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right') || 0);\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n } else {\n var height = parseFloat(slideStyles.getPropertyValue('height') || 0);\n var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top') || 0);\n var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom') || 0);\n var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top') || 0);\n var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom') || 0);\n\n var _boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (_boxSizing && _boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n var _slide$2 = slide[0],\n clientHeight = _slide$2.clientHeight,\n offsetHeight = _slide$2.offsetHeight;\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom + (offsetHeight - clientHeight);\n }\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = slideSize + \"px\";\n } else {\n slides[i].style.height = slideSize + \"px\";\n }\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });else $wrapperEl.css({\n height: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({\n marginLeft: spaceBetween + \"px\"\n });else slides.filter(slidesForMargin).css({\n marginRight: spaceBetween + \"px\"\n });\n } else slides.filter(slidesForMargin).css({\n marginBottom: spaceBetween + \"px\"\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n } // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoints(breakpoints) {\n var window = getWindow(); // Get breakpoint for window width\n\n if (!breakpoints) return undefined;\n var breakpoint = false;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = window.innerHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","export default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device;\n var suffixes = [];\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n\n if (rtl) {\n suffixes.push('rtl');\n }\n\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n\n if (device.android) {\n suffixes.push('android');\n }\n\n if (device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach(function (suffix) {\n classNames.push(params.containerModifierClass + suffix);\n });\n $el.addClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","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\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar HashNavigation = {\n onHashCange: function onHashCange() {\n var swiper = this;\n var document = getDocument();\n swiper.emit('hashChange');\n var newHash = document.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children(\".\" + swiper.params.slideClass + \"[data-hash=\\\"\" + newHash + \"\\\"]\").index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n var window = getWindow();\n var document = getDocument();\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, \"#\" + swiper.slides.eq(swiper.activeIndex).attr('data-hash') || '');\n swiper.emit('hashSet');\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init: function init() {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n swiper.hashNavigation.initialized = true;\n var hash = document.location.hash.replace('#', '');\n\n if (hash) {\n var speed = 0;\n\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n }\n};\nexport default {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n hashNavigation: _extends({\n initialized: false\n }, HashNavigation)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n }\n }\n};","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n}\n\nfunction extend(target, src) {\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nvar paramsList = ['init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'nested', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_freeModeMomentum', '_freeModeMomentumRatio', '_freeModeMomentumBounce', '_freeModeMomentumBounceRatio', '_freeModeMomentumVelocityRatio', '_freeModeSticky', '_freeModeMinimumVelocity', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_slidesPerColumn', '_slidesPerColumnFill', '_slidesPerGroup', '_slidesPerGroupSkip', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_watchSlidesVisibility', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react'; // eslint-disable-next-line\n\nimport Swiper from '../../core';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n var slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n var breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n var breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n return React.cloneElement(child, {\n swiper: swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return React.cloneElement(child, {\n key: child.key + \"-duplicate-\" + index + \"-\" + position,\n className: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: swiperParams.slideClass + \" \" + swiperParams.slideBlankClass\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n var prependSlides = [];\n var appendSlides = [];\n modifiedSlides.forEach(function (child, index) {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [].concat(prependSlides, modifiedSlides, appendSlides);\n}\n\nexport { calcLoopedSlides, renderLoop };","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 };","import styled, { keyframes } from 'styles/styled';\n\nconst rotate = keyframes`\n 100% {\n -webkit-transform: rotate(360deg);\n }\n`;\n\ninterface Props {\n center: boolean;\n size: number;\n slim: boolean;\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Spinner = styled.div`\n height: 0;\n width: 0;\n padding: ${({ size }) => `${size}px`};\n border-width: ${({ slim }) => (slim ? 4 : 8)}px;\n border-style: solid;\n border-color: ${({ theme }) => theme.palette.primary};\n border-right-color: transparent;\n border-radius: 50%;\n animation: ${rotate} 1s infinite linear;\n margin: ${({ center }) => (center ? '0 auto' : '0')};\n\n @media ${({ theme }) => theme.devices.medium} {\n border-width: ${({ slim }) => (slim ? 6 : 12)}px;\n }\n`;\n","import React from 'react';\n\nimport { Spinner } from './styled';\n\ninterface Props {\n size?: number;\n center?: boolean;\n slim?: boolean;\n}\n\nconst Loader = ({ size = 65, center = false, slim = false }: Props) => {\n return ;\n};\n\nexport default Loader;\n","import styled from 'styles/styled';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n margin: 32px auto ${({ theme }) => theme.dimensions.spacingBase10 * 2}px;\n max-width: ${({ theme }) => theme.dimensions.contentMaxWidthBig}px;\n\n > section {\n max-width: ${({ theme }) => theme.dimensions.contentMaxWidthMedium}px;\n margin: 0 auto;\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n margin: 108px auto ${({ theme }) => theme.dimensions.spacingBase10 * 3}px;\n }\n\n @media ${({ theme }) => theme.devices.large} {\n > section {\n margin: 0 auto 0 162px;\n }\n }\n`;\n","import React, { ReactNode } from 'react';\n\nimport { Wrapper } from './styled';\n\ninterface Props {\n children: ReactNode;\n}\n\nconst ContentWrapper = ({ children }: Props) => {\n return {children};\n};\n\nexport default ContentWrapper;\n","import React from 'react';\nimport { graphql, useStaticQuery } from 'gatsby';\n\nimport ContentWrapper from 'components/ContentWrapper';\nimport TopSection from 'components/TopSection';\nimport { Heading } from 'components/ui/Heading';\n\nconst Hello = () => {\n const { pageTitle, description, subtitle, title } = useHelloContent();\n\n return (\n <>\n {pageTitle}\n \n \n \n \n );\n};\n\nexport default Hello;\n\nfunction useHelloContent() {\n const {\n wpPage: {\n pageContent: { pageTitle, description, subtitle, title },\n },\n } = useStaticQuery(\n graphql`\n query {\n wpPage(title: { in: \"Hello\" }) {\n pageContent {\n pageTitle\n description\n subtitle\n title\n }\n }\n }\n `,\n );\n\n return { pageTitle, description, subtitle, title };\n}\n","import React, { useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nconst modalRoot =\n typeof document !== 'undefined' ? document.getElementById('portal') : null;\n\nconst Portal = ({ children }: any) => {\n const elRef = useRef(null);\n if (!elRef.current) {\n elRef.current =\n typeof document !== `undefined` ? document.createElement('div') : null;\n }\n\n useEffect(() => {\n modalRoot?.appendChild(elRef.current);\n return () => modalRoot?.removeChild(elRef.current);\n }, []);\n\n if (!elRef.current) {\n return null;\n }\n\n return createPortal(
{children}
, elRef.current);\n};\n\nexport default Portal;\n","import styled from 'styles/styled';\n\nimport Title from 'components/ui/Title';\nimport { WhiteParagraph } from 'components/ui/Paragraph/Paragraph';\n\nexport const GalleryWrapper = styled.section`\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n @media ${({ theme }) => theme.devices.xlarge} {\n margin-bottom: 80px;\n }\n`;\n\nexport const ModalWrapper = styled.div`\n display: block;\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.7);\n z-index: 2;\n`;\n\nexport const Modal = styled.div`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n margin: 40px 50px;\n overflow: hidden;\n`;\n\nexport const IconClose = styled.button`\n background: transparent;\n position: absolute;\n top: 20px;\n right: 20px;\n z-index: 1;\n outline: 0;\n cursor: pointer;\n transition: ${({ theme }) => theme.ui.transition('opacity')};\n\n &:hover {\n opacity: ${({ theme }) => theme.ui.opacity()};\n }\n\n img {\n width: 20px;\n height: 20px;\n }\n`;\n\nexport const ImageClickMask = styled.div<{ width: number; height: number }>`\n width: ${({ width }) => `${width}px`};\n height: ${({ height }) => `${height}px`};\n position: absolute;\n top: 50%;\n bottom: 0;\n left: 50%;\n right: 0;\n transform: translate(-50%, -50%);\n background-color: transparent;\n z-index: 1;\n`;\n\nexport const OurOfficeTitle = styled(Title)`\n font-weight: ${({ theme }) => theme.fontWeight.bold};\n margin-left: 0;\n margin-bottom: ${({ theme }) => theme.dimensions.spacingBase10 * 1.5}px;\n letter-spacing: 0.23px;\n\n @media ${({ theme }) => theme.devices.medium} {\n text-align: center;\n }\n`;\n\nexport const OurOfficeParagraph = styled(WhiteParagraph)`\n max-width: 680px;\n margin: 5px auto 30px auto;\n letter-spacing: 0.14px;\n line-height: 1.47;\n @media ${({ theme }) => theme.devices.medium} {\n text-align: center;\n }\n`;\n\nexport const Gallery = styled.ul`\n list-style-type: none;\n display: grid;\n grid-gap: 30px;\n grid-template-columns: repeat(1, 1fr);\n\n @media ${({ theme }) => theme.devices.medium} {\n grid-gap: 20px;\n grid-template-columns: repeat(5, 1fr);\n }\n`;\n\nexport const GalleryItem = styled.li`\n cursor: pointer;\n margin: 0 auto;\n width: 100%;\n height: 100%;\n max-width: 200px;\n max-height: 200px;\n clip-path: polygon(\n 0% 25%,\n 25% 0%,\n 100% 0%,\n 100% 10%,\n 100% 80%,\n 75% 100%,\n 0 100%,\n 0% 75%\n );\n\n @media ${({ theme }) => theme.devices.xsmall} {\n max-width: 300px;\n max-height: 300px;\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n max-width: 200px;\n max-height: 200px;\n }\n`;\n\nexport const ArrowPrev = styled.div`\n top: 50%;\n left: 30px;\n`;\n\nexport const ArrowNext = styled.div`\n top: 50%;\n right: 30px;\n`;\n","import React, { useState, useRef, useEffect } from 'react';\nimport styled from 'styles/styled';\nimport { useStaticQuery, graphql } from 'gatsby';\nimport Img from 'gatsby-image';\n\nimport { useOuterClick, useToggle, useWindowSize } from 'hooks';\nimport CrossIcon from 'images/icons/cross.svg';\n\nimport Portal from 'components/Portal';\n\nimport {\n GalleryWrapper,\n ModalWrapper,\n Modal,\n IconClose,\n ImageClickMask,\n OurOfficeTitle,\n OurOfficeParagraph,\n Gallery,\n GalleryItem,\n ArrowNext,\n ArrowPrev,\n} from './styled';\n\nconst getContainedSize = (img: HTMLImageElement) => {\n const ratio = img.naturalWidth / img.naturalHeight || 0;\n let width = img.height * ratio;\n let { height } = img;\n if (width > img.width) {\n width = img.width;\n height = img.width / ratio;\n }\n return { width: Math.max(width, img.width), height };\n};\n\ntype Dimensions = {\n width: number;\n height: number;\n};\n\nconst OurOfficeWrapper = styled.div`\n margin-top: 48px;\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-top: 160px;\n }\n`;\n\nconst OurOffice = () => {\n const windowSize = useWindowSize();\n const imageMaskRef = useRef(null);\n const imageRef = useRef();\n const arrowPrev = useRef();\n const arrowNext = useRef();\n const [imageDimensions, setImageDimensions] = useState({\n width: 0,\n height: 0,\n });\n const [coverIndex, setCoverIndex] = useState(0);\n const { on: isModalOpen, setOn: openModal, setOff: closeModal } = useToggle();\n\n useOuterClick(imageMaskRef, (e: any) => {\n if (e.target === arrowPrev.current || e.target === arrowNext.current)\n return null;\n return closeModal();\n });\n\n const {\n wpPage: {\n pageContent: { subtitleOurOffice, descriptionOurOffice },\n },\n allWpMediaItem: { nodes: images },\n } = useStaticQuery(\n graphql`\n query {\n wpPage(title: { in: \"About Us\" }) {\n pageContent {\n subtitleOurOffice\n descriptionOurOffice\n }\n }\n allWpMediaItem(filter: { title: { regex: \"/our-office/\" } }) {\n nodes {\n localFile {\n id\n childImageSharp {\n fluid(quality: 80) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n }\n }\n `,\n );\n\n useEffect(() => {\n if (!isModalOpen) return;\n const dimensions = getContainedSize(imageRef?.current?.imageRef.current);\n setImageDimensions({ width: dimensions.width, height: dimensions.height });\n }, [isModalOpen, coverIndex]);\n\n const handleCoverChange = (index: number) => {\n setCoverIndex(index);\n openModal();\n };\n return (\n \n {subtitleOurOffice}\n {descriptionOurOffice}\n\n \n \n {(images as Array).map(\n (\n {\n localFile: {\n id,\n childImageSharp: { fluid },\n },\n },\n index,\n ) => (\n \n (windowSize?.width ?? 0) >= 450 && handleCoverChange(index)\n }>\n \n \n ),\n )}\n \n {isModalOpen && (\n \n \n \n \"close\"\n \n {coverIndex !== 0 && (\n setCoverIndex(coverIndex - 1)}\n />\n )}\n {coverIndex !== images.length - 1 && (\n setCoverIndex(coverIndex + 1)}\n />\n )}\n \n \n \n \n \n \n )}\n \n \n );\n};\n\nexport default OurOffice;\n","import styled from 'styles/styled';\nimport { gradientTextStyles } from 'components/ui/Heading';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const Wrapper = styled.article`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n h2 {\n ${gradientTextStyles};\n font-weight: ${({ theme }) => theme.fontWeight.bold};\n font-size: ${({ theme }) => theme.fontSize.title};\n margin-bottom: 1px;\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-bottom: ${({ theme }) => theme.dimensions.spacingBase10 * 2}px;\n }\n }\n\n h3 {\n text-align: center;\n max-width: 180px;\n @media ${({ theme }) => theme.devices.medium} {\n max-width: 100%;\n }\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n h3 {\n align-self: center;\n ::first-letter {\n text-transform: capitalize;\n }\n }\n\n h2 {\n font-size: ${({ theme }) => theme.fontSize.title};\n }\n }\n`;\n\nexport const Title = styled.h2`\n letter-spacing: -1px;\n`;\n\nexport const Description = styled.h3`\n line-height: normal;\n`;\n","import React from 'react';\n\nimport { Wrapper, Title, Description } from './styled';\n\ninterface Props {\n title?: string;\n description?: string;\n}\n\nconst Box = ({ title, description }: Props) => {\n return (\n \n {title && {title}}\n {description && {description}}\n \n );\n};\n\nexport default Box;\n","import styled from 'styles/styled';\nimport { Button } from 'components/ui/Button';\n\n// eslint-disable-next-line\nconst ReadMoreButton = styled(Button)`\n margin-top: 60px;\n font-size: 12px;\n letter-spacing: 1.33px;\n line-height: normal;\n margin: 44px auto;\n padding: 9px 38px;\n\n @media ${({ theme }) => theme.devices.medium} {\n font-size: 15px;\n letter-spacing: 1.67px;\n margin: 34px auto 0 auto;\n padding: 12px 47px;\n }\n`;\n\nexport default ReadMoreButton;\n","import styled from 'styles/styled';\n\nimport ReadMoreButton from 'components/ui/ReadMoreButton';\nimport { useToggle } from 'hooks';\n\nexport const AboutUsReadMoreButton = styled(ReadMoreButton)<{\n isAdditionalContentVisible: ReturnType['on'];\n}>`\n margin-bottom: 0px;\n`;\n\nexport const Wrapper = styled.div`\n margin-top: 85px;\n\n > div {\n padding: 0;\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-top: 320px;\n }\n\n @media ${({ theme }) => theme.devices.xlarge} {\n padding: 0;\n }\n`;\n\nexport const ImageWrapper = styled.div`\n @media ${({ theme }) => theme.devices.large} {\n max-width: 472px;\n }\n`;\n\nexport const SectionWithImage = styled.section<{ reversed?: boolean }>`\n display: grid;\n margin-bottom: 42px;\n max-width: calc(472px + 50px + 405px);\n grid-gap: 26px;\n margin-left: auto;\n margin-right: auto;\n\n ${ImageWrapper} {\n clip-path: polygon(\n 0% 25%,\n 25% 0%,\n 100% 0%,\n 100% 10%,\n 100% 80%,\n 75% 100%,\n 0 100%,\n 0% 75%\n );\n }\n\n @media ${({ theme }) => theme.devices.large} {\n grid-gap: 50px;\n grid-template-columns: ${({ reversed }) =>\n reversed ? '1fr 472px' : '472px 1fr'};\n margin-bottom: 60px;\n\n ${ImageWrapper} {\n grid-column: ${({ reversed }) => reversed && '2'};\n grid-row: 1;\n }\n }\n`;\n\nexport const TextWrapper = styled.article`\n display: flex;\n flex-direction: column;\n justify-content: center;\n max-width: 405px;\n margin-left: auto;\n margin-right: auto;\n\n h2 {\n align-self: flex-start;\n margin-bottom: ${({ theme }) => theme.dimensions.spacingBase10}px;\n font-weight: bold;\n }\n\n h4 {\n font-size: ${({ theme }) => theme.fontSize.baseMobile};\n line-height: 1.5;\n letter-spacing: 0.14px;\n color: ${({ theme }) => theme.palette.light};\n\n @media ${({ theme }) => theme.devices.medium} {\n font-size: ${({ theme }) => theme.fontSize.base};\n }\n }\n\n button {\n align-self: flex-start;\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n h2 {\n margin-bottom: ${({ theme }) => theme.dimensions.spacingBase10 * 2}px;\n }\n\n h3 {\n margin-bottom: ${({ theme }) => theme.dimensions.spacingBase10 * 2}px;\n }\n }\n`;\n\nexport const Statistics = styled.section`\n position: relative;\n display: grid;\n grid-gap: 36px;\n padding: 0 40px;\n margin-bottom: 52px;\n max-width: calc(472px + 50px + 405px);\n margin-left: auto;\n margin-right: auto;\n\n article {\n :nth-child(2) {\n h2 {\n letter-spacing: 0.44px;\n }\n }\n\n :nth-child(1) {\n h2 {\n letter-spacing: -5px;\n padding-right: 3px;\n }\n }\n }\n\n @media ${({ theme }) => theme.devices.large} {\n grid-template-columns: 1.1fr 1fr 1fr;\n padding: 0;\n margin-bottom: ${({ theme }) => theme.dimensions.spacingBase10 * 16}px;\n }\n`;\n\nexport const Subtitle = styled.h2`\n font-weight: ${({ theme }) => theme.fontWeight.bold};\n margin: ${({ theme }) => theme.dimensions.spacingBase10}px 0;\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-bottom: ${({ theme }) => theme.dimensions.spacingBase10 * 2}px;\n }\n`;\n\nexport const List = styled.ul`\n li {\n position: relative;\n color: ${({ theme }) => theme.palette.light};\n font-size: ${({ theme }) => theme.fontSize.label};\n letter-spacing: 0.13px;\n line-height: 18px;\n padding-left: ${({ theme }) => theme.dimensions.spacingBase10 * 3}px;\n font-size: ${({ theme }) => theme.fontSize.baseMobile};\n\n &:not(:last-child) {\n margin-bottom: ${({ theme }) => theme.dimensions.spacingBase10 * 1.5}px;\n }\n\n &:before {\n content: '';\n position: absolute;\n top: 6px;\n left: 14.5px;\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: ${({ theme }) => theme.gradient.primary};\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n font-size: ${({ theme }) => theme.fontSize.base};\n letter-spacing: 0.23px;\n line-height: 22px;\n\n &:before {\n top: 7.5px;\n }\n }\n }\n`;\n\nexport const JoinUsWrapper = styled.div`\n width: 124px;\n margin: 20px auto 0 auto;\n @media ${({ theme }) => theme.devices.large} {\n display: block;\n margin: 25px 0 0;\n width: 170px;\n }\n`;\n","import React from 'react';\nimport { useStaticQuery, graphql } from 'gatsby';\nimport { useLocation } from '@reach/router';\n\nimport ContentWrapper from 'components/ContentWrapper';\nimport TopSection from 'components/TopSection';\nimport Img from 'gatsby-image';\nimport JoinUsButton from 'components/JoinUsButton';\nimport OurOffice from 'components/OurOffice';\nimport Box from 'components/ui/Box';\n\nimport { useToggle, useScrollToAdditionalContent, useWindowSize } from 'hooks';\n\nimport {\n Wrapper,\n SectionWithImage,\n TextWrapper,\n ImageWrapper,\n Statistics,\n Subtitle,\n List,\n JoinUsWrapper,\n AboutUsReadMoreButton,\n} from './styled';\n\nconst getImageData = (images: any, imageName: string) =>\n images.filter(({ title }: { title: string }) => title.includes(imageName));\n\nconst BiographyIntro = () => {\n const { hash } = useLocation();\n\n const windowSize = useWindowSize();\n const width = windowSize?.width ?? 0;\n\n const biographyIntroContent = useBiographyIntroContent();\n\n const {\n on: isAdditionalContentVisible,\n toggle: toggleAdditionalContent,\n setOff: hideAdditionalContent,\n } = useToggle();\n\n const additionalContentRef = useScrollToAdditionalContent(\n isAdditionalContentVisible,\n 250,\n );\n\n // Fix autoresizing Swiper problem\n React.useEffect(() => hideAdditionalContent, [hash, hideAdditionalContent]);\n\n return (\n \n \n \n {biographyIntroContent.readMore}\n \n {isAdditionalContentVisible && (\n \n \n \n 992 ? '472px' : 'none',\n maxHeight: width > 992 ? '367px' : 'none',\n }}\n fluid={{\n ...getImageData(\n biographyIntroContent.images,\n 'biography1',\n )?.[0]?.localFile?.childImageSharp.fluid,\n aspectRatio: 1.28,\n }}\n />\n \n \n

\n {biographyIntroContent.sectionTitle1}\n

\n

{biographyIntroContent.sectionSubtitle1}

\n \n \n \n
\n
\n \n \n \n \n \n \n \n 992 ? '472px' : 'none',\n maxHeight: width > 992 ? '367px' : 'none',\n }}\n fluid={{\n ...getImageData(\n biographyIntroContent.images,\n 'biography2',\n )?.[0]?.localFile?.childImageSharp?.fluid,\n aspectRatio: 1.28,\n }}\n />\n \n \n {biographyIntroContent.sectionSubtitle}\n \n
  • {biographyIntroContent.offer1}
  • \n
  • {biographyIntroContent.offer2}
  • \n
  • {biographyIntroContent.offer3}
  • \n
  • {biographyIntroContent.offer4}
  • \n
  • {biographyIntroContent.offer5}
  • \n
  • {biographyIntroContent.offer6}
  • \n
    \n {width > 900 && (\n \n \n \n )}\n
    \n
    \n\n \n
    \n )}\n
    \n );\n};\n\nexport default BiographyIntro;\n\nfunction useBiographyIntroContent() {\n const biographyIntroContent = useStaticQuery(\n graphql`\n query {\n aboutUs: wpPage(title: { in: \"About Us\" }) {\n pageContent {\n titleBio\n subtitleBio\n descriptionBio\n }\n }\n\n common: wpPage(title: { in: \"Common\" }) {\n pageContent {\n readMore\n }\n }\n\n biography: wpPage(title: { in: \"Biography\" }) {\n pageContent {\n sectionSubtitle1\n sectionSubtitle\n sectionTitle1\n statBoxDescription1\n statBoxDescription2\n statBoxDescription3\n statBoxTitle1\n statBoxTitle2\n statBoxTitle3\n offer1\n offer2\n offer3\n offer4\n offer5\n offer6\n }\n }\n\n images: allWpMediaItem(filter: { title: { regex: \"/biography/\" } }) {\n nodes {\n title\n localFile {\n name\n childImageSharp {\n fluid(maxWidth: 472, quality: 80) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n }\n }\n `,\n );\n\n const {\n titleBio,\n subtitleBio,\n descriptionBio,\n } = biographyIntroContent.aboutUs.pageContent;\n\n const { readMore } = biographyIntroContent.common.pageContent;\n\n const {\n sectionSubtitle1,\n sectionSubtitle,\n sectionTitle1,\n statBoxDescription1,\n statBoxDescription2,\n statBoxDescription3,\n statBoxTitle1,\n statBoxTitle2,\n statBoxTitle3,\n offer1,\n offer2,\n offer3,\n offer4,\n offer5,\n offer6,\n } = biographyIntroContent.biography.pageContent;\n\n const images = biographyIntroContent.images.nodes;\n\n return {\n titleBio,\n subtitleBio,\n descriptionBio,\n readMore,\n sectionSubtitle1,\n sectionSubtitle,\n sectionTitle1,\n statBoxDescription1,\n statBoxDescription2,\n statBoxDescription3,\n statBoxTitle1,\n statBoxTitle2,\n statBoxTitle3,\n offer1,\n offer2,\n offer3,\n offer4,\n offer5,\n offer6,\n images,\n };\n}\n","import React from 'react';\nimport { useStaticQuery, graphql } from 'gatsby';\n\nimport { Heading } from 'components/ui/Heading';\nimport BiographyIntro from 'components/BiographyIntro';\n\nconst AboutUs = () => {\n const pageTitle = useAboutUsPageTitle();\n\n return (\n <>\n {pageTitle}\n \n \n );\n};\n\nexport default AboutUs;\n\nfunction useAboutUsPageTitle(): string {\n const {\n wpPage: {\n pageContent: { pageTitle },\n },\n } = useStaticQuery(\n graphql`\n query {\n wpPage(title: { in: \"About Us\" }) {\n pageContent {\n pageTitle\n }\n }\n }\n `,\n );\n\n return pageTitle;\n}\n","import styled from 'styles/styled';\n\nimport Title from 'components/ui/Title';\nimport Paragraph from 'components/ui/Paragraph';\nimport { Heading } from 'components/ui/Heading';\n\nexport const WeAreExpertsInTitle = styled(Title)`\n margin-left: 0;\n font-weight: ${({ theme }) => theme.fontWeight.bold};\n text-align: left;\n\n @media ${({ theme }) => theme.devices.medium} {\n text-align: center;\n }\n`;\n\nexport const ExpertiseItemTitle = styled(Title)`\n margin-left: 0;\n margin-top: ${({ theme }) => theme.dimensions.spacingBase10 * 5}px;\n font-weight: ${({ theme }) => theme.fontWeight.regular};\n text-align: left;\n letter-spacing: 0.23px;\n @media ${({ theme }) => theme.devices.medium} {\n margin-top: ${({ theme }) => theme.dimensions.spacingBase10 * 7.5}px;\n }\n`;\n\nexport const FirstExpertiseItemTitle = styled(ExpertiseItemTitle)`\n margin-top: ${({ theme }) => theme.dimensions.spacingBase10 * 3}px;\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-top: ${({ theme }) => theme.dimensions.spacingBase10 * 7}px;\n }\n`;\n\nexport const ExpertiseItemDescriptionParagraph = styled(Paragraph)`\n line-height: 22.5px;\n color: ${({ theme }) => theme.palette.light};\n margin-top: ${({ theme }) => theme.dimensions.spacingBase10 * 1.5}px;\n`;\n\nexport const ExpertiseReadMoreWrapper = styled.div`\n margin-top: ${({ theme }) => theme.dimensions.spacingBase10 * 11}px;\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-top: ${({ theme }) => theme.dimensions.spacingBase10 * 31}px;\n margin-bottom: ${({ theme }) => theme.dimensions.spacingBase10 * 1.5}px;\n }\n`;\n\nexport const Wrapper = styled.div`\n margin-right: auto;\n padding-bottom: 50px;\n\n @media ${({ theme }) => theme.devices.medium} {\n padding-bottom: 70px;\n }\n`;\n\nexport const OurExpertiseHeader = styled(Heading)`\n margin-top: 40px;\n\n @media (min-width: 378px) {\n margin-top: 80px;\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-top: 55px;\n }\n`;\n","import React from 'react';\nimport { useLocation } from '@reach/router';\nimport { graphql, useStaticQuery } from 'gatsby';\n\nimport ContentWrapper from 'components/ContentWrapper';\nimport TopSection from 'components/TopSection';\nimport ReadMoreButton from 'components/ui/ReadMoreButton';\nimport { useToggle, useScrollToAdditionalContent } from 'hooks';\n\nimport {\n ExpertiseReadMoreWrapper,\n WeAreExpertsInTitle,\n ExpertiseItemTitle,\n FirstExpertiseItemTitle,\n ExpertiseItemDescriptionParagraph,\n Wrapper,\n OurExpertiseHeader,\n} from './styled';\n\nconst OurExpertise = () => {\n const { hash } = useLocation();\n\n const ourExpertiseContent = useOurExpertiseContent();\n\n const {\n on: isAdditionalContentVisible,\n toggle: toggleAdditionalContent,\n setOff: hideAdditionalContent,\n } = useToggle();\n\n const additionalContentRef = useScrollToAdditionalContent(\n isAdditionalContentVisible,\n 250,\n );\n\n // Fix autoresizing Swiper problem\n React.useEffect(() => hideAdditionalContent, [hash, hideAdditionalContent]);\n\n return (\n \n {ourExpertiseContent.pageTitle}\n \n \n \n\n \n {ourExpertiseContent.readMore}\n \n\n {isAdditionalContentVisible && (\n \n \n {ourExpertiseContent.weAreExpertsIn}\n \n\n \n {ourExpertiseContent.firstExpertise}\n \n \n {ourExpertiseContent.firstExpertiseDescription}\n \n\n \n {ourExpertiseContent.secondExpertise}\n \n \n {ourExpertiseContent.secondExpertiseDescription}\n \n \n )}\n \n );\n};\n\nexport default OurExpertise;\n\nfunction useOurExpertiseContent() {\n const {\n ourExpertise: {\n pageContent: {\n pageTitle,\n description,\n subtitle,\n title,\n weAreExpertsIn,\n firstExpertise,\n firstExpertiseDescription,\n secondExpertise,\n secondExpertiseDescription,\n },\n },\n common: {\n pageContent: { readMore },\n },\n } = useStaticQuery(\n graphql`\n query {\n ourExpertise: wpPage(title: { in: \"Our expertise\" }) {\n pageContent {\n pageTitle\n description\n subtitle\n title\n weAreExpertsIn\n firstExpertise\n firstExpertiseDescription\n secondExpertise\n secondExpertiseDescription\n }\n }\n\n common: wpPage(title: { in: \"Common\" }) {\n pageContent {\n readMore\n }\n }\n }\n `,\n );\n\n return {\n pageTitle,\n description,\n subtitle,\n title,\n readMore,\n weAreExpertsIn,\n firstExpertise,\n firstExpertiseDescription,\n secondExpertise,\n secondExpertiseDescription,\n };\n}\n","import styled from 'styles/styled';\n\nimport ReadMoreButton from 'components/ui/ReadMoreButton';\nimport { Heading } from 'components/ui/Heading';\nimport { WhiteParagraph } from 'components/ui/Paragraph/Paragraph';\n\nimport { useToggle } from 'hooks';\n\nexport const DepartmentsWrapper = styled.section`\n display: flex;\n flex-direction: column;\n margin-top: 0 !important;\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-top: 320px !important;\n }\n`;\n\nexport const OurDepartmentsReadMoreButton = styled(ReadMoreButton)<{\n isAdditionalContentVisible: ReturnType['on'];\n}>`\n margin-bottom: 110px;\n margin-top: 90px;\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-bottom: 0;\n margin-top: 58px;\n }\n`;\n\nexport const SectionTitle = styled.h2`\n font-weight: ${({ theme }) => theme.fontWeight.bold};\n letter-spacing: 0.23px;\n margin-bottom: 0;\n text-align: left;\n line-height: 1.23;\n font-size: ${({ theme }) => theme.fontSize.titleMobile};\n\n @media ${({ theme }) => theme.devices.medium} {\n font-size: ${({ theme }) => theme.fontSize.title};\n text-align: center;\n margin-bottom: 15px;\n }\n`;\n\nexport const ItemsWrapper = styled.div`\n padding-top: 35px;\n\n @media ${({ theme }) => theme.devices.medium} {\n padding-top: 100px;\n }\n`;\n\nexport const JoinUsWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin-top: 68px;\n padding-bottom: 65px;\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-top: 140px;\n }\n`;\n\nexport const SectionDesc = styled(WhiteParagraph)`\n text-align: center;\n display: none;\n\n @media ${({ theme }) => theme.devices.medium} {\n display: block;\n }\n`;\n\nexport const JoinUsTitle = styled.h3`\n text-align: left;\n font-size: ${({ theme }) => theme.fontSize.titleMobile};\n margin-bottom: 20px;\n line-height: normal;\n font-weight: bold;\n\n @media ${({ theme }) => theme.devices.medium} {\n font-size: ${({ theme }) => theme.fontSize.title};\n text-align: center;\n margin-bottom: 37px;\n }\n`;\n\nexport const OurDepartmentsHeading = styled(Heading)`\n > span {\n margin-left: 0;\n font-size: 38px;\n }\n\n margin-top: 40px;\n\n @media (min-width: 378px) {\n margin-top: 80px;\n }\n\n @media (min-width: 475px) {\n > span {\n font-size: 48px;\n }\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-top: 40px;\n > span {\n font-size: 110px;\n }\n }\n\n @media ${({ theme }) => theme.devices.large} {\n > span {\n font-size: 130px;\n }\n }\n`;\n\nexport const DepartmentItemWrapper = styled.div`\n display: flex;\n flex-direction: column;\n\n &:not(:first-child) {\n margin-top: 12px;\n @media ${({ theme }) => theme.devices.medium} {\n margin-top: 40px;\n }\n }\n`;\n\nexport const DepartmentTitleWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n padding-bottom: 15px;\n padding-top: 20px;\n border-bottom: 2px solid ${({ theme }) => theme.palette.secondary};\n cursor: pointer;\n\n @media ${({ theme }) => theme.devices.medium} {\n padding-bottom: 20px;\n }\n`;\n\nexport const DepartmentTitle = styled.h3`\n font-size: ${({ theme }) => theme.fontSize.contentText};\n line-height: 20px;\n font-weight: ${({ theme }) => theme.fontWeight.regular};\n\n @media ${({ theme }) => theme.devices.medium} {\n line-height: normal;\n font-size: ${({ theme }) => theme.fontSize.labelBig};\n }\n`;\n\nexport const DepartmentArrow = styled.div<{ showDesc?: boolean }>`\n margin-top: auto;\n margin-right: 3px;\n margin-bottom: ${({ showDesc }) => (showDesc ? '4px' : '8px')};\n width: 9.6px;\n height: 9.6px;\n transition: transform ease 0.3s;\n transform: ${({ showDesc }) =>\n showDesc ? 'rotate(45deg)' : 'rotate(-135deg)'};\n border-top: 1.6px solid ${({ theme }) => theme.palette.light};\n border-left: 1.6px solid ${({ theme }) => theme.palette.light};\n @media ${({ theme }) => theme.devices.medium} {\n margin-right: 25px;\n width: 12px;\n height: 12px;\n border-top-width: 2px;\n border-left-width: 2px;\n }\n`;\n\nexport const DepartmentDescWrapper = styled.div<{ showDesc?: boolean }>`\n max-height: ${({ showDesc }) => (showDesc ? '500px' : 0)};\n overflow: hidden;\n transition: max-height, padding ease 0.3s;\n font-size: ${({ theme }) => theme.fontSize.base};\n padding-top: ${({ showDesc }) => (showDesc ? '15px' : 0)};\n\n line-height: 1.5;\n letter-spacing: 0.14px;\n\n &&& p {\n color: ${({ theme }) => theme.palette.light};\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n &&& p {\n color: ${({ theme }) => theme.palette.lightDark};\n }\n padding-top: ${({ showDesc }) => (showDesc ? '20px' : 0)};\n }\n`;\n\nexport const TopSectionWrapper = styled.div`\n article {\n padding: 0;\n\n h2 {\n margin-left: 0;\n }\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n article {\n padding: 0 0 0 80px;\n }\n }\n @media ${({ theme }) => theme.devices.large} {\n margin: 20px 180px 0;\n }\n`;\n\nexport const OuterWrapper = styled.div`\n display: block;\n > div {\n > section {\n max-width: 928px;\n margin: 0 auto;\n }\n }\n`;\n","import React from 'react';\nimport { useLocation } from '@reach/router';\nimport { graphql, useStaticQuery } from 'gatsby';\n\nimport ContentWrapper from 'components/ContentWrapper';\nimport TopSection from 'components/TopSection';\nimport JoinUsButton from 'components/JoinUsButton';\nimport { WhiteParagraph } from 'components/ui/Paragraph/Paragraph';\nimport { useToggle, useScrollToAdditionalContent } from 'hooks';\nimport {\n DepartmentsWrapper,\n SectionTitle,\n ItemsWrapper,\n JoinUsWrapper,\n JoinUsTitle,\n OurDepartmentsReadMoreButton,\n OurDepartmentsHeading,\n DepartmentItemWrapper,\n DepartmentTitleWrapper,\n DepartmentTitle,\n DepartmentDescWrapper,\n DepartmentArrow,\n TopSectionWrapper,\n OuterWrapper,\n SectionDesc,\n} from './styled';\n\nconst OurDepartments = () => {\n const { hash } = useLocation();\n\n const {\n pageTitle,\n description,\n subtitle,\n title,\n readMore,\n departments,\n exploreOurCoreDepartments,\n exploreOurCoreDepartmentsDescription,\n joinUsTitle,\n } = useOurDepartmentsContent();\n\n const {\n on: isAdditionalContentVisible,\n toggle: toggleAdditionalContent,\n setOff: hideAdditionalContent,\n } = useToggle();\n\n const additionalContentRef = useScrollToAdditionalContent(\n isAdditionalContentVisible,\n 400,\n );\n\n const [expandedDepartmentIndex, setExpandedDepartmentIndex] = React.useState<\n number | undefined\n >();\n\n // Fix autoresizing Swiper problem\n React.useEffect(() => hideAdditionalContent, [hash, hideAdditionalContent]);\n\n return (\n <>\n \n \n \n \n \n \n \n {readMore}\n \n {isAdditionalContentVisible && (\n \n {exploreOurCoreDepartments}\n {exploreOurCoreDepartmentsDescription}\n \n {departments.map(({ title, description }, index) => (\n \n \n setExpandedDepartmentIndex(\n expandedDepartmentIndex === index ? undefined : index,\n )\n }>\n {title}\n \n \n \n {description}\n \n \n ))}\n \n \n {joinUsTitle}\n \n \n \n )}\n \n \n \n );\n};\n\nexport default OurDepartments;\n\nfunction useOurDepartmentsContent() {\n const {\n ourDepartments: {\n pageContent: {\n pageTitle,\n description,\n subtitle,\n title,\n exploreOurCoreDepartments,\n exploreOurCoreDepartmentsDescription,\n joinUsTitle,\n ...departments\n },\n },\n common: {\n pageContent: { readMore },\n },\n } = useStaticQuery(\n graphql`\n query {\n ourDepartments: wpPage(title: { in: \"Our departments\" }) {\n pageContent {\n pageTitle\n description\n subtitle\n title\n departmentNumber1\n departmentNumber1Description\n departmentNumber2\n departmentNumber2Description\n departmentNumber3\n departmentNumber3Description\n departmentNumber4\n departmentNumber4Description\n departmentNumber5\n departmentNumber5Description\n departmentNumber6\n departmentNumber6Description\n departmentNumber7\n departmentNumber7Description\n departmentNumber8\n departmentNumber8Description\n departmentNumber9\n departmentNumber9Description\n departmentNumber10\n departmentNumber10Description\n departmentNumber11\n departmentNumber11Description\n departmentNumber12\n departmentNumber12Description\n exploreOurCoreDepartments\n exploreOurCoreDepartmentsDescription\n joinUsTitle\n }\n }\n\n common: wpPage(title: { in: \"Common\" }) {\n pageContent {\n readMore\n }\n }\n }\n `,\n );\n\n return {\n pageTitle,\n description,\n subtitle,\n title,\n readMore,\n exploreOurCoreDepartments,\n exploreOurCoreDepartmentsDescription,\n joinUsTitle,\n departments: [\n {\n title: departments.departmentNumber1,\n description: departments.departmentNumber1Description,\n },\n {\n title: departments.departmentNumber2,\n description: departments.departmentNumber2Description,\n },\n {\n title: departments.departmentNumber3,\n description: departments.departmentNumber3Description,\n },\n {\n title: departments.departmentNumber4,\n description: departments.departmentNumber4Description,\n },\n {\n title: departments.departmentNumber5,\n description: departments.departmentNumber5Description,\n },\n {\n title: departments.departmentNumber6,\n description: departments.departmentNumber6Description,\n },\n {\n title: departments.departmentNumber7,\n description: departments.departmentNumber7Description,\n },\n {\n title: departments.departmentNumber8,\n description: departments.departmentNumber8Description,\n },\n {\n title: departments.departmentNumber9,\n description: departments.departmentNumber9Description,\n },\n {\n title: departments.departmentNumber10,\n description: departments.departmentNumber10Description,\n },\n {\n title: departments.departmentNumber11,\n description: departments.departmentNumber11Description,\n },\n {\n title: departments.departmentNumber12,\n description: departments.departmentNumber12Description,\n },\n ],\n };\n}\n","import styled from 'styles/styled';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const LoaderWrapper = styled.div`\n padding-top: 20vh;\n`;\n","import React, { useRef, useEffect, useState } from 'react';\nimport SwiperCore, { Navigation, HashNavigation } from 'swiper';\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport { useLocation, navigate } from '@reach/router';\nimport 'swiper/swiper-bundle.min.css';\n\nimport { HASHES } from 'constants/common';\n\nimport Loader from 'components/ui/Loader';\nimport Hello from 'components/Hello';\nimport AboutUs from 'components/AboutUs';\nimport OurExpertise from 'components/OurExpertise';\nimport OurDepartments from 'components/OurDepartments';\n\nimport { LoaderWrapper } from './styled';\n\nSwiperCore.use([Navigation, HashNavigation]);\n\nconst Slider = () => {\n const { hash } = useLocation();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const swiperRef = useRef({});\n const [isLoading, setIsLoading] = useState(true);\n\n useEffect(() => {\n setIsLoading(false);\n if (!hash) {\n navigate(`/${HASHES.hello}`);\n return;\n }\n if (hash === HASHES.hello) {\n swiperRef.current.slideTo(0);\n return;\n }\n if (hash === HASHES.aboutUs) {\n swiperRef.current.slideTo(1);\n return;\n }\n if (hash === HASHES.ourExpertise) {\n swiperRef.current.slideTo(2);\n return;\n }\n if (hash === HASHES.ourDepartments) {\n swiperRef.current.slideTo(3);\n }\n }, [hash]);\n\n return (\n (swiperRef.current = swiper)}\n hashNavigation={{ watchState: true }}>\n {isLoading ? (\n \n \n \n ) : (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n \n );\n};\n\nexport default Slider;\n","import React from 'react';\n\nimport Layout from 'components/Layout';\nimport SEO from 'components/SEO';\nimport Slider from 'components/ui/Slider';\n\nconst IndexPage = () => {\n return (\n \n \n \n \n );\n};\n\nexport default IndexPage;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNCAxNCI+PHBhdGggc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNLjcwNy43MDdsMTIuNTg2IDEyLjU4Nm0wLTEyLjU4NEw3IDcgLjcwNyAxMy4yOTJ6Ii8+PC9zdmc+\"","import styled from 'styles/styled';\n\nconst Title = styled.h2`\n color: ${({ theme }) => theme.palette.light};\n margin-left: 0;\n position: relative;\n\n @media ${({ theme }) => theme.devices.medium} {\n margin-left: ${({ theme }) => theme.dimensions.spacingBase10 * 8}px;\n }\n\n @media ${({ theme }) => theme.devices.xlarge} {\n margin-left: 0;\n }\n`;\n\nexport default Title;\n","import styled from 'styles/styled';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const LineShape = styled.div`\n display: none;\n\n @media ${({ theme }) => theme.devices.medium} {\n position: absolute;\n top: -66px;\n left: 0;\n width: 4px;\n height: 86px;\n display: block;\n transform: rotate(45deg);\n transform-origin: bottom left;\n background-image: ${({ theme }) => theme.gradient.primary};\n width: 8px;\n height: 140px;\n top: -104px;\n }\n`;\n","// eslint-disable-next-line import/prefer-default-export\nimport { LineShape } from './LineShape';\n\nexport default LineShape;\n","import styled from 'styles/styled';\n\nexport const Wrapper = styled.section`\n position: relative;\n max-width: 400px;\n margin: 0 auto;\n\n h3 {\n margin-bottom: ${({ theme }) => theme.dimensions.spacingBase10 * 1.5}px;\n }\n\n @media ${({ theme }) => theme.devices.medium} {\n max-width: 100%;\n margin: 0 80px;\n\n h3 {\n margin-bottom: ${({ theme }) => theme.dimensions.spacingBase10 * 2}px;\n }\n }\n\n @media ${({ theme }) => theme.devices.large} {\n margin: 0;\n }\n`;\n\nexport const TextWrapper = styled.article`\n padding: 0 16px;\n\n @media ${({ theme }) => theme.devices.xlarge} {\n padding: 0 0 0 80px;\n }\n`;\n","import React from 'react';\n\nimport LineShape from 'components/ui/LineShape';\nimport Title from 'components/ui/Title';\nimport Paragraph from 'components/ui/Paragraph';\n\nimport { Wrapper, TextWrapper } from './styled';\n\ninterface Props {\n title?: string;\n subtitle?: string;\n description?: string;\n}\n\nconst TopSection = ({ title, subtitle, description }: Props) => (\n \n \n \n {title && (\n \n <strong>{title}</strong>\n \n )}\n {subtitle &&

    {subtitle}

    }\n {description && {description}}\n
    \n
    \n);\n\nexport default TopSection;\n","export { default } from './Paragraph';\n","import styled from 'styles/styled';\n\nconst Paragraph = styled.p`\n color: ${({ theme }) => theme.palette.lightDark};\n font-size: ${({ theme }) => theme.fontSize.baseMobile};\n letter-spacing: 0.1px;\n line-height: 18px;\n\n @media ${({ theme }) => theme.devices.medium} {\n font-size: ${({ theme }) => theme.fontSize.base};\n letter-spacing: 0.14px;\n line-height: 22px;\n }\n`;\n\nexport const WhiteParagraph = styled(Paragraph)`\n color: ${({ theme }) => theme.palette.light};\n`;\n\nexport default Paragraph;\n"],"sourceRoot":""}