unipept-visualizations
Version:
The Unipept visualisation library
1,620 lines • 456 kB
JavaScript
class Ss {
constructor(r, e, n = [], a, i, o = {}) {
this.id = r, this.name = e, this.children = n, this.count = a, this.selfCount = i, this.extra = o;
}
}
function ts(t, r) {
return t == null || r == null ? NaN : t < r ? -1 : t > r ? 1 : t >= r ? 0 : NaN;
}
function BR(t, r) {
return t == null || r == null ? NaN : r < t ? -1 : r > t ? 1 : r >= t ? 0 : NaN;
}
function dS(t) {
let r, e, n;
t.length !== 2 ? (r = ts, e = (s, u) => ts(t(s), u), n = (s, u) => t(s) - u) : (r = t === ts || t === BR ? t : jR, e = t, n = t);
function a(s, u, l = 0, c = s.length) {
if (l < c) {
if (r(u, u) !== 0)
return c;
do {
const f = l + c >>> 1;
e(s[f], u) < 0 ? l = f + 1 : c = f;
} while (l < c);
}
return l;
}
function i(s, u, l = 0, c = s.length) {
if (l < c) {
if (r(u, u) !== 0)
return c;
do {
const f = l + c >>> 1;
e(s[f], u) <= 0 ? l = f + 1 : c = f;
} while (l < c);
}
return l;
}
function o(s, u, l = 0, c = s.length) {
const f = a(s, u, l, c - 1);
return f > l && n(s[f - 1], u) > -n(s[f], u) ? f - 1 : f;
}
return { left: a, center: o, right: i };
}
function jR() {
return 0;
}
function UR(t) {
return t === null ? NaN : +t;
}
const zR = dS(ts), VR = zR.right;
dS(UR).center;
const gS = VR;
class Zg extends Map {
constructor(r, e = WR) {
if (super(), Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: e } }), r != null)
for (const [n, a] of r)
this.set(n, a);
}
get(r) {
return super.get(Qg(this, r));
}
has(r) {
return super.has(Qg(this, r));
}
set(r, e) {
return super.set(HR(this, r), e);
}
delete(r) {
return super.delete(GR(this, r));
}
}
function Qg({ _intern: t, _key: r }, e) {
const n = r(e);
return t.has(n) ? t.get(n) : e;
}
function HR({ _intern: t, _key: r }, e) {
const n = r(e);
return t.has(n) ? t.get(n) : (t.set(n, e), e);
}
function GR({ _intern: t, _key: r }, e) {
const n = r(e);
return t.has(n) && (e = t.get(n), t.delete(n)), e;
}
function WR(t) {
return t !== null && typeof t == "object" ? t.valueOf() : t;
}
const qR = Math.sqrt(50), YR = Math.sqrt(10), KR = Math.sqrt(2);
function xs(t, r, e) {
const n = (r - t) / Math.max(0, e), a = Math.floor(Math.log10(n)), i = n / Math.pow(10, a), o = i >= qR ? 10 : i >= YR ? 5 : i >= KR ? 2 : 1;
let s, u, l;
return a < 0 ? (l = Math.pow(10, -a) / o, s = Math.round(t * l), u = Math.round(r * l), s / l < t && ++s, u / l > r && --u, l = -l) : (l = Math.pow(10, a) * o, s = Math.round(t / l), u = Math.round(r / l), s * l < t && ++s, u * l > r && --u), u < s && 0.5 <= e && e < 2 ? xs(t, r, e * 2) : [s, u, l];
}
function XR(t, r, e) {
if (r = +r, t = +t, e = +e, !(e > 0))
return [];
if (t === r)
return [t];
const n = r < t, [a, i, o] = n ? xs(r, t, e) : xs(t, r, e);
if (!(i >= a))
return [];
const s = i - a + 1, u = new Array(s);
if (n)
if (o < 0)
for (let l = 0; l < s; ++l)
u[l] = (i - l) / -o;
else
for (let l = 0; l < s; ++l)
u[l] = (i - l) * o;
else if (o < 0)
for (let l = 0; l < s; ++l)
u[l] = (a + l) / -o;
else
for (let l = 0; l < s; ++l)
u[l] = (a + l) * o;
return u;
}
function qf(t, r, e) {
return r = +r, t = +t, e = +e, xs(t, r, e)[2];
}
function JR(t, r, e) {
r = +r, t = +t, e = +e;
const n = r < t, a = n ? qf(r, t, e) : qf(t, r, e);
return (n ? -1 : 1) * (a < 0 ? 1 / -a : a);
}
function tp(t, r) {
let e;
if (r === void 0)
for (const n of t)
n != null && (e < n || e === void 0 && n >= n) && (e = n);
else {
let n = -1;
for (let a of t)
(a = r(a, ++n, t)) != null && (e < a || e === void 0 && a >= a) && (e = a);
}
return e;
}
function ZR(t, r, e) {
t = +t, r = +r, e = (a = arguments.length) < 2 ? (r = t, t = 0, 1) : a < 3 ? 1 : +e;
for (var n = -1, a = Math.max(0, Math.ceil((r - t) / e)) | 0, i = new Array(a); ++n < a; )
i[n] = t + n * e;
return i;
}
function QR(t) {
return t;
}
var xl = 1, El = 2, Yf = 3, ro = 4, rp = 1e-6;
function t_(t) {
return "translate(" + t + ",0)";
}
function r_(t) {
return "translate(0," + t + ")";
}
function e_(t) {
return (r) => +t(r);
}
function n_(t, r) {
return r = Math.max(0, t.bandwidth() - r * 2) / 2, t.round() && (r = Math.round(r)), (e) => +t(e) + r;
}
function a_() {
return !this.__axis;
}
function i_(t, r) {
var e = [], n = null, a = null, i = 6, o = 6, s = 3, u = typeof window < "u" && window.devicePixelRatio > 1 ? 0 : 0.5, l = t === xl || t === ro ? -1 : 1, c = t === ro || t === El ? "x" : "y", f = t === xl || t === Yf ? t_ : r_;
function h(v) {
var d = n ?? (r.ticks ? r.ticks.apply(r, e) : r.domain()), $ = a ?? (r.tickFormat ? r.tickFormat.apply(r, e) : QR), y = Math.max(i, 0) + s, p = r.range(), b = +p[0] + u, I = +p[p.length - 1] + u, _ = (r.bandwidth ? n_ : e_)(r.copy(), u), M = v.selection ? v.selection() : v, B = M.selectAll(".domain").data([null]), H = M.selectAll(".tick").data(d, r).order(), q = H.exit(), Z = H.enter().append("g").attr("class", "tick"), nt = H.select("line"), k = H.select("text");
B = B.merge(B.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor")), H = H.merge(Z), nt = nt.merge(Z.append("line").attr("stroke", "currentColor").attr(c + "2", l * i)), k = k.merge(Z.append("text").attr("fill", "currentColor").attr(c, l * y).attr("dy", t === xl ? "0em" : t === Yf ? "0.71em" : "0.32em")), v !== M && (B = B.transition(v), H = H.transition(v), nt = nt.transition(v), k = k.transition(v), q = q.transition(v).attr("opacity", rp).attr("transform", function(Y) {
return isFinite(Y = _(Y)) ? f(Y + u) : this.getAttribute("transform");
}), Z.attr("opacity", rp).attr("transform", function(Y) {
var L = this.parentNode.__axis;
return f((L && isFinite(L = L(Y)) ? L : _(Y)) + u);
})), q.remove(), B.attr("d", t === ro || t === El ? o ? "M" + l * o + "," + b + "H" + u + "V" + I + "H" + l * o : "M" + u + "," + b + "V" + I : o ? "M" + b + "," + l * o + "V" + u + "H" + I + "V" + l * o : "M" + b + "," + u + "H" + I), H.attr("opacity", 1).attr("transform", function(Y) {
return f(_(Y) + u);
}), nt.attr(c + "2", l * i), k.attr(c, l * y).text($), M.filter(a_).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", t === El ? "start" : t === ro ? "end" : "middle"), M.each(function() {
this.__axis = _;
});
}
return h.scale = function(v) {
return arguments.length ? (r = v, h) : r;
}, h.ticks = function() {
return e = Array.from(arguments), h;
}, h.tickArguments = function(v) {
return arguments.length ? (e = v == null ? [] : Array.from(v), h) : e.slice();
}, h.tickValues = function(v) {
return arguments.length ? (n = v == null ? null : Array.from(v), h) : n && n.slice();
}, h.tickFormat = function(v) {
return arguments.length ? (a = v, h) : a;
}, h.tickSize = function(v) {
return arguments.length ? (i = o = +v, h) : i;
}, h.tickSizeInner = function(v) {
return arguments.length ? (i = +v, h) : i;
}, h.tickSizeOuter = function(v) {
return arguments.length ? (o = +v, h) : o;
}, h.tickPadding = function(v) {
return arguments.length ? (s = +v, h) : s;
}, h.offset = function(v) {
return arguments.length ? (u = +v, h) : u;
}, h;
}
function o_(t) {
return i_(Yf, t);
}
var s_ = { value: () => {
} };
function _v() {
for (var t = 0, r = arguments.length, e = {}, n; t < r; ++t) {
if (!(n = arguments[t] + "") || n in e || /[\s.]/.test(n))
throw new Error("illegal type: " + n);
e[n] = [];
}
return new rs(e);
}
function rs(t) {
this._ = t;
}
function u_(t, r) {
return t.trim().split(/^|\s+/).map(function(e) {
var n = "", a = e.indexOf(".");
if (a >= 0 && (n = e.slice(a + 1), e = e.slice(0, a)), e && !r.hasOwnProperty(e))
throw new Error("unknown type: " + e);
return { type: e, name: n };
});
}
rs.prototype = _v.prototype = {
constructor: rs,
on: function(t, r) {
var e = this._, n = u_(t + "", e), a, i = -1, o = n.length;
if (arguments.length < 2) {
for (; ++i < o; )
if ((a = (t = n[i]).type) && (a = l_(e[a], t.name)))
return a;
return;
}
if (r != null && typeof r != "function")
throw new Error("invalid callback: " + r);
for (; ++i < o; )
if (a = (t = n[i]).type)
e[a] = ep(e[a], t.name, r);
else if (r == null)
for (a in e)
e[a] = ep(e[a], t.name, null);
return this;
},
copy: function() {
var t = {}, r = this._;
for (var e in r)
t[e] = r[e].slice();
return new rs(t);
},
call: function(t, r) {
if ((a = arguments.length - 2) > 0)
for (var e = new Array(a), n = 0, a, i; n < a; ++n)
e[n] = arguments[n + 2];
if (!this._.hasOwnProperty(t))
throw new Error("unknown type: " + t);
for (i = this._[t], n = 0, a = i.length; n < a; ++n)
i[n].value.apply(r, e);
},
apply: function(t, r, e) {
if (!this._.hasOwnProperty(t))
throw new Error("unknown type: " + t);
for (var n = this._[t], a = 0, i = n.length; a < i; ++a)
n[a].value.apply(r, e);
}
};
function l_(t, r) {
for (var e = 0, n = t.length, a; e < n; ++e)
if ((a = t[e]).name === r)
return a.value;
}
function ep(t, r, e) {
for (var n = 0, a = t.length; n < a; ++n)
if (t[n].name === r) {
t[n] = s_, t = t.slice(0, n).concat(t.slice(n + 1));
break;
}
return e != null && t.push({ name: r, value: e }), t;
}
var Kf = "http://www.w3.org/1999/xhtml";
const np = {
svg: "http://www.w3.org/2000/svg",
xhtml: Kf,
xlink: "http://www.w3.org/1999/xlink",
xml: "http://www.w3.org/XML/1998/namespace",
xmlns: "http://www.w3.org/2000/xmlns/"
};
function hu(t) {
var r = t += "", e = r.indexOf(":");
return e >= 0 && (r = t.slice(0, e)) !== "xmlns" && (t = t.slice(e + 1)), np.hasOwnProperty(r) ? { space: np[r], local: t } : t;
}
function c_(t) {
return function() {
var r = this.ownerDocument, e = this.namespaceURI;
return e === Kf && r.documentElement.namespaceURI === Kf ? r.createElement(t) : r.createElementNS(e, t);
};
}
function f_(t) {
return function() {
return this.ownerDocument.createElementNS(t.space, t.local);
};
}
function pS(t) {
var r = hu(t);
return (r.local ? f_ : c_)(r);
}
function h_() {
}
function Cv(t) {
return t == null ? h_ : function() {
return this.querySelector(t);
};
}
function v_(t) {
typeof t != "function" && (t = Cv(t));
for (var r = this._groups, e = r.length, n = new Array(e), a = 0; a < e; ++a)
for (var i = r[a], o = i.length, s = n[a] = new Array(o), u, l, c = 0; c < o; ++c)
(u = i[c]) && (l = t.call(u, u.__data__, c, i)) && ("__data__" in u && (l.__data__ = u.__data__), s[c] = l);
return new At(n, this._parents);
}
function $S(t) {
return t == null ? [] : Array.isArray(t) ? t : Array.from(t);
}
function d_() {
return [];
}
function yS(t) {
return t == null ? d_ : function() {
return this.querySelectorAll(t);
};
}
function g_(t) {
return function() {
return $S(t.apply(this, arguments));
};
}
function p_(t) {
typeof t == "function" ? t = g_(t) : t = yS(t);
for (var r = this._groups, e = r.length, n = [], a = [], i = 0; i < e; ++i)
for (var o = r[i], s = o.length, u, l = 0; l < s; ++l)
(u = o[l]) && (n.push(t.call(u, u.__data__, l, o)), a.push(u));
return new At(n, a);
}
function mS(t) {
return function() {
return this.matches(t);
};
}
function bS(t) {
return function(r) {
return r.matches(t);
};
}
var $_ = Array.prototype.find;
function y_(t) {
return function() {
return $_.call(this.children, t);
};
}
function m_() {
return this.firstElementChild;
}
function b_(t) {
return this.select(t == null ? m_ : y_(typeof t == "function" ? t : bS(t)));
}
var w_ = Array.prototype.filter;
function S_() {
return Array.from(this.children);
}
function x_(t) {
return function() {
return w_.call(this.children, t);
};
}
function E_(t) {
return this.selectAll(t == null ? S_ : x_(typeof t == "function" ? t : bS(t)));
}
function T_(t) {
typeof t != "function" && (t = mS(t));
for (var r = this._groups, e = r.length, n = new Array(e), a = 0; a < e; ++a)
for (var i = r[a], o = i.length, s = n[a] = [], u, l = 0; l < o; ++l)
(u = i[l]) && t.call(u, u.__data__, l, i) && s.push(u);
return new At(n, this._parents);
}
function wS(t) {
return new Array(t.length);
}
function I_() {
return new At(this._enter || this._groups.map(wS), this._parents);
}
function Es(t, r) {
this.ownerDocument = t.ownerDocument, this.namespaceURI = t.namespaceURI, this._next = null, this._parent = t, this.__data__ = r;
}
Es.prototype = {
constructor: Es,
appendChild: function(t) {
return this._parent.insertBefore(t, this._next);
},
insertBefore: function(t, r) {
return this._parent.insertBefore(t, r);
},
querySelector: function(t) {
return this._parent.querySelector(t);
},
querySelectorAll: function(t) {
return this._parent.querySelectorAll(t);
}
};
function O_(t) {
return function() {
return t;
};
}
function A_(t, r, e, n, a, i) {
for (var o = 0, s, u = r.length, l = i.length; o < l; ++o)
(s = r[o]) ? (s.__data__ = i[o], n[o] = s) : e[o] = new Es(t, i[o]);
for (; o < u; ++o)
(s = r[o]) && (a[o] = s);
}
function R_(t, r, e, n, a, i, o) {
var s, u, l = /* @__PURE__ */ new Map(), c = r.length, f = i.length, h = new Array(c), v;
for (s = 0; s < c; ++s)
(u = r[s]) && (h[s] = v = o.call(u, u.__data__, s, r) + "", l.has(v) ? a[s] = u : l.set(v, u));
for (s = 0; s < f; ++s)
v = o.call(t, i[s], s, i) + "", (u = l.get(v)) ? (n[s] = u, u.__data__ = i[s], l.delete(v)) : e[s] = new Es(t, i[s]);
for (s = 0; s < c; ++s)
(u = r[s]) && l.get(h[s]) === u && (a[s] = u);
}
function __(t) {
return t.__data__;
}
function C_(t, r) {
if (!arguments.length)
return Array.from(this, __);
var e = r ? R_ : A_, n = this._parents, a = this._groups;
typeof t != "function" && (t = O_(t));
for (var i = a.length, o = new Array(i), s = new Array(i), u = new Array(i), l = 0; l < i; ++l) {
var c = n[l], f = a[l], h = f.length, v = P_(t.call(c, c && c.__data__, l, n)), d = v.length, $ = s[l] = new Array(d), y = o[l] = new Array(d), p = u[l] = new Array(h);
e(c, f, $, y, p, v, r);
for (var b = 0, I = 0, _, M; b < d; ++b)
if (_ = $[b]) {
for (b >= I && (I = b + 1); !(M = y[I]) && ++I < d; )
;
_._next = M || null;
}
}
return o = new At(o, n), o._enter = s, o._exit = u, o;
}
function P_(t) {
return typeof t == "object" && "length" in t ? t : Array.from(t);
}
function M_() {
return new At(this._exit || this._groups.map(wS), this._parents);
}
function N_(t, r, e) {
var n = this.enter(), a = this, i = this.exit();
return typeof t == "function" ? (n = t(n), n && (n = n.selection())) : n = n.append(t + ""), r != null && (a = r(a), a && (a = a.selection())), e == null ? i.remove() : e(i), n && a ? n.merge(a).order() : a;
}
function D_(t) {
for (var r = t.selection ? t.selection() : t, e = this._groups, n = r._groups, a = e.length, i = n.length, o = Math.min(a, i), s = new Array(a), u = 0; u < o; ++u)
for (var l = e[u], c = n[u], f = l.length, h = s[u] = new Array(f), v, d = 0; d < f; ++d)
(v = l[d] || c[d]) && (h[d] = v);
for (; u < a; ++u)
s[u] = e[u];
return new At(s, this._parents);
}
function L_() {
for (var t = this._groups, r = -1, e = t.length; ++r < e; )
for (var n = t[r], a = n.length - 1, i = n[a], o; --a >= 0; )
(o = n[a]) && (i && o.compareDocumentPosition(i) ^ 4 && i.parentNode.insertBefore(o, i), i = o);
return this;
}
function F_(t) {
t || (t = k_);
function r(f, h) {
return f && h ? t(f.__data__, h.__data__) : !f - !h;
}
for (var e = this._groups, n = e.length, a = new Array(n), i = 0; i < n; ++i) {
for (var o = e[i], s = o.length, u = a[i] = new Array(s), l, c = 0; c < s; ++c)
(l = o[c]) && (u[c] = l);
u.sort(r);
}
return new At(a, this._parents).order();
}
function k_(t, r) {
return t < r ? -1 : t > r ? 1 : t >= r ? 0 : NaN;
}
function B_() {
var t = arguments[0];
return arguments[0] = this, t.apply(null, arguments), this;
}
function j_() {
return Array.from(this);
}
function U_() {
for (var t = this._groups, r = 0, e = t.length; r < e; ++r)
for (var n = t[r], a = 0, i = n.length; a < i; ++a) {
var o = n[a];
if (o)
return o;
}
return null;
}
function z_() {
let t = 0;
for (const r of this)
++t;
return t;
}
function V_() {
return !this.node();
}
function H_(t) {
for (var r = this._groups, e = 0, n = r.length; e < n; ++e)
for (var a = r[e], i = 0, o = a.length, s; i < o; ++i)
(s = a[i]) && t.call(s, s.__data__, i, a);
return this;
}
function G_(t) {
return function() {
this.removeAttribute(t);
};
}
function W_(t) {
return function() {
this.removeAttributeNS(t.space, t.local);
};
}
function q_(t, r) {
return function() {
this.setAttribute(t, r);
};
}
function Y_(t, r) {
return function() {
this.setAttributeNS(t.space, t.local, r);
};
}
function K_(t, r) {
return function() {
var e = r.apply(this, arguments);
e == null ? this.removeAttribute(t) : this.setAttribute(t, e);
};
}
function X_(t, r) {
return function() {
var e = r.apply(this, arguments);
e == null ? this.removeAttributeNS(t.space, t.local) : this.setAttributeNS(t.space, t.local, e);
};
}
function J_(t, r) {
var e = hu(t);
if (arguments.length < 2) {
var n = this.node();
return e.local ? n.getAttributeNS(e.space, e.local) : n.getAttribute(e);
}
return this.each((r == null ? e.local ? W_ : G_ : typeof r == "function" ? e.local ? X_ : K_ : e.local ? Y_ : q_)(e, r));
}
function SS(t) {
return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView;
}
function Z_(t) {
return function() {
this.style.removeProperty(t);
};
}
function Q_(t, r, e) {
return function() {
this.style.setProperty(t, r, e);
};
}
function tC(t, r, e) {
return function() {
var n = r.apply(this, arguments);
n == null ? this.style.removeProperty(t) : this.style.setProperty(t, n, e);
};
}
function rC(t, r, e) {
return arguments.length > 1 ? this.each((r == null ? Z_ : typeof r == "function" ? tC : Q_)(t, r, e ?? "")) : Bn(this.node(), t);
}
function Bn(t, r) {
return t.style.getPropertyValue(r) || SS(t).getComputedStyle(t, null).getPropertyValue(r);
}
function eC(t) {
return function() {
delete this[t];
};
}
function nC(t, r) {
return function() {
this[t] = r;
};
}
function aC(t, r) {
return function() {
var e = r.apply(this, arguments);
e == null ? delete this[t] : this[t] = e;
};
}
function iC(t, r) {
return arguments.length > 1 ? this.each((r == null ? eC : typeof r == "function" ? aC : nC)(t, r)) : this.node()[t];
}
function xS(t) {
return t.trim().split(/^|\s+/);
}
function Pv(t) {
return t.classList || new ES(t);
}
function ES(t) {
this._node = t, this._names = xS(t.getAttribute("class") || "");
}
ES.prototype = {
add: function(t) {
var r = this._names.indexOf(t);
r < 0 && (this._names.push(t), this._node.setAttribute("class", this._names.join(" ")));
},
remove: function(t) {
var r = this._names.indexOf(t);
r >= 0 && (this._names.splice(r, 1), this._node.setAttribute("class", this._names.join(" ")));
},
contains: function(t) {
return this._names.indexOf(t) >= 0;
}
};
function TS(t, r) {
for (var e = Pv(t), n = -1, a = r.length; ++n < a; )
e.add(r[n]);
}
function IS(t, r) {
for (var e = Pv(t), n = -1, a = r.length; ++n < a; )
e.remove(r[n]);
}
function oC(t) {
return function() {
TS(this, t);
};
}
function sC(t) {
return function() {
IS(this, t);
};
}
function uC(t, r) {
return function() {
(r.apply(this, arguments) ? TS : IS)(this, t);
};
}
function lC(t, r) {
var e = xS(t + "");
if (arguments.length < 2) {
for (var n = Pv(this.node()), a = -1, i = e.length; ++a < i; )
if (!n.contains(e[a]))
return !1;
return !0;
}
return this.each((typeof r == "function" ? uC : r ? oC : sC)(e, r));
}
function cC() {
this.textContent = "";
}
function fC(t) {
return function() {
this.textContent = t;
};
}
function hC(t) {
return function() {
var r = t.apply(this, arguments);
this.textContent = r ?? "";
};
}
function vC(t) {
return arguments.length ? this.each(t == null ? cC : (typeof t == "function" ? hC : fC)(t)) : this.node().textContent;
}
function dC() {
this.innerHTML = "";
}
function gC(t) {
return function() {
this.innerHTML = t;
};
}
function pC(t) {
return function() {
var r = t.apply(this, arguments);
this.innerHTML = r ?? "";
};
}
function $C(t) {
return arguments.length ? this.each(t == null ? dC : (typeof t == "function" ? pC : gC)(t)) : this.node().innerHTML;
}
function yC() {
this.nextSibling && this.parentNode.appendChild(this);
}
function mC() {
return this.each(yC);
}
function bC() {
this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild);
}
function wC() {
return this.each(bC);
}
function SC(t) {
var r = typeof t == "function" ? t : pS(t);
return this.select(function() {
return this.appendChild(r.apply(this, arguments));
});
}
function xC() {
return null;
}
function EC(t, r) {
var e = typeof t == "function" ? t : pS(t), n = r == null ? xC : typeof r == "function" ? r : Cv(r);
return this.select(function() {
return this.insertBefore(e.apply(this, arguments), n.apply(this, arguments) || null);
});
}
function TC() {
var t = this.parentNode;
t && t.removeChild(this);
}
function IC() {
return this.each(TC);
}
function OC() {
var t = this.cloneNode(!1), r = this.parentNode;
return r ? r.insertBefore(t, this.nextSibling) : t;
}
function AC() {
var t = this.cloneNode(!0), r = this.parentNode;
return r ? r.insertBefore(t, this.nextSibling) : t;
}
function RC(t) {
return this.select(t ? AC : OC);
}
function _C(t) {
return arguments.length ? this.property("__data__", t) : this.node().__data__;
}
function CC(t) {
return function(r) {
t.call(this, r, this.__data__);
};
}
function PC(t) {
return t.trim().split(/^|\s+/).map(function(r) {
var e = "", n = r.indexOf(".");
return n >= 0 && (e = r.slice(n + 1), r = r.slice(0, n)), { type: r, name: e };
});
}
function MC(t) {
return function() {
var r = this.__on;
if (r) {
for (var e = 0, n = -1, a = r.length, i; e < a; ++e)
i = r[e], (!t.type || i.type === t.type) && i.name === t.name ? this.removeEventListener(i.type, i.listener, i.options) : r[++n] = i;
++n ? r.length = n : delete this.__on;
}
};
}
function NC(t, r, e) {
return function() {
var n = this.__on, a, i = CC(r);
if (n) {
for (var o = 0, s = n.length; o < s; ++o)
if ((a = n[o]).type === t.type && a.name === t.name) {
this.removeEventListener(a.type, a.listener, a.options), this.addEventListener(a.type, a.listener = i, a.options = e), a.value = r;
return;
}
}
this.addEventListener(t.type, i, e), a = { type: t.type, name: t.name, value: r, listener: i, options: e }, n ? n.push(a) : this.__on = [a];
};
}
function DC(t, r, e) {
var n = PC(t + ""), a, i = n.length, o;
if (arguments.length < 2) {
var s = this.node().__on;
if (s) {
for (var u = 0, l = s.length, c; u < l; ++u)
for (a = 0, c = s[u]; a < i; ++a)
if ((o = n[a]).type === c.type && o.name === c.name)
return c.value;
}
return;
}
for (s = r ? NC : MC, a = 0; a < i; ++a)
this.each(s(n[a], r, e));
return this;
}
function OS(t, r, e) {
var n = SS(t), a = n.CustomEvent;
typeof a == "function" ? a = new a(r, e) : (a = n.document.createEvent("Event"), e ? (a.initEvent(r, e.bubbles, e.cancelable), a.detail = e.detail) : a.initEvent(r, !1, !1)), t.dispatchEvent(a);
}
function LC(t, r) {
return function() {
return OS(this, t, r);
};
}
function FC(t, r) {
return function() {
return OS(this, t, r.apply(this, arguments));
};
}
function kC(t, r) {
return this.each((typeof r == "function" ? FC : LC)(t, r));
}
function* BC() {
for (var t = this._groups, r = 0, e = t.length; r < e; ++r)
for (var n = t[r], a = 0, i = n.length, o; a < i; ++a)
(o = n[a]) && (yield o);
}
var Mv = [null];
function At(t, r) {
this._groups = t, this._parents = r;
}
function wi() {
return new At([[document.documentElement]], Mv);
}
function jC() {
return this;
}
At.prototype = wi.prototype = {
constructor: At,
select: v_,
selectAll: p_,
selectChild: b_,
selectChildren: E_,
filter: T_,
data: C_,
enter: I_,
exit: M_,
join: N_,
merge: D_,
selection: jC,
order: L_,
sort: F_,
call: B_,
nodes: j_,
node: U_,
size: z_,
empty: V_,
each: H_,
attr: J_,
style: rC,
property: iC,
classed: lC,
text: vC,
html: $C,
raise: mC,
lower: wC,
append: SC,
insert: EC,
remove: IC,
clone: RC,
datum: _C,
on: DC,
dispatch: kC,
[Symbol.iterator]: BC
};
function dt(t) {
return typeof t == "string" ? new At([[document.querySelector(t)]], [document.documentElement]) : new At([[t]], Mv);
}
function UC(t) {
let r;
for (; r = t.sourceEvent; )
t = r;
return t;
}
function we(t, r) {
if (t = UC(t), r === void 0 && (r = t.currentTarget), r) {
var e = r.ownerSVGElement || r;
if (e.createSVGPoint) {
var n = e.createSVGPoint();
return n.x = t.clientX, n.y = t.clientY, n = n.matrixTransform(r.getScreenCTM().inverse()), [n.x, n.y];
}
if (r.getBoundingClientRect) {
var a = r.getBoundingClientRect();
return [t.clientX - a.left - r.clientLeft, t.clientY - a.top - r.clientTop];
}
}
return [t.pageX, t.pageY];
}
function nn(t) {
return typeof t == "string" ? new At([document.querySelectorAll(t)], [document.documentElement]) : new At([$S(t)], Mv);
}
const Xf = { capture: !0, passive: !1 };
function Jf(t) {
t.preventDefault(), t.stopImmediatePropagation();
}
function zC(t) {
var r = t.document.documentElement, e = dt(t).on("dragstart.drag", Jf, Xf);
"onselectstart" in r ? e.on("selectstart.drag", Jf, Xf) : (r.__noselect = r.style.MozUserSelect, r.style.MozUserSelect = "none");
}
function VC(t, r) {
var e = t.document.documentElement, n = dt(t).on("dragstart.drag", null);
r && (n.on("click.drag", Jf, Xf), setTimeout(function() {
n.on("click.drag", null);
}, 0)), "onselectstart" in e ? n.on("selectstart.drag", null) : (e.style.MozUserSelect = e.__noselect, delete e.__noselect);
}
function Si(t, r, e) {
t.prototype = r.prototype = e, e.constructor = t;
}
function vu(t, r) {
var e = Object.create(t.prototype);
for (var n in r)
e[n] = r[n];
return e;
}
function He() {
}
var oi = 0.7, Ts = 1 / oi, An = "\\s*([+-]?\\d+)\\s*", si = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", Ir = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", HC = /^#([0-9a-f]{3,8})$/, GC = new RegExp(`^rgb\\(${An},${An},${An}\\)$`), WC = new RegExp(`^rgb\\(${Ir},${Ir},${Ir}\\)$`), qC = new RegExp(`^rgba\\(${An},${An},${An},${si}\\)$`), YC = new RegExp(`^rgba\\(${Ir},${Ir},${Ir},${si}\\)$`), KC = new RegExp(`^hsl\\(${si},${Ir},${Ir}\\)$`), XC = new RegExp(`^hsla\\(${si},${Ir},${Ir},${si}\\)$`), ap = {
aliceblue: 15792383,
antiquewhite: 16444375,
aqua: 65535,
aquamarine: 8388564,
azure: 15794175,
beige: 16119260,
bisque: 16770244,
black: 0,
blanchedalmond: 16772045,
blue: 255,
blueviolet: 9055202,
brown: 10824234,
burlywood: 14596231,
cadetblue: 6266528,
chartreuse: 8388352,
chocolate: 13789470,
coral: 16744272,
cornflowerblue: 6591981,
cornsilk: 16775388,
crimson: 14423100,
cyan: 65535,
darkblue: 139,
darkcyan: 35723,
darkgoldenrod: 12092939,
darkgray: 11119017,
darkgreen: 25600,
darkgrey: 11119017,
darkkhaki: 12433259,
darkmagenta: 9109643,
darkolivegreen: 5597999,
darkorange: 16747520,
darkorchid: 10040012,
darkred: 9109504,
darksalmon: 15308410,
darkseagreen: 9419919,
darkslateblue: 4734347,
darkslategray: 3100495,
darkslategrey: 3100495,
darkturquoise: 52945,
darkviolet: 9699539,
deeppink: 16716947,
deepskyblue: 49151,
dimgray: 6908265,
dimgrey: 6908265,
dodgerblue: 2003199,
firebrick: 11674146,
floralwhite: 16775920,
forestgreen: 2263842,
fuchsia: 16711935,
gainsboro: 14474460,
ghostwhite: 16316671,
gold: 16766720,
goldenrod: 14329120,
gray: 8421504,
green: 32768,
greenyellow: 11403055,
grey: 8421504,
honeydew: 15794160,
hotpink: 16738740,
indianred: 13458524,
indigo: 4915330,
ivory: 16777200,
khaki: 15787660,
lavender: 15132410,
lavenderblush: 16773365,
lawngreen: 8190976,
lemonchiffon: 16775885,
lightblue: 11393254,
lightcoral: 15761536,
lightcyan: 14745599,
lightgoldenrodyellow: 16448210,
lightgray: 13882323,
lightgreen: 9498256,
lightgrey: 13882323,
lightpink: 16758465,
lightsalmon: 16752762,
lightseagreen: 2142890,
lightskyblue: 8900346,
lightslategray: 7833753,
lightslategrey: 7833753,
lightsteelblue: 11584734,
lightyellow: 16777184,
lime: 65280,
limegreen: 3329330,
linen: 16445670,
magenta: 16711935,
maroon: 8388608,
mediumaquamarine: 6737322,
mediumblue: 205,
mediumorchid: 12211667,
mediumpurple: 9662683,
mediumseagreen: 3978097,
mediumslateblue: 8087790,
mediumspringgreen: 64154,
mediumturquoise: 4772300,
mediumvioletred: 13047173,
midnightblue: 1644912,
mintcream: 16121850,
mistyrose: 16770273,
moccasin: 16770229,
navajowhite: 16768685,
navy: 128,
oldlace: 16643558,
olive: 8421376,
olivedrab: 7048739,
orange: 16753920,
orangered: 16729344,
orchid: 14315734,
palegoldenrod: 15657130,
palegreen: 10025880,
paleturquoise: 11529966,
palevioletred: 14381203,
papayawhip: 16773077,
peachpuff: 16767673,
peru: 13468991,
pink: 16761035,
plum: 14524637,
powderblue: 11591910,
purple: 8388736,
rebeccapurple: 6697881,
red: 16711680,
rosybrown: 12357519,
royalblue: 4286945,
saddlebrown: 9127187,
salmon: 16416882,
sandybrown: 16032864,
seagreen: 3050327,
seashell: 16774638,
sienna: 10506797,
silver: 12632256,
skyblue: 8900331,
slateblue: 6970061,
slategray: 7372944,
slategrey: 7372944,
snow: 16775930,
springgreen: 65407,
steelblue: 4620980,
tan: 13808780,
teal: 32896,
thistle: 14204888,
tomato: 16737095,
turquoise: 4251856,
violet: 15631086,
wheat: 16113331,
white: 16777215,
whitesmoke: 16119285,
yellow: 16776960,
yellowgreen: 10145074
};
Si(He, ke, {
copy(t) {
return Object.assign(new this.constructor(), this, t);
},
displayable() {
return this.rgb().displayable();
},
hex: ip,
// Deprecated! Use color.formatHex.
formatHex: ip,
formatHex8: JC,
formatHsl: ZC,
formatRgb: op,
toString: op
});
function ip() {
return this.rgb().formatHex();
}
function JC() {
return this.rgb().formatHex8();
}
function ZC() {
return RS(this).formatHsl();
}
function op() {
return this.rgb().formatRgb();
}
function ke(t) {
var r, e;
return t = (t + "").trim().toLowerCase(), (r = HC.exec(t)) ? (e = r[1].length, r = parseInt(r[1], 16), e === 6 ? sp(r) : e === 3 ? new St(r >> 8 & 15 | r >> 4 & 240, r >> 4 & 15 | r & 240, (r & 15) << 4 | r & 15, 1) : e === 8 ? eo(r >> 24 & 255, r >> 16 & 255, r >> 8 & 255, (r & 255) / 255) : e === 4 ? eo(r >> 12 & 15 | r >> 8 & 240, r >> 8 & 15 | r >> 4 & 240, r >> 4 & 15 | r & 240, ((r & 15) << 4 | r & 15) / 255) : null) : (r = GC.exec(t)) ? new St(r[1], r[2], r[3], 1) : (r = WC.exec(t)) ? new St(r[1] * 255 / 100, r[2] * 255 / 100, r[3] * 255 / 100, 1) : (r = qC.exec(t)) ? eo(r[1], r[2], r[3], r[4]) : (r = YC.exec(t)) ? eo(r[1] * 255 / 100, r[2] * 255 / 100, r[3] * 255 / 100, r[4]) : (r = KC.exec(t)) ? cp(r[1], r[2] / 100, r[3] / 100, 1) : (r = XC.exec(t)) ? cp(r[1], r[2] / 100, r[3] / 100, r[4]) : ap.hasOwnProperty(t) ? sp(ap[t]) : t === "transparent" ? new St(NaN, NaN, NaN, 0) : null;
}
function sp(t) {
return new St(t >> 16 & 255, t >> 8 & 255, t & 255, 1);
}
function eo(t, r, e, n) {
return n <= 0 && (t = r = e = NaN), new St(t, r, e, n);
}
function AS(t) {
return t instanceof He || (t = ke(t)), t ? (t = t.rgb(), new St(t.r, t.g, t.b, t.opacity)) : new St();
}
function ui(t, r, e, n) {
return arguments.length === 1 ? AS(t) : new St(t, r, e, n ?? 1);
}
function St(t, r, e, n) {
this.r = +t, this.g = +r, this.b = +e, this.opacity = +n;
}
Si(St, ui, vu(He, {
brighter(t) {
return t = t == null ? Ts : Math.pow(Ts, t), new St(this.r * t, this.g * t, this.b * t, this.opacity);
},
darker(t) {
return t = t == null ? oi : Math.pow(oi, t), new St(this.r * t, this.g * t, this.b * t, this.opacity);
},
rgb() {
return this;
},
clamp() {
return new St(Ne(this.r), Ne(this.g), Ne(this.b), Is(this.opacity));
},
displayable() {
return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;
},
hex: up,
// Deprecated! Use color.formatHex.
formatHex: up,
formatHex8: QC,
formatRgb: lp,
toString: lp
}));
function up() {
return `#${Me(this.r)}${Me(this.g)}${Me(this.b)}`;
}
function QC() {
return `#${Me(this.r)}${Me(this.g)}${Me(this.b)}${Me((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
}
function lp() {
const t = Is(this.opacity);
return `${t === 1 ? "rgb(" : "rgba("}${Ne(this.r)}, ${Ne(this.g)}, ${Ne(this.b)}${t === 1 ? ")" : `, ${t})`}`;
}
function Is(t) {
return isNaN(t) ? 1 : Math.max(0, Math.min(1, t));
}
function Ne(t) {
return Math.max(0, Math.min(255, Math.round(t) || 0));
}
function Me(t) {
return t = Ne(t), (t < 16 ? "0" : "") + t.toString(16);
}
function cp(t, r, e, n) {
return n <= 0 ? t = r = e = NaN : e <= 0 || e >= 1 ? t = r = NaN : r <= 0 && (t = NaN), new cr(t, r, e, n);
}
function RS(t) {
if (t instanceof cr)
return new cr(t.h, t.s, t.l, t.opacity);
if (t instanceof He || (t = ke(t)), !t)
return new cr();
if (t instanceof cr)
return t;
t = t.rgb();
var r = t.r / 255, e = t.g / 255, n = t.b / 255, a = Math.min(r, e, n), i = Math.max(r, e, n), o = NaN, s = i - a, u = (i + a) / 2;
return s ? (r === i ? o = (e - n) / s + (e < n) * 6 : e === i ? o = (n - r) / s + 2 : o = (r - e) / s + 4, s /= u < 0.5 ? i + a : 2 - i - a, o *= 60) : s = u > 0 && u < 1 ? 0 : o, new cr(o, s, u, t.opacity);
}
function ja(t, r, e, n) {
return arguments.length === 1 ? RS(t) : new cr(t, r, e, n ?? 1);
}
function cr(t, r, e, n) {
this.h = +t, this.s = +r, this.l = +e, this.opacity = +n;
}
Si(cr, ja, vu(He, {
brighter(t) {
return t = t == null ? Ts : Math.pow(Ts, t), new cr(this.h, this.s, this.l * t, this.opacity);
},
darker(t) {
return t = t == null ? oi : Math.pow(oi, t), new cr(this.h, this.s, this.l * t, this.opacity);
},
rgb() {
var t = this.h % 360 + (this.h < 0) * 360, r = isNaN(t) || isNaN(this.s) ? 0 : this.s, e = this.l, n = e + (e < 0.5 ? e : 1 - e) * r, a = 2 * e - n;
return new St(
Tl(t >= 240 ? t - 240 : t + 120, a, n),
Tl(t, a, n),
Tl(t < 120 ? t + 240 : t - 120, a, n),
this.opacity
);
},
clamp() {
return new cr(fp(this.h), no(this.s), no(this.l), Is(this.opacity));
},
displayable() {
return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
},
formatHsl() {
const t = Is(this.opacity);
return `${t === 1 ? "hsl(" : "hsla("}${fp(this.h)}, ${no(this.s) * 100}%, ${no(this.l) * 100}%${t === 1 ? ")" : `, ${t})`}`;
}
}));
function fp(t) {
return t = (t || 0) % 360, t < 0 ? t + 360 : t;
}
function no(t) {
return Math.max(0, Math.min(1, t || 0));
}
function Tl(t, r, e) {
return (t < 60 ? r + (e - r) * t / 60 : t < 180 ? e : t < 240 ? r + (e - r) * (240 - t) / 60 : r) * 255;
}
const t2 = Math.PI / 180, r2 = 180 / Math.PI, Os = 18, _S = 0.96422, CS = 1, PS = 0.82521, MS = 4 / 29, Rn = 6 / 29, NS = 3 * Rn * Rn, e2 = Rn * Rn * Rn;
function DS(t) {
if (t instanceof Or)
return new Or(t.l, t.a, t.b, t.opacity);
if (t instanceof jr)
return LS(t);
t instanceof St || (t = AS(t));
var r = Rl(t.r), e = Rl(t.g), n = Rl(t.b), a = Il((0.2225045 * r + 0.7168786 * e + 0.0606169 * n) / CS), i, o;
return r === e && e === n ? i = o = a : (i = Il((0.4360747 * r + 0.3850649 * e + 0.1430804 * n) / _S), o = Il((0.0139322 * r + 0.0971045 * e + 0.7141733 * n) / PS)), new Or(116 * a - 16, 500 * (i - a), 200 * (a - o), t.opacity);
}
function Be(t, r, e, n) {
return arguments.length === 1 ? DS(t) : new Or(t, r, e, n ?? 1);
}
function Or(t, r, e, n) {
this.l = +t, this.a = +r, this.b = +e, this.opacity = +n;
}
Si(Or, Be, vu(He, {
brighter(t) {
return new Or(this.l + Os * (t ?? 1), this.a, this.b, this.opacity);
},
darker(t) {
return new Or(this.l - Os * (t ?? 1), this.a, this.b, this.opacity);
},
rgb() {
var t = (this.l + 16) / 116, r = isNaN(this.a) ? t : t + this.a / 500, e = isNaN(this.b) ? t : t - this.b / 200;
return r = _S * Ol(r), t = CS * Ol(t), e = PS * Ol(e), new St(
Al(3.1338561 * r - 1.6168667 * t - 0.4906146 * e),
Al(-0.9787684 * r + 1.9161415 * t + 0.033454 * e),
Al(0.0719453 * r - 0.2289914 * t + 1.4052427 * e),
this.opacity
);
}
}));
function Il(t) {
return t > e2 ? Math.pow(t, 1 / 3) : t / NS + MS;
}
function Ol(t) {
return t > Rn ? t * t * t : NS * (t - MS);
}
function Al(t) {
return 255 * (t <= 31308e-7 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - 0.055);
}
function Rl(t) {
return (t /= 255) <= 0.04045 ? t / 12.92 : Math.pow((t + 0.055) / 1.055, 2.4);
}
function n2(t) {
if (t instanceof jr)
return new jr(t.h, t.c, t.l, t.opacity);
if (t instanceof Or || (t = DS(t)), t.a === 0 && t.b === 0)
return new jr(NaN, 0 < t.l && t.l < 100 ? 0 : NaN, t.l, t.opacity);
var r = Math.atan2(t.b, t.a) * r2;
return new jr(r < 0 ? r + 360 : r, Math.sqrt(t.a * t.a + t.b * t.b), t.l, t.opacity);
}
function a2(t, r, e, n) {
return arguments.length === 1 ? n2(t) : new jr(t, r, e, n ?? 1);
}
function jr(t, r, e, n) {
this.h = +t, this.c = +r, this.l = +e, this.opacity = +n;
}
function LS(t) {
if (isNaN(t.h))
return new Or(t.l, 0, 0, t.opacity);
var r = t.h * t2;
return new Or(t.l, Math.cos(r) * t.c, Math.sin(r) * t.c, t.opacity);
}
Si(jr, a2, vu(He, {
brighter(t) {
return new jr(this.h, this.c, this.l + Os * (t ?? 1), this.opacity);
},
darker(t) {
return new jr(this.h, this.c, this.l - Os * (t ?? 1), this.opacity);
},
rgb() {
return LS(this).rgb();
}
}));
const Nv = (t) => () => t;
function i2(t, r) {
return function(e) {
return t + e * r;
};
}
function o2(t, r, e) {
return t = Math.pow(t, e), r = Math.pow(r, e) - t, e = 1 / e, function(n) {
return Math.pow(t + n * r, e);
};
}
function s2(t) {
return (t = +t) == 1 ? bn : function(r, e) {
return e - r ? o2(r, e, t) : Nv(isNaN(r) ? e : r);
};
}
function bn(t, r) {
var e = r - t;
return e ? i2(t, e) : Nv(isNaN(t) ? r : t);
}
const As = function t(r) {
var e = s2(r);
function n(a, i) {
var o = e((a = ui(a)).r, (i = ui(i)).r), s = e(a.g, i.g), u = e(a.b, i.b), l = bn(a.opacity, i.opacity);
return function(c) {
return a.r = o(c), a.g = s(c), a.b = u(c), a.opacity = l(c), a + "";
};
}
return n.gamma = t, n;
}(1);
function u2(t, r) {
r || (r = []);
var e = t ? Math.min(r.length, t.length) : 0, n = r.slice(), a;
return function(i) {
for (a = 0; a < e; ++a)
n[a] = t[a] * (1 - i) + r[a] * i;
return n;
};
}
function l2(t) {
return ArrayBuffer.isView(t) && !(t instanceof DataView);
}
function c2(t, r) {
var e = r ? r.length : 0, n = t ? Math.min(e, t.length) : 0, a = new Array(n), i = new Array(e), o;
for (o = 0; o < n; ++o)
a[o] = _n(t[o], r[o]);
for (; o < e; ++o)
i[o] = r[o];
return function(s) {
for (o = 0; o < n; ++o)
i[o] = a[o](s);
return i;
};
}
function f2(t, r) {
var e = /* @__PURE__ */ new Date();
return t = +t, r = +r, function(n) {
return e.setTime(t * (1 - n) + r * n), e;
};
}
function ur(t, r) {
return t = +t, r = +r, function(e) {
return t * (1 - e) + r * e;
};
}
function h2(t, r) {
var e = {}, n = {}, a;
(t === null || typeof t != "object") && (t = {}), (r === null || typeof r != "object") && (r = {});
for (a in r)
a in t ? e[a] = _n(t[a], r[a]) : n[a] = r[a];
return function(i) {
for (a in e)
n[a] = e[a](i);
return n;
};
}
var Zf = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, _l = new RegExp(Zf.source, "g");
function v2(t) {
return function() {
return t;
};
}
function d2(t) {
return function(r) {
return t(r) + "";
};
}
function FS(t, r) {
var e = Zf.lastIndex = _l.lastIndex = 0, n, a, i, o = -1, s = [], u = [];
for (t = t + "", r = r + ""; (n = Zf.exec(t)) && (a = _l.exec(r)); )
(i = a.index) > e && (i = r.slice(e, i), s[o] ? s[o] += i : s[++o] = i), (n = n[0]) === (a = a[0]) ? s[o] ? s[o] += a : s[++o] = a : (s[++o] = null, u.push({ i: o, x: ur(n, a) })), e = _l.lastIndex;
return e < r.length && (i = r.slice(e), s[o] ? s[o] += i : s[++o] = i), s.length < 2 ? u[0] ? d2(u[0].x) : v2(r) : (r = u.length, function(l) {
for (var c = 0, f; c < r; ++c)
s[(f = u[c]).i] = f.x(l);
return s.join("");
});
}
function _n(t, r) {
var e = typeof r, n;
return r == null || e === "boolean" ? Nv(r) : (e === "number" ? ur : e === "string" ? (n = ke(r)) ? (r = n, As) : FS : r instanceof ke ? As : r instanceof Date ? f2 : l2(r) ? u2 : Array.isArray(r) ? c2 : typeof r.valueOf != "function" && typeof r.toString != "function" || isNaN(r) ? h2 : ur)(t, r);
}
function g2(t, r) {
return t = +t, r = +r, function(e) {
return Math.round(t * (1 - e) + r * e);
};
}
var hp = 180 / Math.PI, Qf = {
translateX: 0,
translateY: 0,
rotate: 0,
skewX: 0,
scaleX: 1,
scaleY: 1
};
function kS(t, r, e, n, a, i) {
var o, s, u;
return (o = Math.sqrt(t * t + r * r)) && (t /= o, r /= o), (u = t * e + r * n) && (e -= t * u, n -= r * u), (s = Math.sqrt(e * e + n * n)) && (e /= s, n /= s, u /= s), t * n < r * e && (t = -t, r = -r, u = -u, o = -o), {
translateX: a,
translateY: i,
rotate: Math.atan2(r, t) * hp,
skewX: Math.atan(u) * hp,
scaleX: o,
scaleY: s
};
}
var ao;
function p2(t) {
const r = new (typeof DOMMatrix == "function" ? DOMMatrix : WebKitCSSMatrix)(t + "");
return r.isIdentity ? Qf : kS(r.a, r.b, r.c, r.d, r.e, r.f);
}
function $2(t) {
return t == null || (ao || (ao = document.createElementNS("http://www.w3.org/2000/svg", "g")), ao.setAttribute("transform", t), !(t = ao.transform.baseVal.consolidate())) ? Qf : (t = t.matrix, kS(t.a, t.b, t.c, t.d, t.e, t.f));
}
function BS(t, r, e, n) {
function a(l) {
return l.length ? l.pop() + " " : "";
}
function i(l, c, f, h, v, d) {
if (l !== f || c !== h) {
var $ = v.push("translate(", null, r, null, e);
d.push({ i: $ - 4, x: ur(l, f) }, { i: $ - 2, x: ur(c, h) });
} else
(f || h) && v.push("translate(" + f + r + h + e);
}
function o(l, c, f, h) {
l !== c ? (l - c > 180 ? c += 360 : c - l > 180 && (l += 360), h.push({ i: f.push(a(f) + "rotate(", null, n) - 2, x: ur(l, c) })) : c && f.push(a(f) + "rotate(" + c + n);
}
function s(l, c, f, h) {
l !== c ? h.push({ i: f.push(a(f) + "skewX(", null, n) - 2, x: ur(l, c) }) : c && f.push(a(f) + "skewX(" + c + n);
}
function u(l, c, f, h, v, d) {
if (l !== f || c !== h) {
var $ = v.push(a(v) + "scale(", null, ",", null, ")");
d.push({ i: $ - 4, x: ur(l, f) }, { i: $ - 2, x: ur(c, h) });
} else
(f !== 1 || h !== 1) && v.push(a(v) + "scale(" + f + "," + h + ")");
}
return function(l, c) {
var f = [], h = [];
return l = t(l), c = t(c), i(l.translateX, l.translateY, c.translateX, c.translateY, f, h), o(l.rotate, c.rotate, f, h), s(l.skewX, c.skewX, f, h), u(l.scaleX, l.scaleY, c.scaleX, c.scaleY, f, h), l = c = null, function(v) {
for (var d = -1, $ = h.length, y; ++d < $; )
f[(y = h[d]).i] = y.x(v);
return f.join("");
};
};
}
var y2 = BS(p2, "px, ", "px)", "deg)"), m2 = BS($2, ", ", ")", ")"), b2 = 1e-12;
function vp(t) {
return ((t = Math.exp(t)) + 1 / t) / 2;
}
function w2(t) {
return ((t = Math.exp(t)) - 1 / t) / 2;
}
function S2(t) {
return ((t = Math.exp(2 * t)) - 1) / (t + 1);
}
const x2 = function t(r, e, n) {
function a(i, o) {
var s = i[0], u = i[1], l = i[2], c = o[0], f = o[1], h = o[2], v = c - s, d = f - u, $ = v * v + d * d, y, p;
if ($ < b2)
p = Math.log(h / l) / r, y = function(H) {
return [
s + H * v,
u + H * d,
l * Math.exp(r * H * p)
];
};
else {
var b = Math.sqrt($), I = (h * h - l * l + n * $) / (2 * l * e * b), _ = (h * h - l * l - n * $) / (2 * h * e * b), M = Math.log(Math.sqrt(I * I + 1) - I), B = Math.log(Math.sqrt(_ * _ + 1) - _);
p = (B - M) / r, y = function(H) {
var q = H * p, Z = vp(M), nt = l / (e * b) * (Z * S2(r * q + M) - w2(M));
return [
s + nt * v,
u + nt * d,
l * Z / vp(r * q + M)
];
};
}
return y.duration = p * 1e3 * r / Math.SQRT2, y;
}
return a.rho = function(i) {
var o = Math.max(1e-3, +i), s = o * o, u = s * s;
return t(o, s, u);
}, a;
}(Math.SQRT2, 2, 4);
function Dv(t, r) {
var e = bn((t = Be(t)).l, (r = Be(r)).l), n = bn(t.a, r.a), a = bn(t.b, r.b), i = bn(t.opacity, r.opacity);
return function(o) {
return t.l = e(o), t.a = n(o), t.b = a(o), t.opacity = i(o), t + "";
};
}
var jn = 0, Ua = 0, ba = 0, jS = 1e3, Rs, za, _s = 0, je = 0, du = 0, li = typeof performance == "object" && performance.now ? performance : Date, US = typeof window == "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(t) {
setTimeout(t, 17);
};
function Lv() {
return je || (US(E2), je = li.now() + du);
}
function E2() {
je = 0;
}
function Cs() {
this._call = this._time = this._next = null;
}
Cs.prototype = zS.prototype = {
constructor: Cs,
restart: function(t, r, e) {
if (typeof t != "function")
throw new TypeError("callback is not a function");
e = (e == null ? Lv() : +e) + (r == null ? 0 : +r), !this._next && za !== this && (za ? za._next = this : Rs = this, za = this), this._call = t, this._time = e, th();
},
stop: function() {
this._call && (this._call = null, this._time = 1 / 0, th());
}
};
function zS(t, r, e) {
var n = new Cs();
return n.restart(t, r, e), n;
}
function T2() {
Lv(), ++jn;
for (var t = Rs, r; t; )
(r = je - t._time) >= 0 && t._call.call(void 0, r), t = t._next;
--jn;
}
function dp() {
je = (_s = li.now()) + du, jn = Ua = 0;
try {
T2();
} finally {
jn = 0, O2(), je = 0;
}
}
function I2() {
var t = li.now(), r = t - _s;
r > jS && (du -= r, _s = t);
}
function O2() {
for (var t, r = Rs, e, n = 1 / 0; r; )
r._call ? (n > r._time && (n = r._time), t = r, r = r._next) : (e = r._next, r._next = null, r = t ? t._next = e : Rs = e);
za = t, th(n);
}
function th(t) {
if (!jn) {
Ua && (Ua = clearTimeout(Ua));
var r = t - je;
r > 24 ? (t < 1 / 0 && (Ua = setTimeout(dp, t - li.now() - du)), ba && (ba = clearInterval(ba))) : (ba || (_s = li.now(), ba = setInterval(I2, jS)), jn = 1, US(dp));
}
}
function gp(t, r, e) {
var n = new Cs();
return r = r == null ? 0 : +r, n.restart((a) => {
n.stop(), t(a + r);
}, r, e), n;
}
var A2 = _v("start", "end", "cancel", "interrupt"), R2 = [], VS = 0, pp = 1, rh = 2, es = 3, $p = 4, eh = 5, ns = 6;
function gu(t, r, e, n, a, i) {
var o = t.__transition;
if (!o)
t.__transition = {};
else if (e in o)
return;
_2(t, e, {
name: r,
index: n,
// For context during callback.
group: a,
// For context during callback.
on: A2,
tween: R2,
time: i.time,
delay: i.delay,
duration: i.duration,
ease: i.ease,
timer: null,
state: VS
});
}
function Fv(t, r) {
var e = dr(t, r);
if (e.state > VS)
throw new Error("too late; already scheduled");
return e;
}
function Rr(t, r) {
var e = dr(t, r);
if (e.state > es)
throw new Error("too late; already running");
return e;
}
function dr(t, r) {
var e = t.__transition;
if (!e || !(e = e[r]))
throw new Error("transition not found");
return e;
}
function _2(t, r, e) {
var n = t.__transition, a;
n[r] = e, e.timer = zS(i, 0, e.time);
function i(l) {
e.state = pp, e.timer.restart(o, e.delay, e.time), e.delay <= l && o(l - e.delay);
}
function o(l) {
var c, f, h, v;
if (e.state !== pp)
return u();
for (c in n)
if (v = n[c], v.name === e.name) {
if (v.state === es)
return gp(o);
v.state === $p ? (v.state = ns, v.timer.stop(), v.on.call("interrupt", t, t.__data__, v.index, v.group), delete n[c]) : +c < r && (v.state = ns, v.timer.stop(), v.on.call("cancel", t, t.__data__, v.index, v.group), delete n[c]);
}
if (gp(function() {
e.state === es && (e.state = $p, e.timer.restart(s, e.delay, e.time), s(l));
}), e.state = rh, e.on.call("start", t, t.__data__, e.index, e.group), e.state === rh) {
for (e.state = es, a = new Array(h = e.tween.length), c = 0, f = -1; c < h; ++c)
(v = e.tween[c].value.call(t, t.__data__, e.index, e.group)) && (a[++f] = v);
a.length = f + 1;
}
}
function s(l) {
for (var c = l < e.duration ? e.ease.call(null, l / e.duration) : (e.timer.restart(u), e.state = eh, 1), f = -1, h = a.length; ++f < h; )
a[f].call(t, c);
e.state === eh && (e.on.ca