UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

1 lines 19.4 kB
{"version":3,"file":"easing.mjs","sources":["../../../../src/util/animation/easing.ts"],"sourcesContent":["/**\n * Easing functions\n * @see {@link http://gizma.com/easing/ Easing Equations by Robert Penner}\n */\n\nimport { twoMathPi, halfPI } from '../../constants';\nimport type { TEasingFunction } from './types';\n\nconst normalize = (a: number, c: number, p: number, s: number) => {\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n } else {\n //handle the 0/0 case:\n if (c === 0 && a === 0) {\n s = (p / twoMathPi) * Math.asin(1);\n } else {\n s = (p / twoMathPi) * Math.asin(c / a);\n }\n }\n return { a, c, p, s };\n};\n\nconst elastic = (\n a: number,\n s: number,\n p: number,\n t: number,\n d: number,\n): number =>\n a * Math.pow(2, 10 * (t -= 1)) * Math.sin(((t * d - s) * twoMathPi) / p);\n\n/**\n * Default sinusoidal easing\n */\nexport const defaultEasing: TEasingFunction = (t, b, c, d) =>\n -c * Math.cos((t / d) * halfPI) + c + b;\n\n/**\n * Cubic easing in\n */\nexport const easeInCubic: TEasingFunction = (t, b, c, d) =>\n c * (t / d) ** 3 + b;\n\n/**\n * Cubic easing out\n */\nexport const easeOutCubic: TEasingFunction = (t, b, c, d) =>\n c * ((t / d - 1) ** 3 + 1) + b;\n\n/**\n * Cubic easing in and out\n */\nexport const easeInOutCubic: TEasingFunction = (t, b, c, d) => {\n t /= d / 2;\n if (t < 1) {\n return (c / 2) * t ** 3 + b;\n }\n return (c / 2) * ((t - 2) ** 3 + 2) + b;\n};\n\n/**\n * Quartic easing in\n */\nexport const easeInQuart: TEasingFunction = (t, b, c, d) =>\n c * (t /= d) * t ** 3 + b;\n\n/**\n * Quartic easing out\n */\nexport const easeOutQuart: TEasingFunction = (t, b, c, d) =>\n -c * ((t = t / d - 1) * t ** 3 - 1) + b;\n\n/**\n * Quartic easing in and out\n */\nexport const easeInOutQuart: TEasingFunction = (t, b, c, d) => {\n t /= d / 2;\n if (t < 1) {\n return (c / 2) * t ** 4 + b;\n }\n return (-c / 2) * ((t -= 2) * t ** 3 - 2) + b;\n};\n\n/**\n * Quintic easing in\n */\nexport const easeInQuint: TEasingFunction = (t, b, c, d) =>\n c * (t / d) ** 5 + b;\n\n/**\n * Quintic easing out\n */\nexport const easeOutQuint: TEasingFunction = (t, b, c, d) =>\n c * ((t / d - 1) ** 5 + 1) + b;\n\n/**\n * Quintic easing in and out\n */\nexport const easeInOutQuint: TEasingFunction = (t, b, c, d) => {\n t /= d / 2;\n if (t < 1) {\n return (c / 2) * t ** 5 + b;\n }\n return (c / 2) * ((t - 2) ** 5 + 2) + b;\n};\n\n/**\n * Sinusoidal easing in\n */\nexport const easeInSine: TEasingFunction = (t, b, c, d) =>\n -c * Math.cos((t / d) * halfPI) + c + b;\n\n/**\n * Sinusoidal easing out\n */\nexport const easeOutSine: TEasingFunction = (t, b, c, d) =>\n c * Math.sin((t / d) * halfPI) + b;\n\n/**\n * Sinusoidal easing in and out\n */\nexport const easeInOutSine: TEasingFunction = (t, b, c, d) =>\n (-c / 2) * (Math.cos((Math.PI * t) / d) - 1) + b;\n\n/**\n * Exponential easing in\n */\nexport const easeInExpo: TEasingFunction = (t, b, c, d) =>\n t === 0 ? b : c * 2 ** (10 * (t / d - 1)) + b;\n\n/**\n * Exponential easing out\n */\nexport const easeOutExpo: TEasingFunction = (t, b, c, d) =>\n t === d ? b + c : c * -(2 ** ((-10 * t) / d) + 1) + b;\n\n/**\n * Exponential easing in and out\n */\nexport const easeInOutExpo: TEasingFunction = (t, b, c, d) => {\n if (t === 0) {\n return b;\n }\n if (t === d) {\n return b + c;\n }\n t /= d / 2;\n if (t < 1) {\n return (c / 2) * 2 ** (10 * (t - 1)) + b;\n }\n return (c / 2) * -(2 ** (-10 * --t) + 2) + b;\n};\n\n/**\n * Circular easing in\n */\nexport const easeInCirc: TEasingFunction = (t, b, c, d) =>\n -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\n\n/**\n * Circular easing out\n */\nexport const easeOutCirc: TEasingFunction = (t, b, c, d) =>\n c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n\n/**\n * Circular easing in and out\n */\nexport const easeInOutCirc: TEasingFunction = (t, b, c, d) => {\n t /= d / 2;\n if (t < 1) {\n return (-c / 2) * (Math.sqrt(1 - t ** 2) - 1) + b;\n }\n return (c / 2) * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\n};\n\n/**\n * Elastic easing in\n */\nexport const easeInElastic: TEasingFunction = (t, b, c, d) => {\n const s = 1.70158,\n a = c;\n let p = 0;\n if (t === 0) {\n return b;\n }\n t /= d;\n if (t === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n const { a: normA, s: normS, p: normP } = normalize(a, c, p, s);\n return -elastic(normA, normS, normP, t, d) + b;\n};\n\n/**\n * Elastic easing out\n */\nexport const easeOutElastic: TEasingFunction = (t, b, c, d) => {\n const s = 1.70158,\n a = c;\n let p = 0;\n if (t === 0) {\n return b;\n }\n t /= d;\n if (t === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n const { a: normA, s: normS, p: normP, c: normC } = normalize(a, c, p, s);\n return (\n normA * 2 ** (-10 * t) * Math.sin(((t * d - normS) * twoMathPi) / normP) +\n normC +\n b\n );\n};\n\n/**\n * Elastic easing in and out\n */\nexport const easeInOutElastic: TEasingFunction = (t, b, c, d) => {\n const s = 1.70158,\n a = c;\n let p = 0;\n if (t === 0) {\n return b;\n }\n t /= d / 2;\n if (t === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n const { a: normA, s: normS, p: normP, c: normC } = normalize(a, c, p, s);\n if (t < 1) {\n return -0.5 * elastic(normA, normS, normP, t, d) + b;\n }\n return (\n normA *\n Math.pow(2, -10 * (t -= 1)) *\n Math.sin(((t * d - normS) * twoMathPi) / normP) *\n 0.5 +\n normC +\n b\n );\n};\n\n/**\n * Backwards easing in\n */\nexport const easeInBack: TEasingFunction = (t, b, c, d, s = 1.70158) =>\n c * (t /= d) * t * ((s + 1) * t - s) + b;\n\n/**\n * Backwards easing out\n */\nexport const easeOutBack: TEasingFunction = (t, b, c, d, s = 1.70158) =>\n c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n\n/**\n * Backwards easing in and out\n */\nexport const easeInOutBack: TEasingFunction = (t, b, c, d, s = 1.70158) => {\n t /= d / 2;\n if (t < 1) {\n return (c / 2) * (t * t * (((s *= 1.525) + 1) * t - s)) + b;\n }\n return (c / 2) * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;\n};\n\n/**\n * Bouncing easing out\n */\nexport const easeOutBounce: TEasingFunction = (t, b, c, d) => {\n if ((t /= d) < 1 / 2.75) {\n return c * (7.5625 * t * t) + b;\n } else if (t < 2 / 2.75) {\n return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;\n } else if (t < 2.5 / 2.75) {\n return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;\n } else {\n return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;\n }\n};\n\n/**\n * Bouncing easing in\n */\nexport const easeInBounce: TEasingFunction = (t, b, c, d) =>\n c - easeOutBounce(d - t, 0, c, d) + b;\n\n/**\n * Bouncing easing in and out\n */\nexport const easeInOutBounce: TEasingFunction = (t, b, c, d) =>\n t < d / 2\n ? easeInBounce(t * 2, 0, c, d) * 0.5 + b\n : easeOutBounce(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\n\n/**\n * Quadratic easing in\n */\nexport const easeInQuad: TEasingFunction = (t, b, c, d) => c * (t /= d) * t + b;\n\n/**\n * Quadratic easing out\n */\nexport const easeOutQuad: TEasingFunction = (t, b, c, d) =>\n -c * (t /= d) * (t - 2) + b;\n\n/**\n * Quadratic easing in and out\n */\nexport const easeInOutQuad: TEasingFunction = (t, b, c, d) => {\n t /= d / 2;\n if (t < 1) {\n return (c / 2) * t ** 2 + b;\n }\n return (-c / 2) * (--t * (t - 2) - 1) + b;\n};\n"],"names":["normalize","a","c","p","s","Math","abs","twoMathPi","asin","elastic","t","d","pow","sin","defaultEasing","b","cos","halfPI","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","PI","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","sqrt","easeOutCirc","easeInOutCirc","easeInElastic","normA","normS","normP","easeOutElastic","normC","easeInOutElastic","easeInBack","arguments","length","undefined","easeOutBack","easeInOutBack","easeOutBounce","easeInBounce","easeInOutBounce","easeInQuad","easeOutQuad","easeInOutQuad"],"mappings":"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"}