UNPKG

svelte-motion

Version:

Svelte animation library based on the React library framer-motion.

46 lines (42 loc) 1.54 kB
/** based on framer-motion@4.0.3, Copyright (c) 2018 Framer B.V. */ import {fixed} from '../../utils/fix-process-env'; import { __read } from 'tslib'; import { cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion'; //import { invariant } from 'hey-listen'; var easingLookup = { linear: linear, easeIn: easeIn, easeInOut: easeInOut, easeOut: easeOut, circIn: circIn, circInOut: circInOut, circOut: circOut, backIn: backIn, backInOut: backInOut, backOut: backOut, anticipate: anticipate, bounceIn: bounceIn, bounceInOut: bounceInOut, bounceOut: bounceOut, }; var easingDefinitionToFunction = function (definition) { if (Array.isArray(definition)) { // If cubic bezier definition, create bezier curve //invariant(definition.length === 4, "Cubic bezier arrays must contain four numerical values."); var _a = __read(definition, 4), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3]; return cubicBezier(x1, y1, x2, y2); } else if (typeof definition === "string") { // Else lookup from table //invariant(easingLookup[definition] !== undefined, "Invalid easing type '" + definition + "'"); return easingLookup[definition]; } return definition; }; var isEasingArray = function (ease) { return Array.isArray(ease) && typeof ease[0] !== "number"; }; export { easingDefinitionToFunction, isEasingArray };