text: /*!
   * VERSION: 0.1.3
   * DATE: 2018-08-27
   * UPDATES AND DOCS AT: http://greensock.com
   *
   * @license Copyright (c) 2008-2019, GreenSock. All rights reserved.
   * This work is subject to the terms at http://greensock.com/standard-license or for
   * Club GreenSock members, the software agreement that was issued with your membership.
   *
   * @author: Jack Doyle, jack@greensock.com
   */
  /* eslint-disable */
  
  import { _gsScope } from "./TweenLite.js";
  
  export var EndArrayPlugin = _gsScope._gsDefine.plugin({
  		propName: "endArray",
  		API: 2,
  		version: "0.1.3",
  
  		//called when the tween renders for the first time. This is where initial values should be recorded and any setup routines should run.
  		init: function(target, value, tween) {
  			var i = value.length,
  				a = this.a = [],
  				start, end;
  			this.target = target;
  			this._mod = 0;
  			if (!i) {
  				return false;
  			}
  			while (--i > -1) {
  				start = target[i];
  				end = value[i];
  				if (start !== end) {
  					a.push({i:i, s:start, c:end - start});
  				}
  			}
  			return true;
  		},
  
  		mod: function(lookup) {
  			if (typeof(lookup.endArray) === "function") {
  				this._mod = lookup.endArray;
  			}
  		},
  
  		//called each time the values should be updated, and the ratio gets passed as the only parameter (typically it's a value between 0 and 1, but it can exceed those when using an ease like Elastic.easeOut or Back.easeOut, etc.)
  		set: function(ratio) {
  			var target = this.target,
  				a = this.a,
  				i = a.length,
  				mod = this._mod,
  				e, val;
  			if (mod) {
  				while (--i > -1) {
  					e = a[i];
  					target[e.i] = mod(e.s + e.c * ratio, target);
  				}
  			} else {
  				while (--i > -1) {
  					e = a[i];
  					val = e.s + e.c * ratio;
  					target[e.i] = (val < 0.000001 && val > -0.000001) ? 0 : val;
  				}
  			}
  		}
  
  	});
  
  export { EndArrayPlugin as default };