{"version":3,"file":"react-spring-animated.esm.mjs","sources":["../../../../../node_modules/@react-spring/animated/dist/react-spring-animated.esm.js"],"sourcesContent":["import { defineHidden, is, createInterpolator, eachProp, hasFluidValue, getFluidValue, each, isAnimatedString, useForceUpdate, useIsomorphicLayoutEffect, addFluidObserver, removeFluidObserver, raf, useOnce } from '@react-spring/shared';\nimport * as React from 'react';\nimport { forwardRef, useRef, useCallback, useEffect } from 'react';\n\nconst $node = Symbol.for('Animated:node');\nconst isAnimated = value => !!value && value[$node] === value;\nconst getAnimated = owner => owner && owner[$node];\nconst setAnimated = (owner, node) => defineHidden(owner, $node, node);\nconst getPayload = owner => owner && owner[$node] && owner[$node].getPayload();\nclass Animated {\n  constructor() {\n    this.payload = void 0;\n    setAnimated(this, this);\n  }\n\n  getPayload() {\n    return this.payload || [];\n  }\n\n}\n\nclass AnimatedValue extends Animated {\n  constructor(_value) {\n    super();\n    this.done = true;\n    this.elapsedTime = void 0;\n    this.lastPosition = void 0;\n    this.lastVelocity = void 0;\n    this.v0 = void 0;\n    this.durationProgress = 0;\n    this._value = _value;\n\n    if (is.num(this._value)) {\n      this.lastPosition = this._value;\n    }\n  }\n\n  static create(value) {\n    return new AnimatedValue(value);\n  }\n\n  getPayload() {\n    return [this];\n  }\n\n  getValue() {\n    return this._value;\n  }\n\n  setValue(value, step) {\n    if (is.num(value)) {\n      this.lastPosition = value;\n\n      if (step) {\n        value = Math.round(value / step) * step;\n\n        if (this.done) {\n          this.lastPosition = value;\n        }\n      }\n    }\n\n    if (this._value === value) {\n      return false;\n    }\n\n    this._value = value;\n    return true;\n  }\n\n  reset() {\n    const {\n      done\n    } = this;\n    this.done = false;\n\n    if (is.num(this._value)) {\n      this.elapsedTime = 0;\n      this.durationProgress = 0;\n      this.lastPosition = this._value;\n      if (done) this.lastVelocity = null;\n      this.v0 = null;\n    }\n  }\n\n}\n\nclass AnimatedString extends AnimatedValue {\n  constructor(value) {\n    super(0);\n    this._string = null;\n    this._toString = void 0;\n    this._toString = createInterpolator({\n      output: [value, value]\n    });\n  }\n\n  static create(value) {\n    return new AnimatedString(value);\n  }\n\n  getValue() {\n    let value = this._string;\n    return value == null ? this._string = this._toString(this._value) : value;\n  }\n\n  setValue(value) {\n    if (is.str(value)) {\n      if (value == this._string) {\n        return false;\n      }\n\n      this._string = value;\n      this._value = 1;\n    } else if (super.setValue(value)) {\n      this._string = null;\n    } else {\n      return false;\n    }\n\n    return true;\n  }\n\n  reset(goal) {\n    if (goal) {\n      this._toString = createInterpolator({\n        output: [this.getValue(), goal]\n      });\n    }\n\n    this._value = 0;\n    super.reset();\n  }\n\n}\n\nconst TreeContext = {\n  dependencies: null\n};\n\nclass AnimatedObject extends Animated {\n  constructor(source) {\n    super();\n    this.source = source;\n    this.setValue(source);\n  }\n\n  getValue(animated) {\n    const values = {};\n    eachProp(this.source, (source, key) => {\n      if (isAnimated(source)) {\n        values[key] = source.getValue(animated);\n      } else if (hasFluidValue(source)) {\n        values[key] = getFluidValue(source);\n      } else if (!animated) {\n        values[key] = source;\n      }\n    });\n    return values;\n  }\n\n  setValue(source) {\n    this.source = source;\n    this.payload = this._makePayload(source);\n  }\n\n  reset() {\n    if (this.payload) {\n      each(this.payload, node => node.reset());\n    }\n  }\n\n  _makePayload(source) {\n    if (source) {\n      const payload = new Set();\n      eachProp(source, this._addToPayload, payload);\n      return Array.from(payload);\n    }\n  }\n\n  _addToPayload(source) {\n    if (TreeContext.dependencies && hasFluidValue(source)) {\n      TreeContext.dependencies.add(source);\n    }\n\n    const payload = getPayload(source);\n\n    if (payload) {\n      each(payload, node => this.add(node));\n    }\n  }\n\n}\n\nclass AnimatedArray extends AnimatedObject {\n  constructor(source) {\n    super(source);\n  }\n\n  static create(source) {\n    return new AnimatedArray(source);\n  }\n\n  getValue() {\n    return this.source.map(node => node.getValue());\n  }\n\n  setValue(source) {\n    const payload = this.getPayload();\n\n    if (source.length == payload.length) {\n      return payload.map((node, i) => node.setValue(source[i])).some(Boolean);\n    }\n\n    super.setValue(source.map(makeAnimated));\n    return true;\n  }\n\n}\n\nfunction makeAnimated(value) {\n  const nodeType = isAnimatedString(value) ? AnimatedString : AnimatedValue;\n  return nodeType.create(value);\n}\n\nfunction getAnimatedType(value) {\n  const parentNode = getAnimated(value);\n  return parentNode ? parentNode.constructor : is.arr(value) ? AnimatedArray : isAnimatedString(value) ? AnimatedString : AnimatedValue;\n}\n\nfunction _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\n\nconst withAnimated = (Component, host) => {\n  const hasInstance = !is.fun(Component) || Component.prototype && Component.prototype.isReactComponent;\n  return forwardRef((givenProps, givenRef) => {\n    const instanceRef = useRef(null);\n    const ref = hasInstance && useCallback(value => {\n      instanceRef.current = updateRef(givenRef, value);\n    }, [givenRef]);\n    const [props, deps] = getAnimatedState(givenProps, host);\n    const forceUpdate = useForceUpdate();\n\n    const callback = () => {\n      const instance = instanceRef.current;\n\n      if (hasInstance && !instance) {\n        return;\n      }\n\n      const didUpdate = instance ? host.applyAnimatedValues(instance, props.getValue(true)) : false;\n\n      if (didUpdate === false) {\n        forceUpdate();\n      }\n    };\n\n    const observer = new PropsObserver(callback, deps);\n    const observerRef = useRef();\n    useIsomorphicLayoutEffect(() => {\n      observerRef.current = observer;\n      each(deps, dep => addFluidObserver(dep, observer));\n      return () => {\n        if (observerRef.current) {\n          each(observerRef.current.deps, dep => removeFluidObserver(dep, observerRef.current));\n          raf.cancel(observerRef.current.update);\n        }\n      };\n    });\n    useEffect(callback, []);\n    useOnce(() => () => {\n      const observer = observerRef.current;\n      each(observer.deps, dep => removeFluidObserver(dep, observer));\n    });\n    const usedProps = host.getComponentProps(props.getValue());\n    return React.createElement(Component, _extends({}, usedProps, {\n      ref: ref\n    }));\n  });\n};\n\nclass PropsObserver {\n  constructor(update, deps) {\n    this.update = update;\n    this.deps = deps;\n  }\n\n  eventObserved(event) {\n    if (event.type == 'change') {\n      raf.write(this.update);\n    }\n  }\n\n}\n\nfunction getAnimatedState(props, host) {\n  const dependencies = new Set();\n  TreeContext.dependencies = dependencies;\n  if (props.style) props = _extends({}, props, {\n    style: host.createAnimatedStyle(props.style)\n  });\n  props = new AnimatedObject(props);\n  TreeContext.dependencies = null;\n  return [props, dependencies];\n}\n\nfunction updateRef(ref, value) {\n  if (ref) {\n    if (is.fun(ref)) ref(value);else ref.current = value;\n  }\n\n  return value;\n}\n\nconst cacheKey = Symbol.for('AnimatedComponent');\nconst createHost = (components, {\n  applyAnimatedValues: _applyAnimatedValues = () => false,\n  createAnimatedStyle: _createAnimatedStyle = style => new AnimatedObject(style),\n  getComponentProps: _getComponentProps = props => props\n} = {}) => {\n  const hostConfig = {\n    applyAnimatedValues: _applyAnimatedValues,\n    createAnimatedStyle: _createAnimatedStyle,\n    getComponentProps: _getComponentProps\n  };\n\n  const animated = Component => {\n    const displayName = getDisplayName(Component) || 'Anonymous';\n\n    if (is.str(Component)) {\n      Component = animated[Component] || (animated[Component] = withAnimated(Component, hostConfig));\n    } else {\n      Component = Component[cacheKey] || (Component[cacheKey] = withAnimated(Component, hostConfig));\n    }\n\n    Component.displayName = `Animated(${displayName})`;\n    return Component;\n  };\n\n  eachProp(components, (Component, key) => {\n    if (is.arr(components)) {\n      key = getDisplayName(Component);\n    }\n\n    animated[key] = animated(Component);\n  });\n  return {\n    animated\n  };\n};\n\nconst getDisplayName = arg => is.str(arg) ? arg : arg && is.str(arg.displayName) ? arg.displayName : is.fun(arg) && arg.name || null;\n\nexport { Animated, AnimatedArray, AnimatedObject, AnimatedString, AnimatedValue, createHost, getAnimated, getAnimatedType, getPayload, isAnimated, setAnimated };\n"],"names":["$node","Symbol","for","isAnimated","value","getAnimated","owner","setAnimated","node","defineHidden","getPayload","Animated","constructor","this","payload","AnimatedValue","_value","super","done","elapsedTime","lastPosition","lastVelocity","v0","durationProgress","is","num","create","getValue","setValue","step","Math","round","reset","AnimatedString","_string","_toString","createInterpolator","output","str","goal","TreeContext","dependencies","AnimatedObject","source","animated","values","eachProp","key","hasFluidValue","getFluidValue","_makePayload","each","Set","_addToPayload","Array","from","add","AnimatedArray","map","length","i","some","Boolean","makeAnimated","isAnimatedString","getAnimatedType","parentNode","arr","_extends","Object","assign","bind","target","arguments","prototype","hasOwnProperty","call","apply","withAnimated","Component","host","hasInstance","fun","isReactComponent","forwardRef","givenProps","givenRef","instanceRef","useRef","ref","useCallback","current","updateRef","props","deps","getAnimatedState","style","createAnimatedStyle","forceUpdate","useForceUpdate","callback","instance","applyAnimatedValues","observer","PropsObserver","observerRef","useIsomorphicLayoutEffect","dep","addFluidObserver","removeFluidObserver","raf","cancel","update","useEffect","useOnce","usedProps","getComponentProps","React","createElement","eventObserved","event","type","write","cacheKey","createHost","components","_applyAnimatedValues","_createAnimatedStyle","_getComponentProps","hostConfig","displayName","getDisplayName","arg","name"],"mappings":"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","x_google_ignoreList":[0]}