greensock-rails 1.14.1.0 → 1.14.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: 15a2398085a69b424b9862810277b795086aa118
4
- data.tar.gz: 882e4f02bdf0482f98a04a20ed5d896cfab2273e
3
+ metadata.gz: 5213f4d2af34fc56af21a52d0ce731f774fc8900
4
+ data.tar.gz: 28a0dfa4c62ffc97d88d3dab2256e3fef8c29e8d
5
5
  SHA512:
6
- metadata.gz: 3388e4bee53ab2491fe702c4913d2dc158abaf310d6c8bafc5d3dc0f00994dbb45d7928821011540fab9fb127a5c8707a91046bd7f2271951c72b40df49f838b
7
- data.tar.gz: 3fa4eb7940c62dba1b57376b225e3f08145c44720c79addffbde32000ab22a7b501e612ffd263e8cbe092778be242e6dcb6c342fd6074971062f48e13050a292
6
+ metadata.gz: 8bb581dd6a912fb4d71e7c090b4972ba4b7c493e71c8bc36da9a0541eb811739e1fed9bc2f7f4c5a2028653a9e459fc42717874e3964526c0cb9a7718e513e05
7
+ data.tar.gz: 6b6a252eab281a8f15ffd49110f80a714f2861c2de21c16c3466a04c8b2752621ab8862903c1f1a3403db54ee70526475125feea3139f7aae94dbae88afb45c8
@@ -1,5 +1,5 @@
1
1
  module Greensock
2
2
  module Rails
3
- VERSION = "1.14.1.0"
3
+ VERSION = "1.14.2.0"
4
4
  end
5
5
  end
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.14.1
3
- * DATE: 2014-10-16
2
+ * VERSION: 1.14.2
3
+ * DATE: 2014-10-18
4
4
  * UPDATES AND DOCS AT: http://www.greensock.com
5
5
  *
6
6
  * @license Copyright (c) 2008-2014, GreenSock. All rights reserved.
@@ -71,7 +71,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
71
71
  },
72
72
  p = TimelineLite.prototype = new SimpleTimeline();
73
73
 
74
- TimelineLite.version = "1.14.1";
74
+ TimelineLite.version = "1.14.2";
75
75
  p.constructor = TimelineLite;
76
76
  p.kill()._gc = p._forcingPlayhead = false;
77
77
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.14.1
3
- * DATE: 2014-10-16
2
+ * VERSION: 1.14.2
3
+ * DATE: 2014-10-18
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.14.1";
37
+ TimelineMax.version = "1.14.2";
38
38
 
39
39
  p.invalidate = function() {
40
40
  this._yoyo = (this.vars.yoyo === true);
@@ -518,7 +518,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
518
518
  },
519
519
  p = TimelineLite.prototype = new SimpleTimeline();
520
520
 
521
- TimelineLite.version = "1.14.1";
521
+ TimelineLite.version = "1.14.2";
522
522
  p.constructor = TimelineLite;
523
523
  p.kill()._gc = p._forcingPlayhead = false;
524
524
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.14.1
3
- * DATE: 2014-10-16
2
+ * VERSION: 1.14.2
3
+ * DATE: 2014-10-28
4
4
  * UPDATES AND DOCS AT: http://www.greensock.com
5
5
  *
6
6
  * @license Copyright (c) 2008-2014, GreenSock. All rights reserved.
@@ -910,7 +910,7 @@
910
910
  p._firstPT = p._targets = p._overwrittenProps = p._startAt = null;
911
911
  p._notifyPluginsOfEnabled = p._lazy = false;
912
912
 
913
- TweenLite.version = "1.14.1";
913
+ TweenLite.version = "1.14.2";
914
914
  TweenLite.defaultEase = p._ease = new Ease(null, null, 1, 1);
915
915
  TweenLite.defaultOverwrite = "auto";
916
916
  TweenLite.ticker = _ticker;
@@ -1015,14 +1015,15 @@
1015
1015
  },
1016
1016
 
1017
1017
  _onOverwrite = function(overwrittenTween, overwritingTween, target, killedProps) {
1018
- var func = overwrittenTween.vars.onOverwrite;
1018
+ var func = overwrittenTween.vars.onOverwrite, r1, r2;
1019
1019
  if (func) {
1020
- func(overwrittenTween, overwritingTween, target, killedProps);
1020
+ r1 = func(overwrittenTween, overwritingTween, target, killedProps);
1021
1021
  }
1022
1022
  func = TweenLite.onOverwrite;
1023
1023
  if (func) {
1024
- func(overwrittenTween, overwritingTween, target, killedProps);
1024
+ r2 = func(overwrittenTween, overwritingTween, target, killedProps);
1025
1025
  }
1026
+ return (r1 !== false && r2 !== false);
1026
1027
  },
1027
1028
  _applyOverwrite = function(target, tween, props, mode, siblings) {
1028
1029
  var i, changed, curTween, l;
@@ -1031,10 +1032,9 @@
1031
1032
  for (i = 0; i < l; i++) {
1032
1033
  if ((curTween = siblings[i]) !== tween) {
1033
1034
  if (!curTween._gc) {
1034
- if (curTween._enabled(false, false)) {
1035
+ if (_onOverwrite(curTween, tween) && curTween._enabled(false, false)) {
1035
1036
  changed = true;
1036
1037
  }
1037
- _onOverwrite(curTween, tween);
1038
1038
  }
1039
1039
  } else if (mode === 5) {
1040
1040
  break;
@@ -1069,12 +1069,12 @@
1069
1069
  changed = true;
1070
1070
  }
1071
1071
  if (mode !== 2 || (!curTween._firstPT && curTween._initted)) {
1072
+ if (mode !== 2 && !_onOverwrite(curTween, tween)) {
1073
+ continue;
1074
+ }
1072
1075
  if (curTween._enabled(false, false)) { //if all property tweens have been overwritten, kill the tween.
1073
1076
  changed = true;
1074
1077
  }
1075
- if (mode !== 2) {
1076
- _onOverwrite(curTween, tween);
1077
- }
1078
1078
  }
1079
1079
  }
1080
1080
  return changed;
@@ -1455,12 +1455,22 @@
1455
1455
  if (propLookup) {
1456
1456
  killProps = vars || propLookup;
1457
1457
  record = (vars !== overwrittenProps && overwrittenProps !== "all" && vars !== propLookup && (typeof(vars) !== "object" || !vars._tempKill)); //_tempKill is a super-secret way to delete a particular tweening property but NOT have it remembered as an official overwritten property (like in BezierPlugin)
1458
+ if (overwritingTween && (TweenLite.onOverwrite || this.vars.onOverwrite)) {
1459
+ for (p in killProps) {
1460
+ if (propLookup[p]) {
1461
+ if (!killed) {
1462
+ killed = [];
1463
+ }
1464
+ killed.push(p);
1465
+ }
1466
+ }
1467
+ if (!_onOverwrite(this, overwritingTween, target, killed)) { //if the onOverwrite returned false, that means the user wants to override the overwriting (cancel it).
1468
+ return false;
1469
+ }
1470
+ }
1471
+
1458
1472
  for (p in killProps) {
1459
1473
  if ((pt = propLookup[p])) {
1460
- if (!killed) {
1461
- killed = [];
1462
- }
1463
- killed.push(p);
1464
1474
  if (pt.pg && pt.t._kill(killProps)) {
1465
1475
  changed = true; //some plugins need to be notified so they can perform cleanup tasks first
1466
1476
  }
@@ -1484,9 +1494,6 @@
1484
1494
  if (!this._firstPT && this._initted) { //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.
1485
1495
  this._enabled(false, false);
1486
1496
  }
1487
- if (killed && overwritingTween) {
1488
- _onOverwrite(this, overwritingTween, target, killed);
1489
- }
1490
1497
  }
1491
1498
  }
1492
1499
  return changed;
@@ -1606,7 +1613,7 @@
1606
1613
 
1607
1614
  /*
1608
1615
  * ----------------------------------------------------------------
1609
- * TweenPlugin (could easily be split out as a separate file/class, but included for ease of use (so that people don't need to include another <script> call before loading plugins which is easy to forget)
1616
+ * TweenPlugin (could easily be split out as a separate file/class, but included for ease of use (so that people don't need to include another script call before loading plugins which is easy to forget)
1610
1617
  * ----------------------------------------------------------------
1611
1618
  */
1612
1619
  var TweenPlugin = _class("plugins.TweenPlugin", function(props, priority) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.14.1
3
- * DATE: 2014-10-16
2
+ * VERSION: 1.14.2
3
+ * DATE: 2014-10-29
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.14.1";
44
+ TweenMax.version = "1.14.2";
45
45
  p.constructor = TweenMax;
46
46
  p.kill()._gc = false;
47
47
  TweenMax.killTweensOf = TweenMax.killDelayedCallsTo = TweenLite.killTweensOf;
@@ -59,7 +59,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
59
59
  };
60
60
 
61
61
  p.updateTo = function(vars, resetDuration) {
62
- var curRatio = this.ratio, p;
62
+ var curRatio = this.ratio,
63
+ immediate = this.vars.immediateRender || vars.immediateRender,
64
+ p;
63
65
  if (resetDuration && this._startTime < this._timeline._time) {
64
66
  this._startTime = this._timeline._time;
65
67
  this._uncache(false);
@@ -72,7 +74,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
72
74
  for (p in vars) {
73
75
  this.vars[p] = vars[p];
74
76
  }
75
- if (this._initted) {
77
+ if (this._initted || immediate) {
76
78
  if (resetDuration) {
77
79
  this._initted = false;
78
80
  } else {
@@ -87,7 +89,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
87
89
  this.render(0, true, false);
88
90
  this._initted = false;
89
91
  this.render(prevTime, true, false);
90
- } else if (this._time > 0) {
92
+ } else if (this._time > 0 || immediate) {
91
93
  this._initted = false;
92
94
  this._init();
93
95
  var inv = 1 / (1 - curRatio),
@@ -657,7 +659,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
657
659
  },
658
660
  p = TimelineLite.prototype = new SimpleTimeline();
659
661
 
660
- TimelineLite.version = "1.14.1";
662
+ TimelineLite.version = "1.14.2";
661
663
  p.constructor = TimelineLite;
662
664
  p.kill()._gc = p._forcingPlayhead = false;
663
665
 
@@ -1308,7 +1310,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1308
1310
 
1309
1311
  p.constructor = TimelineMax;
1310
1312
  p.kill()._gc = false;
1311
- TimelineMax.version = "1.14.1";
1313
+ TimelineMax.version = "1.14.2";
1312
1314
 
1313
1315
  p.invalidate = function() {
1314
1316
  this._yoyo = (this.vars.yoyo === true);
@@ -2341,7 +2343,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2341
2343
  p = CSSPlugin.prototype = new TweenPlugin("css");
2342
2344
 
2343
2345
  p.constructor = CSSPlugin;
2344
- CSSPlugin.version = "1.14.1";
2346
+ CSSPlugin.version = "1.14.2";
2345
2347
  CSSPlugin.API = 2;
2346
2348
  CSSPlugin.defaultTransformPerspective = 0;
2347
2349
  CSSPlugin.defaultSkewType = "compensated";
@@ -2352,7 +2354,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2352
2354
  var _numExp = /(?:\d|\-\d|\.\d|\-\.\d)+/g,
2353
2355
  _relNumExp = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,
2354
2356
  _valuesExp = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi, //finds all the values that begin with numbers or += or -= and then a number. Includes suffixes. We use this to split complex values apart like "1px 5px 20px rgb(255,102,51)"
2355
- _NaNExp = /[^\d\-\.]/g,
2357
+ _NaNExp = /(?![+-]?\d*\.?\d+|e[+-]\d+)[^0-9]/g, //also allows scientific notation
2356
2358
  _suffixExp = /(?:\d|\-|\+|=|#|\.)*/g,
2357
2359
  _opacityExp = /opacity *= *([^)]*)/i,
2358
2360
  _opacityValExp = /opacity:([^;]*)/i,
@@ -2370,7 +2372,6 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2370
2372
  _RAD2DEG = 180 / Math.PI,
2371
2373
  _forcePT = {},
2372
2374
  _doc = document,
2373
- _docElement = _doc.documentElement,
2374
2375
  _tempDiv = _doc.createElement("div"),
2375
2376
  _tempImg = _doc.createElement("img"),
2376
2377
  _internals = CSSPlugin._internals = {_specialProps:_specialProps}, //provides a hook to a few internal methods that we need to access from inside other plugins
@@ -2720,7 +2721,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2720
2721
  * @param {(string|number)} v The value the should be parsed which could be a string like #9F0 or rgb(255,102,51) or rgba(255,0,0,0.5) or it could be a number like 0xFF00CC or even a named color like red, blue, purple, etc.
2721
2722
  * @return {Array.<number>} An array containing red, green, and blue (and optionally alpha) in that order.
2722
2723
  */
2723
- _parseColor = function(v) {
2724
+ _parseColor = CSSPlugin.parseColor = function(v) {
2724
2725
  var c1, c2, c3, h, s, l;
2725
2726
  if (!v || v === "") {
2726
2727
  return _colorLookup.black;
@@ -3357,7 +3358,6 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3357
3358
 
3358
3359
 
3359
3360
 
3360
-
3361
3361
  //transform-related methods and properties
3362
3362
  var _transformProps = ("scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent").split(","),
3363
3363
  _transformProp = _checkPropPrefix("transform"), //the Javascript (camelCase) transform property, like msTransform, WebkitTransform, MozTransform, or OTransform.
@@ -3368,10 +3368,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3368
3368
  this.skewY = 0;
3369
3369
  },
3370
3370
  _SVGElement = window.SVGElement,
3371
- _forceSVGTransformToAttr = (_SVGElement && (_ieVers || (/Android/i.test(_agent) && !window.chrome))), //IE and Android stock don't support CSS transforms on SVG elements, so we must write them to the "transform" attribute.
3371
+ _useSVGTransformAttr,
3372
3372
  //Some browsers (like Firefox and IE) don't honor transform-origin properly in SVG elements, so we need to manually adjust the matrix accordingly. We feature detect here rather than always doing the conversion for certain browsers because they may fix the problem at some point in the future.
3373
3373
 
3374
- /* originally used to sense browsers that didn't handle SVG transform-origin properly, but due to all the fragmentation and odd behavior across browsers, we decided to just manage transform-origin internally for all browsers.
3375
3374
  _createSVG = function(type, container, attributes) {
3376
3375
  var element = _doc.createElementNS("http://www.w3.org/2000/svg", type),
3377
3376
  reg = /([a-z])([A-Z])/g,
@@ -3382,20 +3381,22 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3382
3381
  container.appendChild(element);
3383
3382
  return element;
3384
3383
  },
3385
- _fixSVGOrigin = (function() {
3386
- if (_doc.createElementNS) { //IE8 and earlier doesn't support SVG anyway
3387
- var svg = _createSVG("svg", _docElement),
3388
- rect = _createSVG("rect", svg, {width:100, height:50, x:100}),
3389
- left, matches;
3384
+ _docElement = document.documentElement,
3385
+ _forceSVGTransformAttr = (function() {
3386
+ //IE and Android stock don't support CSS transforms on SVG elements, so we must write them to the "transform" attribute. We populate this variable in the _parseTransform() method, and only if/when we come across an SVG element
3387
+ var force = _ieVers || (/Android/i.test(_agent) && !window.chrome),
3388
+ svg, rect, left;
3389
+ if (_doc.createElementNS && !force) { //IE8 and earlier doesn't support SVG anyway
3390
+ svg = _createSVG("svg", _docElement);
3391
+ rect = _createSVG("rect", svg, {width:100, height:50, x:100});
3390
3392
  left = rect.getBoundingClientRect().left;
3391
3393
  rect.style[_transformOriginProp] = "50% 50%";
3392
3394
  rect.style[_transformProp] = "scale(0.5,0.5)";
3393
- matches = (left === rect.getBoundingClientRect().left);
3395
+ force = (left === rect.getBoundingClientRect().left);
3394
3396
  _docElement.removeChild(svg);
3395
- return matches;
3396
3397
  }
3398
+ return force;
3397
3399
  })(),
3398
- */
3399
3400
  _parseSVGOrigin = function(e, origin, decoratee) {
3400
3401
  var bbox = e.getBBox();
3401
3402
  origin = _parsePosition(origin).split(" ");
@@ -3580,9 +3581,10 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3580
3581
  if (rec) {
3581
3582
  t._gsTransform = tm; //record to the object's _gsTransform which we use so that tweens can control individual properties independently (we need all the properties to accurately recompose the matrix in the setRatio() method)
3582
3583
  }
3583
- tm.svg = (_SVGElement && (t instanceof _SVGElement));
3584
+ tm.svg = (_SVGElement && (t instanceof _SVGElement) && (t.parentNode instanceof _SVGElement));
3584
3585
  if (tm.svg) {
3585
3586
  _parseSVGOrigin(t, _getStyle(t, _transformOriginProp, _cs, false, "50% 50%") + "", tm);
3587
+ _useSVGTransformAttr = CSSPlugin.useSVGTransformAttr || _forceSVGTransformAttr;
3586
3588
  }
3587
3589
  tm.xPercent = tm.yPercent = 0;
3588
3590
  return tm;
@@ -3799,7 +3801,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3799
3801
  x = t.x,
3800
3802
  y = t.y,
3801
3803
  ang, skew, rnd, sx, sy, a, b, c, d, matrix, min;
3802
- if ((t.rotationX || t.rotationY || t.z || t.force3D === true || (t.force3D === "auto" && v !== 1 && v !== 0)) && !(t.svg && _forceSVGTransformToAttr) && _supports3D) { //if a 3D tween begins while a 2D one is running, we need to kick the rendering over to the 3D method. For example, imagine a yoyo-ing, infinitely repeating scale tween running, and then the object gets rotated in 3D space with a different tween.
3804
+ if ((t.rotationX || t.rotationY || t.z || t.force3D === true || (t.force3D === "auto" && v !== 1 && v !== 0)) && !(t.svg && _useSVGTransformAttr) && _supports3D) { //if a 3D tween begins while a 2D one is running, we need to kick the rendering over to the 3D method. For example, imagine a yoyo-ing, infinitely repeating scale tween running, and then the object gets rotated in 3D space with a different tween.
3803
3805
  this.setRatio = _set3DTransformRatio;
3804
3806
  _set3DTransformRatio.call(this, v);
3805
3807
  return;
@@ -3826,7 +3828,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3826
3828
  }
3827
3829
  }
3828
3830
  matrix = (((a * rnd) | 0) / rnd) + "," + (((b * rnd) | 0) / rnd) + "," + (((c * rnd) | 0) / rnd) + "," + (((d * rnd) | 0) / rnd) + "," + x + "," + y + ")";
3829
- if (t.svg && _forceSVGTransformToAttr) {
3831
+ if (t.svg && _useSVGTransformAttr) {
3830
3832
  targ.setAttribute("transform", "matrix(" + matrix);
3831
3833
  } else {
3832
3834
  //some browsers have a hard time with very small values like 2.4492935982947064e-16 (notice the "e-" towards the end) and would render the object slightly off. So we round to 5 decimal places.
@@ -3933,8 +3935,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3933
3935
  pt = new CSSPropTween(m1, "yOrigin", m1.yOrigin, m2.yOrigin - m1.yOrigin, pt, -1, "transformOrigin");
3934
3936
  pt.b = m1.yOrigin;
3935
3937
  pt.e = pt.xs0 = m2.yOrigin;
3936
- _removeProp(style, _transformOriginProp); //certain browsers (like firefox) completely botch transform-origin, so we must remove it to prevent it from contaminating transforms. We manage it ourselves with xOrigin and yOrigin
3937
- } else if (orig || (_supports3D && has3D && m1.zOrigin)) { //if anything 3D is happening and there's a transformOrigin with a z component that's non-zero, we must ensure that the transformOrigin's z-component is set to 0 so that we can manually do those calculations to get around Safari bugs. Even if the user didn't specifically define a "transformOrigin" in this particular tween (maybe they did it via css directly).
3938
+ orig = "0px 0px"; //certain browsers (like firefox) completely botch transform-origin, so we must remove it to prevent it from contaminating transforms. We manage it ourselves with xOrigin and yOrigin
3939
+ }
3940
+ if (orig || (_supports3D && has3D && m1.zOrigin)) { //if anything 3D is happening and there's a transformOrigin with a z component that's non-zero, we must ensure that the transformOrigin's z-component is set to 0 so that we can manually do those calculations to get around Safari bugs. Even if the user didn't specifically define a "transformOrigin" in this particular tween (maybe they did it via css directly).
3938
3941
  if (_transformProp) {
3939
3942
  hasChange = true;
3940
3943
  p = _transformOriginProp;
@@ -3960,7 +3963,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
3960
3963
  }
3961
3964
  }
3962
3965
  if (hasChange) {
3963
- cssp._transformType = (!(m1.svg && _forceSVGTransformToAttr) && (has3D || this._transformType === 3)) ? 3 : 2; //quicker than calling cssp._enableTransforms();
3966
+ cssp._transformType = (!(m1.svg && _useSVGTransformAttr) && (has3D || this._transformType === 3)) ? 3 : 2; //quicker than calling cssp._enableTransforms();
3964
3967
  }
3965
3968
  return pt;
3966
3969
  }, prefix:true});
@@ -4035,7 +4038,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
4035
4038
  if (src && src !== "none") {
4036
4039
  ba = bs.split(" ");
4037
4040
  ea = es.split(" ");
4038
- _tempImg.setAttribute("src", src); //set the temp <img>'s src to the background-image so that we can measure its width/height
4041
+ _tempImg.setAttribute("src", src); //set the temp IMG's src to the background-image so that we can measure its width/height
4039
4042
  i = 2;
4040
4043
  while (--i > -1) {
4041
4044
  bs = ba[i];
@@ -4550,7 +4553,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
4550
4553
  */
4551
4554
  p._enableTransforms = function(threeD) {
4552
4555
  this._transform = this._transform || _getTransform(this._target, _cs, true); //ensures that the element has a _gsTransform property with the appropriate values.
4553
- this._transformType = (!(this._transform.svg && _forceSVGTransformToAttr) && (threeD || this._transformType === 3)) ? 3 : 2;
4556
+ this._transformType = (!(this._transform.svg && _useSVGTransformAttr) && (threeD || this._transformType === 3)) ? 3 : 2;
4554
4557
  };
4555
4558
 
4556
4559
  var lazySet = function(v) {
@@ -6172,7 +6175,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6172
6175
  p._firstPT = p._targets = p._overwrittenProps = p._startAt = null;
6173
6176
  p._notifyPluginsOfEnabled = p._lazy = false;
6174
6177
 
6175
- TweenLite.version = "1.14.1";
6178
+ TweenLite.version = "1.14.2";
6176
6179
  TweenLite.defaultEase = p._ease = new Ease(null, null, 1, 1);
6177
6180
  TweenLite.defaultOverwrite = "auto";
6178
6181
  TweenLite.ticker = _ticker;
@@ -6277,14 +6280,15 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6277
6280
  },
6278
6281
 
6279
6282
  _onOverwrite = function(overwrittenTween, overwritingTween, target, killedProps) {
6280
- var func = overwrittenTween.vars.onOverwrite;
6283
+ var func = overwrittenTween.vars.onOverwrite, r1, r2;
6281
6284
  if (func) {
6282
- func(overwrittenTween, overwritingTween, target, killedProps);
6285
+ r1 = func(overwrittenTween, overwritingTween, target, killedProps);
6283
6286
  }
6284
6287
  func = TweenLite.onOverwrite;
6285
6288
  if (func) {
6286
- func(overwrittenTween, overwritingTween, target, killedProps);
6289
+ r2 = func(overwrittenTween, overwritingTween, target, killedProps);
6287
6290
  }
6291
+ return (r1 !== false && r2 !== false);
6288
6292
  },
6289
6293
  _applyOverwrite = function(target, tween, props, mode, siblings) {
6290
6294
  var i, changed, curTween, l;
@@ -6293,10 +6297,9 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6293
6297
  for (i = 0; i < l; i++) {
6294
6298
  if ((curTween = siblings[i]) !== tween) {
6295
6299
  if (!curTween._gc) {
6296
- if (curTween._enabled(false, false)) {
6300
+ if (_onOverwrite(curTween, tween) && curTween._enabled(false, false)) {
6297
6301
  changed = true;
6298
6302
  }
6299
- _onOverwrite(curTween, tween);
6300
6303
  }
6301
6304
  } else if (mode === 5) {
6302
6305
  break;
@@ -6331,12 +6334,12 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6331
6334
  changed = true;
6332
6335
  }
6333
6336
  if (mode !== 2 || (!curTween._firstPT && curTween._initted)) {
6337
+ if (mode !== 2 && !_onOverwrite(curTween, tween)) {
6338
+ continue;
6339
+ }
6334
6340
  if (curTween._enabled(false, false)) { //if all property tweens have been overwritten, kill the tween.
6335
6341
  changed = true;
6336
6342
  }
6337
- if (mode !== 2) {
6338
- _onOverwrite(curTween, tween);
6339
- }
6340
6343
  }
6341
6344
  }
6342
6345
  return changed;
@@ -6717,12 +6720,22 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6717
6720
  if (propLookup) {
6718
6721
  killProps = vars || propLookup;
6719
6722
  record = (vars !== overwrittenProps && overwrittenProps !== "all" && vars !== propLookup && (typeof(vars) !== "object" || !vars._tempKill)); //_tempKill is a super-secret way to delete a particular tweening property but NOT have it remembered as an official overwritten property (like in BezierPlugin)
6723
+ if (overwritingTween && (TweenLite.onOverwrite || this.vars.onOverwrite)) {
6724
+ for (p in killProps) {
6725
+ if (propLookup[p]) {
6726
+ if (!killed) {
6727
+ killed = [];
6728
+ }
6729
+ killed.push(p);
6730
+ }
6731
+ }
6732
+ if (!_onOverwrite(this, overwritingTween, target, killed)) { //if the onOverwrite returned false, that means the user wants to override the overwriting (cancel it).
6733
+ return false;
6734
+ }
6735
+ }
6736
+
6720
6737
  for (p in killProps) {
6721
6738
  if ((pt = propLookup[p])) {
6722
- if (!killed) {
6723
- killed = [];
6724
- }
6725
- killed.push(p);
6726
6739
  if (pt.pg && pt.t._kill(killProps)) {
6727
6740
  changed = true; //some plugins need to be notified so they can perform cleanup tasks first
6728
6741
  }
@@ -6746,9 +6759,6 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6746
6759
  if (!this._firstPT && this._initted) { //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.
6747
6760
  this._enabled(false, false);
6748
6761
  }
6749
- if (killed && overwritingTween) {
6750
- _onOverwrite(this, overwritingTween, target, killed);
6751
- }
6752
6762
  }
6753
6763
  }
6754
6764
  return changed;
@@ -6868,7 +6878,7 @@ if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); } //necessary in case Tween
6868
6878
 
6869
6879
  /*
6870
6880
  * ----------------------------------------------------------------
6871
- * TweenPlugin (could easily be split out as a separate file/class, but included for ease of use (so that people don't need to include another <script> call before loading plugins which is easy to forget)
6881
+ * TweenPlugin (could easily be split out as a separate file/class, but included for ease of use (so that people don't need to include another script call before loading plugins which is easy to forget)
6872
6882
  * ----------------------------------------------------------------
6873
6883
  */
6874
6884
  var TweenPlugin = _class("plugins.TweenPlugin", function(props, priority) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * VERSION: 1.14.1
3
- * DATE: 2014-10-16
2
+ * VERSION: 1.14.2
3
+ * DATE: 2014-10-28
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.14.1";
33
+ CSSPlugin.version = "1.14.2";
34
34
  CSSPlugin.API = 2;
35
35
  CSSPlugin.defaultTransformPerspective = 0;
36
36
  CSSPlugin.defaultSkewType = "compensated";
@@ -41,7 +41,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
41
41
  var _numExp = /(?:\d|\-\d|\.\d|\-\.\d)+/g,
42
42
  _relNumExp = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,
43
43
  _valuesExp = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi, //finds all the values that begin with numbers or += or -= and then a number. Includes suffixes. We use this to split complex values apart like "1px 5px 20px rgb(255,102,51)"
44
- _NaNExp = /[^\d\-\.]/g,
44
+ _NaNExp = /(?![+-]?\d*\.?\d+|e[+-]\d+)[^0-9]/g, //also allows scientific notation
45
45
  _suffixExp = /(?:\d|\-|\+|=|#|\.)*/g,
46
46
  _opacityExp = /opacity *= *([^)]*)/i,
47
47
  _opacityValExp = /opacity:([^;]*)/i,
@@ -59,7 +59,6 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
59
59
  _RAD2DEG = 180 / Math.PI,
60
60
  _forcePT = {},
61
61
  _doc = document,
62
- _docElement = _doc.documentElement,
63
62
  _tempDiv = _doc.createElement("div"),
64
63
  _tempImg = _doc.createElement("img"),
65
64
  _internals = CSSPlugin._internals = {_specialProps:_specialProps}, //provides a hook to a few internal methods that we need to access from inside other plugins
@@ -409,7 +408,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
409
408
  * @param {(string|number)} v The value the should be parsed which could be a string like #9F0 or rgb(255,102,51) or rgba(255,0,0,0.5) or it could be a number like 0xFF00CC or even a named color like red, blue, purple, etc.
410
409
  * @return {Array.<number>} An array containing red, green, and blue (and optionally alpha) in that order.
411
410
  */
412
- _parseColor = function(v) {
411
+ _parseColor = CSSPlugin.parseColor = function(v) {
413
412
  var c1, c2, c3, h, s, l;
414
413
  if (!v || v === "") {
415
414
  return _colorLookup.black;
@@ -1046,7 +1045,6 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1046
1045
 
1047
1046
 
1048
1047
 
1049
-
1050
1048
  //transform-related methods and properties
1051
1049
  var _transformProps = ("scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent").split(","),
1052
1050
  _transformProp = _checkPropPrefix("transform"), //the Javascript (camelCase) transform property, like msTransform, WebkitTransform, MozTransform, or OTransform.
@@ -1057,10 +1055,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1057
1055
  this.skewY = 0;
1058
1056
  },
1059
1057
  _SVGElement = window.SVGElement,
1060
- _forceSVGTransformToAttr = (_SVGElement && (_ieVers || (/Android/i.test(_agent) && !window.chrome))), //IE and Android stock don't support CSS transforms on SVG elements, so we must write them to the "transform" attribute.
1058
+ _useSVGTransformAttr,
1061
1059
  //Some browsers (like Firefox and IE) don't honor transform-origin properly in SVG elements, so we need to manually adjust the matrix accordingly. We feature detect here rather than always doing the conversion for certain browsers because they may fix the problem at some point in the future.
1062
1060
 
1063
- /* originally used to sense browsers that didn't handle SVG transform-origin properly, but due to all the fragmentation and odd behavior across browsers, we decided to just manage transform-origin internally for all browsers.
1064
1061
  _createSVG = function(type, container, attributes) {
1065
1062
  var element = _doc.createElementNS("http://www.w3.org/2000/svg", type),
1066
1063
  reg = /([a-z])([A-Z])/g,
@@ -1071,20 +1068,22 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1071
1068
  container.appendChild(element);
1072
1069
  return element;
1073
1070
  },
1074
- _fixSVGOrigin = (function() {
1075
- if (_doc.createElementNS) { //IE8 and earlier doesn't support SVG anyway
1076
- var svg = _createSVG("svg", _docElement),
1077
- rect = _createSVG("rect", svg, {width:100, height:50, x:100}),
1078
- left, matches;
1071
+ _docElement = document.documentElement,
1072
+ _forceSVGTransformAttr = (function() {
1073
+ //IE and Android stock don't support CSS transforms on SVG elements, so we must write them to the "transform" attribute. We populate this variable in the _parseTransform() method, and only if/when we come across an SVG element
1074
+ var force = _ieVers || (/Android/i.test(_agent) && !window.chrome),
1075
+ svg, rect, left;
1076
+ if (_doc.createElementNS && !force) { //IE8 and earlier doesn't support SVG anyway
1077
+ svg = _createSVG("svg", _docElement);
1078
+ rect = _createSVG("rect", svg, {width:100, height:50, x:100});
1079
1079
  left = rect.getBoundingClientRect().left;
1080
1080
  rect.style[_transformOriginProp] = "50% 50%";
1081
1081
  rect.style[_transformProp] = "scale(0.5,0.5)";
1082
- matches = (left === rect.getBoundingClientRect().left);
1082
+ force = (left === rect.getBoundingClientRect().left);
1083
1083
  _docElement.removeChild(svg);
1084
- return matches;
1085
1084
  }
1085
+ return force;
1086
1086
  })(),
1087
- */
1088
1087
  _parseSVGOrigin = function(e, origin, decoratee) {
1089
1088
  var bbox = e.getBBox();
1090
1089
  origin = _parsePosition(origin).split(" ");
@@ -1269,9 +1268,10 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1269
1268
  if (rec) {
1270
1269
  t._gsTransform = tm; //record to the object's _gsTransform which we use so that tweens can control individual properties independently (we need all the properties to accurately recompose the matrix in the setRatio() method)
1271
1270
  }
1272
- tm.svg = (_SVGElement && (t instanceof _SVGElement));
1271
+ tm.svg = (_SVGElement && (t instanceof _SVGElement) && (t.parentNode instanceof _SVGElement));
1273
1272
  if (tm.svg) {
1274
1273
  _parseSVGOrigin(t, _getStyle(t, _transformOriginProp, _cs, false, "50% 50%") + "", tm);
1274
+ _useSVGTransformAttr = CSSPlugin.useSVGTransformAttr || _forceSVGTransformAttr;
1275
1275
  }
1276
1276
  tm.xPercent = tm.yPercent = 0;
1277
1277
  return tm;
@@ -1488,7 +1488,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1488
1488
  x = t.x,
1489
1489
  y = t.y,
1490
1490
  ang, skew, rnd, sx, sy, a, b, c, d, matrix, min;
1491
- if ((t.rotationX || t.rotationY || t.z || t.force3D === true || (t.force3D === "auto" && v !== 1 && v !== 0)) && !(t.svg && _forceSVGTransformToAttr) && _supports3D) { //if a 3D tween begins while a 2D one is running, we need to kick the rendering over to the 3D method. For example, imagine a yoyo-ing, infinitely repeating scale tween running, and then the object gets rotated in 3D space with a different tween.
1491
+ if ((t.rotationX || t.rotationY || t.z || t.force3D === true || (t.force3D === "auto" && v !== 1 && v !== 0)) && !(t.svg && _useSVGTransformAttr) && _supports3D) { //if a 3D tween begins while a 2D one is running, we need to kick the rendering over to the 3D method. For example, imagine a yoyo-ing, infinitely repeating scale tween running, and then the object gets rotated in 3D space with a different tween.
1492
1492
  this.setRatio = _set3DTransformRatio;
1493
1493
  _set3DTransformRatio.call(this, v);
1494
1494
  return;
@@ -1515,7 +1515,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1515
1515
  }
1516
1516
  }
1517
1517
  matrix = (((a * rnd) | 0) / rnd) + "," + (((b * rnd) | 0) / rnd) + "," + (((c * rnd) | 0) / rnd) + "," + (((d * rnd) | 0) / rnd) + "," + x + "," + y + ")";
1518
- if (t.svg && _forceSVGTransformToAttr) {
1518
+ if (t.svg && _useSVGTransformAttr) {
1519
1519
  targ.setAttribute("transform", "matrix(" + matrix);
1520
1520
  } else {
1521
1521
  //some browsers have a hard time with very small values like 2.4492935982947064e-16 (notice the "e-" towards the end) and would render the object slightly off. So we round to 5 decimal places.
@@ -1622,8 +1622,9 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1622
1622
  pt = new CSSPropTween(m1, "yOrigin", m1.yOrigin, m2.yOrigin - m1.yOrigin, pt, -1, "transformOrigin");
1623
1623
  pt.b = m1.yOrigin;
1624
1624
  pt.e = pt.xs0 = m2.yOrigin;
1625
- _removeProp(style, _transformOriginProp); //certain browsers (like firefox) completely botch transform-origin, so we must remove it to prevent it from contaminating transforms. We manage it ourselves with xOrigin and yOrigin
1626
- } else if (orig || (_supports3D && has3D && m1.zOrigin)) { //if anything 3D is happening and there's a transformOrigin with a z component that's non-zero, we must ensure that the transformOrigin's z-component is set to 0 so that we can manually do those calculations to get around Safari bugs. Even if the user didn't specifically define a "transformOrigin" in this particular tween (maybe they did it via css directly).
1625
+ orig = "0px 0px"; //certain browsers (like firefox) completely botch transform-origin, so we must remove it to prevent it from contaminating transforms. We manage it ourselves with xOrigin and yOrigin
1626
+ }
1627
+ if (orig || (_supports3D && has3D && m1.zOrigin)) { //if anything 3D is happening and there's a transformOrigin with a z component that's non-zero, we must ensure that the transformOrigin's z-component is set to 0 so that we can manually do those calculations to get around Safari bugs. Even if the user didn't specifically define a "transformOrigin" in this particular tween (maybe they did it via css directly).
1627
1628
  if (_transformProp) {
1628
1629
  hasChange = true;
1629
1630
  p = _transformOriginProp;
@@ -1649,7 +1650,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1649
1650
  }
1650
1651
  }
1651
1652
  if (hasChange) {
1652
- cssp._transformType = (!(m1.svg && _forceSVGTransformToAttr) && (has3D || this._transformType === 3)) ? 3 : 2; //quicker than calling cssp._enableTransforms();
1653
+ cssp._transformType = (!(m1.svg && _useSVGTransformAttr) && (has3D || this._transformType === 3)) ? 3 : 2; //quicker than calling cssp._enableTransforms();
1653
1654
  }
1654
1655
  return pt;
1655
1656
  }, prefix:true});
@@ -1724,7 +1725,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
1724
1725
  if (src && src !== "none") {
1725
1726
  ba = bs.split(" ");
1726
1727
  ea = es.split(" ");
1727
- _tempImg.setAttribute("src", src); //set the temp <img>'s src to the background-image so that we can measure its width/height
1728
+ _tempImg.setAttribute("src", src); //set the temp IMG's src to the background-image so that we can measure its width/height
1728
1729
  i = 2;
1729
1730
  while (--i > -1) {
1730
1731
  bs = ba[i];
@@ -2239,7 +2240,7 @@ var _gsScope = (typeof(module) !== "undefined" && module.exports && typeof(globa
2239
2240
  */
2240
2241
  p._enableTransforms = function(threeD) {
2241
2242
  this._transform = this._transform || _getTransform(this._target, _cs, true); //ensures that the element has a _gsTransform property with the appropriate values.
2242
- this._transformType = (!(this._transform.svg && _forceSVGTransformToAttr) && (threeD || this._transformType === 3)) ? 3 : 2;
2243
+ this._transformType = (!(this._transform.svg && _useSVGTransformAttr) && (threeD || this._transformType === 3)) ? 3 : 2;
2243
2244
  };
2244
2245
 
2245
2246
  var lazySet = function(v) {
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.14.1.0
4
+ version: 1.14.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-10-26 00:00:00.000000000 Z
11
+ date: 2014-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler