Skip to content

Instantly share code, notes, and snippets.

@AramZS
Created February 19, 2016 16:09
Show Gist options
  • Save AramZS/5894de99c341f4c07685 to your computer and use it in GitHub Desktop.
Save AramZS/5894de99c341f4c07685 to your computer and use it in GitHub Desktop.
Greensock's CSS plugin
/*!
* VERSION: 1.17.0
* DATE: 2015-05-27
* UPDATES AND DOCS AT: http://greensock.com
*
* @license Copyright (c) 2008-2015, GreenSock. All rights reserved.
* This work is subject to the terms at http://greensock.com/standard-license or for
* Club GreenSock members, the software agreement that was issued with your membership.
*
* @author: Jack Doyle, jack@greensock.com
*/
var _gsScope = "undefined" != typeof module && module.exports && "undefined" != typeof global ? global : this || window;
(_gsScope._gsQueue || (_gsScope._gsQueue = [])).push(function() {
"use strict";
_gsScope._gsDefine("plugins.CSSPlugin", ["plugins.TweenPlugin", "TweenLite"], function(t, e) {
var i, r, s, n, a = function() {
t.call(this, "css"), this._overwriteProps.length = 0, this.setRatio = a.prototype.setRatio
},
o = _gsScope._gsDefine.globals,
l = {},
h = a.prototype = new t("css");
h.constructor = a, a.version = "1.17.0", a.API = 2, a.defaultTransformPerspective = 0, a.defaultSkewType = "compensated", a.defaultSmoothOrigin = !0, h = "px", a.suffixMap = {
top: h,
right: h,
bottom: h,
left: h,
width: h,
height: h,
fontSize: h,
padding: h,
margin: h,
perspective: h,
lineHeight: ""
};
var u, f, c, p, _, d, m = /(?:\d|\-\d|\.\d|\-\.\d)+/g,
g = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,
v = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,
y = /(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,
x = /(?:\d|\-|\+|=|#|\.)*/g,
T = /opacity *= *([^)]*)/i,
w = /opacity:([^;]*)/i,
b = /alpha\(opacity *=.+?\)/i,
P = /^(rgb|hsl)/,
S = /([A-Z])/g,
O = /-([a-z])/gi,
k = /(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,
C = function(t, e) {
return e.toUpperCase()
},
R = /(?:Left|Right|Width)/i,
A = /(M11|M12|M21|M22)=[\d\-\.e]+/gi,
M = /progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,
D = /,(?=[^\)]*(?:\(|$))/gi,
N = Math.PI / 180,
L = 180 / Math.PI,
F = {},
X = document,
z = function(t) {
return X.createElementNS ? X.createElementNS("http://www.w3.org/1999/xhtml", t) : X.createElement(t)
},
B = z("div"),
E = z("img"),
I = a._internals = {
_specialProps: l
},
Y = navigator.userAgent,
W = function() {
var t = Y.indexOf("Android"),
e = z("a");
return c = -1 !== Y.indexOf("Safari") && -1 === Y.indexOf("Chrome") && (-1 === t || Number(Y.substr(t + 8, 1)) > 3), _ = c && 6 > Number(Y.substr(Y.indexOf("Version/") + 8, 1)), p = -1 !== Y.indexOf("Firefox"), (/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(Y) || /Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(Y)) && (d = parseFloat(RegExp.$1)), e ? (e.style.cssText = "top:1px;opacity:.55;", /^0.55/.test(e.style.opacity)) : !1
}(),
V = function(t) {
return T.test("string" == typeof t ? t : (t.currentStyle ? t.currentStyle.filter : t.style.filter) || "") ? parseFloat(RegExp.$1) / 100 : 1
},
j = function(t) {
window.console && console.log(t)
},
G = "",
U = "",
q = function(t, e) {
e = e || B;
var i, r, s = e.style;
if (void 0 !== s[t]) return t;
for (t = t.charAt(0).toUpperCase() + t.substr(1), i = ["O", "Moz", "ms", "Ms", "Webkit"], r = 5; --r > -1 && void 0 === s[i[r] + t];);
return r >= 0 ? (U = 3 === r ? "ms" : i[r], G = "-" + U.toLowerCase() + "-", U + t) : null
},
H = X.defaultView ? X.defaultView.getComputedStyle : function() {},
Q = a.getStyle = function(t, e, i, r, s) {
var n;
return W || "opacity" !== e ? (!r && t.style[e] ? n = t.style[e] : (i = i || H(t)) ? n = i[e] || i.getPropertyValue(e) || i.getPropertyValue(e.replace(S, "-$1").toLowerCase()) : t.currentStyle && (n = t.currentStyle[e]), null == s || n && "none" !== n && "auto" !== n && "auto auto" !== n ? n : s) : V(t)
},
Z = I.convertToPixels = function(t, i, r, s, n) {
if ("px" === s || !s) return r;
if ("auto" === s || !r) return 0;
var o, l, h, u = R.test(i),
f = t,
c = B.style,
p = 0 > r;
if (p && (r = -r), "%" === s && -1 !== i.indexOf("border")) o = r / 100 * (u ? t.clientWidth : t.clientHeight);
else {
if (c.cssText = "border:0 solid red;position:" + Q(t, "position") + ";line-height:0;", "%" !== s && f.appendChild) c[u ? "borderLeftWidth" : "borderTopWidth"] = r + s;
else {
if (f = t.parentNode || X.body, l = f._gsCache, h = e.ticker.frame, l && u && l.time === h) return l.width * r / 100;
c[u ? "width" : "height"] = r + s
}
f.appendChild(B), o = parseFloat(B[u ? "offsetWidth" : "offsetHeight"]), f.removeChild(B), u && "%" === s && a.cacheWidths !== !1 && (l = f._gsCache = f._gsCache || {}, l.time = h, l.width = 100 * (o / r)), 0 !== o || n || (o = Z(t, i, r, s, !0))
}
return p ? -o : o
},
$ = I.calculateOffset = function(t, e, i) {
if ("absolute" !== Q(t, "position", i)) return 0;
var r = "left" === e ? "Left" : "Top",
s = Q(t, "margin" + r, i);
return t["offset" + r] - (Z(t, e, parseFloat(s), s.replace(x, "")) || 0)
},
K = function(t, e) {
var i, r, s, n = {};
if (e = e || H(t, null))
if (i = e.length)
for (; --i > -1;) s = e[i], (-1 === s.indexOf("-transform") || Pe === s) && (n[s.replace(O, C)] = e.getPropertyValue(s));
else
for (i in e)(-1 === i.indexOf("Transform") || be === i) && (n[i] = e[i]);
else if (e = t.currentStyle || t.style)
for (i in e) "string" == typeof i && void 0 === n[i] && (n[i.replace(O, C)] = e[i]);
return W || (n.opacity = V(t)), r = Xe(t, e, !1), n.rotation = r.rotation, n.skewX = r.skewX, n.scaleX = r.scaleX, n.scaleY = r.scaleY, n.x = r.x, n.y = r.y, Oe && (n.z = r.z, n.rotationX = r.rotationX, n.rotationY = r.rotationY, n.scaleZ = r.scaleZ), n.filters && delete n.filters, n
},
J = function(t, e, i, r, s) {
var n, a, o, l = {},
h = t.style;
for (a in i) "cssText" !== a && "length" !== a && isNaN(a) && (e[a] !== (n = i[a]) || s && s[a]) && -1 === a.indexOf("Origin") && ("number" == typeof n || "string" == typeof n) && (l[a] = "auto" !== n || "left" !== a && "top" !== a ? "" !== n && "auto" !== n && "none" !== n || "string" != typeof e[a] || "" === e[a].replace(y, "") ? n : 0 : $(t, a), void 0 !== h[a] && (o = new pe(h, a, h[a], o)));
if (r)
for (a in r) "className" !== a && (l[a] = r[a]);
return {
difs: l,
firstMPT: o
}
},
te = {
width: ["Left", "Right"],
height: ["Top", "Bottom"]
},
ee = ["marginLeft", "marginRight", "marginTop", "marginBottom"],
ie = function(t, e, i) {
var r = parseFloat("width" === e ? t.offsetWidth : t.offsetHeight),
s = te[e],
n = s.length;
for (i = i || H(t, null); --n > -1;) r -= parseFloat(Q(t, "padding" + s[n], i, !0)) || 0, r -= parseFloat(Q(t, "border" + s[n] + "Width", i, !0)) || 0;
return r
},
re = function(t, e) {
(null == t || "" === t || "auto" === t || "auto auto" === t) && (t = "0 0");
var i = t.split(" "),
r = -1 !== t.indexOf("left") ? "0%" : -1 !== t.indexOf("right") ? "100%" : i[0],
s = -1 !== t.indexOf("top") ? "0%" : -1 !== t.indexOf("bottom") ? "100%" : i[1];
return null == s ? s = "center" === r ? "50%" : "0" : "center" === s && (s = "50%"), ("center" === r || isNaN(parseFloat(r)) && -1 === (r + "").indexOf("=")) && (r = "50%"), t = r + " " + s + (i.length > 2 ? " " + i[2] : ""), e && (e.oxp = -1 !== r.indexOf("%"), e.oyp = -1 !== s.indexOf("%"), e.oxr = "=" === r.charAt(1), e.oyr = "=" === s.charAt(1), e.ox = parseFloat(r.replace(y, "")), e.oy = parseFloat(s.replace(y, "")), e.v = t), e || t
},
se = function(t, e) {
return "string" == typeof t && "=" === t.charAt(1) ? parseInt(t.charAt(0) + "1", 10) * parseFloat(t.substr(2)) : parseFloat(t) - parseFloat(e)
},
ne = function(t, e) {
return null == t ? e : "string" == typeof t && "=" === t.charAt(1) ? parseInt(t.charAt(0) + "1", 10) * parseFloat(t.substr(2)) + e : parseFloat(t)
},
ae = function(t, e, i, r) {
var s, n, a, o, l, h = 1e-6;
return null == t ? o = e : "number" == typeof t ? o = t : (s = 360, n = t.split("_"), l = "=" === t.charAt(1), a = (l ? parseInt(t.charAt(0) + "1", 10) * parseFloat(n[0].substr(2)) : parseFloat(n[0])) * (-1 === t.indexOf("rad") ? 1 : L) - (l ? 0 : e), n.length && (r && (r[i] = e + a), -1 !== t.indexOf("short") && (a %= s, a !== a % (s / 2) && (a = 0 > a ? a + s : a - s)), -1 !== t.indexOf("_cw") && 0 > a ? a = (a + 9999999999 * s) % s - (0 | a / s) * s : -1 !== t.indexOf("ccw") && a > 0 && (a = (a - 9999999999 * s) % s - (0 | a / s) * s)), o = e + a), h > o && o > -h && (o = 0), o
},
oe = {
aqua: [0, 255, 255],
lime: [0, 255, 0],
silver: [192, 192, 192],
black: [0, 0, 0],
maroon: [128, 0, 0],
teal: [0, 128, 128],
blue: [0, 0, 255],
navy: [0, 0, 128],
white: [255, 255, 255],
fuchsia: [255, 0, 255],
olive: [128, 128, 0],
yellow: [255, 255, 0],
orange: [255, 165, 0],
gray: [128, 128, 128],
purple: [128, 0, 128],
green: [0, 128, 0],
red: [255, 0, 0],
pink: [255, 192, 203],
cyan: [0, 255, 255],
transparent: [255, 255, 255, 0]
},
le = function(t, e, i) {
return t = 0 > t ? t + 1 : t > 1 ? t - 1 : t, 0 | 255 * (1 > 6 * t ? e + 6 * (i - e) * t : .5 > t ? i : 2 > 3 * t ? e + 6 * (i - e) * (2 / 3 - t) : e) + .5
},
he = a.parseColor = function(t) {
var e, i, r, s, n, a;
return t && "" !== t ? "number" == typeof t ? [t >> 16, 255 & t >> 8, 255 & t] : ("," === t.charAt(t.length - 1) && (t = t.substr(0, t.length - 1)), oe[t] ? oe[t] : "#" === t.charAt(0) ? (4 === t.length && (e = t.charAt(1), i = t.charAt(2), r = t.charAt(3), t = "#" + e + e + i + i + r + r), t = parseInt(t.substr(1), 16), [t >> 16, 255 & t >> 8, 255 & t]) : "hsl" === t.substr(0, 3) ? (t = t.match(m), s = Number(t[0]) % 360 / 360, n = Number(t[1]) / 100, a = Number(t[2]) / 100, i = .5 >= a ? a * (n + 1) : a + n - a * n, e = 2 * a - i, t.length > 3 && (t[3] = Number(t[3])), t[0] = le(s + 1 / 3, e, i), t[1] = le(s, e, i), t[2] = le(s - 1 / 3, e, i), t) : (t = t.match(m) || oe.transparent, t[0] = Number(t[0]), t[1] = Number(t[1]), t[2] = Number(t[2]), t.length > 3 && (t[3] = Number(t[3])), t)) : oe.black
},
ue = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#.+?\\b";
for (h in oe) ue += "|" + h + "\\b";
ue = RegExp(ue + ")", "gi");
var fe = function(t, e, i, r) {
if (null == t) return function(t) {
return t
};
var s, n = e ? (t.match(ue) || [""])[0] : "",
a = t.split(n).join("").match(v) || [],
o = t.substr(0, t.indexOf(a[0])),
l = ")" === t.charAt(t.length - 1) ? ")" : "",
h = -1 !== t.indexOf(" ") ? " " : ",",
u = a.length,
f = u > 0 ? a[0].replace(m, "") : "";
return u ? s = e ? function(t) {
var e, c, p, _;
if ("number" == typeof t) t += f;
else if (r && D.test(t)) {
for (_ = t.replace(D, "|").split("|"), p = 0; _.length > p; p++) _[p] = s(_[p]);
return _.join(",")
}
if (e = (t.match(ue) || [n])[0], c = t.split(e).join("").match(v) || [], p = c.length, u > p--)
for (; u > ++p;) c[p] = i ? c[0 | (p - 1) / 2] : a[p];
return o + c.join(h) + h + e + l + (-1 !== t.indexOf("inset") ? " inset" : "")
} : function(t) {
var e, n, c;
if ("number" == typeof t) t += f;
else if (r && D.test(t)) {
for (n = t.replace(D, "|").split("|"), c = 0; n.length > c; c++) n[c] = s(n[c]);
return n.join(",")
}
if (e = t.match(v) || [], c = e.length, u > c--)
for (; u > ++c;) e[c] = i ? e[0 | (c - 1) / 2] : a[c];
return o + e.join(h) + l
} : function(t) {
return t
}
},
ce = function(t) {
return t = t.split(","),
function(e, i, r, s, n, a, o) {
var l, h = (i + "").split(" ");
for (o = {}, l = 0; 4 > l; l++) o[t[l]] = h[l] = h[l] || h[(l - 1) / 2 >> 0];
return s.parse(e, o, n, a)
}
},
pe = (I._setPluginRatio = function(t) {
this.plugin.setRatio(t);
for (var e, i, r, s, n = this.data, a = n.proxy, o = n.firstMPT, l = 1e-6; o;) e = a[o.v], o.r ? e = Math.round(e) : l > e && e > -l && (e = 0), o.t[o.p] = e, o = o._next;
if (n.autoRotate && (n.autoRotate.rotation = a.rotation), 1 === t)
for (o = n.firstMPT; o;) {
if (i = o.t, i.type) {
if (1 === i.type) {
for (s = i.xs0 + i.s + i.xs1, r = 1; i.l > r; r++) s += i["xn" + r] + i["xs" + (r + 1)];
i.e = s
}
} else i.e = i.s + i.xs0;
o = o._next
}
}, function(t, e, i, r, s) {
this.t = t, this.p = e, this.v = i, this.r = s, r && (r._prev = this, this._next = r)
}),
_e = (I._parseToProxy = function(t, e, i, r, s, n) {
var a, o, l, h, u, f = r,
c = {},
p = {},
_ = i._transform,
d = F;
for (i._transform = null, F = e, r = u = i.parse(t, e, r, s), F = d, n && (i._transform = _, f && (f._prev = null, f._prev && (f._prev._next = null))); r && r !== f;) {
if (1 >= r.type && (o = r.p, p[o] = r.s + r.c, c[o] = r.s, n || (h = new pe(r, "s", o, h, r.r), r.c = 0), 1 === r.type))
for (a = r.l; --a > 0;) l = "xn" + a, o = r.p + "_" + l, p[o] = r.data[l], c[o] = r[l], n || (h = new pe(r, l, o, h, r.rxp[l]));
r = r._next
}
return {
proxy: c,
end: p,
firstMPT: h,
pt: u
}
}, I.CSSPropTween = function(t, e, r, s, a, o, l, h, u, f, c) {
this.t = t, this.p = e, this.s = r, this.c = s, this.n = l || e, t instanceof _e || n.push(this.n), this.r = h, this.type = o || 0, u && (this.pr = u, i = !0), this.b = void 0 === f ? r : f, this.e = void 0 === c ? r + s : c, a && (this._next = a, a._prev = this)
}),
de = function(t, e, i, r, s, n) {
var a = new _e(t, e, i, r - i, s, -1, n);
return a.b = i, a.e = a.xs0 = r, a
},
me = a.parseComplex = function(t, e, i, r, s, n, a, o, l, h) {
i = i || n || "", a = new _e(t, e, 0, 0, a, h ? 2 : 1, null, !1, o, i, r), r += "";
var f, c, p, _, d, v, y, x, T, w, b, S, O = i.split(", ").join(",").split(" "),
k = r.split(", ").join(",").split(" "),
C = O.length,
R = u !== !1;
for ((-1 !== r.indexOf(",") || -1 !== i.indexOf(",")) && (O = O.join(" ").replace(D, ", ").split(" "), k = k.join(" ").replace(D, ", ").split(" "), C = O.length), C !== k.length && (O = (n || "").split(" "), C = O.length), a.plugin = l, a.setRatio = h, f = 0; C > f; f++)
if (_ = O[f], d = k[f], x = parseFloat(_), x || 0 === x) a.appendXtra("", x, se(d, x), d.replace(g, ""), R && -1 !== d.indexOf("px"), !0);
else if (s && ("#" === _.charAt(0) || oe[_] || P.test(_))) S = "," === d.charAt(d.length - 1) ? ")," : ")", _ = he(_), d = he(d), T = _.length + d.length > 6, T && !W && 0 === d[3] ? (a["xs" + a.l] += a.l ? " transparent" : "transparent", a.e = a.e.split(k[f]).join("transparent")) : (W || (T = !1), a.appendXtra(T ? "rgba(" : "rgb(", _[0], d[0] - _[0], ",", !0, !0).appendXtra("", _[1], d[1] - _[1], ",", !0).appendXtra("", _[2], d[2] - _[2], T ? "," : S, !0), T && (_ = 4 > _.length ? 1 : _[3], a.appendXtra("", _, (4 > d.length ? 1 : d[3]) - _, S, !1)));
else if (v = _.match(m)) {
if (y = d.match(g), !y || y.length !== v.length) return a;
for (p = 0, c = 0; v.length > c; c++) b = v[c], w = _.indexOf(b, p), a.appendXtra(_.substr(p, w - p), Number(b), se(y[c], b), "", R && "px" === _.substr(w + b.length, 2), 0 === c), p = w + b.length;
a["xs" + a.l] += _.substr(p)
} else a["xs" + a.l] += a.l ? " " + _ : _;
if (-1 !== r.indexOf("=") && a.data) {
for (S = a.xs0 + a.data.s, f = 1; a.l > f; f++) S += a["xs" + f] + a.data["xn" + f];
a.e = S + a["xs" + f]
}
return a.l || (a.type = -1, a.xs0 = a.e), a.xfirst || a
},
ge = 9;
for (h = _e.prototype, h.l = h.pr = 0; --ge > 0;) h["xn" + ge] = 0, h["xs" + ge] = "";
h.xs0 = "", h._next = h._prev = h.xfirst = h.data = h.plugin = h.setRatio = h.rxp = null, h.appendXtra = function(t, e, i, r, s, n) {
var a = this,
o = a.l;
return a["xs" + o] += n && o ? " " + t : t || "", i || 0 === o || a.plugin ? (a.l++, a.type = a.setRatio ? 2 : 1, a["xs" + a.l] = r || "", o > 0 ? (a.data["xn" + o] = e + i, a.rxp["xn" + o] = s, a["xn" + o] = e, a.plugin || (a.xfirst = new _e(a, "xn" + o, e, i, a.xfirst || a, 0, a.n, s, a.pr), a.xfirst.xs0 = 0), a) : (a.data = {
s: e + i
}, a.rxp = {}, a.s = e, a.c = i, a.r = s, a)) : (a["xs" + o] += e + (r || ""), a)
};
var ve = function(t, e) {
e = e || {}, this.p = e.prefix ? q(t) || t : t, l[t] = l[this.p] = this, this.format = e.formatter || fe(e.defaultValue, e.color, e.collapsible, e.multi), e.parser && (this.parse = e.parser), this.clrs = e.color, this.multi = e.multi, this.keyword = e.keyword, this.dflt = e.defaultValue, this.pr = e.priority || 0
},
ye = I._registerComplexSpecialProp = function(t, e, i) {
"object" != typeof e && (e = {
parser: i
});
var r, s, n = t.split(","),
a = e.defaultValue;
for (i = i || [a], r = 0; n.length > r; r++) e.prefix = 0 === r && e.prefix, e.defaultValue = i[r] || a, s = new ve(n[r], e)
},
xe = function(t) {
if (!l[t]) {
var e = t.charAt(0).toUpperCase() + t.substr(1) + "Plugin";
ye(t, {
parser: function(t, i, r, s, n, a, h) {
var u = o.com.greensock.plugins[e];
return u ? (u._cssRegister(), l[r].parse(t, i, r, s, n, a, h)) : (j("Error: " + e + " js file not loaded."), n)
}
})
}
};
h = ve.prototype, h.parseComplex = function(t, e, i, r, s, n) {
var a, o, l, h, u, f, c = this.keyword;
if (this.multi && (D.test(i) || D.test(e) ? (o = e.replace(D, "|").split("|"), l = i.replace(D, "|").split("|")) : c && (o = [e], l = [i])), l) {
for (h = l.length > o.length ? l.length : o.length, a = 0; h > a; a++) e = o[a] = o[a] || this.dflt, i = l[a] = l[a] || this.dflt, c && (u = e.indexOf(c), f = i.indexOf(c), u !== f && (-1 === f ? o[a] = o[a].split(c).join("") : -1 === u && (o[a] += " " + c)));
e = o.join(", "), i = l.join(", ")
}
return me(t, this.p, e, i, this.clrs, this.dflt, r, this.pr, s, n)
}, h.parse = function(t, e, i, r, n, a) {
return this.parseComplex(t.style, this.format(Q(t, this.p, s, !1, this.dflt)), this.format(e), n, a)
}, a.registerSpecialProp = function(t, e, i) {
ye(t, {
parser: function(t, r, s, n, a, o) {
var l = new _e(t, s, 0, 0, a, 2, s, !1, i);
return l.plugin = o, l.setRatio = e(t, r, n._tween, s), l
},
priority: i
})
}, a.useSVGTransformAttr = c || p;
var Te, we = "scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),
be = q("transform"),
Pe = G + "transform",
Se = q("transformOrigin"),
Oe = null !== q("perspective"),
ke = I.Transform = function() {
this.perspective = parseFloat(a.defaultTransformPerspective) || 0, this.force3D = a.defaultForce3D !== !1 && Oe ? a.defaultForce3D || "auto" : !1
},
Ce = window.SVGElement,
Re = function(t, e, i) {
var r, s = X.createElementNS("http://www.w3.org/2000/svg", t),
n = /([a-z])([A-Z])/g;
for (r in i) s.setAttributeNS(null, r.replace(n, "$1-$2").toLowerCase(), i[r]);
return e.appendChild(s), s
},
Ae = X.documentElement,
Me = function() {
var t, e, i, r = d || /Android/i.test(Y) && !window.chrome;
return X.createElementNS && !r && (t = Re("svg", Ae), e = Re("rect", t, {
width: 100,
height: 50,
x: 100
}), i = e.getBoundingClientRect().width, e.style[Se] = "50% 50%", e.style[be] = "scaleX(0.5)", r = i === e.getBoundingClientRect().width && !(p && Oe), Ae.removeChild(t)), r
}(),
De = function(t, e, i, r, s) {
var n, o, l, h, u, f, c, p, _, d, m, g, v, y, x = t._gsTransform,
T = Fe(t, !0);
x && (v = x.xOrigin, y = x.yOrigin), (!r || 2 > (n = r.split(" ")).length) && (c = t.getBBox(), e = re(e).split(" "), n = [(-1 !== e[0].indexOf("%") ? parseFloat(e[0]) / 100 * c.width : parseFloat(e[0])) + c.x, (-1 !== e[1].indexOf("%") ? parseFloat(e[1]) / 100 * c.height : parseFloat(e[1])) + c.y]), i.xOrigin = h = parseFloat(n[0]), i.yOrigin = u = parseFloat(n[1]), r && T !== Le && (f = T[0], c = T[1], p = T[2], _ = T[3], d = T[4], m = T[5], g = f * _ - c * p, o = h * (_ / g) + u * (-p / g) + (p * m - _ * d) / g, l = h * (-c / g) + u * (f / g) - (f * m - c * d) / g, h = i.xOrigin = n[0] = o, u = i.yOrigin = n[1] = l), x && (s || s !== !1 && a.defaultSmoothOrigin !== !1 ? (o = h - v, l = u - y, x.xOffset += o * T[0] + l * T[2] - o, x.yOffset += o * T[1] + l * T[3] - l) : x.xOffset = x.yOffset = 0), t.setAttribute("data-svg-origin", n.join(" "))
},
Ne = function(t) {
return !!(Ce && "function" == typeof t.getBBox && t.getCTM && (!t.parentNode || t.parentNode.getBBox && t.parentNode.getCTM))
},
Le = [1, 0, 0, 1, 0, 0],
Fe = function(t, e) {
var i, r, s, n, a, o = t._gsTransform || new ke,
l = 1e5;
if (be ? r = Q(t, Pe, null, !0) : t.currentStyle && (r = t.currentStyle.filter.match(A), r = r && 4 === r.length ? [r[0].substr(4), Number(r[2].substr(4)), Number(r[1].substr(4)), r[3].substr(4), o.x || 0, o.y || 0].join(",") : ""), i = !r || "none" === r || "matrix(1, 0, 0, 1, 0, 0)" === r, (o.svg || t.getBBox && Ne(t)) && (i && -1 !== (t.style[be] + "").indexOf("matrix") && (r = t.style[be], i = 0), s = t.getAttribute("transform"), i && s && (-1 !== s.indexOf("matrix") ? (r = s, i = 0) : -1 !== s.indexOf("translate") && (r = "matrix(1,0,0,1," + s.match(/(?:\-|\b)[\d\-\.e]+\b/gi).join(",") + ")", i = 0))), i) return Le;
for (s = (r || "").match(/(?:\-|\b)[\d\-\.e]+\b/gi) || [], ge = s.length; --ge > -1;) n = Number(s[ge]), s[ge] = (a = n - (n |= 0)) ? (0 | a * l + (0 > a ? -.5 : .5)) / l + n : n;
return e && s.length > 6 ? [s[0], s[1], s[4], s[5], s[12], s[13]] : s
},
Xe = I.getTransform = function(t, i, r, n) {
if (t._gsTransform && r && !n) return t._gsTransform;
var o, l, h, u, f, c, p = r ? t._gsTransform || new ke : new ke,
_ = 0 > p.scaleX,
d = 2e-5,
m = 1e5,
g = Oe ? parseFloat(Q(t, Se, i, !1, "0 0 0").split(" ")[2]) || p.zOrigin || 0 : 0,
v = parseFloat(a.defaultTransformPerspective) || 0;
if (p.svg = !(!t.getBBox || !Ne(t)), p.svg && (De(t, Q(t, Se, s, !1, "50% 50%") + "", p, t.getAttribute("data-svg-origin")), Te = a.useSVGTransformAttr || Me), o = Fe(t), o !== Le) {
if (16 === o.length) {
var y, x, T, w, b, P = o[0],
S = o[1],
O = o[2],
k = o[3],
C = o[4],
R = o[5],
A = o[6],
M = o[7],
D = o[8],
N = o[9],
F = o[10],
X = o[12],
z = o[13],
B = o[14],
E = o[11],
I = Math.atan2(A, F);
p.zOrigin && (B = -p.zOrigin, X = D * B - o[12], z = N * B - o[13], B = F * B + p.zOrigin - o[14]), p.rotationX = I * L, I && (w = Math.cos(-I), b = Math.sin(-I), y = C * w + D * b, x = R * w + N * b, T = A * w + F * b, D = C * -b + D * w, N = R * -b + N * w, F = A * -b + F * w, E = M * -b + E * w, C = y, R = x, A = T), I = Math.atan2(D, F), p.rotationY = I * L, I && (w = Math.cos(-I), b = Math.sin(-I), y = P * w - D * b, x = S * w - N * b, T = O * w - F * b, N = S * b + N * w, F = O * b + F * w, E = k * b + E * w, P = y, S = x, O = T), I = Math.atan2(S, P), p.rotation = I * L, I && (w = Math.cos(-I), b = Math.sin(-I), P = P * w + C * b, x = S * w + R * b, R = S * -b + R * w, A = O * -b + A * w, S = x), p.rotationX && Math.abs(p.rotationX) + Math.abs(p.rotation) > 359.9 && (p.rotationX = p.rotation = 0, p.rotationY += 180), p.scaleX = (0 | Math.sqrt(P * P + S * S) * m + .5) / m, p.scaleY = (0 | Math.sqrt(R * R + N * N) * m + .5) / m, p.scaleZ = (0 | Math.sqrt(A * A + F * F) * m + .5) / m, p.skewX = 0, p.perspective = E ? 1 / (0 > E ? -E : E) : 0, p.x = X, p.y = z, p.z = B, p.svg && (p.x -= p.xOrigin - (p.xOrigin * P - p.yOrigin * C), p.y -= p.yOrigin - (p.yOrigin * S - p.xOrigin * R))
} else if (!(Oe && !n && o.length && p.x === o[4] && p.y === o[5] && (p.rotationX || p.rotationY) || void 0 !== p.x && "none" === Q(t, "display", i))) {
var Y = o.length >= 6,
W = Y ? o[0] : 1,
V = o[1] || 0,
j = o[2] || 0,
G = Y ? o[3] : 1;
p.x = o[4] || 0, p.y = o[5] || 0, h = Math.sqrt(W * W + V * V), u = Math.sqrt(G * G + j * j), f = W || V ? Math.atan2(V, W) * L : p.rotation || 0, c = j || G ? Math.atan2(j, G) * L + f : p.skewX || 0, Math.abs(c) > 90 && 270 > Math.abs(c) && (_ ? (h *= -1, c += 0 >= f ? 180 : -180, f += 0 >= f ? 180 : -180) : (u *= -1, c += 0 >= c ? 180 : -180)), p.scaleX = h, p.scaleY = u, p.rotation = f, p.skewX = c, Oe && (p.rotationX = p.rotationY = p.z = 0, p.perspective = v, p.scaleZ = 1), p.svg && (p.x -= p.xOrigin - (p.xOrigin * W + p.yOrigin * j), p.y -= p.yOrigin - (p.xOrigin * V + p.yOrigin * G))
}
p.zOrigin = g;
for (l in p) d > p[l] && p[l] > -d && (p[l] = 0)
}
return r && (t._gsTransform = p, p.svg && (Te && t.style[be] ? e.delayedCall(.001, function() {
Ie(t.style, be)
}) : !Te && t.getAttribute("transform") && e.delayedCall(.001, function() {
t.removeAttribute("transform")
}))), p
},
ze = function(t) {
var e, i, r = this.data,
s = -r.rotation * N,
n = s + r.skewX * N,
a = 1e5,
o = (0 | Math.cos(s) * r.scaleX * a) / a,
l = (0 | Math.sin(s) * r.scaleX * a) / a,
h = (0 | Math.sin(n) * -r.scaleY * a) / a,
u = (0 | Math.cos(n) * r.scaleY * a) / a,
f = this.t.style,
c = this.t.currentStyle;
if (c) {
i = l, l = -h, h = -i, e = c.filter, f.filter = "";
var p, _, m = this.t.offsetWidth,
g = this.t.offsetHeight,
v = "absolute" !== c.position,
y = "progid:DXImageTransform.Microsoft.Matrix(M11=" + o + ", M12=" + l + ", M21=" + h + ", M22=" + u,
w = r.x + m * r.xPercent / 100,
b = r.y + g * r.yPercent / 100;
if (null != r.ox && (p = (r.oxp ? .01 * m * r.ox : r.ox) - m / 2, _ = (r.oyp ? .01 * g * r.oy : r.oy) - g / 2, w += p - (p * o + _ * l), b += _ - (p * h + _ * u)), v ? (p = m / 2, _ = g / 2, y += ", Dx=" + (p - (p * o + _ * l) + w) + ", Dy=" + (_ - (p * h + _ * u) + b) + ")") : y += ", sizingMethod='auto expand')", f.filter = -1 !== e.indexOf("DXImageTransform.Microsoft.Matrix(") ? e.replace(M, y) : y + " " + e, (0 === t || 1 === t) && 1 === o && 0 === l && 0 === h && 1 === u && (v && -1 === y.indexOf("Dx=0, Dy=0") || T.test(e) && 100 !== parseFloat(RegExp.$1) || -1 === e.indexOf("gradient(" && e.indexOf("Alpha")) && f.removeAttribute("filter")), !v) {
var P, S, O, k = 8 > d ? 1 : -1;
for (p = r.ieOffsetX || 0, _ = r.ieOffsetY || 0, r.ieOffsetX = Math.round((m - ((0 > o ? -o : o) * m + (0 > l ? -l : l) * g)) / 2 + w), r.ieOffsetY = Math.round((g - ((0 > u ? -u : u) * g + (0 > h ? -h : h) * m)) / 2 + b), ge = 0; 4 > ge; ge++) S = ee[ge], P = c[S], i = -1 !== P.indexOf("px") ? parseFloat(P) : Z(this.t, S, parseFloat(P), P.replace(x, "")) || 0, O = i !== r[S] ? 2 > ge ? -r.ieOffsetX : -r.ieOffsetY : 2 > ge ? p - r.ieOffsetX : _ - r.ieOffsetY, f[S] = (r[S] = Math.round(i - O * (0 === ge || 2 === ge ? 1 : k))) + "px"
}
}
},
Be = I.set3DTransformRatio = I.setTransformRatio = function(t) {
var e, i, r, s, n, a, o, l, h, u, f, c, _, d, m, g, v, y, x, T, w, b, P, S = this.data,
O = this.t.style,
k = S.rotation,
C = S.rotationX,
R = S.rotationY,
A = S.scaleX,
M = S.scaleY,
D = S.scaleZ,
L = S.x,
F = S.y,
X = S.z,
z = S.svg,
B = S.perspective,
E = S.force3D;
if (!(((1 !== t && 0 !== t || "auto" !== E || this.tween._totalTime !== this.tween._totalDuration && this.tween._totalTime) && E || X || B || R || C) && (!Te || !z) && Oe)) return k || S.skewX || z ? (k *= N, b = S.skewX * N, P = 1e5, e = Math.cos(k) * A, s = Math.sin(k) * A, i = Math.sin(k - b) * -M, n = Math.cos(k - b) * M, b && "simple" === S.skewType && (v = Math.tan(b), v = Math.sqrt(1 + v * v), i *= v, n *= v, S.skewY && (e *= v, s *= v)), z && (L += S.xOrigin - (S.xOrigin * e + S.yOrigin * i) + S.xOffset, F += S.yOrigin - (S.xOrigin * s + S.yOrigin * n) + S.yOffset, Te && (S.xPercent || S.yPercent) && (d = this.t.getBBox(), L += .01 * S.xPercent * d.width, F += .01 * S.yPercent * d.height), d = 1e-6, d > L && L > -d && (L = 0), d > F && F > -d && (F = 0)), x = (0 | e * P) / P + "," + (0 | s * P) / P + "," + (0 | i * P) / P + "," + (0 | n * P) / P + "," + L + "," + F + ")", z && Te ? this.t.setAttribute("transform", "matrix(" + x) : O[be] = (S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) matrix(" : "matrix(") + x) : O[be] = (S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) matrix(" : "matrix(") + A + ",0,0," + M + "," + L + "," + F + ")", void 0;
if (p && (d = 1e-4, d > A && A > -d && (A = D = 2e-5), d > M && M > -d && (M = D = 2e-5), !B || S.z || S.rotationX || S.rotationY || (B = 0)), k || S.skewX) k *= N, m = e = Math.cos(k), g = s = Math.sin(k), S.skewX && (k -= S.skewX * N, m = Math.cos(k), g = Math.sin(k), "simple" === S.skewType && (v = Math.tan(S.skewX * N), v = Math.sqrt(1 + v * v), m *= v, g *= v, S.skewY && (e *= v, s *= v))), i = -g, n = m;
else {
if (!(R || C || 1 !== D || B || z)) return O[be] = (S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) translate3d(" : "translate3d(") + L + "px," + F + "px," + X + "px)" + (1 !== A || 1 !== M ? " scale(" + A + "," + M + ")" : ""), void 0;
e = n = 1, i = s = 0
}
h = 1, r = a = o = l = u = f = 0, c = B ? -1 / B : 0, _ = S.zOrigin, d = 1e-6, T = ",", w = "0", k = R * N, k && (m = Math.cos(k), g = Math.sin(k), o = -g, u = c * -g, r = e * g, a = s * g, h = m, c *= m, e *= m, s *= m), k = C * N, k && (m = Math.cos(k), g = Math.sin(k), v = i * m + r * g, y = n * m + a * g, l = h * g, f = c * g, r = i * -g + r * m, a = n * -g + a * m, h *= m, c *= m, i = v, n = y), 1 !== D && (r *= D, a *= D, h *= D, c *= D), 1 !== M && (i *= M, n *= M, l *= M, f *= M), 1 !== A && (e *= A, s *= A, o *= A, u *= A), (_ || z) && (_ && (L += r * -_, F += a * -_, X += h * -_ + _), z && (L += S.xOrigin - (S.xOrigin * e + S.yOrigin * i) + S.xOffset, F += S.yOrigin - (S.xOrigin * s + S.yOrigin * n) + S.yOffset), d > L && L > -d && (L = w), d > F && F > -d && (F = w), d > X && X > -d && (X = 0)), x = S.xPercent || S.yPercent ? "translate(" + S.xPercent + "%," + S.yPercent + "%) matrix3d(" : "matrix3d(", x += (d > e && e > -d ? w : e) + T + (d > s && s > -d ? w : s) + T + (d > o && o > -d ? w : o), x += T + (d > u && u > -d ? w : u) + T + (d > i && i > -d ? w : i) + T + (d > n && n > -d ? w : n), C || R ? (x += T + (d > l && l > -d ? w : l) + T + (d > f && f > -d ? w : f) + T + (d > r && r > -d ? w : r), x += T + (d > a && a > -d ? w : a) + T + (d > h && h > -d ? w : h) + T + (d > c && c > -d ? w : c) + T) : x += ",0,0,0,0,1,0,", x += L + T + F + T + X + T + (B ? 1 + -X / B : 1) + ")", O[be] = x
};
h = ke.prototype, h.x = h.y = h.z = h.skewX = h.skewY = h.rotation = h.rotationX = h.rotationY = h.zOrigin = h.xPercent = h.yPercent = h.xOffset = h.yOffset = 0, h.scaleX = h.scaleY = h.scaleZ = 1, ye("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, i, r, n, o, l) {
if (r._lastParsedTransform === l) return n;
r._lastParsedTransform = l;
var h, u, f, c, p, _, d, m, g, v = t._gsTransform,
y = r._transform = Xe(t, s, !0, l.parseTransform),
x = t.style,
T = 1e-6,
w = we.length,
b = l,
P = {},
S = "transformOrigin";
if ("string" == typeof b.transform && be) f = B.style, f[be] = b.transform, f.display = "block", f.position = "absolute", X.body.appendChild(B), h = Xe(B, null, !1), X.body.removeChild(B), null != b.xPercent && (h.xPercent = ne(b.xPercent, y.xPercent)), null != b.yPercent && (h.yPercent = ne(b.yPercent, y.yPercent));
else if ("object" == typeof b) {
if (h = {
scaleX: ne(null != b.scaleX ? b.scaleX : b.scale, y.scaleX),
scaleY: ne(null != b.scaleY ? b.scaleY : b.scale, y.scaleY),
scaleZ: ne(b.scaleZ, y.scaleZ),
x: ne(b.x, y.x),
y: ne(b.y, y.y),
z: ne(b.z, y.z),
xPercent: ne(b.xPercent, y.xPercent),
yPercent: ne(b.yPercent, y.yPercent),
perspective: ne(b.transformPerspective, y.perspective)
}, d = b.directionalRotation, null != d)
if ("object" == typeof d)
for (f in d) b[f] = d[f];
else b.rotation = d;
"string" == typeof b.x && -1 !== b.x.indexOf("%") && (h.x = 0, h.xPercent = ne(b.x, y.xPercent)), "string" == typeof b.y && -1 !== b.y.indexOf("%") && (h.y = 0, h.yPercent = ne(b.y, y.yPercent)), h.rotation = ae("rotation" in b ? b.rotation : "shortRotation" in b ? b.shortRotation + "_short" : "rotationZ" in b ? b.rotationZ : y.rotation, y.rotation, "rotation", P), Oe && (h.rotationX = ae("rotationX" in b ? b.rotationX : "shortRotationX" in b ? b.shortRotationX + "_short" : y.rotationX || 0, y.rotationX, "rotationX", P), h.rotationY = ae("rotationY" in b ? b.rotationY : "shortRotationY" in b ? b.shortRotationY + "_short" : y.rotationY || 0, y.rotationY, "rotationY", P)), h.skewX = null == b.skewX ? y.skewX : ae(b.skewX, y.skewX), h.skewY = null == b.skewY ? y.skewY : ae(b.skewY, y.skewY), (u = h.skewY - y.skewY) && (h.skewX += u, h.rotation += u)
}
for (Oe && null != b.force3D && (y.force3D = b.force3D, _ = !0), y.skewType = b.skewType || y.skewType || a.defaultSkewType, p = y.force3D || y.z || y.rotationX || y.rotationY || h.z || h.rotationX || h.rotationY || h.perspective, p || null == b.scale || (h.scaleZ = 1); --w > -1;) i = we[w], c = h[i] - y[i], (c > T || -T > c || null != b[i] || null != F[i]) && (_ = !0, n = new _e(y, i, y[i], c, n), i in P && (n.e = P[i]), n.xs0 = 0, n.plugin = o, r._overwriteProps.push(n.n));
return c = b.transformOrigin, y.svg && (c || b.svgOrigin) && (m = y.xOffset, g = y.yOffset, De(t, re(c), h, b.svgOrigin, b.smoothOrigin), n = de(y, "xOrigin", (v ? y : h).xOrigin, h.xOrigin, n, S), n = de(y, "yOrigin", (v ? y : h).yOrigin, h.yOrigin, n, S), (m !== y.xOffset || g !== y.yOffset) && (n = de(y, "xOffset", v ? m : y.xOffset, y.xOffset, n, S), n = de(y, "yOffset", v ? g : y.yOffset, y.yOffset, n, S)), c = Te ? null : "0px 0px"), (c || Oe && p && y.zOrigin) && (be ? (_ = !0, i = Se, c = (c || Q(t, i, s, !1, "50% 50%")) + "", n = new _e(x, i, 0, 0, n, -1, S), n.b = x[i], n.plugin = o, Oe ? (f = y.zOrigin, c = c.split(" "), y.zOrigin = (c.length > 2 && (0 === f || "0px" !== c[2]) ? parseFloat(c[2]) : f) || 0, n.xs0 = n.e = c[0] + " " + (c[1] || "50%") + " 0px", n = new _e(y, "zOrigin", 0, 0, n, -1, n.n), n.b = f, n.xs0 = n.e = y.zOrigin) : n.xs0 = n.e = c) : re(c + "", y)), _ && (r._transformType = y.svg && Te || !p && 3 !== this._transformType ? 2 : 3), n
},
prefix: !0
}), ye("boxShadow", {
defaultValue: "0px 0px 0px 0px #999",
prefix: !0,
color: !0,
multi: !0,
keyword: "inset"
}), ye("borderRadius", {
defaultValue: "0px",
parser: function(t, e, i, n, a) {
e = this.format(e);
var o, l, h, u, f, c, p, _, d, m, g, v, y, x, T, w, b = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"],
P = t.style;
for (d = parseFloat(t.offsetWidth), m = parseFloat(t.offsetHeight), o = e.split(" "), l = 0; b.length > l; l++) this.p.indexOf("border") && (b[l] = q(b[l])), f = u = Q(t, b[l], s, !1, "0px"), -1 !== f.indexOf(" ") && (u = f.split(" "), f = u[0], u = u[1]), c = h = o[l], p = parseFloat(f), v = f.substr((p + "").length), y = "=" === c.charAt(1), y ? (_ = parseInt(c.charAt(0) + "1", 10), c = c.substr(2), _ *= parseFloat(c), g = c.substr((_ + "").length - (0 > _ ? 1 : 0)) || "") : (_ = parseFloat(c), g = c.substr((_ + "").length)), "" === g && (g = r[i] || v), g !== v && (x = Z(t, "borderLeft", p, v), T = Z(t, "borderTop", p, v), "%" === g ? (f = 100 * (x / d) + "%", u = 100 * (T / m) + "%") : "em" === g ? (w = Z(t, "borderLeft", 1, "em"), f = x / w + "em", u = T / w + "em") : (f = x + "px", u = T + "px"), y && (c = parseFloat(f) + _ + g, h = parseFloat(u) + _ + g)), a = me(P, b[l], f + " " + u, c + " " + h, !1, "0px", a);
return a
},
prefix: !0,
formatter: fe("0px 0px 0px 0px", !1, !0)
}), ye("backgroundPosition", {
defaultValue: "0 0",
parser: function(t, e, i, r, n, a) {
var o, l, h, u, f, c, p = "background-position",
_ = s || H(t, null),
m = this.format((_ ? d ? _.getPropertyValue(p + "-x") + " " + _.getPropertyValue(p + "-y") : _.getPropertyValue(p) : t.currentStyle.backgroundPositionX + " " + t.currentStyle.backgroundPositionY) || "0 0"),
g = this.format(e);
if (-1 !== m.indexOf("%") != (-1 !== g.indexOf("%")) && (c = Q(t, "backgroundImage").replace(k, ""), c && "none" !== c)) {
for (o = m.split(" "), l = g.split(" "), E.setAttribute("src", c), h = 2; --h > -1;) m = o[h], u = -1 !== m.indexOf("%"), u !== (-1 !== l[h].indexOf("%")) && (f = 0 === h ? t.offsetWidth - E.width : t.offsetHeight - E.height, o[h] = u ? parseFloat(m) / 100 * f + "px" : 100 * (parseFloat(m) / f) + "%");
m = o.join(" ")
}
return this.parseComplex(t.style, m, g, n, a)
},
formatter: re
}), ye("backgroundSize", {
defaultValue: "0 0",
formatter: re
}), ye("perspective", {
defaultValue: "0px",
prefix: !0
}), ye("perspectiveOrigin", {
defaultValue: "50% 50%",
prefix: !0
}), ye("transformStyle", {
prefix: !0
}), ye("backfaceVisibility", {
prefix: !0
}), ye("userSelect", {
prefix: !0
}), ye("margin", {
parser: ce("marginTop,marginRight,marginBottom,marginLeft")
}), ye("padding", {
parser: ce("paddingTop,paddingRight,paddingBottom,paddingLeft")
}), ye("clip", {
defaultValue: "rect(0px,0px,0px,0px)",
parser: function(t, e, i, r, n, a) {
var o, l, h;
return 9 > d ? (l = t.currentStyle, h = 8 > d ? " " : ",", o = "rect(" + l.clipTop + h + l.clipRight + h + l.clipBottom + h + l.clipLeft + ")", e = this.format(e).split(",").join(h)) : (o = this.format(Q(t, this.p, s, !1, this.dflt)), e = this.format(e)), this.parseComplex(t.style, o, e, n, a)
}
}), ye("textShadow", {
defaultValue: "0px 0px 0px #999",
color: !0,
multi: !0
}), ye("autoRound,strictUnits", {
parser: function(t, e, i, r, s) {
return s
}
}), ye("border", {
defaultValue: "0px solid #000",
parser: function(t, e, i, r, n, a) {
return this.parseComplex(t.style, this.format(Q(t, "borderTopWidth", s, !1, "0px") + " " + Q(t, "borderTopStyle", s, !1, "solid") + " " + Q(t, "borderTopColor", s, !1, "#000")), this.format(e), n, a)
},
color: !0,
formatter: function(t) {
var e = t.split(" ");
return e[0] + " " + (e[1] || "solid") + " " + (t.match(ue) || ["#000"])[0]
}
}), ye("borderWidth", {
parser: ce("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")
}), ye("float,cssFloat,styleFloat", {
parser: function(t, e, i, r, s) {
var n = t.style,
a = "cssFloat" in n ? "cssFloat" : "styleFloat";
return new _e(n, a, 0, 0, s, -1, i, !1, 0, n[a], e)
}
});
var Ee = function(t) {
var e, i = this.t,
r = i.filter || Q(this.data, "filter") || "",
s = 0 | this.s + this.c * t;
100 === s && (-1 === r.indexOf("atrix(") && -1 === r.indexOf("radient(") && -1 === r.indexOf("oader(") ? (i.removeAttribute("filter"), e = !Q(this.data, "filter")) : (i.filter = r.replace(b, ""), e = !0)), e || (this.xn1 && (i.filter = r = r || "alpha(opacity=" + s + ")"), -1 === r.indexOf("pacity") ? 0 === s && this.xn1 || (i.filter = r + " alpha(opacity=" + s + ")") : i.filter = r.replace(T, "opacity=" + s))
};
ye("opacity,alpha,autoAlpha", {
defaultValue: "1",
parser: function(t, e, i, r, n, a) {
var o = parseFloat(Q(t, "opacity", s, !1, "1")),
l = t.style,
h = "autoAlpha" === i;
return "string" == typeof e && "=" === e.charAt(1) && (e = ("-" === e.charAt(0) ? -1 : 1) * parseFloat(e.substr(2)) + o), h && 1 === o && "hidden" === Q(t, "visibility", s) && 0 !== e && (o = 0), W ? n = new _e(l, "opacity", o, e - o, n) : (n = new _e(l, "opacity", 100 * o, 100 * (e - o), n), n.xn1 = h ? 1 : 0, l.zoom = 1, n.type = 2, n.b = "alpha(opacity=" + n.s + ")", n.e = "alpha(opacity=" + (n.s + n.c) + ")", n.data = t, n.plugin = a, n.setRatio = Ee), h && (n = new _e(l, "visibility", 0, 0, n, -1, null, !1, 0, 0 !== o ? "inherit" : "hidden", 0 === e ? "hidden" : "inherit"), n.xs0 = "inherit", r._overwriteProps.push(n.n), r._overwriteProps.push(i)), n
}
});
var Ie = function(t, e) {
e && (t.removeProperty ? (("ms" === e.substr(0, 2) || "webkit" === e.substr(0, 6)) && (e = "-" + e), t.removeProperty(e.replace(S, "-$1").toLowerCase())) : t.removeAttribute(e))
},
Ye = function(t) {
if (this.t._gsClassPT = this, 1 === t || 0 === t) {
this.t.setAttribute("class", 0 === t ? this.b : this.e);
for (var e = this.data, i = this.t.style; e;) e.v ? i[e.p] = e.v : Ie(i, e.p), e = e._next;
1 === t && this.t._gsClassPT === this && (this.t._gsClassPT = null)
} else this.t.getAttribute("class") !== this.e && this.t.setAttribute("class", this.e)
};
ye("className", {
parser: function(t, e, r, n, a, o, l) {
var h, u, f, c, p, _ = t.getAttribute("class") || "",
d = t.style.cssText;
if (a = n._classNamePT = new _e(t, r, 0, 0, a, 2), a.setRatio = Ye, a.pr = -11, i = !0, a.b = _, u = K(t, s), f = t._gsClassPT) {
for (c = {}, p = f.data; p;) c[p.p] = 1, p = p._next;
f.setRatio(1)
}
return t._gsClassPT = a, a.e = "=" !== e.charAt(1) ? e : _.replace(RegExp("\\s*\\b" + e.substr(2) + "\\b"), "") + ("+" === e.charAt(0) ? " " + e.substr(2) : ""), t.setAttribute("class", a.e), h = J(t, u, K(t), l, c), t.setAttribute("class", _), a.data = h.firstMPT, t.style.cssText = d, a = a.xfirst = n.parse(t, h.difs, a, o)
}
});
var We = function(t) {
if ((1 === t || 0 === t) && this.data._totalTime === this.data._totalDuration && "isFromStart" !== this.data.data) {
var e, i, r, s, n, a = this.t.style,
o = l.transform.parse;
if ("all" === this.e) a.cssText = "", s = !0;
else
for (e = this.e.split(" ").join("").split(","), r = e.length; --r > -1;) i = e[r], l[i] && (l[i].parse === o ? s = !0 : i = "transformOrigin" === i ? Se : l[i].p), Ie(a, i);
s && (Ie(a, be), n = this.t._gsTransform, n && (n.svg && this.t.removeAttribute("data-svg-origin"), delete this.t._gsTransform))
}
};
for (ye("clearProps", {
parser: function(t, e, r, s, n) {
return n = new _e(t, r, 0, 0, n, 2), n.setRatio = We, n.e = e, n.pr = -10, n.data = s._tween, i = !0, n
}
}), h = "bezier,throwProps,physicsProps,physics2D".split(","), ge = h.length; ge--;) xe(h[ge]);
h = a.prototype, h._firstPT = h._lastParsedTransform = h._transform = null, h._onInitTween = function(t, e, o) {
if (!t.nodeType) return !1;
this._target = t, this._tween = o, this._vars = e, u = e.autoRound, i = !1, r = e.suffixMap || a.suffixMap, s = H(t, ""), n = this._overwriteProps;
var h, p, d, m, g, v, y, x, T, b = t.style;
if (f && "" === b.zIndex && (h = Q(t, "zIndex", s), ("auto" === h || "" === h) && this._addLazySet(b, "zIndex", 0)), "string" == typeof e && (m = b.cssText, h = K(t, s), b.cssText = m + ";" + e, h = J(t, h, K(t)).difs, !W && w.test(e) && (h.opacity = parseFloat(RegExp.$1)), e = h, b.cssText = m), this._firstPT = p = e.className ? l.className.parse(t, e.className, "className", this, null, null, e) : this.parse(t, e, null), this._transformType) {
for (T = 3 === this._transformType, be ? c && (f = !0, "" === b.zIndex && (y = Q(t, "zIndex", s), ("auto" === y || "" === y) && this._addLazySet(b, "zIndex", 0)), _ && this._addLazySet(b, "WebkitBackfaceVisibility", this._vars.WebkitBackfaceVisibility || (T ? "visible" : "hidden"))) : b.zoom = 1, d = p; d && d._next;) d = d._next;
x = new _e(t, "transform", 0, 0, null, 2), this._linkCSSP(x, null, d), x.setRatio = be ? Be : ze, x.data = this._transform || Xe(t, s, !0), x.tween = o, x.pr = -1, n.pop()
}
if (i) {
for (; p;) {
for (v = p._next, d = m; d && d.pr > p.pr;) d = d._next;
(p._prev = d ? d._prev : g) ? p._prev._next = p: m = p, (p._next = d) ? d._prev = p : g = p, p = v
}
this._firstPT = m
}
return !0
}, h.parse = function(t, e, i, n) {
var a, o, h, f, c, p, _, d, m, g, v = t.style;
for (a in e) p = e[a], o = l[a], o ? i = o.parse(t, p, a, this, i, n, e) : (c = Q(t, a, s) + "", m = "string" == typeof p, "color" === a || "fill" === a || "stroke" === a || -1 !== a.indexOf("Color") || m && P.test(p) ? (m || (p = he(p), p = (p.length > 3 ? "rgba(" : "rgb(") + p.join(",") + ")"), i = me(v, a, c, p, !0, "transparent", i, 0, n)) : !m || -1 === p.indexOf(" ") && -1 === p.indexOf(",") ? (h = parseFloat(c), _ = h || 0 === h ? c.substr((h + "").length) : "", ("" === c || "auto" === c) && ("width" === a || "height" === a ? (h = ie(t, a, s), _ = "px") : "left" === a || "top" === a ? (h = $(t, a, s), _ = "px") : (h = "opacity" !== a ? 0 : 1, _ = "")), g = m && "=" === p.charAt(1), g ? (f = parseInt(p.charAt(0) + "1", 10), p = p.substr(2), f *= parseFloat(p), d = p.replace(x, "")) : (f = parseFloat(p), d = m ? p.replace(x, "") : ""), "" === d && (d = a in r ? r[a] : _), p = f || 0 === f ? (g ? f + h : f) + d : e[a], _ !== d && "" !== d && (f || 0 === f) && h && (h = Z(t, a, h, _), "%" === d ? (h /= Z(t, a, 100, "%") / 100, e.strictUnits !== !0 && (c = h + "%")) : "em" === d ? h /= Z(t, a, 1, "em") : "px" !== d && (f = Z(t, a, f, d), d = "px"), g && (f || 0 === f) && (p = f + h + d)), g && (f += h), !h && 0 !== h || !f && 0 !== f ? void 0 !== v[a] && (p || "NaN" != p + "" && null != p) ? (i = new _e(v, a, f || h || 0, 0, i, -1, a, !1, 0, c, p), i.xs0 = "none" !== p || "display" !== a && -1 === a.indexOf("Style") ? p : c) : j("invalid " + a + " tween value: " + e[a]) : (i = new _e(v, a, h, f - h, i, 0, a, u !== !1 && ("px" === d || "zIndex" === a), 0, c, p), i.xs0 = d)) : i = me(v, a, c, p, !0, null, i, 0, n)), n && i && !i.plugin && (i.plugin = n);
return i
}, h.setRatio = function(t) {
var e, i, r, s = this._firstPT,
n = 1e-6;
if (1 !== t || this._tween._time !== this._tween._duration && 0 !== this._tween._time)
if (t || this._tween._time !== this._tween._duration && 0 !== this._tween._time || this._tween._rawPrevTime === -1e-6)
for (; s;) {
if (e = s.c * t + s.s, s.r ? e = Math.round(e) : n > e && e > -n && (e = 0), s.type)
if (1 === s.type)
if (r = s.l, 2 === r) s.t[s.p] = s.xs0 + e + s.xs1 + s.xn1 + s.xs2;
else if (3 === r) s.t[s.p] = s.xs0 + e + s.xs1 + s.xn1 + s.xs2 + s.xn2 + s.xs3;
else if (4 === r) s.t[s.p] = s.xs0 + e + s.xs1 + s.xn1 + s.xs2 + s.xn2 + s.xs3 + s.xn3 + s.xs4;
else if (5 === r) s.t[s.p] = s.xs0 + e + s.xs1 + s.xn1 + s.xs2 + s.xn2 + s.xs3 + s.xn3 + s.xs4 + s.xn4 + s.xs5;
else {
for (i = s.xs0 + e + s.xs1, r = 1; s.l > r; r++) i += s["xn" + r] + s["xs" + (r + 1)];
s.t[s.p] = i
} else -1 === s.type ? s.t[s.p] = s.xs0 : s.setRatio && s.setRatio(t);
else s.t[s.p] = e + s.xs0;
s = s._next
} else
for (; s;) 2 !== s.type ? s.t[s.p] = s.b : s.setRatio(t), s = s._next;
else
for (; s;) {
if (2 !== s.type)
if (s.r && -1 !== s.type)
if (e = Math.round(s.s + s.c), s.type) {
if (1 === s.type) {
for (r = s.l, i = s.xs0 + e + s.xs1, r = 1; s.l > r; r++) i += s["xn" + r] + s["xs" + (r + 1)];
s.t[s.p] = i
}
} else s.t[s.p] = e + s.xs0;
else s.t[s.p] = s.e;
else s.setRatio(t);
s = s._next
}
}, h._enableTransforms = function(t) {
this._transform = this._transform || Xe(this._target, s, !0), this._transformType = this._transform.svg && Te || !t && 3 !== this._transformType ? 2 : 3
};
var Ve = function() {
this.t[this.p] = this.e, this.data._linkCSSP(this, this._next, null, !0)
};
h._addLazySet = function(t, e, i) {
var r = this._firstPT = new _e(t, e, 0, 0, this._firstPT, 2);
r.e = i, r.setRatio = Ve, r.data = this
}, h._linkCSSP = function(t, e, i, r) {
return t && (e && (e._prev = t), t._next && (t._next._prev = t._prev), t._prev ? t._prev._next = t._next : this._firstPT === t && (this._firstPT = t._next, r = !0), i ? i._next = t : r || null !== this._firstPT || (this._firstPT = t), t._next = e, t._prev = i), t
}, h._kill = function(e) {
var i, r, s, n = e;
if (e.autoAlpha || e.alpha) {
n = {};
for (r in e) n[r] = e[r];
n.opacity = 1, n.autoAlpha && (n.visibility = 1)
}
return e.className && (i = this._classNamePT) && (s = i.xfirst, s && s._prev ? this._linkCSSP(s._prev, i._next, s._prev._prev) : s === this._firstPT && (this._firstPT = i._next), i._next && this._linkCSSP(i._next, i._next._next, s._prev), this._classNamePT = null), t.prototype._kill.call(this, n)
};
var je = function(t, e, i) {
var r, s, n, a;
if (t.slice)
for (s = t.length; --s > -1;) je(t[s], e, i);
else
for (r = t.childNodes, s = r.length; --s > -1;) n = r[s], a = n.type, n.style && (e.push(K(n)), i && i.push(n)), 1 !== a && 9 !== a && 11 !== a || !n.childNodes.length || je(n, e, i)
};
return a.cascadeTo = function(t, i, r) {
var s, n, a, o, l = e.to(t, i, r),
h = [l],
u = [],
f = [],
c = [],
p = e._internals.reservedProps;
for (t = l._targets || l.target, je(t, u, c), l.render(i, !0, !0), je(t, f), l.render(0, !0, !0), l._enabled(!0), s = c.length; --s > -1;)
if (n = J(c[s], u[s], f[s]), n.firstMPT) {
n = n.difs;
for (a in r) p[a] && (n[a] = r[a]);
o = {};
for (a in n) o[a] = u[s][a];
h.push(e.fromTo(c[s], i, o, n))
}
return h
}, t.activate([a]), a
}, !0)
}), _gsScope._gsDefine && _gsScope._gsQueue.pop()(),
function(t) {
"use strict";
var e = function() {
return (_gsScope.GreenSockGlobals || _gsScope)[t]
};
"function" == typeof define && define.amd ? define(["TweenLite"], e) : "undefined" != typeof module && module.exports && (require("../TweenLite.js"), module.exports = e())
}("CSSPlugin");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment