UNPKG

animated

Version:

Declarative Animations Library for React and React Native

160 lines (71 loc) 3.72 kB
'use strict';var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;} var Animated=require('./Animated'); var AnimatedValue=require('./AnimatedValue'); var AnimatedWithChildren=require('./AnimatedWithChildren'); var invariant=require('invariant'); var guid=require('./guid');var AnimatedValueXY=function(_AnimatedWithChildren){_inherits(AnimatedValueXY,_AnimatedWithChildren); function AnimatedValueXY(valueIn){_classCallCheck(this,AnimatedValueXY);var _this=_possibleConstructorReturn(this,(AnimatedValueXY.__proto__||Object.getPrototypeOf(AnimatedValueXY)).call(this)); var value=valueIn||{x:0,y:0}; if(typeof value.x==='number'&&typeof value.y==='number'){ _this.x=new AnimatedValue(value.x); _this.y=new AnimatedValue(value.y); }else{ invariant( value.x instanceof AnimatedValue&& value.y instanceof AnimatedValue, 'AnimatedValueXY must be initalized with an object of numbers or '+ 'AnimatedValues.'); _this.x=value.x; _this.y=value.y; } _this._listeners={};return _this; }_createClass(AnimatedValueXY,[{key:'setValue',value:function setValue( value){ this.x.setValue(value.x); this.y.setValue(value.y); }},{key:'setOffset',value:function setOffset( offset){ this.x.setOffset(offset.x); this.y.setOffset(offset.y); }},{key:'flattenOffset',value:function flattenOffset() { this.x.flattenOffset(); this.y.flattenOffset(); }},{key:'__getValue',value:function __getValue() { return{ x:this.x.__getValue(), y:this.y.__getValue()}; }},{key:'stopAnimation',value:function stopAnimation( callback){ this.x.stopAnimation(); this.y.stopAnimation(); callback&&callback(this.__getValue()); }},{key:'addListener',value:function addListener( callback){var _this2=this; var id=guid(); var jointCallback=function jointCallback(_ref){var number=_ref.value; callback(_this2.__getValue()); }; this._listeners[id]={ x:this.x.addListener(jointCallback), y:this.y.addListener(jointCallback)}; return id; }},{key:'removeListener',value:function removeListener( id){ this.x.removeListener(this._listeners[id].x); this.y.removeListener(this._listeners[id].y); delete this._listeners[id]; }},{key:'getLayout',value:function getLayout() { return{ left:this.x, top:this.y}; }},{key:'getTranslateTransform',value:function getTranslateTransform() { return[ {translateX:this.x}, {translateY:this.y}]; }}]);return AnimatedValueXY;}(AnimatedWithChildren); module.exports=AnimatedValueXY;