@realsee/dnalogel
Version:
864 lines (863 loc) • 25.1 kB
JavaScript
var pr = {
update: null,
begin: null,
loopBegin: null,
changeBegin: null,
change: null,
changeComplete: null,
loopComplete: null,
complete: null,
loop: 1,
direction: "normal",
autoplay: !0,
timelineOffset: 0
}, Y = {
duration: 1e3,
delay: 0,
endDelay: 0,
easing: "easeOutElastic(1, .5)",
round: 0
}, Fr = ["translateX", "translateY", "translateZ", "rotate", "rotateX", "rotateY", "rotateZ", "scale", "scaleX", "scaleY", "scaleZ", "skew", "skewX", "skewY", "perspective", "matrix", "matrix3d"], U = {
CSS: {},
springs: {}
};
function D(r, e, n) {
return Math.min(Math.max(r, e), n);
}
function R(r, e) {
return r.indexOf(e) > -1;
}
function K(r, e) {
return r.apply(null, e);
}
var c = {
arr: function(r) {
return Array.isArray(r);
},
obj: function(r) {
return R(Object.prototype.toString.call(r), "Object");
},
pth: function(r) {
return c.obj(r) && r.hasOwnProperty("totalLength");
},
svg: function(r) {
return r instanceof SVGElement;
},
inp: function(r) {
return r instanceof HTMLInputElement;
},
dom: function(r) {
return r.nodeType || c.svg(r);
},
str: function(r) {
return typeof r == "string";
},
fnc: function(r) {
return typeof r == "function";
},
und: function(r) {
return typeof r == "undefined";
},
nil: function(r) {
return c.und(r) || r === null;
},
hex: function(r) {
return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(r);
},
rgb: function(r) {
return /^rgb/.test(r);
},
hsl: function(r) {
return /^hsl/.test(r);
},
col: function(r) {
return c.hex(r) || c.rgb(r) || c.hsl(r);
},
key: function(r) {
return !pr.hasOwnProperty(r) && !Y.hasOwnProperty(r) && r !== "targets" && r !== "keyframes";
}
};
function mr(r) {
var e = /\(([^)]+)\)/.exec(r);
return e ? e[1].split(",").map(function(n) {
return parseFloat(n);
}) : [];
}
function yr(r, e) {
var n = mr(r), a = D(c.und(n[0]) ? 1 : n[0], 0.1, 100), t = D(c.und(n[1]) ? 100 : n[1], 0.1, 100), u = D(c.und(n[2]) ? 10 : n[2], 0.1, 100), o = D(c.und(n[3]) ? 0 : n[3], 0.1, 100), f = Math.sqrt(t / a), i = u / (2 * Math.sqrt(t * a)), p = i < 1 ? f * Math.sqrt(1 - i * i) : 0, s = 1, l = i < 1 ? (i * f + -o) / p : -o + f;
function h(m) {
var v = e ? e * m / 1e3 : m;
return i < 1 ? v = Math.exp(-v * i * f) * (s * Math.cos(p * v) + l * Math.sin(p * v)) : v = (s + l * v) * Math.exp(-v * f), m === 0 || m === 1 ? m : 1 - v;
}
function w() {
var m = U.springs[r];
if (m)
return m;
for (var v = 1 / 6, y = 0, M = 0; ; )
if (y += v, h(y) === 1) {
if (M++, M >= 16)
break;
} else
M = 0;
var g = y * v * 1e3;
return U.springs[r] = g, g;
}
return e ? h : w;
}
function Vr(r) {
return r === void 0 && (r = 10), function(e) {
return Math.ceil(D(e, 1e-6, 1) * r) * (1 / r);
};
}
var jr = function() {
var r = 11, e = 1 / (r - 1);
function n(s, l) {
return 1 - 3 * l + 3 * s;
}
function a(s, l) {
return 3 * l - 6 * s;
}
function t(s) {
return 3 * s;
}
function u(s, l, h) {
return ((n(l, h) * s + a(l, h)) * s + t(l)) * s;
}
function o(s, l, h) {
return 3 * n(l, h) * s * s + 2 * a(l, h) * s + t(l);
}
function f(s, l, h, w, m) {
var v, y, M = 0;
do
y = l + (h - l) / 2, v = u(y, w, m) - s, v > 0 ? h = y : l = y;
while (Math.abs(v) > 1e-7 && ++M < 10);
return y;
}
function i(s, l, h, w) {
for (var m = 0; m < 4; ++m) {
var v = o(l, h, w);
if (v === 0)
return l;
var y = u(l, h, w) - s;
l -= y / v;
}
return l;
}
function p(s, l, h, w) {
if (!(0 <= s && s <= 1 && 0 <= h && h <= 1))
return;
var m = new Float32Array(r);
if (s !== l || h !== w)
for (var v = 0; v < r; ++v)
m[v] = u(v * e, s, h);
function y(M) {
for (var g = 0, d = 1, P = r - 1; d !== P && m[d] <= M; ++d)
g += e;
--d;
var E = (M - m[d]) / (m[d + 1] - m[d]), b = g + E * e, S = o(b, s, h);
return S >= 1e-3 ? i(M, b, s, h) : S === 0 ? b : f(M, g, g + e, s, h);
}
return function(M) {
return s === l && h === w || M === 0 || M === 1 ? M : u(y(M), l, w);
};
}
return p;
}(), br = function() {
var r = { linear: function() {
return function(a) {
return a;
};
} }, e = {
Sine: function() {
return function(a) {
return 1 - Math.cos(a * Math.PI / 2);
};
},
Expo: function() {
return function(a) {
return a ? Math.pow(2, 10 * a - 10) : 0;
};
},
Circ: function() {
return function(a) {
return 1 - Math.sqrt(1 - a * a);
};
},
Back: function() {
return function(a) {
return a * a * (3 * a - 2);
};
},
Bounce: function() {
return function(a) {
for (var t, u = 4; a < ((t = Math.pow(2, --u)) - 1) / 11; )
;
return 1 / Math.pow(4, 3 - u) - 7.5625 * Math.pow((t * 3 - 2) / 22 - a, 2);
};
},
Elastic: function(a, t) {
a === void 0 && (a = 1), t === void 0 && (t = 0.5);
var u = D(a, 1, 10), o = D(t, 0.1, 2);
return function(f) {
return f === 0 || f === 1 ? f : -u * Math.pow(2, 10 * (f - 1)) * Math.sin((f - 1 - o / (Math.PI * 2) * Math.asin(1 / u)) * (Math.PI * 2) / o);
};
}
}, n = ["Quad", "Cubic", "Quart", "Quint"];
return n.forEach(function(a, t) {
e[a] = function() {
return function(u) {
return Math.pow(u, t + 2);
};
};
}), Object.keys(e).forEach(function(a) {
var t = e[a];
r["easeIn" + a] = t, r["easeOut" + a] = function(u, o) {
return function(f) {
return 1 - t(u, o)(1 - f);
};
}, r["easeInOut" + a] = function(u, o) {
return function(f) {
return f < 0.5 ? t(u, o)(f * 2) / 2 : 1 - t(u, o)(f * -2 + 2) / 2;
};
}, r["easeOutIn" + a] = function(u, o) {
return function(f) {
return f < 0.5 ? (1 - t(u, o)(1 - f * 2)) / 2 : (t(u, o)(f * 2 - 1) + 1) / 2;
};
};
}), r;
}();
function G(r, e) {
if (c.fnc(r))
return r;
var n = r.split("(")[0], a = br[n], t = mr(r);
switch (n) {
case "spring":
return yr(r, e);
case "cubicBezier":
return K(jr, t);
case "steps":
return K(Vr, t);
default:
return K(a, t);
}
}
function xr(r) {
try {
var e = document.querySelectorAll(r);
return e;
} catch (n) {
return;
}
}
function W(r, e) {
for (var n = r.length, a = arguments.length >= 2 ? arguments[1] : void 0, t = [], u = 0; u < n; u++)
if (u in r) {
var o = r[u];
e.call(a, o, u, r) && t.push(o);
}
return t;
}
function q(r) {
return r.reduce(function(e, n) {
return e.concat(c.arr(n) ? q(n) : n);
}, []);
}
function lr(r) {
return c.arr(r) ? r : (c.str(r) && (r = xr(r) || r), r instanceof NodeList || r instanceof HTMLCollection ? [].slice.call(r) : [r]);
}
function X(r, e) {
return r.some(function(n) {
return n === e;
});
}
function rr(r) {
var e = {};
for (var n in r)
e[n] = r[n];
return e;
}
function _(r, e) {
var n = rr(r);
for (var a in r)
n[a] = e.hasOwnProperty(a) ? e[a] : r[a];
return n;
}
function N(r, e) {
var n = rr(r);
for (var a in e)
n[a] = c.und(r[a]) ? e[a] : r[a];
return n;
}
function zr(r) {
var e = /rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(r);
return e ? "rgba(" + e[1] + ",1)" : r;
}
function Rr(r) {
var e = /^#?([a-f\d])([a-f\d])([a-f\d])$/i, n = r.replace(e, function(f, i, p, s) {
return i + i + p + p + s + s;
}), a = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(n), t = parseInt(a[1], 16), u = parseInt(a[2], 16), o = parseInt(a[3], 16);
return "rgba(" + t + "," + u + "," + o + ",1)";
}
function Hr(r) {
var e = /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(r) || /hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(r), n = parseInt(e[1], 10) / 360, a = parseInt(e[2], 10) / 100, t = parseInt(e[3], 10) / 100, u = e[4] || 1;
function o(h, w, m) {
return m < 0 && (m += 1), m > 1 && (m -= 1), m < 1 / 6 ? h + (w - h) * 6 * m : m < 1 / 2 ? w : m < 2 / 3 ? h + (w - h) * (2 / 3 - m) * 6 : h;
}
var f, i, p;
if (a == 0)
f = i = p = t;
else {
var s = t < 0.5 ? t * (1 + a) : t + a - t * a, l = 2 * t - s;
f = o(l, s, n + 1 / 3), i = o(l, s, n), p = o(l, s, n - 1 / 3);
}
return "rgba(" + f * 255 + "," + i * 255 + "," + p * 255 + "," + u + ")";
}
function Ur(r) {
if (c.rgb(r))
return zr(r);
if (c.hex(r))
return Rr(r);
if (c.hsl(r))
return Hr(r);
}
function O(r) {
var e = /[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(r);
if (e)
return e[1];
}
function Wr(r) {
if (R(r, "translate") || r === "perspective")
return "px";
if (R(r, "rotate") || R(r, "skew"))
return "deg";
}
function J(r, e) {
return c.fnc(r) ? r(e.target, e.id, e.total) : r;
}
function k(r, e) {
return r.getAttribute(e);
}
function er(r, e, n) {
var a = O(e);
if (X([n, "deg", "rad", "turn"], a))
return e;
var t = U.CSS[e + n];
if (!c.und(t))
return t;
var u = 100, o = document.createElement(r.tagName), f = r.parentNode && r.parentNode !== document ? r.parentNode : document.body;
f.appendChild(o), o.style.position = "absolute", o.style.width = u + n;
var i = u / o.offsetWidth;
f.removeChild(o);
var p = i * parseFloat(e);
return U.CSS[e + n] = p, p;
}
function Mr(r, e, n) {
if (e in r.style) {
var a = e.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(), t = r.style[e] || getComputedStyle(r).getPropertyValue(a) || "0";
return n ? er(r, t, n) : t;
}
}
function nr(r, e) {
if (c.dom(r) && !c.inp(r) && (!c.nil(k(r, e)) || c.svg(r) && r[e]))
return "attribute";
if (c.dom(r) && X(Fr, e))
return "transform";
if (c.dom(r) && e !== "transform" && Mr(r, e))
return "css";
if (r[e] != null)
return "object";
}
function Tr(r) {
if (c.dom(r)) {
for (var e = r.style.transform || "", n = /(\w+)\(([^)]*)\)/g, a = /* @__PURE__ */ new Map(), t; t = n.exec(e); )
a.set(t[1], t[2]);
return a;
}
}
function qr(r, e, n, a) {
var t = R(e, "scale") ? 1 : 0 + Wr(e), u = Tr(r).get(e) || t;
return n && (n.transforms.list.set(e, u), n.transforms.last = e), a ? er(r, u, a) : u;
}
function tr(r, e, n, a) {
switch (nr(r, e)) {
case "transform":
return qr(r, e, a, n);
case "css":
return Mr(r, e, n);
case "attribute":
return k(r, e);
default:
return r[e] || 0;
}
}
function ar(r, e) {
var n = /^(\*=|\+=|-=)/.exec(r);
if (!n)
return r;
var a = O(r) || 0, t = parseFloat(e), u = parseFloat(r.replace(n[0], ""));
switch (n[0][0]) {
case "+":
return t + u + a;
case "-":
return t - u + a;
case "*":
return t * u + a;
}
}
function wr(r, e) {
if (c.col(r))
return Ur(r);
if (/\s/g.test(r))
return r;
var n = O(r), a = n ? r.substr(0, r.length - n.length) : r;
return e ? a + e : a;
}
function ir(r, e) {
return Math.sqrt(Math.pow(e.x - r.x, 2) + Math.pow(e.y - r.y, 2));
}
function Nr(r) {
return Math.PI * 2 * k(r, "r");
}
function Zr(r) {
return k(r, "width") * 2 + k(r, "height") * 2;
}
function $r(r) {
return ir(
{ x: k(r, "x1"), y: k(r, "y1") },
{ x: k(r, "x2"), y: k(r, "y2") }
);
}
function Pr(r) {
for (var e = r.points, n = 0, a, t = 0; t < e.numberOfItems; t++) {
var u = e.getItem(t);
t > 0 && (n += ir(a, u)), a = u;
}
return n;
}
function Qr(r) {
var e = r.points;
return Pr(r) + ir(e.getItem(e.numberOfItems - 1), e.getItem(0));
}
function Ir(r) {
if (r.getTotalLength)
return r.getTotalLength();
switch (r.tagName.toLowerCase()) {
case "circle":
return Nr(r);
case "rect":
return Zr(r);
case "line":
return $r(r);
case "polyline":
return Pr(r);
case "polygon":
return Qr(r);
}
}
function Kr(r) {
var e = Ir(r);
return r.setAttribute("stroke-dasharray", e), e;
}
function _r(r) {
for (var e = r.parentNode; c.svg(e) && c.svg(e.parentNode); )
e = e.parentNode;
return e;
}
function Cr(r, e) {
var n = e || {}, a = n.el || _r(r), t = a.getBoundingClientRect(), u = k(a, "viewBox"), o = t.width, f = t.height, i = n.viewBox || (u ? u.split(" ") : [0, 0, o, f]);
return {
el: a,
viewBox: i,
x: i[0] / 1,
y: i[1] / 1,
w: o,
h: f,
vW: i[2],
vH: i[3]
};
}
function Jr(r, e) {
var n = c.str(r) ? xr(r)[0] : r, a = e || 100;
return function(t) {
return {
property: t,
el: n,
svg: Cr(n),
totalLength: Ir(n) * (a / 100)
};
};
}
function Yr(r, e, n) {
function a(s) {
s === void 0 && (s = 0);
var l = e + s >= 1 ? e + s : 0;
return r.el.getPointAtLength(l);
}
var t = Cr(r.el, r.svg), u = a(), o = a(-1), f = a(1), i = n ? 1 : t.w / t.vW, p = n ? 1 : t.h / t.vH;
switch (r.property) {
case "x":
return (u.x - t.x) * i;
case "y":
return (u.y - t.y) * p;
case "angle":
return Math.atan2(f.y - o.y, f.x - o.x) * 180 / Math.PI;
}
}
function vr(r, e) {
var n = /[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g, a = wr(c.pth(r) ? r.totalLength : r, e) + "";
return {
original: a,
numbers: a.match(n) ? a.match(n).map(Number) : [0],
strings: c.str(r) || e ? a.split(n) : []
};
}
function ur(r) {
var e = r ? q(c.arr(r) ? r.map(lr) : lr(r)) : [];
return W(e, function(n, a, t) {
return t.indexOf(n) === a;
});
}
function Dr(r) {
var e = ur(r);
return e.map(function(n, a) {
return { target: n, id: a, total: e.length, transforms: { list: Tr(n) } };
});
}
function Gr(r, e) {
var n = rr(e);
if (/^spring/.test(n.easing) && (n.duration = yr(n.easing)), c.arr(r)) {
var a = r.length, t = a === 2 && !c.obj(r[0]);
t ? r = { value: r } : c.fnc(e.duration) || (n.duration = e.duration / a);
}
var u = c.arr(r) ? r : [r];
return u.map(function(o, f) {
var i = c.obj(o) && !c.pth(o) ? o : { value: o };
return c.und(i.delay) && (i.delay = f ? 0 : e.delay), c.und(i.endDelay) && (i.endDelay = f === u.length - 1 ? e.endDelay : 0), i;
}).map(function(o) {
return N(o, n);
});
}
function Xr(r) {
for (var e = W(q(r.map(function(u) {
return Object.keys(u);
})), function(u) {
return c.key(u);
}).reduce(function(u, o) {
return u.indexOf(o) < 0 && u.push(o), u;
}, []), n = {}, a = function(u) {
var o = e[u];
n[o] = r.map(function(f) {
var i = {};
for (var p in f)
c.key(p) ? p == o && (i.value = f[p]) : i[p] = f[p];
return i;
});
}, t = 0; t < e.length; t++)
a(t);
return n;
}
function re(r, e) {
var n = [], a = e.keyframes;
a && (e = N(Xr(a), e));
for (var t in e)
c.key(t) && n.push({
name: t,
tweens: Gr(e[t], r)
});
return n;
}
function ee(r, e) {
var n = {};
for (var a in r) {
var t = J(r[a], e);
c.arr(t) && (t = t.map(function(u) {
return J(u, e);
}), t.length === 1 && (t = t[0])), n[a] = t;
}
return n.duration = parseFloat(n.duration), n.delay = parseFloat(n.delay), n;
}
function ne(r, e) {
var n;
return r.tweens.map(function(a) {
var t = ee(a, e), u = t.value, o = c.arr(u) ? u[1] : u, f = O(o), i = tr(e.target, r.name, f, e), p = n ? n.to.original : i, s = c.arr(u) ? u[0] : p, l = O(s) || O(i), h = f || l;
return c.und(o) && (o = p), t.from = vr(s, h), t.to = vr(ar(o, s), h), t.start = n ? n.end : 0, t.end = t.start + t.delay + t.duration + t.endDelay, t.easing = G(t.easing, t.duration), t.isPath = c.pth(u), t.isPathTargetInsideSVG = t.isPath && c.svg(e.target), t.isColor = c.col(t.from.original), t.isColor && (t.round = 1), n = t, t;
});
}
var kr = {
css: function(r, e, n) {
return r.style[e] = n;
},
attribute: function(r, e, n) {
return r.setAttribute(e, n);
},
object: function(r, e, n) {
return r[e] = n;
},
transform: function(r, e, n, a, t) {
if (a.list.set(e, n), e === a.last || t) {
var u = "";
a.list.forEach(function(o, f) {
u += f + "(" + o + ") ";
}), r.style.transform = u;
}
}
};
function Or(r, e) {
var n = Dr(r);
n.forEach(function(a) {
for (var t in e) {
var u = J(e[t], a), o = a.target, f = O(u), i = tr(o, t, f, a), p = f || O(i), s = ar(wr(u, p), i), l = nr(o, t);
kr[l](o, t, s, a.transforms, !0);
}
});
}
function te(r, e) {
var n = nr(r.target, e.name);
if (n) {
var a = ne(e, r), t = a[a.length - 1];
return {
type: n,
property: e.name,
animatable: r,
tweens: a,
duration: t.end,
delay: a[0].delay,
endDelay: t.endDelay
};
}
}
function ae(r, e) {
return W(q(r.map(function(n) {
return e.map(function(a) {
return te(n, a);
});
})), function(n) {
return !c.und(n);
});
}
function Er(r, e) {
var n = r.length, a = function(u) {
return u.timelineOffset ? u.timelineOffset : 0;
}, t = {};
return t.duration = n ? Math.max.apply(Math, r.map(function(u) {
return a(u) + u.duration;
})) : e.duration, t.delay = n ? Math.min.apply(Math, r.map(function(u) {
return a(u) + u.delay;
})) : e.delay, t.endDelay = n ? t.duration - Math.max.apply(Math, r.map(function(u) {
return a(u) + u.duration - u.endDelay;
})) : e.endDelay, t;
}
var dr = 0;
function ie(r) {
var e = _(pr, r), n = _(Y, r), a = re(n, r), t = Dr(r.targets), u = ae(t, a), o = Er(u, n), f = dr;
return dr++, N(e, {
id: f,
children: [],
animatables: t,
animations: u,
duration: o.duration,
delay: o.delay,
endDelay: o.endDelay
});
}
var C = [], Sr = function() {
var r;
function e() {
!r && (!gr() || !x.suspendWhenDocumentHidden) && C.length > 0 && (r = requestAnimationFrame(n));
}
function n(t) {
for (var u = C.length, o = 0; o < u; ) {
var f = C[o];
f.paused ? (C.splice(o, 1), u--) : (f.tick(t), o++);
}
r = o > 0 ? requestAnimationFrame(n) : void 0;
}
function a() {
x.suspendWhenDocumentHidden && (gr() ? r = cancelAnimationFrame(r) : (C.forEach(
function(t) {
return t._onDocumentVisibility();
}
), Sr()));
}
return typeof document != "undefined" && document.addEventListener("visibilitychange", a), e;
}();
function gr() {
return !!document && document.hidden;
}
function x(r) {
r === void 0 && (r = {});
var e = 0, n = 0, a = 0, t, u = 0, o = null;
function f(g) {
var d = window.Promise && new Promise(function(P) {
return o = P;
});
return g.finished = d, d;
}
var i = ie(r);
f(i);
function p() {
var g = i.direction;
g !== "alternate" && (i.direction = g !== "normal" ? "normal" : "reverse"), i.reversed = !i.reversed, t.forEach(function(d) {
return d.reversed = i.reversed;
});
}
function s(g) {
return i.reversed ? i.duration - g : g;
}
function l() {
e = 0, n = s(i.currentTime) * (1 / x.speed);
}
function h(g, d) {
d && d.seek(g - d.timelineOffset);
}
function w(g) {
if (i.reversePlayback)
for (var P = u; P--; )
h(g, t[P]);
else
for (var d = 0; d < u; d++)
h(g, t[d]);
}
function m(g) {
for (var d = 0, P = i.animations, E = P.length; d < E; ) {
var b = P[d], S = b.animatable, F = b.tweens, L = F.length - 1, T = F[L];
L && (T = W(F, function(Br) {
return g < Br.end;
})[0] || T);
for (var A = D(g - T.start - T.delay, 0, T.duration) / T.duration, H = isNaN(A) ? 1 : T.easing(A), I = T.to.strings, Z = T.round, $ = [], Ar = T.to.numbers.length, B = void 0, V = 0; V < Ar; V++) {
var j = void 0, or = T.to.numbers[V], fr = T.from.numbers[V] || 0;
T.isPath ? j = Yr(T.value, H * or, T.isPathTargetInsideSVG) : j = fr + H * (or - fr), Z && (T.isColor && V > 2 || (j = Math.round(j * Z) / Z)), $.push(j);
}
var sr = I.length;
if (!sr)
B = $[0];
else {
B = I[0];
for (var z = 0; z < sr; z++) {
I[z];
var cr = I[z + 1], Q = $[z];
isNaN(Q) || (cr ? B += Q + cr : B += Q + " ");
}
}
kr[b.type](S.target, b.property, B, S.transforms), b.currentValue = B, d++;
}
}
function v(g) {
i[g] && !i.passThrough && i[g](i);
}
function y() {
i.remaining && i.remaining !== !0 && i.remaining--;
}
function M(g) {
var d = i.duration, P = i.delay, E = d - i.endDelay, b = s(g);
i.progress = D(b / d * 100, 0, 100), i.reversePlayback = b < i.currentTime, t && w(b), !i.began && i.currentTime > 0 && (i.began = !0, v("begin")), !i.loopBegan && i.currentTime > 0 && (i.loopBegan = !0, v("loopBegin")), b <= P && i.currentTime !== 0 && m(0), (b >= E && i.currentTime !== d || !d) && m(d), b > P && b < E ? (i.changeBegan || (i.changeBegan = !0, i.changeCompleted = !1, v("changeBegin")), v("change"), m(b)) : i.changeBegan && (i.changeCompleted = !0, i.changeBegan = !1, v("changeComplete")), i.currentTime = D(b, 0, d), i.began && v("update"), g >= d && (n = 0, y(), i.remaining ? (e = a, v("loopComplete"), i.loopBegan = !1, i.direction === "alternate" && p()) : (i.paused = !0, i.completed || (i.completed = !0, v("loopComplete"), v("complete"), !i.passThrough && "Promise" in window && (o(), f(i)))));
}
return i.reset = function() {
var g = i.direction;
i.passThrough = !1, i.currentTime = 0, i.progress = 0, i.paused = !0, i.began = !1, i.loopBegan = !1, i.changeBegan = !1, i.completed = !1, i.changeCompleted = !1, i.reversePlayback = !1, i.reversed = g === "reverse", i.remaining = i.loop, t = i.children, u = t.length;
for (var d = u; d--; )
i.children[d].reset();
(i.reversed && i.loop !== !0 || g === "alternate" && i.loop === 1) && i.remaining++, m(i.reversed ? i.duration : 0);
}, i._onDocumentVisibility = l, i.set = function(g, d) {
return Or(g, d), i;
}, i.tick = function(g) {
a = g, e || (e = a), M((a + (n - e)) * x.speed);
}, i.seek = function(g) {
M(s(g));
}, i.pause = function() {
i.paused = !0, l();
}, i.play = function() {
i.paused && (i.completed && i.reset(), i.paused = !1, C.push(i), l(), Sr());
}, i.reverse = function() {
p(), i.completed = !i.reversed, l();
}, i.restart = function() {
i.reset(), i.play();
}, i.remove = function(g) {
var d = ur(g);
Lr(d, i);
}, i.reset(), i.autoplay && i.play(), i;
}
function hr(r, e) {
for (var n = e.length; n--; )
X(r, e[n].animatable.target) && e.splice(n, 1);
}
function Lr(r, e) {
var n = e.animations, a = e.children;
hr(r, n);
for (var t = a.length; t--; ) {
var u = a[t], o = u.animations;
hr(r, o), !o.length && !u.children.length && a.splice(t, 1);
}
!n.length && !a.length && e.pause();
}
function ue(r) {
for (var e = ur(r), n = C.length; n--; ) {
var a = C[n];
Lr(e, a);
}
}
function oe(r, e) {
e === void 0 && (e = {});
var n = e.direction || "normal", a = e.easing ? G(e.easing) : null, t = e.grid, u = e.axis, o = e.from || 0, f = o === "first", i = o === "center", p = o === "last", s = c.arr(r), l = parseFloat(s ? r[0] : r), h = s ? parseFloat(r[1]) : 0, w = O(s ? r[1] : r) || 0, m = e.start || 0 + (s ? l : 0), v = [], y = 0;
return function(M, g, d) {
if (f && (o = 0), i && (o = (d - 1) / 2), p && (o = d - 1), !v.length) {
for (var P = 0; P < d; P++) {
if (!t)
v.push(Math.abs(o - P));
else {
var E = i ? (t[0] - 1) / 2 : o % t[0], b = i ? (t[1] - 1) / 2 : Math.floor(o / t[0]), S = P % t[0], F = Math.floor(P / t[0]), L = E - S, T = b - F, A = Math.sqrt(L * L + T * T);
u === "x" && (A = -L), u === "y" && (A = -T), v.push(A);
}
y = Math.max.apply(Math, v);
}
a && (v = v.map(function(I) {
return a(I / y) * y;
})), n === "reverse" && (v = v.map(function(I) {
return u ? I < 0 ? I * -1 : -I : Math.abs(y - I);
}));
}
var H = s ? (h - l) / y : l;
return m + H * (Math.round(v[g] * 100) / 100) + w;
};
}
function fe(r) {
r === void 0 && (r = {});
var e = x(r);
return e.duration = 0, e.add = function(n, a) {
var t = C.indexOf(e), u = e.children;
t > -1 && C.splice(t, 1);
function o(h) {
h.passThrough = !0;
}
for (var f = 0; f < u.length; f++)
o(u[f]);
var i = N(n, _(Y, r));
i.targets = i.targets || r.targets;
var p = e.duration;
i.autoplay = !1, i.direction = e.direction, i.timelineOffset = c.und(a) ? p : ar(a, p), o(e), e.seek(i.timelineOffset);
var s = x(i);
o(s), u.push(s);
var l = Er(u, r);
return e.delay = l.delay, e.endDelay = l.endDelay, e.duration = l.duration, e.seek(0), e.reset(), e.autoplay && e.play(), e;
}, e;
}
x.version = "3.2.1";
x.speed = 1;
x.suspendWhenDocumentHidden = !0;
x.running = C;
x.remove = ue;
x.get = tr;
x.set = Or;
x.convertPx = er;
x.path = Jr;
x.setDashoffset = Kr;
x.stagger = oe;
x.timeline = fe;
x.easing = G;
x.penner = br;
x.random = function(r, e) {
return Math.floor(Math.random() * (e - r + 1)) + r;
};
export {
x as anime
};