{"ast":null,"code":"'use strict';\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}\n\nimport { AnimatedEvent, attachNativeEvent } from \"./AnimatedEvent\";\nimport AnimatedAddition from \"./nodes/AnimatedAddition\";\nimport AnimatedDiffClamp from \"./nodes/AnimatedDiffClamp\";\nimport AnimatedDivision from \"./nodes/AnimatedDivision\";\nimport AnimatedInterpolation from \"./nodes/AnimatedInterpolation\";\nimport AnimatedModulo from \"./nodes/AnimatedModulo\";\nimport AnimatedMultiplication from \"./nodes/AnimatedMultiplication\";\nimport AnimatedNode from \"./nodes/AnimatedNode\";\nimport AnimatedProps from \"./nodes/AnimatedProps\";\nimport AnimatedSubtraction from \"./nodes/AnimatedSubtraction\";\nimport AnimatedTracking from \"./nodes/AnimatedTracking\";\nimport AnimatedValue from \"./nodes/AnimatedValue\";\nimport AnimatedValueXY from \"./nodes/AnimatedValueXY\";\nimport DecayAnimation from \"./animations/DecayAnimation\";\nimport SpringAnimation from \"./animations/SpringAnimation\";\nimport TimingAnimation from \"./animations/TimingAnimation\";\nimport createAnimatedComponent from \"./createAnimatedComponent\";\n\nvar add = function add(a, b) {\n  return new AnimatedAddition(a, b);\n};\n\nvar subtract = function subtract(a, b) {\n  return new AnimatedSubtraction(a, b);\n};\n\nvar divide = function divide(a, b) {\n  return new AnimatedDivision(a, b);\n};\n\nvar multiply = function multiply(a, b) {\n  return new AnimatedMultiplication(a, b);\n};\n\nvar modulo = function modulo(a, modulus) {\n  return new AnimatedModulo(a, modulus);\n};\n\nvar diffClamp = function diffClamp(a, min, max) {\n  return new AnimatedDiffClamp(a, min, max);\n};\n\nvar _combineCallbacks = function _combineCallbacks(callback, config) {\n  if (callback && config.onComplete) {\n    return function () {\n      config.onComplete && config.onComplete.apply(config, arguments);\n      callback && callback.apply(void 0, arguments);\n    };\n  } else {\n    return callback || config.onComplete;\n  }\n};\n\nvar maybeVectorAnim = function maybeVectorAnim(value, config, anim) {\n  if (value instanceof AnimatedValueXY) {\n    var configX = _objectSpread({}, config);\n\n    var configY = _objectSpread({}, config);\n\n    for (var key in config) {\n      var _config$key = config[key],\n          x = _config$key.x,\n          y = _config$key.y;\n\n      if (x !== undefined && y !== undefined) {\n        configX[key] = x;\n        configY[key] = y;\n      }\n    }\n\n    var aX = anim(value.x, configX);\n    var aY = anim(value.y, configY);\n    return parallel([aX, aY], {\n      stopTogether: false\n    });\n  }\n\n  return null;\n};\n\nvar spring = function spring(value, config) {\n  var _start = function start(animatedValue, configuration, callback) {\n    callback = _combineCallbacks(callback, configuration);\n    var singleValue = animatedValue;\n    var singleConfig = configuration;\n    singleValue.stopTracking();\n\n    if (configuration.toValue instanceof AnimatedNode) {\n      singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, SpringAnimation, singleConfig, callback));\n    } else {\n      singleValue.animate(new SpringAnimation(singleConfig), callback);\n    }\n  };\n\n  return maybeVectorAnim(value, config, spring) || {\n    start: function start(callback) {\n      _start(value, config, callback);\n    },\n    stop: function stop() {\n      value.stopAnimation();\n    },\n    reset: function reset() {\n      value.resetAnimation();\n    },\n    _startNativeLoop: function _startNativeLoop(iterations) {\n      var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n        iterations: iterations\n      });\n\n      _start(value, singleConfig);\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return config.useNativeDriver || false;\n    }\n  };\n};\n\nvar timing = function timing(value, config) {\n  var _start2 = function start(animatedValue, configuration, callback) {\n    callback = _combineCallbacks(callback, configuration);\n    var singleValue = animatedValue;\n    var singleConfig = configuration;\n    singleValue.stopTracking();\n\n    if (configuration.toValue instanceof AnimatedNode) {\n      singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, TimingAnimation, singleConfig, callback));\n    } else {\n      singleValue.animate(new TimingAnimation(singleConfig), callback);\n    }\n  };\n\n  return maybeVectorAnim(value, config, timing) || {\n    start: function start(callback) {\n      _start2(value, config, callback);\n    },\n    stop: function stop() {\n      value.stopAnimation();\n    },\n    reset: function reset() {\n      value.resetAnimation();\n    },\n    _startNativeLoop: function _startNativeLoop(iterations) {\n      var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n        iterations: iterations\n      });\n\n      _start2(value, singleConfig);\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return config.useNativeDriver || false;\n    }\n  };\n};\n\nvar decay = function decay(value, config) {\n  var _start3 = function start(animatedValue, configuration, callback) {\n    callback = _combineCallbacks(callback, configuration);\n    var singleValue = animatedValue;\n    var singleConfig = configuration;\n    singleValue.stopTracking();\n    singleValue.animate(new DecayAnimation(singleConfig), callback);\n  };\n\n  return maybeVectorAnim(value, config, decay) || {\n    start: function start(callback) {\n      _start3(value, config, callback);\n    },\n    stop: function stop() {\n      value.stopAnimation();\n    },\n    reset: function reset() {\n      value.resetAnimation();\n    },\n    _startNativeLoop: function _startNativeLoop(iterations) {\n      var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n        iterations: iterations\n      });\n\n      _start3(value, singleConfig);\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return config.useNativeDriver || false;\n    }\n  };\n};\n\nvar sequence = function sequence(animations) {\n  var current = 0;\n  return {\n    start: function start(callback) {\n      var onComplete = function onComplete(result) {\n        if (!result.finished) {\n          callback && callback(result);\n          return;\n        }\n\n        current++;\n\n        if (current === animations.length) {\n          callback && callback(result);\n          return;\n        }\n\n        animations[current].start(onComplete);\n      };\n\n      if (animations.length === 0) {\n        callback && callback({\n          finished: true\n        });\n      } else {\n        animations[current].start(onComplete);\n      }\n    },\n    stop: function stop() {\n      if (current < animations.length) {\n        animations[current].stop();\n      }\n    },\n    reset: function reset() {\n      animations.forEach(function (animation, idx) {\n        if (idx <= current) {\n          animation.reset();\n        }\n      });\n      current = 0;\n    },\n    _startNativeLoop: function _startNativeLoop() {\n      throw new Error('Loops run using the native driver cannot contain Animated.sequence animations');\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return false;\n    }\n  };\n};\n\nvar parallel = function parallel(animations, config) {\n  var doneCount = 0;\n  var hasEnded = {};\n  var stopTogether = !(config && config.stopTogether === false);\n  var result = {\n    start: function start(callback) {\n      if (doneCount === animations.length) {\n        callback && callback({\n          finished: true\n        });\n        return;\n      }\n\n      animations.forEach(function (animation, idx) {\n        var cb = function cb(endResult) {\n          hasEnded[idx] = true;\n          doneCount++;\n\n          if (doneCount === animations.length) {\n            doneCount = 0;\n            callback && callback(endResult);\n            return;\n          }\n\n          if (!endResult.finished && stopTogether) {\n            result.stop();\n          }\n        };\n\n        if (!animation) {\n          cb({\n            finished: true\n          });\n        } else {\n          animation.start(cb);\n        }\n      });\n    },\n    stop: function stop() {\n      animations.forEach(function (animation, idx) {\n        !hasEnded[idx] && animation.stop();\n        hasEnded[idx] = true;\n      });\n    },\n    reset: function reset() {\n      animations.forEach(function (animation, idx) {\n        animation.reset();\n        hasEnded[idx] = false;\n        doneCount = 0;\n      });\n    },\n    _startNativeLoop: function _startNativeLoop() {\n      throw new Error('Loops run using the native driver cannot contain Animated.parallel animations');\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return false;\n    }\n  };\n  return result;\n};\n\nvar delay = function delay(time) {\n  return timing(new AnimatedValue(0), {\n    toValue: 0,\n    delay: time,\n    duration: 0,\n    useNativeDriver: false\n  });\n};\n\nvar stagger = function stagger(time, animations) {\n  return parallel(animations.map(function (animation, i) {\n    return sequence([delay(time * i), animation]);\n  }));\n};\n\nvar loop = function loop(animation, _temp) {\n  var _ref = _temp === void 0 ? {} : _temp,\n      _ref$iterations = _ref.iterations,\n      iterations = _ref$iterations === void 0 ? -1 : _ref$iterations,\n      _ref$resetBeforeItera = _ref.resetBeforeIteration,\n      resetBeforeIteration = _ref$resetBeforeItera === void 0 ? true : _ref$resetBeforeItera;\n\n  var isFinished = false;\n  var iterationsSoFar = 0;\n  return {\n    start: function start(callback) {\n      var restart = function restart(result) {\n        if (result === void 0) {\n          result = {\n            finished: true\n          };\n        }\n\n        if (isFinished || iterationsSoFar === iterations || result.finished === false) {\n          callback && callback(result);\n        } else {\n          iterationsSoFar++;\n          resetBeforeIteration && animation.reset();\n          animation.start(restart);\n        }\n      };\n\n      if (!animation || iterations === 0) {\n        callback && callback({\n          finished: true\n        });\n      } else {\n        if (animation._isUsingNativeDriver()) {\n          animation._startNativeLoop(iterations);\n        } else {\n          restart();\n        }\n      }\n    },\n    stop: function stop() {\n      isFinished = true;\n      animation.stop();\n    },\n    reset: function reset() {\n      iterationsSoFar = 0;\n      isFinished = false;\n      animation.reset();\n    },\n    _startNativeLoop: function _startNativeLoop() {\n      throw new Error('Loops run using the native driver cannot contain Animated.loop animations');\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return animation._isUsingNativeDriver();\n    }\n  };\n};\n\nfunction forkEvent(event, listener) {\n  if (!event) {\n    return listener;\n  } else if (event instanceof AnimatedEvent) {\n    event.__addListener(listener);\n\n    return event;\n  } else {\n    return function () {\n      typeof event === 'function' && event.apply(void 0, arguments);\n      listener.apply(void 0, arguments);\n    };\n  }\n}\n\nfunction unforkEvent(event, listener) {\n  if (event && event instanceof AnimatedEvent) {\n    event.__removeListener(listener);\n  }\n}\n\nvar event = function event(argMapping, config) {\n  var animatedEvent = new AnimatedEvent(argMapping, config);\n\n  if (animatedEvent.__isNative) {\n    return animatedEvent;\n  } else {\n    return animatedEvent.__getHandler();\n  }\n};\n\nexport default {\n  Value: AnimatedValue,\n  ValueXY: AnimatedValueXY,\n  Interpolation: AnimatedInterpolation,\n  Node: AnimatedNode,\n  decay: decay,\n  timing: timing,\n  spring: spring,\n  add: add,\n  subtract: subtract,\n  divide: divide,\n  multiply: multiply,\n  modulo: modulo,\n  diffClamp: diffClamp,\n  delay: delay,\n  sequence: sequence,\n  parallel: parallel,\n  stagger: stagger,\n  loop: loop,\n  event: event,\n  createAnimatedComponent: createAnimatedComponent,\n  attachNativeEvent: attachNativeEvent,\n  forkEvent: forkEvent,\n  unforkEvent: unforkEvent,\n  Event: AnimatedEvent,\n  __PropsOnlyForTests: AnimatedProps\n};","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/react-native-web/dist/vendor/react-native/Animated/AnimatedImplementation.js"],"names":["ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","value","configurable","writable","AnimatedEvent","attachNativeEvent","AnimatedAddition","AnimatedDiffClamp","AnimatedDivision","AnimatedInterpolation","AnimatedModulo","AnimatedMultiplication","AnimatedNode","AnimatedProps","AnimatedSubtraction","AnimatedTracking","AnimatedValue","AnimatedValueXY","DecayAnimation","SpringAnimation","TimingAnimation","createAnimatedComponent","add","a","b","subtract","divide","multiply","modulo","modulus","diffClamp","min","max","_combineCallbacks","callback","config","onComplete","maybeVectorAnim","anim","configX","configY","_config$key","x","y","undefined","aX","aY","parallel","stopTogether","spring","_start","start","animatedValue","configuration","singleValue","singleConfig","stopTracking","toValue","track","animate","stop","stopAnimation","reset","resetAnimation","_startNativeLoop","iterations","_isUsingNativeDriver","useNativeDriver","timing","_start2","decay","_start3","sequence","animations","current","result","finished","animation","idx","Error","doneCount","hasEnded","cb","endResult","delay","time","duration","stagger","map","loop","_temp","_ref","_ref$iterations","_ref$resetBeforeItera","resetBeforeIteration","isFinished","iterationsSoFar","restart","forkEvent","event","listener","__addListener","unforkEvent","__removeListener","argMapping","animatedEvent","__isNative","__getHandler","Value","ValueXY","Interpolation","Node","Event","__PropsOnlyForTests"],"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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { AnimatedEvent, attachNativeEvent } from './AnimatedEvent';\nimport AnimatedAddition from './nodes/AnimatedAddition';\nimport AnimatedDiffClamp from './nodes/AnimatedDiffClamp';\nimport AnimatedDivision from './nodes/AnimatedDivision';\nimport AnimatedInterpolation from './nodes/AnimatedInterpolation';\nimport AnimatedModulo from './nodes/AnimatedModulo';\nimport AnimatedMultiplication from './nodes/AnimatedMultiplication';\nimport AnimatedNode from './nodes/AnimatedNode';\nimport AnimatedProps from './nodes/AnimatedProps';\nimport AnimatedSubtraction from './nodes/AnimatedSubtraction';\nimport AnimatedTracking from './nodes/AnimatedTracking';\nimport AnimatedValue from './nodes/AnimatedValue';\nimport AnimatedValueXY from './nodes/AnimatedValueXY';\nimport DecayAnimation from './animations/DecayAnimation';\nimport SpringAnimation from './animations/SpringAnimation';\nimport TimingAnimation from './animations/TimingAnimation';\nimport createAnimatedComponent from './createAnimatedComponent';\n\nvar add = function add(a, b) {\n  return new AnimatedAddition(a, b);\n};\n\nvar subtract = function subtract(a, b) {\n  return new AnimatedSubtraction(a, b);\n};\n\nvar divide = function divide(a, b) {\n  return new AnimatedDivision(a, b);\n};\n\nvar multiply = function multiply(a, b) {\n  return new AnimatedMultiplication(a, b);\n};\n\nvar modulo = function modulo(a, modulus) {\n  return new AnimatedModulo(a, modulus);\n};\n\nvar diffClamp = function diffClamp(a, min, max) {\n  return new AnimatedDiffClamp(a, min, max);\n};\n\nvar _combineCallbacks = function _combineCallbacks(callback, config) {\n  if (callback && config.onComplete) {\n    return function () {\n      config.onComplete && config.onComplete.apply(config, arguments);\n      callback && callback.apply(void 0, arguments);\n    };\n  } else {\n    return callback || config.onComplete;\n  }\n};\n\nvar maybeVectorAnim = function maybeVectorAnim(value, config, anim) {\n  if (value instanceof AnimatedValueXY) {\n    var configX = _objectSpread({}, config);\n\n    var configY = _objectSpread({}, config);\n\n    for (var key in config) {\n      var _config$key = config[key],\n          x = _config$key.x,\n          y = _config$key.y;\n\n      if (x !== undefined && y !== undefined) {\n        configX[key] = x;\n        configY[key] = y;\n      }\n    }\n\n    var aX = anim(value.x, configX);\n    var aY = anim(value.y, configY); // We use `stopTogether: false` here because otherwise tracking will break\n    // because the second animation will get stopped before it can update.\n\n    return parallel([aX, aY], {\n      stopTogether: false\n    });\n  }\n\n  return null;\n};\n\nvar spring = function spring(value, config) {\n  var _start = function start(animatedValue, configuration, callback) {\n    callback = _combineCallbacks(callback, configuration);\n    var singleValue = animatedValue;\n    var singleConfig = configuration;\n    singleValue.stopTracking();\n\n    if (configuration.toValue instanceof AnimatedNode) {\n      singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, SpringAnimation, singleConfig, callback));\n    } else {\n      singleValue.animate(new SpringAnimation(singleConfig), callback);\n    }\n  };\n\n  return maybeVectorAnim(value, config, spring) || {\n    start: function start(callback) {\n      _start(value, config, callback);\n    },\n    stop: function stop() {\n      value.stopAnimation();\n    },\n    reset: function reset() {\n      value.resetAnimation();\n    },\n    _startNativeLoop: function _startNativeLoop(iterations) {\n      var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n        iterations: iterations\n      });\n\n      _start(value, singleConfig);\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return config.useNativeDriver || false;\n    }\n  };\n};\n\nvar timing = function timing(value, config) {\n  var _start2 = function start(animatedValue, configuration, callback) {\n    callback = _combineCallbacks(callback, configuration);\n    var singleValue = animatedValue;\n    var singleConfig = configuration;\n    singleValue.stopTracking();\n\n    if (configuration.toValue instanceof AnimatedNode) {\n      singleValue.track(new AnimatedTracking(singleValue, configuration.toValue, TimingAnimation, singleConfig, callback));\n    } else {\n      singleValue.animate(new TimingAnimation(singleConfig), callback);\n    }\n  };\n\n  return maybeVectorAnim(value, config, timing) || {\n    start: function start(callback) {\n      _start2(value, config, callback);\n    },\n    stop: function stop() {\n      value.stopAnimation();\n    },\n    reset: function reset() {\n      value.resetAnimation();\n    },\n    _startNativeLoop: function _startNativeLoop(iterations) {\n      var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n        iterations: iterations\n      });\n\n      _start2(value, singleConfig);\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return config.useNativeDriver || false;\n    }\n  };\n};\n\nvar decay = function decay(value, config) {\n  var _start3 = function start(animatedValue, configuration, callback) {\n    callback = _combineCallbacks(callback, configuration);\n    var singleValue = animatedValue;\n    var singleConfig = configuration;\n    singleValue.stopTracking();\n    singleValue.animate(new DecayAnimation(singleConfig), callback);\n  };\n\n  return maybeVectorAnim(value, config, decay) || {\n    start: function start(callback) {\n      _start3(value, config, callback);\n    },\n    stop: function stop() {\n      value.stopAnimation();\n    },\n    reset: function reset() {\n      value.resetAnimation();\n    },\n    _startNativeLoop: function _startNativeLoop(iterations) {\n      var singleConfig = _objectSpread(_objectSpread({}, config), {}, {\n        iterations: iterations\n      });\n\n      _start3(value, singleConfig);\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return config.useNativeDriver || false;\n    }\n  };\n};\n\nvar sequence = function sequence(animations) {\n  var current = 0;\n  return {\n    start: function start(callback) {\n      var onComplete = function onComplete(result) {\n        if (!result.finished) {\n          callback && callback(result);\n          return;\n        }\n\n        current++;\n\n        if (current === animations.length) {\n          callback && callback(result);\n          return;\n        }\n\n        animations[current].start(onComplete);\n      };\n\n      if (animations.length === 0) {\n        callback && callback({\n          finished: true\n        });\n      } else {\n        animations[current].start(onComplete);\n      }\n    },\n    stop: function stop() {\n      if (current < animations.length) {\n        animations[current].stop();\n      }\n    },\n    reset: function reset() {\n      animations.forEach(function (animation, idx) {\n        if (idx <= current) {\n          animation.reset();\n        }\n      });\n      current = 0;\n    },\n    _startNativeLoop: function _startNativeLoop() {\n      throw new Error('Loops run using the native driver cannot contain Animated.sequence animations');\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return false;\n    }\n  };\n};\n\nvar parallel = function parallel(animations, config) {\n  var doneCount = 0; // Make sure we only call stop() at most once for each animation\n\n  var hasEnded = {};\n  var stopTogether = !(config && config.stopTogether === false);\n  var result = {\n    start: function start(callback) {\n      if (doneCount === animations.length) {\n        callback && callback({\n          finished: true\n        });\n        return;\n      }\n\n      animations.forEach(function (animation, idx) {\n        var cb = function cb(endResult) {\n          hasEnded[idx] = true;\n          doneCount++;\n\n          if (doneCount === animations.length) {\n            doneCount = 0;\n            callback && callback(endResult);\n            return;\n          }\n\n          if (!endResult.finished && stopTogether) {\n            result.stop();\n          }\n        };\n\n        if (!animation) {\n          cb({\n            finished: true\n          });\n        } else {\n          animation.start(cb);\n        }\n      });\n    },\n    stop: function stop() {\n      animations.forEach(function (animation, idx) {\n        !hasEnded[idx] && animation.stop();\n        hasEnded[idx] = true;\n      });\n    },\n    reset: function reset() {\n      animations.forEach(function (animation, idx) {\n        animation.reset();\n        hasEnded[idx] = false;\n        doneCount = 0;\n      });\n    },\n    _startNativeLoop: function _startNativeLoop() {\n      throw new Error('Loops run using the native driver cannot contain Animated.parallel animations');\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return false;\n    }\n  };\n  return result;\n};\n\nvar delay = function delay(time) {\n  // Would be nice to make a specialized implementation\n  return timing(new AnimatedValue(0), {\n    toValue: 0,\n    delay: time,\n    duration: 0,\n    useNativeDriver: false\n  });\n};\n\nvar stagger = function stagger(time, animations) {\n  return parallel(animations.map(function (animation, i) {\n    return sequence([delay(time * i), animation]);\n  }));\n};\n\nvar loop = function loop(animation, _temp) {\n  var _ref = _temp === void 0 ? {} : _temp,\n      _ref$iterations = _ref.iterations,\n      iterations = _ref$iterations === void 0 ? -1 : _ref$iterations,\n      _ref$resetBeforeItera = _ref.resetBeforeIteration,\n      resetBeforeIteration = _ref$resetBeforeItera === void 0 ? true : _ref$resetBeforeItera;\n\n  var isFinished = false;\n  var iterationsSoFar = 0;\n  return {\n    start: function start(callback) {\n      var restart = function restart(result) {\n        if (result === void 0) {\n          result = {\n            finished: true\n          };\n        }\n\n        if (isFinished || iterationsSoFar === iterations || result.finished === false) {\n          callback && callback(result);\n        } else {\n          iterationsSoFar++;\n          resetBeforeIteration && animation.reset();\n          animation.start(restart);\n        }\n      };\n\n      if (!animation || iterations === 0) {\n        callback && callback({\n          finished: true\n        });\n      } else {\n        if (animation._isUsingNativeDriver()) {\n          animation._startNativeLoop(iterations);\n        } else {\n          restart(); // Start looping recursively on the js thread\n        }\n      }\n    },\n    stop: function stop() {\n      isFinished = true;\n      animation.stop();\n    },\n    reset: function reset() {\n      iterationsSoFar = 0;\n      isFinished = false;\n      animation.reset();\n    },\n    _startNativeLoop: function _startNativeLoop() {\n      throw new Error('Loops run using the native driver cannot contain Animated.loop animations');\n    },\n    _isUsingNativeDriver: function _isUsingNativeDriver() {\n      return animation._isUsingNativeDriver();\n    }\n  };\n};\n\nfunction forkEvent(event, listener) {\n  if (!event) {\n    return listener;\n  } else if (event instanceof AnimatedEvent) {\n    event.__addListener(listener);\n\n    return event;\n  } else {\n    return function () {\n      typeof event === 'function' && event.apply(void 0, arguments);\n      listener.apply(void 0, arguments);\n    };\n  }\n}\n\nfunction unforkEvent(event, listener) {\n  if (event && event instanceof AnimatedEvent) {\n    event.__removeListener(listener);\n  }\n}\n\nvar event = function event(argMapping, config) {\n  var animatedEvent = new AnimatedEvent(argMapping, config);\n\n  if (animatedEvent.__isNative) {\n    return animatedEvent;\n  } else {\n    return animatedEvent.__getHandler();\n  }\n};\n/**\n * The `Animated` library is designed to make animations fluid, powerful, and\n * easy to build and maintain. `Animated` focuses on declarative relationships\n * between inputs and outputs, with configurable transforms in between, and\n * simple `start`/`stop` methods to control time-based animation execution.\n * If additional transforms are added, be sure to include them in\n * AnimatedMock.js as well.\n *\n * See https://reactnative.dev/docs/animated.html\n */\n\n\nexport default {\n  /**\n   * Standard value class for driving animations.  Typically initialized with\n   * `new Animated.Value(0);`\n   *\n   * See https://reactnative.dev/docs/animated.html#value\n   */\n  Value: AnimatedValue,\n\n  /**\n   * 2D value class for driving 2D animations, such as pan gestures.\n   *\n   * See https://reactnative.dev/docs/animatedvaluexy.html\n   */\n  ValueXY: AnimatedValueXY,\n\n  /**\n   * Exported to use the Interpolation type in flow.\n   *\n   * See https://reactnative.dev/docs/animated.html#interpolation\n   */\n  Interpolation: AnimatedInterpolation,\n\n  /**\n   * Exported for ease of type checking. All animated values derive from this\n   * class.\n   *\n   * See https://reactnative.dev/docs/animated.html#node\n   */\n  Node: AnimatedNode,\n\n  /**\n   * Animates a value from an initial velocity to zero based on a decay\n   * coefficient.\n   *\n   * See https://reactnative.dev/docs/animated.html#decay\n   */\n  decay: decay,\n\n  /**\n   * Animates a value along a timed easing curve. The Easing module has tons of\n   * predefined curves, or you can use your own function.\n   *\n   * See https://reactnative.dev/docs/animated.html#timing\n   */\n  timing: timing,\n\n  /**\n   * Animates a value according to an analytical spring model based on\n   * damped harmonic oscillation.\n   *\n   * See https://reactnative.dev/docs/animated.html#spring\n   */\n  spring: spring,\n\n  /**\n   * Creates a new Animated value composed from two Animated values added\n   * together.\n   *\n   * See https://reactnative.dev/docs/animated.html#add\n   */\n  add: add,\n\n  /**\n   * Creates a new Animated value composed by subtracting the second Animated\n   * value from the first Animated value.\n   *\n   * See https://reactnative.dev/docs/animated.html#subtract\n   */\n  subtract: subtract,\n\n  /**\n   * Creates a new Animated value composed by dividing the first Animated value\n   * by the second Animated value.\n   *\n   * See https://reactnative.dev/docs/animated.html#divide\n   */\n  divide: divide,\n\n  /**\n   * Creates a new Animated value composed from two Animated values multiplied\n   * together.\n   *\n   * See https://reactnative.dev/docs/animated.html#multiply\n   */\n  multiply: multiply,\n\n  /**\n   * Creates a new Animated value that is the (non-negative) modulo of the\n   * provided Animated value.\n   *\n   * See https://reactnative.dev/docs/animated.html#modulo\n   */\n  modulo: modulo,\n\n  /**\n   * Create a new Animated value that is limited between 2 values. It uses the\n   * difference between the last value so even if the value is far from the\n   * bounds it will start changing when the value starts getting closer again.\n   *\n   * See https://reactnative.dev/docs/animated.html#diffclamp\n   */\n  diffClamp: diffClamp,\n\n  /**\n   * Starts an animation after the given delay.\n   *\n   * See https://reactnative.dev/docs/animated.html#delay\n   */\n  delay: delay,\n\n  /**\n   * Starts an array of animations in order, waiting for each to complete\n   * before starting the next. If the current running animation is stopped, no\n   * following animations will be started.\n   *\n   * See https://reactnative.dev/docs/animated.html#sequence\n   */\n  sequence: sequence,\n\n  /**\n   * Starts an array of animations all at the same time. By default, if one\n   * of the animations is stopped, they will all be stopped. You can override\n   * this with the `stopTogether` flag.\n   *\n   * See https://reactnative.dev/docs/animated.html#parallel\n   */\n  parallel: parallel,\n\n  /**\n   * Array of animations may run in parallel (overlap), but are started in\n   * sequence with successive delays.  Nice for doing trailing effects.\n   *\n   * See https://reactnative.dev/docs/animated.html#stagger\n   */\n  stagger: stagger,\n\n  /**\n   * Loops a given animation continuously, so that each time it reaches the\n   * end, it resets and begins again from the start.\n   *\n   * See https://reactnative.dev/docs/animated.html#loop\n   */\n  loop: loop,\n\n  /**\n   * Takes an array of mappings and extracts values from each arg accordingly,\n   * then calls `setValue` on the mapped outputs.\n   *\n   * See https://reactnative.dev/docs/animated.html#event\n   */\n  event: event,\n\n  /**\n   * Make any React component Animatable.  Used to create `Animated.View`, etc.\n   *\n   * See https://reactnative.dev/docs/animated.html#createanimatedcomponent\n   */\n  createAnimatedComponent: createAnimatedComponent,\n\n  /**\n   * Imperative API to attach an animated value to an event on a view. Prefer\n   * using `Animated.event` with `useNativeDrive: true` if possible.\n   *\n   * See https://reactnative.dev/docs/animated.html#attachnativeevent\n   */\n  attachNativeEvent: attachNativeEvent,\n\n  /**\n   * Advanced imperative API for snooping on animated events that are passed in\n   * through props. Use values directly where possible.\n   *\n   * See https://reactnative.dev/docs/animated.html#forkevent\n   */\n  forkEvent: forkEvent,\n  unforkEvent: unforkEvent,\n\n  /**\n   * Expose Event class, so it can be used as a type for type checkers.\n   */\n  Event: AnimatedEvent,\n  __PropsOnlyForTests: AnimatedProps\n};"]},"metadata":{},"sourceType":"module"}