c7fabf9a89eea8a472f773a57b28d4e5.json 10.3 KB
{"ast":null,"code":"'use strict';var NEWTON_ITERATIONS=4;var NEWTON_MIN_SLOPE=0.001;var SUBDIVISION_PRECISION=0.0000001;var SUBDIVISION_MAX_ITERATIONS=10;var kSplineTableSize=11;var kSampleStepSize=1.0/(kSplineTableSize-1.0);var float32ArraySupported=typeof Float32Array==='function';function A(aA1,aA2){return 1.0-3.0*aA2+3.0*aA1;}function B(aA1,aA2){return 3.0*aA2-6.0*aA1;}function C(aA1){return 3.0*aA1;}function calcBezier(aT,aA1,aA2){return((A(aA1,aA2)*aT+B(aA1,aA2))*aT+C(aA1))*aT;}function getSlope(aT,aA1,aA2){return 3.0*A(aA1,aA2)*aT*aT+2.0*B(aA1,aA2)*aT+C(aA1);}function binarySubdivide(aX,aA,aB,mX1,mX2){var currentX,currentT,i=0;do{currentT=aA+(aB-aA)/2.0;currentX=calcBezier(currentT,mX1,mX2)-aX;if(currentX>0.0){aB=currentT;}else{aA=currentT;}}while(Math.abs(currentX)>SUBDIVISION_PRECISION&&++i<SUBDIVISION_MAX_ITERATIONS);return currentT;}function newtonRaphsonIterate(aX,aGuessT,mX1,mX2){for(var i=0;i<NEWTON_ITERATIONS;++i){var currentSlope=getSlope(aGuessT,mX1,mX2);if(currentSlope===0.0){return aGuessT;}var currentX=calcBezier(aGuessT,mX1,mX2)-aX;aGuessT-=currentX/currentSlope;}return aGuessT;}module.exports=function bezier(mX1,mY1,mX2,mY2){if(!(0<=mX1&&mX1<=1&&0<=mX2&&mX2<=1)){throw new Error('bezier x values must be in [0, 1] range');}var sampleValues=float32ArraySupported?new Float32Array(kSplineTableSize):new Array(kSplineTableSize);if(mX1!==mY1||mX2!==mY2){for(var i=0;i<kSplineTableSize;++i){sampleValues[i]=calcBezier(i*kSampleStepSize,mX1,mX2);}}function getTForX(aX){var intervalStart=0.0;var currentSample=1;var lastSample=kSplineTableSize-1;for(;currentSample!==lastSample&&sampleValues[currentSample]<=aX;++currentSample){intervalStart+=kSampleStepSize;}--currentSample;var dist=(aX-sampleValues[currentSample])/(sampleValues[currentSample+1]-sampleValues[currentSample]);var guessForT=intervalStart+dist*kSampleStepSize;var initialSlope=getSlope(guessForT,mX1,mX2);if(initialSlope>=NEWTON_MIN_SLOPE){return newtonRaphsonIterate(aX,guessForT,mX1,mX2);}else if(initialSlope===0.0){return guessForT;}else{return binarySubdivide(aX,intervalStart,intervalStart+kSampleStepSize,mX1,mX2);}}return function BezierEasing(x){if(mX1===mY1&&mX2===mY2){return x;}if(x===0){return 0;}if(x===1){return 1;}return calcBezier(getTForX(x),mY1,mY2);};};","map":{"version":3,"sources":["C:/Users/bluej/Desktop/2_2/searchGuide/searchGuide/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","Math","abs","newtonRaphsonIterate","aGuessT","currentSlope","module","exports","bezier","mY1","mY2","Error","sampleValues","Array","getTForX","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","BezierEasing","x"],"mappings":"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","sourcesContent":["/**\n * BezierEasing - use bezier curve for transition easing function\n * https://github.com/gre/bezier-easing\n *\n * @copyright 2014-2015 Gaëtan Renaudeau. MIT License.\n * \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\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  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\nmodule.exports = function bezier(mX1, mY1, mX2, mY2) {\n  if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n    // eslint-disable-line yoda\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};"]},"metadata":{},"sourceType":"script"}