{"ast":null,"code":"'use strict';\n\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n\n  _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n\n  return _setPrototypeOf(o, p);\n}\n\nimport AnimatedValue from \"../nodes/AnimatedValue\";\nimport AnimatedValueXY from \"../nodes/AnimatedValueXY\";\nimport AnimatedInterpolation from \"../nodes/AnimatedInterpolation\";\nimport Animation from \"./Animation\";\nimport SpringConfig from \"../SpringConfig\";\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from \"../NativeAnimatedHelper\";\n\nvar SpringAnimation = function (_Animation) {\n  _inheritsLoose(SpringAnimation, _Animation);\n\n  function SpringAnimation(config) {\n    var _config$overshootClam, _config$restDisplacem, _config$restSpeedThre, _config$velocity, _config$velocity2, _config$delay, _config$isInteraction, _config$iterations;\n\n    var _this;\n\n    _this = _Animation.call(this) || this;\n    _this._overshootClamping = (_config$overshootClam = config.overshootClamping) !== null && _config$overshootClam !== void 0 ? _config$overshootClam : false;\n    _this._restDisplacementThreshold = (_config$restDisplacem = config.restDisplacementThreshold) !== null && _config$restDisplacem !== void 0 ? _config$restDisplacem : 0.001;\n    _this._restSpeedThreshold = (_config$restSpeedThre = config.restSpeedThreshold) !== null && _config$restSpeedThre !== void 0 ? _config$restSpeedThre : 0.001;\n    _this._initialVelocity = (_config$velocity = config.velocity) !== null && _config$velocity !== void 0 ? _config$velocity : 0;\n    _this._lastVelocity = (_config$velocity2 = config.velocity) !== null && _config$velocity2 !== void 0 ? _config$velocity2 : 0;\n    _this._toValue = config.toValue;\n    _this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n    _this._useNativeDriver = shouldUseNativeDriver(config);\n    _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n    _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n\n    if (config.stiffness !== undefined || config.damping !== undefined || config.mass !== undefined) {\n      var _config$stiffness, _config$damping, _config$mass;\n\n      invariant(config.bounciness === undefined && config.speed === undefined && config.tension === undefined && config.friction === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n      _this._stiffness = (_config$stiffness = config.stiffness) !== null && _config$stiffness !== void 0 ? _config$stiffness : 100;\n      _this._damping = (_config$damping = config.damping) !== null && _config$damping !== void 0 ? _config$damping : 10;\n      _this._mass = (_config$mass = config.mass) !== null && _config$mass !== void 0 ? _config$mass : 1;\n    } else if (config.bounciness !== undefined || config.speed !== undefined) {\n      var _config$bounciness, _config$speed;\n\n      invariant(config.tension === undefined && config.friction === undefined && config.stiffness === undefined && config.damping === undefined && config.mass === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n      var springConfig = SpringConfig.fromBouncinessAndSpeed((_config$bounciness = config.bounciness) !== null && _config$bounciness !== void 0 ? _config$bounciness : 8, (_config$speed = config.speed) !== null && _config$speed !== void 0 ? _config$speed : 12);\n      _this._stiffness = springConfig.stiffness;\n      _this._damping = springConfig.damping;\n      _this._mass = 1;\n    } else {\n      var _config$tension, _config$friction;\n\n      var _springConfig = SpringConfig.fromOrigamiTensionAndFriction((_config$tension = config.tension) !== null && _config$tension !== void 0 ? _config$tension : 40, (_config$friction = config.friction) !== null && _config$friction !== void 0 ? _config$friction : 7);\n\n      _this._stiffness = _springConfig.stiffness;\n      _this._damping = _springConfig.damping;\n      _this._mass = 1;\n    }\n\n    invariant(_this._stiffness > 0, 'Stiffness value must be greater than 0');\n    invariant(_this._damping > 0, 'Damping value must be greater than 0');\n    invariant(_this._mass > 0, 'Mass value must be greater than 0');\n    return _this;\n  }\n\n  var _proto = SpringAnimation.prototype;\n\n  _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n    var _this$_initialVelocit;\n\n    return {\n      type: 'spring',\n      overshootClamping: this._overshootClamping,\n      restDisplacementThreshold: this._restDisplacementThreshold,\n      restSpeedThreshold: this._restSpeedThreshold,\n      stiffness: this._stiffness,\n      damping: this._damping,\n      mass: this._mass,\n      initialVelocity: (_this$_initialVelocit = this._initialVelocity) !== null && _this$_initialVelocit !== void 0 ? _this$_initialVelocit : this._lastVelocity,\n      toValue: this._toValue,\n      iterations: this.__iterations\n    };\n  };\n\n  _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n    var _this2 = this;\n\n    this.__active = true;\n    this._startPosition = fromValue;\n    this._lastPosition = this._startPosition;\n    this._onUpdate = onUpdate;\n    this.__onEnd = onEnd;\n    this._lastTime = Date.now();\n    this._frameTime = 0.0;\n\n    if (previousAnimation instanceof SpringAnimation) {\n      var internalState = previousAnimation.getInternalState();\n      this._lastPosition = internalState.lastPosition;\n      this._lastVelocity = internalState.lastVelocity;\n      this._initialVelocity = this._lastVelocity;\n      this._lastTime = internalState.lastTime;\n    }\n\n    var start = function start() {\n      if (_this2._useNativeDriver) {\n        _this2.__startNativeAnimation(animatedValue);\n      } else {\n        _this2.onUpdate();\n      }\n    };\n\n    if (this._delay) {\n      this._timeout = setTimeout(start, this._delay);\n    } else {\n      start();\n    }\n  };\n\n  _proto.getInternalState = function getInternalState() {\n    return {\n      lastPosition: this._lastPosition,\n      lastVelocity: this._lastVelocity,\n      lastTime: this._lastTime\n    };\n  };\n\n  _proto.onUpdate = function onUpdate() {\n    var MAX_STEPS = 64;\n    var now = Date.now();\n\n    if (now > this._lastTime + MAX_STEPS) {\n      now = this._lastTime + MAX_STEPS;\n    }\n\n    var deltaTime = (now - this._lastTime) / 1000;\n    this._frameTime += deltaTime;\n    var c = this._damping;\n    var m = this._mass;\n    var k = this._stiffness;\n    var v0 = -this._initialVelocity;\n    var zeta = c / (2 * Math.sqrt(k * m));\n    var omega0 = Math.sqrt(k / m);\n    var omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta);\n    var x0 = this._toValue - this._startPosition;\n    var position = 0.0;\n    var velocity = 0.0;\n    var t = this._frameTime;\n\n    if (zeta < 1) {\n      var envelope = Math.exp(-zeta * omega0 * t);\n      position = this._toValue - envelope * ((v0 + zeta * omega0 * x0) / omega1 * Math.sin(omega1 * t) + x0 * Math.cos(omega1 * t));\n      velocity = zeta * omega0 * envelope * (Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0) / omega1 + x0 * Math.cos(omega1 * t)) - envelope * (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) - omega1 * x0 * Math.sin(omega1 * t));\n    } else {\n      var _envelope = Math.exp(-omega0 * t);\n\n      position = this._toValue - _envelope * (x0 + (v0 + omega0 * x0) * t);\n      velocity = _envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n    }\n\n    this._lastTime = now;\n    this._lastPosition = position;\n    this._lastVelocity = velocity;\n\n    this._onUpdate(position);\n\n    if (!this.__active) {\n      return;\n    }\n\n    var isOvershooting = false;\n\n    if (this._overshootClamping && this._stiffness !== 0) {\n      if (this._startPosition < this._toValue) {\n        isOvershooting = position > this._toValue;\n      } else {\n        isOvershooting = position < this._toValue;\n      }\n    }\n\n    var isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n\n    var isDisplacement = true;\n\n    if (this._stiffness !== 0) {\n      isDisplacement = Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n    }\n\n    if (isOvershooting || isVelocity && isDisplacement) {\n      if (this._stiffness !== 0) {\n        this._lastPosition = this._toValue;\n        this._lastVelocity = 0;\n\n        this._onUpdate(this._toValue);\n      }\n\n      this.__debouncedOnEnd({\n        finished: true\n      });\n\n      return;\n    }\n\n    this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n  };\n\n  _proto.stop = function stop() {\n    _Animation.prototype.stop.call(this);\n\n    this.__active = false;\n    clearTimeout(this._timeout);\n    global.cancelAnimationFrame(this._animationFrame);\n\n    this.__debouncedOnEnd({\n      finished: false\n    });\n  };\n\n  return SpringAnimation;\n}(Animation);\n\nexport default SpringAnimation;","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/react-native-web/dist/vendor/react-native/Animated/animations/SpringAnimation.js"],"names":["_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","__proto__","AnimatedValue","AnimatedValueXY","AnimatedInterpolation","Animation","SpringConfig","invariant","shouldUseNativeDriver","SpringAnimation","_Animation","config","_config$overshootClam","_config$restDisplacem","_config$restSpeedThre","_config$velocity","_config$velocity2","_config$delay","_config$isInteraction","_config$iterations","_this","call","_overshootClamping","overshootClamping","_restDisplacementThreshold","restDisplacementThreshold","_restSpeedThreshold","restSpeedThreshold","_initialVelocity","velocity","_lastVelocity","_toValue","toValue","_delay","delay","_useNativeDriver","__isInteraction","isInteraction","__iterations","iterations","stiffness","undefined","damping","mass","_config$stiffness","_config$damping","_config$mass","bounciness","speed","tension","friction","_stiffness","_damping","_mass","_config$bounciness","_config$speed","springConfig","fromBouncinessAndSpeed","_config$tension","_config$friction","_springConfig","fromOrigamiTensionAndFriction","_proto","__getNativeAnimationConfig","_this$_initialVelocit","type","initialVelocity","start","fromValue","onUpdate","onEnd","previousAnimation","animatedValue","_this2","__active","_startPosition","_lastPosition","_onUpdate","__onEnd","_lastTime","Date","now","_frameTime","internalState","getInternalState","lastPosition","lastVelocity","lastTime","__startNativeAnimation","_timeout","setTimeout","MAX_STEPS","deltaTime","c","m","k","v0","zeta","Math","sqrt","omega0","omega1","x0","position","t","envelope","exp","sin","cos","_envelope","isOvershooting","isVelocity","abs","isDisplacement","__debouncedOnEnd","finished","_animationFrame","requestAnimationFrame","bind","stop","clearTimeout","global","cancelAnimationFrame"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n * @format\n */\n'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport AnimatedValue from '../nodes/AnimatedValue';\nimport AnimatedValueXY from '../nodes/AnimatedValueXY';\nimport AnimatedInterpolation from '../nodes/AnimatedInterpolation';\nimport Animation from './Animation';\nimport SpringConfig from '../SpringConfig';\nimport invariant from 'fbjs/lib/invariant';\nimport { shouldUseNativeDriver } from '../NativeAnimatedHelper';\n\nvar SpringAnimation = /*#__PURE__*/function (_Animation) {\n  _inheritsLoose(SpringAnimation, _Animation);\n\n  function SpringAnimation(config) {\n    var _config$overshootClam, _config$restDisplacem, _config$restSpeedThre, _config$velocity, _config$velocity2, _config$delay, _config$isInteraction, _config$iterations;\n\n    var _this;\n\n    _this = _Animation.call(this) || this;\n    _this._overshootClamping = (_config$overshootClam = config.overshootClamping) !== null && _config$overshootClam !== void 0 ? _config$overshootClam : false;\n    _this._restDisplacementThreshold = (_config$restDisplacem = config.restDisplacementThreshold) !== null && _config$restDisplacem !== void 0 ? _config$restDisplacem : 0.001;\n    _this._restSpeedThreshold = (_config$restSpeedThre = config.restSpeedThreshold) !== null && _config$restSpeedThre !== void 0 ? _config$restSpeedThre : 0.001;\n    _this._initialVelocity = (_config$velocity = config.velocity) !== null && _config$velocity !== void 0 ? _config$velocity : 0;\n    _this._lastVelocity = (_config$velocity2 = config.velocity) !== null && _config$velocity2 !== void 0 ? _config$velocity2 : 0;\n    _this._toValue = config.toValue;\n    _this._delay = (_config$delay = config.delay) !== null && _config$delay !== void 0 ? _config$delay : 0;\n    _this._useNativeDriver = shouldUseNativeDriver(config);\n    _this.__isInteraction = (_config$isInteraction = config.isInteraction) !== null && _config$isInteraction !== void 0 ? _config$isInteraction : !_this._useNativeDriver;\n    _this.__iterations = (_config$iterations = config.iterations) !== null && _config$iterations !== void 0 ? _config$iterations : 1;\n\n    if (config.stiffness !== undefined || config.damping !== undefined || config.mass !== undefined) {\n      var _config$stiffness, _config$damping, _config$mass;\n\n      invariant(config.bounciness === undefined && config.speed === undefined && config.tension === undefined && config.friction === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n      _this._stiffness = (_config$stiffness = config.stiffness) !== null && _config$stiffness !== void 0 ? _config$stiffness : 100;\n      _this._damping = (_config$damping = config.damping) !== null && _config$damping !== void 0 ? _config$damping : 10;\n      _this._mass = (_config$mass = config.mass) !== null && _config$mass !== void 0 ? _config$mass : 1;\n    } else if (config.bounciness !== undefined || config.speed !== undefined) {\n      var _config$bounciness, _config$speed;\n\n      // Convert the origami bounciness/speed values to stiffness/damping\n      // We assume mass is 1.\n      invariant(config.tension === undefined && config.friction === undefined && config.stiffness === undefined && config.damping === undefined && config.mass === undefined, 'You can define one of bounciness/speed, tension/friction, or stiffness/damping/mass, but not more than one');\n      var springConfig = SpringConfig.fromBouncinessAndSpeed((_config$bounciness = config.bounciness) !== null && _config$bounciness !== void 0 ? _config$bounciness : 8, (_config$speed = config.speed) !== null && _config$speed !== void 0 ? _config$speed : 12);\n      _this._stiffness = springConfig.stiffness;\n      _this._damping = springConfig.damping;\n      _this._mass = 1;\n    } else {\n      var _config$tension, _config$friction;\n\n      // Convert the origami tension/friction values to stiffness/damping\n      // We assume mass is 1.\n      var _springConfig = SpringConfig.fromOrigamiTensionAndFriction((_config$tension = config.tension) !== null && _config$tension !== void 0 ? _config$tension : 40, (_config$friction = config.friction) !== null && _config$friction !== void 0 ? _config$friction : 7);\n\n      _this._stiffness = _springConfig.stiffness;\n      _this._damping = _springConfig.damping;\n      _this._mass = 1;\n    }\n\n    invariant(_this._stiffness > 0, 'Stiffness value must be greater than 0');\n    invariant(_this._damping > 0, 'Damping value must be greater than 0');\n    invariant(_this._mass > 0, 'Mass value must be greater than 0');\n    return _this;\n  }\n\n  var _proto = SpringAnimation.prototype;\n\n  _proto.__getNativeAnimationConfig = function __getNativeAnimationConfig() {\n    var _this$_initialVelocit;\n\n    return {\n      type: 'spring',\n      overshootClamping: this._overshootClamping,\n      restDisplacementThreshold: this._restDisplacementThreshold,\n      restSpeedThreshold: this._restSpeedThreshold,\n      stiffness: this._stiffness,\n      damping: this._damping,\n      mass: this._mass,\n      initialVelocity: (_this$_initialVelocit = this._initialVelocity) !== null && _this$_initialVelocit !== void 0 ? _this$_initialVelocit : this._lastVelocity,\n      toValue: this._toValue,\n      iterations: this.__iterations\n    };\n  };\n\n  _proto.start = function start(fromValue, onUpdate, onEnd, previousAnimation, animatedValue) {\n    var _this2 = this;\n\n    this.__active = true;\n    this._startPosition = fromValue;\n    this._lastPosition = this._startPosition;\n    this._onUpdate = onUpdate;\n    this.__onEnd = onEnd;\n    this._lastTime = Date.now();\n    this._frameTime = 0.0;\n\n    if (previousAnimation instanceof SpringAnimation) {\n      var internalState = previousAnimation.getInternalState();\n      this._lastPosition = internalState.lastPosition;\n      this._lastVelocity = internalState.lastVelocity; // Set the initial velocity to the last velocity\n\n      this._initialVelocity = this._lastVelocity;\n      this._lastTime = internalState.lastTime;\n    }\n\n    var start = function start() {\n      if (_this2._useNativeDriver) {\n        _this2.__startNativeAnimation(animatedValue);\n      } else {\n        _this2.onUpdate();\n      }\n    }; //  If this._delay is more than 0, we start after the timeout.\n\n\n    if (this._delay) {\n      this._timeout = setTimeout(start, this._delay);\n    } else {\n      start();\n    }\n  };\n\n  _proto.getInternalState = function getInternalState() {\n    return {\n      lastPosition: this._lastPosition,\n      lastVelocity: this._lastVelocity,\n      lastTime: this._lastTime\n    };\n  }\n  /**\n   * This spring model is based off of a damped harmonic oscillator\n   * (https://en.wikipedia.org/wiki/Harmonic_oscillator#Damped_harmonic_oscillator).\n   *\n   * We use the closed form of the second order differential equation:\n   *\n   * x'' + (2ζ⍵_0)x' + ⍵^2x = 0\n   *\n   * where\n   *    ⍵_0 = √(k / m) (undamped angular frequency of the oscillator),\n   *    ζ = c / 2√mk (damping ratio),\n   *    c = damping constant\n   *    k = stiffness\n   *    m = mass\n   *\n   * The derivation of the closed form is described in detail here:\n   * http://planetmath.org/sites/default/files/texpdf/39745.pdf\n   *\n   * This algorithm happens to match the algorithm used by CASpringAnimation,\n   * a QuartzCore (iOS) API that creates spring animations.\n   */\n  ;\n\n  _proto.onUpdate = function onUpdate() {\n    // If for some reason we lost a lot of frames (e.g. process large payload or\n    // stopped in the debugger), we only advance by 4 frames worth of\n    // computation and will continue on the next frame. It's better to have it\n    // running at faster speed than jumping to the end.\n    var MAX_STEPS = 64;\n    var now = Date.now();\n\n    if (now > this._lastTime + MAX_STEPS) {\n      now = this._lastTime + MAX_STEPS;\n    }\n\n    var deltaTime = (now - this._lastTime) / 1000;\n    this._frameTime += deltaTime;\n    var c = this._damping;\n    var m = this._mass;\n    var k = this._stiffness;\n    var v0 = -this._initialVelocity;\n    var zeta = c / (2 * Math.sqrt(k * m)); // damping ratio\n\n    var omega0 = Math.sqrt(k / m); // undamped angular frequency of the oscillator (rad/ms)\n\n    var omega1 = omega0 * Math.sqrt(1.0 - zeta * zeta); // exponential decay\n\n    var x0 = this._toValue - this._startPosition; // calculate the oscillation from x0 = 1 to x = 0\n\n    var position = 0.0;\n    var velocity = 0.0;\n    var t = this._frameTime;\n\n    if (zeta < 1) {\n      // Under damped\n      var envelope = Math.exp(-zeta * omega0 * t);\n      position = this._toValue - envelope * ((v0 + zeta * omega0 * x0) / omega1 * Math.sin(omega1 * t) + x0 * Math.cos(omega1 * t)); // This looks crazy -- it's actually just the derivative of the\n      // oscillation function\n\n      velocity = zeta * omega0 * envelope * (Math.sin(omega1 * t) * (v0 + zeta * omega0 * x0) / omega1 + x0 * Math.cos(omega1 * t)) - envelope * (Math.cos(omega1 * t) * (v0 + zeta * omega0 * x0) - omega1 * x0 * Math.sin(omega1 * t));\n    } else {\n      // Critically damped\n      var _envelope = Math.exp(-omega0 * t);\n\n      position = this._toValue - _envelope * (x0 + (v0 + omega0 * x0) * t);\n      velocity = _envelope * (v0 * (t * omega0 - 1) + t * x0 * (omega0 * omega0));\n    }\n\n    this._lastTime = now;\n    this._lastPosition = position;\n    this._lastVelocity = velocity;\n\n    this._onUpdate(position);\n\n    if (!this.__active) {\n      // a listener might have stopped us in _onUpdate\n      return;\n    } // Conditions for stopping the spring animation\n\n\n    var isOvershooting = false;\n\n    if (this._overshootClamping && this._stiffness !== 0) {\n      if (this._startPosition < this._toValue) {\n        isOvershooting = position > this._toValue;\n      } else {\n        isOvershooting = position < this._toValue;\n      }\n    }\n\n    var isVelocity = Math.abs(velocity) <= this._restSpeedThreshold;\n\n    var isDisplacement = true;\n\n    if (this._stiffness !== 0) {\n      isDisplacement = Math.abs(this._toValue - position) <= this._restDisplacementThreshold;\n    }\n\n    if (isOvershooting || isVelocity && isDisplacement) {\n      if (this._stiffness !== 0) {\n        // Ensure that we end up with a round value\n        this._lastPosition = this._toValue;\n        this._lastVelocity = 0;\n\n        this._onUpdate(this._toValue);\n      }\n\n      this.__debouncedOnEnd({\n        finished: true\n      });\n\n      return;\n    }\n\n    this._animationFrame = requestAnimationFrame(this.onUpdate.bind(this));\n  };\n\n  _proto.stop = function stop() {\n    _Animation.prototype.stop.call(this);\n\n    this.__active = false;\n    clearTimeout(this._timeout);\n    global.cancelAnimationFrame(this._animationFrame);\n\n    this.__debouncedOnEnd({\n      finished: false\n    });\n  };\n\n  return SpringAnimation;\n}(Animation);\n\nexport default SpringAnimation;"]},"metadata":{},"sourceType":"module"}