{"ast":null,"code":"import { linear } from './index.js';\nvar a = function a(a1, a2) {\n  return 1.0 - 3.0 * a2 + 3.0 * a1;\n};\nvar b = function b(a1, a2) {\n  return 3.0 * a2 - 6.0 * a1;\n};\nvar c = function c(a1) {\n  return 3.0 * a1;\n};\nvar calcBezier = function calcBezier(t, a1, a2) {\n  return ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n};\nvar getSlope = function getSlope(t, a1, a2) {\n  return 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\n};\nvar subdivisionPrecision = 0.0000001;\nvar subdivisionMaxIterations = 10;\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n  var currentX;\n  var currentT;\n  var i = 0;\n  do {\n    currentT = aA + (aB - aA) / 2.0;\n    currentX = calcBezier(currentT, mX1, mX2) - aX;\n    if (currentX > 0.0) {\n      aB = currentT;\n    } else {\n      aA = currentT;\n    }\n  } while (Math.abs(currentX) > subdivisionPrecision && ++i < subdivisionMaxIterations);\n  return currentT;\n}\nvar newtonIterations = 8;\nvar newtonMinSlope = 0.001;\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n  for (var i = 0; i < newtonIterations; ++i) {\n    var currentSlope = getSlope(aGuessT, mX1, mX2);\n    if (currentSlope === 0.0) {\n      return aGuessT;\n    }\n    var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n    aGuessT -= currentX / currentSlope;\n  }\n  return aGuessT;\n}\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n  if (mX1 === mY1 && mX2 === mY2) return linear;\n  var sampleValues = new Float32Array(kSplineTableSize);\n  for (var i = 0; i < kSplineTableSize; ++i) {\n    sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n  }\n  function getTForX(aX) {\n    var intervalStart = 0.0;\n    var currentSample = 1;\n    var lastSample = kSplineTableSize - 1;\n    for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n      intervalStart += kSampleStepSize;\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    if (initialSlope >= newtonMinSlope) {\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  return function (t) {\n    return t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n  };\n}\nexport { cubicBezier };","map":{"version":3,"names":["linear","a","a1","a2","b","c","calcBezier","t","getSlope","subdivisionPrecision","subdivisionMaxIterations","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","i","Math","abs","newtonIterations","newtonMinSlope","newtonRaphsonIterate","aGuessT","currentSlope","kSplineTableSize","kSampleStepSize","cubicBezier","mY1","mY2","sampleValues","Float32Array","getTForX","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope"],"sources":["D:/DSP_Management/node_modules/popmotion/dist/es/easing/cubic-bezier.js"],"sourcesContent":["import { linear } from './index.js';\n\nvar a = function (a1, a2) { return 1.0 - 3.0 * a2 + 3.0 * a1; };\nvar b = function (a1, a2) { return 3.0 * a2 - 6.0 * a1; };\nvar c = function (a1) { return 3.0 * a1; };\nvar calcBezier = function (t, a1, a2) {\n    return ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n};\nvar getSlope = function (t, a1, a2) {\n    return 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\n};\nvar subdivisionPrecision = 0.0000001;\nvar subdivisionMaxIterations = 10;\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n    var currentX;\n    var currentT;\n    var i = 0;\n    do {\n        currentT = aA + (aB - aA) / 2.0;\n        currentX = calcBezier(currentT, mX1, mX2) - aX;\n        if (currentX > 0.0) {\n            aB = currentT;\n        }\n        else {\n            aA = currentT;\n        }\n    } while (Math.abs(currentX) > subdivisionPrecision &&\n        ++i < subdivisionMaxIterations);\n    return currentT;\n}\nvar newtonIterations = 8;\nvar newtonMinSlope = 0.001;\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n    for (var i = 0; i < newtonIterations; ++i) {\n        var currentSlope = getSlope(aGuessT, mX1, mX2);\n        if (currentSlope === 0.0) {\n            return aGuessT;\n        }\n        var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n        aGuessT -= currentX / currentSlope;\n    }\n    return aGuessT;\n}\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n    if (mX1 === mY1 && mX2 === mY2)\n        return linear;\n    var sampleValues = new Float32Array(kSplineTableSize);\n    for (var i = 0; i < kSplineTableSize; ++i) {\n        sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n    }\n    function getTForX(aX) {\n        var intervalStart = 0.0;\n        var currentSample = 1;\n        var lastSample = kSplineTableSize - 1;\n        for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n            intervalStart += kSampleStepSize;\n        }\n        --currentSample;\n        var dist = (aX - sampleValues[currentSample]) /\n            (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n        var guessForT = intervalStart + dist * kSampleStepSize;\n        var initialSlope = getSlope(guessForT, mX1, mX2);\n        if (initialSlope >= newtonMinSlope) {\n            return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n        }\n        else if (initialSlope === 0.0) {\n            return guessForT;\n        }\n        else {\n            return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n        }\n    }\n    return function (t) {\n        return t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n    };\n}\n\nexport { cubicBezier };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}