{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/hey-listen/dist/hey-listen.es.js","webpack:///./node_modules/motion/dist/main.es.js","webpack:///./node_modules/motion/dist/targets/dom/animate-style.es.js","webpack:///./node_modules/motion/dist/targets/dom/animate.es.js","webpack:///./node_modules/motion/dist/targets/dom/data.es.js","webpack:///./node_modules/motion/dist/targets/dom/style.es.js","webpack:///./node_modules/motion/dist/targets/dom/timeline/index.es.js","webpack:///./node_modules/motion/dist/targets/dom/timeline/utils/calc-time.es.js","webpack:///./node_modules/motion/dist/targets/dom/timeline/utils/edit.es.js","webpack:///./node_modules/motion/dist/targets/dom/timeline/utils/sort.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/apply.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/controls.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/css-var.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/defaults.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/easing.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/feature-detection.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/get-style-name.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/keyframes.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/options.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/resolve-elements.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/stop-animation.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/time.es.js","webpack:///./node_modules/motion/dist/targets/dom/utils/transforms.es.js","webpack:///./node_modules/motion/dist/targets/js/NumberAnimation.es.js","webpack:///./node_modules/motion/dist/targets/js/easing/cubic-bezier.es.js","webpack:///./node_modules/motion/dist/targets/js/easing/glide/generator.es.js","webpack:///./node_modules/motion/dist/targets/js/easing/glide/index.es.js","webpack:///./node_modules/motion/dist/targets/js/easing/spring/generator.es.js","webpack:///./node_modules/motion/dist/targets/js/easing/spring/index.es.js","webpack:///./node_modules/motion/dist/targets/js/easing/steps.es.js","webpack:///./node_modules/motion/dist/targets/js/easing/utils/create-generator-easing.es.js","webpack:///./node_modules/motion/dist/targets/js/easing/utils/get-function.es.js","webpack:///./node_modules/motion/dist/targets/js/easing/utils/has-reached-target.es.js","webpack:///./node_modules/motion/dist/targets/js/easing/utils/pregenerate-keyframes.es.js","webpack:///./node_modules/motion/dist/targets/js/utils/get-easing.es.js","webpack:///./node_modules/motion/dist/targets/js/utils/interpolate.es.js","webpack:///./node_modules/motion/dist/targets/js/utils/offset.es.js","webpack:///./node_modules/motion/dist/utils/array.es.js","webpack:///./node_modules/motion/dist/utils/clamp.es.js","webpack:///./node_modules/motion/dist/utils/is-number.es.js","webpack:///./node_modules/motion/dist/utils/mix.es.js","webpack:///./node_modules/motion/dist/utils/noop.es.js","webpack:///./node_modules/motion/dist/utils/progress.es.js","webpack:///./node_modules/motion/dist/utils/stagger.es.js","webpack:///./node_modules/motion/dist/utils/velocity-per-second.es.js","webpack:///./node_modules/motion/dist/utils/wrap.es.js","webpack:///./node_modules/motion/node_modules/tslib/tslib.es6.js","webpack:///../src/util.js","webpack:///../src/PureComponent.js","webpack:///../src/memo.js","webpack:///../src/forwardRef.js","webpack:///../src/Children.js","webpack:///../src/suspense.js","webpack:///../src/suspense-list.js","webpack:///../src/portals.js","webpack:///../src/render.js","webpack:///../src/index.js","webpack:///../src/constants.js","webpack:///../src/options.js","webpack:///../src/create-element.js","webpack:///../src/component.js","webpack:///../src/create-context.js","webpack:///../src/diff/children.js","webpack:///../src/diff/props.js","webpack:///../src/diff/index.js","webpack:///../src/clone-element.js","webpack:///../src/diff/catch-error.js","webpack:///./node_modules/ssr-window/ssr-window.esm.js","webpack:///./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/core/breakpoints/index.js","webpack:///./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/core/check-overflow/index.js","webpack:///./node_modules/swiper/core/classes/addClasses.js","webpack:///./node_modules/swiper/core/classes/index.js","webpack:///./node_modules/swiper/core/classes/removeClasses.js","webpack:///./node_modules/swiper/core/core.js","webpack:///./node_modules/swiper/core/defaults.js","webpack:///./node_modules/swiper/core/events-emitter.js","webpack:///./node_modules/swiper/core/events/index.js","webpack:///./node_modules/swiper/core/events/onClick.js","webpack:///./node_modules/swiper/core/events/onResize.js","webpack:///./node_modules/swiper/core/events/onScroll.js","webpack:///./node_modules/swiper/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/core/events/onTouchMove.js","webpack:///./node_modules/swiper/core/events/onTouchStart.js","webpack:///./node_modules/swiper/core/grab-cursor/index.js","webpack:///./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/core/images/index.js","webpack:///./node_modules/swiper/core/images/loadImage.js","webpack:///./node_modules/swiper/core/images/preloadImages.js","webpack:///./node_modules/swiper/core/loop/index.js","webpack:///./node_modules/swiper/core/loop/loopCreate.js","webpack:///./node_modules/swiper/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/core/loop/loopFix.js","webpack:///./node_modules/swiper/core/moduleExtendParams.js","webpack:///./node_modules/swiper/core/modules/observer/observer.js","webpack:///./node_modules/swiper/core/modules/resize/resize.js","webpack:///./node_modules/swiper/core/slide/index.js","webpack:///./node_modules/swiper/core/slide/slideNext.js","webpack:///./node_modules/swiper/core/slide/slidePrev.js","webpack:///./node_modules/swiper/core/slide/slideReset.js","webpack:///./node_modules/swiper/core/slide/slideTo.js","webpack:///./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/core/transition/index.js","webpack:///./node_modules/swiper/core/transition/setTransition.js","webpack:///./node_modules/swiper/core/transition/transitionEmit.js","webpack:///./node_modules/swiper/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/core/transition/transitionStart.js","webpack:///./node_modules/swiper/core/translate/getTranslate.js","webpack:///./node_modules/swiper/core/translate/index.js","webpack:///./node_modules/swiper/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/core/translate/minTranslate.js","webpack:///./node_modules/swiper/core/translate/setTranslate.js","webpack:///./node_modules/swiper/core/translate/translateTo.js","webpack:///./node_modules/swiper/core/update/index.js","webpack:///./node_modules/swiper/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/core/update/updateProgress.js","webpack:///./node_modules/swiper/core/update/updateSize.js","webpack:///./node_modules/swiper/core/update/updateSlides.js","webpack:///./node_modules/swiper/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/modules/a11y/a11y.js","webpack:///./node_modules/swiper/modules/autoplay/autoplay.js","webpack:///./node_modules/swiper/modules/controller/controller.js","webpack:///./node_modules/swiper/modules/effect-cards/effect-cards.js","webpack:///./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","webpack:///./node_modules/swiper/modules/effect-creative/effect-creative.js","webpack:///./node_modules/swiper/modules/effect-cube/effect-cube.js","webpack:///./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack:///./node_modules/swiper/modules/effect-flip/effect-flip.js","webpack:///./node_modules/swiper/modules/free-mode/free-mode.js","webpack:///./node_modules/swiper/modules/grid/grid.js","webpack:///./node_modules/swiper/modules/hash-navigation/hash-navigation.js","webpack:///./node_modules/swiper/modules/history/history.js","webpack:///./node_modules/swiper/modules/keyboard/keyboard.js","webpack:///./node_modules/swiper/modules/lazy/lazy.js","webpack:///./node_modules/swiper/modules/manipulation/manipulation.js","webpack:///./node_modules/swiper/modules/manipulation/methods/addSlide.js","webpack:///./node_modules/swiper/modules/manipulation/methods/appendSlide.js","webpack:///./node_modules/swiper/modules/manipulation/methods/prependSlide.js","webpack:///./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js","webpack:///./node_modules/swiper/modules/manipulation/methods/removeSlide.js","webpack:///./node_modules/swiper/modules/mousewheel/mousewheel.js","webpack:///./node_modules/swiper/modules/navigation/navigation.js","webpack:///./node_modules/swiper/modules/pagination/pagination.js","webpack:///./node_modules/swiper/modules/parallax/parallax.js","webpack:///./node_modules/swiper/modules/scrollbar/scrollbar.js","webpack:///./node_modules/swiper/modules/thumbs/thumbs.js","webpack:///./node_modules/swiper/modules/virtual/virtual.js","webpack:///./node_modules/swiper/modules/zoom/zoom.js","webpack:///./node_modules/swiper/react/get-changed-params.js","webpack:///./node_modules/swiper/react/get-children.js","webpack:///./node_modules/swiper/react/get-params.js","webpack:///./node_modules/swiper/react/init-swiper.js","webpack:///./node_modules/swiper/react/loop.js","webpack:///./node_modules/swiper/react/params-list.js","webpack:///./node_modules/swiper/react/swiper-react.js","webpack:///./node_modules/swiper/react/swiper-slide.js","webpack:///./node_modules/swiper/react/swiper.js","webpack:///./node_modules/swiper/react/update-swiper.js","webpack:///./node_modules/swiper/react/use-isomorphic-layout-effect.js","webpack:///./node_modules/swiper/react/utils.js","webpack:///./node_modules/swiper/react/virtual.js","webpack:///./node_modules/swiper/shared/classes-to-selector.js","webpack:///./node_modules/swiper/shared/create-element-if-not-defined.js","webpack:///./node_modules/swiper/shared/create-shadow.js","webpack:///./node_modules/swiper/shared/dom.js","webpack:///./node_modules/swiper/shared/effect-init.js","webpack:///./node_modules/swiper/shared/effect-target.js","webpack:///./node_modules/swiper/shared/effect-virtual-transition-end.js","webpack:///./node_modules/swiper/shared/get-browser.js","webpack:///./node_modules/swiper/shared/get-device.js","webpack:///./node_modules/swiper/shared/get-support.js","webpack:///./node_modules/swiper/shared/utils.js","webpack:///./node_modules/swiper/swiper.esm.js","webpack:///./src/ts/App.tsx","webpack:///./src/ts/components/Bio.tsx","webpack:///./src/ts/components/Contact.tsx","webpack:///./src/ts/components/DownButton.tsx","webpack:///./src/ts/components/Footer.tsx","webpack:///./src/ts/components/Form.tsx","webpack:///./src/ts/components/Header.tsx","webpack:///./src/ts/components/ImageReel.tsx","webpack:///./src/ts/components/Introduction.tsx","webpack:///./src/ts/components/Landing.tsx","webpack:///./src/ts/components/Mission.tsx","webpack:///./src/ts/components/Testimonials.tsx","webpack:///./src/ts/elementService.ts","webpack:///./src/ts/imageReel.config.ts","webpack:///./src/ts/index.tsx"],"names":["makeReactive","obj","proto","__proto__","Object","defineProperty","get","set","value","Dom7","Array","constructor","items","arrayFlat","arr","res","forEach","el","isArray","push","arrayFilter","callback","prototype","filter","call","arrayUnique","uniqueArray","i","length","indexOf","toCamelCase","string","toLowerCase","replace","match","group","toUpperCase","qsa","selector","context","a","querySelectorAll","$","window","getWindow","document","getDocument","html","trim","toCreate","tempParent","createElement","innerHTML","childNodes","nodeType","fn","addClass","classes","classNames","map","c","split","classList","add","removeClass","remove","toggleClass","className","toggle","hasClass","contains","attr","attrs","arguments","getAttribute","undefined","setAttribute","attrName","removeAttr","removeAttribute","prop","props","propName","data","key","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","name","parseFloat","val","multiple","nodeName","values","selectedOptions","j","options","selected","transform","style","transition","duration","transitionDuration","on","args","eventType","targetSelector","listener","capture","handleLiveEvent","e","target","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","events","event","dom7Listeners","proxyListener","addEventListener","dom7LiveListeners","off","handlers","handler","removeEventListener","splice","dom7proxy","once","dom","eventName","onceHandler","eventArgs","trigger","CustomEvent","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","fireCallBack","animationEnd","width","innerWidth","css","outerWidth","includeMargins","styles","offsetWidth","getPropertyValue","height","innerHeight","outerHeight","offsetHeight","offset","box","getBoundingClientRect","body","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","hide","display","show","getComputedStyle","each","index","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","firstChild","appendChild","appendTo","parent","prepend","insertBefore","prependTo","before","parentNode","cloneNode","insertAfter","after","nextSibling","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","siblings","closest","find","foundElements","found","children","removeChild","detach","toAdd","empty","scrollTo","easing","animate","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","Date","getTime","progress","easeProgress","cos","PI","done","requestAnimationFrame","initialProps","initialParams","assign","params","elements","animating","que","easingProgress","stop","frameId","cancelAnimationFrame","element","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","keys","currentValue","elementsDone","propsDone","began","begin","animateInstance","noTrigger","shortcut","eventHandler","click","blur","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","warning","invariant","process","check","message","console","warn","Error","animateStyle","keyframesDefinition","animation","defaults","delay","endDelay","repeat","direction","allowWebkitAcceleration","getAnimationData","canAnimateNatively","supports","waapi","noop","valueIsTransform","isTransform","addTransformToElement","getStyleName","definition","transformDefinitions","stopAnimation","animations","readInitialValue","_a","_b","keyframes","hydrateKeyframes","keyframesList","isCustomEasing","custom","createAnimation","isCssVar","cssVariableRenderer","cssRegisterProperty","registerCssVariable","styleRenderer","isNumber","toDefaultUnit","partialKeyframes","animationOptions","ms","isEasingList","convertEasing","iterations","fill","finished","Promise","resolve","reject","onfinish","oncancel","then","cancel","catch","playbackRate","every","applyStyle","v","NumberAnimation","generators","prevGeneratorState","resolveElements","numElements","animationFactories","valueOptions","getOptions","resolveOption","createAnimations","WeakMap","has","transforms","timeline","animationDefinitions","createAnimationsFromTimeline","Boolean","defaultOptions","timelineOptions","__rest","elementSequences","Map","elementCache","timeLabels","prevTime","currentTime","totalDuration","elementDefinition","at","calcNextTime","maxDuration","elementIndex","elementSequence","getElementSequence","valueSequence","getValueSequence","valueKeyframes","targetTime","defaultOffset","remainder","fillOffset","addKeyframes","valueSequences","sort","compareByTime","valueOffset","valueEasing","sequences","current","labels","startsWith","eraseKeyframes","sequence","endTime","keyframe","removeItem","mix","getEasingForSegment","b","latest","setProperty","factory","animationFactory","Proxy","controls","getActiveAnimation","state","all","selectFinished","registeredProperties","Set","syntax","CSS","registerProperty","inherits","isCubicBezier","cubicBezierAsString","d","testAnimation","featureTests","hasOwnProperty","Element","opacity","results","transformAlias","asTransformCssVar","selectorCache","from","playState","commitStyles","seconds","axes","order","x","y","z","rotation","baseTransformProperties","translate","rotate","scale","noopReturn","skew","axis","compareTransformOrder","transformLookup","addUniqueItem","buildTransformTemplate","reduce","transformListToString","template","output","rate","t","cancelTimestamp","interpolate","slowInterpolateNumbers","getEasingFunction","tick","timestamp","pauseTime","currentIteration","floor","iterationProgress","iterationIsOdd","isAnimationFinished","play","now","performance","pause","finish","reverse","calcBezier","a1","a2","subdivisionPrecision","subdivisionMaxIterations","binarySubdivide","lowerBound","upperBound","mX1","mX2","currentX","currentT","abs","cubicBezier","mY1","mY2","getTForX","aX","createGlideGenerator","velocity","power","decay","bounceDamping","bounceStiffness","changeTarget","restDistance","restSpeed","hasReachedTarget","isOutOfBounds","nearestBoundary","amplitude","ideal","calcDelta","exp","calcLatest","applyFriction","delta","calcVelocity","timeReachedBoundary","spring","checkCatchBoundary","createSpringGenerator","to","damping","stiffness","hasUpdatedFrame","glide","createGeneratorEasing","defaultStiffness","defaultDamping","defaultMass","calcDampingRatio","mass","sqrt","calcAngularFreq","undampedFreq","dampingRatio","initialDelta","undampedAngularFreq","angularFreq","resolveSpring","sin","isBelowVelocityThreshold","isBelowDisplacementThreshold","sampleT","resolveValue","prevT","velocityPerSecond","steps","expanded","rounded","ceil","clamp","createGenerator","keyframesCache","generatorCache","getGenerator","isScale","getKeyframes","generator","pregenerateKeyframes","getOrigin","canUseGenerator","settings","numKeyframes","shouldUseGenerator","isNumberOrNull","prevAnimationState","unresolvedOrigin","origin","includes","keyframesMetadata","overshootDuration","namedEasings","ease","functionArgsRegex","exec","argsArray","timeStep","wrap","clampProgress","p","input","progressInRange","segmentEasing","remaining","offsetProgress","array","item","stagger","start","total","fromIndex","getFromIndex","distance","maxDelay","easingFunction","lastIndex","option","frameDuration","rangeSize","extendStatics","setPrototypeOf","__extends","TypeError","String","__","create","__assign","s","n","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","desc","r","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","adopt","fulfilled","step","rejected","__generator","_","label","sent","trys","ops","f","g","verb","Symbol","iterator","op","pop","__createBinding","o","m","k2","enumerable","__exportStar","__values","__read","ar","error","__spread","concat","__spreadArrays","il","jl","__spreadArray","pack","l","slice","__await","__asyncGenerator","asyncIterator","q","resume","settle","fulfill","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__setModuleDefault","__importStar","mod","__esModule","__importDefault","default","__classPrivateFieldGet","receiver","kind","__classPrivateFieldSet","shallowDiffers","PureComponent","memo","comparer","shouldUpdate","nextProps","ref","this","updateRef","Memoed","shouldComponentUpdate","displayName","isReactComponent","Component","isPureReactComponent","oldDiffHook","vnode","type","REACT_FORWARD_SYMBOL","for","forwardRef","Forwarded","clone","$$typeof","mapFn","toChildArray","Children","count","only","normalized","toArray","oldCatchError","newVNode","oldVNode","component","oldUnmount","unmount","Suspense","_suspenders","suspended","lazy","loader","prom","Lazy","exports","SuspenseList","_next","_map","promise","suspendingVNode","suspendingComponent","resolved","onResolved","onSuspensionComplete","suspendedVNode","removeOriginal","detachedParent","originalParent","setState","forceUpdate","wasHydrating","componentWillUnmount","detachedComponent","detachedClone","parentDom","effect","fallback","Fragment","list","node","delete","revealOrder","size","ContextProvider","getChildContext","Portal","_this","_container","_temp","createPortal","delegated","wrappedUnsuspend","unsuspend","componentDidUpdate","componentDidMount","REACT_ELEMENT_TYPE","CAMEL_PROPS","IS_DOM","onChangeInputType","test","preactRender","hydrate","preactHydrate","configurable","writable","oldEventHook","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","persist","nativeEvent","currentComponent","classNameDescriptor","class","oldVNodeHook","normalizedProps","nonCustomElement","defaultValue","oldBeforeRender","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","readContext","version","createFactory","bind","isValidElement","cloneElement","preactCloneElement","unmountComponentAtNode","findDOMNode","base","unstable_batchedUpdates","arg","flushSync","StrictMode","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","useDebugValue","createContext","createRef","vnodeId","rerenderQueue","defer","prevDebounce","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","removeNode","defaultProps","createVNode","original","getDomSibling","childIndex","sibling","updateParentDomPointers","enqueueRender","debounceRendering","queue","some","commitQueue","oldDom","diff","ownerSVGElement","commitRoot","diffChildren","renderResult","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","childVNode","newDom","firstChildDom","refs","oldChildren","oldChildrenLength","reorderChildren","placeChild","applyRef","tmp","out","nextDom","sibDom","outer","diffProps","newProps","oldProps","setStyle","oldValue","useCapture","cssText","_listeners","eventProxyCapture","eventProxy","isNew","oldState","snapshot","clearProcessingException","provider","componentContext","newType","contextType","doRender","sub","getDerivedStateFromProps","componentWillMount","componentWillReceiveProps","componentWillUpdate","getSnapshotBeforeUpdate","diffElementNodes","diffed","root","cb","oldHtml","newHtml","localName","createTextNode","createElementNS","dangerouslySetInnerHTML","checked","parentVNode","skipRemove","replaceNode","contextId","Consumer","contextValue","Provider","subs","ctx","_props","old","ctor","handled","getDerivedStateFromError","componentDidCatch","update","setTimeout","currentIndex","prevRaf","currentHook","afterPaintEffects","oldBeforeDiff","oldAfterDiff","oldCommit","oldBeforeUnmount","getHookState","hooks","initialState","invokeOrReturn","reducer","init","hookState","_reducer","nextValue","action","argsChanged","createHandle","formatter","useErrorBoundary","errState","err","flushAfterPaintEffects","invokeCleanup","invokeEffect","raf","clearTimeout","timeout","HAS_RAF","hook","comp","oldArgs","newArgs","__source","__self","isObject","extend","src","ssrDocument","activeElement","querySelector","getElementById","createEvent","initEvent","getElementsByTagName","importNode","location","hash","host","hostname","href","pathname","protocol","search","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","Image","screen","matchMedia","id","win","getBreakpoint","breakpoints","containerEl","breakpoint","currentHeight","clientHeight","points","point","minRatio","substr","parseInt","clientWidth","setBreakpoint","isGridEnabled","swiper","grid","rows","activeIndex","initialized","loopedSlides","$el","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","enabled","containerModifierClass","emitContainerClasses","directionChanged","needsReLoop","loop","slidesPerView","changeDirection","isEnabled","allowTouchMove","allowSlideNext","allowSlidePrev","disable","enable","emit","loopDestroy","loopCreate","updateSlides","slideTo","checkOverflow","isLocked","wasLocked","slidesOffsetBefore","lastSlideIndex","slides","lastSlideRightEdge","slidesGrid","slidesSizesGrid","snapGrid","isEnd","prepareClasses","entries","prefix","resultClasses","addClasses","rtl","device","support","suffixes","touch","freeMode","autoHeight","android","ios","cssMode","centeredSlides","join","removeClasses","prototypes","eventsEmitter","slide","grabCursor","images","extendedDefaults","Swiper","toString","swipers","newParams","__swiper__","getSupport","getDevice","browser","getBrowser","eventsListeners","eventsAnyListeners","modules","__modules__","allModulesParams","extendParams","moduleExtendParams","swiperParams","passedParams","onAny","isHorizontal","isVertical","realIndex","isBeginning","previousTranslate","touchEvents","desktop","touchEventsTouch","move","end","touchEventsDesktop","simulateTouch","touchEventsData","isTouched","isMoved","allowTouchCallbacks","touchStartTime","isScrolling","currentTranslate","startTranslate","allowThresholdMove","focusableElements","lastClickTime","clickTimeout","velocities","allowMomentumBounce","isTouchEvent","startMoving","allowClick","touches","startX","startY","currentY","imagesToLoad","imagesLoaded","setGrabCursor","unsetGrabCursor","setProgress","speed","minTranslate","maxTranslate","translateTo","updateActiveIndex","updateSlidesClasses","_emitClasses","cls","getSlideClasses","slideEl","slideClass","emitSlidesClasses","updates","slidesPerViewDynamic","view","exact","swiperSize","spv","slideSize","swiperSlideSize","breakLoop","slideInView","destroyed","updateSize","updateProgress","setTranslate","translateValue","rtlTranslate","newTranslate","translated","updateAutoHeight","watchOverflow","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","wrapperClass","getWrapper","shadowRoot","$wrapperEl","createElements","wrapper","wrapperEl","dir","wrongRTL","preloadImages","initialSlide","runCallbacksOnInit","attachEvents","destroy","deleteInstance","cleanStyles","detachEvents","slideVisibleClass","slideActiveClass","slideNextClass","slidePrevClass","deleteProps","extendDefaults","newDefaults","installModule","use","module","prototypeGroup","protoMethod","Resize","Observer","touchEventsTarget","updateOnWindowResize","resizeObserver","nested","preventInteractionOnTransition","url","edgeSwipeDetection","edgeSwipeThreshold","setWrapperSize","virtualTranslate","spaceBetween","slidesPerGroup","slidesPerGroupSkip","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","touchRatio","touchAngle","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","touchReleaseOnEdges","uniqueNavElements","resistance","resistanceRatio","watchSlidesProgress","preventClicks","preventClicksPropagation","slideToClickedSlide","updateOnImagesReady","loopAdditionalSlides","loopFillGroupWithBlank","loopPreventsSlide","swipeHandler","noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","slideBlankClass","slideDuplicateActiveClass","slideDuplicateClass","slideDuplicateNextClass","slideDuplicatePrevClass","priority","self","method","__emitterProxy","offAny","eventsArray","dummyEventAttached","dummyEventListener","domMethod","swiperMethod","onTouchStart","onTouchMove","onTouchEnd","passiveListener","passive","onClick","onScroll","onResize","preventDefault","stopPropagation","stopImmediatePropagation","autoplay","running","paused","run","newProgress","translatesDiff","originalEvent","touchEndTime","timeDiff","pathTree","path","composedPath","updateClickedSlide","nextTick","swipeDirection","currentPos","stopIndex","groupSize","increment","ratio","isNavButtonTarget","navigation","nextEl","prevEl","targetTouch","targetTouches","changedTouches","pageX","pageY","preventedByNestedSwiper","diffX","diffY","atan2","loopFix","getTranslate","setTransition","disableParentSwiper","closestElement","__closestFrom","assignedSlot","getRootNode","$targetEl","which","button","swipingClassHasValue","isTargetShadow","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","shouldPreventDefault","isContentEditable","moving","cursor","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","onload","onerror","currentSrc","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","newIndex","snapTranslate","slideChanged","moduleParamName","moduleParams","auto","observers","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","observer","mutations","observerUpdate","observe","childList","characterData","observeParents","containerParents","observeSlideChildren","disconnect","resizeHandler","createObserver","ResizeObserver","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","removeObserver","unobserve","orientationChangeHandler","slideToLoop","slideNext","slidePrev","slideReset","slideToClosest","runCallbacks","internal","perGroup","_clientLeft","normalize","normalizedTranslate","normalizedSnapGrid","prevSnap","prevSnapIndex","snap","snapIndex","prevIndex","initial","indexAsNumber","isValidNumber","isFinite","slideIndex","previousIndex","skip","normalizedGrid","normalizedGridNext","transitionStart","isH","isVirtual","virtual","scrollSnapType","_immediateVirtual","_swiperImmediateVirtual","smoothScroll","animateCSSModeScroll","targetPosition","side","behavior","onSlideToWrapperTransitionEnd","slideToIndex","clickedIndex","clickedSlide","currentSnap","nextSnap","byController","transitionEmit","getSwiperTranslate","translateBounds","onTranslateToWrapperTransitionEnd","updateSlidesOffset","updateSlidesProgress","newActiveIndex","previousRealIndex","previousSnapIndex","activeSlides","getSlideByIndex","visibleSlides","slideFound","multiplier","wasBeginning","wasEnd","Number","isNaN","getDirectionLabel","property","getDirectionPropertyValue","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","setCSSProperty","gridEnabled","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","updateWrapperSize","newSlidesGrid","slidesGridItem","allSlidesSize","slideSizeValue","maxSnap","allSlidesOffset","addToSnapGrid","addToSlidesGrid","activeSlide","nextSlide","prevSlide","swiperSlideOffset","offsetLeft","offsetTop","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","liveRegion","notify","notification","getRandomNumber","randomChar","round","random","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","keyCode","$nextEl","$prevEl","pagination","classesToSelector","bulletClass","updateNavigation","hasPagination","clickable","bullets","updatePagination","bulletEl","$bulletEl","renderBullet","initNavEl","wrapperId","tagName","$containerEl","$slideEl","ariaLabelMessage","Autoplay","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","$activeSlideEl","autoplayResult","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","onMouseLeave","attachMouseEvents","detachMouseEvents","_s","Controller","controller","control","inverse","by","LinearSpline","binarySearch","maxIndex","minIndex","guess","i1","i3","x2","getInterpolateFunction","spline","_t","controlled","controlledTranslate","setControlledTranslate","setControlledTransition","removeSpline","EffectCards","cardsEffect","slideShadows","transformEl","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY","scaleString","$shadowEl","createShadow","zIndex","effectTarget","$transitionElements","effectVirtualTransitionEnd","effectInit","perspective","overwriteParams","EffectCoverflow","coverflowEffect","stretch","depth","modifier","swiperWidth","swiperHeight","center","offsetMultiplier","rotateY","rotateX","translateZ","translateY","translateX","slideTransform","$shadowBeforeEl","$shadowAfterEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","translateString","rotateString","opacityString","shadow","shadowOpacity","allSlides","EffectCube","cubeEffect","shadowOffset","shadowScale","wrapperRotate","$cubeShadowEl","slideAngle","tx","ty","tz","shadowBefore","shadowAfter","shadowAngle","scale1","scale2","zFactor","isSafari","isWebView","EffectFade","fadeEffect","crossFade","slideOpacity","EffectFlip","flipEffect","limitRotation","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","sticky","minimumVelocity","position","lastMoveEvent","velocityEvent","momentumDuration","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","HashNavigation","hashNavigation","watchState","onHashChange","newHash","activeSlideHash","setHash","slideHash","History","paths","slugify","getPathValues","urlOverride","URL","pathArray","part","setHistory","currentState","scrollToSlide","slideHistory","setHistoryPopState","Keyboard","keyboard","onlyInViewport","pageUpDown","handle","kc","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$images","$imageEl","background","$pictureEl","sourceEl","$source","slideOriginalIndex","originalSlide","duplicatedSlide","load","slideExist","amount","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","Manipulation","appendSlide","prependSlide","addSlide","removeSlide","removeAllSlides","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","slidesIndexes","indexToRemove","Mousewheel","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","releaseScroll","rtlFactor","positions","sign","prevEvent","ignoreWheelEvents","firstEvent","snapToThreshold","autoplayDisableOnInteraction","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","getEl","toggleEl","disabled","onPrevClick","onNextClick","createElementIfNotDefined","targetEl","isHidden","Pagination","pfx","bulletElement","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scaleX","scaleY","paginationHTML","numberOfBullets","Parallax","parallax","setTransform","currentOpacity","currentScale","parallaxEl","$parallaxEl","parallaxDuration","_swiper","Scrollbar","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","draggable","snapOnRelease","dragClass","dragEl","$dragEl","newSize","newPos","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","activeListener","eventMethod","enableDraggable","disableDraggable","$swiperEl","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","nextIndex","thumbsParams","SwiperClass","thumbsSwiperParams","useOffset","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","Virtual","cache","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","cssModeTimeout","force","previousFrom","previousTo","previousSlidesGrid","previousOffset","slidesAfter","slidesBefore","onRendered","getSlides","slidesToRender","prependIndexes","appendIndexes","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","Zoom","zoom","maxRatio","containerClass","zoomedSlideClass","isScaling","gesturesEnabled","fakeGestureTouched","fakeGestureMoved","gesture","slideWidth","slideHeight","$imageWrapEl","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","getDistanceBetweenTouches","x1","y1","y2","onGestureStart","gestures","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","zoomIn","overflow","touchAction","touchX","touchY","offsetX","offsetY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","getSlideSelector","toggleGestures","slideSelector","enableGestures","disableGestures","in","getChangedParams","oldParams","addKey","oldChildrenKeys","childrenKeys","watchParams","paramsList","newKeys","oldKeys","newKey","oldKey","processChildren","React","getChildren","slots","slot","foundSlides","getParams","rest","allowedParams","initSwiper","mountSwiper","paginationEl","scrollbarEl","needsNavigation","needsPagination","needsScrollbar","calcLoopedSlides","slidesPerViewParams","renderLoop","modifiedSlides","duplicateSlide","blankSlide","_extends","source","SwiperSlide","tag","Tag","virtualIndex","externalRef","slideElRef","slideClasses","setSlideClasses","updateClasses","useIsomorphicLayoutEffect","slideData","isActive","isDuplicate","isPrev","isNext","renderChildren","uniqueClasses","wrapperTag","WrapperTag","onSwiper","externalElRef","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","onBeforeBreakpoint","_containerClasses","extendWith","changedParams","updateSwiper","updateOnVirtualData","renderSlides","renderVirtual","updateParams","currentParams","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","destroyModule","newValue","deps","noExtend","unique","checkProps","shadowClass","$shadowContainer","Methods","methodName","overwriteParamsResult","effectParams","eventTriggered","$transitionEndTarget","triggerEvents","calcBrowser","ua","deviceCached","calcDevice","platform","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","os","overrides","calcSupport","documentElement","DocumentTouch","checkPassiveListener","supportsPassive","opts","checkGestures","object","currentStyle","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","HTMLElement","nextSource","keysArray","len","nextKey","varName","varValue","startPosition","cssModeFrameID","isOutOfBound","currentPosition"],"mappings":"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","file":"bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/ts/index.tsx\");\n","/**\n * Dom7 4.0.1\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: October 27, 2021\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n super(...(items || []));\n makeReactive(this);\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let 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 const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\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 (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let 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 (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let 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 const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const 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 const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let 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 (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let 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 (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const 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 const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const 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 const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\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 (let k = handlers.length - 1; k >= 0; k -= 1) {\n const 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(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\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(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const 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 const 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 const 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 const styles = this.styles();\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 const 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 const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.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 const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const 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 const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let 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 (const 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((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const 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 (let 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 (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\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 let child = this[0];\n let 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 const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\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 const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\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 const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const 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 const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\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 const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let 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 const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const 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 (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\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 let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\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(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const 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(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const 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\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n 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\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\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(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\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\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\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 const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","var warning = function () { };\r\nvar invariant = function () { };\r\nif (process.env.NODE_ENV !== 'production') {\r\n warning = function (check, message) {\r\n if (!check && typeof console !== 'undefined') {\r\n console.warn(message);\r\n }\r\n };\r\n invariant = function (check, message) {\r\n if (!check) {\r\n throw new Error(message);\r\n }\r\n };\r\n}\n\nexport { invariant, warning };\n","export { animate } from './targets/dom/animate.es.js';\nexport { animateStyle } from './targets/dom/animate-style.es.js';\nexport { timeline } from './targets/dom/timeline/index.es.js';\nexport { stagger } from './utils/stagger.es.js';\nexport { spring } from './targets/js/easing/spring/index.es.js';\nexport { glide } from './targets/js/easing/glide/index.es.js';\n","import { getAnimationData } from './data.es.js';\nimport { isCssVar, registerCssVariable } from './utils/css-var.es.js';\nimport { noop } from '../../utils/noop.es.js';\nimport { ms } from './utils/time.es.js';\nimport { isTransform, addTransformToElement, transformDefinitions } from './utils/transforms.es.js';\nimport { isCustomEasing, isEasingList, convertEasing } from './utils/easing.es.js';\nimport { supports } from './utils/feature-detection.es.js';\nimport { cssVariableRenderer, styleRenderer } from './utils/apply.es.js';\nimport { NumberAnimation } from '../js/NumberAnimation.es.js';\nimport { hydrateKeyframes, keyframesList } from './utils/keyframes.es.js';\nimport { style } from './style.es.js';\nimport { defaults } from './utils/defaults.es.js';\nimport { getStyleName } from './utils/get-style-name.es.js';\nimport { isNumber } from '../../utils/is-number.es.js';\nimport { stopAnimation } from './utils/stop-animation.es.js';\n\nfunction animateStyle(element, key, keyframesDefinition, options = {}) {\n let animation;\n let { duration = defaults.duration, delay = defaults.delay, endDelay = defaults.endDelay, repeat = defaults.repeat, easing = defaults.easing, direction, offset, allowWebkitAcceleration = false, } = options;\n const data = getAnimationData(element);\n let canAnimateNatively = supports.waapi();\n let render = noop;\n const valueIsTransform = isTransform(key);\n /**\n * If this is an individual transform, we need to map its\n * key to a CSS variable and update the element's transform style\n */\n valueIsTransform && addTransformToElement(element, key);\n const name = getStyleName(key);\n /**\n * Get definition of value, this will be used to convert numerical\n * keyframes into the default value type.\n */\n const definition = transformDefinitions.get(name);\n /**\n * Stop the current animation, if any. Because this will trigger\n * commitStyles (DOM writes) and we might later trigger DOM reads,\n * this is fired now and we return a factory function to create\n * the actual animation that can get called in batch,\n */\n stopAnimation(data.animations[name]);\n /**\n * Batchable factory function containing all DOM reads.\n */\n return () => {\n const readInitialValue = () => { var _a, _b; return (_b = (_a = style.get(element, name)) !== null && _a !== void 0 ? _a : definition === null || definition === void 0 ? void 0 : definition.initialValue) !== null && _b !== void 0 ? _b : 0; };\n /**\n * Replace null values with the previous keyframe value, or read\n * it from the DOM if it's the first keyframe.\n */\n let keyframes = hydrateKeyframes(keyframesList(keyframesDefinition), readInitialValue);\n if (isCustomEasing(easing)) {\n const custom = easing.createAnimation(keyframes, readInitialValue, valueIsTransform, name, data);\n easing = custom.easing;\n if (custom.keyframes !== undefined)\n keyframes = custom.keyframes;\n if (custom.duration !== undefined)\n duration = custom.duration;\n }\n /**\n * If this is a CSS variable we need to register it with the browser\n * before it can be animated natively. We also set it with setProperty\n * rather than directly onto the element.style object.\n */\n if (isCssVar(name)) {\n render = cssVariableRenderer(element, name);\n if (supports.cssRegisterProperty()) {\n registerCssVariable(name);\n }\n else {\n canAnimateNatively = false;\n }\n }\n else {\n render = styleRenderer(element, name);\n }\n /**\n * If we can animate this value with WAAPI, do so. Currently this only\n * feature detects CSS.registerProperty but could check WAAPI too.\n */\n if (canAnimateNatively) {\n /**\n * Convert numbers to default value types. Currently this only supports\n * transforms but it could also support other value types.\n */\n if (definition) {\n keyframes = keyframes.map((value) => isNumber(value) ? definition.toDefaultUnit(value) : value);\n }\n /**\n * If this browser doesn't support partial/implicit keyframes we need to\n * explicitly provide one.\n */\n if (!supports.partialKeyframes() && keyframes.length === 1) {\n keyframes.unshift(readInitialValue());\n }\n const animationOptions = {\n delay: ms(delay),\n duration: ms(duration),\n endDelay: ms(endDelay),\n easing: !isEasingList(easing) ? convertEasing(easing) : undefined,\n direction,\n iterations: repeat + 1,\n fill: \"both\",\n };\n animation = element.animate({\n [name]: keyframes,\n offset,\n easing: isEasingList(easing) ? easing.map(convertEasing) : undefined,\n }, animationOptions);\n /**\n * Polyfill finished Promise in browsers that don't support it\n */\n if (!animation.finished) {\n animation.finished = new Promise((resolve, reject) => {\n animation.onfinish = resolve;\n animation.oncancel = reject;\n });\n }\n const target = keyframes[keyframes.length - 1];\n animation.finished\n .then(() => {\n // Apply styles to target\n render(target);\n // Ensure fill modes don't persist\n animation.cancel();\n })\n .catch(noop);\n /**\n * This forces Webkit to run animations on the main thread by exploiting\n * this condition:\n * https://trac.webkit.org/browser/webkit/trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp?rev=281238#L1099\n *\n * This fixes Webkit's timing bugs, like accelerated animations falling\n * out of sync with main thread animations and massive delays in starting\n * accelerated animations in WKWebView.\n */\n if (!allowWebkitAcceleration)\n animation.playbackRate = 1.000001;\n /**\n * If we can't animate the value natively then we can fallback to the numbers-only\n * polyfill for transforms. All keyframes must be numerical.\n */\n }\n else if (valueIsTransform && keyframes.every(isNumber)) {\n /**\n * If we only have a single keyframe, we need to create an initial keyframe by reading\n * the current value from the DOM.\n */\n if (keyframes.length === 1) {\n keyframes.unshift(parseFloat(readInitialValue()));\n }\n if (definition) {\n const applyStyle = render;\n render = (v) => applyStyle(definition.toDefaultUnit(v));\n }\n animation = new NumberAnimation(render, keyframes, Object.assign(Object.assign({}, options), { duration,\n easing }));\n }\n else {\n const target = keyframes[keyframes.length - 1];\n render(definition && isNumber(target)\n ? definition.toDefaultUnit(target)\n : target);\n }\n data.animations[name] = animation;\n /**\n * When an animation finishes, delete the reference to the previous animation.\n */\n animation === null || animation === void 0 ? void 0 : animation.finished.then(() => {\n data.animations[name] = undefined;\n data.generators[name] = undefined;\n data.prevGeneratorState[name] = undefined;\n }).catch(noop);\n return animation;\n };\n}\n\nexport { animateStyle };\n","import { animateStyle } from './animate-style.es.js';\nimport { getOptions } from './utils/options.es.js';\nimport { resolveElements } from './utils/resolve-elements.es.js';\nimport { createAnimations } from './utils/controls.es.js';\nimport { resolveOption } from '../../utils/stagger.es.js';\nimport { defaults } from './utils/defaults.es.js';\n\nfunction animate(elements, keyframes, options = {}) {\n var _a;\n elements = resolveElements(elements);\n const numElements = elements.length;\n /**\n * Create and start new animations\n */\n const animationFactories = [];\n for (let i = 0; i < numElements; i++) {\n const element = elements[i];\n for (const key in keyframes) {\n const valueOptions = getOptions(options, key);\n valueOptions.delay = resolveOption(valueOptions.delay, i, numElements);\n const animation = animateStyle(element, key, keyframes[key], valueOptions);\n animationFactories.push(animation);\n }\n }\n return createAnimations(animationFactories, \n /**\n * TODO:\n * If easing is set to spring or glide, duration will be dynamically\n * generated. Ideally we would dynamically generate this from\n * animation.effect.getComputedTiming().duration but this isn't\n * supported in iOS13 or our number polyfill. Perhaps it's possible\n * to Proxy animations returned from animateStyle that has duration\n * as a getter.\n */\n (_a = options.duration) !== null && _a !== void 0 ? _a : defaults.duration);\n}\n\nexport { animate };\n","const data = new WeakMap();\nfunction getAnimationData(element) {\n if (!data.has(element)) {\n data.set(element, {\n transforms: [],\n animations: {},\n generators: {},\n prevGeneratorState: {},\n });\n }\n return data.get(element);\n}\n\nexport { getAnimationData };\n","import { isCssVar } from './utils/css-var.es.js';\nimport { transformDefinitions } from './utils/transforms.es.js';\n\nconst style = {\n get: (element, name) => {\n let value = isCssVar(name)\n ? element.style.getPropertyValue(name)\n : getComputedStyle(element)[name];\n if (!value && value !== 0) {\n const definition = transformDefinitions.get(name);\n if (definition)\n value = definition.initialValue;\n }\n return value;\n },\n};\n\nexport { style };\n","import { __rest } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { progress } from '../../../utils/progress.es.js';\nimport { resolveOption } from '../../../utils/stagger.es.js';\nimport { defaultOffset, fillOffset } from '../../js/utils/offset.es.js';\nimport { animateStyle } from '../animate-style.es.js';\nimport { createAnimations } from '../utils/controls.es.js';\nimport { defaults } from '../utils/defaults.es.js';\nimport { isCustomEasing } from '../utils/easing.es.js';\nimport { keyframesList } from '../utils/keyframes.es.js';\nimport { getOptions } from '../utils/options.es.js';\nimport { resolveElements } from '../utils/resolve-elements.es.js';\nimport { isTransform } from '../utils/transforms.es.js';\nimport { calcNextTime } from './utils/calc-time.es.js';\nimport { addKeyframes } from './utils/edit.es.js';\nimport { compareByTime } from './utils/sort.es.js';\n\nfunction timeline(definition, options = {}) {\n var _a, _b;\n const animationDefinitions = createAnimationsFromTimeline(definition, options);\n /**\n * Create and start animations\n */\n const animationFactories = animationDefinitions\n .map((definition) => animateStyle(...definition))\n .filter(Boolean);\n return createAnimations(animationFactories, \n // Get the duration from the first animation definition\n (_b = (_a = animationDefinitions[0]) === null || _a === void 0 ? void 0 : _a[3].duration) !== null && _b !== void 0 ? _b : defaults.duration);\n}\nfunction createAnimationsFromTimeline(definition, _a = {}) {\n var { defaultOptions = {} } = _a, timelineOptions = __rest(_a, [\"defaultOptions\"]);\n const animationDefinitions = [];\n const elementSequences = new Map();\n const elementCache = {};\n const timeLabels = new Map();\n let prevTime = 0;\n let currentTime = 0;\n let totalDuration = 0;\n /**\n * Build the timeline by mapping over the definition array and converting\n * the definitions into keyframes and offsets with absolute time values.\n * These will later get converted into relative offsets in a second pass.\n */\n for (let i = 0; i < definition.length; i++) {\n const [elementDefinition, keyframes, options = {}] = definition[i];\n /**\n * If a relative or absolute time value has been specified we need to resolve\n * it in relation to the currentTime.\n */\n if (options.at !== undefined) {\n currentTime = calcNextTime(currentTime, options.at, prevTime, timeLabels);\n }\n /**\n * Keep track of the maximum duration in this definition. This will be\n * applied to currentTime once the definition has been parsed.\n */\n let maxDuration = 0;\n /**\n * Find all the elements specified in the definition and parse value\n * keyframes from their timeline definitions.\n */\n const elements = resolveElements(elementDefinition, elementCache);\n const numElements = elements.length;\n for (let elementIndex = 0; elementIndex < numElements; elementIndex++) {\n const element = elements[elementIndex];\n const elementSequence = getElementSequence(element, elementSequences);\n for (const key in keyframes) {\n const valueSequence = getValueSequence(key, elementSequence);\n let valueKeyframes = keyframesList(keyframes[key]);\n const valueOptions = getOptions(options, key);\n let { duration = defaultOptions.duration || defaults.duration, easing = defaultOptions.easing || defaults.easing, } = valueOptions;\n if (isCustomEasing(easing)) {\n const valueIsTransform = isTransform(key);\n invariant(valueKeyframes.length === 2 || !valueIsTransform, \"spring must be provided 2 keyframes within timeline\");\n const custom = easing.createAnimation(valueKeyframes, \n // TODO We currently only support explicit keyframes\n // so this doesn't currently read from the DOM\n () => \"0\", valueIsTransform);\n easing = custom.easing;\n if (custom.keyframes !== undefined)\n valueKeyframes = custom.keyframes;\n if (custom.duration !== undefined)\n duration = custom.duration;\n }\n const delay = resolveOption(options.delay, elementIndex, numElements) || 0;\n const startTime = currentTime + delay;\n const targetTime = startTime + duration;\n /**\n *\n */\n let { offset = defaultOffset(valueKeyframes.length) } = valueOptions;\n /**\n * If there's only one offset of 0, fill in a second with length 1\n *\n * TODO: Ensure there's a test that covers this removal\n */\n if (offset.length === 1 && offset[0] === 0) {\n offset[1] = 1;\n }\n /**\n * Fill out if offset if fewer offsets than keyframes\n */\n const remainder = length - valueKeyframes.length;\n remainder > 0 && fillOffset(offset, remainder);\n /**\n * If only one value has been set, ie [1], push a null to the start of\n * the keyframe array. This will let us mark a keyframe at this point\n * that will later be hydrated with the previous value.\n */\n valueKeyframes.length === 1 && valueKeyframes.unshift(null);\n /**\n * Add keyframes, mapping offsets to absolute time.\n */\n addKeyframes(valueSequence, valueKeyframes, easing, offset, startTime, targetTime);\n maxDuration = Math.max(delay + duration, maxDuration);\n totalDuration = Math.max(targetTime, totalDuration);\n }\n }\n prevTime = currentTime;\n currentTime += maxDuration;\n }\n /**\n * For every element and value combination create a new animation.\n */\n elementSequences.forEach((valueSequences, element) => {\n for (const key in valueSequences) {\n const valueSequence = valueSequences[key];\n /**\n * Arrange all the keyframes in ascending time order.\n */\n valueSequence.sort(compareByTime);\n const keyframes = [];\n const valueOffset = [];\n const valueEasing = [];\n /**\n * For each keyframe, translate absolute times into\n * relative offsets based on the total duration of the timeline.\n */\n for (let i = 0; i < valueSequence.length; i++) {\n const { at, value, easing } = valueSequence[i];\n keyframes.push(value);\n valueOffset.push(progress(0, totalDuration, at));\n valueEasing.push(easing || defaults.easing);\n }\n /**\n * If the first keyframe doesn't land on offset: 0\n * provide one by duplicating the initial keyframe. This ensures\n * it snaps to the first keyframe when the animation starts.\n */\n if (valueOffset[0] !== 0) {\n valueOffset.unshift(0);\n keyframes.unshift(keyframes[0]);\n valueEasing.unshift(\"linear\");\n }\n /**\n * If the last keyframe doesn't land on offset: 1\n * provide one with a null wildcard value. This will ensure it\n * stays static until the end of the animation.\n */\n if (valueOffset[valueOffset.length - 1] !== 1) {\n valueOffset.push(1);\n keyframes.push(null);\n }\n animationDefinitions.push([\n element,\n key,\n keyframes,\n Object.assign(Object.assign(Object.assign({}, defaultOptions), { duration: totalDuration, easing: valueEasing, offset: valueOffset }), timelineOptions),\n ]);\n }\n });\n return animationDefinitions;\n}\nfunction getElementSequence(element, sequences) {\n !sequences.has(element) && sequences.set(element, {});\n return sequences.get(element);\n}\nfunction getValueSequence(name, sequences) {\n if (!sequences[name])\n sequences[name] = [];\n return sequences[name];\n}\n\nexport { createAnimationsFromTimeline, timeline };\n","import { isNumber } from '../../../../utils/is-number.es.js';\n\nfunction calcNextTime(current, next, prev, labels) {\n var _a;\n if (isNumber(next)) {\n return next;\n }\n else if (next.startsWith(\"-\") || next.startsWith(\"+\")) {\n return Math.max(0, current + parseFloat(next));\n }\n else if (next === \"<\") {\n return prev;\n }\n else {\n return (_a = labels.get(next)) !== null && _a !== void 0 ? _a : current;\n }\n}\n\nexport { calcNextTime };\n","import { mix } from '../../../../utils/mix.es.js';\nimport { removeItem } from '../../../../utils/array.es.js';\nimport { getEasingForSegment } from '../../../js/utils/get-easing.es.js';\n\nfunction eraseKeyframes(sequence, startTime, endTime) {\n for (let i = 0; i < sequence.length; i++) {\n const keyframe = sequence[i];\n if (keyframe.at > startTime && keyframe.at < endTime) {\n removeItem(sequence, keyframe);\n // If we remove this item we have to push the pointer back one\n i--;\n }\n }\n}\nfunction addKeyframes(sequence, keyframes, easing, offset, startTime, endTime) {\n /**\n * Erase every existing value between currentTime and targetTime,\n * this will essentially splice this timeline into any currently\n * defined ones.\n */\n eraseKeyframes(sequence, startTime, endTime);\n for (let i = 0; i < keyframes.length; i++) {\n sequence.push({\n value: keyframes[i],\n at: mix(startTime, endTime, offset[i]),\n easing: getEasingForSegment(easing, i),\n });\n }\n}\n\nexport { addKeyframes, eraseKeyframes };\n","function compareByTime(a, b) {\n if (a.at === b.at) {\n return a.value === null ? 1 : -1;\n }\n else {\n return a.at - b.at;\n }\n}\n\nexport { compareByTime };\n","const cssVariableRenderer = (element, name) => (latest) => element.style.setProperty(name, latest);\nconst styleRenderer = (element, name) => (latest) => (element.style[name] = latest);\n\nexport { cssVariableRenderer, styleRenderer };\n","import { noop } from '../../../utils/noop.es.js';\nimport { stopAnimation } from './stop-animation.es.js';\nimport { ms } from './time.es.js';\n\nconst createAnimation = (factory) => factory();\nconst createAnimations = (animationFactory, duration) => new Proxy({\n animations: animationFactory.map(createAnimation).filter(Boolean),\n duration,\n}, controls);\n/**\n * TODO:\n * Currently this returns the first animation, ideally it would return\n * the first active animation.\n */\nconst getActiveAnimation = (state) => state.animations[0];\nconst controls = {\n get: (target, key) => {\n var _a, _b;\n switch (key) {\n case \"duration\":\n return target.duration;\n case \"currentTime\":\n let time = ((_a = getActiveAnimation(target)) === null || _a === void 0 ? void 0 : _a[key]) || 0;\n return time ? time / 1000 : 0;\n case \"playbackRate\":\n return (_b = getActiveAnimation(target)) === null || _b === void 0 ? void 0 : _b[key];\n case \"finished\":\n if (!target.finished) {\n target.finished = Promise.all(target.animations.map(selectFinished)).catch(noop);\n }\n return target.finished;\n case \"stop\":\n return () => target.animations.forEach(stopAnimation);\n default:\n return () => target.animations.forEach((animation) => animation[key]());\n }\n },\n set: (target, key, value) => {\n switch (key) {\n case \"currentTime\":\n value = ms(value);\n case \"currentTime\":\n case \"playbackRate\":\n for (let i = 0; i < target.animations.length; i++) {\n target.animations[i][key] = value;\n }\n return true;\n }\n return false;\n },\n};\nconst selectFinished = (animation) => animation.finished;\n\nexport { controls, createAnimations };\n","import { transformDefinitions } from './transforms.es.js';\n\nconst isCssVar = (name) => name.startsWith(\"--\");\nconst registeredProperties = new Set();\nfunction registerCssVariable(name) {\n if (registeredProperties.has(name))\n return;\n registeredProperties.add(name);\n try {\n const { syntax, initialValue } = transformDefinitions.has(name)\n ? transformDefinitions.get(name)\n : {};\n CSS.registerProperty({\n name,\n inherits: false,\n syntax,\n initialValue,\n });\n }\n catch (e) { }\n}\n\nexport { isCssVar, registerCssVariable, registeredProperties };\n","const defaults = {\n duration: 0.3,\n delay: 0,\n endDelay: 0,\n repeat: 0,\n easing: \"ease\",\n};\n\nexport { defaults };\n","import { isNumber } from '../../../utils/is-number.es.js';\n\nconst isCubicBezier = (easing) => Array.isArray(easing) && isNumber(easing[0]);\nconst isEasingList = (easing) => Array.isArray(easing) && !isNumber(easing[0]);\nconst isCustomEasing = (easing) => typeof easing === \"object\" &&\n Boolean(easing.createAnimation);\nconst convertEasing = (easing) => isCubicBezier(easing) ? cubicBezierAsString(easing) : easing;\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n\nexport { convertEasing, cubicBezierAsString, isCubicBezier, isCustomEasing, isEasingList };\n","const testAnimation = (keyframes) => document.createElement(\"div\").animate(keyframes, { duration: 0.001 });\nconst featureTests = {\n cssRegisterProperty: () => typeof CSS !== \"undefined\" &&\n Object.hasOwnProperty.call(CSS, \"registerProperty\"),\n waapi: () => Object.hasOwnProperty.call(Element.prototype, \"animate\"),\n partialKeyframes: () => {\n try {\n testAnimation({ opacity: [1] });\n }\n catch (e) {\n return false;\n }\n return true;\n },\n finished: () => Boolean(testAnimation({ opacity: [0, 1] }).finished),\n};\nconst results = {};\nconst supports = {};\nfor (const key in featureTests) {\n supports[key] = () => {\n if (results[key] === undefined)\n results[key] = featureTests[key]();\n return results[key];\n };\n}\n\nexport { supports };\n","import { isTransform, asTransformCssVar, transformAlias } from './transforms.es.js';\n\nfunction getStyleName(key) {\n if (transformAlias[key])\n key = transformAlias[key];\n return isTransform(key) ? asTransformCssVar(key) : key;\n}\n\nexport { getStyleName };\n","function hydrateKeyframes(keyframes, readInitialValue) {\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] === null) {\n keyframes[i] = i ? keyframes[i - 1] : readInitialValue();\n }\n }\n return keyframes;\n}\nconst keyframesList = (keyframes) => Array.isArray(keyframes) ? keyframes : [keyframes];\n\nexport { hydrateKeyframes, keyframesList };\n","const getOptions = (options, key) => \n/**\n * TODO: Make test for this\n * Always return a new object otherwise delay is overwritten by results of stagger\n * and this results in no stagger\n */\noptions[key] ? Object.assign(Object.assign({}, options), options[key]) : Object.assign({}, options);\n\nexport { getOptions };\n","function resolveElements(elements, selectorCache) {\n var _a;\n if (typeof elements === \"string\") {\n if (selectorCache) {\n (_a = selectorCache[elements]) !== null && _a !== void 0 ? _a : (selectorCache[elements] = document.querySelectorAll(elements));\n elements = selectorCache[elements];\n }\n else {\n elements = document.querySelectorAll(elements);\n }\n }\n else if (elements instanceof Element) {\n elements = [elements];\n }\n return Array.from(elements);\n}\n\nexport { resolveElements };\n","function stopAnimation(animation) {\n if (!animation)\n return;\n // Suppress error thrown by WAAPI\n try {\n /**\n * commitStyles has overhead so we only want to commit and cancel\n */\n animation.playState !== \"finished\" && animation.commitStyles();\n animation.cancel();\n }\n catch (e) { }\n}\n\nexport { stopAnimation };\n","const ms = (seconds) => seconds * 1000;\n\nexport { ms };\n","import { addUniqueItem } from '../../../utils/array.es.js';\nimport { noopReturn } from '../../../utils/noop.es.js';\nimport { getAnimationData } from '../data.es.js';\n\n/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nconst axes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nconst order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\nconst transformAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n};\nconst rotation = {\n syntax: \"\",\n initialValue: \"0deg\",\n toDefaultUnit: (v) => v + \"deg\",\n};\nconst baseTransformProperties = {\n translate: {\n syntax: \"\",\n initialValue: \"0px\",\n toDefaultUnit: (v) => v + \"px\",\n },\n rotate: rotation,\n scale: {\n syntax: \"\",\n initialValue: 1,\n toDefaultUnit: noopReturn,\n },\n skew: rotation,\n};\nconst transformDefinitions = new Map();\nconst asTransformCssVar = (name) => `--motion-${name}`;\n/**\n * Generate a list of every possible transform key\n */\nconst transforms = [\"x\", \"y\", \"z\"];\norder.forEach((name) => {\n axes.forEach((axis) => {\n transforms.push(name + axis);\n transformDefinitions.set(asTransformCssVar(name + axis), baseTransformProperties[name]);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nconst compareTransformOrder = (a, b) => transforms.indexOf(a) - transforms.indexOf(b);\n/**\n * Provide a quick way to check if a string is the name of a transform\n */\nconst transformLookup = new Set(transforms);\nconst isTransform = (name) => transformLookup.has(name);\nconst addTransformToElement = (element, name) => {\n // Map x to translateX etc\n if (transformAlias[name])\n name = transformAlias[name];\n const { transforms } = getAnimationData(element);\n addUniqueItem(transforms, name);\n element.style.transform = buildTransformTemplate(transforms);\n};\nconst buildTransformTemplate = (transforms) => transforms\n .sort(compareTransformOrder)\n .reduce(transformListToString, \"\")\n .trim();\nconst transformListToString = (template, name) => `${template} ${name}(var(${asTransformCssVar(name)}))`;\n\nexport { addTransformToElement, asTransformCssVar, axes, buildTransformTemplate, compareTransformOrder, isTransform, transformAlias, transformDefinitions };\n","import { defaults } from '../dom/utils/defaults.es.js';\nimport { isCustomEasing, isEasingList } from '../dom/utils/easing.es.js';\nimport { getEasingFunction } from './easing/utils/get-function.es.js';\nimport { slowInterpolateNumbers } from './utils/interpolate.es.js';\n\nclass NumberAnimation {\n constructor(output, keyframes = [0, 1], { easing = defaults.easing, duration = defaults.duration, delay = defaults.delay, endDelay = defaults.endDelay, repeat = defaults.repeat, offset, direction = \"normal\", } = {}) {\n this.startTime = 0;\n this.rate = 1;\n this.t = 0;\n this.cancelTimestamp = 0;\n this.playState = \"idle\";\n this.finished = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n const totalDuration = duration * (repeat + 1);\n /**\n * We don't currently support custom easing (spring, glide etc) in NumberAnimation\n * (although this is completely possible), so this will have been hydrated by\n * animateStyle.\n */\n if (isCustomEasing(easing))\n easing = \"ease\";\n const interpolate = slowInterpolateNumbers(keyframes, offset, isEasingList(easing)\n ? easing.map(getEasingFunction)\n : getEasingFunction(easing));\n this.tick = (timestamp) => {\n if (this.pauseTime)\n timestamp = this.pauseTime;\n let t = (timestamp - this.startTime) * this.rate;\n this.t = t;\n // Convert to seconds\n t /= 1000;\n // Rebase on delay\n t = Math.max(t - delay, 0);\n /**\n * If this animation has finished, set the current time\n * to the total duration.\n */\n if (this.playState === \"finished\")\n t = totalDuration;\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = t / duration;\n // TODO progress += iterationStart\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n iterationProgress === 1 && currentIteration--;\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const iterationIsOdd = currentIteration % 2;\n if (direction === \"reverse\" ||\n (direction === \"alternate\" && iterationIsOdd) ||\n (direction === \"alternate-reverse\" && !iterationIsOdd)) {\n iterationProgress = 1 - iterationProgress;\n }\n const latest = interpolate(t >= totalDuration ? 1 : Math.min(iterationProgress, 1));\n output(latest);\n const isAnimationFinished = this.playState === \"finished\" || t >= totalDuration + endDelay;\n if (isAnimationFinished) {\n this.playState = \"finished\";\n this.resolve(latest);\n }\n else if (this.playState !== \"idle\") {\n requestAnimationFrame(this.tick);\n }\n };\n this.play();\n }\n play() {\n const now = performance.now();\n this.playState = \"running\";\n if (this.pauseTime) {\n this.startTime = now - (this.pauseTime - this.startTime);\n }\n else if (!this.startTime) {\n this.startTime = now;\n }\n this.pauseTime = undefined;\n requestAnimationFrame(this.tick);\n }\n pause() {\n this.playState = \"paused\";\n this.pauseTime = performance.now();\n }\n finish() {\n this.playState = \"finished\";\n this.tick(0);\n }\n cancel() {\n this.playState = \"idle\";\n this.tick(this.cancelTimestamp);\n this.reject(false);\n }\n reverse() {\n this.rate *= -1;\n }\n commitStyles() {\n this.cancelTimestamp = performance.now();\n }\n get currentTime() {\n return this.t;\n }\n set currentTime(t) {\n if (this.pauseTime || this.rate === 0) {\n this.pauseTime = t;\n }\n else {\n this.startTime = performance.now() - t / this.rate;\n }\n }\n get playbackRate() {\n return this.rate;\n }\n set playbackRate(rate) {\n this.rate = rate;\n }\n}\n\nexport { NumberAnimation };\n","import { noopReturn } from '../../../utils/noop.es.js';\n\n/*\n Bezier function generator\n\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticiably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) * t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return noopReturn;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { calcVelocity, createSpringGenerator } from '../spring/generator.es.js';\nimport { ms } from '../../../dom/utils/time.es.js';\n\nconst createGlideGenerator = ({ from = 0, velocity = 0.0, power = 0.8, decay = 0.325, bounceDamping, bounceStiffness, changeTarget, min, max, restDistance = 0.5, restSpeed, }) => {\n decay = ms(decay);\n const state = {\n value: from,\n target: from,\n velocity,\n hasReachedTarget: false,\n done: false,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = from + amplitude;\n const target = changeTarget === undefined ? ideal : changeTarget(ideal);\n state.target = target;\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - from;\n const calcDelta = (t) => -amplitude * Math.exp(-t / decay);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDistance;\n state.value = state.done ? target : latest;\n state.velocity =\n t === 0 ? velocity : calcVelocity(calcLatest, t, state.value);\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring = createSpringGenerator({\n from: state.value,\n to: nearestBoundary(state.value),\n velocity: state.velocity,\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDistance,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t > timeReachedBoundary) {\n state.hasReachedTarget = true;\n return spring.next(t - timeReachedBoundary);\n }\n else {\n state.hasReachedTarget = false;\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n};\n\nexport { createGlideGenerator };\n","import { createGlideGenerator } from './generator.es.js';\nimport { createGeneratorEasing } from '../utils/create-generator-easing.es.js';\n\nconst glide = createGeneratorEasing(createGlideGenerator);\n\nexport { glide };\n","import { velocityPerSecond } from '../../../../utils/velocity-per-second.es.js';\nimport { hasReachedTarget } from '../utils/has-reached-target.es.js';\n\nconst defaultStiffness = 100.0;\nconst defaultDamping = 10.0;\nconst defaultMass = 1.0;\nconst calcDampingRatio = (stiffness = defaultStiffness, damping = defaultDamping, mass = defaultMass) => damping / (2 * Math.sqrt(stiffness * mass));\nconst calcAngularFreq = (undampedFreq, dampingRatio) => undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\nconst createSpringGenerator = ({ stiffness = defaultStiffness, damping = defaultDamping, mass = defaultMass, from = 0, to = 1, velocity = 0.0, restSpeed = 2, restDistance = 0.5, } = {}) => {\n velocity = velocity ? velocity / 1000 : 0.0;\n const state = {\n done: false,\n value: from,\n target: to,\n velocity,\n hasReachedTarget: false,\n };\n const dampingRatio = calcDampingRatio(stiffness, damping, mass);\n const initialDelta = to - from;\n const undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n let resolveSpring;\n if (dampingRatio < 1) {\n // Underdamped spring (bouncy)\n resolveSpring = (t) => to -\n Math.exp(-dampingRatio * undampedAngularFreq * t) *\n (((-velocity + dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t));\n }\n else {\n // Critically damped spring\n resolveSpring = (t) => to -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta + (velocity + undampedAngularFreq * initialDelta) * t);\n }\n return {\n next: (t) => {\n state.value = resolveSpring(t);\n state.velocity =\n t === 0 ? velocity : calcVelocity(resolveSpring, t, state.value);\n const isBelowVelocityThreshold = Math.abs(state.velocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(to - state.value) <= restDistance;\n state.done = isBelowVelocityThreshold && isBelowDisplacementThreshold;\n state.hasReachedTarget = hasReachedTarget(from, to, state.value);\n return state;\n },\n };\n};\nconst sampleT = 5; // ms\nfunction calcVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - sampleT, 0);\n return velocityPerSecond(current - resolveValue(prevT), 5);\n}\n\nexport { calcAngularFreq, calcDampingRatio, calcVelocity, createSpringGenerator };\n","import { createSpringGenerator } from './generator.es.js';\nimport { createGeneratorEasing } from '../utils/create-generator-easing.es.js';\n\nconst spring = createGeneratorEasing(createSpringGenerator);\n\nexport { spring };\n","import { clamp } from '../../../utils/clamp.es.js';\n\nconst steps = (steps, direction = \"end\") => (progress) => {\n progress =\n direction === \"end\" ? Math.min(progress, 0.999) : Math.max(progress, 0.001);\n const expanded = progress * steps;\n const rounded = direction === \"end\" ? Math.floor(expanded) : Math.ceil(expanded);\n return clamp(0, 1, rounded / steps);\n};\n\nexport { steps };\n","import { pregenerateKeyframes } from './pregenerate-keyframes.es.js';\n\nfunction createGeneratorEasing(createGenerator) {\n const keyframesCache = new WeakMap();\n return (options = {}) => {\n const generatorCache = new Map();\n const getGenerator = (from = 0, to = 100, velocity = 0, isScale = false) => {\n const key = `${from}-${to}-${velocity}-${isScale}`;\n if (!generatorCache.has(key)) {\n generatorCache.set(key, createGenerator(Object.assign({ from,\n to,\n velocity, restSpeed: isScale ? 0.05 : 2, restDistance: isScale ? 0.01 : 0.5 }, options)));\n }\n return generatorCache.get(key);\n };\n const getKeyframes = (generator) => {\n if (!keyframesCache.has(generator)) {\n keyframesCache.set(generator, pregenerateKeyframes(generator));\n }\n return keyframesCache.get(generator);\n };\n return {\n createAnimation: (keyframes, getOrigin, canUseGenerator, name, data) => {\n let settings;\n let generator;\n const numKeyframes = keyframes.length;\n let shouldUseGenerator = canUseGenerator &&\n numKeyframes <= 2 &&\n keyframes.every(isNumberOrNull);\n if (shouldUseGenerator) {\n const prevAnimationState = name && data && data.prevGeneratorState[name];\n const velocity = prevAnimationState &&\n (numKeyframes === 1 ||\n (numKeyframes === 2 && keyframes[0] === null))\n ? prevAnimationState.velocity\n : 0;\n const target = keyframes[numKeyframes - 1];\n const unresolvedOrigin = numKeyframes === 1 ? null : keyframes[0];\n const origin = unresolvedOrigin === null\n ? prevAnimationState\n ? prevAnimationState.value\n : parseFloat(getOrigin())\n : unresolvedOrigin;\n generator = getGenerator(origin, target, velocity, name === null || name === void 0 ? void 0 : name.includes(\"scale\"));\n const keyframesMetadata = getKeyframes(generator);\n settings = Object.assign(Object.assign({}, keyframesMetadata), { easing: \"linear\" });\n }\n else {\n generator = getGenerator(0, 100);\n const keyframesMetadata = getKeyframes(generator);\n settings = {\n easing: \"ease\",\n duration: keyframesMetadata.overshootDuration,\n };\n }\n // TODO Add test for this\n if (generator && data && name) {\n data.generators[name] = generator;\n }\n return settings;\n },\n };\n };\n}\nconst isNumberOrNull = (value) => typeof value !== \"string\";\n\nexport { createGeneratorEasing };\n","import { cubicBezier } from '../cubic-bezier.es.js';\nimport { steps } from '../steps.es.js';\nimport { noopReturn } from '../../../../utils/noop.es.js';\n\nconst namedEasings = {\n ease: cubicBezier(0.25, 0.1, 0.25, 1.0),\n \"ease-in\": cubicBezier(0.42, 0.0, 1.0, 1.0),\n \"ease-in-out\": cubicBezier(0.42, 0.0, 0.58, 1.0),\n \"ease-out\": cubicBezier(0.0, 0.0, 0.58, 1.0),\n};\nconst functionArgsRegex = /\\((.*?)\\)/;\nfunction getEasingFunction(definition) {\n // If already an easing function, return\n if (typeof definition === \"function\")\n return definition;\n // If an easing curve definition, return bezier function\n if (Array.isArray(definition))\n return cubicBezier(...definition);\n // If we have a predefined easing function, return\n if (namedEasings[definition])\n return namedEasings[definition];\n // If this is a steps function, attempt to create easing curve\n if (definition.startsWith(\"steps\")) {\n const args = functionArgsRegex.exec(definition);\n if (args) {\n const argsArray = args[1].split(\",\");\n return steps(parseFloat(argsArray[0]), argsArray[1].trim());\n }\n }\n return noopReturn;\n}\n\nexport { getEasingFunction };\n","function hasReachedTarget(origin, target, current) {\n return ((origin < target && current >= target) ||\n (origin > target && current <= target));\n}\n\nexport { hasReachedTarget };\n","const timeStep = 10;\nconst maxDuration = 10000;\nfunction pregenerateKeyframes(generator) {\n let overshootDuration = undefined;\n let timestamp = timeStep;\n let state = generator.next(0);\n const keyframes = [state.value];\n while (!state.done && timestamp < maxDuration) {\n state = generator.next(timestamp);\n keyframes.push(state.done ? state.target : state.value);\n if (overshootDuration === undefined && state.hasReachedTarget) {\n overshootDuration = timestamp;\n }\n timestamp += timeStep;\n }\n const duration = timestamp - timeStep;\n /**\n * If generating an animation that didn't actually move,\n * generate a second keyframe so we have an origin and target.\n */\n if (keyframes.length === 1)\n keyframes.push(state.value);\n return {\n keyframes,\n duration: duration / 1000,\n overshootDuration: (overshootDuration !== null && overshootDuration !== void 0 ? overshootDuration : duration) / 1000,\n };\n}\n\nexport { pregenerateKeyframes };\n","import { wrap } from '../../../utils/wrap.es.js';\nimport { isEasingList } from '../../dom/utils/easing.es.js';\n\nfunction getEasingForSegment(easing, i) {\n return isEasingList(easing)\n ? easing[wrap(0, easing.length, i)]\n : easing;\n}\n\nexport { getEasingForSegment };\n","import { mix } from '../../../utils/mix.es.js';\nimport { noopReturn } from '../../../utils/noop.es.js';\nimport { progress } from '../../../utils/progress.es.js';\nimport { getEasingForSegment } from './get-easing.es.js';\nimport { defaultOffset, fillOffset } from './offset.es.js';\n\nconst clampProgress = (p) => Math.min(1, Math.max(p, 0));\nfunction slowInterpolateNumbers(output, input = defaultOffset(output.length), easing = noopReturn) {\n const length = output.length;\n /**\n * If the input length is lower than the output we\n * fill the input to match. This currently assumes the input\n * is an animation progress value so is a good candidate for\n * moving outside the function.\n */\n const remainder = length - input.length;\n remainder > 0 && fillOffset(input, remainder);\n return (t) => {\n let i = 0;\n for (; i < length - 2; i++) {\n if (t < input[i + 1])\n break;\n }\n let progressInRange = clampProgress(progress(input[i], input[i + 1], t));\n const segmentEasing = getEasingForSegment(easing, i);\n progressInRange = segmentEasing(progressInRange);\n return mix(output[i], output[i + 1], progressInRange);\n };\n}\n\nexport { slowInterpolateNumbers };\n","import { mix } from '../../../utils/mix.es.js';\nimport { progress } from '../../../utils/progress.es.js';\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = progress(0, remaining, i);\n offset.push(mix(min, 1, offsetProgress));\n }\n}\nfunction defaultOffset(length) {\n const offset = [0];\n fillOffset(offset, length - 1);\n return offset;\n}\n\nexport { defaultOffset, fillOffset };\n","function addUniqueItem(array, item) {\n array.indexOf(item) === -1 && array.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n\nexport { addUniqueItem, removeItem };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","const isNumber = (value) => typeof value === \"number\";\n\nexport { isNumber };\n","/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\n","const noop = () => { };\nconst noopReturn = (v) => v;\n\nexport { noop, noopReturn };\n","/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\nconst progress = (from, to, value) => {\n return to - from === 0 ? 1 : (value - from) / (to - from);\n};\n\nexport { progress };\n","import { getEasingFunction } from '../targets/js/easing/utils/get-function.es.js';\nimport { isNumber } from './is-number.es.js';\n\nfunction stagger(duration = 0.1, { start = 0, from = 0, easing } = {}) {\n return (i, total) => {\n const fromIndex = isNumber(from) ? from : getFromIndex(from, total);\n const distance = Math.abs(fromIndex - i);\n let delay = duration * distance;\n if (easing) {\n const maxDelay = total * i;\n const easingFunction = getEasingFunction(easing);\n delay = easingFunction(delay / maxDelay) * maxDelay;\n }\n return start + delay;\n };\n}\nfunction getFromIndex(from, total) {\n if (from === \"first\") {\n return 0;\n }\n else {\n const lastIndex = total - 1;\n return from === \"last\" ? lastIndex : lastIndex / 2;\n }\n}\nfunction resolveOption(option, i, total) {\n return typeof option === \"function\"\n ? option(i, total)\n : option;\n}\n\nexport { getFromIndex, resolveOption, stagger };\n","/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","const wrap = (min, max, v) => {\n const rangeSize = max - min;\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\n};\n\nexport { wrap };\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n","import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n","import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\t// We always have ref in props.ref, except for\n\t// mobx-react. It will call this function directly\n\t// and always pass ref as the second argument.\n\tfunction Forwarded(props, ref) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\tref = props.ref || ref;\n\t\treturn fn(\n\t\t\tclone,\n\t\t\t!ref || (typeof ref === 'object' && !('current' in ref)) ? null : ref\n\t\t);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n","import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n","import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode);\n};\n\nconst oldUnmount = options.unmount;\noptions.unmount = function(vnode) {\n\t/** @type {import('./internal').Component} */\n\tconst component = vnode._component;\n\tif (component && component._onResolve) {\n\t\tcomponent._onResolve();\n\t}\n\n\t// if the component is still hydrating\n\t// most likely it is because the component is suspended\n\t// we set the vnode.type as `null` so that it is not a typeof function\n\t// so the unmount will remove the vnode._dom\n\tif (component && vnode._hydrating === true) {\n\t\tvnode.type = null;\n\t}\n\n\tif (oldUnmount) oldUnmount(vnode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent._onResolve = null;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._onResolve = onResolved;\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n","import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n","import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function() {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._temp) {\n\t\t\t_this._container = container;\n\n\t\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t\t_this._temp = {\n\t\t\t\tnodeType: 1,\n\t\t\t\tparentNode: container,\n\t\t\t\tchildNodes: [],\n\t\t\t\tappendChild(child) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tinsertBefore(child, before) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tremoveChild(child) {\n\t\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t\t_this._container.removeChild(child);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Render our wrapping element into temp.\n\t\trender(\n\t\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t\t_this._temp\n\t\t);\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._temp) {\n\t\t_this.componentWillUnmount();\n\t}\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\treturn createElement(Portal, { _vnode: vnode, _container: container });\n}\n","import { EMPTY_OBJ } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\nimport { slice } from './util';\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {import('./internal').PreactElement | object} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we are in\n\t// hydration mode or not by passing the `hydrate` function instead of a DOM\n\t// element..\n\tlet isHydrating = typeof replaceNode === 'function';\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\n\tvnode = (\n\t\t(!isHydrating && replaceNode) ||\n\t\tparentDom\n\t)._children = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\tvnode,\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\t!isHydrating && replaceNode\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: parentDom.firstChild\n\t\t\t? slice.call(parentDom.childNodes)\n\t\t\t: null,\n\t\tcommitQueue,\n\t\t!isHydrating && replaceNode\n\t\t\t? replaceNode\n\t\t\t: oldVNode\n\t\t\t? oldVNode._dom\n\t\t\t: parentDom.firstChild,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./internal').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, hydrate);\n}\n","import { options, Fragment } from 'preact';\n\n/** @typedef {import('preact').VNode} VNode */\n\nlet vnodeId = 0;\n\n/**\n * @fileoverview\n * This file exports various methods that implement Babel's \"automatic\" JSX runtime API:\n * - jsx(type, props, key)\n * - jsxs(type, props, key)\n * - jsxDEV(type, props, key, __source, __self)\n *\n * The implementation of createVNode here is optimized for performance.\n * Benchmarks: https://esbench.com/bench/5f6b54a0b4632100a7dcd2b3\n */\n\n/**\n * JSX.Element factory used by Babel's {runtime:\"automatic\"} JSX transform\n * @param {VNode['type']} type\n * @param {VNode['props']} props\n * @param {VNode['key']} [key]\n * @param {string} [__source]\n * @param {string} [__self]\n */\nfunction createVNode(type, props, key, __source, __self) {\n\t// We'll want to preserve `ref` in props to get rid of the need for\n\t// forwardRef components in the future, but that should happen via\n\t// a separate PR.\n\tlet normalizedProps = {},\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'ref') {\n\t\t\tref = props[i];\n\t\t} else {\n\t\t\tnormalizedProps[i] = props[i];\n\t\t}\n\t}\n\n\tconst vnode = {\n\t\ttype,\n\t\tprops: normalizedProps,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: --vnodeId,\n\t\t__source,\n\t\t__self\n\t};\n\n\t// If a Component VNode, check for and apply defaultProps.\n\t// Note: `type` is often a String, and can be `undefined` in development.\n\tif (typeof type === 'function' && (ref = type.defaultProps)) {\n\t\tfor (i in ref)\n\t\t\tif (typeof normalizedProps[i] === 'undefined') {\n\t\t\t\tnormalizedProps[i] = ref[i];\n\t\t\t}\n\t}\n\n\tif (options.vnode) options.vnode(vnode);\n\treturn vnode;\n}\n\nexport {\n\tcreateVNode as jsx,\n\tcreateVNode as jsxs,\n\tcreateVNode as jsxDEV,\n\tFragment\n};\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\nprocess._rerenderCount = 0;\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tnull,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getDomSibling(oldParentVNode, i + 1);\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tvnode,\n\t\t\t\t\tvnode,\n\t\t\t\t\tc,\n\t\t\t\t\tvnode._dom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink[H:h]/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (\n\t\t\tvalue != null &&\n\t\t\t(value !== false || (name[0] === 'a' && name[1] === 'r'))\n\t\t) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t(child === dom ||\n\t\t\t\t\t(nodeType ? child.localName == nodeType : child.nodeType == 3))\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value || (nodeType === 'progress' && !i))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(r[i], parentVNode, typeof vnode.type != 'function');\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) removeNode(vnode._dom);\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","/**\n * SSR Window 4.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: October 27, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\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}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\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 changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const 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(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 mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\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 && swiper.enabled) {\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, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\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 return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\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(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 static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n 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-',\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};","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\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 const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\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 onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\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 onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\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 let newProgress;\n const 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 { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\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 const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\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 let 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 (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\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 const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const 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 const 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}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\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 const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\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 Object.assign(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.focusableElements)) {\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 const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let 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 && !params.cssMode) {\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 let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\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 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\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 }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\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.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[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 const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-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 const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const 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 const 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 (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.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 const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const 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 (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\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}","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\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 extend(allModulesParams, obj);\n };\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n 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 observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\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 = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\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 const 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 const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\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 let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\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 const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\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}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\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(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\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}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let 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(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\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 let newProgress;\n const 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}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\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 updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\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 const 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 const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\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(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\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 = slideIndex;\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}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\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 Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || 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 updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\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 marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const 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 const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\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 slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\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\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 $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= 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 const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\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) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\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 let 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 let 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}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport $ from '../../shared/dom.js';\nexport default function A11y({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n });\n let liveRegion = null;\n\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber(size = 16) {\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || !swiper.navigation) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function updatePagination() {\n const params = swiper.params.a11y;\n\n if (hasPagination()) {\n swiper.pagination.bullets.each(bulletEl => {\n const $bulletEl = $(bulletEl);\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n }\n\n const initNavEl = ($el, wrapperId, message) => {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n function init() {\n const params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n const $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n addElRole($(swiper.slides), params.slideRole);\n const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n swiper.slides.each((slideEl, index) => {\n const $slideEl = $(slideEl);\n const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasPagination()) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasPagination()) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n on('beforeInit', () => {\n liveRegion = $(``);\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n updateNavigation();\n });\n on('toEdge', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('fromEdge', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick } from '../../shared/utils.js';\nexport default function Controller({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n });\n swiper.controller = {\n control: undefined\n };\n\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n } // xxx: for now i will just save one spline function to to\n\n\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n\n function removeSpline() {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n\n on('beforeInit', () => {\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCards({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cardsEffect: {\n slideShadows: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n activeIndex\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = swiper.translate;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = $slideEl[0].swiperSlideOffset;\n\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);\n }\n\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -2 * progress;\n let tXAdd = 8 - Math.abs(progress) * 0.75;\n const isSwipeToNext = (i === activeIndex || i === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (i === activeIndex || i === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n\n if (progress < 0) {\n // next\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${rotate}deg)\n scale(${scaleString})\n `;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowEl = $slideEl.find('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.cardsEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nexport default function EffectCoverflow({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth; // Each slide offset from center\n\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.coverflowEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n };\n\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCreative({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n creativeEffect: {\n transformEl: null,\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n\n const setTranslate = () => {\n const {\n slides,\n $wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n } // set translate\n\n\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n }); // set rotates\n\n r.forEach((value, index) => {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; // Set shadows\n\n if (custom && data.shadow || !custom) {\n let $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0 && data.shadow) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform).css({\n opacity: opacityString\n });\n\n if (data.origin) {\n $targetEl.css('transform-origin', data.origin);\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.creativeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import $ from '../../shared/dom.js';\nimport effectInit from '../../shared/effect-init.js';\nexport default function EffectCube({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n\n const setTranslate = () => {\n const {\n $el,\n $wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: `${swiperWidth}px`\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n\n const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n };\n\n const setTransition = duration => {\n const {\n $el,\n slides\n } = swiper;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n };\n\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.css({\n opacity: slideOpacity\n }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.fadeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFlip({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (params.slideShadows) {\n // Set shadows\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.flipEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import { now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n\n function onTouchMove() {\n const {\n touchEventsData: data,\n touches\n } = swiper; // Velocity\n\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 }\n\n function onTouchEnd({\n currentPos\n }) {\n const {\n params,\n $wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper; // Time diff\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\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.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\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.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\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.freeMode.momentumBounce) {\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.freeMode.sticky) {\n let nextSlide;\n\n for (let 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 once('transitionEnd', () => {\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.freeMode.sticky) {\n // If freeMode.sticky 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 const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const 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.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeMode.momentumBounce && 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(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\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(() => {\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.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n\n Object.assign(swiper, {\n freeMode: {\n onTouchMove,\n onTouchEnd\n }\n });\n}","export default function Grid({\n swiper,\n extendParams\n}) {\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n\n const initSlides = slidesLength => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const {\n slidesPerGroup,\n spaceBetween\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid; // Set slides order\n\n let newSlideOrderIndex;\n let column;\n let row;\n\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.css({\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n\n if (row >= rows) {\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(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && `${spaceBetween}px` : '');\n };\n\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const {\n spaceBetween,\n centeredSlides,\n roundLengths\n } = swiper.params;\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.$wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`\n });\n\n if (centeredSlides) {\n snapGrid.splice(0, snapGrid.length);\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid.push(...newSlidesGrid);\n }\n };\n\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize\n };\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function HashNavigation({\n swiper,\n extendParams,\n emit,\n on\n}) {\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n });\n\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n };\n\n const setHash = () => {\n if (!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 emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n emit('hashSet');\n }\n };\n\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n\n if (hash) {\n const speed = 0;\n\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const 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', onHashChange);\n }\n };\n\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', onHashChange);\n }\n };\n\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}","import { getWindow } from 'ssr-window';\nexport default function History({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides'\n }\n });\n let initialized = false;\n let paths = {};\n\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n const slide = swiper.slides.eq(index);\n let value = slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key}/${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n\n const currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, swiper.paths.value, false);\n };\n\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) return;\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n\n const destroy = () => {\n const window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Keyboard({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n\n const $el = swiper.$el;\n const swiperWidth = $el[0].clientWidth;\n const swiperHeight = $el[0].clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n emit('keyPress', kc);\n return undefined;\n }\n\n function enable() {\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n\n function disable() {\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Lazy({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n });\n swiper.lazy = {};\n let scrollHandlerAttached = false;\n let initialImageLoaded = false;\n\n function loadInSlide(index, loadInDuplicate = true) {\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(imageEl => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(sourceEl => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n const {\n $wrapperEl,\n params: swiperParams,\n slides,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n } // Prev Slides\n\n\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n const window = getWindow();\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n const isWindow = $scrollElement[0] === window;\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const {\n rtlTranslate: rtl\n } = swiper;\n let inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', () => {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', () => {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', () => {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', () => {\n const {\n lazy,\n cssMode,\n watchSlidesProgress,\n touchReleaseOnEdges,\n resistanceRatio\n } = swiper.params;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n Object.assign(swiper.lazy, {\n load,\n loadInSlide\n });\n}","import appendSlide from './methods/appendSlide.js';\nimport prependSlide from './methods/prependSlide.js';\nimport addSlide from './methods/addSlide.js';\nimport removeSlide from './methods/removeSlide.js';\nimport removeAllSlides from './methods/removeAllSlides.js';\nexport default function Manipulation({\n swiper\n}) {\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}","export default function addSlide(index, slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n const 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 let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let 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 (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.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 appendSlide(slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let 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) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n let newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let 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) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","export default function removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let 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) {\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}","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n }\n\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n }\n\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n\n function events(method) {\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target[method]('mouseenter', handleMouseEnter);\n target[method]('mouseleave', handleMouseLeave);\n target[method]('wheel', handle);\n }\n\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n\n if (swiper.mousewheel.enabled) return false;\n events('on');\n swiper.mousewheel.enabled = true;\n return true;\n }\n\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n\n if (!swiper.mousewheel.enabled) return false;\n events('off');\n swiper.mousewheel.enabled = false;\n return true;\n }\n\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\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 swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning);\n toggleEl($nextEl, swiper.isEnd);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let 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 emit('navigationShow');\n } else {\n 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 Object.assign(swiper.navigation, {\n update,\n init,\n destroy\n });\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - swiper.previousIndex;\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}","import $ from '../../shared/dom.js';\nexport default function Parallax({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n parallax: {\n enabled: false\n }\n });\n\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n };\n\n const setTranslate = () => {\n const {\n $el,\n slides,\n progress,\n snapGrid\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, progress);\n });\n slides.each((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, slideProgress);\n });\n });\n };\n\n const setTransition = (duration = swiper.params.speed) => {\n const {\n $el\n } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(parallaxEl => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n };\n\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n $el: null,\n $dragEl: null\n };\n\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl,\n progress\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n\n if (params.hide) {\n clearTimeout(timeout);\n $el[0].style.opacity = 1;\n timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n }\n\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n }\n\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function getPointerPosition(e) {\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n }\n\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n $el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n setDragPosition(e);\n clearTimeout(dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n emit('scrollbarDragStart', e);\n }\n\n function onDragMove(e) {\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n emit('scrollbarDragMove', e);\n }\n\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n\n function events(method) {\n const {\n scrollbar,\n touchEventsTouch,\n touchEventsDesktop,\n params,\n support\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n if (!support.touch) {\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n } else {\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n }\n }\n\n function enableDraggable() {\n if (!swiper.params.scrollbar.el) return;\n events('on');\n }\n\n function disableDraggable() {\n if (!swiper.params.scrollbar.el) return;\n events('off');\n }\n\n function init() {\n const {\n scrollbar,\n $el: $swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n Object.assign(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function destroy() {\n disableDraggable();\n }\n\n on('init', () => {\n init();\n updateSize();\n setTranslate();\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.scrollbar;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n Object.assign(swiper.scrollbar, {\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import { isObject } from '../../shared/utils.js';\nimport $ from '../../shared/dom.js';\nexport default function Thumb({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n }\n\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n }\n\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', () => {\n if (!swiper.thumbs.swiper) return;\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}","import $ from '../../shared/dom.js';\nimport { setCSSProperty } from '../../shared/utils.js';\nexport default function Virtual({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n const $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(`
${slide}
`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n }\n\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\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\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n\n swiper.updateProgress();\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n\n return;\n }\n\n const prependIndexes = [];\n const appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n\n appendIndexes.forEach(index => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach(index => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n }\n\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n update(true);\n }\n\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n\n function removeAllSlides() {\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n update(true);\n swiper.slideTo(0, 0);\n }\n\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.slides = swiper.params.virtual.slides;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { getTranslate } from '../../shared/utils.js';\nexport default function Zoom({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let gesturesEnabled;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const gesture = {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\n const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\n emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n\n });\n\n function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n } // Events\n\n\n function onGestureStart(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n isScaling = true;\n }\n\n function onGestureChange(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function onGestureEnd(e) {\n const device = swiper.device;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n }\n\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n }\n\n function onTouchMove(e) {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n } // Define if we need image drag\n\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n }\n\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n }\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n } // Toggle Zoom\n\n\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n\n function getListeners() {\n const support = swiper.support;\n const passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n function getSlideSelector() {\n return `.${swiper.params.slideClass}`;\n }\n\n function toggleGestures(method) {\n const {\n passiveListener\n } = getListeners();\n const slideSelector = getSlideSelector();\n swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\n swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\n }\n\n function enableGestures() {\n if (gesturesEnabled) return;\n gesturesEnabled = true;\n toggleGestures('on');\n }\n\n function disableGestures() {\n if (!gesturesEnabled) return;\n gesturesEnabled = false;\n toggleGestures('off');\n } // Attach/Detach Events\n\n\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const support = swiper.support;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n const support = swiper.support;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd(e);\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n const oldChildrenKeys = oldChildren.map(child => child.key);\n const childrenKeys = children.map(child => child.key);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import React from 'react';\n\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (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 if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nexport { getChildren };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj = {}) {\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n Object.keys(obj).forEach(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 events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nexport { getParams };","import Swiper from 'swiper';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction initSwiper(swiperParams) {\n return new Swiper(swiperParams);\n}\n\nfunction mountSwiper({\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n}, swiperParams) {\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { initSwiper, mountSwiper };","import React from 'react';\nimport Swiper from 'swiper';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let 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 const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: `${child.key}-duplicate-${index}-${position}`,\n className: `${child.props.className || ''} ${swiperParams.slideDuplicateClass}`\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n modifiedSlides.forEach((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 [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","/**\n * Swiper React 7.3.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2021 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: November 24, 2021\n */\n\nimport { Swiper } from './swiper.js';\nimport { SwiperSlide } from './swiper-slide.js';\nexport { Swiper, SwiperSlide };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(({\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n} = {}, externalRef) => {\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\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 () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n let 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 const 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 };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport { getParams } from './get-params.js';\nimport { initSwiper, mountSwiper } from './init-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from './get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from './update-swiper.js';\nimport { renderVirtual, updateOnVirtualData } from './virtual.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nconst Swiper = /*#__PURE__*/forwardRef(({\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n} = {}, externalElRef) => {\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n\n });\n\n if (!swiperElRef.current) {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = initSwiper(swiperParams);\n\n swiperRef.current.loopCreate = () => {};\n\n swiperRef.current.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\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 };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper({\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n}) {\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n\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 || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const 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 if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\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 { 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 isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params = {}) {\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params = {}) {\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params = {}) {\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames = '') {\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","import React from 'react';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import $ from './dom.js';\nexport default function createShadow(params, $slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\n\n if (!$shadowEl.length) {\n $shadowEl = $(`
`);\n $shadowContainer.append($shadowEl);\n }\n\n return $shadowEl;\n}","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n}","export default function effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n 'backface-visibility': 'hidden',\n '-webkit-backface-visibility': 'hidden'\n });\n }\n\n return $slideEl;\n}","export default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides\n}) {\n const {\n slides,\n activeIndex,\n $wrapperEl\n } = swiper;\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let $transitionEndTarget;\n\n if (allSlides) {\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n } else {\n $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n }\n\n $transitionEndTarget.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n}","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\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 (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\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';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = 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(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\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 && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","/**\n * Swiper 7.3.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2021 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: November 24, 2021\n */\n\nexport { default as Swiper, default } from './core/core.js';\nexport { default as Virtual } from './modules/virtual/virtual.js';\nexport { default as Keyboard } from './modules/keyboard/keyboard.js';\nexport { default as Mousewheel } from './modules/mousewheel/mousewheel.js';\nexport { default as Navigation } from './modules/navigation/navigation.js';\nexport { default as Pagination } from './modules/pagination/pagination.js';\nexport { default as Scrollbar } from './modules/scrollbar/scrollbar.js';\nexport { default as Parallax } from './modules/parallax/parallax.js';\nexport { default as Zoom } from './modules/zoom/zoom.js';\nexport { default as Lazy } from './modules/lazy/lazy.js';\nexport { default as Controller } from './modules/controller/controller.js';\nexport { default as A11y } from './modules/a11y/a11y.js';\nexport { default as History } from './modules/history/history.js';\nexport { default as HashNavigation } from './modules/hash-navigation/hash-navigation.js';\nexport { default as Autoplay } from './modules/autoplay/autoplay.js';\nexport { default as Thumbs } from './modules/thumbs/thumbs.js';\nexport { default as FreeMode } from './modules/free-mode/free-mode.js';\nexport { default as Grid } from './modules/grid/grid.js';\nexport { default as Manipulation } from './modules/manipulation/manipulation.js';\nexport { default as EffectFade } from './modules/effect-fade/effect-fade.js';\nexport { default as EffectCube } from './modules/effect-cube/effect-cube.js';\nexport { default as EffectFlip } from './modules/effect-flip/effect-flip.js';\nexport { default as EffectCoverflow } from './modules/effect-coverflow/effect-coverflow.js';\nexport { default as EffectCreative } from './modules/effect-creative/effect-creative.js';\nexport { default as EffectCards } from './modules/effect-cards/effect-cards.js';","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nconst Header_1 = require(\"./components/Header\");\r\nconst Landing_1 = require(\"./components/Landing\");\r\nconst Introduction_1 = require(\"./components/Introduction\");\r\nconst Bio_1 = require(\"./components/Bio\");\r\nconst Mission_1 = require(\"./components/Mission\");\r\nconst Testimonials_1 = require(\"./components/Testimonials\");\r\nconst Contact_1 = require(\"./components/Contact\");\r\nconst Footer_1 = require(\"./components/Footer\");\r\nconst hooks_1 = require(\"preact/hooks\");\r\nconst motion_1 = require(\"motion\");\r\nconst elementService_1 = require(\"./elementService\");\r\nfunction App() {\r\n const spotlight = (0, hooks_1.useRef)();\r\n (0, hooks_1.useEffect)(() => {\r\n (0, elementService_1.setReel)(document.querySelector(\".js-reel\"));\r\n (0, elementService_1.setScrollSections)([\r\n document.querySelector(\".js-introduction\"),\r\n document.querySelector(\".js-bio\"),\r\n document.querySelector(\".js-mission\"),\r\n document.querySelector(\".js-testimonials\"),\r\n document.querySelector(\".js-contact\"),\r\n ]);\r\n (0, elementService_1.setContact)(document.querySelector(\".js-contact\"));\r\n }, []);\r\n (0, hooks_1.useEffect)(() => {\r\n function handleMouseEvent(event) {\r\n spotlight.current.style.setProperty(\"--mouse-x\", `${event.offsetX}px`);\r\n spotlight.current.style.setProperty(\"--mouse-y\", `${event.offsetY}px`);\r\n }\r\n window.addEventListener(\"mousemove\", handleMouseEvent);\r\n }, []);\r\n (0, hooks_1.useEffect)(() => {\r\n const bottom = document.body.scrollHeight - window.innerHeight;\r\n const downButton = document.querySelectorAll(\".js-down-button\");\r\n const hideDownButton = () => {\r\n (0, motion_1.animate)(downButton[0], { opacity: 0 });\r\n (0, motion_1.animate)(downButton[1], { transform: \"translateY(120px)\" });\r\n };\r\n const showDownButton = () => {\r\n (0, motion_1.animate)(downButton[0], { opacity: 1 });\r\n (0, motion_1.animate)(downButton[1], { transform: \"translateY(0)\" });\r\n };\r\n let wasBottom = false;\r\n window.addEventListener(\"scroll\", () => {\r\n let isBottom = window.scrollY > bottom;\r\n if (isBottom === wasBottom) {\r\n return;\r\n }\r\n wasBottom = isBottom;\r\n if (isBottom) {\r\n hideDownButton();\r\n }\r\n else {\r\n showDownButton();\r\n }\r\n });\r\n }, []);\r\n return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(\"div\", { ref: spotlight, class: \"spotlight\" }, void 0), (0, jsx_runtime_1.jsx)(Header_1.default, {}, void 0), (0, jsx_runtime_1.jsx)(Landing_1.default, {}, void 0), (0, jsx_runtime_1.jsx)(Introduction_1.default, {}, void 0), (0, jsx_runtime_1.jsx)(Bio_1.default, {}, void 0), (0, jsx_runtime_1.jsx)(Mission_1.default, {}, void 0), (0, jsx_runtime_1.jsx)(Testimonials_1.default, {}, void 0), (0, jsx_runtime_1.jsx)(Contact_1.default, {}, void 0), (0, jsx_runtime_1.jsx)(Footer_1.default, {}, void 0)] }, void 0));\r\n}\r\nexports.default = App;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nfunction Bio() {\r\n return ((0, jsx_runtime_1.jsxs)(\"section\", Object.assign({ class: \"js-bio pointer-events-none bg-purple text-white py-12 overflow-hidden z-0\" }, { children: [(0, jsx_runtime_1.jsx)(\"h2\", Object.assign({ class: \"sr-only\" }, { children: \"Bio\" }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"grid-layout max-w-[1920px] mx-auto\" }, { children: [(0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"z-1 relative col-start-2 sm:col-start-3 col-end-24 sm:col-end-23 lg:col-start-2 lg:col-end-14 xl:col-end-16 text-[16vw] max:text-[200px] sm:text-[14vw] md:text-[12vw] lg:text-[8vw] xl:text-[10vw] font-bold leading-none my-28\" }, { children: [(0, jsx_runtime_1.jsx)(\"div\", { class: \"absolute z-0 lg:h-[30vw] lg:w-[30vw] w-[60vw] h-[60vw] bg-darkOrange filter blur-[40px] opacity-50 rounded-full ml-[10vw] mt-8 xl:mt-16\" }, void 0), (0, jsx_runtime_1.jsx)(\"img\", { class: \"rounded-full ml-auto mr-auto w-[60%] opacity-80\", src: \"/assets/images/sam.webp\", loading: \"lazy\", alt: \"Samantha Payne\" }, void 0), (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"left-0 top-[4vw] absolute\" }, { children: \"This\" }), void 0), (0, jsx_runtime_1.jsxs)(\"span\", Object.assign({ class: \"absolute mt-16 right-0 bottom-[4vw]\" }, { children: [\"is\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \" me.\"] }), void 0)] }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"z-1 col-start-3 lg:col-start-15 xl:col-start-17 col-end-23 self-center\" }, { children: [(0, jsx_runtime_1.jsxs)(\"p\", Object.assign({ class: \"text-h5\" }, { children: [\"I\\u2019m\", \" \", (0, jsx_runtime_1.jsx)(\"a\", Object.assign({ href: \"https://www.linkedin.com/in/samanthapaynemarketing/\", target: \"_blank\", class: \"underline cursor-pointer pointer-events-auto\" }, { children: \"Samantha Payne,\" }), void 0), \" \", \"a marketing consultant with over 25 years\\u2019 marketing strategy experience.\"] }), void 0), (0, jsx_runtime_1.jsxs)(\"p\", Object.assign({ class: \"text-body mr-2\" }, { children: [(0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \"Wait, come back! I know I said that dreaded word \\u2018consultant\\u2019 but don\\u2019t let that put you off. \\u2018Consultant\\u2019 sounds intimidating, or even worse, ridiculously expensive, doesn\\u2019t it? I can almost feel you hovering over the browser window ready to click exit.\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \" Don\\u2019t panic. Switch out consultant with conversationalist and marketing strategy with future direction. Not so scary now, is it?\"] }), void 0)] }), void 0)] }), void 0)] }), void 0));\r\n}\r\nexports.default = Bio;\r\nfunction isScrolledIntoView(element) {\r\n var rect = element.getBoundingClientRect();\r\n var elemTop = rect.top;\r\n var elemBottom = rect.bottom;\r\n // Only completely visible elements return true:\r\n var isVisible = elemTop >= 0 && elemBottom <= window.innerHeight;\r\n // Partially visible elements return true:\r\n //isVisible = elemTop < window.innerHeight && elemBottom >= 0;\r\n return isVisible;\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nconst Form_1 = require(\"./Form\");\r\nfunction Contact() {\r\n return ((0, jsx_runtime_1.jsx)(\"section\", Object.assign({ id: \"contact\", class: \"js-contact bg-lightPurple text-white z-3\" }, { children: (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"grid-layout max-w-[1920px] mx-auto\" }, { children: [(0, jsx_runtime_1.jsxs)(\"h2\", Object.assign({ class: \"z-2 mt-col2 lg:mt-36 mb-12 lg:mb-0 xl:mt-48 text-h1 lg:text-h2 font-bold col-start-3 col-end-23 lg:col-start-2 lg:col-end-12\" }, { children: [\"Let\\u2019s\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1 z-10\" }, { children: \"connect.\" }), void 0)] }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"col-start-3 col-end-23 lg:col-start-13 lg:col-end-17 flex flex-col self-end mb-12 lg:mb-0\" }, { children: [(0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"uppercase text-caps\" }, { children: \"Schedule a meeting:\" }), void 0), (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"text-h5 mt-4\" }, { children: (0, jsx_runtime_1.jsx)(\"button\", Object.assign({ class: \"link-hover\" }, { children: (0, jsx_runtime_1.jsx)(\"a\", Object.assign({ href: \"https://calendly.com/samantha-payne-marketing/30min\", target: \"_blank\" }, { children: \"Calendly\" }), void 0) }), void 0) }), void 0)] }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"col-start-3 col-end-23 lg:col-start-17 lg:col-end-21 flex flex-col self-end mb-12 lg:mb-0\" }, { children: [(0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"uppercase text-caps\" }, { children: \"Give me a call:\" }), void 0), (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"text-h5 mt-4\" }, { children: (0, jsx_runtime_1.jsx)(\"button\", Object.assign({ class: \"link-hover\" }, { children: (0, jsx_runtime_1.jsx)(\"a\", Object.assign({ href: \"tel:07912033166\" }, { children: \"07912 033166\" }), void 0) }), void 0) }), void 0)] }), void 0), (0, jsx_runtime_1.jsx)(\"div\", Object.assign({ class: \"col-start-3 col-end-23 lg:col-start-2 lg:col-end-13 self-center lg:self-end\" }, { children: (0, jsx_runtime_1.jsxs)(\"ul\", Object.assign({ class: \"grid grid-cols-2 lg:grid-cols-1\" }, { children: [(0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"contact-link\" }, { children: (0, jsx_runtime_1.jsx)(\"button\", Object.assign({ class: \"link-hover\" }, { children: (0, jsx_runtime_1.jsx)(\"a\", Object.assign({ href: \"mailto:samantha.payne@centrestageconsulting.com?subject=Hello\" }, { children: \"Mail\" }), void 0) }), void 0) }), void 0), (0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"contact-link\" }, { children: (0, jsx_runtime_1.jsx)(\"button\", Object.assign({ class: \"link-hover\" }, { children: (0, jsx_runtime_1.jsx)(\"a\", Object.assign({ href: \"https://www.facebook.com/CentreStageConsulting/\", target: \"_blank\" }, { children: \"Facebook\" }), void 0) }), void 0) }), void 0), (0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"contact-link\" }, { children: (0, jsx_runtime_1.jsx)(\"button\", Object.assign({ class: \"link-hover\" }, { children: (0, jsx_runtime_1.jsx)(\"a\", Object.assign({ href: \"https://www.linkedin.com/company/centrestageconsulting/\", target: \"_blank\" }, { children: \"Linkedin\" }), void 0) }), void 0) }), void 0), (0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"contact-link\" }, { children: (0, jsx_runtime_1.jsx)(\"button\", Object.assign({ class: \"link-hover\" }, { children: (0, jsx_runtime_1.jsx)(\"a\", Object.assign({ href: \"https://twitter.com/CentreStageC1\", target: \"_blank\" }, { children: \"Twitter\" }), void 0) }), void 0) }), void 0), (0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"contact-link\" }, { children: (0, jsx_runtime_1.jsx)(\"button\", Object.assign({ class: \"link-hover\" }, { children: (0, jsx_runtime_1.jsx)(\"a\", Object.assign({ href: \"https://www.instagram.com/centrestageconsulting/\", target: \"_blank\" }, { children: \"Instagram\" }), void 0) }), void 0) }), void 0)] }), void 0) }), void 0), (0, jsx_runtime_1.jsx)(Form_1.default, {}, void 0)] }), void 0) }), void 0));\r\n}\r\nexports.default = Contact;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nconst elementService_1 = require(\"../elementService\");\r\nfunction DownButton() {\r\n return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(\"div\", { class: \"js-down-button hidden lg:block w-[160px] h-[160px] bg-blue rounded-full filter blur-[50px] fixed right-[3px] bottom-[3px] z-10 pointer-events-none\" }, void 0), (0, jsx_runtime_1.jsxs)(\"button\", Object.assign({ onClick: handleGoDown, class: \"js-down-button pointer-events-auto lg:fixed lg:right-[50px] lg:bottom-[50px] z-20 flex items-center justify-center rounded-full border-2 text-white border-white w-16 h-16 mx-auto mt-[8vh] lg:mb-0 hover:bg-white hover:text-darkPurple backdrop-blur-md hover:bg-opacity-100 bg-black bg-opacity-10\" }, { children: [(0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"sr-only\" }, { children: \"Go down\" }), void 0), (0, jsx_runtime_1.jsx)(\"svg\", Object.assign({ class: \"w-[20px] fill-current\", viewBox: \"0 0 50 40\" }, { children: (0, jsx_runtime_1.jsx)(\"path\", { d: \"M 44.9844 12.9688 C 44.4531 12.9844 43.9531 13.2031 43.5859 13.5859 L 25 32.1719 L 6.41406 13.5859 C 6.03516 13.1992 5.51953 12.9805 4.97656 12.9805 C 4.16406 12.9805 3.43359 13.4766 3.12891 14.2305 C 2.82031 14.9844 3.00391 15.8477 3.58594 16.4141 L 23.5859 36.4141 C 24.3672 37.1953 25.6328 37.1953 26.4141 36.4141 L 46.4141 16.4141 C 47.0078 15.8438 47.1953 14.9648 46.875 14.2031 C 46.5586 13.4414 45.8086 12.9531 44.9844 12.9688 Z\" }, void 0) }), void 0)] }), void 0)] }, void 0));\r\n}\r\nexports.default = DownButton;\r\nfunction handleGoDown() {\r\n const scrollElements = (0, elementService_1.getScrollSections)();\r\n const currentPosition = window.scrollY;\r\n let nextScrollPosition = scrollElements[0].offsetTop;\r\n for (let i = 0; i < scrollElements.length; i++) {\r\n if (currentPosition >= nextScrollPosition) {\r\n if (scrollElements[i + 1] === undefined) {\r\n window.scrollTo(0, nextScrollPosition);\r\n return;\r\n }\r\n nextScrollPosition = scrollElements[i + 1].offsetTop;\r\n }\r\n else {\r\n window.scrollTo(0, nextScrollPosition);\r\n return;\r\n }\r\n }\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nfunction Contact() {\r\n return ((0, jsx_runtime_1.jsx)(\"footer\", Object.assign({ class: \"js-footer bg-lightPurple\" }, { children: (0, jsx_runtime_1.jsxs)(\"ul\", Object.assign({ class: \"grid-layout text-white text-caps uppercase py-col2 lg:py-col1\" }, { children: [(0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"col-start-3 lg:col-start-2 col-end-23 xl:col-start-2 xl:col-end-13 flex flex-col md:flex-row\" }, { children: [(0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"opacity-50 my-2 hover:opacity-100\" }, { children: \"CENTRE STAGE CONSULTING LTD\" }), void 0), (0, jsx_runtime_1.jsxs)(\"li\", Object.assign({ class: \"opacity-50 my-2 ml-0 md:ml-16 hover:opacity-100\" }, { children: [\"Tel: 01772 345612\", (0, jsx_runtime_1.jsx)(\"span\", { class: \"ml-4\" }, void 0), \"Mobile: 07912 033 166\"] }), void 0)] }), void 0), (0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"opacity-50 hover:opacity-100 col-start-3 lg:col-start-2 col-end-23 xl:col-start-13 xl:col-end-24 my-2\" }, { children: \"15 Sharples Drive, Wrea Green, Preston, Lancashire, PR4 2EL\" }), void 0)] }), void 0) }), void 0));\r\n}\r\nexports.default = Contact;\r\n","\"use strict\";\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nconst hooks_1 = require(\"preact/hooks\");\r\nvar Status;\r\n(function (Status) {\r\n Status[Status[\"Clean\"] = 0] = \"Clean\";\r\n Status[Status[\"Sending\"] = 1] = \"Sending\";\r\n Status[Status[\"Error\"] = 2] = \"Error\";\r\n Status[Status[\"Success\"] = 3] = \"Success\";\r\n})(Status || (Status = {}));\r\nfunction Form() {\r\n const [checkFirstName, setCheckFirstName] = (0, hooks_1.useState)(false);\r\n const [checkLastName, setCheckLastName] = (0, hooks_1.useState)(false);\r\n const [checkEmail, setCheckEmail] = (0, hooks_1.useState)(false);\r\n const [status, setStatus] = (0, hooks_1.useState)(Status.Clean);\r\n const [errorMessage, setErrorMessage] = (0, hooks_1.useState)(\"Something went wrong, please try again.\");\r\n function handleSubmit(event) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n event.preventDefault();\r\n const form = event.target;\r\n const formData = new FormData(form);\r\n setStatus(Status.Sending);\r\n fetch(\"https://www.kulahub.net/Api/FormAdd\", {\r\n body: formData,\r\n method: \"post\",\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n setStatus(Status.Success);\r\n }\r\n else {\r\n setErrorMessage(response.statusText);\r\n setStatus(Status.Error);\r\n }\r\n })\r\n .catch(() => {\r\n setStatus(Status.Error);\r\n });\r\n });\r\n }\r\n return ((0, jsx_runtime_1.jsxs)(\"form\", Object.assign({ class: \"col-start-3 col-end-23 lg:col-start-13 lg:col-end-24 mt-4 lg:mt-16\", method: \"post\", action: \"https://www.kulahub.net/Api/FormAdd\", onSubmit: handleSubmit }, { children: [(0, jsx_runtime_1.jsx)(\"input\", { type: \"hidden\", name: \"ClientId\", value: \"1108\" }, void 0), (0, jsx_runtime_1.jsx)(\"input\", { type: \"hidden\", name: \"FormTypeId\", value: \"8572\" }, void 0), (0, jsx_runtime_1.jsx)(\"input\", { type: \"hidden\", name: \"redirect\", value: \"\" }, void 0), (0, jsx_runtime_1.jsx)(\"h3\", Object.assign({ class: \"text-h5 mt-8\" }, { children: \"Sign up for news & insights:\" }), void 0), status === Status.Success && ((0, jsx_runtime_1.jsx)(\"p\", Object.assign({ class: \"my-36 fade-in\" }, { children: \"Thank you for connecting.\" }), void 0)), status !== Status.Success && ((0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"grid grid-cols-11 relative\" }, { children: [(0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"col-start-1 col-end-12 xl:col-end-8\" }, { children: [(0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"mt-8\" }, { children: [(0, jsx_runtime_1.jsx)(\"label\", Object.assign({ class: \"sr-only\", for: \"FirstName\" }, { children: \"First name\" }), void 0), (0, jsx_runtime_1.jsx)(\"input\", { class: \"text-input w-full mb-2 focus:ring-blue border-none\", id: \"FirstName\", name: \"FirstName\", type: \"text\", placeholder: \"First name\", required: true }, void 0)] }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"mt-2\" }, { children: [(0, jsx_runtime_1.jsx)(\"label\", Object.assign({ class: \"sr-only\", for: \"LastName\" }, { children: \"Last name\" }), void 0), (0, jsx_runtime_1.jsx)(\"input\", { class: \"text-input w-full mb-2 focus:ring-blue border-none\", id: \"LastName\", name: \"LastName\", type: \"text\", placeholder: \"Last name\", required: true }, void 0)] }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"mt-2\" }, { children: [(0, jsx_runtime_1.jsx)(\"label\", Object.assign({ class: \"sr-only\", for: \"Email\" }, { children: \"Email address\" }), void 0), (0, jsx_runtime_1.jsx)(\"input\", { class: \"text-input w-full mb-2 focus:ring-blue border-none\", id: \"Email\", name: \"Email\", type: \"email\", placeholder: \"Email address\", required: true }, void 0)] }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"mt-6 flex\" }, { children: [(0, jsx_runtime_1.jsx)(\"input\", { class: \"checkbox-input mr-4 text-flamingo focus:ring-blue text-blue\", id: \"emailsubscribe\", name: \"emailsubscribe\", type: \"checkbox\", required: true }, void 0), (0, jsx_runtime_1.jsxs)(\"label\", Object.assign({ class: \"text-caps uppercase opacity-50 hover:opacity-100 cursor-pointer relative\", for: \"emailsubscribe\" }, { children: [\"I confirm I'd like to receive emails and marketing content.\", \" \"] }), void 0)] }), void 0), (0, jsx_runtime_1.jsx)(\"a\", Object.assign({ href: \"/privacy-policy.pdf\", target: \"_blank\", class: \"underline cursor-pointer text-caps uppercase opacity-50 hover:opacity-100 ml-8\" }, { children: \"Privacy Policy\" }), void 0)] }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"col-start-1 col-end-12 xl:col-start-9 h-24\" }, { children: [status === Status.Error && ((0, jsx_runtime_1.jsx)(\"p\", Object.assign({ class: \"mb-2 mt-4 text-flamingo fade-in\" }, { children: errorMessage }), void 0)), (0, jsx_runtime_1.jsxs)(\"button\", Object.assign({ class: \"group flex flex-row items-center text-[30px] absolute right-0 bottom-0\", type: \"submit\", disabled: status === Status.Sending }, { children: [\"Submit\", (0, jsx_runtime_1.jsx)(\"div\", Object.assign({ class: \"ml-4 flex items-center justify-center rounded-full border-2 text-white border-white w-16 h-16 mx-auto group-hover:bg-white group-hover:text-darkPurple\" }, { children: (0, jsx_runtime_1.jsx)(\"svg\", Object.assign({ class: \"w-[20px] fill-current transform -rotate-90\", viewBox: \"0 0 50 40\" }, { children: (0, jsx_runtime_1.jsx)(\"path\", { d: \"M 44.9844 12.9688 C 44.4531 12.9844 43.9531 13.2031 43.5859 13.5859 L 25 32.1719 L 6.41406 13.5859 C 6.03516 13.1992 5.51953 12.9805 4.97656 12.9805 C 4.16406 12.9805 3.43359 13.4766 3.12891 14.2305 C 2.82031 14.9844 3.00391 15.8477 3.58594 16.4141 L 23.5859 36.4141 C 24.3672 37.1953 25.6328 37.1953 26.4141 36.4141 L 46.4141 16.4141 C 47.0078 15.8438 47.1953 14.9648 46.875 14.2031 C 46.5586 13.4414 45.8086 12.9531 44.9844 12.9688 Z\" }, void 0) }), void 0) }), void 0)] }), void 0)] }), void 0)] }), void 0))] }), void 0));\r\n}\r\nexports.default = Form;\r\nfunction validateEmail(email) {\r\n const emailRegExp = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n const emailIsValid = new RegExp(emailRegExp);\r\n return emailIsValid.test(email);\r\n}\r\nfunction validateName(name) {\r\n if (name == null) {\r\n return false;\r\n }\r\n const nameRegExp = /^[a-zA-Z ]{2,30}$/;\r\n const nameIsValid = new RegExp(nameRegExp);\r\n return nameIsValid.test(name);\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nfunction Header() {\r\n return ((0, jsx_runtime_1.jsxs)(\"header\", { children: [(0, jsx_runtime_1.jsxs)(\"a\", Object.assign({ href: \"#landing\", class: \"z-20 fixed top-col2 lg:top-col1 left-col2 lg:left-col1\" }, { children: [(0, jsx_runtime_1.jsx)(\"h1\", Object.assign({ class: \"sr-only\" }, { children: \"Centre Stage Consulting\" }), void 0), (0, jsx_runtime_1.jsx)(\"img\", { class: \"fill-white w-[150px] h-auto cursor-pointer\", src: \"./assets/svgs/logo.svg\", alt: \"Centre Stage Consulting Logo\" }, void 0)] }), void 0), (0, jsx_runtime_1.jsx)(\"a\", Object.assign({ href: \"#contact\", class: \" z-20 fixed top-col2 lg:top-col1 right-col2 lg:right-col1 font-bold block text-button px-[20px] py-[13px] text-white border-2 border-white hover:bg-white hover:text-darkPurple transition-all backdrop-blur-md hover:bg-opacity-100 bg-black bg-opacity-10\" }, { children: \"Connect\" }), void 0)] }, void 0));\r\n}\r\nexports.default = Header;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nconst hooks_1 = require(\"preact/hooks\");\r\nconst imageReel_config_1 = require(\"../imageReel.config\");\r\nconst motion_1 = require(\"motion\");\r\nfunction ImageReel() {\r\n const reel = (0, hooks_1.useRef)();\r\n (0, hooks_1.useEffect)(() => {\r\n const rect = reel.current.getBoundingClientRect();\r\n let prevScrollPos = 0;\r\n let currentScrollPos = 0;\r\n const handleReelSlide = () => {\r\n prevScrollPos = currentScrollPos;\r\n currentScrollPos = window.scrollY;\r\n if (0 <= rect.top && rect.top <= window.innerHeight) {\r\n return;\r\n }\r\n (0, motion_1.animate)(reel.current, { x: 0 }, {\r\n easing: (0, motion_1.glide)({\r\n velocity: prevScrollPos < currentScrollPos ? -100 : 100,\r\n power: 0.3,\r\n decay: 0.2,\r\n min: -600,\r\n max: 0,\r\n bounceStiffness: 1,\r\n }),\r\n });\r\n };\r\n window.addEventListener(\"scroll\", () => handleReelSlide());\r\n }, [reel]);\r\n return ((0, jsx_runtime_1.jsx)(\"div\", Object.assign({ class: \"z-1 col-span-full col-start-1 mb-14 lg:mb-28 overflow-hidden\" }, { children: (0, jsx_runtime_1.jsx)(\"div\", Object.assign({ ref: reel, class: \"js-image-reel will-transform flex flex-row z-0\" }, { children: renderImages(imageReel_config_1.images) }), void 0) }), void 0));\r\n}\r\nexports.default = ImageReel;\r\nfunction renderImages(data) {\r\n let imageElements = [];\r\n data.forEach((imageUrl) => imageElements.push((0, jsx_runtime_1.jsx)(\"img\", { class: \"image-tile ml-2\", loading: \"lazy\", src: `./assets/images${imageUrl}`, alt: \"Reel-image\" }, void 0)));\r\n return imageElements;\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nfunction Introduction() {\r\n return ((0, jsx_runtime_1.jsxs)(\"section\", Object.assign({ class: \"js-introduction pointer-events-none relative bg-gradient-to-b from-darkPurple to-purple text-white\" }, { children: [(0, jsx_runtime_1.jsx)(\"div\", { class: \"absolute z-0 top-[30vh] left-1/2 transform -translate-x-1/2 w-[40vw] h-[40vw] rounded-full bg-palePurple filter blur-[15vw] lg:blur-[8vw] pointer-events-none\" }, void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"max-w-[1920px] mx-auto flex flex-col px-col2 pb-12 pt-36 lg:pt-40\" }, { children: [(0, jsx_runtime_1.jsxs)(\"p\", Object.assign({ class: \"text-h4 font-bold z-1 flex\" }, { children: [\"If you\\u2019re a marketer, or business\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \" owner looking for marketing\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \"support, we\\u2019re here to help.\"] }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"flex flex-col items-start lg:flex-row mt-12 lg:items-end lg:mt-0 xl:mt-36 z-1\" }, { children: [(0, jsx_runtime_1.jsx)(\"img\", { class: \"z-1 w-col10 md:w-col6\", src: \"./assets/svgs/icon.svg\", alt: \"Logo\" }, void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"ml-[20vw]\" }, { children: [(0, jsx_runtime_1.jsx)(\"h2\", Object.assign({ class: \"text-h5 font-bold text-large mb-4 mt-16\" }, { children: \"Our expertise\" }), void 0), (0, jsx_runtime_1.jsxs)(\"ul\", Object.assign({ class: \"grid grid-cols-10 grid-rows-2 text-body\" }, { children: [(0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"bullet col-start-1 md:col-end-5 col-end-10 row-span-1 mt-4\" }, { children: \"Digital marketing strategy development and implementation\" }), void 0), (0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"bullet col-start-1 md:col-start-6 col-end-10 row-span-1 mt-4\" }, { children: \"Flexible marketing support with focused results\" }), void 0), (0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"bullet col-start-1 md:col-end-5 col-end-10 row-span-1 mt-4\" }, { children: \"Crafting campaigns that are creative, insightful and get attention\" }), void 0), (0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"bullet col-start-1 md:col-start-6 col-end-10 row-span-1 mt-4\" }, { children: \"Reaching audiences with powerful, creative messaging that generates response\" }), void 0)] }), void 0)] }), void 0)] }), void 0)] }), void 0)] }), void 0));\r\n}\r\nexports.default = Introduction;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nconst DownButton_1 = require(\"./DownButton\");\r\nfunction Landing() {\r\n return ((0, jsx_runtime_1.jsxs)(\"section\", Object.assign({ id: \"landing\", class: \"relative flex flex-col items-center justify-center w-full h-screen pointer-events-none\" }, { children: [(0, jsx_runtime_1.jsx)(\"video\", { class: \"absolute top-0 left-0 lg:w-full h-full object-cover object-left z-0\", autoPlay: true, loop: true, muted: true, playsInline: true, preload: \"auto\", poster: \"/assets/images/poster.webp\", src: \"/assets/videos/hero.mp4\" }, void 0), (0, jsx_runtime_1.jsxs)(\"h2\", Object.assign({ class: \"mt-[16vh] text-[11vw] sm:text-[10vw] lg:text-[7.3vw] leading-[1.1em] text-white font-bold text-center z-1\" }, { children: [\"Shining a\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \" spotlight\", \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-2 z-10\" }, { children: \"on\" }), void 0), (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-2 z-10\" }, { children: \"your\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"z-2\" }, { children: \"business\" }), void 0), \".\"] }), void 0), (0, jsx_runtime_1.jsx)(\"p\", Object.assign({ class: \"mt-8 lg:mt-[8vh] mx-8 text-center text-white text-body max-w-[300px] lg:mb-24 z-1\" }, { children: \"Marketing communications that put your business centre stage, in front of your target audience.\" }), void 0), (0, jsx_runtime_1.jsx)(DownButton_1.default, {}, void 0)] }), void 0));\r\n}\r\nexports.default = Landing;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nconst ImageReel_1 = require(\"./ImageReel\");\r\nfunction Mission() {\r\n return ((0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"js-mission pointer-events-none bg-gradient-to-b from-purple to-blue text-white pt-12 pb-24 grid-layout\" }, { children: [(0, jsx_runtime_1.jsx)(\"h2\", Object.assign({ style: \"display: none\" }, { children: \"Vision\" }), void 0), (0, jsx_runtime_1.jsxs)(\"p\", Object.assign({ class: \"z-10 col-start-2 col-end-23 justify-self-center text-h3 text-center font-bold mx-8 transform translate-y-[0.4em] max-w-[1200px]\" }, { children: [(0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"You\" }), void 0), \" are at the centre of the consultation and collaboration process.\"] }), void 0), (0, jsx_runtime_1.jsx)(ImageReel_1.default, {}, void 0), (0, jsx_runtime_1.jsxs)(\"p\", Object.assign({ class: \"z-1 text-body col-start-3 col-end-22 lg:col-start-2 lg:col-end-10 max-w-[390px] mb-16\" }, { children: [\"Truth is, and here's what no other marketing consultant will ever tell you, you\\u2019re already a great marketer and have everything in your means to be even better.\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), (0, jsx_runtime_1.jsx)(\"strong\", { children: \"\\\"So why, Samantha, do I need your help if I'm such a fantastic marketer?\\\"\" }, void 0), \" \", \"I hear you ask.\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \" Well, that's because you have the heart of a marketer, but would benefit from additional marketing expertise, experience, and guidance to help you improve your marketing activities.\"] }), void 0), (0, jsx_runtime_1.jsxs)(\"section\", Object.assign({ class: \"z-1 col-start-3 col-end-24 lg:col-start-13 lg:col-end-23 self-end\" }, { children: [(0, jsx_runtime_1.jsx)(\"h3\", Object.assign({ class: \"text-h5 font-bold text-large col-start-1 col-end-24 lg:col-start-13 lg:col-end-23 mb-8 self-end\" }, { children: \"I'm looking to work with those who:\" }), void 0), (0, jsx_runtime_1.jsxs)(\"ul\", Object.assign({ class: \"ml-col4 lg:ml-0 text-body grid grid-cols-10 grid-rows-3\" }, { children: [(0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"bullet col-start-1 col-end-10 md:col-end-5 row-span-1 mb-4\" }, { children: \"Understand the value of marketing but don't have the time or expertise to put together a strategy\" }), void 0), (0, jsx_runtime_1.jsxs)(\"li\", Object.assign({ class: \"bullet col-start-1 md:col-start-6 col-end-10 row-span-1 mb-4\" }, { children: [\" \", \"Want flexible and responsive marketing support without increasing headcount\"] }), void 0), (0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"bullet col-start-1 md:col-end-5 col-end-10 row-span-1 mb-4\" }, { children: \"Understand that marketing is a driver of the business\" }), void 0), (0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"bullet col-start-1 md:col-start-6 col-end-10 row-span-1 mb-4\" }, { children: \"Require marketing consultation or practical marketing support\" }), void 0), (0, jsx_runtime_1.jsxs)(\"li\", Object.assign({ class: \"bullet col-start-1 md:col-end-5 col-end-10 row-span-1 mb-4\" }, { children: [\"Are making a difference with the work they do\", \" & \", \"are fun to work with!\"] }), void 0), (0, jsx_runtime_1.jsx)(\"li\", Object.assign({ class: \"bullet col-start-1 md:col-start-6 col-end-10 row-span-1 mb-4\" }, { children: \"Embrace innovation and are remote-friendly.\" }), void 0)] }), void 0)] }), void 0)] }), void 0));\r\n}\r\nexports.default = Mission;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nconst swiper_1 = require(\"swiper\");\r\nconst swiper_react_js_1 = require(\"swiper/react/swiper-react.js\");\r\nfunction Testimonials() {\r\n return ((0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"js-testimonials w-full bg-pink text-white pt-40 lg:pt-48 xl:pt-52 pb-col2 lg:pb-col1 z-2\" }, { children: [(0, jsx_runtime_1.jsx)(\"h2\", Object.assign({ class: \"sr-only\" }, { children: \"Testimonials\" }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"max-w-[1920px] mx-auto\" }, { children: [(0, jsx_runtime_1.jsx)(swiper_react_js_1.Swiper, Object.assign({ modules: [swiper_1.Pagination, swiper_1.Autoplay], spaceBetween: 0, loop: true, autoplay: {\r\n delay: 10000,\r\n disableOnInteraction: true,\r\n }, pagination: {\r\n clickable: true,\r\n } }, { children: getSlides() }), void 0), (0, jsx_runtime_1.jsx)(\"div\", Object.assign({ class: \"block text-[24px] pt-[20px] ml-col2 lg:ml-col1\" }, { children: \"Testimonials\" }), void 0)] }), void 0)] }), void 0));\r\n}\r\nexports.default = Testimonials;\r\nfunction getSlides() {\r\n return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(swiper_react_js_1.SwiperSlide, { children: [(0, jsx_runtime_1.jsx)(\"div\", Object.assign({ class: \"testimonial-image-container\" }, { children: (0, jsx_runtime_1.jsx)(\"img\", { class: \"testimonial-image\", src: \"./assets/images/jenny.webp\", loading: \"lazy\", alt: \"Jenny Kitchen\" }, void 0) }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"reference-container\" }, { children: [(0, jsx_runtime_1.jsxs)(\"blockquote\", Object.assign({ class: \"quote\" }, { children: [\"\\u201CSamantha is a fountain of knowledge, both in\", \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"marketing\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"and\" }), void 0), \" wider business strategy.\\u201D\"] }), void 0), (0, jsx_runtime_1.jsx)(\"p\", Object.assign({ class: \"testimonial-detail\" }, { children: \"A positive and passionate individual, she is one of the most organised and well-structured people I know. Any marketing project is multi-faceted with different stakeholders, metrics, channels and ideas. Having someone to bring all of this together and create clear and effective marketing strategies is priceless. She just gets it. I highly recommend any CEO and/or marketing team working with her.\" }), void 0), (0, jsx_runtime_1.jsxs)(\"h3\", Object.assign({ class: \"referencee\" }, { children: [\"Jenny Kitchen\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \"CEO, Yoyo Design\"] }), void 0)] }), void 0)] }, void 0), (0, jsx_runtime_1.jsxs)(swiper_react_js_1.SwiperSlide, { children: [(0, jsx_runtime_1.jsx)(\"div\", Object.assign({ class: \"testimonial-image-container\" }, { children: (0, jsx_runtime_1.jsx)(\"img\", { class: \"testimonial-image\", src: \"./assets/images/ros.webp\", loading: \"lazy\", alt: \"Dr Ros Keeton\" }, void 0) }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"reference-container\" }, { children: [(0, jsx_runtime_1.jsxs)(\"blockquote\", Object.assign({ class: \"quote\" }, { children: [\"\\u201CSamantha is a great communicator, being able to turn our loose plans and ideas into more\", \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"strategic\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"direction.\\u201D\" }), void 0)] }), void 0), (0, jsx_runtime_1.jsx)(\"p\", Object.assign({ class: \"testimonial-detail\" }, { children: \"We\\u2019ve been working with Samantha for a few months and she has already proven to be a real asset to the BDA Benevolent Fund. Our brand awareness and engagement has increased with consistent and creative activities across all of our social media channels which are backed up by regular analytics.\" }), void 0), (0, jsx_runtime_1.jsxs)(\"h3\", Object.assign({ class: \"referencee\" }, { children: [\"Dr Ros Keeton\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \"Chairman, BDA Benevolent Fund\"] }), void 0)] }), void 0)] }, void 0), (0, jsx_runtime_1.jsxs)(swiper_react_js_1.SwiperSlide, { children: [(0, jsx_runtime_1.jsx)(\"div\", Object.assign({ class: \"testimonial-image-container\" }, { children: (0, jsx_runtime_1.jsx)(\"img\", { class: \"testimonial-image\", src: \"./assets/images/fraser.webp\", loading: \"lazy\", alt: \"Anjanette Fraser\" }, void 0) }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"reference-container\" }, { children: [(0, jsx_runtime_1.jsxs)(\"blockquote\", Object.assign({ class: \"quote\" }, { children: [\"\\u201CThe commitment and time Samantha spends is hugely valuable, I love the diversity she brings.\", \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"Couldn\\u2019t\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"recommend\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"her\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"more\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"highly.\\u201D\" }), void 0)] }), void 0), (0, jsx_runtime_1.jsx)(\"p\", Object.assign({ class: \"testimonial-detail\" }, { children: \"For a long time, I had been thinking about working with a marketing expert to help me with social media \\u2013 but who? There are so many to choose from, but none stood out. Then along came Samantha. Regularly commenting on my social media posts and driving traffic to my account, she was a breath of fresh air. Her enthusiasm is infectious \\u2013 making me more passionate about the business.\" }), void 0), (0, jsx_runtime_1.jsxs)(\"h3\", Object.assign({ class: \"referencee\" }, { children: [\"Anjanette Fraser\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \"Director, The Natural Alternative Health and Wellbeing\"] }), void 0)] }), void 0)] }, void 0), (0, jsx_runtime_1.jsxs)(swiper_react_js_1.SwiperSlide, { children: [(0, jsx_runtime_1.jsx)(\"div\", Object.assign({ class: \"testimonial-image-container\" }, { children: (0, jsx_runtime_1.jsx)(\"img\", { class: \"testimonial-image\", src: \"./assets/images/sarah.webp\", loading: \"lazy\", alt: \"Sarah Steel\" }, void 0) }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"reference-container\" }, { children: [(0, jsx_runtime_1.jsxs)(\"blockquote\", Object.assign({ class: \"quote\" }, { children: [\"\\u201CThe service we receive has\", \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"surpassed\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"our\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"expectations.\\u201D\" }), void 0)] }), void 0), (0, jsx_runtime_1.jsx)(\"p\", Object.assign({ class: \"testimonial-detail\" }, { children: \"We started working with Samantha in 2021, as we wanted a marketing expert to support our business. Our main requirements were to increase our brand awareness on social media and to make email marketing more timely, relevant, and efficient. Samantha has taken the time to understand our business in depth and is organised and easy to work with. The trust we have in her means we don\\u2019t worry about marketing anymore; we know we\\u2019re in good hands and it allows us to spend our time providing an excellent client service. This really is a top-rate service.\" }), void 0), (0, jsx_runtime_1.jsxs)(\"h3\", Object.assign({ class: \"referencee\" }, { children: [\"Sarah Steel\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \"Director, Better With Money\"] }), void 0)] }), void 0)] }, void 0), (0, jsx_runtime_1.jsxs)(swiper_react_js_1.SwiperSlide, { children: [(0, jsx_runtime_1.jsx)(\"div\", Object.assign({ class: \"testimonial-image-container\" }, { children: (0, jsx_runtime_1.jsx)(\"img\", { class: \"testimonial-image\", src: \"./assets/images/bev.webp\", loading: \"lazy\", alt: \"Bev Bevan\" }, void 0) }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"reference-container\" }, { children: [(0, jsx_runtime_1.jsxs)(\"blockquote\", Object.assign({ class: \"quote\" }, { children: [\"\\u201C\", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"We\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"really\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"felt\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"we\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"could\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"trust\" }), void 0), \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"her,\" }), void 0), \" and that whatever we threw at her she would use her skills like an alchemist to produce gold!\\u201D\"] }), void 0), (0, jsx_runtime_1.jsx)(\"p\", Object.assign({ class: \"testimonial-detail\" }, { children: \"Samantha was wonderful to work with. She listened carefully to the brief and seemed to have a natural instinct for bringing our slightly chaotic ideas to life. She is highly organised and communication was excellent. We were delighted with the end result\" }), void 0), (0, jsx_runtime_1.jsxs)(\"h3\", Object.assign({ class: \"referencee\" }, { children: [\"Bev Bevan\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \"Founder, Worcester Theatre Makers\"] }), void 0)] }), void 0)] }, void 0), (0, jsx_runtime_1.jsxs)(swiper_react_js_1.SwiperSlide, { children: [(0, jsx_runtime_1.jsx)(\"div\", Object.assign({ class: \"testimonial-image-container\" }, { children: (0, jsx_runtime_1.jsx)(\"img\", { class: \"testimonial-image\", src: \"./assets/images/lucy.webp\", loading: \"lazy\", alt: \"Lucy Whitehall\" }, void 0) }), void 0), (0, jsx_runtime_1.jsxs)(\"div\", Object.assign({ class: \"reference-container\" }, { children: [(0, jsx_runtime_1.jsxs)(\"blockquote\", Object.assign({ class: \"quote\" }, { children: [\"\\u201CI see Samantha as integral to the\", \" \", (0, jsx_runtime_1.jsx)(\"span\", Object.assign({ class: \"gradient-highlight-1\" }, { children: \"success\" }), void 0), \" of my business\\u201D\"] }), void 0), (0, jsx_runtime_1.jsx)(\"p\", Object.assign({ class: \"testimonial-detail\" }, { children: \"Working with Samantha is an absolute joy. She brings energy, enthusiasm and expertise to my business development and marketing approach. I work with Samantha because she translates the vision for my business into clear narrative and messaging. Samantha has transformed my marketing to be infinitely more strategic, and she has brought clarity to the business direction and positioning of Transform and Thrive. The campaigns we work on, content and tone of communications are now fully aligned to my brand, and I feel like I can express myself more powerfully in the market.\" }), void 0), (0, jsx_runtime_1.jsxs)(\"h3\", Object.assign({ class: \"referencee\" }, { children: [\"Lucy Whitehall\", (0, jsx_runtime_1.jsx)(\"br\", {}, void 0), \"Director, Transform and Thrive\"] }), void 0)] }), void 0)] }, void 0)] }, void 0));\r\n}\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getScrollSections = exports.setScrollSections = exports.getReel = exports.setReel = exports.getContact = exports.setContact = void 0;\r\nlet reel;\r\nlet contact;\r\nlet scrollSections;\r\nfunction setContact(element) {\r\n contact = element;\r\n}\r\nexports.setContact = setContact;\r\nfunction getContact() {\r\n return contact;\r\n}\r\nexports.getContact = getContact;\r\nfunction setReel(element) {\r\n reel = element;\r\n}\r\nexports.setReel = setReel;\r\nfunction getReel() {\r\n return reel;\r\n}\r\nexports.getReel = getReel;\r\nfunction setScrollSections(elements) {\r\n scrollSections = elements;\r\n}\r\nexports.setScrollSections = setScrollSections;\r\nfunction getScrollSections() {\r\n return scrollSections;\r\n}\r\nexports.getScrollSections = getScrollSections;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.images = void 0;\r\nexports.images = [\r\n \"/image1.webp\",\r\n \"/image2.webp\",\r\n \"/image3.webp\",\r\n \"/image4.webp\",\r\n \"/image5.webp\",\r\n \"/image1.webp\",\r\n \"/image2.webp\",\r\n \"/image3.webp\",\r\n \"/image4.webp\",\r\n \"/image5.webp\",\r\n];\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst jsx_runtime_1 = require(\"preact/jsx-runtime\");\r\nconst preact_1 = require(\"preact\");\r\nconst App_1 = require(\"./App\");\r\n// Create your app\r\n(0, preact_1.render)((0, jsx_runtime_1.jsx)(App_1.default, {}, void 0), document.body);\r\n"],"sourceRoot":""}