UNPKG

addimated

Version:

An always interruptable, declarative animation library for React

203 lines (166 loc) 5.33 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.createAnimatedValue = createAnimatedValue; exports.createAnimatedValueXY = createAnimatedValueXY; exports.interpolate = interpolate; exports.spring = spring; exports.timing = timing; exports.delay = delay; exports.sequence = sequence; exports.parallel = parallel; exports.stagger = stagger; Object.defineProperty(exports, "createAnimatedComponent", { enumerable: true, get: function get() { return _createAnimatedComponent.createAnimatedComponent; } }); exports.Easing = exports.img = exports.span = exports.div = exports.button = exports.a = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var _AnimatedInterpolation = require("./AnimatedInterpolation"); var _AnimatedValue = require("./AnimatedValue"); var _AnimatedValueXY = require("./AnimatedValueXY"); var _createAnimatedComponent = require("./createAnimatedComponent"); var Easing = _interopRequireWildcard(require("./Easing")); exports.Easing = Easing; var _Interpolation = require("./Interpolation"); var _Manager = require("./Manager"); var _SpringAnimation = require("./SpringAnimation"); var _TimingAnimation = require("./TimingAnimation"); var globalManager; function maybeVectorAnim(value, config, anim) { if (value instanceof _AnimatedValueXY.AnimatedValueXY) { var configX = (0, _objectSpread2.default)({}, config); var configY = (0, _objectSpread2.default)({}, config); for (var key in config) { var _config$key = config[key], x = _config$key.x, y = _config$key.y; if (x !== undefined && y !== undefined) { configX[key] = x; configY[key] = y; } } var aX = anim(value.x, configX); var aY = anim(value.y, configY); return parallel([aX, aY]); } else { return null; } } function spring(value, config) { var vectorAnim = maybeVectorAnim(value, config, spring); if (vectorAnim) return vectorAnim; var singleValue = value; var singleConfig = config; return { start: function start(callback) { singleValue.animate(new _SpringAnimation.SpringAnimation(singleConfig), callback); } }; } function timing(value, config) { var vectorAnim = maybeVectorAnim(value, config, timing); if (vectorAnim) return vectorAnim; var singleValue = value; var singleConfig = config; return { start: function start(callback) { singleValue.animate(new _TimingAnimation.TimingAnimation(singleConfig), callback); } }; } function sequence(animations) { var current = 0; return { start: function start(callback) { var onComplete = function onComplete(result) { if (!result.finished) { callback && callback(result); return; } current++; if (current === animations.length) { callback && callback(result); return; } animations[current].start(onComplete); }; if (animations.length === 0) { callback && callback({ finished: true }); } else { animations[current].start(onComplete); } } }; } function parallel(animations) { var doneCount = 0; var result = { start: function start(callback) { if (doneCount === animations.length) { callback && callback({ finished: true }); return; } animations.forEach(function (anim) { var cb = function cb(endResult) { doneCount++; if (doneCount === animations.length) { doneCount = 0; callback && callback(endResult); return; } }; if (!anim) { cb({ finished: true }); } else { anim.start(cb); } }); } }; return result; } function delay(time) { return timing(createAnimatedValue(0), { toValue: 0, duration: time }); } function stagger(time, animations) { return parallel(animations.map(function (animation, i) { return sequence([delay(time * i), animation]); })); } function createAnimatedValue(value) { globalManager = globalManager || new _Manager.Manager(); return new _AnimatedValue.AnimatedValue(value, globalManager); } function createAnimatedValueXY(valueIn) { globalManager = globalManager || new _Manager.Manager(); return new _AnimatedValueXY.AnimatedValueXY(valueIn, globalManager); } function interpolate(value, config) { return new _AnimatedInterpolation.AnimatedInterpolation(value, _Interpolation.Interpolation.create(config)); } var a = (0, _createAnimatedComponent.createAnimatedComponent)("a"); exports.a = a; var button = (0, _createAnimatedComponent.createAnimatedComponent)("button"); exports.button = button; var div = (0, _createAnimatedComponent.createAnimatedComponent)("div"); exports.div = div; var span = (0, _createAnimatedComponent.createAnimatedComponent)("span"); exports.span = span; var img = (0, _createAnimatedComponent.createAnimatedComponent)("img"); // types exports.img = img; //# sourceMappingURL=index.js.map