{"version":3,"sources":["../../src/helpers.tsx","../../src/props.ts","../../src/fadezoom.tsx","../../src/fade.tsx","../../src/zoom.tsx","../../src/slide.tsx","../node_modules/@tweenjs/tween.js/dist/tween.esm.js"],"names":["getStartingIndex","children","defaultIndex","React","Children","count","EASING_METHODS","linear","Easing","Linear","None","ease","Quadratic","InOut","In","Out","cubic","Cubic","getEasing","easeMethod","showPreviousArrow","_ref","currentIndex","moveSlides","prevArrow","infinite","isDisabled","props","disabled","onClick","cloneElement","_extends","className","createElement","Object","assign","type","width","height","viewBox","d","showNextArrow","properties","responsiveSettings","nextArrow","slidesToScroll","settings","showIndicators","navigate","indicators","pages","Math","ceil","Array","from","length","_","key","indicatorProps","isCurrentPageActive","floor","eachIndicator","showCustomIndicator","showDefaultIndicator","defaultProps","duration","transitionDuration","autoplay","arrows","pauseOnHover","easing","canSwipe","cssClass","responsive","FadeZoom","forwardRef","ref","_useState","useState","index","setIndex","wrapperRef","useRef","innerWrapperRef","tweenGroup","Group","timeout","resizeObserver","childrenCount","useMemo","applyStyle","useCallback","current","wrapperWidth","clientWidth","fullwidth","style","_index","eachDiv","left","display","initResizeObserver","ResizeObserver","entries","observe","play","setTimeout","moveNext","useEffect","removeAll","clearTimeout","removeResizeObserver","useImperativeHandle","goNext","goBack","moveBack","goTo","options","skipTransition","moveTo","unobserve","pauseSlides","transitionSlide","preTransition","event","currentTarget","dataset","animate","requestAnimationFrame","update","newIndex","getAll","_innerWrapperRef$curr","tween","Tween","opacity","scale","to","onUpdate","value","transform","onStart","onStartChange","onComplete","onChange","start","gotoIndex","dir","onMouseEnter","onMouseOver","onMouseLeave","map","thisArg","each","zIndex","parseInt","Slide","startingSwipePosition","_useState2","wrapperSize","setWrapperSize","window","isArray","find","breakpoint","getResponsiveSettings","slidesToShow","eachChildSize","dragging","distanceSwiped","translateType","vertical","swipeAttributeType","swipePageAttributeType","fullSize","attribute","setSize","swipe","position","TouchEvent","nativeEvent","touches","translateValue","getOffset","distance","nextIndex","calculateIndex","previousIndex","_ref2","startSwipe","endSwipe","abs","toIndex","animationDuration","existingTweens","childSize","margin","onMouseDown","onMouseUp","onMouseMove","onTouchStart","onTouchEnd","onTouchCancel","onTouchMove","toArray","slice","isThisSlideActive","isSlideActive","renderTrailingSlides","datasetKey","amount","Quartic","Quintic","Sinusoidal","cos","PI","sin","Exponential","pow","Circular","sqrt","Elastic","Back","s","Bounce","now$1","self","process","hrtime","time","undefined","performance","now","bind","Date","getTime","this","_tweens","_tweensAddedDuringUpdate","prototype","_this","keys","tweenId","add","getId","remove","preserve","tweenIds","i","autoStart","Interpolation","v","k","m","f","fn","Utils","Bezier","b","n","pw","bn","Bernstein","CatmullRom","p0","p1","t","fc","Factorial","a","p2","p3","v0","v1","t2","Sequence","nextId","_nextId","mainGroup","_object","_group","_isPaused","_pauseStart","_valuesStart","_valuesEnd","_valuesStartRepeat","_duration","_initialRepeat","_repeat","_yoyo","_isPlaying","_reversed","_delayTime","_startTime","_easingFunction","_interpolationFunction","_chainedTweens","_onStartCallbackFired","_id","_isChainStopped","_goToEnd","isPlaying","isPaused","create","property","_swapEndStartRepeatValues","parseFloat","_setupProperties","startValue","startValueIsArray","propType","isInterpolationList","endValues","_handleRelativeValue","concat","reverse","prop","stop","stopChainedTweens","_onStopCallback","end","Infinity","pause","resume","numChainedTweens","group","delay","repeat","times","repeatDelay","_repeatDelayTime","yoyo","easingFunction","interpolation","interpolationFunction","chain","tweens","_i","arguments","callback","_onStartCallback","_onUpdateCallback","onRepeat","_onRepeatCallback","_onCompleteCallback","onStop","elapsed","endTime","_updateProperties","isFinite","startIsArray","endIsArray","charAt","tmp","endValue","TWEEN"],"mappings":"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","file":"static/js/3.63d7d9ec.chunk.js","sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n ButtonClick,\n FadeProps,\n IndicatorPropsType,\n Responsive,\n SlideProps,\n TweenEasingFn,\n ZoomProps,\n} from './types';\nimport { Easing } from '@tweenjs/tween.js';\n\nexport const getStartingIndex = (children: ReactNode, defaultIndex?: number): number => {\n if (defaultIndex && defaultIndex < React.Children.count(children)) {\n return defaultIndex;\n }\n return 0;\n};\n\nexport const getResponsiveSettings = (\n wrapperWidth: number,\n responsive?: Array\n): Responsive | undefined => {\n if (typeof window !== 'undefined' && Array.isArray(responsive)) {\n return responsive.find((each) => each.breakpoint <= wrapperWidth);\n }\n return;\n};\n\nconst EASING_METHODS: { [key: string]: TweenEasingFn } = {\n linear: Easing.Linear.None,\n ease: Easing.Quadratic.InOut,\n 'ease-in': Easing.Quadratic.In,\n 'ease-out': Easing.Quadratic.Out,\n cubic: Easing.Cubic.InOut,\n 'cubic-in': Easing.Cubic.In,\n 'cubic-out': Easing.Cubic.Out,\n};\n\nexport const getEasing = (easeMethod?: string): TweenEasingFn => {\n if (easeMethod) {\n return EASING_METHODS[easeMethod];\n }\n return EASING_METHODS.linear;\n};\n\nexport const showPreviousArrow = (\n { prevArrow, infinite }: FadeProps | SlideProps | ZoomProps,\n currentIndex: number,\n moveSlides: ButtonClick\n): ReactNode => {\n const isDisabled = currentIndex <= 0 && !infinite;\n const props = {\n 'data-type': 'prev',\n 'aria-label': 'Previous Slide',\n disabled: isDisabled,\n onClick: moveSlides,\n };\n if (prevArrow) {\n return React.cloneElement(prevArrow, {\n className: `${prevArrow.props.className || ''} nav ${isDisabled ? 'disabled' : ''}`,\n ...props,\n });\n }\n const className = `nav default-nav ${isDisabled ? 'disabled' : ''}`;\n return (\n \n );\n};\n\nexport const showNextArrow = (\n properties: FadeProps | SlideProps | ZoomProps,\n currentIndex: number,\n moveSlides: ButtonClick,\n responsiveSettings?: Responsive\n) => {\n const { nextArrow, infinite, children } = properties;\n let slidesToScroll = 1;\n if (responsiveSettings) {\n slidesToScroll = responsiveSettings?.settings.slidesToScroll;\n } else if ('slidesToScroll' in properties) {\n slidesToScroll = properties.slidesToScroll || 1;\n }\n const isDisabled = currentIndex >= React.Children.count(children) - slidesToScroll && !infinite;\n const props = {\n 'data-type': 'next',\n 'aria-label': 'Next Slide',\n disabled: isDisabled,\n onClick: moveSlides,\n };\n if (nextArrow) {\n return React.cloneElement(nextArrow, {\n className: `${nextArrow.props.className || ''} nav ${isDisabled ? 'disabled' : ''}`,\n ...props,\n });\n }\n const className = `nav default-nav ${isDisabled ? 'disabled' : ''}`;\n return (\n \n );\n};\n\nconst showDefaultIndicator = (\n isCurrentPageActive: boolean,\n key: number,\n indicatorProps: IndicatorPropsType\n) => {\n return (\n
  • \n \n
  • \n );\n};\n\nconst showCustomIndicator = (\n isCurrentPageActive: boolean,\n key: number,\n indicatorProps: any,\n eachIndicator: any\n) => {\n return React.cloneElement(eachIndicator, {\n className: `${eachIndicator.props.className} ${isCurrentPageActive ? 'active' : ''}`,\n key,\n ...indicatorProps,\n });\n};\n\nexport const showIndicators = (\n props: FadeProps | SlideProps | ZoomProps,\n currentIndex: number,\n navigate: ButtonClick,\n responsiveSettings?: Responsive\n): ReactNode => {\n const { children, indicators } = props;\n let slidesToScroll = 1;\n if (responsiveSettings) {\n slidesToScroll = responsiveSettings?.settings.slidesToScroll;\n } else if ('slidesToScroll' in props) {\n slidesToScroll = props.slidesToScroll || 1;\n }\n const pages = Math.ceil(React.Children.count(children) / slidesToScroll);\n return (\n \n );\n};\n","export const defaultProps = {\n duration: 5000,\n transitionDuration: 1000,\n defaultIndex: 0,\n infinite: true,\n autoplay: true,\n indicators: false,\n arrows: true,\n pauseOnHover: true,\n easing: 'linear',\n canSwipe: true,\n cssClass: '',\n responsive: [],\n};\n","import React, {\n useState,\n useRef,\n useEffect,\n useMemo,\n useImperativeHandle,\n useCallback,\n} from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { Group, Tween } from '@tweenjs/tween.js';\nimport {\n getEasing,\n getStartingIndex,\n showIndicators,\n showNextArrow,\n showPreviousArrow,\n} from './helpers';\nimport { ButtonClick, SlideshowRef, ZoomProps } from './types';\nimport { defaultProps } from './props';\n\nexport const FadeZoom = React.forwardRef((props, ref) => {\n const [index, setIndex] = useState(\n getStartingIndex(props.children, props.defaultIndex)\n );\n const wrapperRef = useRef(null);\n const innerWrapperRef = useRef(null);\n const tweenGroup = useRef(new Group());\n const timeout = useRef();\n const resizeObserver = useRef();\n const childrenCount = useMemo(() => React.Children.count(props.children), [props.children]);\n\n const applyStyle = useCallback(() => {\n if (innerWrapperRef.current && wrapperRef.current) {\n const wrapperWidth = wrapperRef.current.clientWidth;\n const fullwidth = wrapperWidth * childrenCount;\n innerWrapperRef.current.style.width = `${fullwidth}px`;\n for (let index = 0; index < innerWrapperRef.current.children.length; index++) {\n const eachDiv = innerWrapperRef.current.children[index];\n if (eachDiv) {\n eachDiv.style.width = `${wrapperWidth}px`;\n eachDiv.style.left = `${index * -wrapperWidth}px`;\n eachDiv.style.display = `block`;\n }\n }\n }\n }, [wrapperRef, innerWrapperRef, childrenCount]);\n\n const initResizeObserver = useCallback(() => {\n if (wrapperRef.current) {\n resizeObserver.current = new ResizeObserver((entries) => {\n if (!entries) return;\n applyStyle();\n });\n resizeObserver.current.observe(wrapperRef.current);\n }\n }, [wrapperRef, applyStyle]);\n\n const play = useCallback(() => {\n const { autoplay, children, duration, infinite } = props;\n if (\n autoplay &&\n React.Children.count(children) > 1 &&\n (infinite || index < React.Children.count(children) - 1)\n ) {\n timeout.current = setTimeout(moveNext, duration);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props, index]);\n\n useEffect(() => {\n initResizeObserver();\n return () => {\n tweenGroup.current.removeAll();\n clearTimeout(timeout.current);\n removeResizeObserver();\n };\n }, [initResizeObserver, tweenGroup]);\n\n useEffect(() => {\n clearTimeout(timeout.current);\n play();\n }, [index, props.autoplay, play]);\n\n useEffect(() => {\n applyStyle();\n }, [childrenCount, applyStyle]);\n\n useImperativeHandle(ref, () => ({\n goNext: () => {\n moveNext();\n },\n goBack: () => {\n moveBack();\n },\n goTo: (index: number, options?: { skipTransition?: boolean }) => {\n if (options?.skipTransition) {\n setIndex(index);\n } else {\n moveTo(index);\n }\n },\n }));\n\n const removeResizeObserver = () => {\n if (resizeObserver.current && wrapperRef.current) {\n resizeObserver.current.unobserve(wrapperRef.current);\n }\n };\n\n const pauseSlides = () => {\n if (props.pauseOnHover) {\n clearTimeout(timeout.current);\n }\n };\n\n const startSlides = () => {\n const { pauseOnHover, autoplay, duration } = props;\n if (pauseOnHover && autoplay) {\n timeout.current = setTimeout(() => moveNext(), duration);\n }\n };\n\n const moveNext = () => {\n const { children, infinite } = props;\n if (!infinite && index === React.Children.count(children) - 1) {\n return;\n }\n transitionSlide((index + 1) % React.Children.count(children));\n };\n\n const moveBack = () => {\n const { children, infinite } = props;\n if (!infinite && index === 0) {\n return;\n }\n transitionSlide(index === 0 ? React.Children.count(children) - 1 : index - 1);\n };\n\n const preTransition: ButtonClick = (event) => {\n const { currentTarget } = event;\n if (currentTarget.dataset.type === 'prev') {\n moveBack();\n } else {\n moveNext();\n }\n };\n\n const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.current.update();\n };\n\n const transitionSlide = (newIndex: number) => {\n const existingTweens = tweenGroup.current.getAll();\n if (!existingTweens.length) {\n if (!innerWrapperRef.current?.children[newIndex]) {\n newIndex = 0;\n }\n clearTimeout(timeout.current);\n const value = { opacity: 0, scale: 1 };\n\n animate();\n\n const tween = new Tween(value, tweenGroup.current)\n .to({ opacity: 1, scale: props.scale }, props.transitionDuration)\n .onUpdate((value) => {\n if (!innerWrapperRef.current) {\n return;\n }\n innerWrapperRef.current.children[newIndex].style.opacity = value.opacity;\n innerWrapperRef.current.children[index].style.opacity = 1 - value.opacity;\n innerWrapperRef.current.children[\n index\n ].style.transform = `scale(${value.scale})`;\n });\n tween.easing(getEasing(props.easing));\n tween.onStart(() => {\n if (typeof props.onStartChange === 'function') {\n props.onStartChange(index, newIndex);\n }\n });\n tween.onComplete(() => {\n if (innerWrapperRef.current) {\n setIndex(newIndex);\n innerWrapperRef.current.children[index].style.transform = `scale(1)`;\n }\n if (typeof props.onChange === 'function') {\n props.onChange(index, newIndex);\n }\n });\n tween.start();\n }\n };\n\n const moveTo = (gotoIndex: number) => {\n if (gotoIndex !== index) {\n transitionSlide(gotoIndex);\n }\n };\n\n const navigate: ButtonClick = (event) => {\n const { currentTarget } = event;\n if (!currentTarget.dataset.key) {\n return;\n }\n if (parseInt(currentTarget.dataset.key) !== index) {\n moveTo(parseInt(currentTarget.dataset.key));\n }\n };\n\n return (\n
    \n \n {props.arrows && showPreviousArrow(props, index, preTransition)}\n \n
    \n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => (\n \n {each}\n
    \n )\n )}\n
    \n \n {props.arrows && showNextArrow(props, index, preTransition)}\n \n {props.indicators && showIndicators(props, index, navigate)}\n \n );\n});\n\nFadeZoom.defaultProps = defaultProps;\n","import React from 'react';\nimport { FadeZoom } from './fadezoom';\nimport { defaultProps } from './props';\nimport { FadeProps, SlideshowRef } from './types';\n\nexport const Fade = React.forwardRef((props, ref) => {\n return ;\n});\n\nFade.defaultProps = defaultProps;\n","import React from 'react';\nimport { FadeZoom } from './fadezoom';\nimport { defaultProps } from './props';\nimport { SlideshowRef, ZoomProps } from './types';\n\nexport const Zoom = React.forwardRef((props, ref) => {\n return ;\n});\n\nZoom.defaultProps = defaultProps;\n","import React, {\n useState,\n useRef,\n useEffect,\n useMemo,\n useImperativeHandle,\n useCallback,\n} from 'react';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { Group, Tween } from '@tweenjs/tween.js';\nimport {\n getEasing,\n getResponsiveSettings,\n getStartingIndex,\n showIndicators,\n showNextArrow,\n showPreviousArrow,\n} from './helpers';\nimport { ButtonClick, SlideshowRef, SlideProps } from './types';\nimport { defaultProps } from './props';\n\nexport const Slide = React.forwardRef((props, ref) => {\n const [index, setIndex] = useState(getStartingIndex(props.children, props.defaultIndex));\n const [wrapperSize, setWrapperSize] = useState(0);\n const wrapperRef = useRef(null);\n const innerWrapperRef = useRef(null);\n const tweenGroup = useRef(new Group());\n const responsiveSettings = useMemo(\n () => getResponsiveSettings(wrapperSize, props.responsive),\n [wrapperSize, props.responsive]\n );\n const slidesToScroll = useMemo(() => {\n if (responsiveSettings) {\n return responsiveSettings.settings.slidesToScroll;\n }\n return props.slidesToScroll || 1;\n }, [responsiveSettings, props.slidesToScroll]);\n const slidesToShow = useMemo(() => {\n if (responsiveSettings) {\n return responsiveSettings.settings.slidesToShow;\n }\n return props.slidesToShow || 1;\n }, [responsiveSettings, props.slidesToShow]);\n const childrenCount = useMemo(() => React.Children.count(props.children), [props.children]);\n const eachChildSize = useMemo(() => wrapperSize / slidesToShow, [wrapperSize, slidesToShow]);\n const timeout = useRef();\n const resizeObserver = useRef();\n let startingSwipePosition: number;\n let dragging: boolean = false;\n let distanceSwiped: number = 0;\n const translateType = props.vertical ? 'translateY' : 'translateX';\n const swipeAttributeType = props.vertical ? 'clientY' : 'clientX';\n const swipePageAttributeType = props.vertical ? 'pageY' : 'pageX';\n\n const applyStyle = useCallback(() => {\n if (innerWrapperRef.current) {\n const fullSize = wrapperSize * innerWrapperRef.current.children.length;\n const attribute = props.vertical ? 'height' : 'width';\n innerWrapperRef.current.style[attribute] = `${fullSize}px`;\n if (props.vertical && wrapperRef.current) {\n wrapperRef.current.style[attribute] = `${wrapperSize}px`;\n }\n for (let index = 0; index < innerWrapperRef.current.children.length; index++) {\n const eachDiv = innerWrapperRef.current.children[index];\n if (eachDiv) {\n if (!props.vertical) {\n eachDiv.style[attribute] = `${eachChildSize}px`;\n }\n eachDiv.style.display = `block`;\n }\n }\n }\n }, [wrapperSize, eachChildSize]);\n\n const initResizeObserver = useCallback(() => {\n if (wrapperRef.current) {\n resizeObserver.current = new ResizeObserver((entries) => {\n if (!entries) return;\n setSize();\n });\n resizeObserver.current.observe(wrapperRef.current);\n }\n }, [wrapperRef]);\n\n const play = useCallback(() => {\n const { autoplay, infinite, duration } = props;\n if (autoplay && (infinite || index < childrenCount - 1)) {\n timeout.current = setTimeout(moveNext, duration);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props, childrenCount, index]);\n\n useEffect(() => {\n applyStyle();\n }, [wrapperSize, applyStyle]);\n\n useEffect(() => {\n initResizeObserver();\n return () => {\n tweenGroup.current.removeAll();\n clearTimeout(timeout.current);\n removeResizeObserver();\n };\n }, [wrapperRef, initResizeObserver, tweenGroup]);\n\n useEffect(() => {\n clearTimeout(timeout.current);\n play();\n }, [index, wrapperSize, props.autoplay, play]);\n\n useImperativeHandle(ref, () => ({\n goNext: () => {\n moveNext();\n },\n goBack: () => {\n moveBack();\n },\n goTo: (index: number, options?: { skipTransition?: boolean }) => {\n if (options?.skipTransition) {\n setIndex(index);\n } else {\n moveTo(index);\n }\n },\n }));\n\n const removeResizeObserver = () => {\n if (resizeObserver && wrapperRef.current) {\n resizeObserver.current.unobserve(wrapperRef.current);\n }\n };\n\n const pauseSlides = () => {\n if (props.pauseOnHover) {\n clearTimeout(timeout.current);\n }\n };\n\n const swipe = (event: React.MouseEvent | React.TouchEvent) => {\n if (props.canSwipe && dragging) {\n let position;\n if (window.TouchEvent && event.nativeEvent instanceof TouchEvent) {\n position = event.nativeEvent.touches[0][swipePageAttributeType];\n } else {\n position = (event.nativeEvent as MouseEvent)[swipeAttributeType];\n }\n if (position && startingSwipePosition) {\n let translateValue = eachChildSize * (index + getOffset());\n const distance = position - startingSwipePosition;\n if (!props.infinite && index === childrenCount - slidesToScroll && distance < 0) {\n // if it is the last and infinite is false and you're swiping left\n // then nothing happens\n return;\n }\n if (!props.infinite && index === 0 && distance > 0) {\n // if it is the first and infinite is false and you're swiping right\n // then nothing happens\n return;\n }\n distanceSwiped = distance;\n translateValue -= distanceSwiped;\n innerWrapperRef.current.style.transform = `${translateType}(-${translateValue}px)`;\n }\n }\n };\n\n const moveNext = () => {\n if (!props.infinite && index === childrenCount - slidesToScroll) {\n return;\n }\n const nextIndex = calculateIndex(index + slidesToScroll);\n transitionSlide(nextIndex);\n };\n\n const moveBack = () => {\n if (!props.infinite && index === 0) {\n return;\n }\n let previousIndex = index - slidesToScroll;\n if (previousIndex % slidesToScroll) {\n previousIndex = Math.ceil(previousIndex / slidesToScroll) * slidesToScroll;\n }\n transitionSlide(previousIndex);\n };\n\n const goToSlide: ButtonClick = ({ currentTarget }) => {\n if (!currentTarget.dataset.key) {\n return;\n }\n const datasetKey = parseInt(currentTarget.dataset.key);\n moveTo(datasetKey * slidesToScroll);\n };\n\n const moveTo = (index: number) => {\n transitionSlide(calculateIndex(index));\n };\n\n const calculateIndex = (nextIndex: number): number => {\n if (nextIndex < childrenCount && nextIndex + slidesToScroll > childrenCount) {\n if ((childrenCount - slidesToScroll) % slidesToScroll) {\n return childrenCount - slidesToScroll;\n }\n return nextIndex;\n }\n return nextIndex;\n };\n\n const startSlides = () => {\n if (dragging) {\n endSwipe();\n } else if (props.pauseOnHover && props.autoplay) {\n timeout.current = setTimeout(moveNext, props.duration);\n }\n };\n\n const moveSlides: ButtonClick = ({ currentTarget: { dataset } }) => {\n if (dataset.type === 'next') {\n moveNext();\n } else {\n moveBack();\n }\n };\n\n const renderPreceedingSlides = () => {\n return React.Children.toArray(props.children)\n .slice(-slidesToShow)\n .map((each, index) => (\n \n {each}\n \n ));\n };\n\n const renderTrailingSlides = () => {\n if (!props.infinite && slidesToShow === slidesToScroll) {\n return;\n }\n return React.Children.toArray(props.children)\n .slice(0, slidesToShow)\n .map((each, index) => (\n \n {each}\n \n ));\n };\n\n const setSize = () => {\n const attribute = props.vertical ? 'clientHeight' : 'clientWidth';\n if (props.vertical) {\n if (innerWrapperRef.current) {\n setWrapperSize(innerWrapperRef.current.children[0][attribute]);\n }\n } else {\n if (wrapperRef.current) {\n setWrapperSize(wrapperRef.current[attribute]);\n }\n }\n };\n\n const startSwipe = (event: React.MouseEvent | React.TouchEvent) => {\n if (props.canSwipe) {\n if (window.TouchEvent && event.nativeEvent instanceof TouchEvent) {\n startingSwipePosition = event.nativeEvent.touches[0][swipePageAttributeType];\n } else {\n startingSwipePosition = (event.nativeEvent as MouseEvent)[swipeAttributeType];\n }\n clearTimeout(timeout.current);\n dragging = true;\n }\n };\n\n const endSwipe = () => {\n if (props.canSwipe) {\n dragging = false;\n if (Math.abs(distanceSwiped) / wrapperSize > 0.2) {\n if (distanceSwiped < 0) {\n moveNext();\n } else {\n moveBack();\n }\n } else {\n if (Math.abs(distanceSwiped) > 0) {\n transitionSlide(index, 300);\n }\n }\n }\n };\n\n const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.current.update();\n };\n\n const transitionSlide = (toIndex: number, animationDuration?: number) => {\n const transitionDuration = animationDuration || props.transitionDuration;\n const currentIndex = index;\n const existingTweens = tweenGroup.current.getAll();\n if (!wrapperRef.current) {\n return;\n }\n const attribute = props.vertical ? 'clientHeight' : 'clientWidth';\n const childSize = wrapperRef.current[attribute] / slidesToShow;\n if (!existingTweens.length) {\n clearTimeout(timeout.current);\n const value = {\n margin: -childSize * (currentIndex + getOffset()) + distanceSwiped,\n };\n const tween = new Tween(value, tweenGroup.current)\n .to({ margin: -childSize * (toIndex + getOffset()) }, transitionDuration)\n .onUpdate((value) => {\n if (innerWrapperRef.current) {\n innerWrapperRef.current.style.transform = `${translateType}(${value.margin}px)`;\n }\n });\n tween.easing(getEasing(props.easing));\n\n animate();\n\n let newIndex = toIndex;\n if (newIndex < 0) {\n newIndex = childrenCount - slidesToScroll;\n } else if (newIndex >= childrenCount) {\n newIndex = 0;\n }\n\n tween.onStart(() => {\n if (typeof props.onStartChange === 'function') {\n props.onStartChange(index, newIndex);\n }\n });\n\n tween.onComplete(() => {\n distanceSwiped = 0;\n if (typeof props.onChange === 'function') {\n props.onChange(index, newIndex);\n }\n setIndex(newIndex);\n });\n\n tween.start();\n }\n };\n\n const isSlideActive = (key: number) => {\n return key < index + slidesToShow && key >= index;\n };\n\n const getOffset = (): number => {\n if (!props.infinite) {\n return 0;\n }\n return slidesToShow;\n };\n\n const style = {\n transform: `${translateType}(-${(index + getOffset()) * eachChildSize}px)`,\n };\n return (\n
    \n \n {props.arrows && showPreviousArrow(props, index, moveSlides)}\n \n \n {props.infinite && renderPreceedingSlides()}\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => {\n const isThisSlideActive = isSlideActive(key);\n return (\n \n {each}\n
    \n );\n }\n )}\n {renderTrailingSlides()}\n \n \n {props.arrows && showNextArrow(props, index, moveSlides, responsiveSettings)}\n \n {!!props.indicators && showIndicators(props, index, goToSlide, responsiveSettings)}\n \n );\n});\n\nSlide.defaultProps = defaultProps;\n","/**\n * The Ease class provides a collection of easing functions for use with tween.js.\n */\nvar Easing = {\n Linear: {\n None: function (amount) {\n return amount;\n },\n },\n Quadratic: {\n In: function (amount) {\n return amount * amount;\n },\n Out: function (amount) {\n return amount * (2 - amount);\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount;\n }\n return -0.5 * (--amount * (amount - 2) - 1);\n },\n },\n Cubic: {\n In: function (amount) {\n return amount * amount * amount;\n },\n Out: function (amount) {\n return --amount * amount * amount + 1;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount;\n }\n return 0.5 * ((amount -= 2) * amount * amount + 2);\n },\n },\n Quartic: {\n In: function (amount) {\n return amount * amount * amount * amount;\n },\n Out: function (amount) {\n return 1 - --amount * amount * amount * amount;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount * amount;\n }\n return -0.5 * ((amount -= 2) * amount * amount * amount - 2);\n },\n },\n Quintic: {\n In: function (amount) {\n return amount * amount * amount * amount * amount;\n },\n Out: function (amount) {\n return --amount * amount * amount * amount * amount + 1;\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return 0.5 * amount * amount * amount * amount * amount;\n }\n return 0.5 * ((amount -= 2) * amount * amount * amount * amount + 2);\n },\n },\n Sinusoidal: {\n In: function (amount) {\n return 1 - Math.cos((amount * Math.PI) / 2);\n },\n Out: function (amount) {\n return Math.sin((amount * Math.PI) / 2);\n },\n InOut: function (amount) {\n return 0.5 * (1 - Math.cos(Math.PI * amount));\n },\n },\n Exponential: {\n In: function (amount) {\n return amount === 0 ? 0 : Math.pow(1024, amount - 1);\n },\n Out: function (amount) {\n return amount === 1 ? 1 : 1 - Math.pow(2, -10 * amount);\n },\n InOut: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n if ((amount *= 2) < 1) {\n return 0.5 * Math.pow(1024, amount - 1);\n }\n return 0.5 * (-Math.pow(2, -10 * (amount - 1)) + 2);\n },\n },\n Circular: {\n In: function (amount) {\n return 1 - Math.sqrt(1 - amount * amount);\n },\n Out: function (amount) {\n return Math.sqrt(1 - --amount * amount);\n },\n InOut: function (amount) {\n if ((amount *= 2) < 1) {\n return -0.5 * (Math.sqrt(1 - amount * amount) - 1);\n }\n return 0.5 * (Math.sqrt(1 - (amount -= 2) * amount) + 1);\n },\n },\n Elastic: {\n In: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n return -Math.pow(2, 10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI);\n },\n Out: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n return Math.pow(2, -10 * amount) * Math.sin((amount - 0.1) * 5 * Math.PI) + 1;\n },\n InOut: function (amount) {\n if (amount === 0) {\n return 0;\n }\n if (amount === 1) {\n return 1;\n }\n amount *= 2;\n if (amount < 1) {\n return -0.5 * Math.pow(2, 10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI);\n }\n return 0.5 * Math.pow(2, -10 * (amount - 1)) * Math.sin((amount - 1.1) * 5 * Math.PI) + 1;\n },\n },\n Back: {\n In: function (amount) {\n var s = 1.70158;\n return amount * amount * ((s + 1) * amount - s);\n },\n Out: function (amount) {\n var s = 1.70158;\n return --amount * amount * ((s + 1) * amount + s) + 1;\n },\n InOut: function (amount) {\n var s = 1.70158 * 1.525;\n if ((amount *= 2) < 1) {\n return 0.5 * (amount * amount * ((s + 1) * amount - s));\n }\n return 0.5 * ((amount -= 2) * amount * ((s + 1) * amount + s) + 2);\n },\n },\n Bounce: {\n In: function (amount) {\n return 1 - Easing.Bounce.Out(1 - amount);\n },\n Out: function (amount) {\n if (amount < 1 / 2.75) {\n return 7.5625 * amount * amount;\n }\n else if (amount < 2 / 2.75) {\n return 7.5625 * (amount -= 1.5 / 2.75) * amount + 0.75;\n }\n else if (amount < 2.5 / 2.75) {\n return 7.5625 * (amount -= 2.25 / 2.75) * amount + 0.9375;\n }\n else {\n return 7.5625 * (amount -= 2.625 / 2.75) * amount + 0.984375;\n }\n },\n InOut: function (amount) {\n if (amount < 0.5) {\n return Easing.Bounce.In(amount * 2) * 0.5;\n }\n return Easing.Bounce.Out(amount * 2 - 1) * 0.5 + 0.5;\n },\n },\n};\n\nvar now;\n// Include a performance.now polyfill.\n// In node.js, use process.hrtime.\n// eslint-disable-next-line\n// @ts-ignore\nif (typeof self === 'undefined' && typeof process !== 'undefined' && process.hrtime) {\n now = function () {\n // eslint-disable-next-line\n // @ts-ignore\n var time = process.hrtime();\n // Convert [seconds, nanoseconds] to milliseconds.\n return time[0] * 1000 + time[1] / 1000000;\n };\n}\n// In a browser, use self.performance.now if it is available.\nelse if (typeof self !== 'undefined' && self.performance !== undefined && self.performance.now !== undefined) {\n // This must be bound, because directly assigning this function\n // leads to an invocation exception in Chrome.\n now = self.performance.now.bind(self.performance);\n}\n// Use Date.now if it is available.\nelse if (Date.now !== undefined) {\n now = Date.now;\n}\n// Otherwise, use 'new Date().getTime()'.\nelse {\n now = function () {\n return new Date().getTime();\n };\n}\nvar now$1 = now;\n\n/**\n * Controlling groups of tweens\n *\n * Using the TWEEN singleton to manage your tweens can cause issues in large apps with many components.\n * In these cases, you may want to create your own smaller groups of tween\n */\nvar Group = /** @class */ (function () {\n function Group() {\n this._tweens = {};\n this._tweensAddedDuringUpdate = {};\n }\n Group.prototype.getAll = function () {\n var _this = this;\n return Object.keys(this._tweens).map(function (tweenId) {\n return _this._tweens[tweenId];\n });\n };\n Group.prototype.removeAll = function () {\n this._tweens = {};\n };\n Group.prototype.add = function (tween) {\n this._tweens[tween.getId()] = tween;\n this._tweensAddedDuringUpdate[tween.getId()] = tween;\n };\n Group.prototype.remove = function (tween) {\n delete this._tweens[tween.getId()];\n delete this._tweensAddedDuringUpdate[tween.getId()];\n };\n Group.prototype.update = function (time, preserve) {\n if (time === void 0) { time = now$1(); }\n if (preserve === void 0) { preserve = false; }\n var tweenIds = Object.keys(this._tweens);\n if (tweenIds.length === 0) {\n return false;\n }\n // Tweens are updated in \"batches\". If you add a new tween during an\n // update, then the new tween will be updated in the next batch.\n // If you remove a tween during an update, it may or may not be updated.\n // However, if the removed tween was added during the current batch,\n // then it will not be updated.\n while (tweenIds.length > 0) {\n this._tweensAddedDuringUpdate = {};\n for (var i = 0; i < tweenIds.length; i++) {\n var tween = this._tweens[tweenIds[i]];\n var autoStart = !preserve;\n if (tween && tween.update(time, autoStart) === false && !preserve) {\n delete this._tweens[tweenIds[i]];\n }\n }\n tweenIds = Object.keys(this._tweensAddedDuringUpdate);\n }\n return true;\n };\n return Group;\n}());\n\n/**\n *\n */\nvar Interpolation = {\n Linear: function (v, k) {\n var m = v.length - 1;\n var f = m * k;\n var i = Math.floor(f);\n var fn = Interpolation.Utils.Linear;\n if (k < 0) {\n return fn(v[0], v[1], f);\n }\n if (k > 1) {\n return fn(v[m], v[m - 1], m - f);\n }\n return fn(v[i], v[i + 1 > m ? m : i + 1], f - i);\n },\n Bezier: function (v, k) {\n var b = 0;\n var n = v.length - 1;\n var pw = Math.pow;\n var bn = Interpolation.Utils.Bernstein;\n for (var i = 0; i <= n; i++) {\n b += pw(1 - k, n - i) * pw(k, i) * v[i] * bn(n, i);\n }\n return b;\n },\n CatmullRom: function (v, k) {\n var m = v.length - 1;\n var f = m * k;\n var i = Math.floor(f);\n var fn = Interpolation.Utils.CatmullRom;\n if (v[0] === v[m]) {\n if (k < 0) {\n i = Math.floor((f = m * (1 + k)));\n }\n return fn(v[(i - 1 + m) % m], v[i], v[(i + 1) % m], v[(i + 2) % m], f - i);\n }\n else {\n if (k < 0) {\n return v[0] - (fn(v[0], v[0], v[1], v[1], -f) - v[0]);\n }\n if (k > 1) {\n return v[m] - (fn(v[m], v[m], v[m - 1], v[m - 1], f - m) - v[m]);\n }\n return fn(v[i ? i - 1 : 0], v[i], v[m < i + 1 ? m : i + 1], v[m < i + 2 ? m : i + 2], f - i);\n }\n },\n Utils: {\n Linear: function (p0, p1, t) {\n return (p1 - p0) * t + p0;\n },\n Bernstein: function (n, i) {\n var fc = Interpolation.Utils.Factorial;\n return fc(n) / fc(i) / fc(n - i);\n },\n Factorial: (function () {\n var a = [1];\n return function (n) {\n var s = 1;\n if (a[n]) {\n return a[n];\n }\n for (var i = n; i > 1; i--) {\n s *= i;\n }\n a[n] = s;\n return s;\n };\n })(),\n CatmullRom: function (p0, p1, p2, p3, t) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n var t2 = t * t;\n var t3 = t * t2;\n return (2 * p1 - 2 * p2 + v0 + v1) * t3 + (-3 * p1 + 3 * p2 - 2 * v0 - v1) * t2 + v0 * t + p1;\n },\n },\n};\n\n/**\n * Utils\n */\nvar Sequence = /** @class */ (function () {\n function Sequence() {\n }\n Sequence.nextId = function () {\n return Sequence._nextId++;\n };\n Sequence._nextId = 0;\n return Sequence;\n}());\n\nvar mainGroup = new Group();\n\n/**\n * Tween.js - Licensed under the MIT license\n * https://github.com/tweenjs/tween.js\n * ----------------------------------------------\n *\n * See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors.\n * Thank you all, you're awesome!\n */\nvar Tween = /** @class */ (function () {\n function Tween(_object, _group) {\n if (_group === void 0) { _group = mainGroup; }\n this._object = _object;\n this._group = _group;\n this._isPaused = false;\n this._pauseStart = 0;\n this._valuesStart = {};\n this._valuesEnd = {};\n this._valuesStartRepeat = {};\n this._duration = 1000;\n this._initialRepeat = 0;\n this._repeat = 0;\n this._yoyo = false;\n this._isPlaying = false;\n this._reversed = false;\n this._delayTime = 0;\n this._startTime = 0;\n this._easingFunction = Easing.Linear.None;\n this._interpolationFunction = Interpolation.Linear;\n this._chainedTweens = [];\n this._onStartCallbackFired = false;\n this._id = Sequence.nextId();\n this._isChainStopped = false;\n this._goToEnd = false;\n }\n Tween.prototype.getId = function () {\n return this._id;\n };\n Tween.prototype.isPlaying = function () {\n return this._isPlaying;\n };\n Tween.prototype.isPaused = function () {\n return this._isPaused;\n };\n Tween.prototype.to = function (properties, duration) {\n // TODO? restore this, then update the 07_dynamic_to example to set fox\n // tween's to on each update. That way the behavior is opt-in (there's\n // currently no opt-out).\n // for (const prop in properties) this._valuesEnd[prop] = properties[prop]\n this._valuesEnd = Object.create(properties);\n if (duration !== undefined) {\n this._duration = duration;\n }\n return this;\n };\n Tween.prototype.duration = function (d) {\n this._duration = d;\n return this;\n };\n Tween.prototype.start = function (time) {\n if (this._isPlaying) {\n return this;\n }\n // eslint-disable-next-line\n this._group && this._group.add(this);\n this._repeat = this._initialRepeat;\n if (this._reversed) {\n // If we were reversed (f.e. using the yoyo feature) then we need to\n // flip the tween direction back to forward.\n this._reversed = false;\n for (var property in this._valuesStartRepeat) {\n this._swapEndStartRepeatValues(property);\n this._valuesStart[property] = this._valuesStartRepeat[property];\n }\n }\n this._isPlaying = true;\n this._isPaused = false;\n this._onStartCallbackFired = false;\n this._isChainStopped = false;\n this._startTime = time !== undefined ? (typeof time === 'string' ? now$1() + parseFloat(time) : time) : now$1();\n this._startTime += this._delayTime;\n this._setupProperties(this._object, this._valuesStart, this._valuesEnd, this._valuesStartRepeat);\n return this;\n };\n Tween.prototype._setupProperties = function (_object, _valuesStart, _valuesEnd, _valuesStartRepeat) {\n for (var property in _valuesEnd) {\n var startValue = _object[property];\n var startValueIsArray = Array.isArray(startValue);\n var propType = startValueIsArray ? 'array' : typeof startValue;\n var isInterpolationList = !startValueIsArray && Array.isArray(_valuesEnd[property]);\n // If `to()` specifies a property that doesn't exist in the source object,\n // we should not set that property in the object\n if (propType === 'undefined' || propType === 'function') {\n continue;\n }\n // Check if an Array was provided as property value\n if (isInterpolationList) {\n var endValues = _valuesEnd[property];\n if (endValues.length === 0) {\n continue;\n }\n // handle an array of relative values\n endValues = endValues.map(this._handleRelativeValue.bind(this, startValue));\n // Create a local copy of the Array with the start value at the front\n _valuesEnd[property] = [startValue].concat(endValues);\n }\n // handle the deepness of the values\n if ((propType === 'object' || startValueIsArray) && startValue && !isInterpolationList) {\n _valuesStart[property] = startValueIsArray ? [] : {};\n // eslint-disable-next-line\n for (var prop in startValue) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _valuesStart[property][prop] = startValue[prop];\n }\n _valuesStartRepeat[property] = startValueIsArray ? [] : {}; // TODO? repeat nested values? And yoyo? And array values?\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n this._setupProperties(startValue, _valuesStart[property], _valuesEnd[property], _valuesStartRepeat[property]);\n }\n else {\n // Save the starting value, but only once.\n if (typeof _valuesStart[property] === 'undefined') {\n _valuesStart[property] = startValue;\n }\n if (!startValueIsArray) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _valuesStart[property] *= 1.0; // Ensures we're using numbers, not strings\n }\n if (isInterpolationList) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _valuesStartRepeat[property] = _valuesEnd[property].slice().reverse();\n }\n else {\n _valuesStartRepeat[property] = _valuesStart[property] || 0;\n }\n }\n }\n };\n Tween.prototype.stop = function () {\n if (!this._isChainStopped) {\n this._isChainStopped = true;\n this.stopChainedTweens();\n }\n if (!this._isPlaying) {\n return this;\n }\n // eslint-disable-next-line\n this._group && this._group.remove(this);\n this._isPlaying = false;\n this._isPaused = false;\n if (this._onStopCallback) {\n this._onStopCallback(this._object);\n }\n return this;\n };\n Tween.prototype.end = function () {\n this._goToEnd = true;\n this.update(Infinity);\n return this;\n };\n Tween.prototype.pause = function (time) {\n if (time === void 0) { time = now$1(); }\n if (this._isPaused || !this._isPlaying) {\n return this;\n }\n this._isPaused = true;\n this._pauseStart = time;\n // eslint-disable-next-line\n this._group && this._group.remove(this);\n return this;\n };\n Tween.prototype.resume = function (time) {\n if (time === void 0) { time = now$1(); }\n if (!this._isPaused || !this._isPlaying) {\n return this;\n }\n this._isPaused = false;\n this._startTime += time - this._pauseStart;\n this._pauseStart = 0;\n // eslint-disable-next-line\n this._group && this._group.add(this);\n return this;\n };\n Tween.prototype.stopChainedTweens = function () {\n for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n this._chainedTweens[i].stop();\n }\n return this;\n };\n Tween.prototype.group = function (group) {\n this._group = group;\n return this;\n };\n Tween.prototype.delay = function (amount) {\n this._delayTime = amount;\n return this;\n };\n Tween.prototype.repeat = function (times) {\n this._initialRepeat = times;\n this._repeat = times;\n return this;\n };\n Tween.prototype.repeatDelay = function (amount) {\n this._repeatDelayTime = amount;\n return this;\n };\n Tween.prototype.yoyo = function (yoyo) {\n this._yoyo = yoyo;\n return this;\n };\n Tween.prototype.easing = function (easingFunction) {\n this._easingFunction = easingFunction;\n return this;\n };\n Tween.prototype.interpolation = function (interpolationFunction) {\n this._interpolationFunction = interpolationFunction;\n return this;\n };\n Tween.prototype.chain = function () {\n var tweens = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n tweens[_i] = arguments[_i];\n }\n this._chainedTweens = tweens;\n return this;\n };\n Tween.prototype.onStart = function (callback) {\n this._onStartCallback = callback;\n return this;\n };\n Tween.prototype.onUpdate = function (callback) {\n this._onUpdateCallback = callback;\n return this;\n };\n Tween.prototype.onRepeat = function (callback) {\n this._onRepeatCallback = callback;\n return this;\n };\n Tween.prototype.onComplete = function (callback) {\n this._onCompleteCallback = callback;\n return this;\n };\n Tween.prototype.onStop = function (callback) {\n this._onStopCallback = callback;\n return this;\n };\n /**\n * @returns true if the tween is still playing after the update, false\n * otherwise (calling update on a paused tween still returns true because\n * it is still playing, just paused).\n */\n Tween.prototype.update = function (time, autoStart) {\n if (time === void 0) { time = now$1(); }\n if (autoStart === void 0) { autoStart = true; }\n if (this._isPaused)\n return true;\n var property;\n var elapsed;\n var endTime = this._startTime + this._duration;\n if (!this._goToEnd && !this._isPlaying) {\n if (time > endTime)\n return false;\n if (autoStart)\n this.start(time);\n }\n this._goToEnd = false;\n if (time < this._startTime) {\n return true;\n }\n if (this._onStartCallbackFired === false) {\n if (this._onStartCallback) {\n this._onStartCallback(this._object);\n }\n this._onStartCallbackFired = true;\n }\n elapsed = (time - this._startTime) / this._duration;\n elapsed = this._duration === 0 || elapsed > 1 ? 1 : elapsed;\n var value = this._easingFunction(elapsed);\n // properties transformations\n this._updateProperties(this._object, this._valuesStart, this._valuesEnd, value);\n if (this._onUpdateCallback) {\n this._onUpdateCallback(this._object, elapsed);\n }\n if (elapsed === 1) {\n if (this._repeat > 0) {\n if (isFinite(this._repeat)) {\n this._repeat--;\n }\n // Reassign starting values, restart by making startTime = now\n for (property in this._valuesStartRepeat) {\n if (!this._yoyo && typeof this._valuesEnd[property] === 'string') {\n this._valuesStartRepeat[property] =\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n this._valuesStartRepeat[property] + parseFloat(this._valuesEnd[property]);\n }\n if (this._yoyo) {\n this._swapEndStartRepeatValues(property);\n }\n this._valuesStart[property] = this._valuesStartRepeat[property];\n }\n if (this._yoyo) {\n this._reversed = !this._reversed;\n }\n if (this._repeatDelayTime !== undefined) {\n this._startTime = time + this._repeatDelayTime;\n }\n else {\n this._startTime = time + this._delayTime;\n }\n if (this._onRepeatCallback) {\n this._onRepeatCallback(this._object);\n }\n return true;\n }\n else {\n if (this._onCompleteCallback) {\n this._onCompleteCallback(this._object);\n }\n for (var i = 0, numChainedTweens = this._chainedTweens.length; i < numChainedTweens; i++) {\n // Make the chained tweens start exactly at the time they should,\n // even if the `update()` method was called way past the duration of the tween\n this._chainedTweens[i].start(this._startTime + this._duration);\n }\n this._isPlaying = false;\n return false;\n }\n }\n return true;\n };\n Tween.prototype._updateProperties = function (_object, _valuesStart, _valuesEnd, value) {\n for (var property in _valuesEnd) {\n // Don't update properties that do not exist in the source object\n if (_valuesStart[property] === undefined) {\n continue;\n }\n var start = _valuesStart[property] || 0;\n var end = _valuesEnd[property];\n var startIsArray = Array.isArray(_object[property]);\n var endIsArray = Array.isArray(end);\n var isInterpolationList = !startIsArray && endIsArray;\n if (isInterpolationList) {\n _object[property] = this._interpolationFunction(end, value);\n }\n else if (typeof end === 'object' && end) {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n this._updateProperties(_object[property], start, end, value);\n }\n else {\n // Parses relative end values with start as base (e.g.: +10, -3)\n end = this._handleRelativeValue(start, end);\n // Protect against non numeric properties.\n if (typeof end === 'number') {\n // eslint-disable-next-line\n // @ts-ignore FIXME?\n _object[property] = start + (end - start) * value;\n }\n }\n }\n };\n Tween.prototype._handleRelativeValue = function (start, end) {\n if (typeof end !== 'string') {\n return end;\n }\n if (end.charAt(0) === '+' || end.charAt(0) === '-') {\n return start + parseFloat(end);\n }\n else {\n return parseFloat(end);\n }\n };\n Tween.prototype._swapEndStartRepeatValues = function (property) {\n var tmp = this._valuesStartRepeat[property];\n var endValue = this._valuesEnd[property];\n if (typeof endValue === 'string') {\n this._valuesStartRepeat[property] = this._valuesStartRepeat[property] + parseFloat(endValue);\n }\n else {\n this._valuesStartRepeat[property] = this._valuesEnd[property];\n }\n this._valuesEnd[property] = tmp;\n };\n return Tween;\n}());\n\nvar VERSION = '18.6.4';\n\n/**\n * Tween.js - Licensed under the MIT license\n * https://github.com/tweenjs/tween.js\n * ----------------------------------------------\n *\n * See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors.\n * Thank you all, you're awesome!\n */\nvar nextId = Sequence.nextId;\n/**\n * Controlling groups of tweens\n *\n * Using the TWEEN singleton to manage your tweens can cause issues in large apps with many components.\n * In these cases, you may want to create your own smaller groups of tweens.\n */\nvar TWEEN = mainGroup;\n// This is the best way to export things in a way that's compatible with both ES\n// Modules and CommonJS, without build hacks, and so as not to break the\n// existing API.\n// https://github.com/rollup/rollup/issues/1961#issuecomment-423037881\nvar getAll = TWEEN.getAll.bind(TWEEN);\nvar removeAll = TWEEN.removeAll.bind(TWEEN);\nvar add = TWEEN.add.bind(TWEEN);\nvar remove = TWEEN.remove.bind(TWEEN);\nvar update = TWEEN.update.bind(TWEEN);\nvar exports = {\n Easing: Easing,\n Group: Group,\n Interpolation: Interpolation,\n now: now$1,\n Sequence: Sequence,\n nextId: nextId,\n Tween: Tween,\n VERSION: VERSION,\n getAll: getAll,\n removeAll: removeAll,\n add: add,\n remove: remove,\n update: update,\n};\n\nexport default exports;\nexport { Easing, Group, Interpolation, Sequence, Tween, VERSION, add, getAll, nextId, now$1 as now, remove, removeAll, update };\n"],"sourceRoot":""}