greensock-rails 1.18.5.0 → 1.19.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (23) hide show
  1. checksums.yaml +4 -4
  2. data/lib/greensock/rails/version.rb +1 -1
  3. data/vendor/assets/javascripts/greensock/TimelineLite.js +5 -5
  4. data/vendor/assets/javascripts/greensock/TimelineMax.js +8 -6
  5. data/vendor/assets/javascripts/greensock/TweenLite.js +53 -31
  6. data/vendor/assets/javascripts/greensock/TweenMax.js +173 -72
  7. data/vendor/assets/javascripts/greensock/easing/EasePack.js +3 -3
  8. data/vendor/assets/javascripts/greensock/plugins/AttrPlugin.js +10 -6
  9. data/vendor/assets/javascripts/greensock/plugins/BezierPlugin.js +28 -11
  10. data/vendor/assets/javascripts/greensock/plugins/CSSPlugin.js +71 -19
  11. data/vendor/assets/javascripts/greensock/plugins/CSSRulePlugin.js +18 -4
  12. data/vendor/assets/javascripts/greensock/plugins/ColorPropsPlugin.js +8 -5
  13. data/vendor/assets/javascripts/greensock/plugins/DirectionalRotationPlugin.js +9 -5
  14. data/vendor/assets/javascripts/greensock/plugins/EaselPlugin.js +14 -10
  15. data/vendor/assets/javascripts/greensock/plugins/EndArrayPlugin.js +10 -9
  16. data/vendor/assets/javascripts/greensock/plugins/ModifiersPlugin.js +158 -0
  17. data/vendor/assets/javascripts/greensock/plugins/RoundPropsPlugin.js +7 -7
  18. data/vendor/assets/javascripts/greensock/plugins/ScrollToPlugin.js +77 -17
  19. data/vendor/assets/javascripts/greensock/plugins/TEMPLATE_Plugin.js +4 -3
  20. data/vendor/assets/javascripts/greensock/plugins/TextPlugin.js +17 -8
  21. data/vendor/assets/javascripts/greensock/utils/Draggable.js +50 -29
  22. metadata +2 -2
  23. data/vendor/assets/javascripts/greensock/plugins/KineticPlugin.js +0 -335
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9e577dd6cfa35446cb317cd9d0ad0b0b9dfc88ff
4
- data.tar.gz: 38ab680a2994ed4bf011c60cdccc9879a3fd8bda
3
+ metadata.gz: 1741dd0daa9f23ad454ca243e4255b7321555d6f
4
+ data.tar.gz: 2c3d3b38aa5a2e835404d9bdc8fce3cebe167534
5
5
  SHA512:
6
- metadata.gz: a19ab0d07d47ca041d797854a000ddd5089030b0a837097ac70991ca1fdc412107e2abc5113ae0a9f88169b0c814224e8a78bf6baeca2365ac368ccec1096b0d
7
- data.tar.gz: 1a7cc72c473566e4c51deeb7f5457f4c519cd309864c83324084502dfdcd0b39fd162fa74b0d20ab23b205c152aee35458a91d3f9a26000805b65955b4355d30
6
+ metadata.gz: fefb758c2876d46d4365d1ced3d288ec2de5ca080b4642047d6586fbde989f38fdca444a90722d1d61980e3ffc22607340b65e0ecd165a7b2d106a1a8017a582
7
+ data.tar.gz: e1d24e1259fa444f63b464e2ef38668e69a254a7f290803779099a308514551cc656b4e2170f7c5fc47161f8c22f17c7d648730cd5d406d2cd678b131912a81e
@@ -1,5 +1,5 @@
1
1
  module Greensock
2
2
  module Rails
3
- VERSION = "1.18.5.0"
3
+ VERSION = "1.19.0.0"
4
4
  end
5
5
  end
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.18.5
3
- * DATE: 2016-05-24
2
+ * VERSION: 1.18.6
3
+ * DATE: 2016-07-08
4
4
  * UPDATES AND DOCS AT: http://greensock.com
5
5
  *
6
6
  * @license Copyright (c) 2008-2016, GreenSock. All rights reserved.
@@ -55,7 +55,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
55
55
  p, val;
56
56
  for (p in alt) {
57
57
  val = alt[p];
58
- vars[p] = (typeof(val) === "function") ? val.call(targets[i], i) : val[i % val.length];
58
+ vars[p] = (typeof(val) === "function") ? val(i, targets[i]) : val[i % val.length];
59
59
  }
60
60
  delete vars.cycle;
61
61
  },
@@ -69,7 +69,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
69
69
  },
70
70
  p = TimelineLite.prototype = new SimpleTimeline();
71
71
 
72
- TimelineLite.version = "1.18.5";
72
+ TimelineLite.version = "1.19.0";
73
73
  p.constructor = TimelineLite;
74
74
  p.kill()._gc = p._forcingPlayhead = p._hasPause = false;
75
75
 
@@ -773,7 +773,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
773
773
  return (_gsScope.GreenSockGlobals || _gsScope)[name];
774
774
  };
775
775
  if (typeof(define) === "function" && define.amd) { //AMD
776
- define(["./TweenLite"], getGlobal);
776
+ define(["TweenLite"], getGlobal);
777
777
  } else if (typeof(module) !== "undefined" && module.exports) { //node
778
778
  require("./TweenLite.js"); //dependency
779
779
  module.exports = getGlobal();
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.18.5
3
- * DATE: 2016-05-24
2
+ * VERSION: 1.18.6
3
+ * DATE: 2016-07-12
4
4
  * UPDATES AND DOCS AT: http://greensock.com
5
5
  *
6
6
  * @license Copyright (c) 2008-2016, GreenSock. All rights reserved.
@@ -28,12 +28,13 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
28
28
  TweenLiteInternals = TweenLite._internals,
29
29
  _lazyTweens = TweenLiteInternals.lazyTweens,
30
30
  _lazyRender = TweenLiteInternals.lazyRender,
31
+ _globals = _gsScope._gsDefine.globals,
31
32
  _easeNone = new Ease(null, null, 1, 0),
32
33
  p = TimelineMax.prototype = new TimelineLite();
33
34
 
34
35
  p.constructor = TimelineMax;
35
36
  p.kill()._gc = false;
36
- TimelineMax.version = "1.18.5";
37
+ TimelineMax.version = "1.19.0";
37
38
 
38
39
  p.invalidate = function() {
39
40
  this._yoyo = (this.vars.yoyo === true);
@@ -72,13 +73,14 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
72
73
  p.tweenTo = function(position, vars) {
73
74
  vars = vars || {};
74
75
  var copy = {ease:_easeNone, useFrames:this.usesFrames(), immediateRender:false},
76
+ Engine = (vars.repeat && _globals.TweenMax) || TweenLite,
75
77
  duration, p, t;
76
78
  for (p in vars) {
77
79
  copy[p] = vars[p];
78
80
  }
79
81
  copy.time = this._parseTimeOrLabel(position);
80
82
  duration = (Math.abs(Number(copy.time) - this._time) / this._timeScale) || 0.001;
81
- t = new TweenLite(this, duration, copy);
83
+ t = new Engine(this, duration, copy);
82
84
  copy.onStart = function() {
83
85
  t.target.paused(true);
84
86
  if (t.vars.time !== t.target.time() && duration === t.duration()) { //don't make the duration zero - if it's supposed to be zero, don't worry because it's already initting the tween and will complete immediately, effectively making the duration zero anyway. If we make duration zero, the tween won't run at all.
@@ -573,7 +575,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
573
575
  },
574
576
  p = TimelineLite.prototype = new SimpleTimeline();
575
577
 
576
- TimelineLite.version = "1.18.5";
578
+ TimelineLite.version = "1.19.0";
577
579
  p.constructor = TimelineLite;
578
580
  p.kill()._gc = p._forcingPlayhead = p._hasPause = false;
579
581
 
@@ -1276,7 +1278,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1276
1278
  return (_gsScope.GreenSockGlobals || _gsScope)[name];
1277
1279
  };
1278
1280
  if (typeof(define) === "function" && define.amd) { //AMD
1279
- define(["./TweenLite"], getGlobal);
1281
+ define(["TweenLite"], getGlobal);
1280
1282
  } else if (typeof(module) !== "undefined" && module.exports) { //node
1281
1283
  require("./TweenLite.js"); //dependency
1282
1284
  module.exports = getGlobal();
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.18.5
3
- * DATE: 2016-05-24
2
+ * VERSION: 1.19.0
3
+ * DATE: 2016-07-16
4
4
  * UPDATES AND DOCS AT: http://greensock.com
5
5
  *
6
6
  * @license Copyright (c) 2008-2016, GreenSock. All rights reserved.
@@ -103,7 +103,7 @@
103
103
 
104
104
  //exports to multiple environments
105
105
  if (global) {
106
- _globals[n] = cl; //provides a way to avoid global namespace pollution. By default, the main classes like TweenLite, Power1, Strong, etc. are added to window unless a GreenSockGlobals is defined. So if you want to have things added to a custom object instead, just do something like window.GreenSockGlobals = {} before loading any GreenSock files. You can even set up an alias like window.GreenSockGlobals = windows.gs = {} so that you can access everything like gs.TweenLite. Also remember that ALL classes are added to the window.com.greensock object (in their respective packages, like com.greensock.easing.Power1, com.greensock.TweenLite, etc.)
106
+ _globals[n] = _exports[n] = cl; //provides a way to avoid global namespace pollution. By default, the main classes like TweenLite, Power1, Strong, etc. are added to window unless a GreenSockGlobals is defined. So if you want to have things added to a custom object instead, just do something like window.GreenSockGlobals = {} before loading any GreenSock files. You can even set up an alias like window.GreenSockGlobals = windows.gs = {} so that you can access everything like gs.TweenLite. Also remember that ALL classes are added to the window.com.greensock object (in their respective packages, like com.greensock.easing.Power1, com.greensock.TweenLite, etc.)
107
107
  hasModule = (typeof(module) !== "undefined" && module.exports);
108
108
  if (!hasModule && typeof(define) === "function" && define.amd){ //AMD
109
109
  define((window.GreenSockAMDPath ? window.GreenSockAMDPath + "/" : "") + ns.split(".").pop(), [], function() { return cl; });
@@ -259,6 +259,9 @@
259
259
  i, t, listener;
260
260
  if (list) {
261
261
  i = list.length;
262
+ if (i > 1) {
263
+ list = list.slice(0); //in case addEventListener() is called from within a listener/callback (otherwise the index could change, resulting in a skip)
264
+ }
262
265
  t = this._eventTarget;
263
266
  while (--i > -1) {
264
267
  listener = list[i];
@@ -548,8 +551,17 @@
548
551
  };
549
552
 
550
553
  p._callback = function(type) {
551
- var v = this.vars;
552
- v[type].apply(v[type + "Scope"] || v.callbackScope || this, v[type + "Params"] || _blankArray);
554
+ var v = this.vars,
555
+ callback = v[type],
556
+ params = v[type + "Params"],
557
+ scope = v[type + "Scope"] || v.callbackScope || this,
558
+ l = params ? params.length : 0;
559
+ switch (l) { //speed optimization; call() is faster than apply() so use it when there are only a few parameters (which is by far most common). Previously we simply did var v = this.vars; v[type].apply(v[type + "Scope"] || v.callbackScope || this, v[type + "Params"] || _blankArray);
560
+ case 0: callback.call(scope); break;
561
+ case 1: callback.call(scope, params[0]); break;
562
+ case 2: callback.call(scope, params[0], params[1]); break;
563
+ default: callback.apply(scope, params);
564
+ }
553
565
  };
554
566
 
555
567
  //----Animation getters/setters --------------------------------------------------------
@@ -933,7 +945,7 @@
933
945
  p._firstPT = p._targets = p._overwrittenProps = p._startAt = null;
934
946
  p._notifyPluginsOfEnabled = p._lazy = false;
935
947
 
936
- TweenLite.version = "1.18.5";
948
+ TweenLite.version = "1.19.0";
937
949
  TweenLite.defaultEase = p._ease = new Ease(null, null, 1, 1);
938
950
  TweenLite.defaultOverwrite = "auto";
939
951
  TweenLite.ticker = _ticker;
@@ -961,8 +973,8 @@
961
973
  val;
962
974
  while (pt) {
963
975
  val = !pt.blob ? pt.c * v + pt.s : v ? this.join("") : this.start;
964
- if (pt.r) {
965
- val = Math.round(val);
976
+ if (pt.m) {
977
+ val = pt.m(val, this._target || pt.t);
966
978
  } else if (val < min) if (val > -min) { //prevents issues with converting very small numbers to strings in the browser
967
979
  val = 0;
968
980
  }
@@ -995,7 +1007,7 @@
995
1007
  if (pt) {
996
1008
  pt._next = null;
997
1009
  pt.blob = 1;
998
- a._firstPT = pt; //apply last in the linked list (which means inserting it first)
1010
+ a._firstPT = a._applyPT = pt; //apply last in the linked list (which means inserting it first)
999
1011
  }
1000
1012
  l = endNums.length;
1001
1013
  for (i = 0; i < l; i++) {
@@ -1017,7 +1029,7 @@
1017
1029
  }
1018
1030
  num = parseFloat(startNums[i]);
1019
1031
  a.push(num);
1020
- a._firstPT = {_next: a._firstPT, t:a, p: a.length-1, s:num, c:((currentNum.charAt(1) === "=") ? parseInt(currentNum.charAt(0) + "1", 10) * parseFloat(currentNum.substr(2)) : (parseFloat(currentNum) - num)) || 0, f:0, r:(color && color < 4)};
1032
+ a._firstPT = {_next: a._firstPT, t:a, p: a.length-1, s:num, c:((currentNum.charAt(1) === "=") ? parseInt(currentNum.charAt(0) + "1", 10) * parseFloat(currentNum.substr(2)) : (parseFloat(currentNum) - num)) || 0, f:0, m:(color && color < 4) ? Math.round : 0};
1021
1033
  //note: we don't set _prev because we'll never need to remove individual PropTweens from this list.
1022
1034
  }
1023
1035
  charIndex += currentNum.length;
@@ -1030,11 +1042,14 @@
1030
1042
  return a;
1031
1043
  },
1032
1044
  //note: "funcParam" is only necessary for function-based getters/setters that require an extra parameter like getAttribute("width") and setAttribute("width", value). In this example, funcParam would be "width". Used by AttrPlugin for example.
1033
- _addPropTween = function(target, prop, start, end, overwriteProp, round, funcParam, stringFilter) {
1045
+ _addPropTween = function(target, prop, start, end, overwriteProp, mod, funcParam, stringFilter, index) {
1046
+ if (typeof(end) === "function") {
1047
+ end = end(index || 0, target);
1048
+ }
1034
1049
  var s = (start === "get") ? target[prop] : start,
1035
1050
  type = typeof(target[prop]),
1036
1051
  isRelative = (typeof(end) === "string" && end.charAt(1) === "="),
1037
- pt = {t:target, p:prop, s:s, f:(type === "function"), pg:0, n:overwriteProp || prop, r:round, pr:0, c:isRelative ? parseInt(end.charAt(0) + "1", 10) * parseFloat(end.substr(2)) : (parseFloat(end) - s) || 0},
1052
+ pt = {t:target, p:prop, s:s, f:(type === "function"), pg:0, n:overwriteProp || prop, m:(!mod ? 0 : (typeof(mod) === "function") ? mod : Math.round), pr:0, c:isRelative ? parseInt(end.charAt(0) + "1", 10) * parseFloat(end.substr(2)) : (parseFloat(end) - s) || 0},
1038
1053
  blob, getterName;
1039
1054
  if (type !== "number") {
1040
1055
  if (type === "function" && start === "get") {
@@ -1045,7 +1060,7 @@
1045
1060
  //a blob (string that has multiple numbers in it)
1046
1061
  pt.fp = funcParam;
1047
1062
  blob = _blobDif(s, end, stringFilter || TweenLite.defaultStringFilter, pt);
1048
- pt = {t:blob, p:"setRatio", s:0, c:1, f:2, pg:0, n:overwriteProp || prop, pr:0}; //"2" indicates it's a Blob property tween. Needed for RoundPropsPlugin for example.
1063
+ pt = {t:blob, p:"setRatio", s:0, c:1, f:2, pg:0, n:overwriteProp || prop, pr:0, m:0}; //"2" indicates it's a Blob property tween. Needed for RoundPropsPlugin for example.
1049
1064
  } else if (!isRelative) {
1050
1065
  pt.s = parseFloat(s);
1051
1066
  pt.c = (parseFloat(end) - pt.s) || 0;
@@ -1234,7 +1249,7 @@
1234
1249
  dur = this._duration,
1235
1250
  immediate = !!v.immediateRender,
1236
1251
  ease = v.ease,
1237
- i, initPlugins, pt, p, startVars;
1252
+ i, initPlugins, pt, p, startVars, l;
1238
1253
  if (v.startAt) {
1239
1254
  if (this._startAt) {
1240
1255
  this._startAt.render(-1, true); //if we've run a startAt previously (when the tween instantiated), we should revert it so that the values re-instantiate correctly particularly for relative tweens. Without this, a TweenLite.fromTo(obj, 1, {x:"+=100"}, {x:"-=100"}), for example, would actually jump to +=200 because the startAt would run twice, doubling the relative change.
@@ -1297,14 +1312,14 @@
1297
1312
  this._firstPT = null;
1298
1313
 
1299
1314
  if (this._targets) {
1300
- i = this._targets.length;
1301
- while (--i > -1) {
1302
- if ( this._initProps( this._targets[i], (this._propLookup[i] = {}), this._siblings[i], (op ? op[i] : null)) ) {
1315
+ l = this._targets.length;
1316
+ for (i = 0; i < l; i++) {
1317
+ if ( this._initProps( this._targets[i], (this._propLookup[i] = {}), this._siblings[i], (op ? op[i] : null), i) ) {
1303
1318
  initPlugins = true;
1304
1319
  }
1305
1320
  }
1306
1321
  } else {
1307
- initPlugins = this._initProps(this.target, this._propLookup, this._siblings, op);
1322
+ initPlugins = this._initProps(this.target, this._propLookup, this._siblings, op, 0);
1308
1323
  }
1309
1324
 
1310
1325
  if (initPlugins) {
@@ -1325,7 +1340,7 @@
1325
1340
  this._initted = true;
1326
1341
  };
1327
1342
 
1328
- p._initProps = function(target, propLookup, siblings, overwrittenProps) {
1343
+ p._initProps = function(target, propLookup, siblings, overwrittenProps, index) {
1329
1344
  var p, i, initPlugins, plugin, pt, v;
1330
1345
  if (target == null) {
1331
1346
  return false;
@@ -1345,7 +1360,7 @@
1345
1360
  this.vars[p] = v = this._swapSelfInParams(v, this);
1346
1361
  }
1347
1362
 
1348
- } else if (_plugins[p] && (plugin = new _plugins[p]())._onInitTween(target, this.vars[p], this)) {
1363
+ } else if (_plugins[p] && (plugin = new _plugins[p]())._onInitTween(target, this.vars[p], this, index)) {
1349
1364
 
1350
1365
  //t - target [object]
1351
1366
  //p - property [string]
@@ -1355,7 +1370,8 @@
1355
1370
  //n - name [string]
1356
1371
  //pg - isPlugin [boolean]
1357
1372
  //pr - priority [number]
1358
- this._firstPT = pt = {_next:this._firstPT, t:plugin, p:"setRatio", s:0, c:1, f:1, n:p, pg:1, pr:plugin._priority};
1373
+ //m - mod [function | 0]
1374
+ this._firstPT = pt = {_next:this._firstPT, t:plugin, p:"setRatio", s:0, c:1, f:1, n:p, pg:1, pr:plugin._priority, m:0};
1359
1375
  i = plugin._overwriteProps.length;
1360
1376
  while (--i > -1) {
1361
1377
  propLookup[plugin._overwriteProps[i]] = this._firstPT;
@@ -1371,16 +1387,16 @@
1371
1387
  }
1372
1388
 
1373
1389
  } else {
1374
- propLookup[p] = _addPropTween.call(this, target, p, "get", v, p, 0, null, this.vars.stringFilter);
1390
+ propLookup[p] = _addPropTween.call(this, target, p, "get", v, p, 0, null, this.vars.stringFilter, index);
1375
1391
  }
1376
1392
  }
1377
1393
 
1378
1394
  if (overwrittenProps) if (this._kill(overwrittenProps, target)) { //another tween may have tried to overwrite properties of this tween before init() was called (like if two tweens start at the same time, the one created second will run first)
1379
- return this._initProps(target, propLookup, siblings, overwrittenProps);
1395
+ return this._initProps(target, propLookup, siblings, overwrittenProps, index);
1380
1396
  }
1381
1397
  if (this._overwrite > 1) if (this._firstPT) if (siblings.length > 1) if (_applyOverwrite(target, this, propLookup, this._overwrite, siblings)) {
1382
1398
  this._kill(propLookup, target);
1383
- return this._initProps(target, propLookup, siblings, overwrittenProps);
1399
+ return this._initProps(target, propLookup, siblings, overwrittenProps, index);
1384
1400
  }
1385
1401
  if (this._firstPT) if ((this.vars.lazy !== false && this._duration) || (this.vars.lazy && !this._duration)) { //zero duration tweens don't lazy render by default; everything else does.
1386
1402
  _lazyLookup[target._gsTweenID] = true;
@@ -1760,7 +1776,7 @@
1760
1776
  }, true);
1761
1777
 
1762
1778
  p = TweenPlugin.prototype;
1763
- TweenPlugin.version = "1.18.0";
1779
+ TweenPlugin.version = "1.19.0";
1764
1780
  TweenPlugin.API = 2;
1765
1781
  p._firstPT = null;
1766
1782
  p._addTween = _addPropTween;
@@ -1797,11 +1813,17 @@
1797
1813
  return false;
1798
1814
  };
1799
1815
 
1800
- p._roundProps = function(lookup, value) {
1801
- var pt = this._firstPT;
1816
+ p._mod = p._roundProps = function(lookup) {
1817
+ var pt = this._firstPT,
1818
+ val;
1802
1819
  while (pt) {
1803
- if (lookup[this._propName] || (pt.n != null && lookup[ pt.n.split(this._propName + "_").join("") ])) { //some properties that are very plugin-specific add a prefix named after the _propName plus an underscore, so we need to ignore that extra stuff here.
1804
- pt.r = value;
1820
+ val = lookup[this._propName] || (pt.n != null && lookup[ pt.n.split(this._propName + "_").join("") ]);
1821
+ if (val && typeof(val) === "function") { //some properties that are very plugin-specific add a prefix named after the _propName plus an underscore, so we need to ignore that extra stuff here.
1822
+ if (pt.f === 2) {
1823
+ pt.t._applyPT.m = val;
1824
+ } else {
1825
+ pt.m = val;
1826
+ }
1805
1827
  }
1806
1828
  pt = pt._next;
1807
1829
  }
@@ -1857,7 +1879,7 @@
1857
1879
  var propName = config.propName,
1858
1880
  priority = config.priority || 0,
1859
1881
  overwriteProps = config.overwriteProps,
1860
- map = {init:"_onInitTween", set:"setRatio", kill:"_kill", round:"_roundProps", initAll:"_onInitAllProps"},
1882
+ map = {init:"_onInitTween", set:"setRatio", kill:"_kill", round:"_mod", mod:"_mod", initAll:"_onInitAllProps"},
1861
1883
  Plugin = _class("plugins." + propName.charAt(0).toUpperCase() + propName.substr(1) + "Plugin",
1862
1884
  function() {
1863
1885
  TweenPlugin.call(this, propName, priority);
@@ -1886,7 +1908,7 @@
1886
1908
  }
1887
1909
  for (p in _defLookup) {
1888
1910
  if (!_defLookup[p].func) {
1889
- window.console.log("GSAP encountered missing dependency: com.greensock." + p);
1911
+ window.console.log("GSAP encountered missing dependency: " + p);
1890
1912
  }
1891
1913
  }
1892
1914
  }
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.18.5
3
- * DATE: 2016-05-24
2
+ * VERSION: 1.19.0
3
+ * DATE: 2016-07-14
4
4
  * UPDATES AND DOCS AT: http://greensock.com
5
5
  *
6
6
  * Includes all of the following: TweenLite, TweenMax, TimelineLite, TimelineMax, EasePack, CSSPlugin, RoundPropsPlugin, BezierPlugin, AttrPlugin, DirectionalRotationPlugin
@@ -30,7 +30,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
30
30
  p, val;
31
31
  for (p in alt) {
32
32
  val = alt[p];
33
- vars[p] = (typeof(val) === "function") ? val.call(targets[i], i) : val[i % val.length];
33
+ vars[p] = (typeof(val) === "function") ? val(i, targets[i]) : val[i % val.length];
34
34
  }
35
35
  delete vars.cycle;
36
36
  },
@@ -50,7 +50,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
50
50
  p = TweenMax.prototype = TweenLite.to({}, 0.1, {}),
51
51
  _blankArray = [];
52
52
 
53
- TweenMax.version = "1.18.5";
53
+ TweenMax.version = "1.19.0";
54
54
  p.constructor = TweenMax;
55
55
  p.kill()._gc = false;
56
56
  TweenMax.killTweensOf = TweenMax.killDelayedCallsTo = TweenLite.killTweensOf;
@@ -687,7 +687,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
687
687
  },
688
688
  p = TimelineLite.prototype = new SimpleTimeline();
689
689
 
690
- TimelineLite.version = "1.18.5";
690
+ TimelineLite.version = "1.19.0";
691
691
  p.constructor = TimelineLite;
692
692
  p.kill()._gc = p._forcingPlayhead = p._hasPause = false;
693
693
 
@@ -1412,12 +1412,13 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1412
1412
  TweenLiteInternals = TweenLite._internals,
1413
1413
  _lazyTweens = TweenLiteInternals.lazyTweens,
1414
1414
  _lazyRender = TweenLiteInternals.lazyRender,
1415
+ _globals = _gsScope._gsDefine.globals,
1415
1416
  _easeNone = new Ease(null, null, 1, 0),
1416
1417
  p = TimelineMax.prototype = new TimelineLite();
1417
1418
 
1418
1419
  p.constructor = TimelineMax;
1419
1420
  p.kill()._gc = false;
1420
- TimelineMax.version = "1.18.5";
1421
+ TimelineMax.version = "1.19.0";
1421
1422
 
1422
1423
  p.invalidate = function() {
1423
1424
  this._yoyo = (this.vars.yoyo === true);
@@ -1456,13 +1457,14 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1456
1457
  p.tweenTo = function(position, vars) {
1457
1458
  vars = vars || {};
1458
1459
  var copy = {ease:_easeNone, useFrames:this.usesFrames(), immediateRender:false},
1460
+ Engine = (vars.repeat && _globals.TweenMax) || TweenLite,
1459
1461
  duration, p, t;
1460
1462
  for (p in vars) {
1461
1463
  copy[p] = vars[p];
1462
1464
  }
1463
1465
  copy.time = this._parseTimeOrLabel(position);
1464
1466
  duration = (Math.abs(Number(copy.time) - this._time) / this._timeScale) || 0.001;
1465
- t = new TweenLite(this, duration, copy);
1467
+ t = new Engine(this, duration, copy);
1466
1468
  copy.onStart = function() {
1467
1469
  t.target.paused(true);
1468
1470
  if (t.vars.time !== t.target.time() && duration === t.duration()) { //don't make the duration zero - if it's supposed to be zero, don't worry because it's already initting the tween and will complete immediately, effectively making the duration zero anyway. If we make duration zero, the tween won't run at all.
@@ -2208,7 +2210,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2208
2210
  BezierPlugin = _gsScope._gsDefine.plugin({
2209
2211
  propName: "bezier",
2210
2212
  priority: -1,
2211
- version: "1.3.6",
2213
+ version: "1.3.7",
2212
2214
  API: 2,
2213
2215
  global:true,
2214
2216
 
@@ -2219,7 +2221,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2219
2221
  vars = {values:vars};
2220
2222
  }
2221
2223
  this._func = {};
2222
- this._round = {};
2224
+ this._mod = {};
2223
2225
  this._props = [];
2224
2226
  this._timeRes = (vars.timeResolution == null) ? 6 : parseInt(vars.timeResolution, 10);
2225
2227
  var values = vars.values || [],
@@ -2272,6 +2274,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2272
2274
  }
2273
2275
  p = autoRotate[i][2];
2274
2276
  this._initialRotations[i] = (this._func[p] ? this._func[p].call(this._target) : this._target[p]) || 0;
2277
+ this._overwriteProps.push(p);
2275
2278
  }
2276
2279
  }
2277
2280
  this._startRatio = tween.vars.runBackwards ? 1 : 0; //we determine the starting ratio when the tween inits which is always 0 unless the tween has runBackwards:true (indicating it's a from() tween) in which case it's 1.
@@ -2342,8 +2345,8 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2342
2345
  p = this._props[i];
2343
2346
  b = this._beziers[p][curIndex];
2344
2347
  val = (t * t * b.da + 3 * inv * (t * b.ca + inv * b.ba)) * t + b.a;
2345
- if (this._round[p]) {
2346
- val = Math.round(val);
2348
+ if (this._mod[p]) {
2349
+ val = this._mod[p](val, target);
2347
2350
  }
2348
2351
  if (func[p]) {
2349
2352
  target[p](val);
@@ -2379,6 +2382,10 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2379
2382
 
2380
2383
  val = notStart ? Math.atan2(y2 - y1, x2 - x1) * conv + add : this._initialRotations[i];
2381
2384
 
2385
+ if (this._mod[p]) {
2386
+ val = this._mod[p](val, target); //for modProps
2387
+ }
2388
+
2382
2389
  if (func[p]) {
2383
2390
  target[p](val);
2384
2391
  } else {
@@ -2446,18 +2453,21 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2446
2453
  }
2447
2454
  data.autoRotate = cssp._target._gsTransform;
2448
2455
  data.proxy.rotation = data.autoRotate.rotation || 0;
2456
+ cssp._overwriteProps.push("rotation");
2449
2457
  }
2450
2458
  plugin._onInitTween(data.proxy, v, cssp._tween);
2451
2459
  return pt;
2452
2460
  }});
2453
2461
  };
2454
2462
 
2455
- p._roundProps = function(lookup, value) {
2463
+ p._mod = function(lookup) {
2456
2464
  var op = this._overwriteProps,
2457
- i = op.length;
2465
+ i = op.length,
2466
+ val;
2458
2467
  while (--i > -1) {
2459
- if (lookup[op[i]] || lookup.bezier || lookup.bezierThrough) {
2460
- this._round[op[i]] = value;
2468
+ val = lookup[op[i]];
2469
+ if (val && typeof(val) === "function") {
2470
+ this._mod[op[i]] = val;
2461
2471
  }
2462
2472
  }
2463
2473
  };
@@ -2477,6 +2487,15 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2477
2487
  }
2478
2488
  }
2479
2489
  }
2490
+ a = this._autoRotate;
2491
+ if (a) {
2492
+ i = a.length;
2493
+ while (--i > -1) {
2494
+ if (lookup[a[i][2]]) {
2495
+ a.splice(i, 1);
2496
+ }
2497
+ }
2498
+ }
2480
2499
  return this._super._kill.call(this, lookup);
2481
2500
  };
2482
2501
 
@@ -2517,7 +2536,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2517
2536
  p = CSSPlugin.prototype = new TweenPlugin("css");
2518
2537
 
2519
2538
  p.constructor = CSSPlugin;
2520
- CSSPlugin.version = "1.18.5";
2539
+ CSSPlugin.version = "1.19.0";
2521
2540
  CSSPlugin.API = 2;
2522
2541
  CSSPlugin.defaultTransformPerspective = 0;
2523
2542
  CSSPlugin.defaultSkewType = "compensated";
@@ -2585,6 +2604,8 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2585
2604
  console.log(s);
2586
2605
  }
2587
2606
  },
2607
+ _target, //when initting a CSSPlugin, we set this variable so that we can access it from within many other functions without having to pass it around as params
2608
+ _index, //when initting a CSSPlugin, we set this variable so that we can access it from within many other functions without having to pass it around as params
2588
2609
 
2589
2610
  _prefixCSS = "", //the non-camelCase vendor prefix like "-o-", "-moz-", "-ms-", or "-webkit-"
2590
2611
  _prefix = "", //camelCase vendor prefix like "O", "ms", "Webkit", or "Moz".
@@ -2799,10 +2820,10 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2799
2820
 
2800
2821
  // @private Parses position-related complex strings like "top left" or "50px 10px" or "70% 20%", etc. which are used for things like transformOrigin or backgroundPosition. Optionally decorates a supplied object (recObj) with the following properties: "ox" (offsetX), "oy" (offsetY), "oxp" (if true, "ox" is a percentage not a pixel value), and "oxy" (if true, "oy" is a percentage not a pixel value)
2801
2822
  _parsePosition = function(v, recObj) {
2802
- if (v === "contain" || v === "auto" || v === "auto auto") {
2823
+ if (v === "contain" || v === "auto" || v === "auto auto") { //note: Firefox uses "auto auto" as default whereas Chrome uses "auto".
2803
2824
  return v + " ";
2804
2825
  }
2805
- if (v == null || v === "") { //note: Firefox uses "auto auto" as default whereas Chrome uses "auto".
2826
+ if (v == null || v === "") {
2806
2827
  v = "0 0";
2807
2828
  }
2808
2829
  var a = v.split(" "),
@@ -2845,6 +2866,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2845
2866
  * @return {number} Amount of change between the beginning and ending values (relative values that have a "+=" or "-=" are recognized)
2846
2867
  */
2847
2868
  _parseChange = function(e, b) {
2869
+ if (typeof(e) === "function") {
2870
+ e = e(_index, _target);
2871
+ }
2848
2872
  return (typeof(e) === "string" && e.charAt(1) === "=") ? parseInt(e.charAt(0) + "1", 10) * parseFloat(e.substr(2)) : (parseFloat(e) - parseFloat(b)) || 0;
2849
2873
  },
2850
2874
 
@@ -2855,6 +2879,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2855
2879
  * @return {number} Parsed value
2856
2880
  */
2857
2881
  _parseVal = function(v, d) {
2882
+ if (typeof(v) === "function") {
2883
+ v = v(_index, _target);
2884
+ }
2858
2885
  return (v == null) ? d : (typeof(v) === "string" && v.charAt(1) === "=") ? parseInt(v.charAt(0) + "1", 10) * parseFloat(v.substr(2)) + d : parseFloat(v) || 0;
2859
2886
  },
2860
2887
 
@@ -2869,6 +2896,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2869
2896
  _parseAngle = function(v, d, p, directionalEnd) {
2870
2897
  var min = 0.000001,
2871
2898
  cap, split, dif, result, isRelative;
2899
+ if (typeof(v) === "function") {
2900
+ v = v(_index, _target);
2901
+ }
2872
2902
  if (v == null) {
2873
2903
  result = d;
2874
2904
  } else if (typeof(v) === "number") {
@@ -3130,7 +3160,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3130
3160
  };
3131
3161
  },
3132
3162
 
3133
- // @private used when other plugins must tween values first, like BezierPlugin or ThrowPropsPlugin, etc. That plugin's setRatio() gets called first so that the values are updated, and then we loop through the MiniPropTweens which handle copying the values into their appropriate slots so that they can then be applied correctly in the main CSSPlugin setRatio() method. Remember, we typically create a proxy object that has a bunch of uniquely-named properties that we feed to the sub-plugin and it does its magic normally, and then we must interpret those values and apply them to the css because often numbers must get combined/concatenated, suffixes added, etc. to work with css, like boxShadow could have 4 values plus a color.
3163
+ // @private used when other plugins must tween values first, like BezierPlugin or ThrowPropsPlugin, etc. That plugin's setRatio() gets called first so that the values are updated, and then we loop through the MiniPropTweens which handle copying the values into their appropriate slots so that they can then be applied correctly in the main CSSPlugin setRatio() method. Remember, we typically create a proxy object that has a bunch of uniquely-named properties that we feed to the sub-plugin and it does its magic normally, and then we must interpret those values and apply them to the css because often numbers must get combined/concatenated, suffixes added, etc. to work with css, like boxShadow could have 4 values plus a color.
3134
3164
  _setPluginRatio = _internals._setPluginRatio = function(v) {
3135
3165
  this.plugin.setRatio(v);
3136
3166
  var d = this.data,
@@ -3149,7 +3179,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3149
3179
  mpt = mpt._next;
3150
3180
  }
3151
3181
  if (d.autoRotate) {
3152
- d.autoRotate.rotation = proxy.rotation;
3182
+ d.autoRotate.rotation = d.mod ? d.mod(proxy.rotation, this.t) : proxy.rotation; //special case for ModifyPlugin to hook into an auto-rotating bezier
3153
3183
  }
3154
3184
  //at the end, we must set the CSSPropTween's "e" (end) value dynamically here because that's what is used in the final setRatio() method. Same for "b" at the beginning.
3155
3185
  if (v === 1 || v === 0) {
@@ -3326,6 +3356,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3326
3356
  _parseComplex = CSSPlugin.parseComplex = function(t, p, b, e, clrs, dflt, pt, pr, plugin, setRatio) {
3327
3357
  //DEBUG: _log("parseComplex: "+p+", b: "+b+", e: "+e);
3328
3358
  b = b || dflt || "";
3359
+ if (typeof(e) === "function") {
3360
+ e = e(_index, _target);
3361
+ }
3329
3362
  pt = new CSSPropTween(t, p, 0, 0, pt, (setRatio ? 2 : 1), null, false, pr, b, e);
3330
3363
  e += ""; //ensures it's a string
3331
3364
  if (clrs && _colorExp.test(e + b)) { //if colors are found, normalize the formatting to rgba() or hsla().
@@ -3531,7 +3564,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3531
3564
  },
3532
3565
 
3533
3566
  //creates a placeholder special prop for a plugin so that the property gets caught the first time a tween of it is attempted, and at that time it makes the plugin register itself, thus taking over for all future tweens of that property. This allows us to not mandate that things load in a particular order and it also allows us to log() an error that informs the user when they attempt to tween an external plugin-related property without loading its .js file.
3534
- _registerPluginProp = function(p) {
3567
+ _registerPluginProp = _internals._registerPluginProp = function(p) {
3535
3568
  if (!_specialProps[p]) {
3536
3569
  var pluginName = p.charAt(0).toUpperCase() + p.substr(1) + "Plugin";
3537
3570
  _registerComplexSpecialProp(p, {parser:function(t, e, p, cssp, pt, plugin, vars) {
@@ -4114,11 +4147,13 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
4114
4147
  a12 = Math.sin(angle - skew) * -sy;
4115
4148
  a22 = Math.cos(angle - skew) * sy;
4116
4149
  if (skew && t.skewType === "simple") { //by default, we compensate skewing on the other axis to make it look more natural, but you can set the skewType to "simple" to use the uncompensated skewing that CSS does
4117
- t1 = Math.tan(skew);
4150
+ t1 = Math.tan(skew - t.skewY * _DEG2RAD);
4118
4151
  t1 = Math.sqrt(1 + t1 * t1);
4119
4152
  a12 *= t1;
4120
4153
  a22 *= t1;
4121
4154
  if (t.skewY) {
4155
+ t1 = Math.tan(t.skewY * _DEG2RAD);
4156
+ t1 = Math.sqrt(1 + t1 * t1);
4122
4157
  a11 *= t1;
4123
4158
  a21 *= t1;
4124
4159
  }
@@ -4173,11 +4208,13 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
4173
4208
  cos = Math.cos(angle);
4174
4209
  sin = Math.sin(angle);
4175
4210
  if (t.skewType === "simple") { //by default, we compensate skewing on the other axis to make it look more natural, but you can set the skewType to "simple" to use the uncompensated skewing that CSS does
4176
- t1 = Math.tan(t.skewX * _DEG2RAD);
4211
+ t1 = Math.tan((t.skewX - t.skewY) * _DEG2RAD);
4177
4212
  t1 = Math.sqrt(1 + t1 * t1);
4178
4213
  cos *= t1;
4179
4214
  sin *= t1;
4180
4215
  if (t.skewY) {
4216
+ t1 = Math.tan(t.skewY * _DEG2RAD);
4217
+ t1 = Math.sqrt(1 + t1 * t1);
4181
4218
  a11 *= t1;
4182
4219
  a21 *= t1;
4183
4220
  }
@@ -4307,9 +4344,14 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
4307
4344
  p.x = p.y = p.z = p.skewX = p.skewY = p.rotation = p.rotationX = p.rotationY = p.zOrigin = p.xPercent = p.yPercent = p.xOffset = p.yOffset = 0;
4308
4345
  p.scaleX = p.scaleY = p.scaleZ = 1;
4309
4346
 
4310
- _registerComplexSpecialProp("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin", {parser:function(t, e, p, cssp, pt, plugin, vars) {
4347
+ _registerComplexSpecialProp("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin", {parser:function(t, e, parsingProp, cssp, pt, plugin, vars) {
4311
4348
  if (cssp._lastParsedTransform === vars) { return pt; } //only need to parse the transform once, and only if the browser supports it.
4312
4349
  cssp._lastParsedTransform = vars;
4350
+ var swapFunc;
4351
+ if (typeof(vars[parsingProp]) === "function") { //whatever property triggers the initial parsing might be a function-based value in which case it already got called in parse(), thus we don't want to call it again in here. The most efficient way to avoid this is to temporarily swap the value directly into the vars object, and then after we do all our parsing in this function, we'll swap it back again.
4352
+ swapFunc = vars[parsingProp];
4353
+ vars[parsingProp] = e;
4354
+ }
4313
4355
  var originalGSTransform = t._gsTransform,
4314
4356
  style = t.style,
4315
4357
  min = 0.000001,
@@ -4317,12 +4359,13 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
4317
4359
  v = vars,
4318
4360
  endRotations = {},
4319
4361
  transformOriginString = "transformOrigin",
4320
- m1 = _getTransform(t, _cs, true, vars.parseTransform),
4321
- m2, copy, orig, has3D, hasChange, dr, x, y, matrix;
4362
+ m1 = _getTransform(t, _cs, true, v.parseTransform),
4363
+ orig = v.transform && ((typeof(v.transform) === "function") ? v.transform(_index, _target) : v.transform),
4364
+ m2, copy, has3D, hasChange, dr, x, y, matrix, p;
4322
4365
  cssp._transform = m1;
4323
- if (typeof(v.transform) === "string" && _transformProp) { //for values like transform:"rotate(60deg) scale(0.5, 0.8)"
4366
+ if (orig && typeof(orig) === "string" && _transformProp) { //for values like transform:"rotate(60deg) scale(0.5, 0.8)"
4324
4367
  copy = _tempDiv.style; //don't use the original target because it might be SVG in which case some browsers don't report computed style correctly.
4325
- copy[_transformProp] = v.transform;
4368
+ copy[_transformProp] = orig;
4326
4369
  copy.display = "block"; //if display is "none", the browser often refuses to report the transform properties correctly.
4327
4370
  copy.position = "absolute";
4328
4371
  _doc.body.appendChild(_tempDiv);
@@ -4466,6 +4509,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
4466
4509
  if (hasChange) {
4467
4510
  cssp._transformType = (!(m1.svg && _useSVGTransformAttr) && (has3D || this._transformType === 3)) ? 3 : 2; //quicker than calling cssp._enableTransforms();
4468
4511
  }
4512
+ if (swapFunc) {
4513
+ vars[parsingProp] = swapFunc;
4514
+ }
4469
4515
  return pt;
4470
4516
  }, prefix:true});
4471
4517
 
@@ -4557,7 +4603,10 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
4557
4603
  }
4558
4604
  return this.parseComplex(t.style, bs, es, pt, plugin);
4559
4605
  }, formatter:_parsePosition});
4560
- _registerComplexSpecialProp("backgroundSize", {defaultValue:"0 0", formatter:_parsePosition});
4606
+ _registerComplexSpecialProp("backgroundSize", {defaultValue:"0 0", formatter:function(v) {
4607
+ v += ""; //ensure it's a string
4608
+ return _parsePosition(v.indexOf(" ") === -1 ? v + " " + v : v); //if set to something like "100% 100%", Safari typically reports the computed style as just "100%" (no 2nd value), but we should ensure that there are two values, so copy the first one. Otherwise, it'd be interpreted as "100% 0" (wrong).
4609
+ }});
4561
4610
  _registerComplexSpecialProp("perspective", {defaultValue:"0px", prefix:true});
4562
4611
  _registerComplexSpecialProp("perspectiveOrigin", {defaultValue:"50% 50%", prefix:true});
4563
4612
  _registerComplexSpecialProp("transformStyle", {prefix:true});
@@ -4790,13 +4839,14 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
4790
4839
  p._firstPT = p._lastParsedTransform = p._transform = null;
4791
4840
 
4792
4841
  //gets called when the tween renders for the first time. This kicks everything off, recording start/end values, etc.
4793
- p._onInitTween = function(target, vars, tween) {
4842
+ p._onInitTween = function(target, vars, tween, index) {
4794
4843
  if (!target.nodeType) { //css is only for dom elements
4795
4844
  return false;
4796
4845
  }
4797
- this._target = target;
4846
+ this._target = _target = target;
4798
4847
  this._tween = tween;
4799
4848
  this._vars = vars;
4849
+ _index = index;
4800
4850
  _autoRound = vars.autoRound;
4801
4851
  _hasPriority = false;
4802
4852
  _suffixMap = vars.suffixMap || CSSPlugin.suffixMap;
@@ -4896,6 +4946,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
4896
4946
  p, sp, bn, en, bs, es, bsfx, esfx, isStr, rel;
4897
4947
  for (p in vars) {
4898
4948
  es = vars[p]; //ending value string
4949
+ if (typeof(es) === "function") {
4950
+ es = es(_index, _target);
4951
+ }
4899
4952
  sp = _specialProps[p]; //SpecialProp lookup.
4900
4953
  if (sp) {
4901
4954
  pt = sp.parse(target, es, p, this, pt, plugin, vars);
@@ -5128,6 +5181,16 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
5128
5181
  return pt;
5129
5182
  };
5130
5183
 
5184
+ p._mod = function(lookup) {
5185
+ var pt = this._firstPT;
5186
+ while (pt) {
5187
+ if (typeof(lookup[pt.p]) === "function" && lookup[pt.p] === Math.round) { //only gets called by RoundPropsPlugin (ModifyPlugin manages all the rendering internally for CSSPlugin properties that need modification). Remember, we handle rounding a bit differently in this plugin for performance reasons, leveraging "r" as an indicator that the value should be rounded internally..
5188
+ pt.r = 1;
5189
+ }
5190
+ pt = pt._next;
5191
+ }
5192
+ };
5193
+
5131
5194
  //we need to make sure that if alpha or autoAlpha is killed, opacity is too. And autoAlpha affects the "visibility" property.
5132
5195
  p._kill = function(lookup) {
5133
5196
  var copy = lookup,
@@ -5154,6 +5217,14 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
5154
5217
  }
5155
5218
  this._classNamePT = null;
5156
5219
  }
5220
+ pt = this._firstPT;
5221
+ while (pt) {
5222
+ if (pt.plugin && pt.plugin !== p && pt.plugin._kill) { //for plugins that are registered with CSSPlugin, we should notify them of the kill.
5223
+ pt.plugin._kill(lookup);
5224
+ p = pt.plugin;
5225
+ }
5226
+ pt = pt._next;
5227
+ }
5157
5228
  return TweenPlugin.prototype._kill.call(this, copy);
5158
5229
  };
5159
5230
 
@@ -5262,7 +5333,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
5262
5333
 
5263
5334
  var RoundPropsPlugin = _gsScope._gsDefine.plugin({
5264
5335
  propName: "roundProps",
5265
- version: "1.5",
5336
+ version: "1.6.0",
5266
5337
  priority: -1,
5267
5338
  API: 2,
5268
5339
 
@@ -5276,7 +5347,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
5276
5347
  _roundLinkedList = function(node) {
5277
5348
  while (node) {
5278
5349
  if (!node.f && !node.blob) {
5279
- node.r = 1;
5350
+ node.m = Math.round;
5280
5351
  }
5281
5352
  node = node._next;
5282
5353
  }
@@ -5291,7 +5362,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
5291
5362
  rpt = tween._propLookup.roundProps,
5292
5363
  prop, pt, next;
5293
5364
  while (--i > -1) {
5294
- lookup[rp[i]] = 1;
5365
+ lookup[rp[i]] = Math.round;
5295
5366
  }
5296
5367
  i = rp.length;
5297
5368
  while (--i > -1) {
@@ -5300,7 +5371,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
5300
5371
  while (pt) {
5301
5372
  next = pt._next; //record here, because it may get removed
5302
5373
  if (pt.pg) {
5303
- pt.t._roundProps(lookup, true);
5374
+ pt.t._mod(lookup);
5304
5375
  } else if (pt.n === prop) {
5305
5376
  if (pt.f === 2 && pt.t) { //a blob (text containing multiple numeric values)
5306
5377
  _roundLinkedList(pt.t._firstPT);
@@ -5326,7 +5397,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
5326
5397
  };
5327
5398
 
5328
5399
  p._add = function(target, p, s, c) {
5329
- this._addTween(target, p, s, s + c, p, true);
5400
+ this._addTween(target, p, s, s + c, p, Math.round);
5330
5401
  this._overwriteProps.push(p);
5331
5402
  };
5332
5403
 
@@ -5352,16 +5423,20 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
5352
5423
  _gsScope._gsDefine.plugin({
5353
5424
  propName: "attr",
5354
5425
  API: 2,
5355
- version: "0.5.0",
5426
+ version: "0.6.0",
5356
5427
 
5357
5428
  //called when the tween renders for the first time. This is where initial values should be recorded and any setup routines should run.
5358
- init: function(target, value, tween) {
5359
- var p;
5429
+ init: function(target, value, tween, index) {
5430
+ var p, end;
5360
5431
  if (typeof(target.setAttribute) !== "function") {
5361
5432
  return false;
5362
5433
  }
5363
5434
  for (p in value) {
5364
- this._addTween(target, "setAttribute", target.getAttribute(p) + "", value[p] + "", p, false, p);
5435
+ end = value[p];
5436
+ if (typeof(end) === "function") {
5437
+ end = end(index, target);
5438
+ }
5439
+ this._addTween(target, "setAttribute", target.getAttribute(p) + "", end + "", p, false, p);
5365
5440
  this._overwriteProps.push(p);
5366
5441
  }
5367
5442
  return true;
@@ -5387,11 +5462,11 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
5387
5462
  */
5388
5463
  _gsScope._gsDefine.plugin({
5389
5464
  propName: "directionalRotation",
5390
- version: "0.2.1",
5465
+ version: "0.3.0",
5391
5466
  API: 2,
5392
5467
 
5393
5468
  //called when the tween renders for the first time. This is where initial values should be recorded and any setup routines should run.
5394
- init: function(target, value, tween) {
5469
+ init: function(target, value, tween, index) {
5395
5470
  if (typeof(value) !== "object") {
5396
5471
  value = {rotation:value};
5397
5472
  }
@@ -5401,7 +5476,11 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
5401
5476
  p, v, start, end, dif, split;
5402
5477
  for (p in value) {
5403
5478
  if (p !== "useRadians") {
5404
- split = (value[p] + "").split("_");
5479
+ end = value[p];
5480
+ if (typeof(end) === "function") {
5481
+ end = end(index, target);
5482
+ }
5483
+ split = (end + "").split("_");
5405
5484
  v = split[0];
5406
5485
  start = parseFloat( (typeof(target[p]) !== "function") ? target[p] : target[ ((p.indexOf("set") || typeof(target["get" + p.substr(3)]) !== "function") ? p : "get" + p.substr(3)) ]() );
5407
5486
  end = this.finals[p] = (typeof(v) === "string" && v.charAt(1) === "=") ? start + parseInt(v.charAt(0) + "1", 10) * Number(v.substr(2)) : Number(v) || 0;
@@ -5906,7 +5985,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
5906
5985
 
5907
5986
  //exports to multiple environments
5908
5987
  if (global) {
5909
- _globals[n] = cl; //provides a way to avoid global namespace pollution. By default, the main classes like TweenLite, Power1, Strong, etc. are added to window unless a GreenSockGlobals is defined. So if you want to have things added to a custom object instead, just do something like window.GreenSockGlobals = {} before loading any GreenSock files. You can even set up an alias like window.GreenSockGlobals = windows.gs = {} so that you can access everything like gs.TweenLite. Also remember that ALL classes are added to the window.com.greensock object (in their respective packages, like com.greensock.easing.Power1, com.greensock.TweenLite, etc.)
5988
+ _globals[n] = _exports[n] = cl; //provides a way to avoid global namespace pollution. By default, the main classes like TweenLite, Power1, Strong, etc. are added to window unless a GreenSockGlobals is defined. So if you want to have things added to a custom object instead, just do something like window.GreenSockGlobals = {} before loading any GreenSock files. You can even set up an alias like window.GreenSockGlobals = windows.gs = {} so that you can access everything like gs.TweenLite. Also remember that ALL classes are added to the window.com.greensock object (in their respective packages, like com.greensock.easing.Power1, com.greensock.TweenLite, etc.)
5910
5989
  hasModule = (typeof(module) !== "undefined" && module.exports);
5911
5990
  if (!hasModule && typeof(define) === "function" && define.amd){ //AMD
5912
5991
  define((window.GreenSockAMDPath ? window.GreenSockAMDPath + "/" : "") + ns.split(".").pop(), [], function() { return cl; });
@@ -6062,6 +6141,9 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6062
6141
  i, t, listener;
6063
6142
  if (list) {
6064
6143
  i = list.length;
6144
+ if (i > 1) {
6145
+ list = list.slice(0); //in case addEventListener() is called from within a listener/callback (otherwise the index could change, resulting in a skip)
6146
+ }
6065
6147
  t = this._eventTarget;
6066
6148
  while (--i > -1) {
6067
6149
  listener = list[i];
@@ -6351,8 +6433,17 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6351
6433
  };
6352
6434
 
6353
6435
  p._callback = function(type) {
6354
- var v = this.vars;
6355
- v[type].apply(v[type + "Scope"] || v.callbackScope || this, v[type + "Params"] || _blankArray);
6436
+ var v = this.vars,
6437
+ callback = v[type],
6438
+ params = v[type + "Params"],
6439
+ scope = v[type + "Scope"] || v.callbackScope || this,
6440
+ l = params ? params.length : 0;
6441
+ switch (l) { //speed optimization; call() is faster than apply() so use it when there are only a few parameters (which is by far most common). Previously we simply did var v = this.vars; v[type].apply(v[type + "Scope"] || v.callbackScope || this, v[type + "Params"] || _blankArray);
6442
+ case 0: callback.call(scope); break;
6443
+ case 1: callback.call(scope, params[0]); break;
6444
+ case 2: callback.call(scope, params[0], params[1]); break;
6445
+ default: callback.apply(scope, params);
6446
+ }
6356
6447
  };
6357
6448
 
6358
6449
  //----Animation getters/setters --------------------------------------------------------
@@ -6736,7 +6827,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6736
6827
  p._firstPT = p._targets = p._overwrittenProps = p._startAt = null;
6737
6828
  p._notifyPluginsOfEnabled = p._lazy = false;
6738
6829
 
6739
- TweenLite.version = "1.18.5";
6830
+ TweenLite.version = "1.19.0";
6740
6831
  TweenLite.defaultEase = p._ease = new Ease(null, null, 1, 1);
6741
6832
  TweenLite.defaultOverwrite = "auto";
6742
6833
  TweenLite.ticker = _ticker;
@@ -6764,8 +6855,8 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6764
6855
  val;
6765
6856
  while (pt) {
6766
6857
  val = !pt.blob ? pt.c * v + pt.s : v ? this.join("") : this.start;
6767
- if (pt.r) {
6768
- val = Math.round(val);
6858
+ if (pt.m) {
6859
+ val = pt.m(val, this._target || pt.t);
6769
6860
  } else if (val < min) if (val > -min) { //prevents issues with converting very small numbers to strings in the browser
6770
6861
  val = 0;
6771
6862
  }
@@ -6798,7 +6889,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6798
6889
  if (pt) {
6799
6890
  pt._next = null;
6800
6891
  pt.blob = 1;
6801
- a._firstPT = pt; //apply last in the linked list (which means inserting it first)
6892
+ a._firstPT = a._applyPT = pt; //apply last in the linked list (which means inserting it first)
6802
6893
  }
6803
6894
  l = endNums.length;
6804
6895
  for (i = 0; i < l; i++) {
@@ -6820,7 +6911,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6820
6911
  }
6821
6912
  num = parseFloat(startNums[i]);
6822
6913
  a.push(num);
6823
- a._firstPT = {_next: a._firstPT, t:a, p: a.length-1, s:num, c:((currentNum.charAt(1) === "=") ? parseInt(currentNum.charAt(0) + "1", 10) * parseFloat(currentNum.substr(2)) : (parseFloat(currentNum) - num)) || 0, f:0, r:(color && color < 4)};
6914
+ a._firstPT = {_next: a._firstPT, t:a, p: a.length-1, s:num, c:((currentNum.charAt(1) === "=") ? parseInt(currentNum.charAt(0) + "1", 10) * parseFloat(currentNum.substr(2)) : (parseFloat(currentNum) - num)) || 0, f:0, m:(color && color < 4) ? Math.round : 0};
6824
6915
  //note: we don't set _prev because we'll never need to remove individual PropTweens from this list.
6825
6916
  }
6826
6917
  charIndex += currentNum.length;
@@ -6833,11 +6924,14 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6833
6924
  return a;
6834
6925
  },
6835
6926
  //note: "funcParam" is only necessary for function-based getters/setters that require an extra parameter like getAttribute("width") and setAttribute("width", value). In this example, funcParam would be "width". Used by AttrPlugin for example.
6836
- _addPropTween = function(target, prop, start, end, overwriteProp, round, funcParam, stringFilter) {
6927
+ _addPropTween = function(target, prop, start, end, overwriteProp, mod, funcParam, stringFilter, index) {
6928
+ if (typeof(end) === "function") {
6929
+ end = end(index || 0, target);
6930
+ }
6837
6931
  var s = (start === "get") ? target[prop] : start,
6838
6932
  type = typeof(target[prop]),
6839
6933
  isRelative = (typeof(end) === "string" && end.charAt(1) === "="),
6840
- pt = {t:target, p:prop, s:s, f:(type === "function"), pg:0, n:overwriteProp || prop, r:round, pr:0, c:isRelative ? parseInt(end.charAt(0) + "1", 10) * parseFloat(end.substr(2)) : (parseFloat(end) - s) || 0},
6934
+ pt = {t:target, p:prop, s:s, f:(type === "function"), pg:0, n:overwriteProp || prop, m:(!mod ? 0 : (typeof(mod) === "function") ? mod : Math.round), pr:0, c:isRelative ? parseInt(end.charAt(0) + "1", 10) * parseFloat(end.substr(2)) : (parseFloat(end) - s) || 0},
6841
6935
  blob, getterName;
6842
6936
  if (type !== "number") {
6843
6937
  if (type === "function" && start === "get") {
@@ -6848,7 +6942,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6848
6942
  //a blob (string that has multiple numbers in it)
6849
6943
  pt.fp = funcParam;
6850
6944
  blob = _blobDif(s, end, stringFilter || TweenLite.defaultStringFilter, pt);
6851
- pt = {t:blob, p:"setRatio", s:0, c:1, f:2, pg:0, n:overwriteProp || prop, pr:0}; //"2" indicates it's a Blob property tween. Needed for RoundPropsPlugin for example.
6945
+ pt = {t:blob, p:"setRatio", s:0, c:1, f:2, pg:0, n:overwriteProp || prop, pr:0, m:0}; //"2" indicates it's a Blob property tween. Needed for RoundPropsPlugin for example.
6852
6946
  } else if (!isRelative) {
6853
6947
  pt.s = parseFloat(s);
6854
6948
  pt.c = (parseFloat(end) - pt.s) || 0;
@@ -7037,7 +7131,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
7037
7131
  dur = this._duration,
7038
7132
  immediate = !!v.immediateRender,
7039
7133
  ease = v.ease,
7040
- i, initPlugins, pt, p, startVars;
7134
+ i, initPlugins, pt, p, startVars, l;
7041
7135
  if (v.startAt) {
7042
7136
  if (this._startAt) {
7043
7137
  this._startAt.render(-1, true); //if we've run a startAt previously (when the tween instantiated), we should revert it so that the values re-instantiate correctly particularly for relative tweens. Without this, a TweenLite.fromTo(obj, 1, {x:"+=100"}, {x:"-=100"}), for example, would actually jump to +=200 because the startAt would run twice, doubling the relative change.
@@ -7100,14 +7194,14 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
7100
7194
  this._firstPT = null;
7101
7195
 
7102
7196
  if (this._targets) {
7103
- i = this._targets.length;
7104
- while (--i > -1) {
7105
- if ( this._initProps( this._targets[i], (this._propLookup[i] = {}), this._siblings[i], (op ? op[i] : null)) ) {
7197
+ l = this._targets.length;
7198
+ for (i = 0; i < l; i++) {
7199
+ if ( this._initProps( this._targets[i], (this._propLookup[i] = {}), this._siblings[i], (op ? op[i] : null), i) ) {
7106
7200
  initPlugins = true;
7107
7201
  }
7108
7202
  }
7109
7203
  } else {
7110
- initPlugins = this._initProps(this.target, this._propLookup, this._siblings, op);
7204
+ initPlugins = this._initProps(this.target, this._propLookup, this._siblings, op, 0);
7111
7205
  }
7112
7206
 
7113
7207
  if (initPlugins) {
@@ -7128,7 +7222,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
7128
7222
  this._initted = true;
7129
7223
  };
7130
7224
 
7131
- p._initProps = function(target, propLookup, siblings, overwrittenProps) {
7225
+ p._initProps = function(target, propLookup, siblings, overwrittenProps, index) {
7132
7226
  var p, i, initPlugins, plugin, pt, v;
7133
7227
  if (target == null) {
7134
7228
  return false;
@@ -7148,7 +7242,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
7148
7242
  this.vars[p] = v = this._swapSelfInParams(v, this);
7149
7243
  }
7150
7244
 
7151
- } else if (_plugins[p] && (plugin = new _plugins[p]())._onInitTween(target, this.vars[p], this)) {
7245
+ } else if (_plugins[p] && (plugin = new _plugins[p]())._onInitTween(target, this.vars[p], this, index)) {
7152
7246
 
7153
7247
  //t - target [object]
7154
7248
  //p - property [string]
@@ -7158,7 +7252,8 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
7158
7252
  //n - name [string]
7159
7253
  //pg - isPlugin [boolean]
7160
7254
  //pr - priority [number]
7161
- this._firstPT = pt = {_next:this._firstPT, t:plugin, p:"setRatio", s:0, c:1, f:1, n:p, pg:1, pr:plugin._priority};
7255
+ //m - mod [function | 0]
7256
+ this._firstPT = pt = {_next:this._firstPT, t:plugin, p:"setRatio", s:0, c:1, f:1, n:p, pg:1, pr:plugin._priority, m:0};
7162
7257
  i = plugin._overwriteProps.length;
7163
7258
  while (--i > -1) {
7164
7259
  propLookup[plugin._overwriteProps[i]] = this._firstPT;
@@ -7174,16 +7269,16 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
7174
7269
  }
7175
7270
 
7176
7271
  } else {
7177
- propLookup[p] = _addPropTween.call(this, target, p, "get", v, p, 0, null, this.vars.stringFilter);
7272
+ propLookup[p] = _addPropTween.call(this, target, p, "get", v, p, 0, null, this.vars.stringFilter, index);
7178
7273
  }
7179
7274
  }
7180
7275
 
7181
7276
  if (overwrittenProps) if (this._kill(overwrittenProps, target)) { //another tween may have tried to overwrite properties of this tween before init() was called (like if two tweens start at the same time, the one created second will run first)
7182
- return this._initProps(target, propLookup, siblings, overwrittenProps);
7277
+ return this._initProps(target, propLookup, siblings, overwrittenProps, index);
7183
7278
  }
7184
7279
  if (this._overwrite > 1) if (this._firstPT) if (siblings.length > 1) if (_applyOverwrite(target, this, propLookup, this._overwrite, siblings)) {
7185
7280
  this._kill(propLookup, target);
7186
- return this._initProps(target, propLookup, siblings, overwrittenProps);
7281
+ return this._initProps(target, propLookup, siblings, overwrittenProps, index);
7187
7282
  }
7188
7283
  if (this._firstPT) if ((this.vars.lazy !== false && this._duration) || (this.vars.lazy && !this._duration)) { //zero duration tweens don't lazy render by default; everything else does.
7189
7284
  _lazyLookup[target._gsTweenID] = true;
@@ -7563,7 +7658,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
7563
7658
  }, true);
7564
7659
 
7565
7660
  p = TweenPlugin.prototype;
7566
- TweenPlugin.version = "1.18.0";
7661
+ TweenPlugin.version = "1.19.0";
7567
7662
  TweenPlugin.API = 2;
7568
7663
  p._firstPT = null;
7569
7664
  p._addTween = _addPropTween;
@@ -7600,11 +7695,17 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
7600
7695
  return false;
7601
7696
  };
7602
7697
 
7603
- p._roundProps = function(lookup, value) {
7604
- var pt = this._firstPT;
7698
+ p._mod = p._roundProps = function(lookup) {
7699
+ var pt = this._firstPT,
7700
+ val;
7605
7701
  while (pt) {
7606
- if (lookup[this._propName] || (pt.n != null && lookup[ pt.n.split(this._propName + "_").join("") ])) { //some properties that are very plugin-specific add a prefix named after the _propName plus an underscore, so we need to ignore that extra stuff here.
7607
- pt.r = value;
7702
+ val = lookup[this._propName] || (pt.n != null && lookup[ pt.n.split(this._propName + "_").join("") ]);
7703
+ if (val && typeof(val) === "function") { //some properties that are very plugin-specific add a prefix named after the _propName plus an underscore, so we need to ignore that extra stuff here.
7704
+ if (pt.f === 2) {
7705
+ pt.t._applyPT.m = val;
7706
+ } else {
7707
+ pt.m = val;
7708
+ }
7608
7709
  }
7609
7710
  pt = pt._next;
7610
7711
  }
@@ -7660,7 +7761,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
7660
7761
  var propName = config.propName,
7661
7762
  priority = config.priority || 0,
7662
7763
  overwriteProps = config.overwriteProps,
7663
- map = {init:"_onInitTween", set:"setRatio", kill:"_kill", round:"_roundProps", initAll:"_onInitAllProps"},
7764
+ map = {init:"_onInitTween", set:"setRatio", kill:"_kill", round:"_mod", mod:"_mod", initAll:"_onInitAllProps"},
7664
7765
  Plugin = _class("plugins." + propName.charAt(0).toUpperCase() + propName.substr(1) + "Plugin",
7665
7766
  function() {
7666
7767
  TweenPlugin.call(this, propName, priority);
@@ -7689,7 +7790,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
7689
7790
  }
7690
7791
  for (p in _defLookup) {
7691
7792
  if (!_defLookup[p].func) {
7692
- window.console.log("GSAP encountered missing dependency: com.greensock." + p);
7793
+ window.console.log("GSAP encountered missing dependency: " + p);
7693
7794
  }
7694
7795
  }
7695
7796
  }