{"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.3f1a66d38161a19502c8.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        <animated.div key={key} style={props}>\n          {renderItem({\n            item,\n            i: 0,\n            isCurrent: true,\n            getItemProps: props => props,\n          })}\n        </animated.div>\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    <animated.div\n      ref={trackRef}\n      {...(virtualItems.length > 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        <SlideItem\n          key={item.index}\n          isClone={item.isClone}\n          item={item.item}\n          index={item.index}\n          realIndex={item.realIndex}\n          isCurrent={item.realIndex === index}\n          renderItem={renderItem}\n          direction={direction}\n          offset={item.offset}\n        />\n      ))}\n    </animated.div>\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":""}