cara/caimira/apps/static/js/ScrollMagic.min.js
2022-09-09 16:57:20 +02:00

695 lines
No EOL
30 KiB
JavaScript

/*! ScrollMagic v2.0.5 | (c) 2015 Jan Paepke (@janpaepke) | license & info: http://scrollmagic.io */
! function (e, t) {
"function" == typeof define && define.amd ? define(t) : "object" == typeof exports ? module.exports = t() : e.ScrollMagic = t()
}(this, function () {
"use strict";
var e = function () {};
e.version = "2.0.5", window.addEventListener("mousewheel", function () {});
var t = "data-scrollmagic-pin-spacer";
e.Controller = function (r) {
var o, s, a = "ScrollMagic.Controller",
l = "FORWARD",
c = "REVERSE",
u = "PAUSED",
f = n.defaults,
d = this,
h = i.extend({}, f, r),
g = [],
p = !1,
v = 0,
m = u,
w = !0,
y = 0,
S = !0,
b = function () {
for (var e in h) f.hasOwnProperty(e) || delete h[e];
if (h.container = i.get.elements(h.container)[0], !h.container) throw a + " init failed.";
w = h.container === window || h.container === document.body || !document.body.contains(h.container), w && (h.container = window), y = z(), h.container.addEventListener("resize", T), h.container.addEventListener("scroll", T), h.refreshInterval = parseInt(h.refreshInterval) || f.refreshInterval, E()
},
E = function () {
h.refreshInterval > 0 && (s = window.setTimeout(A, h.refreshInterval))
},
x = function () {
return h.vertical ? i.get.scrollTop(h.container) : i.get.scrollLeft(h.container)
},
z = function () {
return h.vertical ? i.get.height(h.container) : i.get.width(h.container)
},
C = this._setScrollPos = function (e) {
h.vertical ? w ? window.scrollTo(i.get.scrollLeft(), e) : h.container.scrollTop = e : w ? window.scrollTo(e, i.get.scrollTop()) : h.container.scrollLeft = e
},
F = function () {
if (S && p) {
var e = i.type.Array(p) ? p : g.slice(0);
p = !1;
var t = v;
v = d.scrollPos();
var n = v - t;
0 !== n && (m = n > 0 ? l : c), m === c && e.reverse(), e.forEach(function (e) {
e.update(!0)
})
}
},
L = function () {
o = i.rAF(F)
},
T = function (e) {
"resize" == e.type && (y = z(), m = u), p !== !0 && (p = !0, L())
},
A = function () {
if (!w && y != z()) {
var e;
try {
e = new Event("resize", {
bubbles: !1,
cancelable: !1
})
} catch (t) {
e = document.createEvent("Event"), e.initEvent("resize", !1, !1)
}
h.container.dispatchEvent(e)
}
g.forEach(function (e) {
e.refresh()
}), E()
};
this._options = h;
var O = function (e) {
if (e.length <= 1) return e;
var t = e.slice(0);
return t.sort(function (e, t) {
return e.scrollOffset() > t.scrollOffset() ? 1 : -1
}), t
};
return this.addScene = function (t) {
if (i.type.Array(t)) t.forEach(function (e) {
d.addScene(e)
});
else if (t instanceof e.Scene)
if (t.controller() !== d) t.addTo(d);
else if (g.indexOf(t) < 0) {
g.push(t), g = O(g), t.on("shift.controller_sort", function () {
g = O(g)
});
for (var n in h.globalSceneOptions) t[n] && t[n].call(t, h.globalSceneOptions[n])
}
return d
}, this.removeScene = function (e) {
if (i.type.Array(e)) e.forEach(function (e) {
d.removeScene(e)
});
else {
var t = g.indexOf(e);
t > -1 && (e.off("shift.controller_sort"), g.splice(t, 1), e.remove())
}
return d
}, this.updateScene = function (t, n) {
return i.type.Array(t) ? t.forEach(function (e) {
d.updateScene(e, n)
}) : n ? t.update(!0) : p !== !0 && t instanceof e.Scene && (p = p || [], -1 == p.indexOf(t) && p.push(t), p = O(p), L()), d
}, this.update = function (e) {
return T({
type: "resize"
}), e && F(), d
}, this.scrollTo = function (n, r) {
if (i.type.Number(n)) C.call(h.container, n, r);
else if (n instanceof e.Scene) n.controller() === d && d.scrollTo(n.scrollOffset(), r);
else if (i.type.Function(n)) C = n;
else {
var o = i.get.elements(n)[0];
if (o) {
for (; o.parentNode.hasAttribute(t);) o = o.parentNode;
var s = h.vertical ? "top" : "left",
a = i.get.offset(h.container),
l = i.get.offset(o);
w || (a[s] -= d.scrollPos()), d.scrollTo(l[s] - a[s], r)
}
}
return d
}, this.scrollPos = function (e) {
return arguments.length ? (i.type.Function(e) && (x = e), d) : x.call(d)
}, this.info = function (e) {
var t = {
size: y,
vertical: h.vertical,
scrollPos: v,
scrollDirection: m,
container: h.container,
isDocument: w
};
return arguments.length ? void 0 !== t[e] ? t[e] : void 0 : t
}, this.loglevel = function () {
return d
}, this.enabled = function (e) {
return arguments.length ? (S != e && (S = !!e, d.updateScene(g, !0)), d) : S
}, this.destroy = function (e) {
window.clearTimeout(s);
for (var t = g.length; t--;) g[t].destroy(e);
return h.container.removeEventListener("resize", T), h.container.removeEventListener("scroll", T), i.cAF(o), null
}, b(), d
};
var n = {
defaults: {
container: window,
vertical: !0,
globalSceneOptions: {},
loglevel: 2,
refreshInterval: 100
}
};
e.Controller.addOption = function (e, t) {
n.defaults[e] = t
}, e.Controller.extend = function (t) {
var n = this;
e.Controller = function () {
return n.apply(this, arguments), this.$super = i.extend({}, this), t.apply(this, arguments) || this
}, i.extend(e.Controller, n), e.Controller.prototype = n.prototype, e.Controller.prototype.constructor = e.Controller
}, e.Scene = function (n) {
var o, s, a = "BEFORE",
l = "DURING",
c = "AFTER",
u = r.defaults,
f = this,
d = i.extend({}, u, n),
h = a,
g = 0,
p = {
start: 0,
end: 0
},
v = 0,
m = !0,
w = function () {
for (var e in d) u.hasOwnProperty(e) || delete d[e];
for (var t in u) L(t);
C()
},
y = {};
this.on = function (e, t) {
return i.type.Function(t) && (e = e.trim().split(" "), e.forEach(function (e) {
var n = e.split("."),
r = n[0],
i = n[1];
"*" != r && (y[r] || (y[r] = []), y[r].push({
namespace: i || "",
callback: t
}))
})), f
}, this.off = function (e, t) {
return e ? (e = e.trim().split(" "), e.forEach(function (e) {
var n = e.split("."),
r = n[0],
i = n[1] || "",
o = "*" === r ? Object.keys(y) : [r];
o.forEach(function (e) {
for (var n = y[e] || [], r = n.length; r--;) {
var o = n[r];
!o || i !== o.namespace && "*" !== i || t && t != o.callback || n.splice(r, 1)
}
n.length || delete y[e]
})
}), f) : f
}, this.trigger = function (t, n) {
if (t) {
var r = t.trim().split("."),
i = r[0],
o = r[1],
s = y[i];
s && s.forEach(function (t) {
o && o !== t.namespace || t.callback.call(f, new e.Event(i, t.namespace, f, n))
})
}
return f
}, f.on("change.internal", function (e) {
"loglevel" !== e.what && "tweenChanges" !== e.what && ("triggerElement" === e.what ? E() : "reverse" === e.what && f.update())
}).on("shift.internal", function () {
S(), f.update()
}), this.addTo = function (t) {
return t instanceof e.Controller && s != t && (s && s.removeScene(f), s = t, C(), b(!0), E(!0), S(), s.info("container").addEventListener("resize", x), t.addScene(f), f.trigger("add", {
controller: s
}), f.update()), f
}, this.enabled = function (e) {
return arguments.length ? (m != e && (m = !!e, f.update(!0)), f) : m
}, this.remove = function () {
if (s) {
s.info("container").removeEventListener("resize", x);
var e = s;
s = void 0, e.removeScene(f), f.trigger("remove")
}
return f
}, this.destroy = function (e) {
return f.trigger("destroy", {
reset: e
}), f.remove(), f.off("*.*"), null
}, this.update = function (e) {
if (s)
if (e)
if (s.enabled() && m) {
var t, n = s.info("scrollPos");
t = d.duration > 0 ? (n - p.start) / (p.end - p.start) : n >= p.start ? 1 : 0, f.trigger("update", {
startPos: p.start,
endPos: p.end,
scrollPos: n
}), f.progress(t)
} else T && h === l && O(!0);
else s.updateScene(f, !1);
return f
}, this.refresh = function () {
return b(), E(), f
}, this.progress = function (e) {
if (arguments.length) {
var t = !1,
n = h,
r = s ? s.info("scrollDirection") : "PAUSED",
i = d.reverse || e >= g;
if (0 === d.duration ? (t = g != e, g = 1 > e && i ? 0 : 1, h = 0 === g ? a : l) : 0 > e && h !== a && i ? (g = 0, h = a, t = !0) : e >= 0 && 1 > e && i ? (g = e, h = l, t = !0) : e >= 1 && h !== c ? (g = 1, h = c, t = !0) : h !== l || i || O(), t) {
var o = {
progress: g,
state: h,
scrollDirection: r
},
u = h != n,
p = function (e) {
f.trigger(e, o)
};
u && n !== l && (p("enter"), p(n === a ? "start" : "end")), p("progress"), u && h !== l && (p(h === a ? "start" : "end"), p("leave"))
}
return f
}
return g
};
var S = function () {
p = {
start: v + d.offset
}, s && d.triggerElement && (p.start -= s.info("size") * d.triggerHook), p.end = p.start + d.duration
},
b = function (e) {
if (o) {
var t = "duration";
F(t, o.call(f)) && !e && (f.trigger("change", {
what: t,
newval: d[t]
}), f.trigger("shift", {
reason: t
}))
}
},
E = function (e) {
var n = 0,
r = d.triggerElement;
if (s && r) {
for (var o = s.info(), a = i.get.offset(o.container), l = o.vertical ? "top" : "left"; r.parentNode.hasAttribute(t);) r = r.parentNode;
var c = i.get.offset(r);
o.isDocument || (a[l] -= s.scrollPos()), n = c[l] - a[l]
}
var u = n != v;
v = n, u && !e && f.trigger("shift", {
reason: "triggerElementPosition"
})
},
x = function () {
d.triggerHook > 0 && f.trigger("shift", {
reason: "containerResize"
})
},
z = i.extend(r.validate, {
duration: function (e) {
if (i.type.String(e) && e.match(/^(\.|\d)*\d+%$/)) {
var t = parseFloat(e) / 100;
e = function () {
return s ? s.info("size") * t : 0
}
}
if (i.type.Function(e)) {
o = e;
try {
e = parseFloat(o())
} catch (t) {
e = -1
}
}
if (e = parseFloat(e), !i.type.Number(e) || 0 > e) throw o ? (o = void 0, 0) : 0;
return e
}
}),
C = function (e) {
e = arguments.length ? [e] : Object.keys(z), e.forEach(function (e) {
var t;
if (z[e]) try {
t = z[e](d[e])
} catch (n) {
t = u[e]
} finally {
d[e] = t
}
})
},
F = function (e, t) {
var n = !1,
r = d[e];
return d[e] != t && (d[e] = t, C(e), n = r != d[e]), n
},
L = function (e) {
f[e] || (f[e] = function (t) {
return arguments.length ? ("duration" === e && (o = void 0), F(e, t) && (f.trigger("change", {
what: e,
newval: d[e]
}), r.shifts.indexOf(e) > -1 && f.trigger("shift", {
reason: e
})), f) : d[e]
})
};
this.controller = function () {
return s
}, this.state = function () {
return h
}, this.scrollOffset = function () {
return p.start
}, this.triggerPosition = function () {
var e = d.offset;
return s && (e += d.triggerElement ? v : s.info("size") * f.triggerHook()), e
};
var T, A;
f.on("shift.internal", function (e) {
var t = "duration" === e.reason;
(h === c && t || h === l && 0 === d.duration) && O(), t && _()
}).on("progress.internal", function () {
O()
}).on("add.internal", function () {
_()
}).on("destroy.internal", function (e) {
f.removePin(e.reset)
});
var O = function (e) {
if (T && s) {
var t = s.info(),
n = A.spacer.firstChild;
if (e || h !== l) {
var r = {
position: A.inFlow ? "relative" : "absolute",
top: 0,
left: 0
},
o = i.css(n, "position") != r.position;
A.pushFollowers ? d.duration > 0 && (h === c && 0 === parseFloat(i.css(A.spacer, "padding-top")) ? o = !0 : h === a && 0 === parseFloat(i.css(A.spacer, "padding-bottom")) && (o = !0)) : r[t.vertical ? "top" : "left"] = d.duration * g, i.css(n, r), o && _()
} else {
"fixed" != i.css(n, "position") && (i.css(n, {
position: "fixed"
}), _());
var u = i.get.offset(A.spacer, !0),
f = d.reverse || 0 === d.duration ? t.scrollPos - p.start : Math.round(g * d.duration * 10) / 10;
u[t.vertical ? "top" : "left"] += f, i.css(A.spacer.firstChild, {
top: u.top,
left: u.left
})
}
}
},
_ = function () {
if (T && s && A.inFlow) {
var e = h === l,
t = s.info("vertical"),
n = A.spacer.firstChild,
r = i.isMarginCollapseType(i.css(A.spacer, "display")),
o = {};
A.relSize.width || A.relSize.autoFullWidth ? e ? i.css(T, {
width: i.get.width(A.spacer)
}) : i.css(T, {
width: "100%"
}) : (o["min-width"] = i.get.width(t ? T : n, !0, !0), o.width = e ? o["min-width"] : "auto"), A.relSize.height ? e ? i.css(T, {
height: i.get.height(A.spacer) - (A.pushFollowers ? d.duration : 0)
}) : i.css(T, {
height: "100%"
}) : (o["min-height"] = i.get.height(t ? n : T, !0, !r), o.height = e ? o["min-height"] : "auto"), A.pushFollowers && (o["padding" + (t ? "Top" : "Left")] = d.duration * g, o["padding" + (t ? "Bottom" : "Right")] = d.duration * (1 - g)), i.css(A.spacer, o)
}
},
N = function () {
s && T && h === l && !s.info("isDocument") && O()
},
P = function () {
s && T && h === l && ((A.relSize.width || A.relSize.autoFullWidth) && i.get.width(window) != i.get.width(A.spacer.parentNode) || A.relSize.height && i.get.height(window) != i.get.height(A.spacer.parentNode)) && _()
},
D = function (e) {
s && T && h === l && !s.info("isDocument") && (e.preventDefault(), s._setScrollPos(s.info("scrollPos") - ((e.wheelDelta || e[s.info("vertical") ? "wheelDeltaY" : "wheelDeltaX"]) / 3 || 30 * -e.detail)))
};
this.setPin = function (e, n) {
var r = {
pushFollowers: !0,
spacerClass: "scrollmagic-pin-spacer"
};
if (n = i.extend({}, r, n), e = i.get.elements(e)[0], !e) return f;
if ("fixed" === i.css(e, "position")) return f;
if (T) {
if (T === e) return f;
f.removePin()
}
T = e;
var o = T.parentNode.style.display,
s = ["top", "left", "bottom", "right", "margin", "marginLeft", "marginRight", "marginTop", "marginBottom"];
T.parentNode.style.display = "none";
var a = "absolute" != i.css(T, "position"),
l = i.css(T, s.concat(["display"])),
c = i.css(T, ["width", "height"]);
T.parentNode.style.display = o, !a && n.pushFollowers && (n.pushFollowers = !1);
var u = T.parentNode.insertBefore(document.createElement("div"), T),
d = i.extend(l, {
position: a ? "relative" : "absolute",
boxSizing: "content-box",
mozBoxSizing: "content-box",
webkitBoxSizing: "content-box"
});
if (a || i.extend(d, i.css(T, ["width", "height"])), i.css(u, d), u.setAttribute(t, ""), i.addClass(u, n.spacerClass), A = {
spacer: u,
relSize: {
width: "%" === c.width.slice(-1),
height: "%" === c.height.slice(-1),
autoFullWidth: "auto" === c.width && a && i.isMarginCollapseType(l.display)
},
pushFollowers: n.pushFollowers,
inFlow: a
}, !T.___origStyle) {
T.___origStyle = {};
var h = T.style,
g = s.concat(["width", "height", "position", "boxSizing", "mozBoxSizing", "webkitBoxSizing"]);
g.forEach(function (e) {
T.___origStyle[e] = h[e] || ""
})
}
return A.relSize.width && i.css(u, {
width: c.width
}), A.relSize.height && i.css(u, {
height: c.height
}), u.appendChild(T), i.css(T, {
position: a ? "relative" : "absolute",
margin: "auto",
top: "auto",
left: "auto",
bottom: "auto",
right: "auto"
}), (A.relSize.width || A.relSize.autoFullWidth) && i.css(T, {
boxSizing: "border-box",
mozBoxSizing: "border-box",
webkitBoxSizing: "border-box"
}), window.addEventListener("scroll", N), window.addEventListener("resize", N), window.addEventListener("resize", P), T.addEventListener("mousewheel", D), T.addEventListener("DOMMouseScroll", D), O(), f
}, this.removePin = function (e) {
if (T) {
if (h === l && O(!0), e || !s) {
var n = A.spacer.firstChild;
if (n.hasAttribute(t)) {
var r = A.spacer.style,
o = ["margin", "marginLeft", "marginRight", "marginTop", "marginBottom"];
margins = {}, o.forEach(function (e) {
margins[e] = r[e] || ""
}), i.css(n, margins)
}
A.spacer.parentNode.insertBefore(n, A.spacer), A.spacer.parentNode.removeChild(A.spacer), T.parentNode.hasAttribute(t) || (i.css(T, T.___origStyle), delete T.___origStyle)
}
window.removeEventListener("scroll", N), window.removeEventListener("resize", N), window.removeEventListener("resize", P), T.removeEventListener("mousewheel", D), T.removeEventListener("DOMMouseScroll", D), T = void 0
}
return f
};
var R, k = [];
return f.on("destroy.internal", function (e) {
f.removeClassToggle(e.reset)
}), this.setClassToggle = function (e, t) {
var n = i.get.elements(e);
return 0 !== n.length && i.type.String(t) ? (k.length > 0 && f.removeClassToggle(), R = t, k = n, f.on("enter.internal_class leave.internal_class", function (e) {
var t = "enter" === e.type ? i.addClass : i.removeClass;
k.forEach(function (e) {
t(e, R)
})
}), f) : f
}, this.removeClassToggle = function (e) {
return e && k.forEach(function (e) {
i.removeClass(e, R)
}), f.off("start.internal_class end.internal_class"), R = void 0, k = [], f
}, w(), f
};
var r = {
defaults: {
duration: 0,
offset: 0,
triggerElement: void 0,
triggerHook: .5,
reverse: !0,
loglevel: 2
},
validate: {
offset: function (e) {
if (e = parseFloat(e), !i.type.Number(e)) throw 0;
return e
},
triggerElement: function (e) {
if (e = e || void 0) {
var t = i.get.elements(e)[0];
if (!t) throw 0;
e = t
}
return e
},
triggerHook: function (e) {
var t = {
onCenter: .5,
onEnter: 1,
onLeave: 0
};
if (i.type.Number(e)) e = Math.max(0, Math.min(parseFloat(e), 1));
else {
if (!(e in t)) throw 0;
e = t[e]
}
return e
},
reverse: function (e) {
return !!e
}
},
shifts: ["duration", "offset", "triggerHook"]
};
e.Scene.addOption = function (e, t, n, i) {
e in r.defaults || (r.defaults[e] = t, r.validate[e] = n, i && r.shifts.push(e))
}, e.Scene.extend = function (t) {
var n = this;
e.Scene = function () {
return n.apply(this, arguments), this.$super = i.extend({}, this), t.apply(this, arguments) || this
}, i.extend(e.Scene, n), e.Scene.prototype = n.prototype, e.Scene.prototype.constructor = e.Scene
}, e.Event = function (e, t, n, r) {
r = r || {};
for (var i in r) this[i] = r[i];
return this.type = e, this.target = this.currentTarget = n, this.namespace = t || "", this.timeStamp = this.timestamp = Date.now(), this
};
var i = e._util = function (e) {
var t, n = {},
r = function (e) {
return parseFloat(e) || 0
},
i = function (t) {
return t.currentStyle ? t.currentStyle : e.getComputedStyle(t)
},
o = function (t, n, o, s) {
if (n = n === document ? e : n, n === e) s = !1;
else if (!f.DomElement(n)) return 0;
t = t.charAt(0).toUpperCase() + t.substr(1).toLowerCase();
var a = (o ? n["offset" + t] || n["outer" + t] : n["client" + t] || n["inner" + t]) || 0;
if (o && s) {
var l = i(n);
a += "Height" === t ? r(l.marginTop) + r(l.marginBottom) : r(l.marginLeft) + r(l.marginRight)
}
return a
},
s = function (e) {
return e.replace(/^[^a-z]+([a-z])/g, "$1").replace(/-([a-z])/g, function (e) {
return e[1].toUpperCase()
})
};
n.extend = function (e) {
for (e = e || {}, t = 1; t < arguments.length; t++)
if (arguments[t])
for (var n in arguments[t]) arguments[t].hasOwnProperty(n) && (e[n] = arguments[t][n]);
return e
}, n.isMarginCollapseType = function (e) {
return ["block", "flex", "list-item", "table", "-webkit-box"].indexOf(e) > -1
};
var a = 0,
l = ["ms", "moz", "webkit", "o"],
c = e.requestAnimationFrame,
u = e.cancelAnimationFrame;
for (t = 0; !c && t < l.length; ++t) c = e[l[t] + "RequestAnimationFrame"], u = e[l[t] + "CancelAnimationFrame"] || e[l[t] + "CancelRequestAnimationFrame"];
c || (c = function (t) {
var n = (new Date).getTime(),
r = Math.max(0, 16 - (n - a)),
i = e.setTimeout(function () {
t(n + r)
}, r);
return a = n + r, i
}), u || (u = function (t) {
e.clearTimeout(t)
}), n.rAF = c.bind(e), n.cAF = u.bind(e);
var f = n.type = function (e) {
return Object.prototype.toString.call(e).replace(/^\[object (.+)\]$/, "$1").toLowerCase()
};
f.String = function (e) {
return "string" === f(e)
}, f.Function = function (e) {
return "function" === f(e)
}, f.Array = function (e) {
return Array.isArray(e)
}, f.Number = function (e) {
return !f.Array(e) && e - parseFloat(e) + 1 >= 0
}, f.DomElement = function (e) {
return "object" == typeof HTMLElement ? e instanceof HTMLElement : e && "object" == typeof e && null !== e && 1 === e.nodeType && "string" == typeof e.nodeName
};
var d = n.get = {};
return d.elements = function (t) {
var n = [];
if (f.String(t)) try {
t = document.querySelectorAll(t)
} catch (e) {
return n
}
if ("nodelist" === f(t) || f.Array(t))
for (var r = 0, i = n.length = t.length; i > r; r++) {
var o = t[r];
n[r] = f.DomElement(o) ? o : d.elements(o)
} else(f.DomElement(t) || t === document || t === e) && (n = [t]);
return n
}, d.scrollTop = function (t) {
return t && "number" == typeof t.scrollTop ? t.scrollTop : e.pageYOffset || 0
}, d.scrollLeft = function (t) {
return t && "number" == typeof t.scrollLeft ? t.scrollLeft : e.pageXOffset || 0
}, d.width = function (e, t, n) {
return o("width", e, t, n)
}, d.height = function (e, t, n) {
return o("height", e, t, n)
}, d.offset = function (e, t) {
var n = {
top: 0,
left: 0
};
if (e && e.getBoundingClientRect) {
var r = e.getBoundingClientRect();
n.top = r.top, n.left = r.left, t || (n.top += d.scrollTop(), n.left += d.scrollLeft())
}
return n
}, n.addClass = function (e, t) {
t && (e.classList ? e.classList.add(t) : e.className += " " + t)
}, n.removeClass = function (e, t) {
t && (e.classList ? e.classList.remove(t) : e.className = e.className.replace(RegExp("(^|\\b)" + t.split(" ").join("|") + "(\\b|$)", "gi"), " "))
}, n.css = function (e, t) {
if (f.String(t)) return i(e)[s(t)];
if (f.Array(t)) {
var n = {},
r = i(e);
return t.forEach(function (e) {
n[e] = r[s(e)]
}), n
}
for (var o in t) {
var a = t[o];
a == parseFloat(a) && (a += "px"), e.style[s(o)] = a
}
}, n
}(window || {});
return e
});