greensock-rails 1.13.1.0 → 1.13.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 649f926f3d242b1ed584c267c2fb1ec9bab13c89
4
- data.tar.gz: ecf9549b8688cee74f079d2e016e7bc6dd3a8acf
3
+ metadata.gz: b25cb7670b6ba9df19940ad19b98c380f821c392
4
+ data.tar.gz: 5c61aad86d6082b7ac861096ad2344de4cc93aaa
5
5
  SHA512:
6
- metadata.gz: 7a25c7565e4cc885412c5968915ef374ff01c343e6085e480386fbed502d5bbb51d1973397e5ec1d36b43de6cf26f6d8012cebaefcdbca9e2761982e77abb812
7
- data.tar.gz: d1adca2112c0a3c9aa936db2a461279edcf8cf43e5931c813931fb48ed725bb161f26643a69b02035a355af13824a235f2ea1074624131a14b3c3c0f8352c658
6
+ metadata.gz: ab119b2c6f6066c579b47766b744e40483419485b532d7bbec487445de3b2871bd13e150b445d321bd4d6b277b4ec567ec0076439aee631559838778229a7f4f
7
+ data.tar.gz: a00476f291d8c599b8cd4ecaa644157f1e57e0eb4104c6dfa941d06b2244855a3ab0eeea16c057f5f712dccb44c8d586019f40588813cf94f0369cd9c4885d56
@@ -1,5 +1,5 @@
1
1
  module Greensock
2
2
  module Rails
3
- VERSION = "1.13.1.0"
3
+ VERSION = "1.13.2.0"
4
4
  end
5
5
  end
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.13.1
3
- * DATE: 2014-07-22
2
+ * VERSION: 1.13.2
3
+ * DATE: 2014-08-23
4
4
  * UPDATES AND DOCS AT: http://www.greensock.com
5
5
  *
6
6
  * @license Copyright (c) 2008-2014, GreenSock. All rights reserved.
@@ -51,9 +51,15 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
51
51
  return copy;
52
52
  },
53
53
  _pauseCallback = function(tween, callback, params, scope) {
54
- tween._timeline.pause(tween._startTime);
55
- if (callback) {
56
- callback.apply(scope || tween._timeline, params || _blankArray);
54
+ var time = tween._timeline._totalTime;
55
+ if (callback || !this._forcingPlayhead) { //if the user calls a method that moves the playhead (like progress() or time()), it should honor that and skip any pauses (although if there's a callback positioned at that pause, it must jump there and make the call to ensure the time is EXACTLY what it is supposed to be, and then proceed to where the playhead is being forced). Otherwise, imagine placing a pause in the middle of a timeline and then doing timeline.progress(0.9) - it would get stuck where the pause is.
56
+ tween._timeline.pause(tween._startTime);
57
+ if (callback) {
58
+ callback.apply(scope || tween._timeline, params || _blankArray);
59
+ }
60
+ if (this._forcingPlayhead) {
61
+ tween._timeline.seek(time);
62
+ }
57
63
  }
58
64
  },
59
65
  _slice = function(a) { //don't use [].slice because that doesn't work in IE8 with a NodeList that's returned by querySelectorAll()
@@ -65,9 +71,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
65
71
  },
66
72
  p = TimelineLite.prototype = new SimpleTimeline();
67
73
 
68
- TimelineLite.version = "1.13.1";
74
+ TimelineLite.version = "1.13.2";
69
75
  p.constructor = TimelineLite;
70
- p.kill()._gc = false;
76
+ p.kill()._gc = p._forcingPlayhead = false;
71
77
 
72
78
  /* might use later...
73
79
  //translates a local time inside an animation to the corresponding time on the root/global timeline, factoring in all nesting and timeScales.
@@ -577,7 +583,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
577
583
  tween.invalidate();
578
584
  tween = tween._next;
579
585
  }
580
- return this;
586
+ return Animation.prototype.invalidate.call(this);;
581
587
  };
582
588
 
583
589
  p._enabled = function(enabled, ignoreTimeline) {
@@ -590,6 +596,13 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
590
596
  }
591
597
  return SimpleTimeline.prototype._enabled.call(this, enabled, ignoreTimeline);
592
598
  };
599
+
600
+ p.totalTime = function(time, suppressEvents, uncapped) {
601
+ this._forcingPlayhead = true;
602
+ var val = Animation.prototype.totalTime.apply(this, arguments);
603
+ this._forcingPlayhead = false;
604
+ return val;
605
+ };
593
606
 
594
607
  p.duration = function(value) {
595
608
  if (!arguments.length) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.13.1
3
- * DATE: 2014-07-22
2
+ * VERSION: 1.13.2
3
+ * DATE: 2014-08-23
4
4
  * UPDATES AND DOCS AT: http://www.greensock.com
5
5
  *
6
6
  * @license Copyright (c) 2008-2014, GreenSock. All rights reserved.
@@ -34,7 +34,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
34
34
 
35
35
  p.constructor = TimelineMax;
36
36
  p.kill()._gc = false;
37
- TimelineMax.version = "1.13.1";
37
+ TimelineMax.version = "1.13.2";
38
38
 
39
39
  p.invalidate = function() {
40
40
  this._yoyo = (this.vars.yoyo === true);
@@ -376,12 +376,12 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
376
376
 
377
377
  //---- GETTERS / SETTERS -------------------------------------------------------------------------------------------------------
378
378
 
379
- p.progress = function(value) {
380
- return (!arguments.length) ? this._time / this.duration() : this.totalTime( this.duration() * ((this._yoyo && (this._cycle & 1) !== 0) ? 1 - value : value) + (this._cycle * (this._duration + this._repeatDelay)), false);
379
+ p.progress = function(value, suppressEvents) {
380
+ return (!arguments.length) ? this._time / this.duration() : this.totalTime( this.duration() * ((this._yoyo && (this._cycle & 1) !== 0) ? 1 - value : value) + (this._cycle * (this._duration + this._repeatDelay)), suppressEvents);
381
381
  };
382
382
 
383
- p.totalProgress = function(value) {
384
- return (!arguments.length) ? this._totalTime / this.totalDuration() : this.totalTime( this.totalDuration() * value, false);
383
+ p.totalProgress = function(value, suppressEvents) {
384
+ return (!arguments.length) ? this._totalTime / this.totalDuration() : this.totalTime( this.totalDuration() * value, suppressEvents);
385
385
  };
386
386
 
387
387
  p.totalDuration = function(value) {
@@ -498,9 +498,15 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
498
498
  return copy;
499
499
  },
500
500
  _pauseCallback = function(tween, callback, params, scope) {
501
- tween._timeline.pause(tween._startTime);
502
- if (callback) {
503
- callback.apply(scope || tween._timeline, params || _blankArray);
501
+ var time = tween._timeline._totalTime;
502
+ if (callback || !this._forcingPlayhead) { //if the user calls a method that moves the playhead (like progress() or time()), it should honor that and skip any pauses (although if there's a callback positioned at that pause, it must jump there and make the call to ensure the time is EXACTLY what it is supposed to be, and then proceed to where the playhead is being forced). Otherwise, imagine placing a pause in the middle of a timeline and then doing timeline.progress(0.9) - it would get stuck where the pause is.
503
+ tween._timeline.pause(tween._startTime);
504
+ if (callback) {
505
+ callback.apply(scope || tween._timeline, params || _blankArray);
506
+ }
507
+ if (this._forcingPlayhead) {
508
+ tween._timeline.seek(time);
509
+ }
504
510
  }
505
511
  },
506
512
  _slice = function(a) { //don't use [].slice because that doesn't work in IE8 with a NodeList that's returned by querySelectorAll()
@@ -512,9 +518,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
512
518
  },
513
519
  p = TimelineLite.prototype = new SimpleTimeline();
514
520
 
515
- TimelineLite.version = "1.13.1";
521
+ TimelineLite.version = "1.13.2";
516
522
  p.constructor = TimelineLite;
517
- p.kill()._gc = false;
523
+ p.kill()._gc = p._forcingPlayhead = false;
518
524
 
519
525
  /* might use later...
520
526
  //translates a local time inside an animation to the corresponding time on the root/global timeline, factoring in all nesting and timeScales.
@@ -1024,7 +1030,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1024
1030
  tween.invalidate();
1025
1031
  tween = tween._next;
1026
1032
  }
1027
- return this;
1033
+ return Animation.prototype.invalidate.call(this);;
1028
1034
  };
1029
1035
 
1030
1036
  p._enabled = function(enabled, ignoreTimeline) {
@@ -1038,6 +1044,13 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1038
1044
  return SimpleTimeline.prototype._enabled.call(this, enabled, ignoreTimeline);
1039
1045
  };
1040
1046
 
1047
+ p.totalTime = function(time, suppressEvents, uncapped) {
1048
+ this._forcingPlayhead = true;
1049
+ var val = Animation.prototype.totalTime.apply(this, arguments);
1050
+ this._forcingPlayhead = false;
1051
+ return val;
1052
+ };
1053
+
1041
1054
  p.duration = function(value) {
1042
1055
  if (!arguments.length) {
1043
1056
  if (this._dirty) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.13.1
3
- * DATE: 2014-07-22
2
+ * VERSION: 1.13.2
3
+ * DATE: 2014-08-23
4
4
  * UPDATES AND DOCS AT: http://www.greensock.com
5
5
  *
6
6
  * @license Copyright (c) 2008-2014, GreenSock. All rights reserved.
@@ -64,7 +64,7 @@
64
64
  * </script>
65
65
  * <script src="js/greensock/v1.7/TweenMax.js"></script>
66
66
  * <script>
67
- * window.GreenSockGlobals = window._gsQueue = null; //reset it back to null (along with the special _gsQueue variable) so that the next load of TweenMax affects the window and we can reference things directly like TweenLite.to(...)
67
+ * window.GreenSockGlobals = window._gsQueue = window._gsDefine = null; //reset it back to null (along with the special _gsQueue variable) so that the next load of TweenMax affects the window and we can reference things directly like TweenLite.to(...)
68
68
  * </script>
69
69
  * <script src="js/greensock/v1.6/TweenMax.js"></script>
70
70
  * <script>
@@ -471,6 +471,12 @@
471
471
  };
472
472
 
473
473
  p.invalidate = function() {
474
+ this._time = this._totalTime = 0;
475
+ this._initted = this._gc = false;
476
+ this._rawPrevTime = -1;
477
+ if (this._gc || !this.timeline) {
478
+ this._enabled(true);
479
+ }
474
480
  return this;
475
481
  };
476
482
 
@@ -894,7 +900,7 @@
894
900
  p._firstPT = p._targets = p._overwrittenProps = p._startAt = null;
895
901
  p._notifyPluginsOfEnabled = p._lazy = false;
896
902
 
897
- TweenLite.version = "1.13.1";
903
+ TweenLite.version = "1.13.2";
898
904
  TweenLite.defaultEase = p._ease = new Ease(null, null, 1, 1);
899
905
  TweenLite.defaultOverwrite = "auto";
900
906
  TweenLite.ticker = _ticker;
@@ -928,7 +934,7 @@
928
934
  while (--i > -1) {
929
935
  a = _lazyTweens[i];
930
936
  if (a && a._lazy !== false) {
931
- a.render(a._lazy, false, true);
937
+ a.render(a._lazy[0], a._lazy[1], true);
932
938
  a._lazy = false;
933
939
  }
934
940
  }
@@ -1101,6 +1107,9 @@
1101
1107
  this._startAt.kill();
1102
1108
  this._startAt = null;
1103
1109
  } else {
1110
+ if (this._time !== 0) { //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0
1111
+ immediate = false;
1112
+ }
1104
1113
  pt = {};
1105
1114
  for (p in v) { //copy props into a new object and skip any reserved props, otherwise onComplete or onUpdate or onStart could fire. We should, however, permit autoCSS to go through.
1106
1115
  if (!_reservedProps[p] || p === "autoCSS") {
@@ -1115,6 +1124,9 @@
1115
1124
  if (!immediate) {
1116
1125
  this._startAt._init(); //ensures that the initial values are recorded
1117
1126
  this._startAt._enabled(false); //no need to have the tween render on the next cycle. Disable it because we'll always manually control the renders of the _startAt tween.
1127
+ if (this.vars.immediateRender) {
1128
+ this._startAt = null;
1129
+ }
1118
1130
  } else if (this._time === 0) {
1119
1131
  return;
1120
1132
  }
@@ -1262,7 +1274,8 @@
1262
1274
  }
1263
1275
  this._rawPrevTime = rawPrevTime = (!suppressEvents || time || prevRawPrevTime === time) ? time : _tinyNum; //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. We set the _rawPrevTime to be a precise tiny number to indicate this scenario rather than using another property/variable which would increase memory usage. This technique is less readable, but more efficient.
1264
1276
  }
1265
- } else if (!this._initted) { //if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.
1277
+ }
1278
+ if (!this._initted) { //if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.
1266
1279
  force = true;
1267
1280
  }
1268
1281
  } else {
@@ -1311,7 +1324,7 @@
1311
1324
  this._time = this._totalTime = prevTime;
1312
1325
  this._rawPrevTime = prevRawPrevTime;
1313
1326
  _lazyTweens.push(this);
1314
- this._lazy = time;
1327
+ this._lazy = [time, suppressEvents];
1315
1328
  return;
1316
1329
  }
1317
1330
  //_ease is initially set to defaultEase, so now that init() has run, _ease is set properly and we need to recalculate the ratio. Overall this is faster than using conditional logic earlier in the method to avoid having to set ratio twice because we only init() once but renderTime() gets called VERY frequently.
@@ -1449,12 +1462,14 @@
1449
1462
  if (this._notifyPluginsOfEnabled) {
1450
1463
  TweenLite._onPluginEvent("_onDisable", this);
1451
1464
  }
1452
- this._firstPT = null;
1453
- this._overwrittenProps = null;
1454
- this._onUpdate = null;
1455
- this._startAt = null;
1456
- this._initted = this._active = this._notifyPluginsOfEnabled = this._lazy = false;
1465
+ this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null;
1466
+ this._notifyPluginsOfEnabled = this._active = this._lazy = false;
1457
1467
  this._propLookup = (this._targets) ? {} : [];
1468
+ Animation.prototype.invalidate.call(this);
1469
+ if (this.vars.immediateRender) {
1470
+ this._time = -_tinyNum; //forces a render without having to set the render() "force" parameter to true because we want to allow lazying by default (using the "force" parameter always forces an immediate full render)
1471
+ this.render(-this._delay);
1472
+ }
1458
1473
  return this;
1459
1474
  };
1460
1475
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.13.1
3
- * DATE: 2014-07-19
2
+ * VERSION: 1.13.2
3
+ * DATE: 2014-08-23
4
4
  * UPDATES AND DOCS AT: http://www.greensock.com
5
5
  *
6
6
  * Includes all of the following: TweenLite, TweenMax, TimelineLite, TimelineMax, EasePack, CSSPlugin, RoundPropsPlugin, BezierPlugin, AttrPlugin, DirectionalRotationPlugin
@@ -41,7 +41,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
41
41
  p = TweenMax.prototype = TweenLite.to({}, 0.1, {}),
42
42
  _blankArray = [];
43
43
 
44
- TweenMax.version = "1.13.1";
44
+ TweenMax.version = "1.13.2";
45
45
  p.constructor = TweenMax;
46
46
  p.kill()._gc = false;
47
47
  TweenMax.killTweensOf = TweenMax.killDelayedCallsTo = TweenLite.killTweensOf;
@@ -157,7 +157,8 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
157
157
  }
158
158
  this._rawPrevTime = rawPrevTime = (!suppressEvents || time || prevRawPrevTime === time) ? time : _tinyNum; //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. We set the _rawPrevTime to be a precise tiny number to indicate this scenario rather than using another property/variable which would increase memory usage. This technique is less readable, but more efficient.
159
159
  }
160
- } else if (!this._initted) { //if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.
160
+ }
161
+ if (!this._initted) { //if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.
161
162
  force = true;
162
163
  }
163
164
  } else {
@@ -231,7 +232,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
231
232
  this._rawPrevTime = prevRawPrevTime;
232
233
  this._cycle = prevCycle;
233
234
  TweenLiteInternals.lazyTweens.push(this);
234
- this._lazy = time;
235
+ this._lazy = [time, suppressEvents];
235
236
  return;
236
237
  }
237
238
  //_ease is initially set to defaultEase, so now that init() has run, _ease is set properly and we need to recalculate the ratio. Overall this is faster than using conditional logic earlier in the method to avoid having to set ratio twice because we only init() once but renderTime() gets called VERY frequently.
@@ -630,9 +631,15 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
630
631
  return copy;
631
632
  },
632
633
  _pauseCallback = function(tween, callback, params, scope) {
633
- tween._timeline.pause(tween._startTime);
634
- if (callback) {
635
- callback.apply(scope || tween._timeline, params || _blankArray);
634
+ var time = tween._timeline._totalTime;
635
+ if (callback || !this._forcingPlayhead) { //if the user calls a method that moves the playhead (like progress() or time()), it should honor that and skip any pauses (although if there's a callback positioned at that pause, it must jump there and make the call to ensure the time is EXACTLY what it is supposed to be, and then proceed to where the playhead is being forced). Otherwise, imagine placing a pause in the middle of a timeline and then doing timeline.progress(0.9) - it would get stuck where the pause is.
636
+ tween._timeline.pause(tween._startTime);
637
+ if (callback) {
638
+ callback.apply(scope || tween._timeline, params || _blankArray);
639
+ }
640
+ if (this._forcingPlayhead) {
641
+ tween._timeline.seek(time);
642
+ }
636
643
  }
637
644
  },
638
645
  _slice = function(a) { //don't use [].slice because that doesn't work in IE8 with a NodeList that's returned by querySelectorAll()
@@ -644,9 +651,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
644
651
  },
645
652
  p = TimelineLite.prototype = new SimpleTimeline();
646
653
 
647
- TimelineLite.version = "1.13.1";
654
+ TimelineLite.version = "1.13.2";
648
655
  p.constructor = TimelineLite;
649
- p.kill()._gc = false;
656
+ p.kill()._gc = p._forcingPlayhead = false;
650
657
 
651
658
  /* might use later...
652
659
  //translates a local time inside an animation to the corresponding time on the root/global timeline, factoring in all nesting and timeScales.
@@ -1156,7 +1163,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1156
1163
  tween.invalidate();
1157
1164
  tween = tween._next;
1158
1165
  }
1159
- return this;
1166
+ return Animation.prototype.invalidate.call(this);;
1160
1167
  };
1161
1168
 
1162
1169
  p._enabled = function(enabled, ignoreTimeline) {
@@ -1170,6 +1177,13 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1170
1177
  return SimpleTimeline.prototype._enabled.call(this, enabled, ignoreTimeline);
1171
1178
  };
1172
1179
 
1180
+ p.totalTime = function(time, suppressEvents, uncapped) {
1181
+ this._forcingPlayhead = true;
1182
+ var val = Animation.prototype.totalTime.apply(this, arguments);
1183
+ this._forcingPlayhead = false;
1184
+ return val;
1185
+ };
1186
+
1173
1187
  p.duration = function(value) {
1174
1188
  if (!arguments.length) {
1175
1189
  if (this._dirty) {
@@ -1278,7 +1292,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1278
1292
 
1279
1293
  p.constructor = TimelineMax;
1280
1294
  p.kill()._gc = false;
1281
- TimelineMax.version = "1.13.1";
1295
+ TimelineMax.version = "1.13.2";
1282
1296
 
1283
1297
  p.invalidate = function() {
1284
1298
  this._yoyo = (this.vars.yoyo === true);
@@ -1620,12 +1634,12 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1620
1634
 
1621
1635
  //---- GETTERS / SETTERS -------------------------------------------------------------------------------------------------------
1622
1636
 
1623
- p.progress = function(value) {
1624
- return (!arguments.length) ? this._time / this.duration() : this.totalTime( this.duration() * ((this._yoyo && (this._cycle & 1) !== 0) ? 1 - value : value) + (this._cycle * (this._duration + this._repeatDelay)), false);
1637
+ p.progress = function(value, suppressEvents) {
1638
+ return (!arguments.length) ? this._time / this.duration() : this.totalTime( this.duration() * ((this._yoyo && (this._cycle & 1) !== 0) ? 1 - value : value) + (this._cycle * (this._duration + this._repeatDelay)), suppressEvents);
1625
1639
  };
1626
1640
 
1627
- p.totalProgress = function(value) {
1628
- return (!arguments.length) ? this._totalTime / this.totalDuration() : this.totalTime( this.totalDuration() * value, false);
1641
+ p.totalProgress = function(value, suppressEvents) {
1642
+ return (!arguments.length) ? this._totalTime / this.totalDuration() : this.totalTime( this.totalDuration() * value, suppressEvents);
1629
1643
  };
1630
1644
 
1631
1645
  p.totalDuration = function(value) {
@@ -2311,7 +2325,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2311
2325
  p = CSSPlugin.prototype = new TweenPlugin("css");
2312
2326
 
2313
2327
  p.constructor = CSSPlugin;
2314
- CSSPlugin.version = "1.13.1";
2328
+ CSSPlugin.version = "1.13.2";
2315
2329
  CSSPlugin.API = 2;
2316
2330
  CSSPlugin.defaultTransformPerspective = 0;
2317
2331
  CSSPlugin.defaultSkewType = "compensated";
@@ -3357,6 +3371,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3357
3371
  minAngle = 179.99,
3358
3372
  minPI = minAngle * _DEG2RAD,
3359
3373
  zOrigin = _supports3D ? parseFloat(_getStyle(t, _transformOriginProp, cs, false, "0 0 0").split(" ")[2]) || tm.zOrigin || 0 : 0,
3374
+ defaultTransformPerspective = parseFloat(CSSPlugin.defaultTransformPerspective) || 0,
3360
3375
  s, m, i, n, dec, scaleX, scaleY, rotation, skewX, difX, difY, difR, difS;
3361
3376
  if (_transformProp) {
3362
3377
  s = _getStyle(t, _transformPropCSS, cs, true);
@@ -3366,7 +3381,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3366
3381
  s = (s && s.length === 4) ? [s[0].substr(4), Number(s[2].substr(4)), Number(s[1].substr(4)), s[3].substr(4), (tm.x || 0), (tm.y || 0)].join(",") : "";
3367
3382
  }
3368
3383
  if (!s || s === "none" || s === "matrix(1, 0, 0, 1, 0, 0)") { //if no transforms are applied, just use the defaults to optimize performance (no need to parse).
3369
- tm = {x:0, y:0, z:0, scaleX:1, scaleY:1, scaleZ:1, skewX:0, perspective:0, rotation:0, rotationX:0, rotationY:0, zOrigin:0};
3384
+ tm = {x:0, y:0, z:0, scaleX:1, scaleY:1, scaleZ:1, skewX:0, perspective:defaultTransformPerspective, rotation:0, rotationX:0, rotationY:0, zOrigin:0};
3370
3385
  } else {
3371
3386
  //split the matrix values out into an array (m for matrix)
3372
3387
  m = (s || "").match(/(?:\-|\b)[\d\-\.e]+\b/gi) || [];
@@ -3497,7 +3512,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3497
3512
  }
3498
3513
  if (_supports3D) {
3499
3514
  tm.rotationX = tm.rotationY = tm.z = 0;
3500
- tm.perspective = parseFloat(CSSPlugin.defaultTransformPerspective) || 0;
3515
+ tm.perspective = defaultTransformPerspective;
3501
3516
  tm.scaleZ = 1;
3502
3517
  }
3503
3518
  }
@@ -5228,7 +5243,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
5228
5243
  * </script>
5229
5244
  * <script src="js/greensock/v1.7/TweenMax.js"></script>
5230
5245
  * <script>
5231
- * window.GreenSockGlobals = window._gsQueue = null; //reset it back to null (along with the special _gsQueue variable) so that the next load of TweenMax affects the window and we can reference things directly like TweenLite.to(...)
5246
+ * window.GreenSockGlobals = window._gsQueue = window._gsDefine = null; //reset it back to null (along with the special _gsQueue variable) so that the next load of TweenMax affects the window and we can reference things directly like TweenLite.to(...)
5232
5247
  * </script>
5233
5248
  * <script src="js/greensock/v1.6/TweenMax.js"></script>
5234
5249
  * <script>
@@ -5635,6 +5650,12 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
5635
5650
  };
5636
5651
 
5637
5652
  p.invalidate = function() {
5653
+ this._time = this._totalTime = 0;
5654
+ this._initted = this._gc = false;
5655
+ this._rawPrevTime = -1;
5656
+ if (this._gc || !this.timeline) {
5657
+ this._enabled(true);
5658
+ }
5638
5659
  return this;
5639
5660
  };
5640
5661
 
@@ -6058,7 +6079,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6058
6079
  p._firstPT = p._targets = p._overwrittenProps = p._startAt = null;
6059
6080
  p._notifyPluginsOfEnabled = p._lazy = false;
6060
6081
 
6061
- TweenLite.version = "1.13.1";
6082
+ TweenLite.version = "1.13.2";
6062
6083
  TweenLite.defaultEase = p._ease = new Ease(null, null, 1, 1);
6063
6084
  TweenLite.defaultOverwrite = "auto";
6064
6085
  TweenLite.ticker = _ticker;
@@ -6092,7 +6113,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6092
6113
  while (--i > -1) {
6093
6114
  a = _lazyTweens[i];
6094
6115
  if (a && a._lazy !== false) {
6095
- a.render(a._lazy, false, true);
6116
+ a.render(a._lazy[0], a._lazy[1], true);
6096
6117
  a._lazy = false;
6097
6118
  }
6098
6119
  }
@@ -6265,6 +6286,9 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6265
6286
  this._startAt.kill();
6266
6287
  this._startAt = null;
6267
6288
  } else {
6289
+ if (this._time !== 0) { //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0
6290
+ immediate = false;
6291
+ }
6268
6292
  pt = {};
6269
6293
  for (p in v) { //copy props into a new object and skip any reserved props, otherwise onComplete or onUpdate or onStart could fire. We should, however, permit autoCSS to go through.
6270
6294
  if (!_reservedProps[p] || p === "autoCSS") {
@@ -6279,6 +6303,9 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6279
6303
  if (!immediate) {
6280
6304
  this._startAt._init(); //ensures that the initial values are recorded
6281
6305
  this._startAt._enabled(false); //no need to have the tween render on the next cycle. Disable it because we'll always manually control the renders of the _startAt tween.
6306
+ if (this.vars.immediateRender) {
6307
+ this._startAt = null;
6308
+ }
6282
6309
  } else if (this._time === 0) {
6283
6310
  return;
6284
6311
  }
@@ -6426,7 +6453,8 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6426
6453
  }
6427
6454
  this._rawPrevTime = rawPrevTime = (!suppressEvents || time || prevRawPrevTime === time) ? time : _tinyNum; //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. We set the _rawPrevTime to be a precise tiny number to indicate this scenario rather than using another property/variable which would increase memory usage. This technique is less readable, but more efficient.
6428
6455
  }
6429
- } else if (!this._initted) { //if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.
6456
+ }
6457
+ if (!this._initted) { //if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.
6430
6458
  force = true;
6431
6459
  }
6432
6460
  } else {
@@ -6475,7 +6503,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6475
6503
  this._time = this._totalTime = prevTime;
6476
6504
  this._rawPrevTime = prevRawPrevTime;
6477
6505
  _lazyTweens.push(this);
6478
- this._lazy = time;
6506
+ this._lazy = [time, suppressEvents];
6479
6507
  return;
6480
6508
  }
6481
6509
  //_ease is initially set to defaultEase, so now that init() has run, _ease is set properly and we need to recalculate the ratio. Overall this is faster than using conditional logic earlier in the method to avoid having to set ratio twice because we only init() once but renderTime() gets called VERY frequently.
@@ -6613,12 +6641,14 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6613
6641
  if (this._notifyPluginsOfEnabled) {
6614
6642
  TweenLite._onPluginEvent("_onDisable", this);
6615
6643
  }
6616
- this._firstPT = null;
6617
- this._overwrittenProps = null;
6618
- this._onUpdate = null;
6619
- this._startAt = null;
6620
- this._initted = this._active = this._notifyPluginsOfEnabled = this._lazy = false;
6644
+ this._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null;
6645
+ this._notifyPluginsOfEnabled = this._active = this._lazy = false;
6621
6646
  this._propLookup = (this._targets) ? {} : [];
6647
+ Animation.prototype.invalidate.call(this);
6648
+ if (this.vars.immediateRender) {
6649
+ this._time = -_tinyNum; //forces a render without having to set the render() "force" parameter to true because we want to allow lazying by default (using the "force" parameter always forces an immediate full render)
6650
+ this.render(-this._delay);
6651
+ }
6622
6652
  return this;
6623
6653
  };
6624
6654
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.13.0
3
- * DATE: 2014-07-17
2
+ * VERSION: 1.13.2
3
+ * DATE: 2014-08-23
4
4
  * UPDATES AND DOCS AT: http://www.greensock.com
5
5
  *
6
6
  * @license Copyright (c) 2008-2014, GreenSock. All rights reserved.
@@ -30,7 +30,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
30
30
  p = CSSPlugin.prototype = new TweenPlugin("css");
31
31
 
32
32
  p.constructor = CSSPlugin;
33
- CSSPlugin.version = "1.13.0";
33
+ CSSPlugin.version = "1.13.2";
34
34
  CSSPlugin.API = 2;
35
35
  CSSPlugin.defaultTransformPerspective = 0;
36
36
  CSSPlugin.defaultSkewType = "compensated";
@@ -1076,6 +1076,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1076
1076
  minAngle = 179.99,
1077
1077
  minPI = minAngle * _DEG2RAD,
1078
1078
  zOrigin = _supports3D ? parseFloat(_getStyle(t, _transformOriginProp, cs, false, "0 0 0").split(" ")[2]) || tm.zOrigin || 0 : 0,
1079
+ defaultTransformPerspective = parseFloat(CSSPlugin.defaultTransformPerspective) || 0,
1079
1080
  s, m, i, n, dec, scaleX, scaleY, rotation, skewX, difX, difY, difR, difS;
1080
1081
  if (_transformProp) {
1081
1082
  s = _getStyle(t, _transformPropCSS, cs, true);
@@ -1085,7 +1086,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1085
1086
  s = (s && s.length === 4) ? [s[0].substr(4), Number(s[2].substr(4)), Number(s[1].substr(4)), s[3].substr(4), (tm.x || 0), (tm.y || 0)].join(",") : "";
1086
1087
  }
1087
1088
  if (!s || s === "none" || s === "matrix(1, 0, 0, 1, 0, 0)") { //if no transforms are applied, just use the defaults to optimize performance (no need to parse).
1088
- tm = {x:0, y:0, z:0, scaleX:1, scaleY:1, scaleZ:1, skewX:0, perspective:0, rotation:0, rotationX:0, rotationY:0, zOrigin:0};
1089
+ tm = {x:0, y:0, z:0, scaleX:1, scaleY:1, scaleZ:1, skewX:0, perspective:defaultTransformPerspective, rotation:0, rotationX:0, rotationY:0, zOrigin:0};
1089
1090
  } else {
1090
1091
  //split the matrix values out into an array (m for matrix)
1091
1092
  m = (s || "").match(/(?:\-|\b)[\d\-\.e]+\b/gi) || [];
@@ -1216,7 +1217,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1216
1217
  }
1217
1218
  if (_supports3D) {
1218
1219
  tm.rotationX = tm.rotationY = tm.z = 0;
1219
- tm.perspective = parseFloat(CSSPlugin.defaultTransformPerspective) || 0;
1220
+ tm.perspective = defaultTransformPerspective;
1220
1221
  tm.scaleZ = 1;
1221
1222
  }
1222
1223
  }
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 0.10.5
3
- * DATE: 2014-07-17
2
+ * VERSION: 0.10.6
3
+ * DATE: 2014-08-23
4
4
  * UPDATES AND DOCS AT: http://www.greensock.com
5
5
  *
6
6
  * Requires TweenLite and CSSPlugin version 1.11.0 or later (TweenMax contains both TweenLite and CSSPlugin). ThrowPropsPlugin is required for momentum-based continuation of movement after the mouse/touch is released (ThrowPropsPlugin is a membership benefit of Club GreenSock - http://www.greensock.com/club/).
@@ -30,7 +30,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
30
30
  _RAD2DEG = 180 / Math.PI,
31
31
  _max = 999999999999999,
32
32
  _getTime = Date.now || function() {return new Date().getTime();},
33
- _isOldIE = (_doc.all && !_doc.addEventListener),
33
+ _isOldIE = (!_doc.addEventListener && _doc.all),
34
34
  _renderQueue = [],
35
35
  _lookup = {}, //when a Draggable is created, the target gets a unique _gsDragID property that allows gets associated with the Draggable instance for quick lookups in Draggable.get(). This avoids circular references that could cause gc problems.
36
36
  _lookupCount = 0,
@@ -39,6 +39,16 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
39
39
  _prefix,
40
40
  _isMultiTouching,
41
41
  _lastDragTime = 0,
42
+ _slice = function(a) { //don't use Array.prototype.slice.call(target, 0) because that doesn't work in IE8 with a NodeList that's returned by querySelectorAll()
43
+ if (!a || a.nodeType || !a.push) { //if it's not an array, wrap it in one.
44
+ return [a];
45
+ }
46
+ var b = [],
47
+ l = a.length,
48
+ i;
49
+ for (i = 0; i !== l; b.push(a[i++]));
50
+ return b;
51
+ },
42
52
  ThrowPropsPlugin,
43
53
 
44
54
  _renderQueueTick = function() {
@@ -460,7 +470,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
460
470
  var standard = types.split(","),
461
471
  converted = ((_tempDiv.onpointerdown !== undefined) ? "pointerdown,pointermove,pointerup,pointercancel" : (_tempDiv.onmspointerdown !== undefined) ? "MSPointerDown,MSPointerMove,MSPointerUp,MSPointerCancel" : types).split(","),
462
472
  obj = {},
463
- i = 7;
473
+ i = 8;
464
474
  while (--i > -1) {
465
475
  obj[standard[i]] = converted[i];
466
476
  obj[converted[i]] = standard[i];
@@ -789,7 +799,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
789
799
  allowX = (type.indexOf("x") !== -1 || type.indexOf("left") !== -1 || type === "scroll"),
790
800
  allowY = (type.indexOf("y") !== -1 || type.indexOf("top") !== -1 || type === "scroll"),
791
801
  self = this,
792
- trigger = _unwrapElement(vars.trigger || vars.handle || target),
802
+ triggers = _slice(vars.trigger || vars.handle || target),
793
803
  killProps = {},
794
804
  dragEndTime = 0,
795
805
  enabled, scrollProxy, startMouseX, startMouseY, startElementX, startElementY, hasBounds, hasDragCallback, maxX, minX, maxY, minY, tempVars, cssVars, touch, touchID, rotationOrigin, dirty, old, snapX, snapY, isClicking, touchEventTarget, lockedAxis, matrix, interrupted,
@@ -1077,14 +1087,14 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1077
1087
 
1078
1088
  //called when the mouse is pressed (or touch starts)
1079
1089
  onPress = function(e) {
1080
- var temp;
1090
+ var temp, i;
1081
1091
  if (!enabled || self.isPressed || !e) { //just in case the browser dispatches a "touchstart" and "mousedown" (some browsers emulate mouse events when using touches)
1082
1092
  return;
1083
1093
  }
1084
1094
  interrupted = isTweening();
1085
1095
  self.pointerEvent = e;
1086
1096
  if (_touchEventLookup[e.type]) { //note: on iOS, BOTH touchmove and mousemove are dispatched, but the mousemove has pageY and pageX of 0 which would mess up the calculations and needlessly hurt performance.
1087
- touchEventTarget = (e.type.indexOf("touch") !== -1) ? trigger : _doc; //pointer-based touches (for Microsoft browsers) don't remain locked to the original target like other browsers, so we must use the document instead. The event type would be "MSPointerDown" or "pointerdown".
1097
+ touchEventTarget = (e.type.indexOf("touch") !== -1) ? e.currentTarget : _doc; //pointer-based touches (for Microsoft browsers) don't remain locked to the original target like other browsers, so we must use the document instead. The event type would be "MSPointerDown" or "pointerdown".
1088
1098
  _addListener(touchEventTarget, "touchend", onRelease);
1089
1099
  _addListener(touchEventTarget, "touchmove", onMove);
1090
1100
  _addListener(touchEventTarget, "touchcancel", onRelease);
@@ -1092,8 +1102,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1092
1102
  } else {
1093
1103
  touchEventTarget = null;
1094
1104
  _addListener(_doc, "mousemove", onMove); //attach these to the document instead of the box itself so that if the user's mouse moves too quickly (and off of the box), things still work.
1095
- _addListener(_doc, "mouseup", onRelease);
1105
+
1096
1106
  }
1107
+ _addListener(_doc, "mouseup", onRelease);
1097
1108
  isClicking = (_isClickable(e.target) && !vars.dragClickables);
1098
1109
  if (isClicking) {
1099
1110
  _addListener(e.target, "change", onRelease); //in some browsers, when you mousedown on a <select> element, no mouseup gets dispatched! So we listen for a "change" event instead.
@@ -1117,13 +1128,6 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1117
1128
  }
1118
1129
  _dragCount++;
1119
1130
  _addToRenderQueue(render); //causes the Draggable to render on each "tick" of TweenLite.ticker (performance optimization - updating values in a mousemove can cause them to happen too frequently, like multiple times between frame redraws which is wasteful, and it also prevents values from updating properly in IE8)
1120
- if (self.tween) {
1121
- self.tween.kill();
1122
- }
1123
- TweenLite.killTweensOf(scrollProxy || target, true, killProps); //in case the user tries to drag it before the last tween is done.
1124
- if (scrollProxy) {
1125
- TweenLite.killTweensOf(target, true, {scrollTo:1}); //just in case the original target's scroll position is being tweened somewhere else.
1126
- }
1127
1131
  startMouseY = self.pointerY = e.pageY; //record the starting x and y so that we can calculate the movement from the original in _onMouseMove
1128
1132
  startMouseX = self.pointerX = e.pageX;
1129
1133
  recordStartPositions();
@@ -1132,6 +1136,13 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1132
1136
  startMouseY = startMouseX * matrix[1] + startMouseY * matrix[3] + matrix[5];
1133
1137
  startMouseX = temp;
1134
1138
  }
1139
+ if (self.tween) {
1140
+ self.tween.kill();
1141
+ }
1142
+ TweenLite.killTweensOf(scrollProxy || target, true, killProps); //in case the user tries to drag it before the last tween is done.
1143
+ if (scrollProxy) {
1144
+ TweenLite.killTweensOf(target, true, {scrollTo:1}); //just in case the original target's scroll position is being tweened somewhere else.
1145
+ }
1135
1146
  self.tween = lockedAxis = null;
1136
1147
  if (!rotationMode && !scrollProxy && vars.zIndexBoost !== false) {
1137
1148
  target.style.zIndex = Draggable.zIndex++;
@@ -1139,7 +1150,10 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1139
1150
  self.isPressed = true;
1140
1151
  hasDragCallback = !!(vars.onDrag || self._listeners.drag);
1141
1152
  if (!rotationMode) {
1142
- _setStyle(trigger, "cursor", vars.cursor || "move");
1153
+ i = triggers.length;
1154
+ while (--i > -1) {
1155
+ _setStyle(triggers[i], "cursor", vars.cursor || "move");
1156
+ }
1143
1157
  }
1144
1158
  _dispatchEvent(self, "press", "onPress");
1145
1159
  },
@@ -1270,9 +1284,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1270
1284
  _removeListener(touchEventTarget, "touchcancel", onRelease);
1271
1285
  _removeListener(_doc, "touchstart", _onMultiTouchDocument);
1272
1286
  } else {
1273
- _removeListener(_doc, "mouseup", onRelease);
1274
1287
  _removeListener(_doc, "mousemove", onMove);
1275
1288
  }
1289
+ _removeListener(_doc, "mouseup", onRelease);
1276
1290
  dirty = false;
1277
1291
  if (isClicking) {
1278
1292
  if (e) {
@@ -1285,7 +1299,10 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1285
1299
  }
1286
1300
  _removeFromRenderQueue(render);
1287
1301
  if (!rotationMode) {
1288
- _setStyle(trigger, "cursor", vars.cursor || "move");
1302
+ i = triggers.length;
1303
+ while (--i > -1) {
1304
+ _setStyle(triggers[i], "cursor", vars.cursor || "move");
1305
+ }
1289
1306
  }
1290
1307
  if (wasDragging) {
1291
1308
  dragEndTime = _lastDragTime = _getTime();
@@ -1312,7 +1329,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1312
1329
  self.pointerY = e.pageY;
1313
1330
  }
1314
1331
  if (originalEvent && !wasDragging) {
1315
- if (interrupted && vars.snap) { //otherwise, if the user clicks on the object while it's animating to a snapped position, and then releases without moving 3 pixels, it will just stay there (it should animate/snap)
1332
+ if (interrupted && (vars.snap || vars.bounds)) { //otherwise, if the user clicks on the object while it's animating to a snapped position, and then releases without moving 3 pixels, it will just stay there (it should animate/snap)
1316
1333
  animate(vars.throwProps);
1317
1334
  }
1318
1335
  _dispatchEvent(self, "release", "onRelease");
@@ -1423,18 +1440,22 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1423
1440
  };
1424
1441
 
1425
1442
  this.enable = function(type) {
1426
- var id;
1443
+ var id, i, trigger;
1427
1444
  if (type !== "soft") {
1428
- _addListener(trigger, "mousedown", onPress);
1429
- _addListener(trigger, "touchstart", onPress);
1430
- _addListener(trigger, "click", onClick);
1431
- if (!rotationMode) {
1432
- _setStyle(trigger, "cursor", vars.cursor || "move");
1445
+ i = triggers.length;
1446
+ while (--i > -1) {
1447
+ trigger = triggers[i];
1448
+ _addListener(trigger, "mousedown", onPress);
1449
+ _addListener(trigger, "touchstart", onPress);
1450
+ _addListener(trigger, "click", onClick);
1451
+ if (!rotationMode) {
1452
+ _setStyle(trigger, "cursor", vars.cursor || "move");
1453
+ }
1454
+ trigger.ondragstart = trigger.onselectstart = _emptyFunc; //prevent text selection (and prevent IE from dragging images)
1455
+ _setStyle(trigger, "userSelect", "none");
1456
+ _setStyle(trigger, "touchCallout", "none");
1457
+ _setStyle(trigger, "touchAction", "none");
1433
1458
  }
1434
- trigger.ondragstart = trigger.onselectstart = _emptyFunc; //prevent text selection (and prevent IE from dragging images)
1435
- _setStyle(trigger, "userSelect", "none");
1436
- _setStyle(trigger, "touchCallout", "none");
1437
- _setStyle(trigger, "touchAction", "none");
1438
1459
  }
1439
1460
  enabled = true;
1440
1461
  if (ThrowPropsPlugin && type !== "soft") {
@@ -1449,23 +1470,31 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1449
1470
  scrollProxy.element._gsDragID = id;
1450
1471
  }
1451
1472
  TweenLite.set(target, {x:"+=0"}); //simply ensures that there's a _gsTransform on the element.
1452
- this.update();
1473
+ this.update(true);
1453
1474
  return self;
1454
1475
  };
1455
1476
 
1456
1477
  this.disable = function(type) {
1457
- var dragging = this.isDragging;
1478
+ var dragging = this.isDragging,
1479
+ i, trigger;
1458
1480
  if (!rotationMode) {
1459
- _setStyle(trigger, "cursor", null);
1481
+ i = triggers.length;
1482
+ while (--i > -1) {
1483
+ _setStyle(triggers[i], "cursor", null);
1484
+ }
1460
1485
  }
1461
1486
  if (type !== "soft") {
1462
- trigger.ondragstart = trigger.onselectstart = null;
1463
- _setStyle(trigger, "userSelect", "text");
1464
- _setStyle(trigger, "touchCallout", "default");
1465
- _setStyle(trigger, "MSTouchAction", "auto");
1466
- _removeListener(trigger, "mousedown", onPress);
1467
- _removeListener(trigger, "touchstart", onPress);
1468
- _removeListener(trigger, "click", onClick);
1487
+ i = triggers.length;
1488
+ while (--i > -1) {
1489
+ trigger = triggers[i];
1490
+ trigger.ondragstart = trigger.onselectstart = null;
1491
+ _setStyle(trigger, "userSelect", "text");
1492
+ _setStyle(trigger, "touchCallout", "default");
1493
+ _setStyle(trigger, "MSTouchAction", "auto");
1494
+ _removeListener(trigger, "mousedown", onPress);
1495
+ _removeListener(trigger, "touchstart", onPress);
1496
+ _removeListener(trigger, "click", onClick);
1497
+ }
1469
1498
  if (touchEventTarget) {
1470
1499
  _removeListener(touchEventTarget, "touchcancel", onRelease);
1471
1500
  _removeListener(touchEventTarget, "touchend", onRelease);
@@ -1541,7 +1570,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1541
1570
  p.constructor = Draggable;
1542
1571
  p.pointerX = p.pointerY = 0;
1543
1572
  p.isDragging = p.isPressed = false;
1544
- Draggable.version = "0.10.5";
1573
+ Draggable.version = "0.10.6";
1545
1574
  Draggable.zIndex = 1000;
1546
1575
 
1547
1576
  _addListener(_doc, "touchcancel", function() {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: greensock-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.13.1.0
4
+ version: 1.13.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Pataki, Greensock Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-06 00:00:00.000000000 Z
11
+ date: 2014-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler