{"version":3,"sources":["node_modules\\animated\\lib\\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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","file":"bezier.js","sourceRoot":"d:/Work/Office/react-native-on-web/cli/tmpl/project","sourcesContent":["\n\n\n\n\n\n\n\nvar NEWTON_ITERATIONS=4;\nvar NEWTON_MIN_SLOPE=0.001;\nvar SUBDIVISION_PRECISION=0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS=10;\n\nvar kSplineTableSize=11;\nvar kSampleStepSize=1.0/(kSplineTableSize-1.0);\n\nvar float32ArraySupported=typeof Float32Array==='function';\n\nfunction A(aA1,aA2){return 1.0-3.0*aA2+3.0*aA1;}\nfunction B(aA1,aA2){return 3.0*aA2-6.0*aA1;}\nfunction C(aA1){return 3.0*aA1;}\n\n\nfunction calcBezier(aT,aA1,aA2){return((A(aA1,aA2)*aT+B(aA1,aA2))*aT+C(aA1))*aT;}\n\n\nfunction getSlope(aT,aA1,aA2){return 3.0*A(aA1,aA2)*aT*aT+2.0*B(aA1,aA2)*aT+C(aA1);}\n\nfunction binarySubdivide(aX,aA,aB,mX1,mX2){\nvar currentX,currentT,i=0;\ndo{\ncurrentT=aA+(aB-aA)/2.0;\ncurrentX=calcBezier(currentT,mX1,mX2)-aX;\nif(currentX>0.0){\naB=currentT;\n}else{\naA=currentT;\n}\n}while(Math.abs(currentX)>SUBDIVISION_PRECISION&&++i<SUBDIVISION_MAX_ITERATIONS);\nreturn currentT;\n}\n\nfunction newtonRaphsonIterate(aX,aGuessT,mX1,mX2){\nfor(var i=0;i<NEWTON_ITERATIONS;++i){\nvar currentSlope=getSlope(aGuessT,mX1,mX2);\nif(currentSlope===0.0){\nreturn aGuessT;\n}\nvar currentX=calcBezier(aGuessT,mX1,mX2)-aX;\naGuessT-=currentX/currentSlope;\n}\nreturn aGuessT;\n}\n\nmodule.exports=function bezier(mX1,mY1,mX2,mY2){\nif(!(0<=mX1&&mX1<=1&&0<=mX2&&mX2<=1)){\nthrow new Error('bezier x values must be in [0, 1] range');\n}\n\n\nvar sampleValues=float32ArraySupported?new Float32Array(kSplineTableSize):new Array(kSplineTableSize);\nif(mX1!==mY1||mX2!==mY2){\nfor(var i=0;i<kSplineTableSize;++i){\nsampleValues[i]=calcBezier(i*kSampleStepSize,mX1,mX2);\n}\n}\n\nfunction getTForX(aX){\nvar intervalStart=0.0;\nvar currentSample=1;\nvar lastSample=kSplineTableSize-1;\n\nfor(;currentSample!==lastSample&&sampleValues[currentSample]<=aX;++currentSample){\nintervalStart+=kSampleStepSize;\n}\n--currentSample;\n\n\nvar dist=(aX-sampleValues[currentSample])/(sampleValues[currentSample+1]-sampleValues[currentSample]);\nvar guessForT=intervalStart+dist*kSampleStepSize;\n\nvar initialSlope=getSlope(guessForT,mX1,mX2);\nif(initialSlope>=NEWTON_MIN_SLOPE){\nreturn newtonRaphsonIterate(aX,guessForT,mX1,mX2);\n}else if(initialSlope===0.0){\nreturn guessForT;\n}else{\nreturn binarySubdivide(aX,intervalStart,intervalStart+kSampleStepSize,mX1,mX2);\n}\n}\n\nreturn function BezierEasing(x){\nif(mX1===mY1&&mX2===mY2){\nreturn x;\n}\n\nif(x===0){\nreturn 0;\n}\nif(x===1){\nreturn 1;\n}\nreturn calcBezier(getTForX(x),mY1,mY2);\n};\n};"]}