{"ast":null,"code":"'use strict';\n\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1, aA2) {\n  return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\n\nfunction B(aA1, aA2) {\n  return 3.0 * aA2 - 6.0 * aA1;\n}\n\nfunction C(aA1) {\n  return 3.0 * aA1;\n}\n\nfunction calcBezier(aT, aA1, aA2) {\n  return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\n\nfunction getSlope(aT, aA1, aA2) {\n  return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(aX, _aA, _aB, mX1, mX2) {\n  var currentX,\n      currentT,\n      i = 0,\n      aA = _aA,\n      aB = _aB;\n\n  do {\n    currentT = aA + (aB - aA) / 2.0;\n    currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n    if (currentX > 0.0) {\n      aB = currentT;\n    } else {\n      aA = currentT;\n    }\n  } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n  return currentT;\n}\n\nfunction newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {\n  var aGuessT = _aGuessT;\n\n  for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n    var currentSlope = getSlope(aGuessT, mX1, mX2);\n\n    if (currentSlope === 0.0) {\n      return aGuessT;\n    }\n\n    var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n    aGuessT -= currentX / currentSlope;\n  }\n\n  return aGuessT;\n}\n\nexport default function bezier(mX1, mY1, mX2, mY2) {\n  if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n    throw new Error('bezier x values must be in [0, 1] range');\n  }\n\n  var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n\n  if (mX1 !== mY1 || mX2 !== mY2) {\n    for (var i = 0; i < kSplineTableSize; ++i) {\n      sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n    }\n  }\n\n  function getTForX(aX) {\n    var intervalStart = 0.0;\n    var currentSample = 1;\n    var lastSample = kSplineTableSize - 1;\n\n    for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n      intervalStart += kSampleStepSize;\n    }\n\n    --currentSample;\n    var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n    var guessForT = intervalStart + dist * kSampleStepSize;\n    var initialSlope = getSlope(guessForT, mX1, mX2);\n\n    if (initialSlope >= NEWTON_MIN_SLOPE) {\n      return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n    } else if (initialSlope === 0.0) {\n      return guessForT;\n    } else {\n      return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n    }\n  }\n\n  return function BezierEasing(x) {\n    if (mX1 === mY1 && mX2 === mY2) {\n      return x;\n    }\n\n    if (x === 0) {\n      return 0;\n    }\n\n    if (x === 1) {\n      return 1;\n    }\n\n    return calcBezier(getTForX(x), mY1, mY2);\n  };\n}\n;","map":{"version":3,"sources":["/Users/rohitsingh/Documents/projects/new-nativebase-setup/NativeBase/example/node_modules/react-native-web/dist/vendor/react-native/Animated/bezier.js"],"names":["NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","Float32Array","A","aA1","aA2","B","C","calcBezier","aT","getSlope","binarySubdivide","aX","_aA","_aB","mX1","mX2","currentX","currentT","i","aA","aB","Math","abs","newtonRaphsonIterate","_aGuessT","aGuessT","currentSlope","bezier","mY1","mY2","Error","sampleValues","Array","getTForX","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","BezierEasing","x"],"mappings":"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","sourcesContent":["/**\n * Portions 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\n/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n * @copyright 2014-2015 Gaëtan Renaudeau. MIT License.\n */\n'use strict'; // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A(aA1, aA2) {\n  return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n}\n\nfunction B(aA1, aA2) {\n  return 3.0 * aA2 - 6.0 * aA1;\n}\n\nfunction C(aA1) {\n  return 3.0 * aA1;\n} // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\nfunction calcBezier(aT, aA1, aA2) {\n  return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n} // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\nfunction getSlope(aT, aA1, aA2) {\n  return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n}\n\nfunction binarySubdivide(aX, _aA, _aB, mX1, mX2) {\n  var currentX,\n      currentT,\n      i = 0,\n      aA = _aA,\n      aB = _aB;\n\n  do {\n    currentT = aA + (aB - aA) / 2.0;\n    currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n    if (currentX > 0.0) {\n      aB = currentT;\n    } else {\n      aA = currentT;\n    }\n  } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n  return currentT;\n}\n\nfunction newtonRaphsonIterate(aX, _aGuessT, mX1, mX2) {\n  var aGuessT = _aGuessT;\n\n  for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n    var currentSlope = getSlope(aGuessT, mX1, mX2);\n\n    if (currentSlope === 0.0) {\n      return aGuessT;\n    }\n\n    var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n    aGuessT -= currentX / currentSlope;\n  }\n\n  return aGuessT;\n}\n\nexport default function bezier(mX1, mY1, mX2, mY2) {\n  if (!(mX1 >= 0 && mX1 <= 1 && mX2 >= 0 && mX2 <= 1)) {\n    throw new Error('bezier x values must be in [0, 1] range');\n  } // Precompute samples table\n\n\n  var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n\n  if (mX1 !== mY1 || mX2 !== mY2) {\n    for (var i = 0; i < kSplineTableSize; ++i) {\n      sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n    }\n  }\n\n  function getTForX(aX) {\n    var intervalStart = 0.0;\n    var currentSample = 1;\n    var lastSample = kSplineTableSize - 1;\n\n    for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n      intervalStart += kSampleStepSize;\n    }\n\n    --currentSample; // Interpolate to provide an initial guess for t\n\n    var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n    var guessForT = intervalStart + dist * kSampleStepSize;\n    var initialSlope = getSlope(guessForT, mX1, mX2);\n\n    if (initialSlope >= NEWTON_MIN_SLOPE) {\n      return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n    } else if (initialSlope === 0.0) {\n      return guessForT;\n    } else {\n      return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n    }\n  }\n\n  return function BezierEasing(x) {\n    if (mX1 === mY1 && mX2 === mY2) {\n      return x; // linear\n    } // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n\n    if (x === 0) {\n      return 0;\n    }\n\n    if (x === 1) {\n      return 1;\n    }\n\n    return calcBezier(getTForX(x), mY1, mY2);\n  };\n}\n;"]},"metadata":{},"sourceType":"module"}