react-slideshow-image 4.0.0 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
package/dist/fade.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { FadeProps } from './types';
3
- export declare const Fade: React.ForwardRefExoticComponent<Pick<FadeProps, "children" | "duration" | "transitionDuration" | "defaultIndex" | "indicators" | "prevArrow" | "nextArrow" | "arrows" | "autoplay" | "infinite" | "pauseOnHover" | "canSwipe" | "easing" | "cssClass" | "onChange"> & React.RefAttributes<unknown>>;
2
+ import { FadeProps, SlideshowRef } from './types';
3
+ export declare const Fade: React.ForwardRefExoticComponent<Pick<FadeProps, "children" | "duration" | "transitionDuration" | "defaultIndex" | "indicators" | "prevArrow" | "nextArrow" | "arrows" | "autoplay" | "infinite" | "pauseOnHover" | "canSwipe" | "easing" | "cssClass" | "onChange"> & React.RefAttributes<SlideshowRef>>;
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { ZoomProps } from './types';
3
- export declare const FadeZoom: React.ForwardRefExoticComponent<Pick<ZoomProps, "scale" | "children" | "duration" | "transitionDuration" | "defaultIndex" | "indicators" | "prevArrow" | "nextArrow" | "arrows" | "autoplay" | "infinite" | "pauseOnHover" | "canSwipe" | "easing" | "cssClass" | "onChange"> & React.RefAttributes<unknown>>;
2
+ import { SlideshowRef, ZoomProps } from './types';
3
+ export declare const FadeZoom: React.ForwardRefExoticComponent<Pick<ZoomProps, "scale" | "children" | "duration" | "transitionDuration" | "defaultIndex" | "indicators" | "prevArrow" | "nextArrow" | "arrows" | "autoplay" | "infinite" | "pauseOnHover" | "canSwipe" | "easing" | "cssClass" | "onChange"> & React.RefAttributes<SlideshowRef>>;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { Fade } from './fade';
2
2
  export { Zoom } from './zoom';
3
3
  export { Slide } from './slide';
4
- export { FadeProps, ZoomProps, SlideProps } from './types';
4
+ export { FadeProps, ZoomProps, SlideProps, SlideshowRef } from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"react-slideshow-image.cjs.development.js","sources":["../src/helpers.tsx","../src/props.ts","../src/fadezoom.tsx","../src/fade.tsx","../src/zoom.tsx","../src/slide.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n ButtonClick,\n FadeProps,\n IndicatorPropsType,\n SlideProps,\n TweenEasingFn,\n ZoomProps,\n} from './types';\nimport TWEEN 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\nconst EASING_METHODS: { [key: string]: TweenEasingFn } = {\n linear: TWEEN.Easing.Linear.None,\n ease: TWEEN.Easing.Quadratic.InOut,\n 'ease-in': TWEEN.Easing.Quadratic.In,\n 'ease-out': TWEEN.Easing.Quadratic.Out,\n cubic: TWEEN.Easing.Cubic.InOut,\n 'cubic-in': TWEEN.Easing.Cubic.In,\n 'cubic-out': TWEEN.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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M16.67 0l2.83 2.829-9.339 9.175 9.339 9.167-2.83 2.829-12.17-11.996z\" />\n </svg>\n </button>\n );\n};\n\nexport const showNextArrow = (\n properties: FadeProps | SlideProps | ZoomProps,\n currentIndex: number,\n moveSlides: ButtonClick\n) => {\n const { nextArrow, infinite, children } = properties;\n let slidesToScroll = 1;\n 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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z\" />\n </svg>\n </button>\n );\n};\n\nconst showDefaultIndicator = (\n isCurrentPageActive: boolean,\n key: number,\n indicatorProps: IndicatorPropsType\n) => {\n return (\n <li key={key}>\n <button\n className={`each-slideshow-indicator ${isCurrentPageActive ? 'active' : ''}`}\n {...indicatorProps}\n />\n </li>\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): ReactNode => {\n const { children, indicators } = props;\n let slidesToScroll = 1;\n if ('slidesToScroll' in props) {\n slidesToScroll = props.slidesToScroll || 1;\n }\n const pages = Math.ceil(React.Children.count(children) / slidesToScroll);\n return (\n <ul className=\"indicators\">\n {Array.from({ length: pages }, (_, key) => {\n const indicatorProps: IndicatorPropsType = {\n 'data-key': key,\n 'aria-label': `Go to slide ${key + 1}`,\n onClick: navigate,\n };\n const isCurrentPageActive =\n Math.floor((currentIndex + slidesToScroll - 1) / slidesToScroll) === key;\n if (typeof indicators === 'function') {\n return showCustomIndicator(\n isCurrentPageActive,\n key,\n indicatorProps,\n indicators(key)\n );\n }\n return showDefaultIndicator(isCurrentPageActive, key, indicatorProps);\n })}\n </ul>\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 TWEEN from '@tweenjs/tween.js';\nimport {\n getEasing,\n getStartingIndex,\n showIndicators,\n showNextArrow,\n showPreviousArrow,\n} from './helpers';\nimport { ButtonClick, ZoomProps } from './types';\nimport { defaultProps } from './props';\n\nexport const FadeZoom = React.forwardRef((props: ZoomProps, ref) => {\n const [index, setIndex] = useState<number>(\n getStartingIndex(props.children, props.defaultIndex)\n );\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\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.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) => {\n moveTo(index);\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 transitionSlide = (newIndex: number) => {\n const existingTweens = tweenGroup.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 const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n const tween = new TWEEN.Tween(value, tweenGroup)\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 .start();\n tween.easing(getEasing(props.easing));\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 }\n };\n\n const moveTo = (index: number) => {\n transitionSlide(index);\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 <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className={`react-slideshow-container ${props.cssClass || ''}`}\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n ref={props.ref}\n >\n {props.arrows && showPreviousArrow(props, index, preTransition)}\n <div\n className={`react-slideshow-fadezoom-wrapper ${props.cssClass}`}\n ref={wrapperRef}\n >\n <div className=\"react-slideshow-fadezoom-images-wrap\" ref={innerWrapperRef}>\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => (\n <div\n style={{\n opacity: key === index ? '1' : '0',\n zIndex: key === index ? '1' : '0',\n }}\n data-index={key}\n key={key}\n aria-roledescription=\"slide\"\n aria-hidden={key === index ? 'false' : 'true'}\n >\n {each}\n </div>\n )\n )}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, preTransition)}\n </div>\n {props.indicators && showIndicators(props, index, navigate)}\n </div>\n );\n});\n\nFadeZoom.defaultProps = defaultProps;\n","import React from 'react';\nimport { FadeZoom } from './fadezoom';\nimport { defaultProps } from './props';\nimport { FadeProps } from './types';\n\nexport const Fade = React.forwardRef((props: FadeProps, ref) => {\n return <FadeZoom {...props} scale={1} ref={ref} />;\n});\n\nFade.defaultProps = defaultProps;\n","import React from 'react';\nimport { FadeZoom } from './fadezoom';\nimport { defaultProps } from './props';\nimport { ZoomProps } from './types';\n\nexport const Zoom = React.forwardRef((props: ZoomProps, ref) => {\n return <FadeZoom {...props} ref={ref} />;\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 TWEEN from '@tweenjs/tween.js';\nimport {\n getEasing,\n getStartingIndex,\n showIndicators,\n showNextArrow,\n showPreviousArrow,\n} from './helpers';\nimport { ButtonClick, SlideProps } from './types';\nimport { defaultProps } from './props';\n\nexport const Slide = React.forwardRef((props: SlideProps, ref) => {\n const [index, setIndex] = useState(getStartingIndex(props.children, props.defaultIndex));\n const [wrapperWidth, setWrapperWidth] = useState<number>(0);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const slidesToScroll = useMemo(() => props.slidesToScroll || 1, [props.slidesToScroll]);\n const slidesToShow = useMemo(() => props.slidesToShow || 1, [props.slidesToShow]);\n const childrenCount = useMemo(() => React.Children.count(props.children), [props.children]);\n const eachChildWidth = useMemo(() => wrapperWidth / slidesToShow, [wrapperWidth, slidesToShow]);\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\n let startingClientX: number;\n let dragging: boolean = false;\n let distanceSwiped: number = 0;\n\n const applyStyle = useCallback(() => {\n if (innerWrapperRef.current) {\n const fullwidth = wrapperWidth * innerWrapperRef.current.children.length;\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 = `${eachChildWidth}px`;\n eachDiv.style.display = `block`;\n }\n }\n }\n }, [wrapperWidth, eachChildWidth]);\n\n const initResizeObserver = useCallback(() => {\n if (wrapperRef.current) {\n resizeObserver.current = new ResizeObserver((entries) => {\n if (!entries) return;\n setWidth();\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 }, [wrapperWidth, applyStyle]);\n\n useEffect(() => {\n initResizeObserver();\n return () => {\n tweenGroup.removeAll();\n clearTimeout(timeout.current);\n removeResizeObserver();\n };\n }, [wrapperRef, initResizeObserver, tweenGroup]);\n\n useEffect(() => {\n clearTimeout(timeout.current);\n play();\n }, [index, wrapperWidth, props.autoplay, play]);\n\n useImperativeHandle(ref, () => ({\n goNext: () => {\n moveNext();\n },\n goBack: () => {\n moveBack();\n },\n goTo: (index: number) => {\n moveTo(index);\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) {\n const clientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\n if (dragging) {\n let translateValue = eachChildWidth * (index + getOffset());\n const distance = clientX - startingClientX;\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 = `translate(-${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 <div\n data-index={index - slidesToShow}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={index - slidesToShow}\n >\n {each}\n </div>\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 <div\n data-index={childrenCount + index}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={childrenCount + index}\n >\n {each}\n </div>\n ));\n };\n\n const setWidth = () => {\n if (wrapperRef.current) {\n setWrapperWidth(wrapperRef.current.clientWidth);\n }\n };\n\n const startSwipe = (event: React.MouseEvent | React.TouchEvent) => {\n if (props.canSwipe) {\n startingClientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\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) / wrapperWidth > 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 transitionSlide = (toIndex: number, animationDuration?: number) => {\n const transitionDuration = animationDuration || props.transitionDuration;\n const currentIndex = index;\n const existingTweens = tweenGroup.getAll();\n if (!wrapperRef.current) {\n return;\n }\n const childWidth = wrapperRef.current.clientWidth / slidesToShow;\n if (!existingTweens.length) {\n clearTimeout(timeout.current);\n const value = {\n margin: -childWidth * (currentIndex + getOffset()) + distanceSwiped,\n };\n const tween = new TWEEN.Tween(value, tweenGroup)\n .to({ margin: -childWidth * (toIndex + getOffset()) }, transitionDuration)\n .onUpdate((value) => {\n if (innerWrapperRef.current) {\n innerWrapperRef.current.style.transform = `translate(${value.margin}px)`;\n }\n })\n .start();\n tween.easing(getEasing(props.easing));\n const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n tween.onComplete(() => {\n distanceSwiped = 0;\n let newIndex = toIndex;\n if (newIndex < 0) {\n newIndex = childrenCount - slidesToScroll;\n } else if (newIndex >= childrenCount) {\n newIndex = 0;\n }\n\n if (typeof props.onChange === 'function') {\n props.onChange(index, newIndex);\n }\n setIndex(newIndex);\n });\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: `translate(-${(index + getOffset()) * eachChildWidth}px)`,\n };\n return (\n <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className=\"react-slideshow-container\"\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n onMouseDown={startSwipe}\n onMouseUp={endSwipe}\n onMouseMove={swipe}\n onTouchStart={startSwipe}\n onTouchEnd={endSwipe}\n onTouchCancel={endSwipe}\n onTouchMove={swipe}\n >\n {props.arrows && showPreviousArrow(props, index, moveSlides)}\n <div\n className={`react-slideshow-wrapper slide ${props.cssClass || ''}`}\n ref={wrapperRef}\n >\n <div className=\"images-wrap\" style={style} ref={innerWrapperRef}>\n {props.infinite && renderPreceedingSlides()}\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => {\n const isThisSlideActive = isSlideActive(key);\n return (\n <div\n data-index={key}\n key={key}\n className={isThisSlideActive ? 'active' : ''}\n aria-roledescription=\"slide\"\n aria-hidden={isThisSlideActive ? 'false' : 'true'}\n >\n {each}\n </div>\n );\n }\n )}\n {renderTrailingSlides()}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, moveSlides)}\n </div>\n {props.indicators && showIndicators(props, index, goToSlide)}\n </div>\n );\n});\n\nSlide.defaultProps = defaultProps;\n"],"names":["getStartingIndex","children","defaultIndex","React","Children","count","EASING_METHODS","linear","TWEEN","Easing","Linear","None","ease","Quadratic","InOut","In","Out","cubic","Cubic","getEasing","easeMethod","showPreviousArrow","currentIndex","moveSlides","prevArrow","infinite","isDisabled","props","disabled","onClick","cloneElement","className","width","height","viewBox","d","showNextArrow","properties","nextArrow","slidesToScroll","showDefaultIndicator","isCurrentPageActive","key","indicatorProps","showCustomIndicator","eachIndicator","showIndicators","navigate","indicators","pages","Math","ceil","Array","from","length","_","floor","defaultProps","duration","transitionDuration","autoplay","arrows","pauseOnHover","easing","canSwipe","cssClass","responsive","FadeZoom","forwardRef","ref","useState","index","setIndex","wrapperRef","useRef","innerWrapperRef","tweenGroup","Group","timeout","resizeObserver","childrenCount","useMemo","applyStyle","useCallback","current","wrapperWidth","clientWidth","fullwidth","style","eachDiv","left","display","initResizeObserver","ResizeObserver","entries","observe","play","setTimeout","moveNext","useEffect","removeAll","clearTimeout","removeResizeObserver","useImperativeHandle","goNext","goBack","moveBack","goTo","moveTo","unobserve","pauseSlides","startSlides","transitionSlide","preTransition","event","currentTarget","dataset","type","newIndex","existingTweens","getAll","value","opacity","scale","animate","requestAnimationFrame","update","tween","Tween","to","onUpdate","transform","start","onComplete","onChange","parseInt","dir","onMouseEnter","onMouseOver","onMouseLeave","map","thisArg","each","zIndex","Fade","Zoom","Slide","setWrapperWidth","slidesToShow","eachChildWidth","startingClientX","dragging","distanceSwiped","setWidth","swipe","clientX","nativeEvent","TouchEvent","touches","pageX","translateValue","getOffset","distance","nextIndex","calculateIndex","previousIndex","goToSlide","datasetKey","endSwipe","renderPreceedingSlides","toArray","slice","renderTrailingSlides","startSwipe","abs","toIndex","animationDuration","childWidth","margin","isSlideActive","onMouseDown","onMouseUp","onMouseMove","onTouchStart","onTouchEnd","onTouchCancel","onTouchMove","isThisSlideActive"],"mappings":"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"}
1
+ {"version":3,"file":"react-slideshow-image.cjs.development.js","sources":["../src/helpers.tsx","../src/props.ts","../src/fadezoom.tsx","../src/fade.tsx","../src/zoom.tsx","../src/slide.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n ButtonClick,\n FadeProps,\n IndicatorPropsType,\n SlideProps,\n TweenEasingFn,\n ZoomProps,\n} from './types';\nimport TWEEN 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\nconst EASING_METHODS: { [key: string]: TweenEasingFn } = {\n linear: TWEEN.Easing.Linear.None,\n ease: TWEEN.Easing.Quadratic.InOut,\n 'ease-in': TWEEN.Easing.Quadratic.In,\n 'ease-out': TWEEN.Easing.Quadratic.Out,\n cubic: TWEEN.Easing.Cubic.InOut,\n 'cubic-in': TWEEN.Easing.Cubic.In,\n 'cubic-out': TWEEN.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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M16.67 0l2.83 2.829-9.339 9.175 9.339 9.167-2.83 2.829-12.17-11.996z\" />\n </svg>\n </button>\n );\n};\n\nexport const showNextArrow = (\n properties: FadeProps | SlideProps | ZoomProps,\n currentIndex: number,\n moveSlides: ButtonClick\n) => {\n const { nextArrow, infinite, children } = properties;\n let slidesToScroll = 1;\n 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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z\" />\n </svg>\n </button>\n );\n};\n\nconst showDefaultIndicator = (\n isCurrentPageActive: boolean,\n key: number,\n indicatorProps: IndicatorPropsType\n) => {\n return (\n <li key={key}>\n <button\n className={`each-slideshow-indicator ${isCurrentPageActive ? 'active' : ''}`}\n {...indicatorProps}\n />\n </li>\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): ReactNode => {\n const { children, indicators } = props;\n let slidesToScroll = 1;\n if ('slidesToScroll' in props) {\n slidesToScroll = props.slidesToScroll || 1;\n }\n const pages = Math.ceil(React.Children.count(children) / slidesToScroll);\n return (\n <ul className=\"indicators\">\n {Array.from({ length: pages }, (_, key) => {\n const indicatorProps: IndicatorPropsType = {\n 'data-key': key,\n 'aria-label': `Go to slide ${key + 1}`,\n onClick: navigate,\n };\n const isCurrentPageActive =\n Math.floor((currentIndex + slidesToScroll - 1) / slidesToScroll) === key;\n if (typeof indicators === 'function') {\n return showCustomIndicator(\n isCurrentPageActive,\n key,\n indicatorProps,\n indicators(key)\n );\n }\n return showDefaultIndicator(isCurrentPageActive, key, indicatorProps);\n })}\n </ul>\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 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<SlideshowRef, ZoomProps>((props, ref) => {\n const [index, setIndex] = useState<number>(\n getStartingIndex(props.children, props.defaultIndex)\n );\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\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.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) => {\n moveTo(index);\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 transitionSlide = (newIndex: number) => {\n const existingTweens = tweenGroup.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 const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n const tween = new TWEEN.Tween(value, tweenGroup)\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 .start();\n tween.easing(getEasing(props.easing));\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 }\n };\n\n const moveTo = (index: number) => {\n transitionSlide(index);\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 <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className={`react-slideshow-container ${props.cssClass || ''}`}\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n ref={props.ref}\n >\n {props.arrows && showPreviousArrow(props, index, preTransition)}\n <div\n className={`react-slideshow-fadezoom-wrapper ${props.cssClass}`}\n ref={wrapperRef}\n >\n <div className=\"react-slideshow-fadezoom-images-wrap\" ref={innerWrapperRef}>\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => (\n <div\n style={{\n opacity: key === index ? '1' : '0',\n zIndex: key === index ? '1' : '0',\n }}\n data-index={key}\n key={key}\n aria-roledescription=\"slide\"\n aria-hidden={key === index ? 'false' : 'true'}\n >\n {each}\n </div>\n )\n )}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, preTransition)}\n </div>\n {props.indicators && showIndicators(props, index, navigate)}\n </div>\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<SlideshowRef, FadeProps>((props, ref) => {\n return <FadeZoom {...props} scale={1} ref={ref} />;\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<SlideshowRef, ZoomProps>((props, ref) => {\n return <FadeZoom {...props} ref={ref} />;\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 TWEEN from '@tweenjs/tween.js';\nimport {\n getEasing,\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<SlideshowRef, SlideProps>((props, ref) => {\n const [index, setIndex] = useState(getStartingIndex(props.children, props.defaultIndex));\n const [wrapperWidth, setWrapperWidth] = useState<number>(0);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const slidesToScroll = useMemo(() => props.slidesToScroll || 1, [props.slidesToScroll]);\n const slidesToShow = useMemo(() => props.slidesToShow || 1, [props.slidesToShow]);\n const childrenCount = useMemo(() => React.Children.count(props.children), [props.children]);\n const eachChildWidth = useMemo(() => wrapperWidth / slidesToShow, [wrapperWidth, slidesToShow]);\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\n let startingClientX: number;\n let dragging: boolean = false;\n let distanceSwiped: number = 0;\n\n const applyStyle = useCallback(() => {\n if (innerWrapperRef.current) {\n const fullwidth = wrapperWidth * innerWrapperRef.current.children.length;\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 = `${eachChildWidth}px`;\n eachDiv.style.display = `block`;\n }\n }\n }\n }, [wrapperWidth, eachChildWidth]);\n\n const initResizeObserver = useCallback(() => {\n if (wrapperRef.current) {\n resizeObserver.current = new ResizeObserver((entries) => {\n if (!entries) return;\n setWidth();\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 }, [wrapperWidth, applyStyle]);\n\n useEffect(() => {\n initResizeObserver();\n return () => {\n tweenGroup.removeAll();\n clearTimeout(timeout.current);\n removeResizeObserver();\n };\n }, [wrapperRef, initResizeObserver, tweenGroup]);\n\n useEffect(() => {\n clearTimeout(timeout.current);\n play();\n }, [index, wrapperWidth, props.autoplay, play]);\n\n useImperativeHandle(ref, () => ({\n goNext: () => {\n moveNext();\n },\n goBack: () => {\n moveBack();\n },\n goTo: (index: number) => {\n moveTo(index);\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) {\n const clientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\n if (dragging) {\n let translateValue = eachChildWidth * (index + getOffset());\n const distance = clientX - startingClientX;\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 = `translate(-${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 <div\n data-index={index - slidesToShow}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={index - slidesToShow}\n >\n {each}\n </div>\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 <div\n data-index={childrenCount + index}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={childrenCount + index}\n >\n {each}\n </div>\n ));\n };\n\n const setWidth = () => {\n if (wrapperRef.current) {\n setWrapperWidth(wrapperRef.current.clientWidth);\n }\n };\n\n const startSwipe = (event: React.MouseEvent | React.TouchEvent) => {\n if (props.canSwipe) {\n startingClientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\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) / wrapperWidth > 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 transitionSlide = (toIndex: number, animationDuration?: number) => {\n const transitionDuration = animationDuration || props.transitionDuration;\n const currentIndex = index;\n const existingTweens = tweenGroup.getAll();\n if (!wrapperRef.current) {\n return;\n }\n const childWidth = wrapperRef.current.clientWidth / slidesToShow;\n if (!existingTweens.length) {\n clearTimeout(timeout.current);\n const value = {\n margin: -childWidth * (currentIndex + getOffset()) + distanceSwiped,\n };\n const tween = new TWEEN.Tween(value, tweenGroup)\n .to({ margin: -childWidth * (toIndex + getOffset()) }, transitionDuration)\n .onUpdate((value) => {\n if (innerWrapperRef.current) {\n innerWrapperRef.current.style.transform = `translate(${value.margin}px)`;\n }\n })\n .start();\n tween.easing(getEasing(props.easing));\n const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n tween.onComplete(() => {\n distanceSwiped = 0;\n let newIndex = toIndex;\n if (newIndex < 0) {\n newIndex = childrenCount - slidesToScroll;\n } else if (newIndex >= childrenCount) {\n newIndex = 0;\n }\n\n if (typeof props.onChange === 'function') {\n props.onChange(index, newIndex);\n }\n setIndex(newIndex);\n });\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: `translate(-${(index + getOffset()) * eachChildWidth}px)`,\n };\n return (\n <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className=\"react-slideshow-container\"\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n onMouseDown={startSwipe}\n onMouseUp={endSwipe}\n onMouseMove={swipe}\n onTouchStart={startSwipe}\n onTouchEnd={endSwipe}\n onTouchCancel={endSwipe}\n onTouchMove={swipe}\n >\n {props.arrows && showPreviousArrow(props, index, moveSlides)}\n <div\n className={`react-slideshow-wrapper slide ${props.cssClass || ''}`}\n ref={wrapperRef}\n >\n <div className=\"images-wrap\" style={style} ref={innerWrapperRef}>\n {props.infinite && renderPreceedingSlides()}\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => {\n const isThisSlideActive = isSlideActive(key);\n return (\n <div\n data-index={key}\n key={key}\n className={isThisSlideActive ? 'active' : ''}\n aria-roledescription=\"slide\"\n aria-hidden={isThisSlideActive ? 'false' : 'true'}\n >\n {each}\n </div>\n );\n }\n )}\n {renderTrailingSlides()}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, moveSlides)}\n </div>\n {props.indicators && showIndicators(props, index, goToSlide)}\n </div>\n );\n});\n\nSlide.defaultProps = defaultProps;\n"],"names":["getStartingIndex","children","defaultIndex","React","Children","count","EASING_METHODS","linear","TWEEN","Easing","Linear","None","ease","Quadratic","InOut","In","Out","cubic","Cubic","getEasing","easeMethod","showPreviousArrow","currentIndex","moveSlides","prevArrow","infinite","isDisabled","props","disabled","onClick","cloneElement","className","width","height","viewBox","d","showNextArrow","properties","nextArrow","slidesToScroll","showDefaultIndicator","isCurrentPageActive","key","indicatorProps","showCustomIndicator","eachIndicator","showIndicators","navigate","indicators","pages","Math","ceil","Array","from","length","_","floor","defaultProps","duration","transitionDuration","autoplay","arrows","pauseOnHover","easing","canSwipe","cssClass","responsive","FadeZoom","forwardRef","ref","useState","index","setIndex","wrapperRef","useRef","innerWrapperRef","tweenGroup","Group","timeout","resizeObserver","childrenCount","useMemo","applyStyle","useCallback","current","wrapperWidth","clientWidth","fullwidth","style","eachDiv","left","display","initResizeObserver","ResizeObserver","entries","observe","play","setTimeout","moveNext","useEffect","removeAll","clearTimeout","removeResizeObserver","useImperativeHandle","goNext","goBack","moveBack","goTo","moveTo","unobserve","pauseSlides","startSlides","transitionSlide","preTransition","event","currentTarget","dataset","type","newIndex","existingTweens","getAll","value","opacity","scale","animate","requestAnimationFrame","update","tween","Tween","to","onUpdate","transform","start","onComplete","onChange","parseInt","dir","onMouseEnter","onMouseOver","onMouseLeave","map","thisArg","each","zIndex","Fade","Zoom","Slide","setWrapperWidth","slidesToShow","eachChildWidth","startingClientX","dragging","distanceSwiped","setWidth","swipe","clientX","nativeEvent","TouchEvent","touches","pageX","translateValue","getOffset","distance","nextIndex","calculateIndex","previousIndex","goToSlide","datasetKey","endSwipe","renderPreceedingSlides","toArray","slice","renderTrailingSlides","startSwipe","abs","toIndex","animationDuration","childWidth","margin","isSlideActive","onMouseDown","onMouseUp","onMouseMove","onTouchStart","onTouchEnd","onTouchCancel","onTouchMove","isThisSlideActive"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-slideshow-image.cjs.production.min.js","sources":["../src/helpers.tsx","../src/props.ts","../src/fadezoom.tsx","../src/fade.tsx","../src/zoom.tsx","../src/slide.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n ButtonClick,\n FadeProps,\n IndicatorPropsType,\n SlideProps,\n TweenEasingFn,\n ZoomProps,\n} from './types';\nimport TWEEN 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\nconst EASING_METHODS: { [key: string]: TweenEasingFn } = {\n linear: TWEEN.Easing.Linear.None,\n ease: TWEEN.Easing.Quadratic.InOut,\n 'ease-in': TWEEN.Easing.Quadratic.In,\n 'ease-out': TWEEN.Easing.Quadratic.Out,\n cubic: TWEEN.Easing.Cubic.InOut,\n 'cubic-in': TWEEN.Easing.Cubic.In,\n 'cubic-out': TWEEN.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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M16.67 0l2.83 2.829-9.339 9.175 9.339 9.167-2.83 2.829-12.17-11.996z\" />\n </svg>\n </button>\n );\n};\n\nexport const showNextArrow = (\n properties: FadeProps | SlideProps | ZoomProps,\n currentIndex: number,\n moveSlides: ButtonClick\n) => {\n const { nextArrow, infinite, children } = properties;\n let slidesToScroll = 1;\n 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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z\" />\n </svg>\n </button>\n );\n};\n\nconst showDefaultIndicator = (\n isCurrentPageActive: boolean,\n key: number,\n indicatorProps: IndicatorPropsType\n) => {\n return (\n <li key={key}>\n <button\n className={`each-slideshow-indicator ${isCurrentPageActive ? 'active' : ''}`}\n {...indicatorProps}\n />\n </li>\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): ReactNode => {\n const { children, indicators } = props;\n let slidesToScroll = 1;\n if ('slidesToScroll' in props) {\n slidesToScroll = props.slidesToScroll || 1;\n }\n const pages = Math.ceil(React.Children.count(children) / slidesToScroll);\n return (\n <ul className=\"indicators\">\n {Array.from({ length: pages }, (_, key) => {\n const indicatorProps: IndicatorPropsType = {\n 'data-key': key,\n 'aria-label': `Go to slide ${key + 1}`,\n onClick: navigate,\n };\n const isCurrentPageActive =\n Math.floor((currentIndex + slidesToScroll - 1) / slidesToScroll) === key;\n if (typeof indicators === 'function') {\n return showCustomIndicator(\n isCurrentPageActive,\n key,\n indicatorProps,\n indicators(key)\n );\n }\n return showDefaultIndicator(isCurrentPageActive, key, indicatorProps);\n })}\n </ul>\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 TWEEN from '@tweenjs/tween.js';\nimport {\n getEasing,\n getStartingIndex,\n showIndicators,\n showNextArrow,\n showPreviousArrow,\n} from './helpers';\nimport { ButtonClick, ZoomProps } from './types';\nimport { defaultProps } from './props';\n\nexport const FadeZoom = React.forwardRef((props: ZoomProps, ref) => {\n const [index, setIndex] = useState<number>(\n getStartingIndex(props.children, props.defaultIndex)\n );\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\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.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) => {\n moveTo(index);\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 transitionSlide = (newIndex: number) => {\n const existingTweens = tweenGroup.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 const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n const tween = new TWEEN.Tween(value, tweenGroup)\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 .start();\n tween.easing(getEasing(props.easing));\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 }\n };\n\n const moveTo = (index: number) => {\n transitionSlide(index);\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 <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className={`react-slideshow-container ${props.cssClass || ''}`}\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n ref={props.ref}\n >\n {props.arrows && showPreviousArrow(props, index, preTransition)}\n <div\n className={`react-slideshow-fadezoom-wrapper ${props.cssClass}`}\n ref={wrapperRef}\n >\n <div className=\"react-slideshow-fadezoom-images-wrap\" ref={innerWrapperRef}>\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => (\n <div\n style={{\n opacity: key === index ? '1' : '0',\n zIndex: key === index ? '1' : '0',\n }}\n data-index={key}\n key={key}\n aria-roledescription=\"slide\"\n aria-hidden={key === index ? 'false' : 'true'}\n >\n {each}\n </div>\n )\n )}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, preTransition)}\n </div>\n {props.indicators && showIndicators(props, index, navigate)}\n </div>\n );\n});\n\nFadeZoom.defaultProps = defaultProps;\n","import React from 'react';\nimport { FadeZoom } from './fadezoom';\nimport { defaultProps } from './props';\nimport { FadeProps } from './types';\n\nexport const Fade = React.forwardRef((props: FadeProps, ref) => {\n return <FadeZoom {...props} scale={1} ref={ref} />;\n});\n\nFade.defaultProps = defaultProps;\n","import React from 'react';\nimport { FadeZoom } from './fadezoom';\nimport { defaultProps } from './props';\nimport { ZoomProps } from './types';\n\nexport const Zoom = React.forwardRef((props: ZoomProps, ref) => {\n return <FadeZoom {...props} ref={ref} />;\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 TWEEN from '@tweenjs/tween.js';\nimport {\n getEasing,\n getStartingIndex,\n showIndicators,\n showNextArrow,\n showPreviousArrow,\n} from './helpers';\nimport { ButtonClick, SlideProps } from './types';\nimport { defaultProps } from './props';\n\nexport const Slide = React.forwardRef((props: SlideProps, ref) => {\n const [index, setIndex] = useState(getStartingIndex(props.children, props.defaultIndex));\n const [wrapperWidth, setWrapperWidth] = useState<number>(0);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const slidesToScroll = useMemo(() => props.slidesToScroll || 1, [props.slidesToScroll]);\n const slidesToShow = useMemo(() => props.slidesToShow || 1, [props.slidesToShow]);\n const childrenCount = useMemo(() => React.Children.count(props.children), [props.children]);\n const eachChildWidth = useMemo(() => wrapperWidth / slidesToShow, [wrapperWidth, slidesToShow]);\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\n let startingClientX: number;\n let dragging: boolean = false;\n let distanceSwiped: number = 0;\n\n const applyStyle = useCallback(() => {\n if (innerWrapperRef.current) {\n const fullwidth = wrapperWidth * innerWrapperRef.current.children.length;\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 = `${eachChildWidth}px`;\n eachDiv.style.display = `block`;\n }\n }\n }\n }, [wrapperWidth, eachChildWidth]);\n\n const initResizeObserver = useCallback(() => {\n if (wrapperRef.current) {\n resizeObserver.current = new ResizeObserver((entries) => {\n if (!entries) return;\n setWidth();\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 }, [wrapperWidth, applyStyle]);\n\n useEffect(() => {\n initResizeObserver();\n return () => {\n tweenGroup.removeAll();\n clearTimeout(timeout.current);\n removeResizeObserver();\n };\n }, [wrapperRef, initResizeObserver, tweenGroup]);\n\n useEffect(() => {\n clearTimeout(timeout.current);\n play();\n }, [index, wrapperWidth, props.autoplay, play]);\n\n useImperativeHandle(ref, () => ({\n goNext: () => {\n moveNext();\n },\n goBack: () => {\n moveBack();\n },\n goTo: (index: number) => {\n moveTo(index);\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) {\n const clientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\n if (dragging) {\n let translateValue = eachChildWidth * (index + getOffset());\n const distance = clientX - startingClientX;\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 = `translate(-${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 <div\n data-index={index - slidesToShow}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={index - slidesToShow}\n >\n {each}\n </div>\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 <div\n data-index={childrenCount + index}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={childrenCount + index}\n >\n {each}\n </div>\n ));\n };\n\n const setWidth = () => {\n if (wrapperRef.current) {\n setWrapperWidth(wrapperRef.current.clientWidth);\n }\n };\n\n const startSwipe = (event: React.MouseEvent | React.TouchEvent) => {\n if (props.canSwipe) {\n startingClientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\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) / wrapperWidth > 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 transitionSlide = (toIndex: number, animationDuration?: number) => {\n const transitionDuration = animationDuration || props.transitionDuration;\n const currentIndex = index;\n const existingTweens = tweenGroup.getAll();\n if (!wrapperRef.current) {\n return;\n }\n const childWidth = wrapperRef.current.clientWidth / slidesToShow;\n if (!existingTweens.length) {\n clearTimeout(timeout.current);\n const value = {\n margin: -childWidth * (currentIndex + getOffset()) + distanceSwiped,\n };\n const tween = new TWEEN.Tween(value, tweenGroup)\n .to({ margin: -childWidth * (toIndex + getOffset()) }, transitionDuration)\n .onUpdate((value) => {\n if (innerWrapperRef.current) {\n innerWrapperRef.current.style.transform = `translate(${value.margin}px)`;\n }\n })\n .start();\n tween.easing(getEasing(props.easing));\n const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n tween.onComplete(() => {\n distanceSwiped = 0;\n let newIndex = toIndex;\n if (newIndex < 0) {\n newIndex = childrenCount - slidesToScroll;\n } else if (newIndex >= childrenCount) {\n newIndex = 0;\n }\n\n if (typeof props.onChange === 'function') {\n props.onChange(index, newIndex);\n }\n setIndex(newIndex);\n });\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: `translate(-${(index + getOffset()) * eachChildWidth}px)`,\n };\n return (\n <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className=\"react-slideshow-container\"\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n onMouseDown={startSwipe}\n onMouseUp={endSwipe}\n onMouseMove={swipe}\n onTouchStart={startSwipe}\n onTouchEnd={endSwipe}\n onTouchCancel={endSwipe}\n onTouchMove={swipe}\n >\n {props.arrows && showPreviousArrow(props, index, moveSlides)}\n <div\n className={`react-slideshow-wrapper slide ${props.cssClass || ''}`}\n ref={wrapperRef}\n >\n <div className=\"images-wrap\" style={style} ref={innerWrapperRef}>\n {props.infinite && renderPreceedingSlides()}\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => {\n const isThisSlideActive = isSlideActive(key);\n return (\n <div\n data-index={key}\n key={key}\n className={isThisSlideActive ? 'active' : ''}\n aria-roledescription=\"slide\"\n aria-hidden={isThisSlideActive ? 'false' : 'true'}\n >\n {each}\n </div>\n );\n }\n )}\n {renderTrailingSlides()}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, moveSlides)}\n </div>\n {props.indicators && showIndicators(props, index, goToSlide)}\n </div>\n );\n});\n\nSlide.defaultProps = defaultProps;\n"],"names":["getStartingIndex","children","defaultIndex","React","Children","count","EASING_METHODS","linear","TWEEN","Easing","Linear","None","ease","Quadratic","InOut","ease-in","In","ease-out","Out","cubic","Cubic","cubic-in","cubic-out","getEasing","easeMethod","showPreviousArrow","currentIndex","moveSlides","prevArrow","isDisabled","infinite","props","data-type","aria-label","disabled","onClick","cloneElement","className","width","height","viewBox","d","showNextArrow","properties","nextArrow","slidesToScroll","showIndicators","navigate","indicators","pages","Math","ceil","Array","from","length","_","key","indicatorProps","data-key","isCurrentPageActive","floor","eachIndicator","showCustomIndicator","showDefaultIndicator","defaultProps","duration","transitionDuration","autoplay","arrows","pauseOnHover","easing","canSwipe","cssClass","responsive","FadeZoom","forwardRef","ref","useState","index","setIndex","wrapperRef","useRef","innerWrapperRef","tweenGroup","Group","timeout","resizeObserver","childrenCount","useMemo","applyStyle","useCallback","current","wrapperWidth","clientWidth","style","eachDiv","left","display","initResizeObserver","ResizeObserver","entries","observe","play","setTimeout","moveNext","useEffect","removeAll","clearTimeout","removeResizeObserver","useImperativeHandle","goNext","goBack","moveBack","goTo","moveTo","unobserve","pauseSlides","transitionSlide","preTransition","event","currentTarget","dataset","type","newIndex","getAll","_innerWrapperRef$curr","animate","requestAnimationFrame","update","tween","Tween","opacity","scale","to","onUpdate","value","transform","start","onComplete","onChange","dir","onMouseEnter","onMouseOver","onMouseLeave","map","thisArg","each","zIndex","parseInt","Fade","Zoom","Slide","startingClientX","setWrapperWidth","slidesToShow","eachChildWidth","dragging","distanceSwiped","setWidth","swipe","clientX","nativeEvent","TouchEvent","touches","pageX","translateValue","getOffset","distance","nextIndex","calculateIndex","previousIndex","startSwipe","endSwipe","abs","toIndex","animationDuration","existingTweens","childWidth","margin","onMouseDown","onMouseUp","onMouseMove","onTouchStart","onTouchEnd","onTouchCancel","onTouchMove","toArray","slice","isThisSlideActive","isSlideActive","renderTrailingSlides","datasetKey"],"mappings":"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"}
1
+ {"version":3,"file":"react-slideshow-image.cjs.production.min.js","sources":["../src/helpers.tsx","../src/props.ts","../src/fadezoom.tsx","../src/fade.tsx","../src/zoom.tsx","../src/slide.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n ButtonClick,\n FadeProps,\n IndicatorPropsType,\n SlideProps,\n TweenEasingFn,\n ZoomProps,\n} from './types';\nimport TWEEN 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\nconst EASING_METHODS: { [key: string]: TweenEasingFn } = {\n linear: TWEEN.Easing.Linear.None,\n ease: TWEEN.Easing.Quadratic.InOut,\n 'ease-in': TWEEN.Easing.Quadratic.In,\n 'ease-out': TWEEN.Easing.Quadratic.Out,\n cubic: TWEEN.Easing.Cubic.InOut,\n 'cubic-in': TWEEN.Easing.Cubic.In,\n 'cubic-out': TWEEN.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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M16.67 0l2.83 2.829-9.339 9.175 9.339 9.167-2.83 2.829-12.17-11.996z\" />\n </svg>\n </button>\n );\n};\n\nexport const showNextArrow = (\n properties: FadeProps | SlideProps | ZoomProps,\n currentIndex: number,\n moveSlides: ButtonClick\n) => {\n const { nextArrow, infinite, children } = properties;\n let slidesToScroll = 1;\n 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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z\" />\n </svg>\n </button>\n );\n};\n\nconst showDefaultIndicator = (\n isCurrentPageActive: boolean,\n key: number,\n indicatorProps: IndicatorPropsType\n) => {\n return (\n <li key={key}>\n <button\n className={`each-slideshow-indicator ${isCurrentPageActive ? 'active' : ''}`}\n {...indicatorProps}\n />\n </li>\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): ReactNode => {\n const { children, indicators } = props;\n let slidesToScroll = 1;\n if ('slidesToScroll' in props) {\n slidesToScroll = props.slidesToScroll || 1;\n }\n const pages = Math.ceil(React.Children.count(children) / slidesToScroll);\n return (\n <ul className=\"indicators\">\n {Array.from({ length: pages }, (_, key) => {\n const indicatorProps: IndicatorPropsType = {\n 'data-key': key,\n 'aria-label': `Go to slide ${key + 1}`,\n onClick: navigate,\n };\n const isCurrentPageActive =\n Math.floor((currentIndex + slidesToScroll - 1) / slidesToScroll) === key;\n if (typeof indicators === 'function') {\n return showCustomIndicator(\n isCurrentPageActive,\n key,\n indicatorProps,\n indicators(key)\n );\n }\n return showDefaultIndicator(isCurrentPageActive, key, indicatorProps);\n })}\n </ul>\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 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<SlideshowRef, ZoomProps>((props, ref) => {\n const [index, setIndex] = useState<number>(\n getStartingIndex(props.children, props.defaultIndex)\n );\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\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.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) => {\n moveTo(index);\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 transitionSlide = (newIndex: number) => {\n const existingTweens = tweenGroup.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 const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n const tween = new TWEEN.Tween(value, tweenGroup)\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 .start();\n tween.easing(getEasing(props.easing));\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 }\n };\n\n const moveTo = (index: number) => {\n transitionSlide(index);\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 <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className={`react-slideshow-container ${props.cssClass || ''}`}\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n ref={props.ref}\n >\n {props.arrows && showPreviousArrow(props, index, preTransition)}\n <div\n className={`react-slideshow-fadezoom-wrapper ${props.cssClass}`}\n ref={wrapperRef}\n >\n <div className=\"react-slideshow-fadezoom-images-wrap\" ref={innerWrapperRef}>\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => (\n <div\n style={{\n opacity: key === index ? '1' : '0',\n zIndex: key === index ? '1' : '0',\n }}\n data-index={key}\n key={key}\n aria-roledescription=\"slide\"\n aria-hidden={key === index ? 'false' : 'true'}\n >\n {each}\n </div>\n )\n )}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, preTransition)}\n </div>\n {props.indicators && showIndicators(props, index, navigate)}\n </div>\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<SlideshowRef, FadeProps>((props, ref) => {\n return <FadeZoom {...props} scale={1} ref={ref} />;\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<SlideshowRef, ZoomProps>((props, ref) => {\n return <FadeZoom {...props} ref={ref} />;\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 TWEEN from '@tweenjs/tween.js';\nimport {\n getEasing,\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<SlideshowRef, SlideProps>((props, ref) => {\n const [index, setIndex] = useState(getStartingIndex(props.children, props.defaultIndex));\n const [wrapperWidth, setWrapperWidth] = useState<number>(0);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const slidesToScroll = useMemo(() => props.slidesToScroll || 1, [props.slidesToScroll]);\n const slidesToShow = useMemo(() => props.slidesToShow || 1, [props.slidesToShow]);\n const childrenCount = useMemo(() => React.Children.count(props.children), [props.children]);\n const eachChildWidth = useMemo(() => wrapperWidth / slidesToShow, [wrapperWidth, slidesToShow]);\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\n let startingClientX: number;\n let dragging: boolean = false;\n let distanceSwiped: number = 0;\n\n const applyStyle = useCallback(() => {\n if (innerWrapperRef.current) {\n const fullwidth = wrapperWidth * innerWrapperRef.current.children.length;\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 = `${eachChildWidth}px`;\n eachDiv.style.display = `block`;\n }\n }\n }\n }, [wrapperWidth, eachChildWidth]);\n\n const initResizeObserver = useCallback(() => {\n if (wrapperRef.current) {\n resizeObserver.current = new ResizeObserver((entries) => {\n if (!entries) return;\n setWidth();\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 }, [wrapperWidth, applyStyle]);\n\n useEffect(() => {\n initResizeObserver();\n return () => {\n tweenGroup.removeAll();\n clearTimeout(timeout.current);\n removeResizeObserver();\n };\n }, [wrapperRef, initResizeObserver, tweenGroup]);\n\n useEffect(() => {\n clearTimeout(timeout.current);\n play();\n }, [index, wrapperWidth, props.autoplay, play]);\n\n useImperativeHandle(ref, () => ({\n goNext: () => {\n moveNext();\n },\n goBack: () => {\n moveBack();\n },\n goTo: (index: number) => {\n moveTo(index);\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) {\n const clientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\n if (dragging) {\n let translateValue = eachChildWidth * (index + getOffset());\n const distance = clientX - startingClientX;\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 = `translate(-${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 <div\n data-index={index - slidesToShow}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={index - slidesToShow}\n >\n {each}\n </div>\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 <div\n data-index={childrenCount + index}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={childrenCount + index}\n >\n {each}\n </div>\n ));\n };\n\n const setWidth = () => {\n if (wrapperRef.current) {\n setWrapperWidth(wrapperRef.current.clientWidth);\n }\n };\n\n const startSwipe = (event: React.MouseEvent | React.TouchEvent) => {\n if (props.canSwipe) {\n startingClientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\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) / wrapperWidth > 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 transitionSlide = (toIndex: number, animationDuration?: number) => {\n const transitionDuration = animationDuration || props.transitionDuration;\n const currentIndex = index;\n const existingTweens = tweenGroup.getAll();\n if (!wrapperRef.current) {\n return;\n }\n const childWidth = wrapperRef.current.clientWidth / slidesToShow;\n if (!existingTweens.length) {\n clearTimeout(timeout.current);\n const value = {\n margin: -childWidth * (currentIndex + getOffset()) + distanceSwiped,\n };\n const tween = new TWEEN.Tween(value, tweenGroup)\n .to({ margin: -childWidth * (toIndex + getOffset()) }, transitionDuration)\n .onUpdate((value) => {\n if (innerWrapperRef.current) {\n innerWrapperRef.current.style.transform = `translate(${value.margin}px)`;\n }\n })\n .start();\n tween.easing(getEasing(props.easing));\n const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n tween.onComplete(() => {\n distanceSwiped = 0;\n let newIndex = toIndex;\n if (newIndex < 0) {\n newIndex = childrenCount - slidesToScroll;\n } else if (newIndex >= childrenCount) {\n newIndex = 0;\n }\n\n if (typeof props.onChange === 'function') {\n props.onChange(index, newIndex);\n }\n setIndex(newIndex);\n });\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: `translate(-${(index + getOffset()) * eachChildWidth}px)`,\n };\n return (\n <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className=\"react-slideshow-container\"\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n onMouseDown={startSwipe}\n onMouseUp={endSwipe}\n onMouseMove={swipe}\n onTouchStart={startSwipe}\n onTouchEnd={endSwipe}\n onTouchCancel={endSwipe}\n onTouchMove={swipe}\n >\n {props.arrows && showPreviousArrow(props, index, moveSlides)}\n <div\n className={`react-slideshow-wrapper slide ${props.cssClass || ''}`}\n ref={wrapperRef}\n >\n <div className=\"images-wrap\" style={style} ref={innerWrapperRef}>\n {props.infinite && renderPreceedingSlides()}\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => {\n const isThisSlideActive = isSlideActive(key);\n return (\n <div\n data-index={key}\n key={key}\n className={isThisSlideActive ? 'active' : ''}\n aria-roledescription=\"slide\"\n aria-hidden={isThisSlideActive ? 'false' : 'true'}\n >\n {each}\n </div>\n );\n }\n )}\n {renderTrailingSlides()}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, moveSlides)}\n </div>\n {props.indicators && showIndicators(props, index, goToSlide)}\n </div>\n );\n});\n\nSlide.defaultProps = defaultProps;\n"],"names":["getStartingIndex","children","defaultIndex","React","Children","count","EASING_METHODS","linear","TWEEN","Easing","Linear","None","ease","Quadratic","InOut","ease-in","In","ease-out","Out","cubic","Cubic","cubic-in","cubic-out","getEasing","easeMethod","showPreviousArrow","currentIndex","moveSlides","prevArrow","isDisabled","infinite","props","data-type","aria-label","disabled","onClick","cloneElement","className","width","height","viewBox","d","showNextArrow","properties","nextArrow","slidesToScroll","showIndicators","navigate","indicators","pages","Math","ceil","Array","from","length","_","key","indicatorProps","data-key","isCurrentPageActive","floor","eachIndicator","showCustomIndicator","showDefaultIndicator","defaultProps","duration","transitionDuration","autoplay","arrows","pauseOnHover","easing","canSwipe","cssClass","responsive","FadeZoom","forwardRef","ref","useState","index","setIndex","wrapperRef","useRef","innerWrapperRef","tweenGroup","Group","timeout","resizeObserver","childrenCount","useMemo","applyStyle","useCallback","current","wrapperWidth","clientWidth","style","eachDiv","left","display","initResizeObserver","ResizeObserver","entries","observe","play","setTimeout","moveNext","useEffect","removeAll","clearTimeout","removeResizeObserver","useImperativeHandle","goNext","goBack","moveBack","goTo","moveTo","unobserve","pauseSlides","transitionSlide","preTransition","event","currentTarget","dataset","type","newIndex","getAll","_innerWrapperRef$curr","animate","requestAnimationFrame","update","tween","Tween","opacity","scale","to","onUpdate","value","transform","start","onComplete","onChange","dir","onMouseEnter","onMouseOver","onMouseLeave","map","thisArg","each","zIndex","parseInt","Fade","Zoom","Slide","startingClientX","setWrapperWidth","slidesToShow","eachChildWidth","dragging","distanceSwiped","setWidth","swipe","clientX","nativeEvent","TouchEvent","touches","pageX","translateValue","getOffset","distance","nextIndex","calculateIndex","previousIndex","startSwipe","endSwipe","abs","toIndex","animationDuration","existingTweens","childWidth","margin","onMouseDown","onMouseUp","onMouseMove","onTouchStart","onTouchEnd","onTouchCancel","onTouchMove","toArray","slice","isThisSlideActive","isSlideActive","renderTrailingSlides","datasetKey"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"react-slideshow-image.esm.js","sources":["../src/helpers.tsx","../src/props.ts","../src/fadezoom.tsx","../src/fade.tsx","../src/zoom.tsx","../src/slide.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n ButtonClick,\n FadeProps,\n IndicatorPropsType,\n SlideProps,\n TweenEasingFn,\n ZoomProps,\n} from './types';\nimport TWEEN 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\nconst EASING_METHODS: { [key: string]: TweenEasingFn } = {\n linear: TWEEN.Easing.Linear.None,\n ease: TWEEN.Easing.Quadratic.InOut,\n 'ease-in': TWEEN.Easing.Quadratic.In,\n 'ease-out': TWEEN.Easing.Quadratic.Out,\n cubic: TWEEN.Easing.Cubic.InOut,\n 'cubic-in': TWEEN.Easing.Cubic.In,\n 'cubic-out': TWEEN.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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M16.67 0l2.83 2.829-9.339 9.175 9.339 9.167-2.83 2.829-12.17-11.996z\" />\n </svg>\n </button>\n );\n};\n\nexport const showNextArrow = (\n properties: FadeProps | SlideProps | ZoomProps,\n currentIndex: number,\n moveSlides: ButtonClick\n) => {\n const { nextArrow, infinite, children } = properties;\n let slidesToScroll = 1;\n 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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z\" />\n </svg>\n </button>\n );\n};\n\nconst showDefaultIndicator = (\n isCurrentPageActive: boolean,\n key: number,\n indicatorProps: IndicatorPropsType\n) => {\n return (\n <li key={key}>\n <button\n className={`each-slideshow-indicator ${isCurrentPageActive ? 'active' : ''}`}\n {...indicatorProps}\n />\n </li>\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): ReactNode => {\n const { children, indicators } = props;\n let slidesToScroll = 1;\n if ('slidesToScroll' in props) {\n slidesToScroll = props.slidesToScroll || 1;\n }\n const pages = Math.ceil(React.Children.count(children) / slidesToScroll);\n return (\n <ul className=\"indicators\">\n {Array.from({ length: pages }, (_, key) => {\n const indicatorProps: IndicatorPropsType = {\n 'data-key': key,\n 'aria-label': `Go to slide ${key + 1}`,\n onClick: navigate,\n };\n const isCurrentPageActive =\n Math.floor((currentIndex + slidesToScroll - 1) / slidesToScroll) === key;\n if (typeof indicators === 'function') {\n return showCustomIndicator(\n isCurrentPageActive,\n key,\n indicatorProps,\n indicators(key)\n );\n }\n return showDefaultIndicator(isCurrentPageActive, key, indicatorProps);\n })}\n </ul>\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 TWEEN from '@tweenjs/tween.js';\nimport {\n getEasing,\n getStartingIndex,\n showIndicators,\n showNextArrow,\n showPreviousArrow,\n} from './helpers';\nimport { ButtonClick, ZoomProps } from './types';\nimport { defaultProps } from './props';\n\nexport const FadeZoom = React.forwardRef((props: ZoomProps, ref) => {\n const [index, setIndex] = useState<number>(\n getStartingIndex(props.children, props.defaultIndex)\n );\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\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.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) => {\n moveTo(index);\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 transitionSlide = (newIndex: number) => {\n const existingTweens = tweenGroup.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 const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n const tween = new TWEEN.Tween(value, tweenGroup)\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 .start();\n tween.easing(getEasing(props.easing));\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 }\n };\n\n const moveTo = (index: number) => {\n transitionSlide(index);\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 <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className={`react-slideshow-container ${props.cssClass || ''}`}\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n ref={props.ref}\n >\n {props.arrows && showPreviousArrow(props, index, preTransition)}\n <div\n className={`react-slideshow-fadezoom-wrapper ${props.cssClass}`}\n ref={wrapperRef}\n >\n <div className=\"react-slideshow-fadezoom-images-wrap\" ref={innerWrapperRef}>\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => (\n <div\n style={{\n opacity: key === index ? '1' : '0',\n zIndex: key === index ? '1' : '0',\n }}\n data-index={key}\n key={key}\n aria-roledescription=\"slide\"\n aria-hidden={key === index ? 'false' : 'true'}\n >\n {each}\n </div>\n )\n )}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, preTransition)}\n </div>\n {props.indicators && showIndicators(props, index, navigate)}\n </div>\n );\n});\n\nFadeZoom.defaultProps = defaultProps;\n","import React from 'react';\nimport { FadeZoom } from './fadezoom';\nimport { defaultProps } from './props';\nimport { FadeProps } from './types';\n\nexport const Fade = React.forwardRef((props: FadeProps, ref) => {\n return <FadeZoom {...props} scale={1} ref={ref} />;\n});\n\nFade.defaultProps = defaultProps;\n","import React from 'react';\nimport { FadeZoom } from './fadezoom';\nimport { defaultProps } from './props';\nimport { ZoomProps } from './types';\n\nexport const Zoom = React.forwardRef((props: ZoomProps, ref) => {\n return <FadeZoom {...props} ref={ref} />;\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 TWEEN from '@tweenjs/tween.js';\nimport {\n getEasing,\n getStartingIndex,\n showIndicators,\n showNextArrow,\n showPreviousArrow,\n} from './helpers';\nimport { ButtonClick, SlideProps } from './types';\nimport { defaultProps } from './props';\n\nexport const Slide = React.forwardRef((props: SlideProps, ref) => {\n const [index, setIndex] = useState(getStartingIndex(props.children, props.defaultIndex));\n const [wrapperWidth, setWrapperWidth] = useState<number>(0);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const slidesToScroll = useMemo(() => props.slidesToScroll || 1, [props.slidesToScroll]);\n const slidesToShow = useMemo(() => props.slidesToShow || 1, [props.slidesToShow]);\n const childrenCount = useMemo(() => React.Children.count(props.children), [props.children]);\n const eachChildWidth = useMemo(() => wrapperWidth / slidesToShow, [wrapperWidth, slidesToShow]);\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\n let startingClientX: number;\n let dragging: boolean = false;\n let distanceSwiped: number = 0;\n\n const applyStyle = useCallback(() => {\n if (innerWrapperRef.current) {\n const fullwidth = wrapperWidth * innerWrapperRef.current.children.length;\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 = `${eachChildWidth}px`;\n eachDiv.style.display = `block`;\n }\n }\n }\n }, [wrapperWidth, eachChildWidth]);\n\n const initResizeObserver = useCallback(() => {\n if (wrapperRef.current) {\n resizeObserver.current = new ResizeObserver((entries) => {\n if (!entries) return;\n setWidth();\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 }, [wrapperWidth, applyStyle]);\n\n useEffect(() => {\n initResizeObserver();\n return () => {\n tweenGroup.removeAll();\n clearTimeout(timeout.current);\n removeResizeObserver();\n };\n }, [wrapperRef, initResizeObserver, tweenGroup]);\n\n useEffect(() => {\n clearTimeout(timeout.current);\n play();\n }, [index, wrapperWidth, props.autoplay, play]);\n\n useImperativeHandle(ref, () => ({\n goNext: () => {\n moveNext();\n },\n goBack: () => {\n moveBack();\n },\n goTo: (index: number) => {\n moveTo(index);\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) {\n const clientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\n if (dragging) {\n let translateValue = eachChildWidth * (index + getOffset());\n const distance = clientX - startingClientX;\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 = `translate(-${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 <div\n data-index={index - slidesToShow}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={index - slidesToShow}\n >\n {each}\n </div>\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 <div\n data-index={childrenCount + index}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={childrenCount + index}\n >\n {each}\n </div>\n ));\n };\n\n const setWidth = () => {\n if (wrapperRef.current) {\n setWrapperWidth(wrapperRef.current.clientWidth);\n }\n };\n\n const startSwipe = (event: React.MouseEvent | React.TouchEvent) => {\n if (props.canSwipe) {\n startingClientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\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) / wrapperWidth > 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 transitionSlide = (toIndex: number, animationDuration?: number) => {\n const transitionDuration = animationDuration || props.transitionDuration;\n const currentIndex = index;\n const existingTweens = tweenGroup.getAll();\n if (!wrapperRef.current) {\n return;\n }\n const childWidth = wrapperRef.current.clientWidth / slidesToShow;\n if (!existingTweens.length) {\n clearTimeout(timeout.current);\n const value = {\n margin: -childWidth * (currentIndex + getOffset()) + distanceSwiped,\n };\n const tween = new TWEEN.Tween(value, tweenGroup)\n .to({ margin: -childWidth * (toIndex + getOffset()) }, transitionDuration)\n .onUpdate((value) => {\n if (innerWrapperRef.current) {\n innerWrapperRef.current.style.transform = `translate(${value.margin}px)`;\n }\n })\n .start();\n tween.easing(getEasing(props.easing));\n const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n tween.onComplete(() => {\n distanceSwiped = 0;\n let newIndex = toIndex;\n if (newIndex < 0) {\n newIndex = childrenCount - slidesToScroll;\n } else if (newIndex >= childrenCount) {\n newIndex = 0;\n }\n\n if (typeof props.onChange === 'function') {\n props.onChange(index, newIndex);\n }\n setIndex(newIndex);\n });\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: `translate(-${(index + getOffset()) * eachChildWidth}px)`,\n };\n return (\n <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className=\"react-slideshow-container\"\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n onMouseDown={startSwipe}\n onMouseUp={endSwipe}\n onMouseMove={swipe}\n onTouchStart={startSwipe}\n onTouchEnd={endSwipe}\n onTouchCancel={endSwipe}\n onTouchMove={swipe}\n >\n {props.arrows && showPreviousArrow(props, index, moveSlides)}\n <div\n className={`react-slideshow-wrapper slide ${props.cssClass || ''}`}\n ref={wrapperRef}\n >\n <div className=\"images-wrap\" style={style} ref={innerWrapperRef}>\n {props.infinite && renderPreceedingSlides()}\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => {\n const isThisSlideActive = isSlideActive(key);\n return (\n <div\n data-index={key}\n key={key}\n className={isThisSlideActive ? 'active' : ''}\n aria-roledescription=\"slide\"\n aria-hidden={isThisSlideActive ? 'false' : 'true'}\n >\n {each}\n </div>\n );\n }\n )}\n {renderTrailingSlides()}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, moveSlides)}\n </div>\n {props.indicators && showIndicators(props, index, goToSlide)}\n </div>\n );\n});\n\nSlide.defaultProps = defaultProps;\n"],"names":["getStartingIndex","children","defaultIndex","React","Children","count","EASING_METHODS","linear","TWEEN","Easing","Linear","None","ease","Quadratic","InOut","In","Out","cubic","Cubic","getEasing","easeMethod","showPreviousArrow","currentIndex","moveSlides","prevArrow","infinite","isDisabled","props","disabled","onClick","cloneElement","className","width","height","viewBox","d","showNextArrow","properties","nextArrow","slidesToScroll","showDefaultIndicator","isCurrentPageActive","key","indicatorProps","showCustomIndicator","eachIndicator","showIndicators","navigate","indicators","pages","Math","ceil","Array","from","length","_","floor","defaultProps","duration","transitionDuration","autoplay","arrows","pauseOnHover","easing","canSwipe","cssClass","responsive","FadeZoom","forwardRef","ref","useState","index","setIndex","wrapperRef","useRef","innerWrapperRef","tweenGroup","Group","timeout","resizeObserver","childrenCount","useMemo","applyStyle","useCallback","current","wrapperWidth","clientWidth","fullwidth","style","eachDiv","left","display","initResizeObserver","ResizeObserver","entries","observe","play","setTimeout","moveNext","useEffect","removeAll","clearTimeout","removeResizeObserver","useImperativeHandle","goNext","goBack","moveBack","goTo","moveTo","unobserve","pauseSlides","startSlides","transitionSlide","preTransition","event","currentTarget","dataset","type","newIndex","existingTweens","getAll","value","opacity","scale","animate","requestAnimationFrame","update","tween","Tween","to","onUpdate","transform","start","onComplete","onChange","parseInt","dir","onMouseEnter","onMouseOver","onMouseLeave","map","thisArg","each","zIndex","Fade","Zoom","Slide","setWrapperWidth","slidesToShow","eachChildWidth","startingClientX","dragging","distanceSwiped","setWidth","swipe","clientX","nativeEvent","TouchEvent","touches","pageX","translateValue","getOffset","distance","nextIndex","calculateIndex","previousIndex","goToSlide","datasetKey","endSwipe","renderPreceedingSlides","toArray","slice","renderTrailingSlides","startSwipe","abs","toIndex","animationDuration","childWidth","margin","isSlideActive","onMouseDown","onMouseUp","onMouseMove","onTouchStart","onTouchEnd","onTouchCancel","onTouchMove","isThisSlideActive"],"mappings":"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"}
1
+ {"version":3,"file":"react-slideshow-image.esm.js","sources":["../src/helpers.tsx","../src/props.ts","../src/fadezoom.tsx","../src/fade.tsx","../src/zoom.tsx","../src/slide.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n ButtonClick,\n FadeProps,\n IndicatorPropsType,\n SlideProps,\n TweenEasingFn,\n ZoomProps,\n} from './types';\nimport TWEEN 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\nconst EASING_METHODS: { [key: string]: TweenEasingFn } = {\n linear: TWEEN.Easing.Linear.None,\n ease: TWEEN.Easing.Quadratic.InOut,\n 'ease-in': TWEEN.Easing.Quadratic.In,\n 'ease-out': TWEEN.Easing.Quadratic.Out,\n cubic: TWEEN.Easing.Cubic.InOut,\n 'cubic-in': TWEEN.Easing.Cubic.In,\n 'cubic-out': TWEEN.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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M16.67 0l2.83 2.829-9.339 9.175 9.339 9.167-2.83 2.829-12.17-11.996z\" />\n </svg>\n </button>\n );\n};\n\nexport const showNextArrow = (\n properties: FadeProps | SlideProps | ZoomProps,\n currentIndex: number,\n moveSlides: ButtonClick\n) => {\n const { nextArrow, infinite, children } = properties;\n let slidesToScroll = 1;\n 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 <button className={className} {...props}>\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M5 3l3.057-3 11.943 12-11.943 12-3.057-3 9-9z\" />\n </svg>\n </button>\n );\n};\n\nconst showDefaultIndicator = (\n isCurrentPageActive: boolean,\n key: number,\n indicatorProps: IndicatorPropsType\n) => {\n return (\n <li key={key}>\n <button\n className={`each-slideshow-indicator ${isCurrentPageActive ? 'active' : ''}`}\n {...indicatorProps}\n />\n </li>\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): ReactNode => {\n const { children, indicators } = props;\n let slidesToScroll = 1;\n if ('slidesToScroll' in props) {\n slidesToScroll = props.slidesToScroll || 1;\n }\n const pages = Math.ceil(React.Children.count(children) / slidesToScroll);\n return (\n <ul className=\"indicators\">\n {Array.from({ length: pages }, (_, key) => {\n const indicatorProps: IndicatorPropsType = {\n 'data-key': key,\n 'aria-label': `Go to slide ${key + 1}`,\n onClick: navigate,\n };\n const isCurrentPageActive =\n Math.floor((currentIndex + slidesToScroll - 1) / slidesToScroll) === key;\n if (typeof indicators === 'function') {\n return showCustomIndicator(\n isCurrentPageActive,\n key,\n indicatorProps,\n indicators(key)\n );\n }\n return showDefaultIndicator(isCurrentPageActive, key, indicatorProps);\n })}\n </ul>\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 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<SlideshowRef, ZoomProps>((props, ref) => {\n const [index, setIndex] = useState<number>(\n getStartingIndex(props.children, props.defaultIndex)\n );\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\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.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) => {\n moveTo(index);\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 transitionSlide = (newIndex: number) => {\n const existingTweens = tweenGroup.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 const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n const tween = new TWEEN.Tween(value, tweenGroup)\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 .start();\n tween.easing(getEasing(props.easing));\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 }\n };\n\n const moveTo = (index: number) => {\n transitionSlide(index);\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 <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className={`react-slideshow-container ${props.cssClass || ''}`}\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n ref={props.ref}\n >\n {props.arrows && showPreviousArrow(props, index, preTransition)}\n <div\n className={`react-slideshow-fadezoom-wrapper ${props.cssClass}`}\n ref={wrapperRef}\n >\n <div className=\"react-slideshow-fadezoom-images-wrap\" ref={innerWrapperRef}>\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => (\n <div\n style={{\n opacity: key === index ? '1' : '0',\n zIndex: key === index ? '1' : '0',\n }}\n data-index={key}\n key={key}\n aria-roledescription=\"slide\"\n aria-hidden={key === index ? 'false' : 'true'}\n >\n {each}\n </div>\n )\n )}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, preTransition)}\n </div>\n {props.indicators && showIndicators(props, index, navigate)}\n </div>\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<SlideshowRef, FadeProps>((props, ref) => {\n return <FadeZoom {...props} scale={1} ref={ref} />;\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<SlideshowRef, ZoomProps>((props, ref) => {\n return <FadeZoom {...props} ref={ref} />;\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 TWEEN from '@tweenjs/tween.js';\nimport {\n getEasing,\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<SlideshowRef, SlideProps>((props, ref) => {\n const [index, setIndex] = useState(getStartingIndex(props.children, props.defaultIndex));\n const [wrapperWidth, setWrapperWidth] = useState<number>(0);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const innerWrapperRef = useRef<any>(null);\n const tweenGroup = new TWEEN.Group();\n const slidesToScroll = useMemo(() => props.slidesToScroll || 1, [props.slidesToScroll]);\n const slidesToShow = useMemo(() => props.slidesToShow || 1, [props.slidesToShow]);\n const childrenCount = useMemo(() => React.Children.count(props.children), [props.children]);\n const eachChildWidth = useMemo(() => wrapperWidth / slidesToShow, [wrapperWidth, slidesToShow]);\n const timeout = useRef<NodeJS.Timeout>();\n const resizeObserver = useRef<any>();\n let startingClientX: number;\n let dragging: boolean = false;\n let distanceSwiped: number = 0;\n\n const applyStyle = useCallback(() => {\n if (innerWrapperRef.current) {\n const fullwidth = wrapperWidth * innerWrapperRef.current.children.length;\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 = `${eachChildWidth}px`;\n eachDiv.style.display = `block`;\n }\n }\n }\n }, [wrapperWidth, eachChildWidth]);\n\n const initResizeObserver = useCallback(() => {\n if (wrapperRef.current) {\n resizeObserver.current = new ResizeObserver((entries) => {\n if (!entries) return;\n setWidth();\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 }, [wrapperWidth, applyStyle]);\n\n useEffect(() => {\n initResizeObserver();\n return () => {\n tweenGroup.removeAll();\n clearTimeout(timeout.current);\n removeResizeObserver();\n };\n }, [wrapperRef, initResizeObserver, tweenGroup]);\n\n useEffect(() => {\n clearTimeout(timeout.current);\n play();\n }, [index, wrapperWidth, props.autoplay, play]);\n\n useImperativeHandle(ref, () => ({\n goNext: () => {\n moveNext();\n },\n goBack: () => {\n moveBack();\n },\n goTo: (index: number) => {\n moveTo(index);\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) {\n const clientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\n if (dragging) {\n let translateValue = eachChildWidth * (index + getOffset());\n const distance = clientX - startingClientX;\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 = `translate(-${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 <div\n data-index={index - slidesToShow}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={index - slidesToShow}\n >\n {each}\n </div>\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 <div\n data-index={childrenCount + index}\n aria-roledescription=\"slide\"\n aria-hidden=\"true\"\n key={childrenCount + index}\n >\n {each}\n </div>\n ));\n };\n\n const setWidth = () => {\n if (wrapperRef.current) {\n setWrapperWidth(wrapperRef.current.clientWidth);\n }\n };\n\n const startSwipe = (event: React.MouseEvent | React.TouchEvent) => {\n if (props.canSwipe) {\n startingClientX =\n event.nativeEvent instanceof TouchEvent\n ? event.nativeEvent.touches[0].pageX\n : event.nativeEvent.clientX;\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) / wrapperWidth > 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 transitionSlide = (toIndex: number, animationDuration?: number) => {\n const transitionDuration = animationDuration || props.transitionDuration;\n const currentIndex = index;\n const existingTweens = tweenGroup.getAll();\n if (!wrapperRef.current) {\n return;\n }\n const childWidth = wrapperRef.current.clientWidth / slidesToShow;\n if (!existingTweens.length) {\n clearTimeout(timeout.current);\n const value = {\n margin: -childWidth * (currentIndex + getOffset()) + distanceSwiped,\n };\n const tween = new TWEEN.Tween(value, tweenGroup)\n .to({ margin: -childWidth * (toIndex + getOffset()) }, transitionDuration)\n .onUpdate((value) => {\n if (innerWrapperRef.current) {\n innerWrapperRef.current.style.transform = `translate(${value.margin}px)`;\n }\n })\n .start();\n tween.easing(getEasing(props.easing));\n const animate = () => {\n requestAnimationFrame(animate);\n tweenGroup.update();\n };\n\n animate();\n\n tween.onComplete(() => {\n distanceSwiped = 0;\n let newIndex = toIndex;\n if (newIndex < 0) {\n newIndex = childrenCount - slidesToScroll;\n } else if (newIndex >= childrenCount) {\n newIndex = 0;\n }\n\n if (typeof props.onChange === 'function') {\n props.onChange(index, newIndex);\n }\n setIndex(newIndex);\n });\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: `translate(-${(index + getOffset()) * eachChildWidth}px)`,\n };\n return (\n <div dir=\"ltr\" aria-roledescription=\"carousel\">\n <div\n className=\"react-slideshow-container\"\n onMouseEnter={pauseSlides}\n onMouseOver={pauseSlides}\n onMouseLeave={startSlides}\n onMouseDown={startSwipe}\n onMouseUp={endSwipe}\n onMouseMove={swipe}\n onTouchStart={startSwipe}\n onTouchEnd={endSwipe}\n onTouchCancel={endSwipe}\n onTouchMove={swipe}\n >\n {props.arrows && showPreviousArrow(props, index, moveSlides)}\n <div\n className={`react-slideshow-wrapper slide ${props.cssClass || ''}`}\n ref={wrapperRef}\n >\n <div className=\"images-wrap\" style={style} ref={innerWrapperRef}>\n {props.infinite && renderPreceedingSlides()}\n {(React.Children.map(props.children, (thisArg) => thisArg) || []).map(\n (each, key) => {\n const isThisSlideActive = isSlideActive(key);\n return (\n <div\n data-index={key}\n key={key}\n className={isThisSlideActive ? 'active' : ''}\n aria-roledescription=\"slide\"\n aria-hidden={isThisSlideActive ? 'false' : 'true'}\n >\n {each}\n </div>\n );\n }\n )}\n {renderTrailingSlides()}\n </div>\n </div>\n {props.arrows && showNextArrow(props, index, moveSlides)}\n </div>\n {props.indicators && showIndicators(props, index, goToSlide)}\n </div>\n );\n});\n\nSlide.defaultProps = defaultProps;\n"],"names":["getStartingIndex","children","defaultIndex","React","Children","count","EASING_METHODS","linear","TWEEN","Easing","Linear","None","ease","Quadratic","InOut","In","Out","cubic","Cubic","getEasing","easeMethod","showPreviousArrow","currentIndex","moveSlides","prevArrow","infinite","isDisabled","props","disabled","onClick","cloneElement","className","width","height","viewBox","d","showNextArrow","properties","nextArrow","slidesToScroll","showDefaultIndicator","isCurrentPageActive","key","indicatorProps","showCustomIndicator","eachIndicator","showIndicators","navigate","indicators","pages","Math","ceil","Array","from","length","_","floor","defaultProps","duration","transitionDuration","autoplay","arrows","pauseOnHover","easing","canSwipe","cssClass","responsive","FadeZoom","forwardRef","ref","useState","index","setIndex","wrapperRef","useRef","innerWrapperRef","tweenGroup","Group","timeout","resizeObserver","childrenCount","useMemo","applyStyle","useCallback","current","wrapperWidth","clientWidth","fullwidth","style","eachDiv","left","display","initResizeObserver","ResizeObserver","entries","observe","play","setTimeout","moveNext","useEffect","removeAll","clearTimeout","removeResizeObserver","useImperativeHandle","goNext","goBack","moveBack","goTo","moveTo","unobserve","pauseSlides","startSlides","transitionSlide","preTransition","event","currentTarget","dataset","type","newIndex","existingTweens","getAll","value","opacity","scale","animate","requestAnimationFrame","update","tween","Tween","to","onUpdate","transform","start","onComplete","onChange","parseInt","dir","onMouseEnter","onMouseOver","onMouseLeave","map","thisArg","each","zIndex","Fade","Zoom","Slide","setWrapperWidth","slidesToShow","eachChildWidth","startingClientX","dragging","distanceSwiped","setWidth","swipe","clientX","nativeEvent","TouchEvent","touches","pageX","translateValue","getOffset","distance","nextIndex","calculateIndex","previousIndex","goToSlide","datasetKey","endSwipe","renderPreceedingSlides","toArray","slice","renderTrailingSlides","startSwipe","abs","toIndex","animationDuration","childWidth","margin","isSlideActive","onMouseDown","onMouseUp","onMouseMove","onTouchStart","onTouchEnd","onTouchCancel","onTouchMove","isThisSlideActive"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAWO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,QAAD,EAAsBC,YAAtB;EAC5B,IAAIA,YAAY,IAAIA,YAAY,GAAGC,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBJ,QAArB,CAAnC,EAAmE;IAC/D,OAAOC,YAAP;;;EAEJ,OAAO,CAAP;AACH,CALM;AAOP,IAAMI,cAAc,GAAqC;EACrDC,MAAM,EAAEC,KAAK,CAACC,MAAN,CAAaC,MAAb,CAAoBC,IADyB;EAErDC,IAAI,EAAEJ,KAAK,CAACC,MAAN,CAAaI,SAAb,CAAuBC,KAFwB;EAGrD,WAAWN,KAAK,CAACC,MAAN,CAAaI,SAAb,CAAuBE,EAHmB;EAIrD,YAAYP,KAAK,CAACC,MAAN,CAAaI,SAAb,CAAuBG,GAJkB;EAKrDC,KAAK,EAAET,KAAK,CAACC,MAAN,CAAaS,KAAb,CAAmBJ,KAL2B;EAMrD,YAAYN,KAAK,CAACC,MAAN,CAAaS,KAAb,CAAmBH,EANsB;EAOrD,aAAaP,KAAK,CAACC,MAAN,CAAaS,KAAb,CAAmBF;AAPqB,CAAzD;AAUO,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAACC,UAAD;EACrB,IAAIA,UAAJ,EAAgB;IACZ,OAAOd,cAAc,CAACc,UAAD,CAArB;;;EAEJ,OAAOd,cAAc,CAACC,MAAtB;AACH,CALM;AAOA,IAAMc,iBAAiB,GAAG,SAApBA,iBAAoB,OAE7BC,YAF6B,EAG7BC,UAH6B;MAC3BC,iBAAAA;MAAWC,gBAAAA;EAIb,IAAMC,UAAU,GAAGJ,YAAY,IAAI,CAAhB,IAAqB,CAACG,QAAzC;EACA,IAAME,KAAK,GAAG;IACV,aAAa,MADH;IAEV,cAAc,gBAFJ;IAGVC,QAAQ,EAAEF,UAHA;IAIVG,OAAO,EAAEN;GAJb;;EAMA,IAAIC,SAAJ,EAAe;IACX,oBAAOrB,KAAK,CAAC2B,YAAN,CAAmBN,SAAnB;MACHO,SAAS,GAAKP,SAAS,CAACG,KAAV,CAAgBI,SAAhB,IAA6B,EAAlC,eAA4CL,UAAU,GAAG,UAAH,GAAgB,EAAtE;OACNC,KAFA,EAAP;;;EAKJ,IAAMI,SAAS,yBAAsBL,UAAU,GAAG,UAAH,GAAgB,EAAhD,CAAf;EACA,oBACIvB,mBAAA,SAAA;IAAQ4B,SAAS,EAAEA;KAAeJ,MAAlC,eACIxB,mBAAA,MAAA;IAAK6B,KAAK,EAAC;IAAKC,MAAM,EAAC;IAAKC,OAAO,EAAC;GAApC,eACI/B,mBAAA,OAAA;IAAMgC,CAAC,EAAC;GAAR,CADJ,CADJ,CADJ;AAOH,CA1BM;AA4BA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CACzBC,UADyB,EAEzBf,YAFyB,EAGzBC,UAHyB;EAKzB,IAAQe,SAAR,GAA0CD,UAA1C,CAAQC,SAAR;MAAmBb,QAAnB,GAA0CY,UAA1C,CAAmBZ,QAAnB;MAA6BxB,QAA7B,GAA0CoC,UAA1C,CAA6BpC,QAA7B;EACA,IAAIsC,cAAc,GAAG,CAArB;;EACA,IAAI,oBAAoBF,UAAxB,EAAoC;IAChCE,cAAc,GAAGF,UAAU,CAACE,cAAX,IAA6B,CAA9C;;;EAEJ,IAAMb,UAAU,GAAGJ,YAAY,IAAInB,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBJ,QAArB,IAAiCsC,cAAjD,IAAmE,CAACd,QAAvF;EACA,IAAME,KAAK,GAAG;IACV,aAAa,MADH;IAEV,cAAc,YAFJ;IAGVC,QAAQ,EAAEF,UAHA;IAIVG,OAAO,EAAEN;GAJb;;EAMA,IAAIe,SAAJ,EAAe;IACX,oBAAOnC,KAAK,CAAC2B,YAAN,CAAmBQ,SAAnB;MACHP,SAAS,GAAKO,SAAS,CAACX,KAAV,CAAgBI,SAAhB,IAA6B,EAAlC,eAA4CL,UAAU,GAAG,UAAH,GAAgB,EAAtE;OACNC,KAFA,EAAP;;;EAKJ,IAAMI,SAAS,yBAAsBL,UAAU,GAAG,UAAH,GAAgB,EAAhD,CAAf;EACA,oBACIvB,mBAAA,SAAA;IAAQ4B,SAAS,EAAEA;KAAeJ,MAAlC,eACIxB,mBAAA,MAAA;IAAK6B,KAAK,EAAC;IAAKC,MAAM,EAAC;IAAKC,OAAO,EAAC;GAApC,eACI/B,mBAAA,OAAA;IAAMgC,CAAC,EAAC;GAAR,CADJ,CADJ,CADJ;AAOH,CA/BM;;AAiCP,IAAMK,oBAAoB,GAAG,SAAvBA,oBAAuB,CACzBC,mBADyB,EAEzBC,GAFyB,EAGzBC,cAHyB;EAKzB,oBACIxC,mBAAA,KAAA;IAAIuC,GAAG,EAAEA;GAAT,eACIvC,mBAAA,SAAA;IACI4B,SAAS,iCAA8BU,mBAAmB,GAAG,QAAH,GAAc,EAA/D;KACLE,eAFR,CADJ,CADJ;AAQH,CAbD;;AAeA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CACxBH,mBADwB,EAExBC,GAFwB,EAGxBC,cAHwB,EAIxBE,aAJwB;EAMxB,oBAAO1C,KAAK,CAAC2B,YAAN,CAAmBe,aAAnB;IACHd,SAAS,EAAKc,aAAa,CAAClB,KAAd,CAAoBI,SAAzB,UAAsCU,mBAAmB,GAAG,QAAH,GAAc,EAAvE,CADN;IAEHC,GAAG,EAAHA;KACGC,cAHA,EAAP;AAKH,CAXD;;AAaO,IAAMG,cAAc,GAAG,SAAjBA,cAAiB,CAC1BnB,KAD0B,EAE1BL,YAF0B,EAG1ByB,QAH0B;EAK1B,IAAQ9C,QAAR,GAAiC0B,KAAjC,CAAQ1B,QAAR;MAAkB+C,UAAlB,GAAiCrB,KAAjC,CAAkBqB,UAAlB;EACA,IAAIT,cAAc,GAAG,CAArB;;EACA,IAAI,oBAAoBZ,KAAxB,EAA+B;IAC3BY,cAAc,GAAGZ,KAAK,CAACY,cAAN,IAAwB,CAAzC;;;EAEJ,IAAMU,KAAK,GAAGC,IAAI,CAACC,IAAL,CAAUhD,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBJ,QAArB,IAAiCsC,cAA3C,CAAd;EACA,oBACIpC,mBAAA,KAAA;IAAI4B,SAAS,EAAC;GAAd,EACKqB,KAAK,CAACC,IAAN,CAAW;IAAEC,MAAM,EAAEL;GAArB,EAA8B,UAACM,CAAD,EAAIb,GAAJ;IAC3B,IAAMC,cAAc,GAAuB;MACvC,YAAYD,GAD2B;MAEvC,gCAA6BA,GAAG,GAAG,CAAnC,CAFuC;MAGvCb,OAAO,EAAEkB;KAHb;IAKA,IAAMN,mBAAmB,GACrBS,IAAI,CAACM,KAAL,CAAW,CAAClC,YAAY,GAAGiB,cAAf,GAAgC,CAAjC,IAAsCA,cAAjD,MAAqEG,GADzE;;IAEA,IAAI,OAAOM,UAAP,KAAsB,UAA1B,EAAsC;MAClC,OAAOJ,mBAAmB,CACtBH,mBADsB,EAEtBC,GAFsB,EAGtBC,cAHsB,EAItBK,UAAU,CAACN,GAAD,CAJY,CAA1B;;;IAOJ,OAAOF,oBAAoB,CAACC,mBAAD,EAAsBC,GAAtB,EAA2BC,cAA3B,CAA3B;GAhBH,CADL,CADJ;AAsBH,CAjCM;;AC5HA,IAAMc,YAAY,GAAG;EAC1BC,QAAQ,EAAE,IADgB;EAE1BC,kBAAkB,EAAE,IAFM;EAG1BzD,YAAY,EAAE,CAHY;EAI1BuB,QAAQ,EAAE,IAJgB;EAK1BmC,QAAQ,EAAE,IALgB;EAM1BZ,UAAU,EAAE,KANc;EAO1Ba,MAAM,EAAE,IAPkB;EAQ1BC,YAAY,EAAE,IARY;EAS1BC,MAAM,EAAE,QATkB;EAU1BC,QAAQ,EAAE,IAVgB;EAW1BC,QAAQ,EAAE,EAXgB;EAY1BC,UAAU,EAAE;AAZc,CAArB;;ACoBA,IAAMC,QAAQ,gBAAGhE,KAAK,CAACiE,UAAN,CAA0C,UAACzC,KAAD,EAAQ0C,GAAR;EAC9D,gBAA0BC,QAAQ,CAC9BtE,gBAAgB,CAAC2B,KAAK,CAAC1B,QAAP,EAAiB0B,KAAK,CAACzB,YAAvB,CADc,CAAlC;MAAOqE,KAAP;MAAcC,QAAd;;EAGA,IAAMC,UAAU,GAAGC,MAAM,CAAiB,IAAjB,CAAzB;EACA,IAAMC,eAAe,GAAGD,MAAM,CAAM,IAAN,CAA9B;EACA,IAAME,UAAU,GAAG,IAAIpE,KAAK,CAACqE,KAAV,EAAnB;EACA,IAAMC,OAAO,GAAGJ,MAAM,EAAtB;EACA,IAAMK,cAAc,GAAGL,MAAM,EAA7B;EACA,IAAMM,aAAa,GAAGC,OAAO,CAAC;IAAA,OAAM9E,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBsB,KAAK,CAAC1B,QAA3B,CAAN;GAAD,EAA6C,CAAC0B,KAAK,CAAC1B,QAAP,CAA7C,CAA7B;EAEA,IAAMiF,UAAU,GAAGC,WAAW,CAAC;IAC3B,IAAIR,eAAe,CAACS,OAAhB,IAA2BX,UAAU,CAACW,OAA1C,EAAmD;MAC/C,IAAMC,YAAY,GAAGZ,UAAU,CAACW,OAAX,CAAmBE,WAAxC;MACA,IAAMC,SAAS,GAAGF,YAAY,GAAGL,aAAjC;MACAL,eAAe,CAACS,OAAhB,CAAwBI,KAAxB,CAA8BxD,KAA9B,GAAyCuD,SAAzC;;MACA,KAAK,IAAIhB,MAAK,GAAG,CAAjB,EAAoBA,MAAK,GAAGI,eAAe,CAACS,OAAhB,CAAwBnF,QAAxB,CAAiCqD,MAA7D,EAAqEiB,MAAK,EAA1E,EAA8E;QAC1E,IAAMkB,OAAO,GAAGd,eAAe,CAACS,OAAhB,CAAwBnF,QAAxB,CAAiCsE,MAAjC,CAAhB;;QACA,IAAIkB,OAAJ,EAAa;UACTA,OAAO,CAACD,KAAR,CAAcxD,KAAd,GAAyBqD,YAAzB;UACAI,OAAO,CAACD,KAAR,CAAcE,IAAd,GAAwBnB,MAAK,GAAG,CAACc,YAAjC;UACAI,OAAO,CAACD,KAAR,CAAcG,OAAd;;;;GAVc,EAc3B,CAAClB,UAAD,EAAaE,eAAb,EAA8BK,aAA9B,CAd2B,CAA9B;EAgBA,IAAMY,kBAAkB,GAAGT,WAAW,CAAC;IACnC,IAAIV,UAAU,CAACW,OAAf,EAAwB;MACpBL,cAAc,CAACK,OAAf,GAAyB,IAAIS,cAAJ,CAAmB,UAACC,OAAD;QACxC,IAAI,CAACA,OAAL,EAAc;QACdZ,UAAU;OAFW,CAAzB;MAIAH,cAAc,CAACK,OAAf,CAAuBW,OAAvB,CAA+BtB,UAAU,CAACW,OAA1C;;GAN8B,EAQnC,CAACX,UAAD,EAAaS,UAAb,CARmC,CAAtC;EAUA,IAAMc,IAAI,GAAGb,WAAW,CAAC;IACrB,IAAQvB,QAAR,GAAmDjC,KAAnD,CAAQiC,QAAR;QAAkB3D,QAAlB,GAAmD0B,KAAnD,CAAkB1B,QAAlB;QAA4ByD,QAA5B,GAAmD/B,KAAnD,CAA4B+B,QAA5B;QAAsCjC,QAAtC,GAAmDE,KAAnD,CAAsCF,QAAtC;;IACA,IACImC,QAAQ,IACRzD,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBJ,QAArB,IAAiC,CADjC,KAECwB,QAAQ,IAAI8C,KAAK,GAAGpE,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBJ,QAArB,IAAiC,CAFtD,CADJ,EAIE;MACE6E,OAAO,CAACM,OAAR,GAAkBa,UAAU,CAACC,QAAD,EAAWxC,QAAX,CAA5B;;;GAPgB,EAUrB,CAAC/B,KAAD,EAAQ4C,KAAR,CAVqB,CAAxB;EAYA4B,SAAS,CAAC;IACNP,kBAAkB;IAClB,OAAO;MACHhB,UAAU,CAACwB,SAAX;MACAC,YAAY,CAACvB,OAAO,CAACM,OAAT,CAAZ;MACAkB,oBAAoB;KAHxB;GAFK,EAON,CAACV,kBAAD,EAAqBhB,UAArB,CAPM,CAAT;EASAuB,SAAS,CAAC;IACNE,YAAY,CAACvB,OAAO,CAACM,OAAT,CAAZ;IACAY,IAAI;GAFC,EAGN,CAACzB,KAAD,EAAQ5C,KAAK,CAACiC,QAAd,EAAwBoC,IAAxB,CAHM,CAAT;EAKAG,SAAS,CAAC;IACNjB,UAAU;GADL,EAEN,CAACF,aAAD,EAAgBE,UAAhB,CAFM,CAAT;EAIAqB,mBAAmB,CAAClC,GAAD,EAAM;IAAA,OAAO;MAC5BmC,MAAM,EAAE;QACJN,QAAQ;OAFgB;MAI5BO,MAAM,EAAE;QACJC,QAAQ;OALgB;MAO5BC,IAAI,EAAE,cAACpC,KAAD;QACFqC,MAAM,CAACrC,KAAD,CAAN;;KARiB;GAAN,CAAnB;;EAYA,IAAM+B,oBAAoB,GAAG,SAAvBA,oBAAuB;IACzB,IAAIvB,cAAc,CAACK,OAAf,IAA0BX,UAAU,CAACW,OAAzC,EAAkD;MAC9CL,cAAc,CAACK,OAAf,CAAuByB,SAAvB,CAAiCpC,UAAU,CAACW,OAA5C;;GAFR;;EAMA,IAAM0B,WAAW,GAAG,SAAdA,WAAc;IAChB,IAAInF,KAAK,CAACmC,YAAV,EAAwB;MACpBuC,YAAY,CAACvB,OAAO,CAACM,OAAT,CAAZ;;GAFR;;EAMA,IAAM2B,WAAW,GAAG,SAAdA,WAAc;IAChB,IAAQjD,YAAR,GAA6CnC,KAA7C,CAAQmC,YAAR;QAAsBF,QAAtB,GAA6CjC,KAA7C,CAAsBiC,QAAtB;QAAgCF,QAAhC,GAA6C/B,KAA7C,CAAgC+B,QAAhC;;IACA,IAAII,YAAY,IAAIF,QAApB,EAA8B;MAC1BkB,OAAO,CAACM,OAAR,GAAkBa,UAAU,CAAC;QAAA,OAAMC,QAAQ,EAAd;OAAD,EAAmBxC,QAAnB,CAA5B;;GAHR;;EAOA,IAAMwC,QAAQ,GAAG,SAAXA,QAAW;IACb,IAAQjG,QAAR,GAA+B0B,KAA/B,CAAQ1B,QAAR;QAAkBwB,QAAlB,GAA+BE,KAA/B,CAAkBF,QAAlB;;IACA,IAAI,CAACA,QAAD,IAAa8C,KAAK,KAAKpE,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBJ,QAArB,IAAiC,CAA5D,EAA+D;MAC3D;;;IAEJ+G,eAAe,CAAC,CAACzC,KAAK,GAAG,CAAT,IAAcpE,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBJ,QAArB,CAAf,CAAf;GALJ;;EAQA,IAAMyG,QAAQ,GAAG,SAAXA,QAAW;IACb,IAAQzG,QAAR,GAA+B0B,KAA/B,CAAQ1B,QAAR;QAAkBwB,QAAlB,GAA+BE,KAA/B,CAAkBF,QAAlB;;IACA,IAAI,CAACA,QAAD,IAAa8C,KAAK,KAAK,CAA3B,EAA8B;MAC1B;;;IAEJyC,eAAe,CAACzC,KAAK,KAAK,CAAV,GAAcpE,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBJ,QAArB,IAAiC,CAA/C,GAAmDsE,KAAK,GAAG,CAA5D,CAAf;GALJ;;EAQA,IAAM0C,aAAa,GAAgB,SAA7BA,aAA6B,CAACC,KAAD;IAC/B,IAAQC,aAAR,GAA0BD,KAA1B,CAAQC,aAAR;;IACA,IAAIA,aAAa,CAACC,OAAd,CAAsBC,IAAtB,KAA+B,MAAnC,EAA2C;MACvCX,QAAQ;KADZ,MAEO;MACHR,QAAQ;;GALhB;;EASA,IAAMc,eAAe,GAAG,SAAlBA,eAAkB,CAACM,QAAD;IACpB,IAAMC,cAAc,GAAG3C,UAAU,CAAC4C,MAAX,EAAvB;;IACA,IAAI,CAACD,cAAc,CAACjE,MAApB,EAA4B;MAAA;;MACxB,IAAI,2BAACqB,eAAe,CAACS,OAAjB,aAAC,sBAAyBnF,QAAzB,CAAkCqH,QAAlC,CAAD,CAAJ,EAAkD;QAC9CA,QAAQ,GAAG,CAAX;;;MAEJjB,YAAY,CAACvB,OAAO,CAACM,OAAT,CAAZ;MACA,IAAMqC,KAAK,GAAG;QAAEC,OAAO,EAAE,CAAX;QAAcC,KAAK,EAAE;OAAnC;;MAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU;QACZC,qBAAqB,CAACD,OAAD,CAArB;QACAhD,UAAU,CAACkD,MAAX;OAFJ;;MAKAF,OAAO;MAEP,IAAMG,KAAK,GAAG,IAAIvH,KAAK,CAACwH,KAAV,CAAgBP,KAAhB,EAAuB7C,UAAvB,EACTqD,EADS,CACN;QAAEP,OAAO,EAAE,CAAX;QAAcC,KAAK,EAAEhG,KAAK,CAACgG;OADrB,EAC8BhG,KAAK,CAACgC,kBADpC,EAETuE,QAFS,CAEA,UAACT,KAAD;QACN,IAAI,CAAC9C,eAAe,CAACS,OAArB,EAA8B;UAC1B;;;QAEJT,eAAe,CAACS,OAAhB,CAAwBnF,QAAxB,CAAiCqH,QAAjC,EAA2C9B,KAA3C,CAAiDkC,OAAjD,GAA2DD,KAAK,CAACC,OAAjE;QACA/C,eAAe,CAACS,OAAhB,CAAwBnF,QAAxB,CAAiCsE,KAAjC,EAAwCiB,KAAxC,CAA8CkC,OAA9C,GAAwD,IAAID,KAAK,CAACC,OAAlE;QACA/C,eAAe,CAACS,OAAhB,CAAwBnF,QAAxB,CACIsE,KADJ,EAEEiB,KAFF,CAEQ2C,SAFR,cAE6BV,KAAK,CAACE,KAFnC;OARM,EAYTS,KAZS,EAAd;MAaAL,KAAK,CAAChE,MAAN,CAAa5C,SAAS,CAACQ,KAAK,CAACoC,MAAP,CAAtB;MACAgE,KAAK,CAACM,UAAN,CAAiB;QACb,IAAI1D,eAAe,CAACS,OAApB,EAA6B;UACzBZ,QAAQ,CAAC8C,QAAD,CAAR;UACA3C,eAAe,CAACS,OAAhB,CAAwBnF,QAAxB,CAAiCsE,KAAjC,EAAwCiB,KAAxC,CAA8C2C,SAA9C;;;QAEJ,IAAI,OAAOxG,KAAK,CAAC2G,QAAb,KAA0B,UAA9B,EAA0C;UACtC3G,KAAK,CAAC2G,QAAN,CAAe/D,KAAf,EAAsB+C,QAAtB;;OANR;;GA9BR;;EA0CA,IAAMV,MAAM,GAAG,SAATA,MAAS,CAACrC,KAAD;IACXyC,eAAe,CAACzC,KAAD,CAAf;GADJ;;EAIA,IAAMxB,QAAQ,GAAgB,SAAxBA,QAAwB,CAACmE,KAAD;IAC1B,IAAQC,aAAR,GAA0BD,KAA1B,CAAQC,aAAR;;IACA,IAAI,CAACA,aAAa,CAACC,OAAd,CAAsB1E,GAA3B,EAAgC;MAC5B;;;IAEJ,IAAI6F,QAAQ,CAACpB,aAAa,CAACC,OAAd,CAAsB1E,GAAvB,CAAR,KAAwC6B,KAA5C,EAAmD;MAC/CqC,MAAM,CAAC2B,QAAQ,CAACpB,aAAa,CAACC,OAAd,CAAsB1E,GAAvB,CAAT,CAAN;;GANR;;EAUA,oBACIvC,mBAAA,MAAA;IAAKqI,GAAG,EAAC;4BAA2B;GAApC,eACIrI,mBAAA,MAAA;IACI4B,SAAS,kCAA+BJ,KAAK,CAACsC,QAAN,IAAkB,EAAjD;IACTwE,YAAY,EAAE3B;IACd4B,WAAW,EAAE5B;IACb6B,YAAY,EAAE5B;IACd1C,GAAG,EAAE1C,KAAK,CAAC0C;GALf,EAOK1C,KAAK,CAACkC,MAAN,IAAgBxC,iBAAiB,CAACM,KAAD,EAAQ4C,KAAR,EAAe0C,aAAf,CAPtC,eAQI9G,mBAAA,MAAA;IACI4B,SAAS,wCAAsCJ,KAAK,CAACsC;IACrDI,GAAG,EAAEI;GAFT,eAIItE,mBAAA,MAAA;IAAK4B,SAAS,EAAC;IAAuCsC,GAAG,EAAEM;GAA3D,EACK,CAACxE,KAAK,CAACC,QAAN,CAAewI,GAAf,CAAmBjH,KAAK,CAAC1B,QAAzB,EAAmC,UAAC4I,OAAD;IAAA,OAAaA,OAAb;GAAnC,KAA4D,EAA7D,EAAiED,GAAjE,CACG,UAACE,IAAD,EAAOpG,GAAP;IAAA,oBACIvC,mBAAA,MAAA;MACIqF,KAAK,EAAE;QACHkC,OAAO,EAAEhF,GAAG,KAAK6B,KAAR,GAAgB,GAAhB,GAAsB,GAD5B;QAEHwE,MAAM,EAAErG,GAAG,KAAK6B,KAAR,GAAgB,GAAhB,GAAsB;;oBAEtB7B;MACZA,GAAG,EAAEA;8BACgB;qBACRA,GAAG,KAAK6B,KAAR,GAAgB,OAAhB,GAA0B;KAR3C,EAUKuE,IAVL,CADJ;GADH,CADL,CAJJ,CARJ,EA+BKnH,KAAK,CAACkC,MAAN,IAAgBzB,aAAa,CAACT,KAAD,EAAQ4C,KAAR,EAAe0C,aAAf,CA/BlC,CADJ,EAkCKtF,KAAK,CAACqB,UAAN,IAAoBF,cAAc,CAACnB,KAAD,EAAQ4C,KAAR,EAAexB,QAAf,CAlCvC,CADJ;AAsCH,CAzNuB,CAAjB;AA2NPoB,QAAQ,CAACV,YAAT,GAAwBA,YAAxB;;IC1OauF,IAAI,gBAAG7I,KAAK,CAACiE,UAAN,CAA0C,UAACzC,KAAD,EAAQ0C,GAAR;EAC1D,oBAAOlE,mBAAA,CAACgE,QAAD,oBAAcxC;IAAOgG,KAAK,EAAE;IAAGtD,GAAG,EAAEA;IAApC,CAAP;AACH,CAFmB,CAAb;AAIP2E,IAAI,CAACvF,YAAL,GAAoBA,YAApB;;ICJawF,IAAI,gBAAG9I,KAAK,CAACiE,UAAN,CAA0C,UAACzC,KAAD,EAAQ0C,GAAR;EAC1D,oBAAOlE,mBAAA,CAACgE,QAAD,oBAAcxC;IAAO0C,GAAG,EAAEA;IAA1B,CAAP;AACH,CAFmB,CAAb;AAIP4E,IAAI,CAACxF,YAAL,GAAoBA,YAApB;;ICWayF,KAAK,gBAAG/I,KAAK,CAACiE,UAAN,CAA2C,UAACzC,KAAD,EAAQ0C,GAAR;EAC5D,gBAA0BC,QAAQ,CAACtE,gBAAgB,CAAC2B,KAAK,CAAC1B,QAAP,EAAiB0B,KAAK,CAACzB,YAAvB,CAAjB,CAAlC;MAAOqE,KAAP;MAAcC,QAAd;;EACA,iBAAwCF,QAAQ,CAAS,CAAT,CAAhD;MAAOe,YAAP;MAAqB8D,eAArB;;EACA,IAAM1E,UAAU,GAAGC,MAAM,CAAiB,IAAjB,CAAzB;EACA,IAAMC,eAAe,GAAGD,MAAM,CAAM,IAAN,CAA9B;EACA,IAAME,UAAU,GAAG,IAAIpE,KAAK,CAACqE,KAAV,EAAnB;EACA,IAAMtC,cAAc,GAAG0C,OAAO,CAAC;IAAA,OAAMtD,KAAK,CAACY,cAAN,IAAwB,CAA9B;GAAD,EAAkC,CAACZ,KAAK,CAACY,cAAP,CAAlC,CAA9B;EACA,IAAM6G,YAAY,GAAGnE,OAAO,CAAC;IAAA,OAAMtD,KAAK,CAACyH,YAAN,IAAsB,CAA5B;GAAD,EAAgC,CAACzH,KAAK,CAACyH,YAAP,CAAhC,CAA5B;EACA,IAAMpE,aAAa,GAAGC,OAAO,CAAC;IAAA,OAAM9E,KAAK,CAACC,QAAN,CAAeC,KAAf,CAAqBsB,KAAK,CAAC1B,QAA3B,CAAN;GAAD,EAA6C,CAAC0B,KAAK,CAAC1B,QAAP,CAA7C,CAA7B;EACA,IAAMoJ,cAAc,GAAGpE,OAAO,CAAC;IAAA,OAAMI,YAAY,GAAG+D,YAArB;GAAD,EAAoC,CAAC/D,YAAD,EAAe+D,YAAf,CAApC,CAA9B;EACA,IAAMtE,OAAO,GAAGJ,MAAM,EAAtB;EACA,IAAMK,cAAc,GAAGL,MAAM,EAA7B;EACA,IAAI4E,eAAJ;EACA,IAAIC,QAAQ,GAAY,KAAxB;EACA,IAAIC,cAAc,GAAW,CAA7B;EAEA,IAAMtE,UAAU,GAAGC,WAAW,CAAC;IAC3B,IAAIR,eAAe,CAACS,OAApB,EAA6B;MACzB,IAAMG,SAAS,GAAGF,YAAY,GAAGV,eAAe,CAACS,OAAhB,CAAwBnF,QAAxB,CAAiCqD,MAAlE;MACAqB,eAAe,CAACS,OAAhB,CAAwBI,KAAxB,CAA8BxD,KAA9B,GAAyCuD,SAAzC;;MACA,KAAK,IAAIhB,MAAK,GAAG,CAAjB,EAAoBA,MAAK,GAAGI,eAAe,CAACS,OAAhB,CAAwBnF,QAAxB,CAAiCqD,MAA7D,EAAqEiB,MAAK,EAA1E,EAA8E;QAC1E,IAAMkB,OAAO,GAAGd,eAAe,CAACS,OAAhB,CAAwBnF,QAAxB,CAAiCsE,MAAjC,CAAhB;;QACA,IAAIkB,OAAJ,EAAa;UACTA,OAAO,CAACD,KAAR,CAAcxD,KAAd,GAAyBqH,cAAzB;UACA5D,OAAO,CAACD,KAAR,CAAcG,OAAd;;;;GARc,EAY3B,CAACN,YAAD,EAAegE,cAAf,CAZ2B,CAA9B;EAcA,IAAMzD,kBAAkB,GAAGT,WAAW,CAAC;IACnC,IAAIV,UAAU,CAACW,OAAf,EAAwB;MACpBL,cAAc,CAACK,OAAf,GAAyB,IAAIS,cAAJ,CAAmB,UAACC,OAAD;QACxC,IAAI,CAACA,OAAL,EAAc;QACd2D,QAAQ;OAFa,CAAzB;MAIA1E,cAAc,CAACK,OAAf,CAAuBW,OAAvB,CAA+BtB,UAAU,CAACW,OAA1C;;GAN8B,EAQnC,CAACX,UAAD,CARmC,CAAtC;EAUA,IAAMuB,IAAI,GAAGb,WAAW,CAAC;IACrB,IAAQvB,QAAR,GAAyCjC,KAAzC,CAAQiC,QAAR;QAAkBnC,QAAlB,GAAyCE,KAAzC,CAAkBF,QAAlB;QAA4BiC,QAA5B,GAAyC/B,KAAzC,CAA4B+B,QAA5B;;IACA,IAAIE,QAAQ,KAAKnC,QAAQ,IAAI8C,KAAK,GAAGS,aAAa,GAAG,CAAzC,CAAZ,EAAyD;MACrDF,OAAO,CAACM,OAAR,GAAkBa,UAAU,CAACC,QAAD,EAAWxC,QAAX,CAA5B;;;GAHgB,EAMrB,CAAC/B,KAAD,EAAQqD,aAAR,EAAuBT,KAAvB,CANqB,CAAxB;EAQA4B,SAAS,CAAC;IACNjB,UAAU;GADL,EAEN,CAACG,YAAD,EAAeH,UAAf,CAFM,CAAT;EAIAiB,SAAS,CAAC;IACNP,kBAAkB;IAClB,OAAO;MACHhB,UAAU,CAACwB,SAAX;MACAC,YAAY,CAACvB,OAAO,CAACM,OAAT,CAAZ;MACAkB,oBAAoB;KAHxB;GAFK,EAON,CAAC7B,UAAD,EAAamB,kBAAb,EAAiChB,UAAjC,CAPM,CAAT;EASAuB,SAAS,CAAC;IACNE,YAAY,CAACvB,OAAO,CAACM,OAAT,CAAZ;IACAY,IAAI;GAFC,EAGN,CAACzB,KAAD,EAAQc,YAAR,EAAsB1D,KAAK,CAACiC,QAA5B,EAAsCoC,IAAtC,CAHM,CAAT;EAKAO,mBAAmB,CAAClC,GAAD,EAAM;IAAA,OAAO;MAC5BmC,MAAM,EAAE;QACJN,QAAQ;OAFgB;MAI5BO,MAAM,EAAE;QACJC,QAAQ;OALgB;MAO5BC,IAAI,EAAE,cAACpC,KAAD;QACFqC,MAAM,CAACrC,KAAD,CAAN;;KARiB;GAAN,CAAnB;;EAYA,IAAM+B,oBAAoB,GAAG,SAAvBA,oBAAuB;IACzB,IAAIvB,cAAc,IAAIN,UAAU,CAACW,OAAjC,EAA0C;MACtCL,cAAc,CAACK,OAAf,CAAuByB,SAAvB,CAAiCpC,UAAU,CAACW,OAA5C;;GAFR;;EAMA,IAAM0B,WAAW,GAAG,SAAdA,WAAc;IAChB,IAAInF,KAAK,CAACmC,YAAV,EAAwB;MACpBuC,YAAY,CAACvB,OAAO,CAACM,OAAT,CAAZ;;GAFR;;EAMA,IAAMsE,KAAK,GAAG,SAARA,KAAQ,CAACxC,KAAD;IACV,IAAIvF,KAAK,CAACqC,QAAV,EAAoB;MAChB,IAAM2F,OAAO,GACTzC,KAAK,CAAC0C,WAAN,YAA6BC,UAA7B,GACM3C,KAAK,CAAC0C,WAAN,CAAkBE,OAAlB,CAA0B,CAA1B,EAA6BC,KADnC,GAEM7C,KAAK,CAAC0C,WAAN,CAAkBD,OAH5B;;MAIA,IAAIJ,QAAJ,EAAc;QACV,IAAIS,cAAc,GAAGX,cAAc,IAAI9E,KAAK,GAAG0F,SAAS,EAArB,CAAnC;QACA,IAAMC,QAAQ,GAAGP,OAAO,GAAGL,eAA3B;;QACA,IAAI,CAAC3H,KAAK,CAACF,QAAP,IAAmB8C,KAAK,KAAKS,aAAa,GAAGzC,cAA7C,IAA+D2H,QAAQ,GAAG,CAA9E,EAAiF;;;UAG7E;;;QAEJ,IAAI,CAACvI,KAAK,CAACF,QAAP,IAAmB8C,KAAK,KAAK,CAA7B,IAAkC2F,QAAQ,GAAG,CAAjD,EAAoD;;;UAGhD;;;QAEJV,cAAc,GAAGU,QAAjB;QACAF,cAAc,IAAIR,cAAlB;QACA7E,eAAe,CAACS,OAAhB,CAAwBI,KAAxB,CAA8B2C,SAA9B,mBAAwD6B,cAAxD;;;GArBZ;;EA0BA,IAAM9D,QAAQ,GAAG,SAAXA,QAAW;IACb,IAAI,CAACvE,KAAK,CAACF,QAAP,IAAmB8C,KAAK,KAAKS,aAAa,GAAGzC,cAAjD,EAAiE;MAC7D;;;IAEJ,IAAM4H,SAAS,GAAGC,cAAc,CAAC7F,KAAK,GAAGhC,cAAT,CAAhC;IACAyE,eAAe,CAACmD,SAAD,CAAf;GALJ;;EAQA,IAAMzD,QAAQ,GAAG,SAAXA,QAAW;IACb,IAAI,CAAC/E,KAAK,CAACF,QAAP,IAAmB8C,KAAK,KAAK,CAAjC,EAAoC;MAChC;;;IAEJ,IAAI8F,aAAa,GAAG9F,KAAK,GAAGhC,cAA5B;;IACA,IAAI8H,aAAa,GAAG9H,cAApB,EAAoC;MAChC8H,aAAa,GAAGnH,IAAI,CAACC,IAAL,CAAUkH,aAAa,GAAG9H,cAA1B,IAA4CA,cAA5D;;;IAEJyE,eAAe,CAACqD,aAAD,CAAf;GARJ;;EAWA,IAAMC,SAAS,GAAgB,SAAzBA,SAAyB;QAAGnD,qBAAAA;;IAC9B,IAAI,CAACA,aAAa,CAACC,OAAd,CAAsB1E,GAA3B,EAAgC;MAC5B;;;IAEJ,IAAM6H,UAAU,GAAGhC,QAAQ,CAACpB,aAAa,CAACC,OAAd,CAAsB1E,GAAvB,CAA3B;IACAkE,MAAM,CAAC2D,UAAU,GAAGhI,cAAd,CAAN;GALJ;;EAQA,IAAMqE,MAAM,GAAG,SAATA,MAAS,CAACrC,KAAD;IACXyC,eAAe,CAACoD,cAAc,CAAC7F,KAAD,CAAf,CAAf;GADJ;;EAIA,IAAM6F,cAAc,GAAG,SAAjBA,cAAiB,CAACD,SAAD;IACnB,IAAIA,SAAS,GAAGnF,aAAZ,IAA6BmF,SAAS,GAAG5H,cAAZ,GAA6ByC,aAA9D,EAA6E;MACzE,IAAI,CAACA,aAAa,GAAGzC,cAAjB,IAAmCA,cAAvC,EAAuD;QACnD,OAAOyC,aAAa,GAAGzC,cAAvB;;;MAEJ,OAAO4H,SAAP;;;IAEJ,OAAOA,SAAP;GAPJ;;EAUA,IAAMpD,WAAW,GAAG,SAAdA,WAAc;IAChB,IAAIwC,QAAJ,EAAc;MACViB,QAAQ;KADZ,MAEO,IAAI7I,KAAK,CAACmC,YAAN,IAAsBnC,KAAK,CAACiC,QAAhC,EAA0C;MAC7CkB,OAAO,CAACM,OAAR,GAAkBa,UAAU,CAACC,QAAD,EAAWvE,KAAK,CAAC+B,QAAjB,CAA5B;;GAJR;;EAQA,IAAMnC,UAAU,GAAgB,SAA1BA,UAA0B;QAAoB6F,gBAAjBD,cAAiBC;;IAChD,IAAIA,OAAO,CAACC,IAAR,KAAiB,MAArB,EAA6B;MACzBnB,QAAQ;KADZ,MAEO;MACHQ,QAAQ;;GAJhB;;EAQA,IAAM+D,sBAAsB,GAAG,SAAzBA,sBAAyB;IAC3B,OAAOtK,KAAK,CAACC,QAAN,CAAesK,OAAf,CAAuB/I,KAAK,CAAC1B,QAA7B,EACF0K,KADE,CACI,CAACvB,YADL,EAEFR,GAFE,CAEE,UAACE,IAAD,EAAOvE,KAAP;MAAA,oBACDpE,mBAAA,MAAA;sBACgBoE,KAAK,GAAG6E;gCACC;uBACT;QACZ1G,GAAG,EAAE6B,KAAK,GAAG6E;OAJjB,EAMKN,IANL,CADC;KAFF,CAAP;GADJ;;EAeA,IAAM8B,oBAAoB,GAAG,SAAvBA,oBAAuB;IACzB,IAAI,CAACjJ,KAAK,CAACF,QAAP,IAAmB2H,YAAY,KAAK7G,cAAxC,EAAwD;MACpD;;;IAEJ,OAAOpC,KAAK,CAACC,QAAN,CAAesK,OAAf,CAAuB/I,KAAK,CAAC1B,QAA7B,EACF0K,KADE,CACI,CADJ,EACOvB,YADP,EAEFR,GAFE,CAEE,UAACE,IAAD,EAAOvE,KAAP;MAAA,oBACDpE,mBAAA,MAAA;sBACgB6E,aAAa,GAAGT;gCACP;uBACT;QACZ7B,GAAG,EAAEsC,aAAa,GAAGT;OAJzB,EAMKuE,IANL,CADC;KAFF,CAAP;GAJJ;;EAkBA,IAAMW,QAAQ,GAAG,SAAXA,QAAW;IACb,IAAIhF,UAAU,CAACW,OAAf,EAAwB;MACpB+D,eAAe,CAAC1E,UAAU,CAACW,OAAX,CAAmBE,WAApB,CAAf;;GAFR;;EAMA,IAAMuF,UAAU,GAAG,SAAbA,UAAa,CAAC3D,KAAD;IACf,IAAIvF,KAAK,CAACqC,QAAV,EAAoB;MAChBsF,eAAe,GACXpC,KAAK,CAAC0C,WAAN,YAA6BC,UAA7B,GACM3C,KAAK,CAAC0C,WAAN,CAAkBE,OAAlB,CAA0B,CAA1B,EAA6BC,KADnC,GAEM7C,KAAK,CAAC0C,WAAN,CAAkBD,OAH5B;MAIAtD,YAAY,CAACvB,OAAO,CAACM,OAAT,CAAZ;MACAmE,QAAQ,GAAG,IAAX;;GAPR;;EAWA,IAAMiB,QAAQ,GAAG,SAAXA,QAAW;IACb,IAAI7I,KAAK,CAACqC,QAAV,EAAoB;MAChBuF,QAAQ,GAAG,KAAX;;MACA,IAAIrG,IAAI,CAAC4H,GAAL,CAAStB,cAAT,IAA2BnE,YAA3B,GAA0C,GAA9C,EAAmD;QAC/C,IAAImE,cAAc,GAAG,CAArB,EAAwB;UACpBtD,QAAQ;SADZ,MAEO;UACHQ,QAAQ;;OAJhB,MAMO;QACH,IAAIxD,IAAI,CAAC4H,GAAL,CAAStB,cAAT,IAA2B,CAA/B,EAAkC;UAC9BxC,eAAe,CAACzC,KAAD,EAAQ,GAAR,CAAf;;;;GAXhB;;EAiBA,IAAMyC,eAAe,GAAG,SAAlBA,eAAkB,CAAC+D,OAAD,EAAkBC,iBAAlB;IACpB,IAAMrH,kBAAkB,GAAGqH,iBAAiB,IAAIrJ,KAAK,CAACgC,kBAAtD;IACA,IAAMrC,YAAY,GAAGiD,KAArB;IACA,IAAMgD,cAAc,GAAG3C,UAAU,CAAC4C,MAAX,EAAvB;;IACA,IAAI,CAAC/C,UAAU,CAACW,OAAhB,EAAyB;MACrB;;;IAEJ,IAAM6F,UAAU,GAAGxG,UAAU,CAACW,OAAX,CAAmBE,WAAnB,GAAiC8D,YAApD;;IACA,IAAI,CAAC7B,cAAc,CAACjE,MAApB,EAA4B;MACxB+C,YAAY,CAACvB,OAAO,CAACM,OAAT,CAAZ;MACA,IAAMqC,KAAK,GAAG;QACVyD,MAAM,EAAE,CAACD,UAAD,IAAe3J,YAAY,GAAG2I,SAAS,EAAvC,IAA6CT;OADzD;MAGA,IAAMzB,KAAK,GAAG,IAAIvH,KAAK,CAACwH,KAAV,CAAgBP,KAAhB,EAAuB7C,UAAvB,EACTqD,EADS,CACN;QAAEiD,MAAM,EAAE,CAACD,UAAD,IAAeF,OAAO,GAAGd,SAAS,EAAlC;OADJ,EAC6CtG,kBAD7C,EAETuE,QAFS,CAEA,UAACT,KAAD;QACN,IAAI9C,eAAe,CAACS,OAApB,EAA6B;UACzBT,eAAe,CAACS,OAAhB,CAAwBI,KAAxB,CAA8B2C,SAA9B,kBAAuDV,KAAK,CAACyD,MAA7D;;OAJE,EAOT9C,KAPS,EAAd;MAQAL,KAAK,CAAChE,MAAN,CAAa5C,SAAS,CAACQ,KAAK,CAACoC,MAAP,CAAtB;;MACA,IAAM6D,OAAO,GAAG,SAAVA,OAAU;QACZC,qBAAqB,CAACD,OAAD,CAArB;QACAhD,UAAU,CAACkD,MAAX;OAFJ;;MAKAF,OAAO;MAEPG,KAAK,CAACM,UAAN,CAAiB;QACbmB,cAAc,GAAG,CAAjB;QACA,IAAIlC,QAAQ,GAAGyD,OAAf;;QACA,IAAIzD,QAAQ,GAAG,CAAf,EAAkB;UACdA,QAAQ,GAAGtC,aAAa,GAAGzC,cAA3B;SADJ,MAEO,IAAI+E,QAAQ,IAAItC,aAAhB,EAA+B;UAClCsC,QAAQ,GAAG,CAAX;;;QAGJ,IAAI,OAAO3F,KAAK,CAAC2G,QAAb,KAA0B,UAA9B,EAA0C;UACtC3G,KAAK,CAAC2G,QAAN,CAAe/D,KAAf,EAAsB+C,QAAtB;;;QAEJ9C,QAAQ,CAAC8C,QAAD,CAAR;OAZJ;;GA7BR;;EA8CA,IAAM6D,aAAa,GAAG,SAAhBA,aAAgB,CAACzI,GAAD;IAClB,OAAOA,GAAG,GAAG6B,KAAK,GAAG6E,YAAd,IAA8B1G,GAAG,IAAI6B,KAA5C;GADJ;;EAIA,IAAM0F,SAAS,GAAG,SAAZA,SAAY;IACd,IAAI,CAACtI,KAAK,CAACF,QAAX,EAAqB;MACjB,OAAO,CAAP;;;IAEJ,OAAO2H,YAAP;GAJJ;;EAOA,IAAM5D,KAAK,GAAG;IACV2C,SAAS,kBAAgB,CAAC5D,KAAK,GAAG0F,SAAS,EAAlB,IAAwBZ,cAAxC;GADb;EAGA,oBACIlJ,mBAAA,MAAA;IAAKqI,GAAG,EAAC;4BAA2B;GAApC,eACIrI,mBAAA,MAAA;IACI4B,SAAS,EAAC;IACV0G,YAAY,EAAE3B;IACd4B,WAAW,EAAE5B;IACb6B,YAAY,EAAE5B;IACdqE,WAAW,EAAEP;IACbQ,SAAS,EAAEb;IACXc,WAAW,EAAE5B;IACb6B,YAAY,EAAEV;IACdW,UAAU,EAAEhB;IACZiB,aAAa,EAAEjB;IACfkB,WAAW,EAAEhC;GAXjB,EAaK/H,KAAK,CAACkC,MAAN,IAAgBxC,iBAAiB,CAACM,KAAD,EAAQ4C,KAAR,EAAehD,UAAf,CAbtC,eAcIpB,mBAAA,MAAA;IACI4B,SAAS,sCAAmCJ,KAAK,CAACsC,QAAN,IAAkB,EAArD;IACTI,GAAG,EAAEI;GAFT,eAIItE,mBAAA,MAAA;IAAK4B,SAAS,EAAC;IAAcyD,KAAK,EAAEA;IAAOnB,GAAG,EAAEM;GAAhD,EACKhD,KAAK,CAACF,QAAN,IAAkBgJ,sBAAsB,EAD7C,EAEK,CAACtK,KAAK,CAACC,QAAN,CAAewI,GAAf,CAAmBjH,KAAK,CAAC1B,QAAzB,EAAmC,UAAC4I,OAAD;IAAA,OAAaA,OAAb;GAAnC,KAA4D,EAA7D,EAAiED,GAAjE,CACG,UAACE,IAAD,EAAOpG,GAAP;IACI,IAAMiJ,iBAAiB,GAAGR,aAAa,CAACzI,GAAD,CAAvC;IACA,oBACIvC,mBAAA,MAAA;oBACgBuC;MACZA,GAAG,EAAEA;MACLX,SAAS,EAAE4J,iBAAiB,GAAG,QAAH,GAAc;8BACrB;qBACRA,iBAAiB,GAAG,OAAH,GAAa;KAL/C,EAOK7C,IAPL,CADJ;GAHP,CAFL,EAkBK8B,oBAAoB,EAlBzB,CAJJ,CAdJ,EAuCKjJ,KAAK,CAACkC,MAAN,IAAgBzB,aAAa,CAACT,KAAD,EAAQ4C,KAAR,EAAehD,UAAf,CAvClC,CADJ,EA0CKI,KAAK,CAACqB,UAAN,IAAoBF,cAAc,CAACnB,KAAD,EAAQ4C,KAAR,EAAe+F,SAAf,CA1CvC,CADJ;AA8CH,CA1VoB,CAAd;AA4VPpB,KAAK,CAACzF,YAAN,GAAqBA,YAArB;;;;"}
package/dist/slide.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { SlideProps } from './types';
3
- export declare const Slide: React.ForwardRefExoticComponent<Pick<SlideProps, "responsive" | "slidesToShow" | "slidesToScroll" | "children" | "duration" | "transitionDuration" | "defaultIndex" | "indicators" | "prevArrow" | "nextArrow" | "arrows" | "autoplay" | "infinite" | "pauseOnHover" | "canSwipe" | "easing" | "cssClass" | "onChange"> & React.RefAttributes<unknown>>;
2
+ import { SlideshowRef, SlideProps } from './types';
3
+ export declare const Slide: React.ForwardRefExoticComponent<Pick<SlideProps, "responsive" | "slidesToShow" | "slidesToScroll" | "children" | "duration" | "transitionDuration" | "defaultIndex" | "indicators" | "prevArrow" | "nextArrow" | "arrows" | "autoplay" | "infinite" | "pauseOnHover" | "canSwipe" | "easing" | "cssClass" | "onChange"> & React.RefAttributes<SlideshowRef>>;
package/dist/types.d.ts CHANGED
@@ -61,3 +61,8 @@ export declare type IndicatorPropsType = {
61
61
  onClick: ButtonClick;
62
62
  };
63
63
  export declare type TweenEasingFn = (amount: number) => number;
64
+ export declare type SlideshowRef = {
65
+ goNext: () => void;
66
+ goBack: () => void;
67
+ goTo: (index: number) => void;
68
+ };
package/dist/zoom.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
- import { ZoomProps } from './types';
3
- export declare const Zoom: React.ForwardRefExoticComponent<Pick<ZoomProps, "scale" | "children" | "duration" | "transitionDuration" | "defaultIndex" | "indicators" | "prevArrow" | "nextArrow" | "arrows" | "autoplay" | "infinite" | "pauseOnHover" | "canSwipe" | "easing" | "cssClass" | "onChange"> & React.RefAttributes<unknown>>;
2
+ import { SlideshowRef, ZoomProps } from './types';
3
+ export declare const Zoom: React.ForwardRefExoticComponent<Pick<ZoomProps, "scale" | "children" | "duration" | "transitionDuration" | "defaultIndex" | "indicators" | "prevArrow" | "nextArrow" | "arrows" | "autoplay" | "infinite" | "pauseOnHover" | "canSwipe" | "easing" | "cssClass" | "onChange"> & React.RefAttributes<SlideshowRef>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-slideshow-image",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "description": "An image slideshow with react",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",