{"version":3,"sources":["webpack:///./packages/react-spring-slider/FadeTrack.jsx","webpack:///./packages/react-spring-slider/lib/constants.js","webpack:///./packages/react-spring-slider/lib/SlideItem.jsx","webpack:///./packages/react-spring-slider/lib/array.js","webpack:///./packages/react-spring-slider/lib/use-virtual-items.js","webpack:///./packages/react-spring-slider/lib/helpers.js","webpack:///./packages/react-spring-slider/lib/use-size.js","webpack:///./packages/react-spring-slider/lib/use-resize-observer.js","webpack:///./packages/react-spring-slider/lib/use-track-metrics.js","webpack:///./packages/react-spring-slider/lib/use-clamped-spring.js","webpack:///./packages/react-spring-slider/lib/use-animated-track.js","webpack:///./packages/react-spring-slider/SlideTrack.jsx","webpack:///./packages/react-spring-slider/lib/use-virtual-index.js","webpack:///./packages/react-spring-slider/lib/number.js"],"names":["FadeTrack","_ref","renderItem","_useSliderState","duration","useSliderState","index","items","_useState2","_slicedToArray","useState","initialized","setInitialized","transitions","useTransition","item","id","from","position","top","left","bottom","right","opacity","enter","leave","config","molasses","useLayoutEffect","useMemo","map","_ref2","props","key","react__WEBPACK_IMPORTED_MODULE_0___default","a","createElement","react_spring__WEBPACK_IMPORTED_MODULE_2__","div","style","i","isCurrent","getItemProps","translateProperties","_defineProperty","_translateProperties","offsetProperties","_offsetProperties","SlideItem","realIndex","isClone","direction","offset","ref","useRef","_objectSpread2","arguments","length","undefined","_ref2$style","_objectSpread","_objectWithoutProperties","SlideItem_defineProperty","flatten","result","arr","concat","_toConsumableArray","getSnapOffset","snap","offsetProp","itemOffset","itemSize","trackSize","useSize","nodeRef","active","onChange","size","setSize","widthRef","heightRef","onChangeRef","current","callback","useCallback","width","height","callbackRef","resizeObserver","ResizeObserver","entries","contentRect","useEffect","el","observe","unobserve","useResizeObserver","getBoundingClientRect","defaultItemSize","useAnimatedTrack","actions","dragTreshold","inTransitionRef","allowNext","allowPrev","_useClampedSpring2","use_animated_track_slicedToArray","initialValue","_useSpring2","use_clamped_spring_slicedToArray","useSpring","value","_set","stop","_ref$immediate","immediate","onStop","hasStopped","handleStop","to","clamp","precicion","onRest","onFrame","obj","useClampedSpring","set","internalPositionRef","transitionToPosition","useFunction","realPosition","isNaN","transitionStart","transitionEnd","isDragging","bind","useGesture","onHover","hovering","hoverStart","hoverEnd","onDrag","_movementObj","movement","distance","last","cancel","movementObj","use_animated_track_defineProperty","document","ontouchmove","e","preventDefault","action","next","prev","SlideTrack","_ref$infinite","infinite","_ref$snap","_ref$direction","_ref$dragTreshold","className","_ref$height","increment","inTransition","isLast","isFirst","_useAnimatedTrack2","SlideTrack_slicedToArray","trackRef","_useTrackMetrics","itemSizes","sizes","Array","querySelectorAll","reduce","res","itemIndex","getAttribute","use_track_metrics_objectSpread","use_track_metrics_defineProperty","offsetWidth","offsetHeight","_","_useMemo2","use_track_metrics_slicedToArray","minHeight","maxHeight","offsets","Math","max","min","contentSize","useTrackMetrics","virtualIndex","latestIndexRef","latestIndex","oldIndex","newIndex","count","isIncrement","getVirtualIndex","useVirtualIndex","virtualItems","pad","n","fallback","Infinity","notInfinity","ceil","itemCount","use_virtual_items_toConsumableArray","forX","pi","useVirtualItems","virtualItem","find","realItem","virtualPosition","lastVirtualIndex","heightStyle","react_default","web","_extends","SlideTrack_objectSpread","visibility","userSelect","transform","interpolate","px","onClick","lib_SlideItem"],"mappings":"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","file":"slider.bundle.96d52383a0067a652c72.js","sourcesContent":["import React, { useState, useMemo, useLayoutEffect } from 'react';\nimport { useSliderState } from './Slider';\nimport { useTransition, config, animated } from 'react-spring';\n\nexport const FadeTrack = ({ renderItem, duration = 2000 }) => {\n const { index, items } = useSliderState();\n const [initialized, setInitialized] = useState(false);\n const transitions = useTransition(items[index], item => item.id, {\n from: {\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n opacity: 0,\n },\n enter: { opacity: 1 },\n leave: { opacity: 0 },\n config: config.molasses,\n });\n\n useLayoutEffect(() => {\n if (!initialized) {\n setInitialized(true);\n }\n }, [initialized]);\n return useMemo(\n () =>\n transitions.map(({ item, props, key }) => (\n \n {renderItem({\n item,\n i: 0,\n isCurrent: true,\n getItemProps: props => props,\n })}\n \n )),\n [transitions, renderItem],\n );\n};\n\nexport default FadeTrack;\n","export const DIRECTION_X = \"horizontal\";\nexport const DIRECTION_Y = \"vertical\";\n\nexport const SNAP_CENTER = \"center\";\nexport const SNAP_END = \"end\";\nexport const SNAP_START = \"start\";\n\nexport const ITEM_INDEX_PROP = \"data-index\";\n\nexport const translateProperties = {\n [DIRECTION_X]: \"translateX\",\n [DIRECTION_Y]: \"translateY\"\n};\nexport const offsetProperties = {\n [DIRECTION_X]: \"width\",\n [DIRECTION_Y]: \"height\"\n};\n","import { useRef, useMemo } from \"react\";\n\nimport { DIRECTION_X, DIRECTION_Y, ITEM_INDEX_PROP } from \"./constants\";\n\nconst SlideItem = ({\n item,\n index,\n realIndex,\n isCurrent,\n isClone,\n renderItem,\n direction,\n offset\n}) => {\n const ref = useRef(null);\n return useMemo(\n () =>\n renderItem({\n item,\n index,\n realIndex,\n isCurrent,\n isClone,\n getItemProps: ({ style = {}, ...rest } = {}) => ({\n ...rest,\n style: {\n ...style,\n position: \"absolute\",\n left: direction === DIRECTION_X && offset ? offset : 0,\n top: direction === DIRECTION_Y && offset ? offset : 0\n },\n [ITEM_INDEX_PROP]: index,\n ref\n })\n }),\n [offset, item, index, realIndex, isCurrent, direction, renderItem, isClone]\n );\n};\n\nexport default SlideItem;\n","export const flatten = (result, arr) => [...result, ...arr];\n","import { useMemo } from \"react\";\nimport { flatten } from \"./array\";\nimport { notInfinity } from \"./number\";\nimport { forX } from \"./for-x\";\nexport const useVirtualItems = (\n items,\n contentSize,\n trackSize,\n offsets,\n infinite,\n offsetProp\n) => {\n const pad = useMemo(() => {\n if (!infinite) {\n return 0;\n }\n return notInfinity(\n Math.max(\n 1,\n trackSize[offsetProp]\n ? Math.ceil(Math.ceil(trackSize[offsetProp] / contentSize) / 2)\n : 1\n ),\n 1\n );\n }, [contentSize, trackSize, offsetProp, infinite]);\n return useMemo(() => {\n const itemCount = items.length;\n return [\n ...forX(pad, pi =>\n items.map((item, i) => ({\n isClone: true,\n item,\n index: itemCount * (pad - pi) * -1 + i,\n realIndex: i,\n offset: contentSize * (pi + 1) * -1 + offsets[i]\n }))\n ).reduce(flatten, []),\n ...items.map((item, i) => ({\n isClone: false,\n item,\n index: i,\n realIndex: i,\n offset: offsets[i]\n })),\n ...forX(pad, pi =>\n items.map((item, i) => ({\n isClone: true,\n item,\n index: itemCount * (pad - pi) + i,\n realIndex: i,\n offset: contentSize * (pi + 1) + offsets[i]\n }))\n ).reduce(flatten, [])\n ];\n }, [items, pad, contentSize, offsets]);\n};\n","import { SNAP_CENTER, SNAP_END } from \"./constants\";\nexport const getSnapOffset = (\n snap,\n offsetProp,\n itemOffset,\n itemSize,\n trackSize\n) => {\n if (snap === SNAP_CENTER) {\n return (\n itemOffset * -1 + trackSize[offsetProp] / 2 - itemSize[offsetProp] / 2\n );\n }\n if (snap === SNAP_END) {\n return itemOffset * -1 + trackSize[offsetProp] - itemSize[offsetProp];\n }\n return itemOffset * -1;\n};\n","import { useEffect, useRef, useState, useCallback } from \"react\";\nimport { useResizeObserver } from \"./use-resize-observer\";\n\nexport const useSize = (nodeRef, active = true, onChange) => {\n const [size, setSize] = useState({});\n const widthRef = useRef(null);\n const heightRef = useRef(null);\n const onChangeRef = useRef(null);\n onChangeRef.current = onChange;\n const callback = useCallback(({ width, height }) => {\n if (width !== widthRef.current || height !== heightRef.current) {\n widthRef.current = width;\n heightRef.current = height;\n setSize({ width, height });\n if (onChangeRef.current) {\n onChangeRef.current({ width, height });\n }\n }\n }, []);\n useResizeObserver(nodeRef, callback, active);\n useEffect(() => {\n //console.log(\"fake resized\");\n callback(nodeRef.current.getBoundingClientRect());\n }, [callback, nodeRef]);\n\n return size;\n};\n","import { useEffect, useRef, useMemo } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\nexport const useResizeObserver = (ref, callback, active = true) => {\n const callbackRef = useRef();\n callbackRef.current = callback;\n const resizeObserver = useMemo(\n () =>\n new ResizeObserver(entries => {\n //console.log(\"resized\");\n callbackRef.current(entries[0].contentRect);\n }),\n []\n );\n\n useEffect(() => {\n if (active && ref.current) {\n const el = ref.current;\n resizeObserver.observe(el);\n\n return () => {\n resizeObserver.unobserve(el);\n };\n }\n }, [ref, active, resizeObserver]);\n};\n","import { useMemo } from \"react\";\nimport { useSize } from \"./use-size\";\nimport { ITEM_INDEX_PROP } from \"./constants\";\nconst defaultItemSize = { width: 0, height: 0 };\n\nexport const useTrackMetrics = (trackRef, items, offsetProp) => {\n const trackSize = useSize(trackRef, true);\n const itemSizes = useMemo(() => {\n const sizes = trackSize.width\n ? Array.from(\n trackRef.current.querySelectorAll(`[${ITEM_INDEX_PROP}]`)\n ).reduce((res, el) => {\n const itemIndex = el.getAttribute(ITEM_INDEX_PROP);\n return {\n ...res,\n [itemIndex]: res[itemIndex] || {\n width: el.offsetWidth,\n height: el.offsetHeight\n }\n };\n }, {})\n : [];\n return items.map((_, i) => sizes[i] || defaultItemSize);\n }, [trackSize, items, trackRef]);\n const [offsets, contentSize, minHeight, maxHeight] = useMemo(() => {\n let minHeight = itemSizes[0].height;\n let maxHeight = itemSizes[0].height;\n let offset = 0;\n let offsets = [];\n for (let i = 0; i < items.length; i++) {\n let itemSize = itemSizes[i];\n if (itemSize) {\n offsets[i] = offset;\n offset = offset + itemSize[offsetProp];\n maxHeight = Math.max(maxHeight, itemSize.height);\n minHeight = Math.min(minHeight, itemSize.height);\n }\n }\n return [offsets, offset, minHeight, maxHeight];\n }, [items, itemSizes, offsetProp]);\n return useMemo(\n () => ({\n trackSize,\n contentSize,\n itemSizes,\n offsets,\n maxHeight,\n minHeight\n }),\n [trackSize, contentSize, itemSizes, offsets, minHeight, maxHeight]\n );\n};\n","import { useSpring } from \"react-spring\";\nimport { useCallback } from \"react\";\n\nexport const useClampedSpring = (initialValue = 0) => {\n const [props, _set, stop] = useSpring(() => ({\n value: initialValue\n }));\n const set = useCallback(\n ({ value, immediate = false, onStop }) => {\n let hasStopped = false;\n const handleStop = () => {\n if (!hasStopped) {\n hasStopped = true;\n stop();\n onStop && onStop();\n }\n };\n _set({\n to: { value },\n immediate,\n clamp: true,\n precicion: 0.2,\n onRest: handleStop,\n onFrame: obj => {\n if (\n !immediate &&\n obj.value !== value &&\n !(obj.value > value + 3 || obj.value < value - 3)\n ) {\n handleStop();\n }\n }\n });\n },\n [_set, stop]\n );\n return [props, set, stop];\n};\n","import { useRef } from 'react';\n\nimport { DIRECTION_X, DIRECTION_Y } from './constants';\nimport { useGesture } from 'react-use-gesture';\nimport { useClampedSpring } from './use-clamped-spring';\nimport { useFunction } from './use-function';\n\nexport const useAnimatedTrack = (\n direction,\n actions,\n dragTreshold = 300,\n inTransitionRef,\n allowNext = true,\n allowPrev = true,\n) => {\n // do all the animation here\n const [props, set, stop] = useClampedSpring(0);\n const internalPositionRef = useRef(null);\n const transitionToPosition = useFunction(\n (position, realPosition = null, immediate) => {\n if (!isNaN(position) && position !== internalPositionRef.current) {\n stop();\n actions.transitionStart();\n internalPositionRef.current = position;\n set({\n value: position,\n immediate,\n onStop: () => {\n if (typeof realPosition === 'number' && position !== realPosition) {\n internalPositionRef.current = realPosition;\n set({\n value: realPosition,\n immediate: true,\n onStop: () => {\n actions.transitionEnd();\n },\n });\n } else {\n actions.transitionEnd();\n }\n },\n });\n }\n },\n );\n const isDragging = useRef(false);\n const bind = useGesture({\n onHover: ({ hovering }) =>\n hovering ? actions.hoverStart() : actions.hoverEnd(),\n onDrag: ({\n movement, // * last gesture offset (xy - initial)\n distance, // offset distance\n // first, // * true when it's the first event\n last, // * true when it's the last event\n cancel,\n }) => {\n const movementObj = {\n [DIRECTION_X]: movement[0],\n [DIRECTION_Y]: movement[1],\n };\n const first = !isDragging.current && distance > 2;\n\n if (first) {\n if (inTransitionRef.current) {\n // never start drag when transitioning\n cancel();\n } else {\n isDragging.current = true;\n actions.transitionStart();\n }\n // Prevent scroll on touch screens while dragging:\n document.ontouchmove = function(e) {\n e.preventDefault();\n };\n } else if (last) {\n isDragging.current = false;\n document.ontouchmove = function() {\n return true;\n };\n let action = movementObj[direction] < 0 ? actions.next : actions.prev;\n if (\n distance < dragTreshold ||\n (action === actions.next && !allowNext) ||\n (action === actions.prev && !allowPrev)\n ) {\n set({\n value: internalPositionRef.current,\n onStop: actions.transitionEnd,\n });\n } else {\n actions.transitionEnd();\n action();\n }\n } else if (isDragging.current) {\n set({\n value: internalPositionRef.current + movementObj[direction],\n immediate: true,\n });\n }\n },\n });\n return [props.value, bind, transitionToPosition];\n};\n","import React, { useMemo, useRef, useLayoutEffect } from 'react';\nimport { animated } from 'react-spring';\nimport { useSliderState } from './Slider';\nimport SlideItem from './lib/SlideItem';\n\nimport {\n DIRECTION_X,\n SNAP_START,\n offsetProperties,\n translateProperties,\n} from './lib/constants';\nimport { useVirtualItems } from './lib/use-virtual-items';\nimport { getSnapOffset } from './lib/helpers';\nimport { useTrackMetrics } from './lib/use-track-metrics';\nimport { useVirtualIndex } from './lib/use-virtual-index';\nimport { useAnimatedTrack } from './lib/use-animated-track';\nimport { useSize } from './lib/use-size';\n\nexport const SlideTrack = ({\n infinite = false,\n snap = SNAP_START,\n direction = DIRECTION_X,\n dragTreshold = 300,\n renderItem,\n className,\n height = 'style',\n}) => {\n const offsetProp = offsetProperties[direction];\n const {\n index,\n items,\n increment,\n actions,\n inTransition,\n isLast,\n isFirst,\n } = useSliderState();\n const inTransitionRef = useRef(inTransition);\n inTransitionRef.current = inTransition;\n const [value, bind, transitionToPosition] = useAnimatedTrack(\n direction,\n actions,\n dragTreshold,\n inTransitionRef,\n infinite || !isLast,\n infinite || !isFirst,\n );\n const trackRef = useRef();\n const {\n trackSize,\n contentSize,\n itemSizes,\n offsets,\n minHeight,\n maxHeight,\n } = useTrackMetrics(trackRef, items, offsetProp);\n const virtualIndex = useVirtualIndex(items, index, increment, infinite);\n const virtualItems = useVirtualItems(\n items,\n contentSize,\n trackSize,\n offsets,\n infinite,\n offsetProp,\n );\n\n const virtualItem = useMemo(\n () => virtualItems.find(item => item.index === virtualIndex),\n [virtualIndex, virtualItems],\n );\n const realItem = useMemo(\n () => virtualItems.find(item => item.index === index),\n [index, virtualItems],\n );\n\n const virtualPosition = useMemo(() => {\n const itemSize = itemSizes[virtualItem.realIndex];\n if (itemSize === undefined || virtualItem.offset === undefined) return 0;\n return getSnapOffset(\n snap,\n offsetProp,\n virtualItem.offset,\n itemSize,\n trackSize,\n );\n }, [virtualItem, itemSizes, trackSize, offsetProp, snap]);\n const realPosition = useMemo(() => {\n const itemSize = itemSizes[realItem.realIndex];\n if (itemSize === undefined || realItem.offset === undefined) return 0;\n return getSnapOffset(\n snap,\n offsetProp,\n realItem.offset,\n itemSize,\n trackSize,\n );\n }, [realItem, itemSizes, trackSize, offsetProp, snap]);\n\n const lastVirtualIndex = useRef(null);\n useLayoutEffect(() => {\n const immediate =\n virtualIndex === null || virtualIndex === lastVirtualIndex.current;\n lastVirtualIndex.current = virtualIndex;\n transitionToPosition(virtualPosition, realPosition, immediate);\n }, [virtualIndex, virtualPosition, realPosition, transitionToPosition]);\n\n const heightStyle = useMemo(() => {\n switch (height) {\n case 'min':\n return { height: minHeight };\n case 'max':\n return { height: maxHeight };\n case 'item':\n return { height: itemSizes[realItem.realIndex].height };\n default:\n return {};\n }\n }, [height, minHeight, maxHeight, itemSizes, realItem]);\n\n return (\n 1 && bind())}\n style={{\n position: 'relative',\n visibility: isNaN(virtualPosition) ? 'hidden' : 'visible',\n userSelect: 'none',\n ...heightStyle,\n transform: value.interpolate(\n px => `${translateProperties[direction]}(${px}px)`,\n ),\n }}\n className={className}\n {...(inTransition && {\n onClick: e => e.preventDefault(),\n })}\n >\n {virtualItems.map(item => (\n \n ))}\n \n );\n};\n\nexport default SlideTrack;\n","import { useRef, useMemo } from \"react\";\nconst getVirtualIndex = (oldIndex, newIndex, count, isIncrement) => {\n if (isIncrement) {\n return newIndex < oldIndex ? oldIndex + 1 + (newIndex + 1) - 1 : newIndex;\n }\n return oldIndex < newIndex ? count - (newIndex + 1) - (0 + 1) : newIndex;\n};\nexport const useVirtualIndex = (items, index, increment, infinite) => {\n const latestIndexRef = useRef(index);\n return useMemo(() => {\n const latestIndex = latestIndexRef.current;\n if (index === latestIndex) {\n return latestIndex;\n }\n latestIndexRef.current = index;\n if (!infinite) return index;\n return getVirtualIndex(latestIndex, index, items.length, increment);\n }, [index, increment, infinite, items]);\n};\n","export const notInfinity = (n, fallback = 0) => (n === Infinity ? fallback : n);\n"],"sourceRoot":""}